open-index/open-npm huggingface dataset:
npm package: @moebius/aws-cw-log-streamer
Description: AWS CloudWatch log streamer
Author: Slava Fomin II
Latest version: 1.0.0


# @moebius/aws-cw-log-streamer

<!-- NPM Badge -->
<a href="https://badge.fury.io/js/@moebius%2Faws-cw-log-streamer">
  <img src="https://badge.fury.io/js/@moebius%2Faws-cw-log-streamer.svg" alt="npm version" height="18">
</a>

<!-- MIT License Badge -->
<a href="https://opensource.org/licenses/MIT">
  <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" height="20">
</a>


## Features

@TODO


## Install

Install the library:

```shell
npm install --save @moebius/aws-cw-log-streamer
```


## Usage

@TODO


## Examples

You can find various usage examples in the
[examples](./examples) directory of the library.


### Running examples

```shell
npx ts-node \
  -P ./tsconfig.examples.json \
  -r tsconfig-paths/register \
  {PATH TO EXAMPLE}
```


## License (MIT)

Copyright © 2021 Slava Fomin II

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @moebius/aws-ecs-task-monitor
Description: AWS ECS task monitor
Author: Slava Fomin II
Latest version: 1.0.0


# @moebius/aws-ecs-task-monitor

<!-- NPM Badge -->
<a href="https://badge.fury.io/js/@moebius%2Faws-ecs-task-monitor">
  <img src="https://badge.fury.io/js/@moebius%2Faws-ecs-task-monitor.svg" alt="npm version" height="18">
</a>

<!-- MIT License Badge -->
<a href="https://opensource.org/licenses/MIT">
  <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" height="20">
</a>


## Features

@TODO


## Install

Install the library:

```shell
npm install --save @moebius/aws-ecs-task-monitor
```


## Usage

@TODO


## License (MIT)

Copyright © 2021 Slava Fomin II

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @moebius/aws-ecs-task-runner
Description: AWS ECS task runner
Author: Slava Fomin II
Latest version: 1.0.2


# @moebius/aws-ecs-task-runner

<!-- NPM Badge -->
<a href="https://badge.fury.io/js/@moebius%2Faws-ecs-task-runner">
  <img src="https://badge.fury.io/js/@moebius%2Faws-ecs-task-runner.svg" alt="npm version" height="18">
</a>

<!-- MIT License Badge -->
<a href="https://opensource.org/licenses/MIT">
  <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" height="20">
</a>


## Features

@TODO


## Install

Install the library:

```shell
npm install --save @moebius/aws-ecs-task-runner
```


## Usage

@TODO


## License (MIT)

Copyright © 2021 Slava Fomin II

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @moebius/aws-ecs-update-task-definition
Description: Utility to update AWS ECS task definition
Author: Slava Fomin II
Latest version: 1.1.0


# @moebius/aws-ecs-update-task-definition

<!-- NPM Badge -->
<a href="https://badge.fury.io/js/@moebius%2Faws-ecs-update-task-definition">
  <img src="https://badge.fury.io/js/@moebius%2Faws-ecs-update-task-definition.svg" alt="npm version" height="18">
</a>

<!-- MIT License Badge -->
<a href="https://opensource.org/licenses/MIT">
  <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" height="20">
</a>

Utility to update AWS ECS task definition.


## Features

@TODO


## Install

Install the library:

```shell
npm install --save @moebius/aws-ecs-update-task-definition
```


## Usage

@TODO


## License (MIT)

Copyright © 2021 Slava Fomin II

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @moebius/babel-plugin-transform-remove-imports
Description: Remove the specified import declaration when you use the babel transform to build the package.
Author: Kenny Wong
Latest version: 1.5.0

babel-plugin-transform-remove-imports
===

[![NPM version](https://img.shields.io/npm/v/babel-plugin-transform-remove-imports.svg?style=flat)](https://npmjs.org/package/babel-plugin-transform-remove-imports)
[![Build Status](https://img.shields.io/travis/uiwjs/babel-plugin-transform-remove-imports.svg?style=flat)](https://travis-ci.org/uiwjs/babel-plugin-transform-remove-imports)
[![Coverage Status](https://coveralls.io/repos/github/uiwjs/babel-plugin-transform-remove-imports/badge.svg?branch=master)](https://coveralls.io/github/uiwjs/babel-plugin-transform-remove-imports?branch=master)

Modular import plugin for babel for server-side rendering. Also works for cjs to delete imported CSS to avoid compilation errors..

## Usage

```bash
npm install babel-plugin-transform-remove-imports --save-dev
```

Via `.babelrc` or `babel-loader`.

```json
{
  "plugins": [
    [
      "babel-plugin-transform-remove-imports", {
        "test": "\\.(less|css)$"
      }
    ]
  ]
}
```

```js
// Input Code
import './index.less';
import './index.main.less';
import { Button } from 'uiw';
import { Select } from '@uiw/core';

// Output   ↓ ↓ ↓ ↓ ↓ ↓
import { Button } from 'uiw';
import { Select } from '@uiw/core';
```

Output Result

```diff
- import './index.less';
- import './index.main.less';
import { Button } from 'uiw';
import { Select } from '@uiw/core';
```

## Options

- `test: RegExp | string | (RegExp | string)[]`
  
A regular expression to match the imports that will be removed.
It could be a string or a RegExp object.
You could also pass an array here.

- `removeAll: boolean`

Deletes all imports.

- `remove?: 'effects'`

Removing only side effects imports，Used with the `test` option. [#3](https://github.com/uiwjs/babel-plugin-transform-remove-imports/issues/3)

```js
// Input Code
import 'foo';
import Foo from 'foo';

// Output Code  ↓ ↓ ↓ ↓ ↓ ↓
import Foo from 'foo';
```

## Programmatic Usage

```js
import plugin from 'babel-plugin-transform-remove-imports'
import { transform } from 'babel-core'
 
function replace (code) {
  return transform(code, {
    babelrc: false,
    plugins: [
      [plugin, { test: /\.(less|css)$/ }]
    ],
  }).code;
}
 
replace("import './index.main.less';import { Button } from 'uiw';")
//=> "import { Button } from 'uiw';"
```

## License

[MIT](./LICENSE) © [`Kenny Wong`](https://github.com/jaywcjlove) & [`Slava Fomin II`](https://github.com/slavafomin)
npm package: @moebius/i18n
Description: Internationalization middleware for grammY and Telegraf
Author: EdJoPaTo
Latest version: 0.3.2

# i18n for grammY and Telegraf

Internationalization middleware for [grammY](github.com/grammyjs/grammy) and [Telegraf](https://github.com/telegraf/telegraf).

## Installation

```bash
npm install @grammyjs/i18n
```

## Example

```plaintext
yaml and json are ok
Example directory structure:
├── locales
│   ├── en.yaml
│   ├── en-US.yaml
│   ├── it.json
│   └── ru.yaml
└── bot.js
```

```js
import {Bot, session} from 'grammy'
import {I18n, pluralize} from '@grammyjs/i18n'

const i18n = new I18n({
  defaultLanguageOnMissing: true, // implies allowMissing = true
  directory: 'locales',
  useSession: true,
})

// Also you can provide i18n data directly
i18n.loadLocale('en', {greeting: 'Hello!'})

const bot = new Bot(process.env['BOT_TOKEN']!)
bot.use(session())
bot.use(i18n.middleware())

// Start message handler
bot.command('start', async ctx => ctx.reply(ctx.i18n.t('greeting')))

bot.start()
```

A full example for both grammY and Telegraf are in the [examples folder](/examples).

## User context

Commonly used Context functions:

```ts
bot.use(ctx => {
  ctx.i18n.locale()                    // Get current locale
  ctx.i18n.locale(code)                // Set current locale
  ctx.i18n.t(resourceKey, [data])      // Get resource value (data will be used by template engine)
});
```
npm package: @moeed/nestjs-rate-limiter
Description: A Nest.js module for rate limiting using express-rate-limit
Author: Moeed Heidary Goudarzy
Latest version: 1.0.0


# Nest.js Rate Limiter Module

A simple and efficient rate limiting module for Nest.js applications. It leverages `express-rate-limit` to protect your application from abuse by limiting the number of requests that a client can make within a defined time window.

## Installation

First, install the module using npm:

```bash
npm install @moeed/nestjs-rate-limiter --save
```

Make sure to also have `express-rate-limit` installed, as it is a peer dependency.

## Usage

Import the `RateLimiterModule` into your root module and configure it using the `register` method:

```typescript
import { RateLimitModule } from '@moeed/nestjs-rate-limiter';

@Module({
  imports: [
    RateLimiterModule.register({
      windowMs: 15 * 60 * 1000, // 15 minutes
      max: 100, // limit each IP to 100 requests per windowMs
    }),
    // ... other modules
  ],
})
export class AppModule {}
```

### Custom Routes

You can specify custom routes to apply rate limiting by using the `routes` option:

```typescript
RateLimiterModule.register({
  windowMs: 15 * 60 * 1000,
  max: 100,
  routes: [
    { path: '/api', method: RequestMethod.ALL },
    { path: '/auth/login', method: RequestMethod.POST },
  ],
})
```

## Options

The following options can be used to configure the rate-limiting behavior:

- `windowMs`: The duration in milliseconds to keep track of requests (default: `60000`).
- `max`: The maximum number of requests allowed within `windowMs` (default: `5`).
- `routes`: An optional array of custom routes to apply rate limiting.

See the [`express-rate-limit` documentation](https://www.npmjs.com/package/express-rate-limit) for more options and details.

## Features

- Easy integration with existing Nest.js applications.
- Extends `express-rate-limit`, allowing for a wide range of customization.
- Global module availability.

## Contributing

Contributions, issues, and feature requests are welcome! Feel free to check [issues page](https://github.com/moeedhy/nestjs-rate-limiter/issues) or open a pull request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.

## Support

If you find this package useful, please consider starring the repository on GitHub or sharing it with your colleagues.
npm package: @moefy-canvas/theme-meteor
Description: <p align="center">    <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />    <a href="https://www.npmjs.com/package/@moefy-canvas/theme-meteor" target="_blank"><img alt="npm" src="https:/
Author: Nyakku Shigure
Latest version: 0.6.0

# @moefy-canvas/theme-meteor <GitHubLink repo="moefyit/moefy-canvas" subpath="packages/theme-meteor"/>

<p align="center">
   <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-meteor" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/@moefy-canvas/theme-meteor.svg?style=for-the-badge&logo=npm"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-meteor" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dt/@moefy-canvas/theme-meteor.svg?style=for-the-badge"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-meteor" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dm/@moefy-canvas/theme-meteor.svg?style=for-the-badge"></a>
   <a href="https://github.com/moefyit/moefy-canvas/blob/main/LICENSE" target="_blank"><img alt="GitHub license" src="https://img.shields.io/github/license/moefyit/moefy-canvas?style=for-the-badge"></a>
</p>

:stars: 晃动下鼠标～

## Install

```bash
pnpm add @moefy-canvas/theme-meteor
```

## Usage

```html
<canvas id="moefy-canvas"></canvas>
```

```ts
import {
   Meteor,
   type MeteorConfig,
   type CanvasOptions,
   MAX_Z_INDEX,
} from '@moefy-canvas/theme-meteor'

const themeConfig: MeteorConfig = {
   numParticles: null,
   particleColor: {
      light: 'rgba(102, 175, 239, .2)',
      dark: 'rgba(245, 236, 66, .2)',
   },
}

const canvasOptions: CanvasOptions = {
   opacity: 1,
   zIndex: -MAX_Z_INDEX,
}

const el = document.getElementById('moefy-canvas')
const meteor = new Meteor(themeConfig, canvasOptions)
meteor.mount(el as HTMLCanvasElement)
```

## ThemeConfig

```ts
export interface ColorTheme {
   light: string
   dark: string
}

export interface MeteorConfig extends ThemeConfig {
   numParticles?: number | null
   particleColor?: string | ColorTheme
}
```

<Meteor />
npm package: @moefy-canvas/theme-popper
Description: <p align="center">    <img alt="type" src="https://img.shields.io/static/v1?label=type&message=cursor-effects&color=green&style=for-the-badge" />    <a href="https://www.npmjs.com/package/@moefy-canvas/theme-popper" target="_blank"><img alt="npm" src="htt
Author: Nyakku Shigure
Latest version: 0.6.0

# @moefy-canvas/theme-popper <GitHubLink repo="moefyit/moefy-canvas" subpath="packages/theme-popper"/>

<p align="center">
   <img alt="type" src="https://img.shields.io/static/v1?label=type&message=cursor-effects&color=green&style=for-the-badge" />
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-popper" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/@moefy-canvas/theme-popper.svg?style=for-the-badge&logo=npm"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-popper" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dt/@moefy-canvas/theme-popper.svg?style=for-the-badge"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-popper" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dm/@moefy-canvas/theme-popper.svg?style=for-the-badge"></a>
   <a href="https://github.com/moefyit/moefy-canvas/blob/main/LICENSE" target="_blank"><img alt="GitHub license" src="https://img.shields.io/github/license/moefyit/moefy-canvas?style=for-the-badge"></a>
</p>

:tada: 点击鼠标试试～

## Install

```bash
pnpm add @moefy-canvas/theme-popper
```

## Usage

```html
<canvas id="moefy-canvas"></canvas>
```

```ts
import {
   Popper,
   PopperShape,
   type PopperConfig,
   MAX_Z_INDEX,
   type CanvasOptions,
} from '@moefy-canvas/theme-popper'

const themeConfig: PopperConfig = {
   shape: PopperShape.Star,
   size: 1.75,
   numParticles: 10,
}

const canvasOptions: CanvasOptions = {
   opacity: 1,
   zIndex: MAX_Z_INDEX,
}

const el = document.getElementById('moefy-canvas')
const popper = new Popper(themeConfig, canvasOptions)
popper.mount(el as HTMLCanvasElement)
```

## ThemeConfig

```ts
export enum PopperShape {
   Star = 'star',
   Circle = 'circle',
}

export interface PopperConfig extends ThemeConfig {
   shape?: PopperShape
   size?: number
   numParticles?: number
}
```

<Popper/>
npm package: @moefy-canvas/theme-ribbon
Description: <p align="center">    <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />    <a href="https://www.npmjs.com/package/@moefy-canvas/theme-ribbon" target="_blank"><img alt="npm" src="https:/
Author: Nyakku Shigure
Latest version: 0.6.0

# @moefy-canvas/theme-ribbon <GitHubLink repo="moefyit/moefy-canvas" subpath="packages/theme-ribbon" />

<p align="center">
   <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-ribbon" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/@moefy-canvas/theme-ribbon.svg?style=for-the-badge&logo=npm"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-ribbon" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dt/@moefy-canvas/theme-ribbon.svg?style=for-the-badge"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-ribbon" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dm/@moefy-canvas/theme-ribbon.svg?style=for-the-badge"></a>
   <a href="https://github.com/moefyit/moefy-canvas/blob/main/LICENSE" target="_blank"><img alt="GitHub license" src="https://img.shields.io/github/license/moefyit/moefy-canvas?style=for-the-badge"></a>
</p>

:reminder_ribbon: 背景的彩带效果～

## Install

```bash
pnpm add @moefy-canvas/theme-ribbon
```

## Usage

```html
<canvas id="moefy-canvas"></canvas>
```

```ts
import {
   Ribbon,
   type RibbonConfig,
   type CanvasOptions,
   MAX_Z_INDEX,
} from '@moefy-canvas/theme-ribbon'

const themeConfig: RibbonConfig = {
   size: 90,
}

const canvasOptions: CanvasOptions = {
   opacity: 1,
   zIndex: -MAX_Z_INDEX,
}

const el = document.getElementById('moefy-canvas')
const sparkler = new Ribbon(themeConfig, canvasOptions)
sparkler.mount(el as HTMLCanvasElement)
```

## ThemeConfig

```ts
export interface RibbonConfig extends ThemeConfig {
   size?: number
}
```

<Ribbon />
npm package: @moefy-canvas/theme-sakura
Description: <p align="center">    <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />    <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sakura" target="_blank"><img alt="npm" src="https:/
Author: Nyakku Shigure
Latest version: 0.6.0

# @moefy-canvas/theme-sakura <GitHubLink repo="moefyit/moefy-canvas" subpath="packages/theme-sakura" />

<p align="center">
   <img alt="type" src="https://img.shields.io/static/v1?label=type&message=background&color=green&style=for-the-badge" />
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sakura" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/@moefy-canvas/theme-sakura.svg?style=for-the-badge&logo=npm"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sakura" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dt/@moefy-canvas/theme-sakura.svg?style=for-the-badge"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sakura" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dm/@moefy-canvas/theme-sakura.svg?style=for-the-badge"></a>
   <a href="https://github.com/moefyit/moefy-canvas/blob/main/LICENSE" target="_blank"><img alt="GitHub license" src="https://img.shields.io/github/license/moefyit/moefy-canvas?style=for-the-badge"></a>
</p>

:cherry_blossom: 稍等片刻～

## Install

```bash
pnpm add @moefy-canvas/theme-sakura
```

## Usage

```html
<canvas id="moefy-canvas"></canvas>
```

```ts
import {
   Sakura,
   type SakuraConfig,
   MAX_Z_INDEX,
   type CanvasOptions,
} from '@moefy-canvas/theme-sakura'

const themeConfig: SakuraConfig = {
   numPatels: 30,
}

const canvasOptions: CanvasOptions = {
   opacity: 1,
   zIndex: -MAX_Z_INDEX,
}

const el = document.getElementById('moefy-canvas')
const sakura = new Sakura(themeConfig, canvasOptions)
sakura.mount(el as HTMLCanvasElement)
```

## ThemeConfig

```ts
export interface SakuraConfig extends ThemeConfig {
   numPatels?: number
}
```

<Sakura />
npm package: @moefy-canvas/theme-sparkler
Description: <p align="center">    <img alt="type" src="https://img.shields.io/static/v1?label=type&message=cursor-effects&color=green&style=for-the-badge" />    <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sparkler" target="_blank"><img alt="npm" src="h
Author: Nyakku Shigure
Latest version: 0.6.0

# @moefy-canvas/theme-sparkler <GitHubLink repo="moefyit/moefy-canvas" subpath="packages/theme-sparkler"/>

<p align="center">
   <img alt="type" src="https://img.shields.io/static/v1?label=type&message=cursor-effects&color=green&style=for-the-badge" />
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sparkler" target="_blank"><img alt="npm" src="https://img.shields.io/npm/v/@moefy-canvas/theme-sparkler.svg?style=for-the-badge&logo=npm"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sparkler" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dt/@moefy-canvas/theme-sparkler.svg?style=for-the-badge"></a>
   <a href="https://www.npmjs.com/package/@moefy-canvas/theme-sparkler" target="_blank"><img alt="downloads" src="https://img.shields.io/npm/dm/@moefy-canvas/theme-sparkler.svg?style=for-the-badge"></a>
   <a href="https://github.com/moefyit/moefy-canvas/blob/main/LICENSE" target="_blank"><img alt="GitHub license" src="https://img.shields.io/github/license/moefyit/moefy-canvas?style=for-the-badge"></a>
</p>

:sparkler: 就是现在鼠标周围的粒子效果啦～

## Install

```bash
pnpm add @moefy-canvas/theme-sparkler
```

## Usage

```html
<canvas id="moefy-canvas"></canvas>
```

```ts
import {
   Sparkler,
   SparklerMode,
   type SparklerConfig,
   type CanvasOptions,
   MAX_Z_INDEX,
} from '@moefy-canvas/theme-sparkler'

const themeConfig: SparklerConfig = {
   mode: SparklerMode.TRAIL,
}

const canvasOptions: CanvasOptions = {
   opacity: 1,
   zIndex: MAX_Z_INDEX,
}

const el = document.getElementById('moefy-canvas')
const sparkler = new Sparkler(themeConfig, canvasOptions)
sparkler.mount(el as HTMLCanvasElement)
```

## ThemeConfig

```ts
export enum SparklerMode {
   FOLLOW = 'follow',
   TRAIL = 'trail',
}

export interface SparklerConfig extends ThemeConfig {
   mode?: SparklerMode
   numParticles?: number
   sparkleFactor?: number
   particleDurationRange?: [number, number]
   particleDistanceRange?: [number, number]
   particleSizeRange?: [number, number]
}
```

<Sparkler />
npm package: @moehaj/aru-sdk
Description: Official SDK for the A.R.U (Automated Runtime Unit) API
Latest version: 0.1.1

# @moehaj/aru-sdk

Official SDK for the [A.R.U (Automated Runtime Unit)](https://aru-runtime.com) API.

Submit natural language missions that are compiled, executed, and certified against constraints before delivery.

## Install

```bash
npm install @moehaj/aru-sdk
```

## Usage

### JavaScript

```js
const { ARU } = require("@moehaj/aru-sdk");

const aru = new ARU("aru_live_your_key_here");

async function main() {
  const result = await aru.certify("analyze BTC price action");

  console.log(result.certification.status); // "CERTIFIED"
  console.log(result.output);
  console.log(`Done in ${result.totalTimeMs}ms`);
}

main();
```

### TypeScript

```ts
import { ARU, type Constraint, type CertifyResponse } from "@moehaj/aru-sdk";

const aru = new ARU("aru_live_your_key_here");

const constraints: Constraint[] = [
  { rule: "must include a buy or sell recommendation", severity: "hard" },
  { rule: "must mention support and resistance levels", severity: "soft" },
];

const result: CertifyResponse = await aru.certify(
  "analyze BTC price action",
  constraints
);

console.log(result.certification.status); // "CERTIFIED"
console.log(result.output);

// Constraint report
const report = result.certification.constraintReport;
console.log(`${report.passed.length}/${report.total} constraints passed`);
```

## API

### `new ARU(apiKey, options?)`

| Parameter | Type | Description |
|-----------|------|-------------|
| `apiKey` | `string` | Your API key (`aru_live_...` or `aru_sandbox_...`) |
| `options.baseUrl` | `string` | Override the base URL (default: `https://aru-runtime.com`) |

### `aru.certify(intent, constraints?)`

| Parameter | Type | Description |
|-----------|------|-------------|
| `intent` | `string` | Natural language description of the mission |
| `constraints` | `Constraint[]` | Optional custom constraints with `rule` and `severity` (`"hard"` or `"soft"`) |

Returns a `Promise<CertifyResponse>` with the certified output, constraint report, and execution metadata.

## License

MIT
npm package: @moeindana/auto-animate
Description: Add motion to your apps with a single line of code.
Author: Moein Danesh
Latest version: 0.9.4

<img width="300" height="37" alt="AutoAnimate Logo" src="https://cdn.formk.it/web-assets/logo-auto-animate.svg" >

![Latest Build](https://github.com/formkit/auto-animate/actions/workflows/main.yml/badge.svg) ![GitHub Sponsors](https://img.shields.io/github/sponsors/formkit) ![Package Size](https://img.badgesize.io/https:/unpkg.com/@moeindana/auto-animate@latest/index.min.js.svg?label=brotli&compression=brotli)

# Add motion to your apps with a single line of code.

AutoAnimate is a zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with Vue, React, Solid or any other JavaScript application.

<a href="https://auto-animate.formkit.com"><img width="180" height="42" src="https://cdn.formk.it/web-assets/read-docs-auto-animate-v2.svg" alt="Examples & Docs"></a>

With one line of code, you can improve your interfaces, for example:

<a href="https://auto-animate.formkit.com">
  <img src="https://cdn.formk.it/web-assets/motion.gif" alt="Simple example of AutoAnimation motion">
</a>

## Installation

Install using your package manager of choice.

```bash
# yarn
yarn add @moeindana/auto-animate
# npm
npm install @moeindana/auto-animate
# pnpm
pnpm add @moeindana/auto-animate
```

Boom! Done. That was fast! 🐇

## Usage

📖 [View the documentation site for usage instructions](https://auto-animate.formkit.com#usage).

## Examples

📖 [View the documentation site for examples](https://auto-animate.formkit.com#examples).

## Plugins

📖 [View the documentation site for plugin instructions](https://auto-animate.formkit.com#plugins).

## Support us

Is AutoAnimate saving you time?

Please consider [supporting us with a recurring or one-time donation](https://github.com/sponsors/formkit)! 🙏

## Contributing

Thank you for your willingness to contribute to this free and open source project! When contributing, consider first discussing your desired change with the core team via <a href="https://github.com/formkit/auto-animate/issues">GitHub issues</a>, <a href="https://discord.gg/SHYT8pyeNm">Discord</a>, or other method.
npm package: @moeindana/type-generator
Description: Generate TypeScript types from Swagger/OpenAPI JSON
Author: moeindana
Latest version: 1.0.4

# @moeindana/type-generator

A lightweight TypeScript type generator for Swagger/OpenAPI specifications. This tool helps you automatically generate TypeScript types from your Swagger/OpenAPI JSON documentation.

## Features

- Generate TypeScript types from Swagger/OpenAPI JSON URLs
- Customizable output directory and filename
- Support for custom templates
- Extracts request parameters, request/response bodies, and enums
- CLI and programmatic usage
- Built with Bun for optimal performance

## Requirements

- Node.js >= 16
- Bun runtime (for development)

## Installation

```bash
npm install @moeindana/type-generator
```

## CLI Usage

```bash
npx type-gen -u https://api.example.com/swagger.json
```

### CLI Options

- `-u, --url <url>` (required): Swagger JSON URL
- `-o, --output <directory>`: Output directory (default: "./src/types")
- `-n, --name <filename>`: Output filename (default: "types.ts")
- `-t, --templates <directory>`: Custom templates directory

## Programmatic Usage

```typescript
import { generateTypes } from "@moeindana/type-generator";

await generateTypes({
  url: "https://api.example.com/swagger.json",
  output: "./src/types",
  name: "api-types.ts",
  // templates: './custom-templates' // optional
});
```

## Custom Templates

You can customize the generated types by providing your own templates. Create a directory with the following template files:

- `data-contracts.ejs`
- `route-type.ejs`
- `data-contract-jsdoc.ejs`
- `route-name.ejs`
- `interface-data-contract.ejs`

Then specify the templates directory using the `-t` option in CLI or `templates` option in programmatic usage.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## Development

1. Clone the repository
2. Install dependencies with `bun install`
3. Run tests with `bun test`
4. Build the package with `bun run build`

## License

MIT © [moeindana]

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for details about changes and releases.