open-index/open-npm huggingface dataset:
npm package: @hiperf/gtm
Description: Simple, Ultra lightweight, GDPR friendly, Google Tag Manager (GTM) module for your Nuxt application.
Latest version: 0.0.2

# @hiperf/gtm

🚧 **This module is currently in beta status. More tests are needed to be made. WIP** 🚧

⚡ Simple. Ultra lightweight. GDPR friendly. Google Tag Manager (GTM) module for your [Nuxt](https://nuxt.com/) application. 

### Key features

- 🚀 Blazing fast & lightweight
- 🌻 Zero dependencies 
- ✅ Unit tested
- 🍪 Manual initialization, to support cookies consent
- 🦾 SSR-ready

This module still in beta, use with caution

[🔗 Read documentation](https://hiperf.github.io/gtm/)
npm package: @hiperf/pixel
Description: Simple, Ultra lightweight, GDPR friendly, Meta Pixel (Facebook Pixel) module for your Nuxt application.
Latest version: 0.0.4

# @hiperf/pixel

🚧 **This module is currently in beta status. More tests are needed to be made. WIP** 🚧

⚡ Simple. Ultra lightweight. GDPR friendly. Meta Pixel (Facebook Pixel) module for your [Nuxt](https://nuxt.com/) application. 

### Key features

- 🚀 Blazing fast & lightweight
- 🌻 Zero dependencies 
- ✅ Unit tested
- 🍪 Manual initialization, to support cookies consent
- 🦾 SSR-ready

This module still in beta, use with caution

[🔗 Read documentation](https://hiperf.github.io/pixel/)
npm package: @hiperf/validate
Description: Simple. Ultra lightweight. Data validation solution.
Latest version: 0.0.19

# @hiperf/validate

![Hero image](https://raw.githubusercontent.com/hiperf/validate/main/hero.webp?0)

⚡ Simple. Ultra lightweight. Data validation solution.

### Key features

- Blazing fast & lightweight ~1kb
- Modular & Extendable
- Build in validators
- Custom validators
- Internationalization
- Zero dependencies
- Unit tested

[🔗 Read documentation](https://hiperf.github.io/validate/)
npm package: @hipherd/core
Description: Core npm module for all shared UI components, server middlware, and configs for Hipherd
Author: Propellant Software
Latest version: 0.1.0

# @hipherd/core
This package is used as the core module for shared UI components, server middleware, and configs for Hipherd.

## Setup
There are some things you should download and install on your machine to run this project

- Install [homebrew](https://brew.sh/)
```bash
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

- Install [nvm](https://github.com/creationix/nvm) and the latest version of node (**DO NOT INSTALL USING HOMEBREW**)
```bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
nvm install node
```

- Install [yarn](https://yarnpkg.com/lang/en/docs/install/)
```bash
brew install yarn --without-node
```

## Commands
- `npm start` | Runs storybook against our UI components
- `npm run build` | Builds the files into the `dist` directory and copies over the README and `package.json`.
- `npm run publish:dist` | Publishes the `dist` directory
- `npm run link-pkg` | Will run `yarn link` within the `dist` directory after running a build
- `npm run unlink-pkg` | Will run `yarn unlink` within the `dist` directory

## Developing
Use the `yarn link` command to symlink this package with another project that references it. Instructions can be found [here](https://yarnpkg.com/en/docs/cli/link)

You can also use the built in pre-built npm scripts I wrote that will handle this linking.

## Preparing for publishing
When you're ready to publish, just do the following:

1. Make sure it build successfully by running `npm run build`
2. Bump up the version with `npm version [major | minor | patch]` with an optional `-m "Message"`
3. Run `npm run publish:dist` or redo the build and then separately run `npm publish dist --access=public`

**Note**: we are doing public access for now until we're rich enough to pay for a private repo)

## Stories
This project includes integration with [Storybook](https://storybook.js.org/) in order to create a plaground environment to test all of our UI components

## React Component UI Library
Our core React Components exist within the `src/ui`. We are using Webpack 4 for compilation in order to create CommonJS modules of our components. Our component stylesheets also get compiled through `css-loader` and `MiniCssExtractPlugin` to generate a CSS file that can be referened in other projects that use this library. Since we are following a pseudo css-module pattern, these CSS classnames will be namespaced to avoid any conflicts.

Anyone using the UI library will have access to the following:
- `@hipherd/core/ui/scss/index.scss` | The main **Global Theme** scss file that holds our main theme. We have not compiled this as a css file to enable others to use pieces of it as they see fit
- `@hipherd/core/ui/components.js` | The main module that holds all the React components
- `@hipherd/core/ui/components.css` | The namespaced CSS library specifically for components, whose styles may or may not be affected by the **Global Theme**
npm package: @hiphipjorge/prosemirror-model
Description: ProseMirror's document model
Latest version: 1.25.1

# prosemirror-model

[ [**WEBSITE**](https://prosemirror.net) | [**ISSUES**](https://github.com/prosemirror/prosemirror/issues) | [**FORUM**](https://discuss.prosemirror.net) | [**CHANGELOG**](https://github.com/ProseMirror/prosemirror-model/blob/master/CHANGELOG.md) ]

This is a [core module](https://prosemirror.net/docs/ref/#model) of [ProseMirror](https://prosemirror.net).
ProseMirror is a well-behaved rich semantic content editor based on
contentEditable, with support for collaborative editing and custom
document schemas.

This [module](https://prosemirror.net/docs/ref/#model) implements
ProseMirror's [document model](https://prosemirror.net/docs/guide/#doc),
along with the mechanisms needed to support
[schemas](https://prosemirror.net/docs/guide/#schema).

The [project page](https://prosemirror.net) has more information, a
number of [examples](https://prosemirror.net/examples/) and the
[documentation](https://prosemirror.net/docs/).

This code is released under an
[MIT license](https://github.com/prosemirror/prosemirror/tree/master/LICENSE).
There's a [forum](http://discuss.prosemirror.net) for general
discussion and support requests, and the
[Github bug tracker](https://github.com/prosemirror/prosemirror/issues)
is the place to report issues.

We aim to be an inclusive, welcoming community. To make that explicit,
we have a [code of
conduct](http://contributor-covenant.org/version/1/1/0/) that applies
to communication around the project.
npm package: @hiphipjorge/prosemirror-state
Description: ProseMirror editor state
Latest version: 1.4.4

# prosemirror-state

[ [**WEBSITE**](https://prosemirror.net) | [**ISSUES**](https://github.com/prosemirror/prosemirror/issues) | [**FORUM**](https://discuss.prosemirror.net) | [**CHANGELOG**](https://github.com/ProseMirror/prosemirror-state/blob/master/CHANGELOG.md) ]

This is a [core module](https://prosemirror.net/docs/ref/#state) of [ProseMirror](https://prosemirror.net).
ProseMirror is a well-behaved rich semantic content editor based on
contentEditable, with support for collaborative editing and custom
document schemas.

This [module](https://prosemirror.net/docs/ref/#state) implements the
editor state, which tracks the current document and selection, and
managed plugins.

The [project page](https://prosemirror.net) has more information, a
number of [examples](https://prosemirror.net/examples/) and the
[documentation](https://prosemirror.net/docs/).

This code is released under an
[MIT license](https://github.com/prosemirror/prosemirror/tree/master/LICENSE).
There's a [forum](http://discuss.prosemirror.net) for general
discussion and support requests, and the
[Github bug tracker](https://github.com/prosemirror/prosemirror/issues)
is the place to report issues.

We aim to be an inclusive, welcoming community. To make that explicit,
we have a [code of
conduct](http://contributor-covenant.org/version/1/1/0/) that applies
to communication around the project.
npm package: @hiphipjorge/prosemirror-transform
Description: ProseMirror document transformations
Latest version: 1.10.5

# prosemirror-transform

[ [**WEBSITE**](https://prosemirror.net) | [**ISSUES**](https://github.com/prosemirror/prosemirror/issues) | [**FORUM**](https://discuss.prosemirror.net) | [**CHANGELOG**](https://github.com/ProseMirror/prosemirror-transform/blob/master/CHANGELOG.md) ]

This is a [core module](https://prosemirror.net/docs/ref/#transform) of [ProseMirror](https://prosemirror.net).
ProseMirror is a well-behaved rich semantic content editor based on
contentEditable, with support for collaborative editing and custom
document schemas.

This [module](https://prosemirror.net/docs/ref/#transform) implements
document [transforms](https://prosemirror.net/docs/guide/#transform),
which are used by the editor to treat changes as first-class values,
which can be saved, shared, and reasoned about.

The [project page](https://prosemirror.net) has more information, a
number of [examples](https://prosemirror.net/examples/) and the
[documentation](https://prosemirror.net/docs/).

This code is released under an
[MIT license](https://github.com/prosemirror/prosemirror/tree/master/LICENSE).
There's a [forum](http://discuss.prosemirror.net) for general
discussion and support requests, and the
[Github bug tracker](https://github.com/prosemirror/prosemirror/issues)
is the place to report issues.

We aim to be an inclusive, welcoming community. To make that explicit,
we have a [code of
conduct](http://contributor-covenant.org/version/1/1/0/) that applies
to communication around the project.
npm package: @hiphops/hook
Description: Client for Hiphops hook
Author: hiphops.io
Latest version: 0.0.1-alpha38

# @hiphops/hook

A JavaScript/TypeScript client for the HipHops hook server.

## Installation

```bash
# Using npm
npm install @hiphops/hook

# Using pnpm (recommended)
pnpm add @hiphops/hook

# Using yarn
yarn add @hiphops/hook
```

## Usage

```typescript
import { license } from "@hiphops/hook";

// Get license information
const getLicenseInfo = async () => {
  try {
    const info = await license();
    if (info.verified) {
      console.log("License is valid:", info.license);
    } else {
      console.warn("License verification failed:", info.verify_failures);
    }
    console.log("License info:", info);
    return info;
  } catch (error) {
    console.error("Error getting license info:", error);
  }
};

getLicenseInfo();
```

### Example result

Given a license with `seats` configured as a value and in this case count of 10, the output will look like this:

```json
{
  "verified": true,
  "verify_failures": [],
  "license": {
    "seats": 10
  },
  "hiphops": {
    "identity": "c_01jz3b9bz4ka7stedds7g3fjb7",
    "project_id": "my-project-1234""
  }
}
```

Failure looks like this:

```json
{
  "verified": false,
  "verify_failures": ["invalid_license_token"],
  "license": null,
  "hiphops": {
    "identity": "",
    "project_id": ""
  }
}
```

## Custom Binary Path

Hook automatically manages the binary which checks license keys for you, but if you need to use a custom binary, you can specify its path using the `HIPHOPS_HOOK_BIN` environment variable.

```bash
# Set the environment variable
export HIPHOPS_HOOK_BIN=/path/to/custom/hook-binary

# Then use the package normally
node your-script.js
```

## Runtime Support

This package is designed to work with:

- Node.js (16+)
- Deno (via npm compatibility)
- Bun
npm package: @hiphops/nestjs-pubsub-interceptor
Description: A NestJS Interceptor to decode and unwrap GCP Pub/Sub push messages
Author: manterfield
Latest version: 0.4.2

# NestJS GCP Pub/Sub Interceptor

Provides an Interceptor for NestJS to automagically validate and unwrap HTTP push messages from Google Cloud Platform's Pub/Sub.

## Installation

`yarn add @hiphops/nestjs-pubsub-interceptor`

In addition to NestJS you'll also need to install the peer dependencies if you don't already have them:

`yarn add class-validator class-transformer rxjs`


## Why?

Pub/Sub messages pass the `data` field (the bit you probably care about) as a `base64` encoded string.
This is awkward when using push subscriptions to call endpoints in your app, as ideally we'd be able to validate the object/data inside the pub/sub message at the endpoint level and avoid boilerplate unwrapping logic for every call.

This interceptor does that for you. Decorating an endpoint like so:

```typescript
import { MessageDecodingInterceptor } from "@hiphops/nestjs-pubsub-interceptor";
// ...

@Controller()
export class AppController {
    constructor(private readonly appService: AppService) {}

    @Post()
    @UseInterceptors(MessageDecodingInterceptor)
    @UsePipes(new ValidationPipe({ transform: true }))
    handleTask(@Body() myPayload: MyPayloadDto) {
        // Log the unwrapped and validated payload
        console.log(myPayload);
    }
}
// ...
```

With the above, your push subscription can call your endpoint directly.
`MyPayloadDto` is a stand-in for any DTO object you might want to validate against. 
You receive the actual data you care about rather than a `base64` encoded string with all the other event dressing.
npm package: @hipo-finance/sdk
Description: SDK for connecting to hTON liquid-staking protocol of hipo.finance
Author: Behrang Norouzinia
Latest version: 2.0.1

# Hipo SDK

Hipo is a decentralized, permission-less, open-source liquid staking protocol on TON blockchain. Visit [Hipo.Finance](https://hipo.finance) for more information or read the [docs](https://docs.hipo.finance).

This SDK helps with connecting to Hipo liquid staking protocol on web clients.

The [sdk-example](https://github.com/HipoFinance/sdk-example) project uses this project as a dependency and creates a simple web application to Stake or Unstake on Hipo.

`Constants` include protocol addresses on MainNet and TestNet, op-codes for deposit and unstake, and recommended fees for each operation.

`Parent` helps in finding the jetton wallet address for an address.

`Wallet` provides access to jetton wallet state, in particular hTON balance.

`Treasury` has the functionality to parse the current state of Hipo Treasury.
npm package: @hipolitotata/react-masked-input
Description: A lightweight and flexible masked input component for React.
Author: Otavio
Latest version: 0.1.0

# @hipolitotata/react-masked-input

Uma lib pequena e flexivel de masked input para React, feita para uso real no dia a dia e facil de compartilhar.

## O que ela entrega

- Componente `MaskedInput` para React
- Helpers puros para mascarar e desmascarar valores
- Suporte a mascara unica ou dinamica
- Tipagem em TypeScript
- Build em ESM + CJS

## Instalacao

```bash
pnpm add @hipolitotata/react-masked-input
```

ou

```bash
npm install @hipolitotata/react-masked-input
```

## Uso rapido

```tsx
import { MaskedInput } from "@hipolitotata/react-masked-input";

export function Form() {
  return (
    <MaskedInput
      mask="999.999.999-99"
      placeholder="CPF"
      onValueChange={({ masked, unmasked, complete }) => {
        console.log({ masked, unmasked, complete });
      }}
    />
  );
}
```

## Mascara dinamica

```tsx
import { MaskedInput } from "@hipolitotata/react-masked-input";

const phoneMasks = ["(99) 9999-9999", "(99) 99999-9999"];

export function PhoneField() {
  return <MaskedInput mask={phoneMasks} placeholder="Telefone" />;
}
```

## Helpers

```ts
import { applyMask, parseMaskedValue, stripMask } from "@hipolitotata/react-masked-input";

applyMask("12345678901", "999.999.999-99");
parseMaskedValue("(11) 91234-5678", ["(99) 9999-9999", "(99) 99999-9999"]);
stripMask("123.456.789-00", "999.999.999-99");
```

## API

### `MaskedInput`

Props principais:

- `mask`: `string | string[]`
- `value`: valor sem mascara para modo controlado
- `defaultValue`: valor sem mascara para modo nao controlado
- `replacement`: mapa de tokens customizados
- `maskPlaceholder`: placeholder para partes faltantes da mascara
- `onValueChange`: retorna `{ masked, unmasked, complete }`

Tokens padrao:

- `9`: numeros
- `A`: letras
- `*`: alfanumerico

### Tokens customizados

```tsx
<MaskedInput
  mask="HH:MM"
  replacement={{
    H: /[0-2]/,
    M: /[0-5]/
  }}
/>
```

## Desenvolvimento local

```bash
pnpm install
pnpm check
pnpm build
```

## Como publicar no npm

1. Crie sua conta em [npmjs.com](https://www.npmjs.com/) se ainda nao tiver.
2. Rode `npm login`.
3. Ajuste no `package.json`:
   - `name`
   - `author`
   - `homepage`
   - `repository`
4. Se quiser publicar com escopo pessoal, use algo como `@seu-usuario/react-masked-input`.
5. Rode `pnpm install`.
6. Rode `pnpm build`.
7. Publique com `npm publish --access public`.

## Sugestao antes de publicar

- adicionar testes
- criar exemplos com Vite
- subir o codigo no GitHub
- configurar CI para rodar `pnpm check` e `pnpm build`
npm package: @hippie/im
Description: generate immutable data
Author: flfwzgl
Latest version: 0.1.1

# im

生成 **immutable** 对象

## API

- `set(obj, path: string | string[], value: any)`
- `del(obj, path: string | string[])`
- `push(obj, path: string | string[], value: any)`
- `pop(obj, path: string | string[])`
- `shift(obj, path: string | string[])`
- `unshift(obj, path: string | string[], value: any)`
- `reverse(obj, path: string | string[])`
- `splice(obj, path: string | string[], i: number, count: number, ...items: any[])`
- `sort(obj, path: string | string[], fn?: (a, b) => number)`
- `assign(obj, path: string | string[], value)`
- `merge(obj, path: string | string[], value)`

## 例子

```js
const obj = {
  name: 'tom',
  data: {
    score: 100,
    age: 20,
    d: {
      abc: 12,
    },
  },
  info: {
    a: 1,
    list: [1, 2, 3, 4, 5],
  },
}

const obj2 = set(obj, 'data.age', 30)
obj2 === obj // false
obj2.name === 'tom' // true
obj2.data === obj.data // false
obj2.data.score === 1000 // true
obj2.data.age === 30 // true
obj2.data.d === obj.data.d // true
obj2.info === obj.info // true

const obj3 = del(obj, 'data.name')
obj3 === obj // false
obj3.delete === undefined // true
obj3.data === obj.data // true
obj3.data.d === obj.data.d // true
obj3.info === obj.info // true

const a = { a: 2, b: 3 }
const obj4 = assign(obj, 'info', a)
obj4 === obj // false
obj4.name === 'tom' // true
obj4.data === obj.data // true
obj4.info === obj.info // false
obj4.info.a === 2 // true
obj4.info.b === 3 // true
obj4.list = obj.info.list // true

const b = {
  gender: 'male',
  data: {
    age: 30,
    abc: 999,
  },
  tree: [123],
}

const obj5 = merge(obj, b)
obj5 === obj // false
obj5.name === 'tom' // true
obj5.gender === 'male' // true
obj5.data === obj.data //false
obj5.data.d === obj.data.d // true
obj5.data.score === 100 // true
obj5.data.age === 30 // true
obj5.data.abc === 999 // true
```
npm package: @hippie/obj
Description: An OBJ model file parser for WebGL
Author: flfwzgl
Latest version: 0.0.3

<p align="center">
  <img width="400" src="./assets/teapot.jpg">
</p>

# obj

**obj** is a parser for the "[.obj](http://paulbourke.net/dataformats/obj/)" model files defined by Wavefront Technologies. It parses only the polygons in obj files and return a list contained all the vertices, UVs and normals.

For a group containing multiple models, the parser does not restore the tree structure of the models since all vertices are converted to world coordinates, but returns a list of all models

## Install

```bash
npm i @hippie/obj
```

## Usage

```typescript
import parseObj from '@hippie/obj'

const models = parseObj(str, opt)
```

## opt

- `name: string` - a customized name for printing, the default value is `"obj"`
- `showTime: boolean` - display the parsing time, the default value is `true`

## Examples

```typescript
import parseObj from '@hippie/obj'

const [model] = parseObj(`
  # This file uses centimeters as units for non-parametric coordinates.

  mtllib 2.mtl
  g default
  v -1.0 -0.0 1.0
  v 1.0 -0.0 1.0
  v -1.0 0.0 -1.0
  v 1.0 0.0 -1.0
  vt 0.0 0.0
  vt 1.0 0.0
  vt 0.0 1.0
  vt 1.0 1.0
  vn 0.0 1.0 0.0
  vn 0.0 1.0 0.0
  vn 0.0 1.0 0.0
  vn 0.0 1.0 0.0
  s off
  g pPlane1
  usemtl initialShadingGroup
  f 1/1/1 2/2/2 4/4/3 3/3/4
`)

console.log(model)
/**
output: ⏬
{
  indices: Uint8Array(6) [0, 1, 2, 0, 2, 3],
  normals: Float32Array(12) [0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0],
  smoothData: [{ faceIndex: 0, smooth: false }],
  uvs: Float32Array(8) [0, 0, 1, 0, 1, 1, 0, 1],
  vertices: Float32Array(12) [-1, -0, 1, 1, -0, 1, 1, 0, -1, -1, 0, -1],
}
*/
```

So, we can combine it with webgl:

```typescript
// do something...

const posLoc = gl.getAttribLocation(program, 'a_position');
const texLoc = gl.getAttribLocation(program, 'a_texCoord');

const posBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, posBuffer);
gl.bufferData(gl.ARRAY_BUFFER, model.vertices), gl.STATIC_DRAW);


const texBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, texBuffer);
gl.bufferData(gl.ARRAY_BUFFER, model.uvs), gl.STATIC_DRAW);


gl.vertexAttribPointer(posLoc, size, type, normalize, stride, offset);

gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);

gl.useProgram(program);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.drawElements(model.indices);
```
npm package: @hippie/var-diff
Description: js variable diff algorithm
Author: flfwzgl
Latest version: 0.1.0



# var-diff

get the difference between two variables

<p>
  <a href="https://codecov.io/gh/flfwzgl/var-diff">
    <img src="https://codecov.io/gh/flfwzgl/var-diff/branch/master/graph/badge.svg" />
  </a>
  <a href="https://www.npmjs.com/package/var-diff">
    <img src="https://img.shields.io/npm/v/var-diff.svg" alt="Version">
  </a>
</p>

### Compatibility
|   IE     | Chrome | Firefox  | Opera |  Safari     |
|   :-:    |  :-:   |   :-:    | :-:   |   :--:      |
|    ✔️    |   ✔️   |   ✔️     |  ✔️  |    ✔️       |
### Installation

```bash
npm i var-diff
```
or
```html
<script src="var-diff.js"></script>
```

### Usage

use `var patches = diff.get(origin, target, [key])` to get difference `patches` between origin and target variables.

`key` is an optional parameter used to improve sorting performance.
`patches` is an array containing all of the differences betwen two variables

```
// patches
t: type   1-create 2-delete 3-edit 4-replace
p: path {Array}
v: value
i: new index(when type is replace)
```

use `diff.apply(origin, patches)` to make the origin variable apply the `patches` then become the target varible. but all references of the origin variable are reserved.

```javascript
const diff = require('var-diff');

let a = [1, 2, 3, {id: 1, name: 'tom'}, {id: 2, name: 'jack'}]
let b = [2, {id: 2, name: 'will'}, 3, {id: 1, name: 'lucy'}]

let patches = diff.get(origin, target, 'id');
console.log(patches);

/**
 * patches
[ 
  { t: 2, p: [ 0 ] },                       // remove the 0th element 
  { t: 3, p: [ 2, 'name' ], v: 'lucy' },    // update the name of the 2th element to 'lucy'
  { t: 3, p: [ 3, 'name' ], v: 'will' },    // update the name of the 3th element to 'will'
  { t: 4, p: [ 3 ], i: 1 },                 // change the 3th element to the 1th position
  { t: 4, p: [ 3 ], i: 2 }                  // change the 3th element to the 2th position
]
 */


a = diff.apply(a, patches);

console.log(JSON.stringify(a) === JSON.stringify(b));

// true
```



### Examples

```javascript
var a = {
  name: 'tom',
  gender: 'male',
  list: [{
    id: 1,
    label: 'teacher'
  }]
}

var b = {
  name: 'jack',
  list: [{
    id: 2,
    label: 'worker'
  }, {
    id: 3,
    label: 'student'
  }, {
    id: 1,
    label: ''
  }]
}

p = diff.get(a, b, 'id');

console.log(p);
/**
  t: type   1-create 2-delete 3-edit 4-replace
  p: path {Array}
  v: value
  i: new index(when type is replace)

 [{ t: 3, p: [ 'name' ], v: 'jack' },
  { t: 2, p: [ 'gender' ] },
  { t: 3, p: [ 'list', 0, 'label' ], v: '' },
  { t: 1, p: [ 'list', 1 ], v: { id: 2, label: 'worker' } },
  { t: 1, p: [ 'list', 2 ], v: { id: 3, label: 'student' } },
  { t: 4, p: [ 'list', 0 ], i: 2 },
  { t: 4, p: [ 'list', 1 ], i: 0 },
  { t: 1, p: [ 'age' ], v: 25 }]
 */

var aa = diff.apply(a, p, 'id'); // key
console.log(JSON.stringify(aa) === JSON.stringify(b));  // true
```


```javascript
var a = [NaN, NaN];
var b = [NaN, NaN];

var p = diff.get(a, b, 'id');

console.log(p); // []
```


### LICENSE
MIT
npm package: @hippo-oss/deprecation-decorators
Description: DTO decorators with deprecation warnings.
Author: Hippo Engineering
Latest version: 0.3.0

# deprecation-decorators

DTO decorators with deprecation warnings.

Provides an implementation of a `dto-decorators` flavor that overrides property setters so that deprecated fields
produce system warnings.


## Usage

Decorate a class with `DEPRECATION_DECORATORS` (or any composition thereof):

```ts
import { METADATA_DECORATORS } from '@hippo-oss/deprecation-decorators';

const { IsString } = DEPRECATION_DECORATORS;

class Example {
    @IsString({
        deprecated: true,
        optional: true,
    })
    name?: string;
}
```

At runtime, setting the property `name` will produce a warning:

```sh
(node:3814) DeprecationWarning: Example.name is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)
```
npm package: @hippo-oss/metadata-decorators
Description: DTO decorators with reflect-metadata.
Author: Hippo Engineering
Latest version: 0.3.0

# metadata-decorators

DTO decorators with reflect-metadata.

Provides an implementation of a `dto-decorators` flavor that persists metadata using `reflect-metadata`;
other systems may use this persistence to implement runtime logic that is aware of decorated attributes.


## Usage

Decorate a class with `METADATA_DECORATORS` (or any composition thereof):

```ts
import { METADATA_DECORATORS } from '@hippo-oss/metadata-decorators';

const { IsString } = METADATA_DECORATORS;

class Example {
    @IsString({
        optional: true,
    })
    name?: string;
}
```

At runtime, query the class for schema data:

```ts
import { getSchema } from '@hippo-oss/metadata-decorators'

const schema = getSchema(Example);
```
npm package: @hippo2cat/cra-template-typescript-airbnb
Description: ## after exec cra command > remove package.json > eslintConfig
Author: shigurepoi@outlook.com
Latest version: 0.1.1

# cra template contains ts/eslint(ts, airbnb)/less/customize-cra/proxy

## after exec cra command
> remove package.json > eslintConfig

## duo to cra-template package.json merge policy
> need to split deps and devDeps by yourself

## welcome PR
npm package: @hippobots/tracker
Description: A lightweight script to collect telemetry data from your Telegram bot.
Latest version: 1.0.9

# HippoTrack - Telegram Bot Event Tracker

HippoTrack is a middleware for [Telegraf](https://telegraf.js.org/) that tracks Telegram bot events and sends them to a specified endpoint in a sanitized format. It supports messages, media, callbacks, inline queries, chat events, polls, payments, and more.

---

## Features

- Tracks **all major Telegram updates**:
  - Messages (`text`, `photo`, `video`, `sticker`, `voice`, `poll`, `location`, `contact`, `document`)
  - Edited messages
  - Channel posts
  - Inline queries
  - Callback queries
  - Chat member updates
  - Poll answers
  - Chat join requests
- Tracks **financial events** safely:
  - `invoice`
  - `successful_payment`
  - `pre_checkout_query`
  - `shipping_query`
  - All financial fields are safe (no card numbers or CVV)
- **Media support**: automatically extracts `file_id` for photos, videos, documents, audio, stickers
- **Sanitized payloads**: removes nulls and empty arrays/objects
- **Raw update logging**:
  - Truncated to 500 characters for general events
  - Full safe fields for financial events
- Easy to integrate with any HTTP endpoint

---

## Installation

```bash
npm install @hippobots/tracker
```

## Usage

```javascript

import { Telegraf } from "telegraf";
import { hippoTrack } from "./hippoTrack.js";

// Bot Init
const bot = new Telegraf(process.env.BOT_TOKEN);

// Tracker
hippoTrack(bot, process.env.TRACK_TOKEN, process.env.TRACK_URL, { log: true });


// Main Code
// ...
// ...


// Bot Start
bot.start((ctx) => ctx.reply("Hello! Bot is active."));
bot.launch();
```

## Payload Structure

{
  "bot": { "username": "mybot", "id": 123456789 },
  "user": { "id": 987654321, "username": "example_user" },
  "chat": { "id": 111111111, "type": "private" },
  "event_type": "text_message",
  "message": "Hello world",
  "callback_query": null,
  "inline_query": null,
  "tg_date": 1693113600,
  "app_date": 1693113610,
  "media": {
    "photo": ["file_id1", "file_id2"],
    "video": null,
    "document": null,
    "audio": null,
    "voice": null,
    "sticker": null,
    "contact": null,
    "location": null,
    "poll": null
  },
  "payment": null,
  "raw_update": "{...truncated update or full payment info...}"
}


## Notes

*Financial safety*: Telegram API never sends card numbers, CVV, or bank details. Only safe fields such as ```total_amount```, ```currency```, and transaction IDs are included.

*Raw update*:

- Provides a safe snapshot for debugging or analytics.

- Truncated for normal events, full safe details for payments.

## Contributing

Feel free to submit issues or pull requests.

## License

MIT
npm package: @hippocampus-web3/cardano-serialization-lib-asmjs
Description: (De)serialization functions for the Cardano blockchain along with related utility functions
Author: EMURGO
Latest version: 14.1.5

# Cardano Serialization Lib

This is a library, written in Rust, for serialization & deserialization of data structures used in Cardano's Haskell implementation of Alonzo along with useful utility functions.

##### NPM packages

- [NodeJS WASM package](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs)
- [Browser (chrome/firefox) WASM package](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser)
- [Browser (pure JS - no WASM) ASM.js package](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs)

##### NPM packages with GC support 
Note: This package uses [weak references flag from wasm-bindgen](https://rustwasm.github.io/wasm-bindgen/reference/weak-references.html).
It uses `FinalizationRegistry` under the hood to automatically call "free" for each CSL struct when it is no longer needed. However, use this feature with caution as it may have unpredictable behaviors.
- [NodeJS WASM package with GC](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-nodejs-gc)
- [Browser (chrome/firefox) WASM package with GC](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-browser-gc)
- [Browser (pure JS - no WASM) ASM.js package with GC](https://www.npmjs.com/package/@emurgo/cardano-serialization-lib-asmjs-gc)


##### Rust crates

- [cardano-serialization-lib](https://crates.io/crates/cardano-serialization-lib)

##### Mobile bindings

- [React-Native mobile bindings](https://github.com/Emurgo/react-native-haskell-shelley)

## Documentation

You can find documentation [here](https://developers.cardano.org/docs/get-started/cardano-serialization-lib/overview)