open-index/open-npm huggingface dataset:
npm package: @iamnapo/btc-network
Description: Tiny module that creates a btc network using docker images
Author: Napoleon-Christos Oikonomou
Latest version: 0.7.5

# btc-network

> Tiny module that creates a btc network using docker images

[![dockerhub](https://img.shields.io/badge/-iamnapo/btc--network-1388c6?logo=docker&logoColor=white&style=for-the-badge&label=)](https://hub.docker.com/r/iamnapo/btc-network)
[![build](https://img.shields.io/github/actions/workflow/status/iamnapo/btc-network/ci.yml?branch=master&style=for-the-badge&logo=github&label=)](https://github.com/iamnapo/btc-network/actions)
[![npm](https://badges.iamnapo.me/npm/@iamnapo/btc-network)](https://www.npmjs.com/package/@iamnapo/btc-network)

## Install

1. If you don't have [Docker](https://www.docker.com/), install it:

   ```sh
   curl -fsSL https://get.docker.com -o get-docker.sh
   sh get-docker.sh
   ```

2. If you don't have [Node.js](https://nodejs.org/en/), install it:

   ```sh
   $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
   $ export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
   		[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
   $ nvm i "lts/*"
   ```

3. Install `btc-network` globally:

   ```sh
   $ npm i @iamnapo/btc-network -g
   ```

**_Note:_** If you want a one-liner to do all of the above:

```sh
$ curl -o- https://raw.githubusercontent.com/iamnapo/btc-network/master/install.sh | bash
```

**_Note:_** If you don't want to use node/npm, you can [download the corresponding binary](https://github.com/iamnapo/btc-network/releases/latest). Keep in mind that Docker is still required.

## Usage

**WARNING:** Check the files in [`templates/`](./templates) for the required input structure.

![Usage](./usage.gif)

> `$ btc-network --help` for more info.
npm package: @iamnapo/colors
Description: A versatile personal color pallette
Author: Napoleon Oikonomou
Latest version: 0.2.0

# colors

> A versatile personal color palette. Super heavily inspired by [tailwindcss](https://tailwindcss.com)

[![build](https://img.shields.io/github/workflow/status/iamnapo/colors/ci?style=for-the-badge&logo=github&label=)](https://github.com/iamnapo/colors/actions) [![npm](https://img.shields.io/npm/v/@iamnapo/colors.svg?style=for-the-badge&logo=npm&label=)](https://www.npmjs.com/package/@iamnapo/colors) [![style](https://img.shields.io/badge/style-iamnapo-cyan.svg?style=for-the-badge)](https://iamnapo.me)

## Install

```console
$ npm i @iamnapo/colors
```

## Usage

```jsx
import { gray, indigo } from "@iamnapo/colors";

<div style={{ color: gray[300], backgroundColor: indigo.default }}>{"Hello World!"}</div>;
```
npm package: @iamnapo/construct-url
Description: Small utility function to construct URLs, without caring about slashes or encoding
Author: Napoleon-Christos Oikonomou
Latest version: 3.0.2

# @iamnapo/construct-url

> Small utility function to construct URLs, without caring about slashes or encoding

[![build](https://badges.iamnapo.me/ci/iamnapo/construct-url)](https://github.com/iamnapo/construct-url/actions) [![npm](https://badges.iamnapo.me/npm/@iamnapo/construct-url)](https://www.npmjs.com/package/@iamnapo/construct-url)

## Install

```sh
npm i @iamnapo/construct-url
```

## Usage

```js
import constructUrl from "@iamnapo/construct-url";

constructUrl("https://example.com", "/foo"); // => "https://example.com/foo"
constructUrl("https://example.com/foo", "/bar"); // => "https://example.com/foo/bar"
constructUrl("https://example.com", "/foo", { bar: true }); // => "https://example.com/foo?bar=true"
constructUrl("https://example.com", "", { bar: true }); // => "https://example.com/?bar=true"
constructUrl("https://example.com", "/foo", { "//bar//": true }); // => "https://example.com/foo?%2F%2Fbar%2F%2F=true"
```

## API

### constructUrl(base, path?, query?)

Get a full URL, including encoded query parameters.

#### base

Type: `string | URL`

Base URL.

#### path

Type: `string`\
Default: `""`

Path relative to `base`.

#### query

Type: `string | [string, unknown][] | Record<string, unknown> | URLSearchParams`\
Default: `""`

Query parameters to include in the resuliting URL.
npm package: @iamnapo/cra-template
Description: Opinionated Create React App template with all the important stuff
Author: Napoleon-Christos Oikonomou
Latest version: 0.6.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @iamnapo/cra-template

> Opinionated Create React App template with all the important stuff<sup>1</sup>

<sup>1</sup>: [PWA](https://web.dev/progressive-web-apps/), [eslint](https://eslint.org/), [Material UI](https://material-ui.com/), [react-router](https://reactrouter.com/), [cypress](https://www.cypress.io/), [Google Analytics](https://analytics.google.com/), [Sentry](https://sentry.io/welcome/), [swr](https://swr.vercel.app/), [zustand](https://zustand.surge.sh/), [craco](https://github.com/gsoft-inc/craco), [sass](https://sass-lang.com/) and other bits and bobs.

[![npm](https://img.shields.io/npm/v/@iamnapo/cra-template.svg?style=for-the-badge&logo=npm&label=)](https://www.npmjs.com/package/@iamnapo/cra-template) [![style](https://img.shields.io/badge/code%20style-iamnapo-cyan.svg?style=for-the-badge)](https://iamnapo.me)

## Usage

```sh
$ npx create-react-app my-app --template @iamnapo
```

> Note: Be sure to edit `.env` & `.github/workflows/ci.yml` accordingly, before starting developing!
npm package: @iamnapo/enigma
Description: Create secure ciphers easily
Author: Napoleon-Christos Oikonomou
Latest version: 3.0.1

# @iamnapo/enigma

> Create secure ciphers easily

[![build](https://badges.iamnapo.me/ci/iamnapo/enigma)](https://github.com/iamnapo/enigma/actions) [![npm](https://badges.iamnapo.me/npm/@iamnapo/enigma)](https://www.npmjs.com/package/@iamnapo/enigma)

## Install

```sh
npm i @iamnapo/enigma
```

## Usage

```js
import { encrypt, decrypt, generateEncryptionKey } from "@iamnapo/enigma";

encrypt("some secret", { encryptionKey: "some-key" }); // => 91ysVc3IbexEwRigsMHTvwRwcuG5rMMWhJ6IkF3iq84=
decrypt("91ysVc3IbexEwRigsMHTvwRwcuG5rMMWhJ6IkF3iq84=", { encryptionKey: "some-key" }); // => "some secret"
encrypt("some secret", { encryptionKey: "some-key", encoding: "hex" }); // => 93fd2e92833e{...}82253f9aa4f008

generateEncryptionKey(); // => f4Gy8jKRT4cM5+5XzL5ZtS5GHjgCmYw5BmHy4P4EJj4=
```

## API

### encrypt(input, options)

Encrypt text using the [aes-256-gcm](https://en.wikipedia.org/wiki/Galois/Counter_Mode) encryption algorithm.

> Note: A random Initialization Vector and a random salt are created and encoded inside the cipher, so each time the result is different.

### decrypt(input, options)

Decrypt text that was encrypted with [`encrypt`](#encryptinput-options).

#### input

Type: `string`

Input text.

#### options

Type: `object`

##### encryptionKey

Type: `string | Buffer | TypedArray | DataView`

Encryption key to use for encryption/decryption.

##### encoding

Type: `"utf16le" | "ucs2" | "ucs-2" | "base64" | "base64url" | "latin1" | "binary" | "hex"`\
Default: `"base64"`

Encoding to use for encryption/decryption.

### generateEncryptionKey(length)

Utility function to generate a random encryption key using a cryptographically secure random number generator.

#### length

Type: `number`\
Default: `32`

Length of the generated encryption key in bytes.
npm package: @iamnapo/get
Description: Get the value at a specific object (or string) path, without caring if it exists
Author: Napoleon-Christos Oikonomou
Latest version: 1.0.3

# @iamnapo/get

> Get the value at a specific object (or string) path, without caring if it exists

[![build](https://img.shields.io/github/workflow/status/iamnapo/get/ci?style=for-the-badge&logo=github&label=)](https://github.com/iamnapo/get/actions) [![npm](https://img.shields.io/npm/v/@iamnapo/get.svg?style=for-the-badge&logo=npm&label=)](https://www.npmjs.com/package/@iamnapo/get) [![size](https://img.shields.io/bundlephobia/min/@iamnapo/get.svg?style=for-the-badge&label=size)](https://bundlephobia.com/result?p=@iamnapo/get) [![license](https://img.shields.io/github/license/iamnapo/get.svg?style=for-the-badge)](./LICENSE)

## Install

```sh
$ npm i @iamnapo/get
```

## Usage

```js
const get = require("@iamnapo/get");

get([4, 5], "[0]"); // => 4
get({ a: { b: 1 } }, "a.b"); // => 1
get({ a: { b: 1 } }, "a.c", "blah"); // => "blah"
get("napo", "[1]"); // => "a"
```

## API

### get(object, path, defaultValue?)

Get `path` of `object`, returning `defaultValue` if it doesn‘t exist.

#### object

Type: `object | Array | string`

Base object to get value from.

#### path

Type: `string`

Path to get value at.

#### defaultValue

Type: `string`\
Default: `undefined`

Return value if path doesn‘t exist.
npm package: @iamnapo/poor-mans-password-manager
Description: Simple CLI to turn memorable sentences into secure passwords
Author: Napoleon-Christos Oikonomou
Latest version: 0.1.1

# @iamnapo/poor-mans-password-manager

> Simple CLI to turn memorable sentences into secure passwords

[![build](https://badges.iamnapo.me/ci/iamnapo/poor-mans-password-manager)](https://github.com/iamnapo/poor-mans-password-manager/actions) [![npm](https://badges.iamnapo.me/npm/@iamnapo/poor-mans-password-manager)](https://www.npmjs.com/package/@iamnapo/poor-mans-password-manager)

<sup><em>Inspired from a discussion with @mateuadsuara</em></sup>

## Install

```sh
npm i -g @iamnapo/poor-mans-password-manager
```

## Usage

```console
$ pmpm --help

  Simple CLI to turn memorable sentences into secure passwords

  Usage
    $ pmpm <sentence>

  Options
    --master-key    Pass a master key to create unique passwords
    --pin           Create a 4-digit PIN instead of a password

  Examples
    $ pmpm 'my github password'
    $ pmpm 'my github password' --master-key='my-master-key'
    $ pmpm 'my pin for NapoBank' --pin
```

> [!CAUTION]
> I’m not a security expert 🤷🏼‍♂️
npm package: @iamnapo/prettier-config
Description: Prettier shareable config for iamnapo’s coding style
Author: Napoleon-Christos Oikonomou
Latest version: 3.0.0

# @iamnapo/prettier-config

> Prettier shareable config for [iamnapo](https://iamnapo.me)’s coding style

[![npm](https://badges.iamnapo.me/npm/@iamnapo/prettier-config)](https://www.npmjs.com/package/@iamnapo/prettier-config) [![style](https://badges.iamnapo.me/style)](https://iamnapo.me)

## Install

```sh
npm i @iamnapo/prettier-config -D
```

Then, add in your `package.json`:

```json
{
	"prettier": "@iamnapo/prettier-config"
}
```
npm package: @iamnapo/sort
Description: Sorting comparators so you don't have to remember what to substract from what
Author: Napoleon-Christos Oikonomou
Latest version: 2.3.3

# @iamnapo/sort

> Sorting comparators so you don't have to remember what to substract from what

[![build](https://badges.iamnapo.me/ci/iamnapo/sort)](https://github.com/iamnapo/sort/actions) [![npm](https://badges.iamnapo.me/npm/@iamnapo/sort)](https://www.npmjs.com/package/@iamnapo/sort)

## Install

```sh
npm i @iamnapo/sort
```

## Usage

```js
import { numberSmallToLarge } from "@iamnapo/sort";

[12, -42, -Infinity, 123, Number.NaN].sort(numberSmallToLarge());
//=> [Number.NaN, -Infinity, -42, 12, 123]

[{ name: "Mary", age: 20 }, { name: "Bob", age: 30 }, { name: "Napoleon", age: 26 }].sort(numberSmallToLarge((p) => p.age));
//=> [{ name: "Mary", age: 20 }, { name: "Napoleon", age: 26 }, { name: "Bob", age: 30 }];
```

## API

### numberSmallToLarge(get?)

Ascending sort comparator for numbers.

### numberLargeToSmall(get?)

Descending sort comparator for numbers.

### dateOldToNew(get?)

Ascending sort comparator for Dates.

### dateNewToOld(get?)

Descending sort comparator for Dates.

### stringAToZ(get?)

Ascending sort comparator for strings.

### stringZToA(get?)

Descending sort comparator for strings.

### stringAToZInsensitive(get?)

Case-insensitive ascending sort comparator for strings.

> Note: In case of equality, a case-sensitive comparison is the tie-breaker.

### stringZToAInsensitive(get?)

Case-insensitive descending sort comparator for strings.

> Note: In case of equality, a case-sensitive comparison is the tie-breaker.

#### get

Type: `function`\
Default: `(v) => v`

Function used to extract each value to compare.
npm package: @iamnapo/tsconfig
Description: TypeScript shareable config for iamnapo’s coding style
Author: Napoleon-Christos Oikonomou
Latest version: 8.2.0

# tsconfig

> TypeScript shareable config for [iamnapo](https://iamnapo.me)’s coding style

[![npm](https://badges.iamnapo.me/npm/@iamnapo/tsconfig)](https://www.npmjs.com/package/@iamnapo/tsconfig) [![style](https://badges.iamnapo.me/style)](https://iamnapo.me)

## Install

```console
npm i @iamnapo/tsconfig -D
```

Then, add this to your `tsconfig.json`:

```json
{
	"extends": "@iamnapo/tsconfig"
}
```
npm package: @iamnavidev/gigapay-typescript-sdk
Description: A modern, type-safe TypeScript SDK for the Gigapay API
Author: Navid Asgharzadeh
Latest version: 0.2.2

# Gigapay TypeScript SDK

A modern, type-safe TypeScript SDK for the Gigapay API.

## Features

- 🔒 Type-safe API client
- 🚀 Modern ESM and CommonJS support
- 💪 Zero dependencies (except cross-fetch polyfill)
- 🔄 Automatic retry with exponential backoff
- 📦 Small bundle size (<5kB minified+gzipped)

## Installation

```bash
npm install @iamnavidev/gigapay-typescript-sdk
```

## Quick Start

```typescript
import { createClient } from '@iamnavidev/gigapay-typescript-sdk';

// Initialize the client
const client = createClient({
  apiKey: 'your_api_key',
  integrationId: 'your_integration_id',
});
```

## API Reference

### Employees

#### List Employees

```typescript
// Get all employees (paginated)
const { results, count, next, previous } = await client.employees.list({
  page: 1,      // Optional
  perPage: 10,  // Optional
});
```

#### Get Employee

```typescript
// Get employee by ID
const employee = await client.employees.read('employee-uuid');
```

#### Create Employee

```typescript
// Create with required fields
const employee = await client.employees.create({
  name: 'John Doe',
  country: 'SWE',
});

// Create with all fields
const employeeWithDetails = await client.employees.create({
  name: 'John Doe',
  cellphone_number: '+46701234567',
  email: 'john@example.com',
  country: 'SWE',
  metadata: {
    department: 'Engineering',
  },
});
```

#### Update Employee

```typescript
// Full update (PUT)
const updatedEmployee = await client.employees.update('employee-uuid', {
  name: 'Jane Doe',
  email: 'jane@example.com',
});

// Partial update (PATCH)
const partiallyUpdatedEmployee = await client.employees.partialUpdate('employee-uuid', {
  metadata: {
    department: 'Sales',
  },
});
```

#### Delete Employee

```typescript
// Delete an employee by ID
await client.employees.delete('employee-uuid');
```

#### Resend Invitations

```typescript
// Resend full invitation
await client.employees.resend('employee-uuid');

// Resend partial invitation
await client.employees.resendPartialUpdate('employee-uuid');
```

### Error Handling

```typescript
try {
  const employee = await client.employees.read('invalid-id');
} catch (error) {
  if (isGigapayError(error)) {
    console.error(`API Error: ${error.message} (Code: ${error.code})`);
  }
}
```

## Development

```bash
# Install dependencies
npm install

# Run tests
npm test

# Build package
npm run build
```

## License

MIT
npm package: @iamnijin/tokenlist
Description: TokenList is an npm package containing a list of token details in popular EVM networks for easy access and use.
Author: Nijin P S
Latest version: 0.1.2

# TOKENLIST

TokenList is an npm package containing a list of token details in popular EVM networks for easy access and use.

## How to install 

- First of all run the command "npm init" in the terminal to initialize the current project as npm project.

  <img width="520" alt="Initializing an NPM project (1)" src="https://user-images.githubusercontent.com/101330853/196613267-4416683e-6441-429b-abaa-5f30b8f0c174.png">

  
- Now run the command "npm i @iamnijin/tokenlist" to install the tokenlist package to use in your project.

  <img width="520" alt="install tokenlist" src="https://user-images.githubusercontent.com/101330853/196633860-97e56808-15e8-4de6-953b-1ab361d5145f.png">



## How to use

- To use the tokenlist in your code, first of all import the package "maintokenlist" to your file.
  This can be done using the code line : " const {tokens} = require('@iamnijin/tokenlist'); "
  
  <img width="605" alt="Importing tokenlist" src="https://user-images.githubusercontent.com/101330853/196633924-af957089-2293-4a73-a4b7-ca9064ba19e2.png">

  

- Now using the variables tokens, we can access the different token details in different EVM networks.

  <img width="605" alt="Accessing token values (1)" src="https://user-images.githubusercontent.com/101330853/196633936-432bdaea-b01a-4c54-abcb-459caefcc3b3.png">

## Demo of all the steps explained above



https://user-images.githubusercontent.com/101330853/196638001-b4273e53-25a4-453c-9b05-1688f539f782.mp4



## Future works

- Will be adding more networks with their corresponding token list.
npm package: @iamnivek/jup-api
Description: ## Generate typescript types from swagger schema
Latest version: 6.0.42

# JavaScript API Client for Jupiter V6

## Table of Contents

- [Installation](#installation)
- [Developing](#developing)
- [Usage](#usage)
- [Examples](#examples)
  - Paid Hosted APIs (Deprecated and will not be supported, reach out in Discord for more information)

## Installation

To use the Jupiter API client, you need to have Node.js and npm (Node Package Manager) installed. Then, you can install the package using npm:

```bash
npm install @jup-ag/api
```

## Developing

- pnpm dev-quote
  - Get request a quote based on mints and amount
- pnpm dev-swap
  - Post request with the quote response to receive the swap transaction to sign and send to the network
  - Ensure you have setup `process.env.PRIVATE_KEY` to sign
 
- Please set up `process.env.API_KEY` if you have a Pro plan via https://portal.jup.ag/

Refer to our developer documentation for more information and tips:
- Swap API: https://dev.jup.ag/docs/swap-api
- API Key setup: https://dev.jup.ag/docs/api-setup

## Usage

To start using the API client, you need to require it in your Node.js project:

```typescript
import { createJupiterApiClient } from '@jup-ag/api';

const jupiterQuoteApi = createJupiterApiClient(config); // config is optional such as api key
```

Now, you can call methods provided by the API client to interact with Jupiter's API. For example:

```typescript
jupiterQuoteApi.quoteGet({
    inputMint: "So11111111111111111111111111111111111111112",
    outputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    amount: "100000000",
    slippageBps: 100,
})
```

## Examples

Checkout the [example in the repo](/example/index.ts).
npm package: @iamnnort/config
Description: Config presets for Node.js - Consistent - Reusable - Streamlined
Latest version: 2.0.2

# @iamnnort/config

Config presets for Node.js — **Consistent** · **Reusable** · **Streamlined**

## Install

```bash
yarn add -D @iamnnort/config
# or
npm i -D @iamnnort/config
```

## Requirements

- **Node.js** ≥ 24

## Usage

### ESLint

```js
// eslint.config.js
const config = require('@iamnnort/config/eslint');

module.exports = config();
```

With overrides: `config({ import: true })`.

### Prettier

```js
// prettier.config.js
const config = require('@iamnnort/config/prettier');

module.exports = config();
```

### Lint-staged

```js
// lint-staged.config.js
const config = require('@iamnnort/config/lint-staged');

module.exports = config();
```

### Jest

```js
// jest.config.js
const config = require('@iamnnort/config/jest');

module.exports = config();
```

With global setup: `config({ global: true })`.

### Esbuild

```js
const build = require('@iamnnort/config/esbuild');

build({ entryPoints: ['./src/index.ts'] });
```

### Tsup

```js
// tsup.config.js
const config = require('@iamnnort/config/tsup');

module.exports = config({ entry: ['src/index.ts'] });
```

### HTTP

HTTP message builder and shared enums (methods, statuses):

```js
const { HttpMessageBuilder, HttpMethods, HttpStatuses } = require('@iamnnort/config/http');

const builder = new HttpMessageBuilder({ request, response, error, duration, redactedKeys: ['secret'] });

// Build a log line
const message = builder.makeUrlText().makeMethodText().makeStatusText().makeDurationText().build();

// Extract structured data
const responseObj = builder.makeResponse();
```

### TypeScript configs

Extend in your `tsconfig.json`:

- `@iamnnort/config/tsconfig/node.json` — Node
- `@iamnnort/config/tsconfig/nest.json` — NestJS
- `@iamnnort/config/tsconfig/browser.json` — Browser

```json
{
  "extends": "@iamnnort/config/tsconfig/node.json"
}
```

## License

MIT © [Nikita Pavets](https://github.com/iamnnort)
npm package: @iamnnort/nestjs-request
Description: Request module for NestJS - Simple - Fast - Informative
Author: Nikita Pavets
Latest version: 2.1.6

## Info

Request module for NestJS - Simple - Informative - Pretty

## Installation

```bash
yarn add @iamnnort/nestjs-request
```

## Usage

```javascript
// app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { RequestService } from '@iamnnort/nestjs-request';

@Controller('demo')
export class AppController {
  constructor(private requestService: RequestService<{ id: number }>) {}

  @Get()
  demo() {
    return this.requestService.get(1);
  }
}

// app.ts
import { Module } from '@nestjs/common';
import { RequestModule } from '@iamnnort/nestjs-request';
import { AppController } from './app.controller';

@Module({
  imports: [
    RequestModule.register({
      name: 'Demo Api',
      baseUrl: 'https://jsonplaceholder.typicode.com',
      url: '/todos',
      logger: true,
    }),
  ],
  controllers: [AppController],
})
export class AppModule {}

// index.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    bufferLogs: true,
  });

  await app.listen(3000);
}

bootstrap();
```

## Output

```bash
[Demo Api] [Request] GET /todos/1
[Demo Api] [Response] GET /todos/1 200 OK {"userId":1,"id":1,"title":"delectus aut autem","completed":false}
```

## License

This project is licensed under the MIT license. See the [LICENSE](LICENSE) file for more info.
npm package: @iamnnort/smart-id
Description: ID generator for Node.js - Unique - Smart - Short
Author: Nikita Pavets
Latest version: 1.2.2

## Info

ID generator for Node.js - Unique - Smart - Short.

## Installation

```bash
yarn add @iamnnort/smart-id
```

## Usage

```javascript
import { generate } from "@iamnnort/smart-id";

console.log(generate()); // AmLXmSwfJmUxoTbP
console.log(generate({ prefix: "cli" })); // cli_0Y3xbmodn37AUQkx
console.log(generate({ prefix: "cli", size: 32 })); // cli_Yhar8gzYEiU2Buf5dse3ZxBCI9Zr9VYg
```

## Parameters

| Parameter | Description            |
| --------- | ---------------------- |
| `prefix`  | Group or entity prefix |
| `size`    | Hash length            |
npm package: @iamnotstone/aabb-tree
Description: Basic implementation of the AABB-Tree (Axis Aligned Box Bounding Tree)
Author: iamnotstone
Latest version: 3.3.6

# 相对于原来的库，增加了根据shape来找该shape与AABBTree中相交的结点

# 原来的库地址 https://github.com/JeremyAube/AABBTreejs.git


# added two functions compare to origin project
1. AABBTree.GetShapesOverlappingWithPoint(point: Vector3 | Vector2)
2. AABBTree.GetShapesOverlappingWithShape(another: IAABBShape)

# AABB Tree
Simple implementation of an AABB Tree (Axis Aligned Bounding Box Tree) to optimize collision detection

## Documentations
The TypeDoc generated documentation can be found at the following [here](https://jeremyaube.github.io/AABBTreejs/)

## Commands
**Run Test**: `npm test`  
**Generate the docs**: `npm docs`  
**Build the package**: `npm build`

## Ressources
- https://www.azurefromthetrenches.com/introductory-guide-to-aabb-tree-collision-detection/
- https://www.randygaul.net/2013/08/06/dynamic-aabb-tree/

## Contributing
Feel free to fork this project and send your changes in a pull requests.

## Bugs
If you find a bug, please report it as a Github Issue.