open-index/open-npm huggingface dataset:
npm package: @gaubee/tc39-shim
Description: 一些常见的 [tc39](https://github.com/tc39) 组织的 shim，统一的函数式编程风格，良好的 Tree-Shaking 支持，默认零成本
Latest version: 0.6.1

# @gaubee/tc39-shim

> [中文](./README-zh.md) / [English](./README.md)

This project maintains the same style as @gaubee/util (providing functional programming style to avoid side effects) and offers common shims.
It supports on-demand imports, and for runtimes with native support, there is minimal additional overhead.

1. **decimal** - Decimal arithmetic for precise numerical calculations
   - Based on migration from big.js, serving as a drop-in replacement with pure functions and minimal side effects (stringify:toString/valueOf/toJSON)
   - Reference: https://github.com/tc39/proposal-decimal
2. **pipeline** - Functional pipeline operations
   - Simulates the `|>` operator capability through array arrangement
   - Reference: https://github.com/tc39/proposal-pipeline-operator
   - > Note: Currently implements basic pipeline operations only. Additional features like parameter position transformation will be improved in future updates
3. **promise** - Promise extension functions
   - Provides Promise.withResolvers method to obtain Promise's resolve and reject functions
   - Reference: https://github.com/tc39/proposal-promise-with-resolvers
4. **set** - Set extension functions
   - Provides set operation methods: union, intersection, difference, etc.
   - Reference: https://github.com/tc39/proposal-set-methods

## About Side Effects

By default, this project does not modify any native objects. If you need to apply it globally (polyfill), please use `applyEffect` for installation. For example:

```ts
import {
  applyEffect,
  promise_with_resolvers,
  set_union,
  set_intersection,
  set_difference,
  set_symmetric_difference,
  set_is_subset_of,
  set_is_superset_of,
  set_is_disjoint_from,
} from "@gaubee/tc39-shim";
applyEffect(promise_with_resolvers, set_union, set_intersection, set_difference, set_symmetric_difference, set_is_subset_of, set_is_superset_of, set_is_disjoint_from);
```
npm package: @gaubee/w3c-shim
Description: 一些常见的 [w3c](https://github.com/w3c) 组织的 shim，统一的函数式编程风格，良好的 Tree-Shaking 支持，默认零成本
Latest version: 0.2.1

# @gaubee/w3c-shim

> [中文](./README-zh.md) / [English](./README.md)

This project maintains the same style as @gaubee/util (providing functional programming style to avoid side effects) and offers common shims.
It supports on-demand imports, and for runtimes with native support, there is minimal additional overhead.

1. **scrollend** - Scroll End Event Handling
   - Provides functions to add and remove scrollend event listeners
   - Automatically detects native browser support (Chrome 114+) and falls back to shim implementation
   - The shim implementation:
     - Uses scroll event + timeout detection
     - Handles pointer/touch events to avoid false positives
     - Cleanly manages event listener lifecycle
   - Reference: https://github.com/w3c/csswg-drafts/issues/8607
   - > Note: The shim may have slightly different timing characteristics than native implementation

2. **inert** - Inert Attribute Polyfill
   - Provides element_inert() function to get/set inert state
   - Automatically detects native browser support and falls back to shim implementation
   - The shim implementation:
     - Uses CSS to disable pointer events and user selection
     - Manages aria-hidden state for accessibility
     - Can be applied to any Element
   - Reference: https://html.spec.whatwg.org/multipage/interaction.html#inert
   - > Note: The shim may have slightly different behavior than native implementation in complex DOM scenarios
npm package: @gaubee/web
Description: 一些常见的web-js工具函数
Latest version: 0.8.0

# @gaubee/web

该项目在 @gaubee/util 的基础上，提供了与 Web-API 相关的进一步补充。

## API

-   **`createAdoptedStyleSheets`** 可以获得一个更加易用的 adoptedStyleSheets（用于管理样式表）
    直接改变这个数组的元素，可以直接让样式生效，另外，在数组的基础上，额外增加了一些快捷操作的方法：
    -   扩展 Array-Like 的方法
        -   `remove: (item: CSSStyleSheet) => void`
        -   `toggle: (item: CSSStyleSheet, enable?: boolean) => void`
        -   `replace: (oldItem: CSSStyleSheet | null | undefined, newItem: CSSStyleSheet) => void`
    -   扩展 Map-like 的方法
        -   `has: (key: unknown) => boolean`
        -   `set: (key: unknown, item: CSSStyleSheet) => void`
        -   `delete: (key: unknown) => void`
        -   `get: (key: unknown) => CSSStyleSheet | undefined`
-   **`new CssSheetArray`** 可以获得一个更加易用的 CSSStyleSheet 控制器
    -   扩展属性
        -   `owner: AdoptedStyleSheets | null` 可以附加到某个样式表上，或者移除
        -   `readonly styleSheet: CSSStyleSheet` 获得 CSSStyleSheet 对象本身（请勿直接用它的 API 进行修改）
        -   `readonly size: number` 获得 CSSRule 的数量
    -   扩展 Array-Like 方法
        -   `addRule: (cssText: string, index?: number) => CSSRule | null`
        -   `removeRule: (index: number) => boolean`
        -   `getRule: (index: number) => CSSRule | null`
        -   `[Symbol.iterator]`
    -   扩展 Map-like 的方法
        -   `keys: () => MapIterator<unknown>`
        -   `hasRule: (key: unknown) => boolean`
        -   `setRule: (key: unknown, cssText: string, index?: number) => CSSRule | null`
        -   `deleteRule: (key: unknown) => boolean`
npm package: @gauch_99/react-native-audio-files
Description: This package provides functionality to retrieve all audio files stored on an Android device. With this module, you can easily access and manage audio files within your React Native application.
Author: AbrarVaseem
Latest version: 1.2.1

# react-native-audio-files

This package provides functionality to retrieve all audio files stored on an Android device. With this module, you can easily access and manage audio files within your React Native application.

## Installation

```sh
npm install react-native-audio-files
```

## Usage

```js
import { fetchAudioFiles } from 'react-native-audio-files';

const audioFiles = await fetchAudioFiles();
```

Or Follow Basic Example:

```js
import { fetchAudioFiles } from 'react-native-audio-files';

const [audioFiles, setAudioFiles] = useState([]);

useEffect(() => {
  const getAudioFiles = async () => {
    return await fetchAudioFiles();
  };
  getAudioFiles().then((result) => {
    setAudioFiles(result);
  });
}, []);

return (
  <View>
    {audioFiles?.map((element, index) => {
      return (
        <View key={index}>
          <Text>{element?.title}</Text>
        </View>
      );
    })}
  </View>
);
```

## List of keys available:

| Key           | Description                       | Type    |
|---------------|-----------------------------------|---------|
| __addedDate__ | Added Date Time of the Audio File | String  |
| __album__     | Album of the Audio File           | String  |
| __artist__    | Artist of the Audio File          | String  |
| __audioUrl__  | Path of the Audio File            | String  |
| __duration__  | Duration of the Audio File        | Integer |
| __id__        | Unique Id of the Audio File       | String  |
| __imageUrl__  | Image of the Audio File           | String  |
| __size__      | Size of the Audio File            | String  |
| __title__     | Title of the Audio File           | String  |

### Note:
1. __addedDate__ is of type UNIX Timestamp, to convert it into the required time format of __YYYY-MM-DD HH:MM:SS__

```js
const formattedDateTime = new Date(addedDate * 1000).toISOString().slice(0, 19).replace('T', ' ');
```

2. __Make sure you have permissions granted from User for Reading Storage according to the Android Versions or you wont be able to fetch files.__

```js
Example: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT