open-index/open-npm huggingface dataset:
npm package: @shun-js/shun-service
Description: shun.js service
Author: uikoo9
Latest version: 0.3.1

# @shun-js/shun-service

shun.js 各服务之间调用的工具

## 示例

```js
// services1
const { feishuBot } = require('@shun-js/shun-service');

// feishu
const feishuBotRes = await feishuBot({
  url: global.QZ_CONFIG.feishu.url,
  feishuUrl: global.QZ_CONFIG.feishu.feishuUrl,
  feishuMsg: finalMsg,
});
req.logger.warn(methodName, 'feishuBotRes', feishuBotRes);
res.json(feishuBotRes);
```
npm package: @shun-js/sms
Description: sms
Author: uikoo9
Latest version: 0.3.2

# @shun-js/sms

shun.js服务：国内短信服务

## 配置文件

以`sms.json`命名

```json
{
  "port": 8002,
  "submail": {
    "appid": "xx",
    "appkey": "xx"
  },
  "feishu": {
    "url": "http://127.0.0.1:8001/feishu/bot",
    "feishuUrl": "https://open.feishu.cn/open-apis/bot/v2/hook/xx"
  }
}
```

## 启动

```shell
# 全局安装该服务
npm i -g @shun-js/sms

# 安装shun-cli
npm i -g @shun-js/shun-cli

# 启动，在sms.json所在目录下
shunjs start @shun-js/sms
```

## 请求

```shell
curl --location --request POST 'http://127.0.0.1:8002/sms' \
--data-urlencode 'mobile=xx' \
--data-urlencode 'content=【xx】验证码：123456，如非本人操作，请忽略此短信。'
```
npm package: @shun-js/user
Description: user
Author: uikoo9
Latest version: 0.4.7

# @shun-js/user

shun.js服务：用户服务

## 配置文件

以`user.json`命名

```json
{
  "port": 8003,
  "paths": ["/user/login", "/user/check"],
  "encryptKey": "xx",
  "db": {
    "connectionLimit": 20,
    "host": "127.0.0.1",
    "port": 3306,
    "database": "db_user",
    "user": "root",
    "password": "xx",
    "timezone": "Asia/Shanghai",
    "charset": "utf8mb4"
  },
  "redisOptions": {
    "port": 6380,
    "host": "127.0.0.1",
    "password": "xx",
    "db": 0
  },
  "feishu": {
    "url": "http://127.0.0.1:8001/feishu/bot",
    "feishuUrl": "https://open.feishu.cn/open-apis/bot/v2/hook/xx"
  }
}
```

## 启动

```shell
# 全局安装该服务
npm i -g @shun-js/user

# 安装shun-cli
npm i -g @shun-js/shun-cli

# 启动，在user.json所在目录下
shunjs start @shun-js/user
```

## 请求

```shell
curl --location --request POST 'http://127.0.0.1:8003/user/login' \
--data-urlencode 'mobile=xx' \
--data-urlencode 'code=123456'
```
npm package: @shun-shobon/eslint-config
Description: shun-shobon's ESLint config
Author: NISHIZAWA Shuntaro
Latest version: 1.0.1

# @shun-shobon/eslint-config

Shared ESLint config for shun-shobon's web projects.

## Installation

`eslint` is a peer dependency and must be installed in your project.

```bash
# If you use npm
npm install --save-dev @shun-shobon/eslint-config eslint

# If you use yarn
yarn add --dev @shun-shobon/eslint-config eslint

# If you use pnpm
pnpm add --save-dev @shun-shobon/eslint-config eslint
```

## Usage

```js
import { shun_shobon } from "@shun-shobon/eslint-config";

export default shun_shobon();
```
npm package: @shun-shobon/eslint-config-base
Description: My shareable ESLint config (base)
Author: Shuntaro Nishizawa
Latest version: 1.0.14
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @shun-shobon/eslint-config-base

My shareable ESLint config (base).
npm package: @shun-shobon/eslint-config-next
Description: My shareable ESLint config (next)
Author: Shuntaro Nishizawa
Latest version: 1.0.9
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @shun-shobon/eslint-config-next

My shareable ESLint config (next).
npm package: @shun-shobon/eslint-config-react
Description: My shareable ESLint config (react)
Author: Shuntaro Nishizawa
Latest version: 1.0.4
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @shun-shobon/eslint-config-react

My shareable ESLint config (react).
npm package: @shun-shobon/eslint-config-utils
Description: My shareable ESLint config (utilities)
Author: Shuntaro Nishizawa
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @shun-shobon/eslint-config-utils

My shareable ESLint config (utils).
npm package: @shun-shobon/littlexml
Description: 1kB XML library for Node.js, Bun, Deno, Browser, Edge runtime.
Author: NISHIZAWA Shuntaro
Latest version: 0.6.4

# @shun-shobon/littlexml

1kB XML library for Node.js, Bun, Deno, Browser, Edge runtime.

[![npm](https://img.shields.io/npm/v/@shun-shobon/littlexml?logo=npm)](https://www.npmjs.com/package/@shun-shobon/littlexml)
[![bundle size](https://img.shields.io/bundlephobia/minzip/@shun-shobon/littlexml)](https://bundlephobia.com/package/@shun-shobon/littlexml)
[![test](https://github.com/shun-shobon/littlexml/actions/workflows/check.yml/badge.svg)](https://github.com/shun-shobon/littlexml/actions/workflows/check.yml)
[![codecov](https://codecov.io/gh/shun-shobon/littlexml/branch/master/graph/badge.svg?token=VAZxHGjjpu)](https://codecov.io/gh/shun-shobon/littlexml)

## About

This library is designed to run on small JavaScript runtimes such as Cloudflare
Workers. It also works on Node.js, Bun, Deno, and browsers.

## Features

- Render XML as a string, iterator, or stream.
- Render XML with indentation.

## Support platforms

- Node.js
- Deno
- Bun
- Browser
- Edge runtime like Cloudflare Workers, Vercel Edge Functions

## Installation

### Node.js / Bun

Install package from npm. You can also use yarn/pnpm instead of npm.
If you are using Bun, you can install with `bun add` command.

```sh
npm install @shun-shobon/littlexml
```

You can import from the package as `@shun-shobon/littlexml`.

```ts
import { element, renderToString } from "@shun-shobon/littlexml";
```

### Deno

You can directly import from `npm:@shun-shobon/littlexml`.

```ts
import { element, renderToString } from "npm:littlexml@latest";
```

### Browser

You can directly import from `unpkg.com`.

```js
import {
	element,
	renderToString,
} from "https://unpkg.com/@shun-shobon/littlexml@latest";
```

## Example

This example is rendering a sitemap.

```typescript
import { element, renderToString } from "@shun-shobon/littlexml";

const root = element("urlset")
	.attr("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")
	.attr("xmlns:image", "http://www.google.com/schemas/sitemap-image/1.1")
	.child(
		element("url")
			.child(element("loc").text("https://example.com/"))
			.child(element("lastmod").text("2020-01-01"))
			.child(element("changefreq").text("daily"))
			.child(element("priority").text("0.8"))
			.child(
				element("image:image")
					.child(element("image:loc").text("https://example.com/image.png"))
					.child(element("image:caption").text("caption")),
			),
	);

const xml = renderToString(root, { version: "1.0", indent: 2 });

console.log(xml);
```

console output:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2020-01-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://example.com/image.png</image:loc>
      <image:caption>caption</image:caption>
    </image:image>
  </url>
</urlset>
```
npm package: @shun-shobon/opencode-caffeinate
Description: OpenCode plugin that keeps macOS awake during active sessions.
Author: NISHIZAWA Shuntaro
Latest version: 0.1.1

# opencode-caffeinate

An OpenCode plugin that runs `caffeinate -i` while OpenCode is busy, keeping macOS awake during active sessions.

## Requirements

- macOS (uses the built-in `caffeinate` command)
- OpenCode

## Install

Add the plugin to your `opencode.json`:

```json
{
	"$schema": "https://opencode.ai/config.json",
	"plugin": ["@shun-shobon/opencode-caffeinate"]
}
```

OpenCode installs npm plugins automatically on startup using Bun.

## Behavior

- Starts `caffeinate` when a session becomes busy or retrying.
- Stops `caffeinate` when the session becomes idle.

## OpenCode plugin notes

- Local plugins can be placed in `.opencode/plugin/` or `~/.config/opencode/plugin/`.
- npm plugins are cached in `~/.cache/opencode/node_modules/`.
npm package: @shun-shobon/prettier-config
Description: shun-shobon's Prettier config
Author: NISHIZAWA Shuntaro
Latest version: 1.0.0

# @shun-shobon/prettier-config

Shared Prettier config for shun-shobon's web projects.

## Installation

`prettier` is a peer dependency and must be installed in your project.

```bash
# If you use npm
npm install --save-dev @shun-shobon/prettier-config prettier

# If you use yarn
yarn add --dev @shun-shobon/prettier-config prettier

# If you use pnpm
pnpm add --save-dev @shun-shobon/prettier-config prettier
```

## Usage

```js
import { shun_shobon } from "@shun-shobon/prettier-config";

export default shun_shobon();
```
npm package: @shun-shobon/style-guide
Description: shun-shobon's engineering style guide
Author: NISHIZAWA Shuntaro
Latest version: 5.1.1

# shun-shobon's Style Guide

## Introduction

This repository is a collection of style guides for web application development, which includes configs for popular tools linting and styling tools.

The following configs are available:

- [ESLint](#ESLint)
- [Prettier](#Prettier)

## Installation

All of the configs are contained in one package, `@shun-shobon/style-guide`. To install:

```bash
# If you use npm
npm install --save-dev @shun-shobon/style-guide

# If you use yarn
yarn add --save-dev @shun-shobon/style-guide

# If you use pnpm
pnpm add --dev @shun-shobon/style-guide
```

Some of the configs require peer dependencies.

## ESLint

> [!NOTE]
> ESLint is a peer-dependency of this package, and should be installed at the root of your project.

To use the shared ESLint config, set the following in `eslint.config.js`:

```js
import { shun_shobon } from "@shun-shobon/style-guide/eslint";

export default shun_shobon();
```

## Prettier

> [!NOTE]
> Prettier is a peer-dependency of this package, and should be installed at the root of your project.

To use the shared Prettier config, set the following in `prettier.config.js`:

```js
import { shun_shobon } from "@shun-shobon/style-guide/prettier";

export default shun_shobon();
```
npm package: @shun_god/fireworks-js-setlocation
Description: A simple fireworks library!のフォーク
Author: shun-god
Latest version: 2.11.1

# @shun_god/fireworks-js-setlocation

フォーク版で追加した主なオプション（角度・距離・ターゲット座標）

- `launchAngle`: 度数指定。右向き0度、上向き90度。`number` / `{ min, max }` / `'random'` を受け付け。
- `burstDistance`: 炸裂までの距離(px)。速度オプションと組み合わせて到達タイミングが決まる。
- `target`: `{ enabled, x, y }`。有効化するとマウスより低優先度、角度/距離より高優先度で炸裂位置を固定。
- 優先順位: マウス（`mouse.click` / `mouse.move` で active） > `target.enabled` が true > `launchAngle` / `burstDistance` > 従来ランダム。

シンプルな使用例:

```ts
import { Fireworks } from '@shun_god/fireworks-js-setlocation'

const fw = new Fireworks(container, {
	launchAngle: { min: 60, max: 120 },
	burstDistance: 500,
	mouse: { click: true, move: false, max: 1 },
	target: { enabled: true, x: 200, y: 150 }
})

fw.start()
```
npm package: @shun_god/fireworks-js-setlocation-react
Description: A simple fireworks library!のフォーク
Author: shun-god
Latest version: 2.11.1

# @fireworks-js-setlocation-react

React ラッパー経由で `launchAngle`（度数, 右向き0度）, `burstDistance`（px距離）, `target`（座標指定+enabled）を `options` に渡せます。マウス挙動は従来どおり `mouse.click` / `mouse.move` で制御し、クリックが有効ならマウス位置が最優先されます。

```tsx
import { Fireworks } from '@fireworks-js/react'

<Fireworks
	options={{
		launchAngle: { min: 60, max: 120 },
		burstDistance: 500,
		mouse: { click: true, move: false, max: 1 },
		target: { enabled: true, x: 200, y: 150 }
	}}
/>
```
npm package: @shunjun/utils
Description: Personal utils collection
Author: ShunJun
Latest version: 0.0.1

# @shunjun/utils

[![NPM Version][npm-version-src]][npm-version-href]
[![NPM Downloads][npm-downloads-src]][npm-downloads-href]
[![bundle][bundle-src]][bundle-href]
[![JSDocs][jsdocs-src]][jsdocs-href]
[![License][license-src]][license-href]

Personal utils collection

## Sponsors

## License

[MIT](./LICENSE) License © 2023-PRESENT [ShunJun](https://github.com/shunjun)

<!-- Badges -->
[npm-version-src]: https://img.shields.io/npm/v/@shunjun/utils?style=flat&colorA=080f12&colorB=1fa669
[npm-version-href]: https://npmjs.com/package/@shunjun/utils
[npm-downloads-src]: https://img.shields.io/npm/dm/@shunjun/utils?style=flat&colorA=080f12&colorB=1fa669
[npm-downloads-href]: https://npmjs.com/package/@shunjun/utils
[bundle-src]: https://img.shields.io/bundlephobia/minzip/@shunjun/utils?style=flat&colorA=080f12&colorB=1fa669&label=minzip
[bundle-href]: https://bundlephobia.com/result?p=@shunjun/utils
[license-src]: https://img.shields.io/github/license/antfu/@shunjun/utils.svg?style=flat&colorA=080f12&colorB=1fa669
[license-href]: https://github.com/antfu/@shunjun/utils/blob/main/LICENSE
[jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669
[jsdocs-href]: https://www.jsdocs.io/package/@shunjun/utils