open-index/open-npm huggingface dataset:
npm package: @ozkxr/match
Description: An JavaScript library to test JSON with some nice features
Author: Oscar Menéndez
Latest version: 0.1.0
Deprecated: This package has been renamed to match-json

# match #

An JavaScript library to test JSON with some nice features.

## Install ##
I put it in my own npm scope because `match` is another existent lib and I have a big trouble naming things. Any suggestion is welcome.
```
npm install @ozkxr/match
```

## But, what it does? ##

Of course, match JSON objects.

You can compare primitives.

```javascript
// Numbers
match(3.1415, 3.1415) // => true
//Strings
match('Uno Dos Tres', 'Uno Dos Tres') // => true
// Booleans
match(false, false) // => true
// And with undefined and null values
match(undefined, undefined) // => true
match(null, null)  // => true
```
And structures (objects and arrays).

```javascript
match({ name: 'Link', color: 'green' }, { name: 'Link', color: 'green' }) // => true
match([ 'deku', 'goron', 'zora' ], [ 'deku', 'goron', 'zora' ]) // => true
```

### But the nice part starts here ###

You can match using functions

```javascript
// Yeah, with functions!
match({ name: 'Samus' }, hero => hero.name.length >= 5) // => true
```

And regular expressions

```javascript
// Yeah, with RegExp too!
match('Kvothe', /K*o*t*e/) // => true
```

And everything together!

```javascript
match({
        name: { first: 'Walter', last: 'White' },
        age: 51
      },
      {
        name: { first: /[\w]*/, last: 'White' },
        age: age => age > 18
      }); // => YEAH, true!
```

### Bake ###

Also, you can also predefine an pattern to test JSON.

```
const nameIsLarge = match.bake({ name: name => name.length > 10  })
nameIsLarge('Tom') // => false :(
nameIsLarge('Tooooooooom') // => true :D
```

## Notes ##

* Is worth to mention that you only can use JSON-data as the first argument
of the function. Not functions or RegExp.
* I made this for test my API endpoints, thats why it only acepts to test JSON data.

## Contribution ##

Feel free to open an issue and/or make a PR if you found a bug or think in a way this lib or even the README can be improved.

## License ##

MIT
npm package: @ozo/cra-rewired
Description: react-scripts rewired.
Author: jazz.KK
Latest version: 1.0.7

## 注意事项

以下功能需要单独安装对应的包才能使用。

- 骨架屏 prerender： prerender-spa-plugin
- 热更新： react-hot-loader / react-app-rewire-hot-loader
- ice 按需加载：webpack-plugin-import
- dropConsole：drop-console-webpack-plugin

yarn start/build 参数：

- --prerender 启用骨架屏
- --smp 启用打包速度分析
- --debug 启用 vConsole

### bug 记录

// customize-cra 1.0 及以前部分版本对于 eslint 的引入存在自定义不生效的 bug，通过 useEslintConfig 方法覆盖 CRA 默认的 eslint 规则

```
// 默认目录,./.eslintrc.js
useEslintConfig()
// 自定义目录
useEslintConfig(require('./.eslintrc.js'))
```

# 支持 antd-mobile 的 less 样式覆盖

```
// antd-mobile.js
module.export = {
    // antd-mobile的less变量
}

```

```
// config-overrides.js

const antdMobileTheme = require(getTheme(pkgJSON)["antd-mobile"]) || {};
module.exports = override(
    ...
    addLessLoader({
        lessOptions: {
            modifyVars: antdMobileTheme,
            javascriptEnabled: true,
        },
    }),
    ...
);
```
npm package: @ozo/dealer-list
Description: 门店列表
Latest version: 1.0.1

# 门店列表

@ozo/dealer-list

门店列表

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/dialog-transfer
Description: 支持层级结构的穿梭框
Latest version: 1.0.0

# DialogTransfer

@ozo/dialog-transfer

支持层级结构的穿梭框

## API

| 参数名           |                                     说明                                     |        必填        |               类型                |   默认值   | 备注 |
| ---------------- | :--------------------------------------------------------------------------: | :----------------: | :-------------------------------: | :--------: | ---- |
| **dataSource**   |         `渲染数据，[{key:'',label:'', children:[], disabled:bool}]`          | :white_check_mark: |              `Array`              |            |
| **defaultValue** | `右侧选区的初始值，数组类型，如[1,2,3,] ，单个值为dataSource里单个对象的key` |        :x:         |              `Array`              |    `[]`    |
| **footerAlign**  |                      `底部按钮的对齐方式, 默认为center`                      |        :x:         | `Enum('left', 'center', 'right')` | `'center'` |
| **onCancel**     |                                  `点击取消`                                  |        :x:         |            `Function`             |            |
| **onClose**      |                                  `关闭回调`                                  |        :x:         |            `Function`             |            |
| **onOk**         |                                  `点击确定`                                  |        :x:         |            `Function`             |            |
| **showSearch**   |                                  `显示搜素`                                  |        :x:         |             `Boolean`             |   `true`   |
| **title**        |                                    `标题`                                    |        :x:         |            `ReactNode`            |            |
| **tree**         |                                 `是否树结构`                                 | :white_check_mark: |             `Boolean`             |            |
| **visible**      |                                  `是否显示`                                  | :white_check_mark: |             `Boolean`             |            |

> 其他属性参考@alifd/next 组件库中的穿梭框 Transfer 组件、树形列表 Tree 组件。
npm package: @ozo/formily
Description: use dynamic data to render form/table
Latest version: 1.0.4

@ozo/formily

基于阿里巴巴[ Formily库 ](https://formilyjs.org/#/bdCRC5/BlUJUaiw)二次封装


# DynamicForm

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |


# DynamicTable

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/icon
Description: react Icon
Latest version: 1.0.4

# Icon

@ozo/icon

react Icon

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/lazy-loader
Description: the lazy loader for React, React.Suspense，React.lazy Ready.
Latest version: 1.0.5

@ozo/lazy-loader

lazy loader for React

## 环境

- React v16.3+
- webpack 4.6+

## Install

```
npm install @ozo/lazy-loader
```

## API

该库可用于动态加载 React 组件或其他工具库。

### React 组件动态导入，支持自定义加载动画

- @param {Function} func 返回动态引入的函数, 如 ()=>import('./a/b/c')
- @param {Function} spinner 加载的的 loading, 默认为 loadSpinner
- @returns {Component} React 组件

#### 采用 React 原生的 Suspense，lazy 实现 lazyload

lazy (function, spinner)

> React.lazy 的具体用法：https://reactjs.org/docs/code-splitting.html#reactlazy

#### 采用@loadable/component 组件实现

- lazyX (function, spinner)
- loadable (function, spinner)
- loadableDelay (promise, delay = 200, spinner) ：支持延时加载
- loadableTimeout (promise, time = 5000, spinner) ：支持加载超时

### lib 动态导入

可以延迟加载指定库,当库加载完后需要通过 render props called 或 ref 来取值。

- @param {Function} func 返回动态引入的函数, 如 ()=>import('./a/b/c')
- @returns {Component} React 组件

---

- lazyLib (func)：需要采用<Suspense fallback={xxx}></Suspense>包裹。

```jsx
const Moment = lazyLib(() => import("moment"));

function FromNow({ date }) {
  return (
    <Suspense fallback={<div>loading</div>}>
      <Moment fallback={date.toLocaleDateString()}>
        {({ default: moment }) => moment(date).fromNow()}
      </Moment>
    </Suspense>
  );
}

<FromNow date={new Date()} />;
```

- loadableLib (func)：具体用法请参考： https://www.smooth-code.com/open-source/loadable-components/docs/library-splitting/

> @loadable/component 支持服务端渲染，具体用法请参考：https://www.smooth-code.com/open-source/loadable-components/

### React.lazy 和@loadable/component 组件的区别

https://www.smooth-code.com/open-source/loadable-components/docs/loadable-vs-react-lazy/

#### webpack 的 动态导入特性

Magic Comments：https://webpack.js.org/api/module-methods/#magic-comments

### 扩展使用

#### 利用 loadable 进一步封装

利用 loadable 进一步封装生成 AsyncLoad 组件，通过组件方式加载，可以避免繁琐的变量定义。适合在项目本地封装使用，例如路由统一配置表中（统一引入路径），注意使用场景及组件的路径匹配。

```jsx
// ./src/App.js

import { loadable } from "@ozo/lazy-loader";

// 动态加载组件的组件,支持自定义加载动画
const AsyncLoad = loadable(({ path }) => import(path));

function MyComponent() {
  return (
    <div>
      <AsyncLoad path="./Home" />
      <AsyncLoad path="./Contact" />
    </div>
  );
}
```

> import()中的相对路径相对于 import 语句所在的文件，无法通过工具包进一步封装。
npm package: @ozo/radio
Description: 单选列表for移动端
Latest version: 1.0.3

# 单选列表（移动端）

@ozo/radio

单选列表for移动端

## Radio 组件用法

Radio 组件包括 RadioGroup、Radio 两个子组件，需要配合使用。

#### RadioGroup 具有三个属性

-   name：必须，RadioGroup 的 name,用于对 Radio 进行分组
-   selectedValue：必须，RadioGroup 数据回填的对应字段
-   onChange：RadioGroup 值变化是触发的函数

#### Radio 具有两个属性

-   value：必须，按钮选中所对应的值
-   disabled：按钮是否禁用

### 用法

1.  在需要引用 Radio 的页面或组件中引入组件

```
import { RadioGroup, Radio } from "../../components/Radio";
```

2.  在需要引用 Radio 的页面或组件中添加状态：

```
this.state = {
    selectedValue : 'React'
}
```
> mobx 等状态管理放到对应的 store

3.  在需要引用 Radio 的页面或组件中添加选中 Radio 子项后的回调方法

```
handleChange(value, index, event){
    console.log('change');
    console.log(value);
    this.setState({selectedValue:value});
}
```

4.  jsx 部分引入以下结构

```
<RadioGroup name="platform" selectedValue={this.state.selectedValue} onChange={this.handleChange}}>
    <Radio value="1" disabled="true">React</Radio>
    <Radio value="2">VUE</Radio>
    <Radio value="3">jQuery</Radio>
</RadioGroup>
```

> Radio 组件的位置可以不是直接子元素。


## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/test
Description: 新版ice-scripts组件开发测试
Latest version: 1.0.2

# demo component

@ozo/test

intro component

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/test2
Description: 旧版ice-scripts组件开发测试
Latest version: 1.0.1

# demo component

@ozo/test

intro component

## API

| 参数名 | 说明 | 必填 | 类型 | 默认值 | 备注 |
| ------ | ---- | ---- | ---- | ------ | ---- |
|        |      |      |      |        |      |
npm package: @ozo/toxic-cli
Description: 前端开发脚手架CLI
Author: inier
Latest version: 1.0.2

# Toxic

跨平台的前端脚手架工具，目前支持 Vue 和 React 的模板工程创建。

## 运行环境

[node 10+](https://nodejs.org)，推荐 13+

[git](https://git-scm.com/downloads)

## 编辑器[推荐]

[Visual Studio Code](https://code.visualstudio.com/)

## 安装 CLI

> npm install -g @ozo/toxic-cli
npm package: @ozo/toxic-ui
Description: Mobile UI Components built in React.
Author: jazz.KK
Latest version: 1.0.1

# **Vant React**

[![npm version](https://badge.fury.io/js/vant-react.svg)](https://badge.fury.io/js/vant-react)
[![NPM](https://img.shields.io/npm/l/vant-react)](LICENSE)
![Test CI](https://github.com/mxdi9i7/vant-react/workflows/Test%20CI/badge.svg)
[![Netlify Status](https://api.netlify.com/api/v1/badges/30ddabc0-3eb6-4530-ab08-58db247a2b48/deploy-status)](https://vant.bctc.io)
[![Storybook](https://cdn.jsdelivr.net/gh/storybookjs/brand@master/badge/badge-storybook.svg)](https://vant.bctc.io)

Lightweight Mobile UI Components built on Typescript and React in under 2kb!

## **Features**

* Support Typescript
* 60+ Reusable components
* 100% Storybook coverage: [https://vant.bctc.io](https://vant.bctc.io)
* Extensive documentation and demos

## Install

```text
# Using npm
npm i @ozo/toxic-ui -S

# Using yarn
yarn add @ozo/toxic-ui
```

## Quickstart

```text
import React from 'react';
import { Button } from '@ozo/toxic-ui';
import '@ozo/toxic-ui/dist/index.css';

const App = () => {
    return (
        <Button text='Hello World' />
    );
};
```

## Components completion status

### Basic Components

* [x] Button
* [ ] Cell
* [x] Icon
* [ ] Image
* [ ] Layout
* [ ] Popup
* [x] Built-in style

### Form Components

* [ ] Calendar
* [ ] Checkbox
* [ ] DatetimePicker
* [x] Field
* [ ] Form
* [ ] NumberKeyboard
* [ ] PasswordInput
* [ ] Picker
* [ ] Radio
* [x] Rate
* [x] Search
* [ ] Slider
* [ ] Stepper
* [ ] Switch
* [ ] SwitchCell
* [ ] Uploader

### Action Components

* [ ] ActionSheet
* [ ] Dialog
* [ ] DropdownMenu
* [ ] Loading
* [ ] Notify
* [ ] Overlay
* [ ] PullRefresh
* [ ] ShareSheet
* [ ] SwipeCell
* [ ] Toast

### Display Components

* [ ] Circle
* [ ] Collapse
* [ ] CountDown
* [ ] Divider
* [ ] Empty
* [ ] ImagePreview
* [ ] Lazyload
* [ ] List
* [ ] NoticeBar
* [ ] Panel
* [ ] Progress
* [ ] Skeleton
* [ ] Steps
* [ ] Sticky
* [ ] Swipe
* [x] Tag

### Navigation Components

* [ ] Grid
* [ ] IndexBar
* [x] NavBar
* [ ] Pagination
* [ ] Sidebar
* [ ] Tab
* [ ] Tabbar
* [ ] TreeSelect

### Business Components

* [ ] AddressEdit
* [ ] AddressList
* [ ] Area
* [ ] Card
* [ ] Contact
* [ ] Coupon
* [ ] GoodsAction
* [ ] SubmitBar
* [ ] Sku

### Deprecated

* [ ] SwitchCell

## Contribution

Please make sure to read the[ Contributing Guide](.github/CONTRIBUTION.md) before making a pull request.

Or, join our discussion group on Wechat by adding me!

![Wechat QR code](https://github.com/mxdi9i7/Vant-react-docs/blob/master/.gitbook/assets/qr.png)

## Browser Support

Modern browsers and Android 4.0+, iOS 8.0+.

## Open Source License

This is an Open Source Software operating under the [MIT](https://github.com/mxdi9i7/vant-react/blob/master/LICENSE) License.
npm package: @ozon-mcp/mcp-server
Description: MCP server for Ozon Performance API tools.
Latest version: 0.1.3

# `@ozon-mcp/mcp-server`

MCP server for Ozon Performance API tools.

## Default usage

The published package starts on stdio by default:

```bash
npx @ozon-mcp/mcp-server
```

Install credentials and Claude Desktop config on macOS:

```bash
npx @ozon-mcp/mcp-server install
```

Initialize credentials only:

```bash
npx @ozon-mcp/mcp-server init
npx @ozon-mcp/mcp-server doctor
```

Add it to Codex:

```bash
codex mcp add ozon-mcp -- npx -y @ozon-mcp/mcp-server
```

## Credential storage

The server uses one local `.env` file:

- macOS: `~/Library/Application Support/ozon-mcp/.env`
- Windows: `%APPDATA%/ozon-mcp/.env`
- Linux: `${XDG_CONFIG_HOME:-~/.config}/ozon-mcp/.env`

Manual file format:

```bash
OZON_CLIENT_ID=<your_client_id>
OZON_CLIENT_SECRET=<your_client_secret>
```

On macOS, `install` also updates:

- `~/Library/Application Support/Claude/claude_desktop_config.json`

with:

```json
{
  "mcpServers": {
    "ozon-mcp": {
      "command": "npx",
      "args": ["-y", "@ozon-mcp/mcp-server"]
    }
  }
}
```

Optional values in the same file:

```bash
MCP_PORT=3000
OZON_API_BASE_URL=https://api-performance.ozon.ru
OZON_TOKEN_PATH=/api/client/token
OZON_MCP_VERSION_HASH=<override_hash>
OZON_MCP_VERSION_HASH_SEED=<custom_seed>
```

## Tool behavior

- `handshake`, `init`, and `doctor` are available without auth.
- Ozon tools remain visible even when auth is missing.
- Guarded Ozon tool calls return setup guidance instead of crashing the server.

## HTTP mode

Use HTTP explicitly when self-hosting or developing locally:

```bash
npx @ozon-mcp/mcp-server --transport http
```

For repo development:

```bash
pnpm install
cp ../../.env.example ../../.env
pnpm dev
```
npm package: @ozone-ui/core
Description: OzoneUi Core
Author: Husam Nasrallah
Latest version: 0.0.15

# new-ui-ts

This template should help get you started developing with Vue 3 in Vite.

## Recommended IDE Setup

[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).

## Type Support for `.vue` Imports in TS

TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:

1. Disable the built-in TypeScript Extension
    1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
    2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.

## Customize configuration

See [Vite Configuration Reference](https://vitejs.dev/config/).

## Project Setup

```sh
yarn
```

### Compile and Hot-Reload for Development

```sh
yarn dev
```

### Type-Check, Compile and Minify for Production

```sh
yarn build
```

### Run Unit Tests with [Vitest](https://vitest.dev/)

```sh
yarn test:unit
```

### Run End-to-End Tests with [Cypress](https://www.cypress.io/)

```sh
yarn build
yarn test:e2e # or `yarn test:e2e:ci` for headless testing
```

### Lint with [ESLint](https://eslint.org/)

```sh
yarn lint
```
npm package: @ozrageharm/blackbox-ai
Description: This is a reverse engineered Node.js API wrapper for [https://blackbox.ai/](https://blackbox.ai/)
Author: Oz RAGE Harm
Latest version: 2.1.0

# Blackbox AI

- This is a reverse engineered Node.js API wrapper for [blackbox.ai](https://blackbox.ai/)

## Installation

```bash
npm i @ozrageharm/blackbox-ai
```

## Usage
- This is an example of what using the AI could look like, this example uses Deepseek's R1 model

```javascript
const blackbox = require('@ozrageharm/blackbox-ai'); // import the library

// call the 'chat' function and input an ai model 
// (ex. deepseek r1) and enter a query, 
// then output the result to the console
const output = blackbox.chat(blackbox.models.deepseek.r1, "Hello, how are you?").data;
console.log(output);
```

## Features

- The AI can use a specified file to better understand your prompt:

```javascript
const blackbox = require('@ozrageharm/blackbox-ai'); // import the library

// The AI uses the specified file to answer your query
const output = blackbox.chat(blackbox.models.deepseek.r1, "What does this code do?", "index.js").data;
console.log(output);
```

- The AI can use your entire codebase for better understanding of your program:

```javascript
const blackbox = require('@ozrageharm/blackbox-ai'); // import the library

// The AI uses your entire project files to answer your query
const output = blackbox.chat(blackbox.models.deepseek.r1, "What can my code do?", undefined, true).data;
console.log(output);
```

## Parameters:
`model`: string
*The model to use for the chat (e.g., 'deepseek-ai/DeepSeek-V3').*

`query`: string
*The user's query or message to send to the AI.*

`file`: string (optional)
*Optional path to a file whose content will be included in the query.*

`useCodebase`: boolean (optional, default: false)
*Whether to include the entire codebase in the query.*
npm package: @ozsay/accounts-asymmetric
Description: ## Install
Latest version: 0.19.1

# @accounts/asymmetric

## Install

```
yarn add @accounts/asymmetric
```

## Usage

```js
import { AccountsServer } from '@accounts/server';
import { AccountsAsymmetric } from '@accounts/asymmetric';

export const accountsAsymmetric = new AccountsAsymmetric({
  // options
});

const accountsServer = new AccountsServer(
  {
    // options
  },
  {
    asymmetric: accountsAsymmetric,
  }
);
```
npm package: @ozsay/accounts-code
Description: ## Install
Latest version: 0.19.2

# @accounts/code

## Install

```
yarn add @accounts/code
```

## Usage

```js
import { AccountsServer } from '@accounts/server';
import { AccountsCode } from '@accounts/code';

const codeProvider = '...';

export const accountsCode = new AccountsCode({
  codeProvider,
  // options
});

const accountsServer = new AccountsServer(
  {
    // options
  },
  {
    code: accountsCode,
  }
);
```
npm package: @ozsay/accounts-code-provider-twilio
Description: ## Install
Latest version: 0.18.2

# @accounts/code-provider-twilio

## Install

```
yarn add @accounts/code-provider-twilio
```

## Usage

```js
import { AccountsServer } from '@accounts/server';
import { AccountsCode } from '@accounts/code';
import { CodeProviderTwilio } from '@accounts/code-provider-twilio';

const codeProvider = new CodeProviderTwilio({
  sid: 'TWILIO_SID',
  secret: 'TWILIO_SECRET',
  phoneNumber: 'TWILIO_FROM_PHONE_NUMBER',
});

export const accountsCode = new AccountsCode({
  codeProvider,
  // options
});

const accountsServer = new AccountsServer(
  {
    // options
  },
  {
    code: accountsCode,
  }
);
```
npm package: @ozskr/x402-solana-mcp
Description: First MCP server for AI agent x402 payments on Solana with SPL delegation
Author: VT Infinite, Inc
Latest version: 0.1.1-beta
Deprecated: Critical bugs fixed in 0.2.0-beta: scrypt memory overflow, missing 402 body parsing, fund loss on verification failure. Upgrade: npm install @ozskr/x402-solana-mcp@0.2.0-beta
npm package: @ozuchi/mangadex-api
Description: JavaScript/TypeScript unofficial API wrapper for Mangadex.
Author: ozuchi
Latest version: 2.0.1

# mangadex-api

## Overview

JavaScript/TypeScript unofficial API wrapper for Mangadex.

## Getting Started

### System Recommendations

* NodeJS 8+

## Installation

```bash
npm install --save @ozuchi/mangadex-api
```

## Quick Start

```js
const MangadexApi = require('@ozuchi/mangadex-api').MangadexApi

const api = new MangadexApi()
console.log('getManga:', await api.getManga(30123))
console.log('getChapter:', await api.getManga(547671))
```

A better example usage can be found at `examples/basics.js` file.

## License

Open-source [MIT](./LICENSE).
npm package: @ozum/pinst
Description: Enable or disable npm postinstall hook
Author: typicode
Latest version: 2.1.4

# pinst ![Node.js CI](https://github.com/typicode/pinst/workflows/Node.js%20CI/badge.svg) [![npm](https://img.shields.io/npm/v/pinst.svg)](https://www.npmjs.com/package/pinst)

> `pinst` lets you have `postinstall` hook that runs only in dev 🍺

This can be useful if you want to automatically run commands just after `npm install`, but don't want your package users to be affected.

## Usage

```sh
$ npm install pinst --save-dev
```

```js
// package.json
{
  "scripts": {
    "postinstall": "<some dev only command>",
    "prepublishOnly": "pinst --disable",
    "postpublish": "pinst --enable"
  }
}
```

```sh
$ npm publish
```

_On `prepublishOnly`, `postinstall` will be renamed to `_postinstall` (disabled)_

_On `postpublish`, it will be renamed back to `postinstall` (enabled)_

## CLI

`pinst` accepts the following flags:

```
--enable, -e   Enable postinstall hook
--disable, -d  Disable postinstall hook
--silent, -s
```

## Try it

To test that everything works without actually publishing your package, you can manually run the following commands:

```sh
$ npm run prepublishOnly
$ npm run postpublish
```

## Tips

By inverting commands, you can also use `pinst` to enable `postinstall` for your users only and not yourself.

`pinst` also supports `install` alias.

## License

MIT - [Typicode :cactus:](https://github.com/typicode)
npm package: @ozymandiasthegreat/mfcc
Description: A WASM implementation of MFCC using KissFFT and libmfcc
Author: Tomas Ravinskas
Latest version: 1.0.1

# MFCC-WASM

A small and fast Mel Frequency Cepstral Coefficient calculator written in C.
Intended to be compiled to WASM and used in JavaScript.

Using KissFFT (BSD 3-clause) and libmfcc (MIT).

The module exports default async function that takes configuration parameters:

``` javascript
options = {
  frameSize:  480,
  sampleRate: 16000,
};
```

The function resolves to `MFCC` instance which has 2 methods.

``` javascript
mfcc.destroy();
mfcc.getMFCC(frame, filterBanks, m);
```

`destroy()` free resources used by this instance in c.
`getMFCC()` takes audio frame buffer as the first argument. It can be any sequence of numbers.
It's converted to `Float64Array` internally.

`filterBanks` and `m` are integers and optional. `m` is the number of coefficients to calculate.
This method returns `Float64Array` containing the coefficients.
npm package: @ozymandiasthegreat/wakeword-zero
Description: Personal wake word detector ported to TypeScript/WASM, running in browsers, Node, and NativeScript
Author: Tomas Ravinskas
Latest version: 2.0.5

# wakeword-zero

Based on [Machine Learning on Voice: a gentle introduction with Snips Personal Wake Word Detector](https://medium.com/snips-ai/machine-learning-on-voice-a-gentle-introduction-with-snips-personal-wake-word-detector-133bd6fb568e)

Ported from [node-personal-wakeword](https://github.com/mathquis/node-personal-wakeword)
by Mathieu Quisefit

## Installation

```bash
npm install @ozymandiasthegreat/wakeword-zero
```

## Usage

```javascript
import { DetectorBuilder } from "@ozymandiasthegreat/wakeword-zero";

const Detector = await DetectorBuilder();
const detector = new Detector({
  /*
  sampleRate: 16000,
  bitLength: 16,
  frameShiftMS: 10.0,
  frameLengthMS: 30.0, // Must be a multiple of frameShiftMS
  vad: true, // Use VAD detection
  vadMode: WakewordDetector.VadMode.AGGRESSIVE, // See node-vad modes
  vadDebounceTime: 500,
  band: 5, // DTW window width
  ref: 0.22, // See Snips paper for explanation about this parameter
  preEmphasisCoefficient: 0.97, // Pre-emphasis ratio
  */
  threshold: 0.5 // Default value
})

// *****

// KEYWORD MANAGEMENT

// Add a new keyword using multiple "templates"
await detector.addKeyword('alexa', [
  // WAV templates (trimmed with no noise!)
  './keywords/alexa1.wav',
  './keywords/alexa2.wav',
  './keywords/alexa3.wav'
], {
  // Options
  disableAveraging: true, // Disabled by default, disable templates averaging (note that resources consumption will increase)
  threshold: 0.52 // Per keyword threshold
})

// Keywords can be enabled/disabled at runtime
detector.disableKeyword('alexa')
detector.enableKeyword('alexa')

// *****

// EVENTS

// The detector will emit a "ready" event when its internal audio frame buffer is filled
detector.on('ready', () => {
  console.log('listening...')
})

// The detector will emit an "error" event when it encounters an error (VAD, feature extraction, etc.)
detector.on('error', err => {
  console.error(err.stack)
})

// The detector will emit a "data" event when it has detected a keyword in the audio stream
/* The event payload is:
  {
    "keyword"     : "alexa", // The detected keyword
    "score"       : 0.56878768987, // The detection score
    "threshold"   : 0.5, // The detection threshold used (global or keyword)
    "frames"      : 89, // The number of audio frames used in the detection
    "timestamp"   : 1592574404789, // The detection timestamp (ms)
    "audioData"   : <Buffer> // The utterance audio data (can be written to a file for debugging)
  }
*/
detector.on('data', ({keyword, score, threshold, timestamp}) => {
  console.log(`Detected "${keyword}" with score ${score} / ${threshold}`)
})

// *****

// Create readable stream and
// Pipe to wakeword detector
stream.pipe(detector)

// Or push audio data in chunks
detector.write(chunk)
```

For a complete example check out the docs folder.
npm package: @ozzie-code-alt/warp-ui
Description: In-House - Personalized Ui Library
Author: Justin Santos
Latest version: 0.1.0


# Warp UI

[![npm version](https://img.shields.io/npm/v/@ozzie-code-alt/warp-ui.svg)](https://www.npmjs.com/package/@ozzie-code-alt/warp-ui)

[![npm downloads](https://img.shields.io/npm/dm/@ozzie-code-alt/warp-ui.svg)](https://www.npmjs.com/package/@ozzie-code-alt/warp-ui)

[![License](https://img.shields.io/npm/l/@ozzie-code-alt/warp-ui.svg)](https://www.npmjs.com/package/@ozzie-code-alt/warp-ui)

`@ozzie-code-alt/warp-ui` is a lightweight and flexible UI component library designed for modern web applications. It offers a set of customizable components that are easy to integrate, helping you speed up your development process while maintaining a consistent design across your application.

## Features

- **Modern Design**: Components are designed with modern aesthetics in mind, ensuring your app looks great.
- **Customizable**: Easily extend and customize components to fit your specific needs.
- **Lightweight**: Minimal dependencies and a small footprint make it fast to load and use.
- **Flexible**: Suitable for various types of web applications, from small projects to large-scale enterprise apps.

## Installation

You can install `@ozzie-code-alt/warp-ui` using npm:

```bash
npm install @ozzie-code-alt/warp-ui

Or using Yarn:
yarn add @ozzie-code-alt/warp-ui
```

## Usage/Examples
To start using the components from @ozzie-code-alt/warp-ui, simply import them into your project:


```javascript
mport { Button, Card } from '@ozzie-code-alt/warp-ui';

function App() {
  return (
    <div>
      <Card>
        <h1>Hello, Warp UI!</h1>
        <Button onClick={() => alert('Warp Speed!')}>Click Me</Button>
      </Card>
    </div>
  );
}

export default App;
```

## Features

- **Button**: A customizable button component.
- **Card**: A flexible card component for displaying content.
- **Input**: A variety of input fields with validation.
- **Grid**: A responsive grid system for layout.
npm package: @ozzyczech/tsconfig
Description: Shared TypeScript config
Author: Roman Ožana
Latest version: 1.0.0

# Shared TypeScript Config

Do not repeat yourself! This package provides a shared [TypeScript config](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)

## Install

```shell
npm install --save-dev @ozzyczech/tsconfig
```

```shell
yarn add --dev @ozzyczech/tsconfig
```

```shell
pnpm add -D @ozzyczech/tsconfig
```

## Usage

`tsconfig.json`

```json
{
	"extends": "@ozzyczech/tsconfig"
}
```

## Releasing a new version

```shell
npx np --no-tests
```
npm package: @ozzzpo/drag-drop-content-types-strapi5-fix
Description: This plugin add a drag and droppable list that allows you to sort content type entries.
Author: cslegany
Latest version: 0.5.1

<div align="center">
  <img src="https://user-images.githubusercontent.com/37687705/192227260-db082018-947a-4166-a3f4-983e1024dd59.png" width="20%">
  <h1>Strapi plugin drag-drop-content-types</h1>
</div>

![dragdropcrop](https://user-images.githubusercontent.com/37687705/212884821-356ec68c-b71a-4b89-9e99-8a625f84cfbe.gif)

Inspired by the [Drag-Drop-Content-Type Strapi 4 plugin](https://github.com/plantagoIT/strapi-drag-drop-content-type-plugin).
Drag-drop feature completely rewritten to use dndkit because react-sortable-hoc is deprecated and not compatible with React 18.

## ⏳ Installation

Install with NPM.
```bash
npm i @cslegany/drag-drop-content-types-strapi5
```
Install with Yarn.
```bash
yarn add @cslegany/drag-drop-content-types-strapi5
```

## 🔧 Configuration

### In your config
1. Add the following to your `config/plugins.ts` file. Create the file, if it doesn't exist.
```js
export default () => ({
  // ...
  'drag-drop-content-types': {
    enabled: true
  }
})
```
2. Run `npm run build` and restart the app using `npm run develop`.

### In the app
1. Go to `Settings` → `Drag Drop Content Type` → `Configuration`.
2. Specify the `Rank Field Name` used for sorting or leave the default field name `rank`.
3. Add a `Number` field with `Name: myRankFieldName` and `Number format: integer` to the sortable _ContentType_.
4. Configure the view of your _ContentType_ by adding `Default sort attribute → rank` and `Default sort order → ASC` to update the view after dragging.
5. If needed: grant permissions for the `rank` field to your roles.

#### Hints
* You can set a `title` value that will be displayed in the menu instead of the default field.
* A second field can be displayed in the menu via the `subtitle` setting. It can be either a string-like field or an object such as a relation, that has a `title` field as configured in the settings.
* You can enable webhooks to trigger something after updating the order.

### In your frontend
You can make a request in the frontend to get the ordered items. In this example the _ContentType_ is called `Foo` and ordered via the `rank` field. 

```
http://localhost:1337/api/foo?sort=rank:asc
```

## 🤝 Contribute
Feel free to fork and make pull requests to this plugin. All input is welcome - thanks for all contributions so far!


## ⭐️ Support
I you like this project, please give it a star ⭐️. Maybe this will help it getting integrated to strapi's core some day 😊.