open-index/open-npm huggingface dataset:
npm package: @hunterkohler/weak-value-map
Description: Map to weakly held values.
Author: John Hunter Kohler
Latest version: 1.0.1

[main-docs]: https://hunterkohler.github.io/weak-value-map/ "Main documentation"

# WeakValueMap

Store weakly held references to values in a map with automatic dereferencing.
This improves a simple object or map to `WeakRef` by handling access and
existance checks. The api is consistent with the standard `Map` api. Note
that the standard `WeakMap` holds weak keys, not weak values.

The only difference from the standard `Map` api is a method
`WeakValueMap.prototype.clean` which searches all entries in the map, deleting
those who's values have been destroyed.

## Install

Install from npm:

`npm install weak-value-map`

## Documentation

See the documentation [here][main-docs].

## Typescript

The project has native type support.
npm package: @hunterliu/code-block
Description: CodeBlock component for vitepress
Author: Hunter Liu
Latest version: 1.0.4

# @hunterliu/code-block

```bash
npm i @hunterliu/code-block
```

```vue
<template>
  <CodeBlock
    :importComponentInstanceFn="() => import('path/to/component.vue')"
    :importComponentRawFn="() => import('path/to/component.vue?raw')"
  ></CodeBlock>
</template>
<script>
import { CodeBlock } from '@hunterliu/code-block'

export default {
  components: {
    CodeBlock
  }
}
</script>
```
npm package: @hunteroi/discord-form
Description: A manager to question people in DM or via a thread channel. Built with DiscordJS.
Author: HunteRoi
Latest version: 1.2.0

<a href="https://www.npmjs.com/@hunteroi/discord-form"><img src="https://img.shields.io/github/v/release/hunteroi/discord-form?style=for-the-badge" alt="release version"/></a>
<a href="https://www.npmjs.com/@hunteroi/discord-form"><img src="https://img.shields.io/npm/dt/@hunteroi/discord-form?style=for-the-badge" alt="nb downloads npm"/></a>

# discord-form

A manager that lets you quiz people. It is actually just like the Sphinx! Built with DiscordJS.

![IMAGE](https://raw.githubusercontent.com/HunteRoi/discord-form/master/assets/example.gif)

See [./examples/index.js](https://github.com/hunteroi/discord-form/tree/master/examples/index.js).

## Installation

```sh
npm install --save @hunteroi/discord-form
```

## Prerequisites ⚠️

You must use **NodeJS v16.6.0 or higher** to run a bot with this library.

You also must not forget to include [mandatory intents](#mandatory-intents) to listen to events and [partials](#partials) if needed.

## Contribution

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

1. Fork the Project
2. Create your Branch: `git checkout -b patch/YourAmazingWork`
3. Commit your Changes: `git commit -m 'Add some amazing work'`
4. Push to the Branch: `git push origin patch/YourAmazingWork`
5. Open a Pull Request
npm package: @hunteroi/discord-logger
Description: A manager that lets you register several modules to events in one go. Built with DiscordJS
Author: HunteRoi
Latest version: 1.2.0

<a href="https://www.npmjs.com/@hunteroi/discord-logger"><img src="https://img.shields.io/github/v/release/hunteroi/discord-logger?style=for-the-badge" alt="release version"/></a>
<a href="https://www.npmjs.com/@hunteroi/discord-logger"><img src="https://img.shields.io/npm/dt/@hunteroi/discord-logger?style=for-the-badge" alt="nb downloads npm"/></a>

# discord-logger

A manager that lets you register several modules to events in one go. Built with DiscordJS

![IMAGE](https://raw.githubusercontent.com/HunteRoi/discord-logger/master/assets/example.gif)

See [./examples/index.js](https://github.com/hunteroi/discord-logger/tree/master/examples/index.js).

## Installation

```sh
npm install --save @hunteroi/discord-logger
```

## Prerequisites ⚠️

You must use **NodeJS v16.6.0 or higher** to run a bot with this library.

You also must not forget to include [mandatory intents](#mandatory-intents) to listen to events and [partials](#partials) if needed.

## Contribution

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

1. Fork the Project
2. Create your Branch: `git checkout -b patch/YourAmazingWork`
3. Commit your Changes: `git commit -m 'Add some amazing work'`
4. Push to the Branch: `git push origin patch/YourAmazingWork`
5. Open a Pull Request
npm package: @hunteroi/discord-mailbox
Description: A framework to integrate a mailbox inside your Discord bot built with DiscordJS
Author: HunteRoi
Latest version: 4.1.0

<a href="https://www.npmjs.com/@hunteroi/discord-mailbox"><img src="https://img.shields.io/github/v/release/hunteroi/discord-mailbox?style=for-the-badge" alt="release version"/></a>
<a href="https://www.npmjs.com/@hunteroi/discord-mailbox"><img src="https://img.shields.io/npm/dt/@hunteroi/discord-mailbox?style=for-the-badge" alt="nb downloads npm"/></a>

# Discord Mailbox

Discord Mailbox is a framework to easily add a mailbox inside your bot. The feature is also fully customizable.

- Supports multiple tickets per users
- Logs everything like you want it
- Emits events like `ticketCreate`, `ticketUpdate` and **8 more**
- Allow full customization of the embed (you can add image, thumbnail, etc)
- And much more!

![v3 example](https://raw.githubusercontent.com/HunteRoi/discord-mailbox/master/assets/v3_example.gif)

See [./examples/index.js](https://github.com/hunteroi/discord-mailbox/tree/master/examples/index.js). If you want to try this example, you need to send `createTicket` in your bot's DM.

## Prerequisites ⚠️

Starting at **v2.0.0**, you must use **NodeJS v16.6.0 or higher** to run a bot with this library.

You also must not forget to include [mandatory intents and partials](#mandatory-intents-and-partials) as well as give your bot the rights to read messages.

### Mandatory intents and partials

- GUILDS: used to access guild content such as channels.
- GUILD_MESSAGES: used to read guild messages.
- GUILD_MESSAGE_REACTIONS: used to access guild messages reactions.
- DIRECT_MESSAGES: used to access direct messages to the bot.
- CHANNEL: used to receive events when the bot is DMed.
- MESSAGE: used to read the messages even if incomplete.

## Installation

```sh
npm install --save @hunteroi/discord-mailbox
```

## Events

```ts
manager.on(MailboxManagerEvents.ticketCreate, (ticket: Ticket) => {});

manager.on(MailboxManagerEvents.ticketUpdate, (ticket: Ticket) => {});

manager.on(MailboxManagerEvents.ticketLog, (ticket: Ticket) => {});

manager.on(MailboxManagerEvents.ticketClose, (ticket: Ticket) => {});

manager.on(MailboxManagerEvents.ticketForceClose, (ticket: Ticket, user: User | PartialUser) => {});

manager.on(MailboxManagerEvents.ticketDelete, (ticket: Ticket) => {});

manager.on(MailboxManagerEvents.replySent, (message: Message, answer: Message) => {});

manager.on(MailboxManagerEvents.replyDelete, (message: Message) => {});

manager.on(MailboxManagerEvents.threadCreate, (ticket: Ticket, thread: ThreadChannel) => {});

manager.on(MailboxManagerEvents.threadArchive, (ticket: Ticket, thread: ThreadChannel) => {});
```

## Contribution

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

1. Fork the Project
2. Create your Branch: `git checkout -b patch/YourAmazingWork`
3. Commit your Changes: `git commit -m 'Add some amazing work'`
4. Push to the Branch: `git push origin patch/YourAmazingWork`
5. Open a Pull Request
npm package: @hunteroi/versioning
Description: A versioning class for your project
Author: HunteRoi
Latest version: 1.3.2

<a href="https://www.npmjs.com/package/@hunteroi/versioning">
  <img src="https://badge.fury.io/js/%40hunteroi%2Fversioning.svg" alt="npm version" height="18"/>
</a>
<img src="https://img.shields.io/badge/Built%20with-TCR-green" alt="built with tcr" height="18" />

# versioning

A simple `Version` class which encapsulates the logic to manage your project's version following [SemVer](https://semver.org/).

## Installation

```sh
npm install --save @hunteroi/versioning
```

## Contribution

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

1. Fork the Project
2. Create your Branch: `git checkout -b patch/YourAmazingWork`
3. Commit your Changes: `git commit -m 'Add some amazing work'`
4. Push to the Branch: `git push origin patch/YourAmazingWork`
5. Open a Pull Request
npm package: @hunterowner/kick-js
Description: A typescript bot interface for kick.com
Author: retconned
Latest version: 0.7.0

![Version](https://img.shields.io/npm/v/@retconned/kick-js?label=Version)
![License](https://img.shields.io/npm/l/@retconned/kick-js?label=License)

❇️ **@retconned/kick-js**

## **What is kick-js**

**kick-js** is a TypeScript-based library for [kick.com](https://kick.com)'s chat system. It provides a simple interface that allows developers to build chat bots and other chat-related applications.

### :construction: This is a new rewrite of the kick-js library, it is not compatible with the previous version. :construction:

## Features :rocket:

- Supports reading & writing to Kick.com chat.
- Moderation actions (ban, slowmode).
- Written in TypeScript.

## Installation :package:

Install the @retconned/kick-js package using the following command:

```sh
npm install @retconned/kick-js
```

## Example code :computer:

```ts
import { createClient } from "@retconned/kick-js";
import "dotenv/config";

const client = createClient("xqc", { logger: true, readOnly: true });
// readOnly: true will make the client only read messages from the chat, and disable all other authenticated actions.

client.login({
  username: "xqc",
  password: "bigschnozer420",
  otp_secret: "your-2fa-secret",
});
// to get your OTP secret, you need to go to https://kick.com/settings/security and enable Two-Factor Authentication and copy the secret from there

client.on("ready", () => {
  console.log(`Bot ready & logged into ${client.user?.tag}!`);
});

client.on("ChatMessage", async (message) => {
  console.log(`${message.sender.username}: ${message.content}`);
});

// get information about a vod
// your-video-id = vod uuid
const { title, duration, thumbnail, views } = await client.vod("your-video-id");

// get leaderboards for a channel
const leaderboards = await client.getLeaderboards();
// you can also pass in a kick-channel-name to get leaderboards for a different channel
// example: const leaderboards = await client.getLeaderboards("xqc");

// get polls for a channel
const polls = await client.getPolls();
// you can also pass in a kick-channel-name to get polls for a different channel
// example: const polls = await client.getPolls("xqc");
```

## Disclaimer :warning:

@retconned/kick-js is not affiliated with or endorsed by [Kick.com](https://kick.com). It is an independent tool created to facilitate making moderation bots & other chat-related applications.
npm package: @hunters/group-object
Description: Javascript helper functions for json object grouping and sorting
Author: Shanmuganathan, Anjali
Latest version: 1.2.8

# group-object
Javascript helper functions for json object grouping and sorting for multiple properties

![npm](https://img.shields.io/npm/v/@hunters/group-object?color=green&style=flat-square)   ![NPM](https://img.shields.io/npm/l/@hunters/group-object)  ![GitHub issues](https://img.shields.io/github/issues/wehunters/group-object)  ![Snyk Vulnerabilities for npm package](https://img.shields.io/snyk/vulnerabilities/npm/@hunters/group-object)

## Installation

Install with npm

```
npm install @hunters/group-object
```

## Usage

Include the module

## Options available 




### for groupig 

```javascript
//we can pass either a single property
groupObj.group(arrObj,'price');

//we can pass either  multiple properties as array
groupObj.group(arrObj,['price','city']);
```

### for sortting

```javascript
// we can pass single property 
groupObj.objSort(arrObj,'city');

// we can pass array of properties 
groupObj.objSort(arrObj,['city','state','price']);

// we can pass s properties with order as object
groupObj.objSort(arrObj,{'city':1,'state':1,'price':-1});
```


```javascript
var groupObj = require('@hunters/group-object');
// group an object for multiple properties

let arrObj = [{
    "h_id": "3",
    "city": "Dallas",
    "state": "TX",
    "zip": "75201",
    "price": "162500"
},
{
    "h_id": "4",
    "city": "Bevery Hills",
    "state": "CA",
    "zip": "90210",
    "price": "319250"
},
{
    "h_id": "6",
    "city": "Dallas",
    "state": "TX",
    "zip": "75000",
    "price": "556699"
},
{
    "h_id": "5",
    "city": "New York",
    "state": "NY",
    "zip": "00010",
    "price": "962500"
}
];

var groupedData = groupObj.group(arrObj,['price','city']);
console.log(groupedData); 

var groupedData = groupObj.group(arrObj,'city');
console.log(groupedData); 

// sort a json object for multiple properties
let sortedData = groupObj.objSort(arrObj,['city','state','price']);
console.log(sortedData); 

//sort for multiple keys with defined order where 1/-1 is for ascending/descending orders
let sortedData = groupObj.objSort(arrObj,{'city':1,'state':1,'price':-1});
console.log(sortedData); 

//sort for single property
var sortedData = groupObj.objSort(arrObj,'city');
console.log(sortedData); 
```
## Notes

Javascript helper functions for json object grouping and sorting for multiple properties

## License

**MIT**
npm package: @huntersofbook/plausible-vue
Description: Plausible Analytics plugin for Vue 3
Author: Mehmet - productdevbook
Latest version: 1.0.0
Deprecated: package moved to new location https://github.com/productdevbookcom/v-plausible

![alt text](https://github.com/huntersofbook/huntersofbook/blob/main/docs/public/images/plausible-vue.png?raw=true)
# Plausible Vue
<br/>

### @huntersofbook/plausible-vue [![npm](https://img.shields.io/npm/v/@huntersofbook/plausible-vue.svg)](https://npmjs.com/package/@huntersofbook/plausible-vue)
<br/>

huntersofbook offers specific tools for the vue ecosystem.

## Usage Vue 3

```ts
import { createPlausible } from '@huntersofbook/plausible-vue'

const plausible = createPlausible({
  init: {
    domain: 'domain.com',
    apiHost: 'https://host.com',
    trackLocalhost: true,
  },
  settings: {
    enableAutoOutboundTracking: true,
    enableAutoPageviews: true,
  },
  partytown: false,
})

app.use(plausible)
```

## Thanks

Thanks to [@surmon-china](https://github.com/surmon-china), this project loadScript function is heavily inspired by [surmon-china.github.io](https://github.com/surmon-china/surmon-china.github.io).

## License

MIT License © 2022-PRESENT [productdevbook](https://github.com/productdevbook)
npm package: @huntersofbook/revenuecat
Description: Revenuecat Rest API for Node.js and TypeScript (Unofficial)
Author: Mehmet - productdevbook
Latest version: 0.1.3
Deprecated: package moved to new location https://github.com/productdevbookcom/revenuecat

  <p>
      <a href="https://www.npmjs.com/package/@huntersofbook/revenuecat"><img src="https://img.shields.io/npm/v/@huntersofbook/revenuecat.svg?style=flat&colorA=002438&colorB=28CF8D" alt="Version"></a>
      <a href="https://www.npmjs.com/package/@huntersofbook/revenuecat"><img src="https://img.shields.io/npm/dm/@huntersofbook/revenuecat.svg?style=flat&colorA=002438&colorB=28CF8D" alt="Downloads"></a>
      <a href="./LICENSE"><img src="https://img.shields.io/github/license/huntersofbook/huntersofbook.svg?style=flat&colorA=002438&colorB=28CF8D" alt="License"></a>
    </p>

# RevenueCat REST API
## Installation
```bash
pnpm install @huntersofbook/revenuecat
```

## Usage
```ts
import { Revenuecat } from '@huntersofbook/revenuecat'
import * as dotenv from 'dotenv'
dotenv.config({
  path: '.env',
})

const revenuecat = new Revenuecat({
  secretKey: process.env.secretKey as string,
  iosKey: process.env.iosKey as string,
  androidKey: process.env.androidKey as string,
})

const userId = '$RCAnonymousID:17c0ff7b3c70462'

await revenuecat
  .getSubscriptions({ userId })
  .then(res => console.log(res.subscriber, 'getSubscriptions'))

await revenuecat
  .getOfferings({ userId, platform: 'ios' })
  .then(res => console.log(res.offerings, 'getOfferings'))

await revenuecat
  .postSubscriptionsAttributes({
    userId,
    data: {
      attributes: {
        $email: {
          value: 'asdasd',
        },
      },
    },
  }).then(res => console.log(res, 'postSubscriptionsAttributes'))
```

### TODO

- [ ] Add more methods - https://www.revenuecat.com/reference/basic
- [ ] Add more tests
- [ ] Add more examples

### Add more methods
- [ ] [Delete Subscriber](https://www.revenuecat.com/reference/delete-subscriber)
- [ ] [subscribersattribution](https://www.revenuecat.com/reference/subscribersattribution)
- [ ] [Override a Customer's Current Offering](https://www.revenuecat.com/reference/override-offering)
- [ ] [Remove a Customer's Current Offering Override](https://www.revenuecat.com/reference/delete-offering-override)
- [ ] [Create a Purchase](https://www.revenuecat.com/reference/receipts)
- [ ] [Google Play: Refund and Revoke Purchase](https://www.revenuecat.com/reference/refund-a-google-subscription)
- [ ] [Google Play: Refund and Revoke Subscription](https://www.revenuecat.com/reference/revoke-a-google-subscription)
- [ ] [Google Play: Defer a Subscription](https://www.revenuecat.com/reference/defer-a-google-subscription)
- [ ] [Grant a Promotional Entitlement](https://www.revenuecat.com/reference/grant-a-promotional-entitlement)
- [ ] [Revoke Promotional Entitlements](https://www.revenuecat.com/reference/revoke-promotional-entitlements)

## License

MIT License © 2022-PRESENT [productdevbook](https://github.com/productdevbook)
npm package: @huntersofbook/schob
Description: Rewrite the new object according to the schema. Delete the excess.
Author: Mehmet - productdevbook
Latest version: 1.0.0
Deprecated: package moved to new location https://github.com/productdevbookcom/schob

![alt text](https://github.com/huntersofbook/huntersofbook/blob/main/docs/public/images/schob.jpg?raw=true)

# Schob
<br/>

### @huntersofbook/schob [![npm](https://img.shields.io/npm/v/@huntersofbook/schob.svg)](https://npmjs.com/package/@huntersofbook/schob)
<br/>


## Installation

```bash
pnpm add @huntersofbook/schob
```

## Usage

```ts
import { merge } from '@huntersofbook/schob'

const schema = {
  isPro: false,
  darkMode: false,
  pages: {
    home: false,
    settings: false,
  },
}

const newData = {
  isPro: false,
  darkMode: true,
  pages: {
    home: false,
    settings: true,
    hello: false,
  },
  dd: 'dd',
  tt: {
    dd: 'dd',
  },
  cc: [{ dd: 'dd' }],
}

const res = merge({ schema, newData })

```

### Output
```bash

{
    isPro: false,
    darkMode: true,
    pages: { home: false, settings: true },
 }
 ```


 ## License

MIT License © 2022-PRESENT [productdevbook](https://github.com/productdevbook)
npm package: @hunterstack/typebox-helpers
Description: Tree shakable typebox helper utilities
Author: Hunter Wilhelm
Latest version: 1.0.0

<div align="center">
  <a href="https://www.npmjs.com/package/@hunterstack/typebox-helpers">
    <img alt="weekly downloads" src="https://img.shields.io/npm/dw/@hunterstack/typebox-helpers?logo=npm" />
  </a>
  <a href="https://github.com/hunterwilhelm/typebox-helpers/blob/main/LICENSE">
    <img alt="MIT License" src="https://img.shields.io/github/license/hunterwilhelm/typebox-helpers?logo=open-source-initiative" />
  </a>
</div>

# TypeBox Helpers

A collection of tree-shakable TypeBox helper utilities to make working with TypeBox even easier.

## Installation

```bash
npm install @hunterstack/typebox-helpers
```

## Features

- Tree-shakable utilities
- Type-safe helpers
- Zero dependencies (except TypeBox)

## Usage

### UnionOf

Create TypeBox union types from any literal values (strings, numbers, booleans) with full type safety:

```typescript
import { UnionOf } from '@hunterstack/typebox-helpers'

const Status = UnionOf(['active', 'inactive', 'pending'])
// TUnion<[TLiteral<"active">, TLiteral<"inactive">, TLiteral<"pending">]>

const Numbers = UnionOf([1, 2, 3, 4, 5])
// TUnion<[TLiteral<1>, TLiteral<2>, TLiteral<3>, TLiteral<4>, TLiteral<5>]>

const Mixed = UnionOf([1, 'red', true])
// TUnion<[TLiteral<1>, TLiteral<"red">, TLiteral<true>]>
```

## Testing

This package is thoroughly tested with a comprehensive approach:

### Runtime Tests
- **Vitest** for runtime validation testing
- Tests ensure schemas correctly validate expected values and reject invalid ones
- Integration tests with frameworks like Elysia
- Covers all literal types: strings, numbers, booleans, and mixed unions

### Type Tests
- **@ark/attest** for type inference checking performance
- Ensures TypeScript types are correctly inferred
- Validates that generated schemas match expected TypeBox types
- Prevents type regressions and ensures full type safety

### Benchmarks
- Performance benchmarks using @ark/attest
- Monitors schema creation and validation performance
- Automated performance regression detection

```bash
# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run benchmarks
npm run bench
```

## Development

```bash
# Install dependencies
npm install

# Run tests
npm test

# Run benchmarks
npm run bench

# Build
npm run build
```

## License

MIT