open-index/open-npm huggingface dataset:
npm package: @ipmanlk/spotify-grab
Description: spotify-grab  ====================== Extract useful metadata from various Spotify URIs.
Author: ipmanlk
Latest version: 1.1.0

spotify-grab 
======================
Extract useful metadata from various Spotify URIs. 

## Installation
```
npm i @ipmanlk/spotify-grab
```

## Usage

### getInfo(URI) ⇒ <code>Promise.&lt;(Spotify.Info\|undefined)&gt;</code>
**Kind**: global function  
**Returns**: <code>Promise.&lt;(Spotify.Info\|undefined)&gt;</code> - - Data extracted from the URI.  
**Throws**:

- <code>SPOTIFY\_URI\_PARSE\_ERROR</code> - Unable to parse the given URI.
- <code>SPOTIFY\_UNSUPPORTED\_URI\_TYPE</code> - Given URI is not supported.
- <code>SPOTIFY\_REQUEST\_FAILED</code> - Failed to send a request to Spotify.


| Param | Type | Description |
| --- | --- | --- |
| URI | <code>string</code> | Spotify URI in any format. Only URIs for tracks, artists, albums and playlists are supported. |

**Example**  
```js
const { getInfo } = require("@ipmanlk/spotify-grab")

const URI = "https://open.spotify.com/track/6habFhsOp2NvshLv26DqMb?si=FkyYtDchRW-L8L2BlCweRw"

getInfo(URI).then(data => {
		console.log(data);
}).catch(error => {
		console.log(error);
});

 //* Output of the above code will take following shape,
{
  "type": "track", //* Type of the input URI
  "track": {       //* Object with the name of above type (dynamic)
    "id": "6habFhsOp2NvshLv26DqMb",
    "name": "Despacito",
    "preview_url": "https://p.scdn.co/mp3-preview/ce2ad348fa47",
    "album": {
      "name": "VIDA"
    },
    "explicit": false,
    "artists": [
      {
        "id": "4V8Sr092TqfHkfAA5fXXqG",
        "name": "Luis Fonsi",
        "uri": "spotify:artist:4V8Sr092TqfHkfAA5fXXqG"
      }
    ]
  }
}
```
npm package: @ipmanlk/subasa-api
Description: Javascript API for Subasa Sinhala spell checker
Author: Navinda Dissanayake
Latest version: 1.3.1

<a href="http://speller.subasa.lk/">
    <img src="https://i.imgur.com/gBcNlON.png" alt="Subasa logo" title="Subasa" align="right" height="60" />
</a>

# Subasa API
_Javascript API for the Subasa Sinhala spell checker_

## Usage

Download node from nodejs.org and install it, if you haven't already.

Then install subasa-api using npm or yarn.

```javascript
npm install @ipmanlk/subasa-api --save
```

Example,

```javascript
const { correct } = require("@ipmanlk/subasa-api");

const text = "මථකය (ස්මෘතිය) යනු ජීවියෙකු තුළ තොරතුරු ගබඩා කිරීමට සහ ඉන්පසුව එම තොරතුරු ණැවත එලි දැක්වීමට ඇති හැකියාවයි.";

correct(text).then(data => {
    console.log("corrected text: ", data.text);
    console.log("corrections: ", data.corrections);
});
```
npm package: @ipoa/stylelint-config
Description: stylelint config of ipoa.
Author: ipoa
Latest version: 1.0.8

# Stylelint Config of ipoa

## Install

```shell
# with npm
npm i @ipoa/stylelint-config -D
# with yarn
yarn add @ipoa/stylelint-config -D
# with pnpm
pnpm add @ipoa/stylelint-config -D
```

## Usage
Configuration file `.stylelintrc` or `.eslintrc`
```json

{
  "extends": ["@ipoa/stylelint-config"]
}
```
npm package: @ipoodle/mars-cli
Description: mars cli is for project tools
Author: Haines
Latest version: 1.1.0

## 快速开始

### 安装

```javascript
npm  install @ipoodle/mars-cli -g
```



### 使用

- **快速生成项目**

  ```javascript
  oc  create <project name>
  
  如：oc create my-app
  ```

- **选择你要生成的项目类型**

  1. PC项目
  2. H5项目
  3. SSR项目

- **一些很有趣的扩展，etc...**
npm package: @ipoodle/mars-form
Description: ## Project setup ``` yarn install ```
Author: ipoodle
Latest version: 1.0.3

# pro-next

## Project setup
```
yarn install
```

### Compiles and hot-reloads for development
```
yarn serve
```

### Compiles and minifies for production
```
yarn build
```

### Lints and fixes files
```
yarn lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
npm package: @iportfolio/c2g
Description: iPortfolio의 CodeCommit 저장소를 Github 저장소로 옮겨주는 사내용 도구입니다.
Author: @ipf/mkang
Latest version: 1.0.1

# ipf-c2g

iPortfolio의 CodeCommit 저장소를 Github 저장소로 옮겨주는 사내용 도구입니다.

## 사용법

```
npx ipf-c2g <CodeCommit 저장소 이름> [Github 저장소 이름]
```

- CodeCommit 저장소 이름: 필수값
- Github 저장소 이름: 선택값 (명시하지 않으면 CodeCommit 저장소와 동일한 이름으로 생성합니다. )

## 선행 조건

- iPortfolio CodeCommit 저장소에 접근이 가능한 컴퓨터에서 실행합니다.
  - CodeCommit에 SSH key 등록이 되어 있어야 합니다.
- iPortfolio Github 저장소에 접근이 가능한 컴퓨터에서 실행합니다.
  - Github에 SSH key 등록이 되어 있어야 합니다.
- [github cli 실행 환경](https://github.com/cli/cli#installation)이 필요합니다.
  - github cli를 통해 로그인이 되어 있어야 합니다. (최초 실행시 1회)
    ```
    gh auth login
    ```
- [nodejs 12+ 실행 환경](https://nodejs.org/en/)이 필요합니다.

## 이 도구가 실제로 하는 일

1. 지정한 CodeCommit 저장소를 임시 디렉토리에 클론합니다.
2. 새 Github 저장소를 비공개 및 ipf-dev가 오너인 상태로 생성합니다.
3. 클론한 저장소를 Github 저장소에 푸시합니다.
4. 임시 디렉토리를 삭제합니다.

## 유의점

- 저장소의 Description 정보는 자동으로 옮겨주지 않습니다.

## 이 도구의 특징

### 아주 약간, 정말 아주 약간 더 편합니다.

어쩌면 수동으로 하는 것이 더 안전하고 편할지도 모릅니다.

### 안전(?)합니다.

보안상 민감할 수 있는 인증 관련 정보는 모두 당신의 컴퓨터 환경에 의존합니다.  
코드가 직접 인증 정보를 가지고 있거나 저장하지 않습니다.

### 힙합니다.

나온 지 한 달도 채 되지 않은 github cli 도구를 사용합니다.(딱 한 줄)  
이렇게 힙할 수가 없습니다.

### 썩 우아하지는 않은 도구입니다.

예외 상황이 발생할 경우 결국 수동으로 해야할 수 있습니다.
npm package: @ippei523/token-usage-face
Description: A terminal character that watches local AI activity and changes expression from usage pressure.
Latest version: 0.2.0

# token-face

`token-face` is a CLI application that watches local AI usage activity and turns it into a terminal character whose status and facial expression change with usage pressure.

The code is split by responsibility: CLI entrypoint, provider adapters, status calculation, rendering, diagnostics, notifications, and JSON serving are separated so new providers can be added without rewriting the UI.

It reads local Codex state from `~/.codex` by default, so after installation anyone can run it on their own machine without editing the source.

## Install

```bash
npm install -g @ippei523/token-usage-face
```

Or from a local directory:

```bash
npm install -g .
```

After install, run:

```bash
token-face
```

## Usage

```bash
token-face
token-face status
token-face watch
token-face json
token-face help
token-face status --provider codex
token-face status --provider claude
token-face doctor
token-face notify
token-face serve --port 4311
token-face watch --theme robot --notify-at 70,85,100
```

`token-face` without arguments stays resident and refreshes the expression view every 5 seconds.

## Optional environment variables

`CODEX_HOME`
: Override the Codex data directory. Default is `~/.codex`.

`TOKEN_FACE_DAILY_TOKEN_LIMIT`
: Optional daily token cap. Used for `rate` and `limit`.

`TOKEN_FACE_USD_PER_1M_TOKENS`
: Optional flat token price used only for estimated cost.

`TOKEN_FACE_DAILY_BUDGET_USD`
: Optional daily budget. If set together with `TOKEN_FACE_USD_PER_1M_TOKENS`, the pet reacts more strongly to overspending.

`TOKEN_FACE_PROVIDER`
: Optional default provider. Supported values are `auto`, `codex`, and `claude`.

`TOKEN_FACE_THEME`
: Theme name for the character. Supported values are `default`, `wa`, `office`, `shojo`, and `robot`.

`TOKEN_FACE_NOTIFY_AT`
: Comma-separated notify thresholds, for example `70,90,100`.

`TOKEN_FACE_PORT`
: Default port for `serve` and `daemon`.

## Notes

- The app uses local Codex session data and requires the `sqlite3` command to be available in your environment.
- If actual billing data is not available locally, the pet falls back to token pressure and activity density.
- `claude` is scaffolded as a provider adapter, but its local usage parsing still needs to be implemented against your actual Claude data files.
- `doctor` checks local prerequisites and provider detection.
- `serve` and `daemon` expose the current snapshot at `/snapshot` for future menu bar or GUI clients.
npm package: @ipr/nexus-bridge
Description: A low-level interface for Siebel Open UI
Author: Idea Port Riga
Latest version: 2.0.0

# Nexus Bridge

## Development

```bash
yarn
yarn build
```

## Installation

```bash
yarn add @ipr/nexus-bridge
```

## References

- [@ipr/nexus-bridge][1]

[1]: (https://www.npmjs.com/package/@ipr/nexus-bridge)
npm package: @ipr/nexus-factory
Description: Factory of Nexus singletons
Author: Idea Port Riga
Latest version: 1.0.0

# Nexus Factory

> Factory of `Nexus` singletons

## Development

```bash
yarn
yarn build
```

## Installation

```bash
yarn add @ipr/nexus-factory
```

## References

- [@ipr/nexus-factory][1]

[1]: (https://www.npmjs.com/package/@ipr/nexus-factory)
npm package: @ipr/nexus-form-state
Description: > `Nexus Form` API between `Nexus Bridge` and React components with state container
Author: Idea Port Riga
Latest version: 1.0.0

# @ipr/nexus-form-state

> `Nexus Form` API between `Nexus Bridge` and React components with state container

## Development

```bash
yarn
yarn build
```

## Installation

```bash
yarn add @ipr/nexus-form-state
```

## Usage

1. Create an initial state for the form applet:

```tsx
import { ControlState, FormState } from '@ipr/nexus-form-state'

const controlState: ControlState = {
  label: '',
  value: '',
  readonly: false,
  required: false,
  displayFormat: ''
}

const initialState: FormState = {
  Id: controlState,
  Description: controlState
}
```

2. Add an integration within React component:

```tsx
import * as React from 'react'
import { useFormState } from '@ipr/nexus-form-state'
import { InputField } from '@ipr/nexus-react-components'

interface FormProps {
  appletName: string
  initialState: FormState
}

const FormApplet: React.FunctionComponent<FormProps> = ({
  appletName,
  initialState
}) => {
  const [formApi, formState, initialValues, isLoading] = useFormState(
    appletName,
    initialState
  )

  const { saveRecord, setControlValue } = formApi

  return React.useMemo(
    () =>
      !isLoading && (
        <Formik initialValues={initialValues} onSubmit={saveRecord}>
          {({ values, errors, touched, handleChange, handleBlur }) => (
            <Form>
              <InputField
                name="Description"
                label="Description"
                value={values['Description'] as string}
                required={formState['Description'].required}
                readonly={formState['Description'].readonly}
                isTouched={touched && touched['Description']}
                errorMessage={errors && errors['Description']}
                handleChange={handleChange}
                handleBlur={handleBlur}
                setFieldValue={setControlValue}
              />
            </Form>
          )}
        </Formik>
      ),
    [formState, initialValues, isLoading, saveRecord, setControlValue]
  )
}
```

## References

- [@ipr/nexus-form-state][1]

[1]: (https://www.npmjs.com/package/@ipr/nexus-form-state)
npm package: @ipr/nexus-list-applet
Description: > `Nexus List` API between `Nexus Bridge` and React components w/ state container
Author: Idea Port Riga
Latest version: 1.0.0

# @ipr/nexus-list-applet

> `Nexus List` API between `Nexus Bridge` and React components w/ state container

## Development

```bash
yarn
yarn build
```

## Installation

```bash
yarn add @ipr/nexus-list-applet
```

## Usage

```tsx
import * as React from 'react'
import { FormValues } from '@ipr/nexus-form-state'
import { useListApplet } from '@ipr/nexus-list-applet'

interface FormProps {
  appletName: string
}

const ListApplet: React.FunctionComponent<FormProps> = ({ appletName }) => {
  const [
    listApi,
    listState,
    currentPage,
    currentPosition,
    isLoading
  ] = useListApplet(appletName)

  const { gotoPage, setPosition } = listApi

  return React.useMemo(
    () =>
      !isLoading && (
        <table>
          {listState.map((rec: FormValues, idx) => (
            <tr onClick={() => setPosition(idx)}>
              <td>{rec['Id']}</td>
              <td>{rec['Description']}</td>
            </tr>
          ))}
        </table>
      ),
    [currentPage, currentPosition, listState, setPosition]
  )
}
```

## References

- [@ipr/nexus-list-applet][1]

[1]: (https://www.npmjs.com/package/@ipr/nexus-list-applet)
npm package: @ipr/nexus-react-components
Description: > React components integrated with `Nexus` APIs
Author: Idea Port Riga
Latest version: 1.0.0

# @ipr/nexus-react-components

> React components integrated with `Nexus` APIs

## Development

```bash
yarn
yarn build
```

## Installation

```bash
yarn add @ipr/nexus-react-components
```

## Usage

Minimum valuable example:

```tsx
import { InputField } from '@ipr/nexus-react-components'
import { Formik } from 'formik'

const Form: React.FunctionComponent = () => (
  <Formik initialValues={initialValues}>
    {({ values, errors, touched, handleChange, handleBlur }) => (
      <InputField
        name="title"
        label="Title"
        value={values.title}
        handleChange={handleChange}
        handleBlur={handleBlur}
        isTouched={touched && touched[name]}
        errorMessage={errors && errors[name]}
      />
    )}
  </Formik>
)
```

Integration with Nexus:

- create a custom api or use one from the default package `@ipr/nexus-form-state`
- pass the default or a custom handler as `setFieldValue` as prop to `InputField`
- call the Nexus method `setControlValue` from the custom handler manually

```tsx
import { useFormState } from '@ipr/nexus-form-state'
import { InputField } from '@ipr/nexus-react-components'

const FormApplet: React.FunctionComponent<FormProps> = ({
  appletName,
  initialState
}) => {
  const [api] = useFormState(appletName, initialState)

  return <InputField {...props} setFieldValue={api.setFieldValue} />
}
```

## References

- [@ipr/nexus-react-components][1]

[1]: (https://www.npmjs.com/package/@ipr/nexus-react-components)
npm package: @ipr/vuex-graphql-api
Description: Vuex plugin for GraphQL API
Author: Idea Port Riga
Latest version: 2.0.2

# @ipr/vuex-graphql-api

Vuex plugin for GraphQL API

## Installation

```bash
yarn add @ipr/vuex-graphql-api
```

## Usage

The plugin leverages `provide` and `inject` from the Composition API internally and exposes `provideStore` and `useStore` composition functions.

1. Init the Apollo client and Vuex store using the `provideStore` function:

```ts
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
import { provideStore } from '@ipr/vuex-graphql-api'
import App from './App.vue'

Vue.use(VueCompositionApi)

new Vue({
  setup() {
    provideStore('http://localhost:4000/graphql', null)
  },
  store,
  render: h => h(App)
}).$mount('#app')
```

2. Connect the API to the components with `useStore` function, then:

- trigger actions using the Vuex `dispatch` method with the Apollo `query` payload
- access store state through the Vuex `getters` property

```ts
import Vue from 'vue'
import { Store } from 'vuex'
import { useStore } from '@ipr/vuex-graphql-api'
import { getEntities, getEntityById } from '@/graphql/queries.gql'

export default {
  name: 'app',
  props: {
    api: Object as () => Store<any>
  },
  setup() {
    return {
      api: useStore()
    }
  },
  computed: {
    items() {
      return Object.values(
        this.api.getters.data?.todo?.todo || []
      )
    },
    selected() {
      return Object.create(
        this.api.getters.active?.todo?.todoById || {}
      )
    }
  },
  mounted() {
    this.fetchData('todo')
  },
  methods: {
    async fetchData(typename) {
      await this.api.dispatch('findMany', {
        typename,
        query: getEntities
      })

      const { id } = this.items[0]

      await this.api.dispatch('findOne', {
        typename,
        query: getEntityById,
        variables: { id }
      })
    }
  }
}
```
npm package: @iprefer/icons
Description: vant icons
Latest version: 1.0.0

# Vant Icons

## Install

#### NPM

```shell
npm i @vant/icons -S
```

#### YARN

```shell
yarn add @vant/icons
```

## Document

- [Usage in Vue](https://youzan.github.io/vant/#/zh-CN/icon)
- [Usage in Weapp](https://youzan.github.io/vant-weapp/#/icon)

## Contribution

### Update Icons

1. Update assets/icons.sketch
2. Make a Pull Request

### Add New Icon

1. Add new icon to assets/icons.sketch
2. Add icon name to src/config.js
3. Make a Pull Request
npm package: @ipregistry/chart.js
Description: Simple HTML5 charts using the canvas element (adapted for ES6 module imports).
Latest version: 2.8.0-esm.1

<p align="center">
    <img src="https://www.chartjs.org/media/logo-title.svg"><br/>
    Simple yet flexible JavaScript charting for designers & developers
</p>

<p align="center">
    <a href="https://www.chartjs.org/docs/latest/getting-started/installation.html"><img src="https://img.shields.io/github/release/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Downloads"></a>
    <a href="https://travis-ci.org/chartjs/Chart.js"><img src="https://img.shields.io/travis/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Builds"></a>
    <a href="https://coveralls.io/github/chartjs/Chart.js?branch=master"><img src="https://img.shields.io/coveralls/chartjs/Chart.js.svg?style=flat-square&maxAge=600" alt="Coverage"></a>
    <a href="https://github.com/chartjs/awesome"><img src="https://awesome.re/badge-flat2.svg" alt="Awesome"></a>
    <a href="https://chartjs-slack.herokuapp.com/"><img src="https://img.shields.io/badge/slack-chartjs-blue.svg?style=flat-square&maxAge=3600" alt="Slack"></a>
</p>

## Documentation

- [Introduction](https://www.chartjs.org/docs/latest/)
- [Getting Started](https://www.chartjs.org/docs/latest/getting-started/)
- [General](https://www.chartjs.org/docs/latest/general/)
- [Configuration](https://www.chartjs.org/docs/latest/configuration/)
- [Charts](https://www.chartjs.org/docs/latest/charts/)
- [Axes](https://www.chartjs.org/docs/latest/axes/)
- [Developers](https://www.chartjs.org/docs/latest/developers/)
- [Popular Extensions](https://github.com/chartjs/awesome)
- [Samples](https://www.chartjs.org/samples/)

## Contributing

Instructions on building and testing Chart.js can be found in [the documentation](https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md#building-and-testing). Before submitting an issue or a pull request, please take a moment to look over the [contributing guidelines](https://github.com/chartjs/Chart.js/blob/master/docs/developers/contributing.md) first. For support, please post questions on [Stack Overflow](https://stackoverflow.com/questions/tagged/chartjs) with the `chartjs` tag.

## License

Chart.js is available under the [MIT license](https://opensource.org/licenses/MIT).