open-index/open-npm huggingface dataset:
npm package: @luoxiao123/bjca
Description: bjca ECAMScript for mordern browser
Author: luoxiao
Latest version: 3.1.6

# BJCA 数字签名 ECMAScript
----
[BJCA 数字认证](http://www.bjca.org.cn/) 浏览器客户端，与 [本地证书应用服务](http://download.bjca.org.cn/download/yzt/BJCA_client.exe) 通过 `WebSocket` 通信，
实现个人 `usbkey` 证书的识别、签名、加密

## 版本说明
本版本基于[waitingsong](https://github.com/waitingsong/bjca.js)代码库fork后修改，做后续开发！


## 安装
`npm install bjca`


## 使用
见 `demo/bjca.html`, 必须以网站运行，打开本地文件运行无效



## License
[MIT](LICENSE)
npm package: @luoxiao123/eslint-config
Description: ESLint Shareable Configuration for Typescrpt
Author: luoxiao123
Latest version: 5.2.5

# eslint-config

#### A strict [TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint) [Shareable Config](https://eslint.org/docs/developer-guide/shareable-configs) for instead of [TSlint](https://github.com/palantir/tslint)

[![Version](https://img.shields.io/npm/v/@waiting/eslint-config.svg)](https://www.npmjs.com/package/@waiting/eslint-config)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)

## 说明

- 规则根据`@waiting/eslint-config` fork，并根据自己项目进行修改

## Features
- `@waiting/eslint-config/recommended` extends and customize from
  - `eslint-plugin-import`
  - `eslint-plugin-node`
  - `eslint-plugin-unicorn`
  - `eslint:recommended`
  - `@typescript-eslint/recommended`
  - `@typescript-eslint/recommended-requiring-type-checking`
- `@waiting/eslint-config` extends `@waiting/eslint-config/strict` and more strict rules enabled


## Install

```sh
npm i -D @waiting/eslint-config eslint
```


## Usage
Shareable configs are designed to work with the `extends` feature of `.eslintrc.*` files.
You can learn more about
[Shareable Configs](https://eslint.org/docs/developer-guide/shareable-configs) on the
official ESLint website.

Add this to your `.eslintrc.*` file:
- `.eslintrc.yml` 
  ```yml
  extends: '@waiting/eslint-config' 
  ```
- `.eslintrc.json` 
  ```json
  {
    "extends": "@waiting/eslint-config"
  }
  ```

You can override settings from the shareable config by adding them directly into your
`.eslintrc.*` file.
And add file `.eslintrc.yml` under the folder such as `./test` for fast linting with less strict rules:
```yml
# .eslintrc.yml
extends: '@waiting/eslint-config/recommended'
```

## Linting

```sh
eslint --fix src/**/*.ts
eslint src/**/*.{ts,js}
```


## Learn more
- [ESlint](https://eslint.org/)
- [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint)
- [TSLint will be deprecated](https://github.com/palantir/tslint/issues/4534)
- [Eslint: Migrating to v6.0.0](https://eslint.org/docs/user-guide/migrating-to-6.0.0#package-loading-simplification)

## License
[MIT](LICENSE)


### Languages
- [English](README.md)
- [中文](README.zh-CN.md)
npm package: @luoxiaozero/disc
Description: 使 [jolyne-ui](https://github.com/luoxiaozero/jolyne-ui) 支持 React
Author: luoxiaozero
Latest version: 0.0.1

## 支持 React

使 [jolyne-ui](https://github.com/luoxiaozero/jolyne-ui) 支持 React
npm package: @luoxiu/keen-slider
Description: The HTML touch slider carousel with the most native feeling you will get.
Author: Eric Beyer
Latest version: 6.6.5

# Keen-Slider

[![npm version](https://badge.fury.io/js/keen-slider.svg)](https://www.npmjs.com/package/keen-slider)
[![npm downloads](https://img.shields.io/npm/dm/keen-slider)](https://www.npmjs.com/package/keen-slider)

**Keen-Slider** is a free library agnostic touch slider
with native touch/swipe behavior and great performance. It comes with
**no dependencies**, **typescript support**, **multitouch support**
and is compatible with
**all common browsers including IE 10**. Furthermore it comes with a **React Hook**, a **React Native Hook** and a **Vue 3 Composition Function** for easier use.

<p align="left">
  <a href="https://keen-slider.io/examples#default"
    ><img alt="this is webp"
 width="285" src="https://keen-slider.io/images/default.webp"
  /></a>
  <a href="https://keen-slider.io/examples#datetimepicker"
    ><img alt="this is webp"
 width="285" src="https://keen-slider.io/images/datepicker.webp"
  /></a>
</p>
<p align="left">
  <a href="https://keen-slider.io/examples#draggable-card"
    ><img alt="this is webp"
 width="285" src="https://keen-slider.io/images/card.webp"
  /></a>
  <a href="https://keen-slider.io/examples#background-rotation"
    ><img
      alt="this is webp"
      valign="top"
      width="285"
      src="https://keen-slider.io/images/rotation.webp"
  /></a>
</p>

## Getting Started

- [Documentation](https://keen-slider.io/docs)
- [Examples](https://keen-slider.io/examples)

## Contributing

Please open an issue if you find a bug or need some help. You are also free to create a pull request.
npm package: @luoxiu/watch
Author: luoxiu
Latest version: 0.0.12

# Watch

Do something exciting on file changes!

![ci](https://img.shields.io/github/workflow/status/luoxiu/watch/CI)
![npm](https://img.shields.io/npm/v/@luoxiu/watch)
![license](https://img.shields.io/github/license/luoxiu/watch)

## Install

```
$ npm install -g @luoxiu/watch

$ yarn add -g @luoxiu/watch

$ pnpm add -g @luoxiu/watch
```

## Usage

In your working directory, create a file named `watch.config.js`:

```
$ cd ./wd && touch watch.config.js
```

and execute:

```
$ watch
```

## `watch.config.js`

The following example will format your swift code as it changes:

```js
// watch.config.js
module.exports = {
    watchers: [ 
        {
            paths: ["Source/**/*.swift", "Tests/**/*.swift"],
            options: {
                ignored: ["*.generated.swift"],
            },
            callbacks: [
                {
                    events: ["change"],
                    callback: async (path) => {
                        await $`swiftformat ${path}`
                    }
                }
            ]
        }
    ]
}

// or
module.exports = async () => {
    return {
        // ...
    }
}
```

`watch` uses [chokidar](https://github.com/paulmillr/chokidar) to watch file changes, so you can watch `add | change | unlink(remove) | etc` events on `file | dir | glob | etc`. 

Please refer to [chokidar#api](https://github.com/paulmillr/chokidar#api) to learn more about `paths`, `options`, `events` and `callbacks`.

`watch` uses [zx](https://github.com/google/zx) to execute callbacks, so you can write expressive scripts like:

```
{
    events: ["changes"],
    callback: async (path) => {
        const resp = await fetch('https://wttr.in')
        const text = await fs.readFile(path)

        console.log(chalk.blue('Hello world!'))

        cd('/a-path')
        await $`pwd` // outputs /tmp
    }
}
```

Please refer to [zx#documentation](https://github.com/google/zx#documentation) to learn more about `zx`.
npm package: @luoyefe/decorator-redux
Description: use react-redux more easy by decorator
Author: luoyefe
Latest version: 1.1.0

# decorator-redux

用更便捷的方式使用 `react-redux`

## 安装

`npm i @luoyefe/decorator-redux`

## 使用

#### Store

`store` 部分借鉴 `vuex` 的实现，单个 `module` 包含 `state` `reducers` `actions` 以及 `modules` 四部分

`actions` 支持异步

`modules` 支持多层嵌套

`reducer` 真实修改 `state` 的纯函数

> actions 暂不支持跨 module 调用，请在业务逻辑中组合不同 actions

```js
// store/index.js
import shop from './modules/shop';

export default {
  state: {
    index: 0,
  },
  reducers: {
    ADD(state) {
      const result = state.activeTabIndex + 1;
      return {
        ...state,
        index: result,
      }
    }
  },
  actions: {
    add({ dispatch }) {
      dispatch('ADD');
    },
  },
  modules: {
    shop,
  },
};

// store/modules/shop.js
export default {
  state: {
    info: null,
  },
  reducers: {
    updateShopInfoReducer(state, info) {
      return {
        ...state,
        info: info,
      };
    },
  },
  actions: {
    updateShopInfo({ dispatch }, info) {
      setTimeout(() => {
        dispatch('updateShopInfoReducer', info);
      }, 1000);
    },
  },
};
```

#### Component

使用 `RootStoreDecorator` `ChildStoreDecorator` 分别装饰根组件与子组件

组件内可以通过访问 `this.props.store` 获取 `store` 对象

`store` 包含三个属性

  * `state`: 当前状态

  * `dispatch`: 分发 `actions` 钩子

  * `originStore`: 指向 `redux` 原始 `store`，可以使用 `getState` 等方法（不推荐）

```js
// root component
import React, { PureComponent } from 'react';
import ReactDOM from 'react-dom';

import { RootStoreDecorator } from '@luoyefe/decorator-redux';

import store from './store/index';

import Children from './children';

@RootStoreDecorator({ store }) // 根组件传入 store
class App extends PureComponent {
  handleClick() {
    this.props.store.dispatch('add');
  }

  render() {
    return (
      <div>
        <div onClick={this.handleClick.bind(this)}>{this.props.store.state.activeTabIndex}</div>
        <Children />
      </div>
    );
  }
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);


// child component
import React, { PureComponent } from 'react';

import { ChildStoreDecorator } from '@luoyefe/decorator-redux';

@ChildStoreDecorator()
class Children extends PureComponent {
  handleClick() {
    this.props.store.dispatch('shop/updateShopInfoReducer', {
      shopId: 123,
      shopName: 'test shop'
    });
  }

  render() {
    return (
      <h1 onClick={this.handleClick.bind(this)}>Children {JSON.stringify(this.props.store.state.shop.info)}</h1>
    );
  }
}

export default Children;
```
npm package: @luoyuxia/ocl.js
Description: Object Constraint Language parser written in JavaScript.
Author: Stephan Köninger
Latest version: 1.3.0-SNAPSHOT

<p align="center">
  <a href="https://ocl.stekoe.de">
    <img alt="OCL.js" src="https://raw.githubusercontent.com/stekoe/ocl.js/master/logo.png" width="250">
  </a>
</p>

<p align="center">
  <a href="https://travis-ci.org/SteKoe/ocl.js"><img alt="Travis Status" src="https://img.shields.io/travis/SteKoe/ocl.js/master.svg"></a>
  <a href="https://david-dm.org/SteKoe/ocl.js#info=devDependencies"><img alt="devDependency Status" src="https://david-dm.org/SteKoe/ocl.js/dev-status.svg"></a>
  <a href="https://github.com/SteKoe/ocl.js"><img alt="License: MIT" src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
  <a href="https://www.npmjs.com/package/@stekoe/ocl.js"><img alt="npm (scoped)" src="https://img.shields.io/npm/v/@stekoe/ocl.js.svg"></a>
</p>

The Object Constraint Language (OCL) is a language for describing rules that apply to MOF conform modelling languages like UML.
The OCL is a text based language that provides constraint and object query expressions that cannot be expressed by a meta modelling language.

## Documentation
To illustrate the usage of this library, an example web page has been set up [here](http://ocl.stekoe.de/).
npm package: @luozhifeng/playable-web-gui-sdk
Description: A SDK for Cocos game development providing parameter adjustment capabilities
Author: lzf
Latest version: 1.0.4

# Playable Web Platform SDK

这是一个为 Cocos 游戏开发提供参数调整能力的 SDK。基于 lil-gui 实现，允许在游戏中显示控制面板，实时调整游戏参数。

## 功能特点

- 基于 lil-gui 的参数控制面板
- 支持实时参数调整
- 支持参数分组管理
- 简单易用的 API

## 安装

```bash
npm install playable-web-platform-sdk
```

## 使用示例

```typescript
import { ParameterPanel } from 'playable-web-platform-sdk';

// 创建参数面板实例
const panel = new ParameterPanel();

// 注册要调整的参数
panel.registerParameter({
  target: gameObject,
  property: 'position',
  name: 'Position',
  group: 'Transform'
});

// 显示面板
panel.show();
```

## API 文档

### ParameterPanel

主要的参数面板类，用于管理和显示参数控制界面。

#### 方法

- `registerParameter(options: ParameterOptions): void`
  注册一个参数到控制面板
- `show(): void`
  显示参数控制面板
- `hide(): void`
  隐藏参数控制面板

### ParameterOptions

参数注册选项接口：

```typescript
interface ParameterOptions {
  target: any;           // 目标对象
  property: string;      // 属性名
  name?: string;         // 显示名称
  group?: string;        // 分组名称
  min?: number;          // 最小值（仅用于数字类型）
  max?: number;          // 最大值（仅用于数字类型）
  step?: number;         // 步进值（仅用于数字类型）
}
```

## 许可证

MIT
npm package: @luozhu/arco
Description: 洛竹xArco
Latest version: 0.1.0

# Arco 物料模板

## 快速开始

```
// 添加组件
npm run add:component -- YourComponentName

// 开发模式
npm run dev

// 构建
npm run build

// 生成元数据 arcoMeta
arco generate

// 发布包
arco publish

// 查看当前 arco-scripts 使用的配置
npm run show:config -- webpack:component
```

## 样式

在 `components/style` 下，你可以编写全局样式。

`components/*/style/index.tsx` 用于组件样式的按需加载，你需要在此文件中声明该组件依赖的其他组件样式。 例如：组件 A 内使用到了组件 B，则按需加载 A 的样式时同样需要加载 B 的样式，故需要在 `components/A/style/index.tsx` 中声明 `import '../../B/style'`。

## API 文档

**为了帮助他人更好地使用你的组件，请提供详细的 API 文档。**

### 书写注释

我们提供了自动化的文档生成工具，它从 TS 接口定义中提取注释自动生成属性文档。按照以下指引使用，为接口书写 tsDoc 类型的注释：

```typescript
/**
 * @title Button (必填，带有 `title` 描述的接口或者类型才会被收集)
 */
interface ButtonProps {
  /**
   * @zh 按钮尺寸 (属性的中文描述)
   * @en Size of Button (属性的英文描述)
   * @version 1.2.0 (可选，新增的属性在哪个版本开始支持)
   * @default 'default' (可选，属性的默认值)
   */
  size?: 'mini' | 'small' | 'default' | 'large';
  /**
   * @zh 按钮状态
   * @en Status of Button
   */
  status?: 'danger' | 'error' | 'success';
}
```

### 扩展 TEMPLATE.md

`TEMPLATE.md` 是用于自动文档生成的模板，你可以修改此文件添加更多组件的使用帮助信息，但请不要删除其原有的内容，否则可能导致内容替换失败。

```markdown
// TEMPLATE.md
---
file: index
---

# TooltipButton

## 属性/Props

%%Props%%

### OtherProps

在这里你可以书写更多组件帮助文档。

## Demos

%%Demos%%
```

## 测试

测试目录位于 `components/*/__test__`。你可以在 `index.test.tsx` 中编写你的测试用例，在 `demo.test.tsx` 中可以进行基于 Demo 的快照测试。

`npm run test` 命令允许你传入任何 `jest` 的命令行参数，例如 `npm run test -- --u` `npm run test -- --no-cache`。

## Demo

Demo 目录位于 `components/*/demo`。你可以在此目录中加入多个 Demo，它们将在 NPM 发布时一同被发布。
如果你添加了一个 Demo，那么你需要在 `stories/YourComponentName.jsx` 添加对应代码，才能在 Storybook 中预览到它。

[查看完整帮助文档](https://arco.design/cli)
npm package: @luozhu/create-coding-style
Description: Init coding style in exist project
Author: 杨俊宁
Latest version: 0.5.1

# @luozhu/create-coding-style

## Usage directly

```sh
$ npx @luozhu/create-coding-style
# or
$ npm init @luozhu/create-coding-style
# or
$ yarn create @luozhu/coding-style
```

## Install before Usage

```sh
# install
$ npm install @luozhu/create-coding-style -g
# usage
$ create-coding-style
```
npm package: @luozhu/create-commitlint
Description: create commitlint config in your project
Author: 杨俊宁
Latest version: 0.2.1

# @luozhu/create-commitlint

## Usage directly

```sh
$ npx @luozhu/create-commitlint
# or
$ npm init @luozhu/commitlint
# or
$ yarn create @luozhu/commitlint
```

## Install before Usage

```sh
# install
$ npm install @luozhu/create-commitlint -g
# usage
$ create-commitlint
```
npm package: @luozhu/create-lerna-app
Description: Create lerna app
Author: 洛竹
Latest version: 0.4.3

# @luozhu/create-lerna-app

## Usage directly

```sh
$ npx @luozhu/create-lerna-app <projectName>
# or
$ npm init @luozhu/lerna-app <projectName>
# or
$ yarn create @luozhu/lerna-app <projectName>
```

## Install before Usage

```sh
# install
$ npm install @luozhu/create-lerna-app -g
# usage
$ create-lerna-app <projectName>
# can also use in shorthand
$ cla <projectName>
```
npm package: @luozhu/create-vscode-extension
Description: Luozhu's vscode extension template.
Author: 洛竹
Latest version: 0.4.4

# @luozhu/create-vscode-extension

Luozhu's vscode extension template.

## 随用随走

```sh
$ npx @luozhu/create-vscode-extension
# 或者
$ npm init @luozhu/create-vscode-extension
# 或者
$ yarn create @luozhu/create-vscode-extension
```

## 全局安装

```sh
# 安装
$ npm install @luozhu/create-vscode-extension -g
# 使用
$ create-vscode-extension
```

## 开发前必看

1. 务必替换 Icon（默认是洛竹早茶馆公众号二维码）
2. 务必修改 README.md（默认的执行 `vsce package` 会报错）
3. 模板配置了 commit 提交规范，提交信息需要符合规范
4. `package.nls.json` 和 `package.nls.zh-cn.json` 是国际化配置文件

## 发布前必看

1. 提升版本执行 `yarn release-it`
2. 发布到商店执行 `yarn publish-it`

## 推荐工具

- [@luozhu/vscode-utils](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-utils)：vscode 扩展开发相关 utils
- [@luozhu/vscode-channel](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-channel)：vscode 和 webview 通信的 channel
- [vscode-nls-i18n](https://www.npmjs.com/package/vscode-nls-i18n)：支持 vscode i18n 的库
- [axios 简单封装](https://github.com/youngjuning/juejin-me/blob/main/src/utils/axios.ts)

## 相关文档

- [VS Code 扩展开发中文文档](https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/)
- [VS Code API 中文文档](https://vscode-api-cn.js.org/)
- [VS Code 官网文档](https://code.visualstudio.com/docs)
- [vscode 插件发布](http://tny.im/bShcp)

## TODOS

- [ ] 基于原始模板做渐进式修改
npm package: @luozhu/create-vscode-preview
Description: Luozhu's vscode preview extension template.
Author: 洛竹
Latest version: 0.2.6

# @luozhu/create-vscode-preview

Luozhu's vscode preview extension template.

## 随用随走

```sh
$ npx @luozhu/create-vscode-preview
# 或者
$ npm init @luozhu/create-vscode-preview
# 或者
$ yarn create @luozhu/create-vscode-preview
```

## 全局安装

```sh
# 安装
$ npm install @luozhu/create-vscode-preview -g
# 使用
$ create-vscode-preview
```

## 开发前必看

1. 务必替换 Icon（默认是洛竹早茶馆公众号二维码）
2. 务必修改 README.md（默认的执行 `vsce package` 会报错）
3. 模板配置了 commit 提交规范，提交信息需要符合规范
4. `package.nls.json` 和 `package.nls.zh-cn.json` 是国际化配置文件

## 发布前必看

1. 提升版本执行 `yarn release-it`
2. 发布到商店执行 `yarn publish-it`

## 推荐工具

- [@luozhu/vscode-utils](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-utils)：vscode 扩展开发相关 utils
- [@luozhu/vscode-channel](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-channel)：vscode 和 webview 通信的 channel
- [vscode-nls-i18n](https://www.npmjs.com/package/vscode-nls-i18n)：支持 vscode i18n 的库
- [axios 简单封装](https://github.com/youngjuning/juejin-me/blob/main/src/utils/axios.ts)

## 相关文档

- [VS Code 扩展开发中文文档](https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/)
- [VS Code API 中文文档](https://vscode-api-cn.js.org/)
- [VS Code 官网文档](https://code.visualstudio.com/docs)
- [vscode 插件发布](http://tny.im/bShcp)
npm package: @luozhu/create-vscode-webview
Description: Create vscode extension with webview
Author: 洛竹
Latest version: 0.7.7

# @luozhu/create-vscode-webview

创建包含 webview 的 vscode 扩展。

## 随用随走

```sh
$ npx @luozhu/create-vscode-webview <projectName>
# 或者
$ npm init @luozhu/vscode-webview <projectName>
# 或者
$ yarn create @luozhu/vscode-webview <projectName>
```

## 全局安装

```sh
# 安装
$ npm install @luozhu/create-vscode-webview -g
# 使用
$ create-vscode-webview <projectName>
```

## 进阶

初始生成的项目比较基础，如果您想了解 vscode 扩展中的网络编程、国际化、vscode 与 webview 的通信等功能实现，请参考 [掘金一下](https://github.com/youngjuning/juejin-me) 扩展，它是基于该模板实现的一个专注于管理你的掘金文章的 VS Code 扩展。

### 推荐工具

- [@luozhu/vscode-utils](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-utils)：vscode 扩展开发相关 utils
- [@luozhu/vscode-channel](https://github.com/youngjuning/luozhu/tree/main/packages/vscode-channel)：vscode 和 webview 通信的 channel
- [vscode-nls-i18n](https://www.npmjs.com/package/vscode-nls-i18n)：支持 vscode i18n 的库
- [axios 简单封装](https://github.com/youngjuning/juejin-me/blob/main/src/utils/axios.ts)

### 相关文档

- [VS Code 扩展开发中文文档](https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/)
- [VS Code API 中文文档](https://vscode-api-cn.js.org/)
- [VS Code 官网文档](https://code.visualstudio.com/docs)
- [vscode 插件发布](http://tny.im/bShcp)
npm package: @luozhu/eslint-config-base
Description: Luozhu's base eslint config
Author: 洛竹
Latest version: 2.1.0

# @luozhu/eslint-config-base

## Install

```sh
yarn add -D eslint prettier @luozhu/eslint-config-base @luozhu/prettier-config lint-staged yorkie
```

## 自动配置

```sh
yarn create @luozhu/create-coding-style
# 类型选择 base
```

## 手动配置

### .eslintrc.js

> vscode extension: [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

```js
module.exports = {
  root: true,
  extends: ['@luozhu/eslint-config-base'],
};
```

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```

### .editorconfig

> vscode extension: [editorconfig.editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
quote_type = single # Fix Prettier "prettier.singleQuote" not working in 1.40 vs code
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
```

### pre-commit lint

#### package.json

```json
{
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "**/*.{md,json}": ["prettier --write"]
  }
}
```

#### .vscode/settings.json

```js
{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}
```

## Problem

### ESLint plugins used by this config must also be installed within your project. This is a limitation within ESLint.

**Related Links:**

- [Support having plugins as dependencies in shareable config](https://github.com/eslint/eslint/issues/3458)
- [rfcs](https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification)
- [progress](https://github.com/eslint/eslint/issues/13481)

**Temporary Solutions:**

- [Fix eslint shareable config using rushstack/eslint-patch](https://github.com/facebook/create-react-app/commit/6e10091a235ba4e15097be79b003fdde1f373331)
npm package: @luozhu/eslint-config-react
Description: Luozhu's react eslint config
Author: 洛竹
Latest version: 2.1.0

# @luozhu/eslint-config-react

## Install

```sh
yarn add -D eslint prettier @luozhu/eslint-config-react @luozhu/prettier-config lint-staged yorkie
```

## 自动配置

```sh
yarn create @luozhu/create-coding-style
# 类型选择 react
```

## 手动配置

### .eslintrc.js

> vscode extension: [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

```js
module.exports = {
  root: true,
  extends: ['@luozhu/eslint-config-react'],
};
```

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```

### .editorconfig

> vscode extension: [editorconfig.editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
quote_type = single # Fix Prettier "prettier.singleQuote" not working in 1.40 vs code
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
```

### pre-commit lint

#### package.json

```json
{
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "**/*.{md,json}": ["prettier --write"]
  }
}
```

#### .vscode/settings.json

```js
{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}
```

## Problem

### ESLint plugins used by this config must also be installed within your project. This is a limitation within ESLint.

**Related Links:**

- [Support having plugins as dependencies in shareable config](https://github.com/eslint/eslint/issues/3458)
- [rfcs](https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification)
- [progress](https://github.com/eslint/eslint/issues/13481)

**Temporary Solutions:**

- [Fix eslint shareable config using rushstack/eslint-patch](https://github.com/facebook/create-react-app/commit/6e10091a235ba4e15097be79b003fdde1f373331)

### Updating babel-eslint to @babel/eslint-parser for React apps

**Related Links:**

- https://tjaddison.com/blog/2021/03/updating-babel-eslint-to-babeleslint-parser-for-react-apps/
npm package: @luozhu/eslint-config-react-native
Description: Luozhu's react eslint config
Author: 洛竹
Latest version: 2.1.0

# @luozhu/eslint-config-react-native

## Install

```sh
$ yarn add -D @luozhu/eslint-config-react-native eslint prettier typescript @luozhu/prettier-config lint-staged yorkie
```

## 自动配置

```sh
yarn create @luozhu/create-coding-style
# 类型选择 react-native
```

## 手动配置

### .eslintrc.js

> vscode extension: [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

```js
module.exports = {
  root: true,
  extends: ['@luozhu/eslint-config-react-native'],
};
```

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```

### .editorconfig

> vscode extension: [editorconfig.editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
quote_type = single # Fix Prettier "prettier.singleQuote" not working in 1.40 vs code
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
```

### pre-commit lint

#### package.json

```json
{
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "**/*.{md,json}": ["prettier --write"]
  }
}
```

#### .vscode/settings.json

```js
{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}
```

## Problem

### ESLint plugins used by this config must also be installed within your project. This is a limitation within ESLint.

**Related Links:**

- [Support having plugins as dependencies in shareable config](https://github.com/eslint/eslint/issues/3458)
- [rfcs](https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification)
- [progress](https://github.com/eslint/eslint/issues/13481)

**Temporary Solutions:**

- [Fix eslint shareable config using rushstack/eslint-patch](https://github.com/facebook/create-react-app/commit/6e10091a235ba4e15097be79b003fdde1f373331)

### Updating babel-eslint to @babel/eslint-parser for React apps

**Related Links:**

- https://tjaddison.com/blog/2021/03/updating-babel-eslint-to-babeleslint-parser-for-react-apps/
npm package: @luozhu/eslint-config-react-typescript
Description: Luozhu's react typescript eslint config
Author: 洛竹
Latest version: 2.1.0

# @luozhu/eslint-config-react-typescript

## Install

```sh
yarn add -D @luozhu/eslint-config-react-typescript eslint prettier typescript @luozhu/prettier-config lint-staged yorkie
```

## 自动配置

```sh
yarn create @luozhu/create-coding-style
# 类型选择 react-typescript
```

## 手动配置

### .eslintrc.js

> vscode extension: [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

```js
module.exports = {
  root: true,
  extends: ['@luozhu/eslint-config-react-typescript'],
};
```

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```

### .editorconfig

> vscode extension: [editorconfig.editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
quote_type = single # Fix Prettier "prettier.singleQuote" not working in 1.40 vs code
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
```

### pre-commit lint

#### package.json

```json
{
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "**/*.{md,json}": ["prettier --write"]
  }
}
```

#### .vscode/settings.json

```js
{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}
```

## Problem

### ESLint plugins used by this config must also be installed within your project. This is a limitation within ESLint.

**Related Links:**

- [Support having plugins as dependencies in shareable config](https://github.com/eslint/eslint/issues/3458)
- [rfcs](https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification)
- [progress](https://github.com/eslint/eslint/issues/13481)

**Temporary Solutions:**

- [Fix eslint shareable config using rushstack/eslint-patch](https://github.com/facebook/create-react-app/commit/6e10091a235ba4e15097be79b003fdde1f373331)
npm package: @luozhu/eslint-config-typescript
Description: Luozhu's typescript eslint config
Author: 洛竹
Latest version: 2.1.0

# @luozhu/eslint-config-base

## Install

```sh
$ yarn add -D @luozhu/eslint-config-typescript eslint prettier typescript @luozhu/prettier-config lint-staged yorkie
```

## 自动配置

```sh
yarn create @luozhu/create-coding-style
# 类型选择 typescript
```

## 手动配置

### .eslintrc.js

> vscode extension: [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

```js
module.exports = {
  root: true,
  extends: ['@luozhu/eslint-config-typescript'],
};
```

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```

### .editorconfig

> vscode extension: [editorconfig.editorconfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig)

```
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
quote_type = single # Fix Prettier "prettier.singleQuote" not working in 1.40 vs code
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
```

### pre-commit lint

#### package.json

```json
{
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "**/*.{js,jsx,ts,tsx}": ["eslint --fix"],
    "**/*.{md,json}": ["prettier --write"]
  }
}
```

#### .vscode/settings.json

```js
{
  "editor.formatOnSave": false,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
}
```

## Problem

### ESLint plugins used by this config must also be installed within your project. This is a limitation within ESLint.

**Related Links:**

- [Support having plugins as dependencies in shareable config](https://github.com/eslint/eslint/issues/3458)
- [rfcs](https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification)
- [progress](https://github.com/eslint/eslint/issues/13481)

**Temporary Solutions:**

- [Fix eslint shareable config using rushstack/eslint-patch](https://github.com/facebook/create-react-app/commit/6e10091a235ba4e15097be79b003fdde1f373331)
npm package: @luozhu/geita
Description: Simplifying complex git operations
Author: 洛竹
Latest version: 0.1.0

# @luozhu/geita

## Install

```sh
$ npm install @luozhu/geita -g
```

## 命令

### geita prune-file <file>

单独清理某个文件的所有历史记录。

清理完后需要将本地记录覆盖到 Github（所有 branch 以及所有 tags）

```sh
git push origin --force --all
git push origin --force --tags
```

确保没有什么问题之后,强制解除对本地存储库中的所有对象的引用和垃圾收集：

```sh
git gc --prune=now
```

### geita prune-msg <msg>

清理 commit message 中的敏感信息。
npm package: @luozhu/prettier-config
Description: Luozhu's prettier config
Author: 洛竹
Latest version: 1.2.0

# @luozhu/prettier-config

Luozhu's prettier config

## Install

```sh
$ yarn add @luozhu/prettier-config -D
```

## Usage

### .prettierrc.js

```js
module.exports = require('@luozhu/prettier-config');
```
npm package: @luozhu/template-generator
Description: A template generator based on handlebars.
Author: 洛竹
Latest version: 0.4.3

# @luozhu/template-generator

A template generator based on handlebars.

## Install

```sh
$ npm install @luozhu/template-generator
```

OR

```sh
$ yarn add @luozhu/template-generator
```

## Usage

```ts
const generator = require('@luozhu/template-generator');
// 编译当前目录下所有符合 `**/*.tpl.*` 模式的文件
generator(
  {
    name: '洛竹',
  },
  process.cwd()
);
// 编译当前目录下所有文件
generator(
  {
    name: '洛竹',
  },
  process.cwd()
  {
    tplSuffix: false
  }
);
// 编译当前目录下所有文件（但是排除 .js 结尾的文件）
generator(
  {
    name: '洛竹',
  },
  process.cwd()
  {
    tplSuffix: false,
    exclude: ['**/*.js'],
  }
);
```

具体案例请查看 [@luozhu/create-vscode-extension](https://github.com/youngjuning/luozhu/tree/main/packages/create-vscode-extension)

## Related Links

- [How do I include a .gitignore file as part of my npm module?](https://stackoverflow.com/questions/24976950/how-do-i-include-a-gitignore-file-as-part-of-my-npm-module)
npm package: @luozhu/vscode-channel
Description: vscode channel
Author: 洛竹
Latest version: 0.9.1

# @luozhu/vscode-channel

## 安装

```sh
$ yarn install @luozhu/vscode-channel
```

## 导入

```ts
import Channel from '@luozhu/vscode-channel';
```

## 初始化

### vscode 中初始化实例

```ts
const channel = new Channel(context, currentPanel);
```

### webview 中初始化实例

> 注意：由于在一个会话中，`acquireVsCodeApi()` 只能调用一次，所以请不要重复初始化 channel。

```ts
const channel = new Channel();
```

## 插件通知 webview

### 插件发送指令

```ts
channel.call('sayHi', {
  name: '洛竹',
}).catch(error => {
  console.log("如果我有错，请让法律制裁我！")
});
```


### webview 接收指令

> 插件内部会将 bind 的回调函数错误返回，不建议在 bind 端处理错误。

```ts
import { Modal } from 'antd';
...
channel.bind("sayHi", message => {
  Modal.info({
    title: message.name,
    content: (
      <div>
        大家好，我是{message.name}🎋一只住在杭城的木系前端🧚🏻‍♀️，如果你喜欢我的文章📚，可以通过
        <a href="https://juejin.cn/user/325111174662855/posts">点赞</a>帮我聚集灵力⭐️。
      </div>
    ),
    okText: <a href="https://juejin.cn/user/325111174662855/posts">点赞 o(￣▽￣)ｄ</a>,
  });
});
```

## webview 通知插件

### webview 发送指令

```ts
() => {
  const userInfo = await channel.call('getUserInfo', { userId: '6da59wed6' }).then(userInfo => {
    console.log('用户信息', userInfo);
  }).catch(error => {
    // 插件内部会将 bind 的回调函数错误返回
    console.log(error)
  });
};
```

### 插件接收指令

> 插件内部会将 bind 的回调函数错误返回，不建议在 bind 端处理错误。

```ts
channel.bind('getUserInfo', () => {
  const result = await axios.get('https://localhost:8080/getUserInfo');
  return result.data;
});
```

## 策略模式

方法多的时候，也可以使用策略模式减少代码重复。

```ts
for (method of Object.keys(stratiges)) {
  channel.bind(
    method,
    (request) => {
      return stratiges[method](...request)
    }
  )
}
```
npm package: @luozhu/vscode-utils
Description: Luozhu's vscode utils.
Author: 洛竹
Latest version: 0.8.8

# @luozhu/vscode-utils

## Install

```sh
$ yarn install @luozhu/vscode-utils
```

## Usage

```ts
import { getUmiContent } from '@luozhu/vscode-utils';
```
npm package: @luozhu2021/geita
Description: Simplifying complex git operations
Author: 洛竹
Latest version: 0.2.0

# @luozhu2021/geita

> 复杂 git 命令简单化

## Install

```sh
$ npm install @luozhu2021/geita -g
```

## Commands

### `geita prune-file <file>`

单独清理某个文件的所有历史记录。

> 参考 [Github: 单独删除某个文件的所有历史记录](https://blog.csdn.net/q258523454/article/details/83899911) 和 [忽略已提交文件并从历史记录删除](https://alphagao.com/2016/12/24/use-git-ignore/)

### `geita prune-msg <msg>`

清理 commit message 中的敏感信息。
npm package: @lupa/excel
Description: Use Excel data inside React
Author: Tyler Cosgrove
Latest version: 0.3.0

<h3 align="center">
  Lupa Excel
</h3>

<p align="center">
  Use Excel data inside <a href="https://facebook.github.io/react">React</a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@lupa/excel"><img src="https://img.shields.io/npm/v/@lupa/excel?style=flat-square"></a>
  <a href="https://www.npmjs.com/package/@lupa/excel"><img src="https://img.shields.io/npm/dm/@lupa/excel?style=flat-square"></a>
  <a href="https://bundlephobia.com/result?p=@lupa/excel"><img src="https://img.shields.io/bundlephobia/minzip/@lupa/excel?style=flat-square"></a>
</p>

## Installation

`Lupa` is on NPM so install using your preferred JS package manager.

```bash
yarn add @lupa/excel @lupa/lupa
npm install @lupa/excel @lupa/lupa
```

## Usage

In order for the `<ExcelDataset>` component to load, you need to have [Office.js][1] loaded. The easiest way to load [Office.js][1] is to include the following script tag in your page header

```html
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
```

With [Office.js][1] loaded, wrap the top level of your React app in the `<ExcelDataset>` component;

```jsx
import { ExcelDataset } from '@lupa/excel';


export default function App() {
  return (
    <ExcelDataset>
      <div>The rest of my app</div>
      <SomeChild />
    </ExcelDataset>
  )
}

```

Now in any of the components underneath `<ExcelDataset>` you can use the various hooks from `@lupa/lupa`;

```jsx
import React from 'react';
import { useData, useFeatures, useShape } from '@lupa/lupa';

export default function LupaInfo() {
  const data = useData();
  const features = useFeatures();
  const shape = useShape();

  const onClick = React.useCallback(async () => {
    // We know that `data` is an async function because we're inside <ExcelDataset>
    // Generic components should use `dataIsAsyncMethod` or `dataIsRowArray` from '@lupa/lupa'
    const d = await data();
    console.log(d);
  }, [data]);

  return (
    <div>
      <h2>Data</h2>
      <div>
        <h4>Shape</h4>
        {shape}
      </div>
      <div>
        <h4>Features</h4>
        {features.map(f => <div key={f.key}>{key}</div>)}
      </div>
      <div>
        <h4>Data</h4>
        <button onClick={onClick}>Show data</button>
      </div>
    </div>
  )
}
```

[//]: # (Link References)
[1]: https://docs.microsoft.com/en-us/office/dev/add-ins/develop/understanding-the-javascript-api-for-office "OfficeJS"
npm package: @lupa/lupa
Description: Declarative datasets for React
Author: Tyler Cosgrove
Latest version: 0.3.0

<h3 align="center">
  Lupa
</h3>

<p align="center">
  Declarative dataset interface for <a href="https://facebook.github.io/react">React</a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@lupa/lupa"><img src="https://img.shields.io/npm/v/@lupa/lupa?style=flat-square"></a>
  <a href="https://www.npmjs.com/package/@lupa/lupa"><img src="https://img.shields.io/npm/dm/@lupa/lupa?style=flat-square"></a>
  <a href="https://bundlephobia.com/result?p=@lupa/lupa"><img src="https://img.shields.io/bundlephobia/minzip/@lupa/lupa?style=flat-square"></a>
</p>

## Installation

`Lupa` is on NPM so install using your preferred JS package manager.

```bash
yarn add @lupa/lupa
npm install @lupa/lupa
```

## Usage

This package is best used by other lupa packages
npm package: @lupa/mock
Description: Use Mock/Static data inside React
Author: Tyler Cosgrove
Latest version: 0.3.0

<h3 align="center">
  Lupa Mock
</h3>

<p align="center">
  Use Mock/Static data inside <a href="https://facebook.github.io/react">React</a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@lupa/mock"><img src="https://img.shields.io/npm/v/@lupa/mock?style=flat-square"></a>
  <a href="https://www.npmjs.com/package/@lupa/mock"><img src="https://img.shields.io/npm/dm/@lupa/mock?style=flat-square"></a>
  <a href="https://bundlephobia.com/result?p=@lupa/mock"><img src="https://img.shields.io/bundlephobia/minzip/@lupa/mock?style=flat-square"></a>
</p>

## Installation

`Lupa` is on NPM so install using your preferred JS package manager.

```bash
yarn add @lupa/mock @lupa/lupa
npm install @lupa/mock @lupa/lupa
```

## Usage

Wrap the top level of your React app in the `<MockDataset>` component. The `MockDataset` component requires an array of objects be passed to the `data` prop.

```jsx
import { MockDataset } from '@lupa/mock';

const data = [
  { name: "Product A", price: 12.34, unitsSold: 56 },
  { name: "Product B", price: 0.98, unitsSold: 7 },
  { name: "Product C", price: 43.12, unitsSold: 89 },
]


export default function App() {
  return (
    <MockDataset data={data}>
      <div>The rest of my app</div>
      <SomeChild />
    </MockDataset>
  )
}

```

Now in any of the components underneath `<MockDataset>` you can use the various hooks from `@lupa/lupa`;

```jsx
import React from 'react';
import { useData, useFeatures, useShape } from '@lupa/lupa';

export default function LupaInfo() {
  const data = useData(); // If using typescript you may want to specify as `Row[]` if you are inside the <MockDataset>
  const features = useFeatures();
  const shape = useShape();

  const onClick = React.useCallback(() => {
    console.log(data);
  }, [data]);

  return (
    <div>
      <h2>Data</h2>
      <div>
        <h4>Shape</h4>
        {shape}
      </div>
      <div>
        <h4>Features</h4>
        {features.map(f => <div key={f.key}>{key}</div>)}
      </div>
      <div>
        <h4>Data</h4>
        <button onClick={onClick}>Show data</button>
      </div>
    </div>
  )
}
```
npm package: @lupe.-/rainbow-log
Description: rainbow console log
Author: Lucas Pedersen
Latest version: 1.0.0

# RainbowLog
GET YOUR CONSOLE LOGS IN RAINBOW COLORS

# Usage
Install with `npm i @lupe.-/rainbow-log`

```javascript
var rainbowLog = require("@lupe.-/rainbow-log");

rainbowLog("RainbowRoad");
```
npm package: @lupmit/gemini-api
Description: Async TypeScript wrapper for Gemini web app
Author: lupmit
Latest version: 0.1.2

# @lupmit/gemini-api

TypeScript package version of this repository, implemented under the `typescript/` folder.

## Install

```bash
npm install
npm run build
```

## Publish To npm

### One-time setup

```bash
npm login
```

If package name already exists on npm, rename `name` in `package.json` first (for example: `@your-scope/gemini-api`).

### Verify before publish

```bash
npm run prepublishOnly
```

### Publish

```bash
npm publish
```

For scoped package:

```bash
npm publish --access public
```

## Quick Start

```ts
import { GeminiClient, Model } from "@lupmit/gemini-api";

const client = new GeminiClient({
  secure1psid: process.env.SECURE_1PSID,
  secure1psidts: process.env.SECURE_1PSIDTS
});

await client.init({ timeout: 300, autoRefresh: true });

const output = await client.generateContent("Hello from TypeScript", {
  model: Model.fromName("gemini-3-flash")
});

console.log(output.text);
await client.close();
```

## Implemented API

- `GeminiClient.init()`
- `GeminiClient.close()`
- `GeminiClient.generateContent()`
- `GeminiClient.generateContentStream()`
- `GeminiClient.startChat()`
- `GeminiClient.readChat()`
- `GeminiClient.listModels()`
- `GeminiClient.listChats()`
- `GeminiClient.fetchLatestChatResponse()`
- `GeminiClient.deleteChat()`
- `GeminiClient.fetchGems()`
- `GeminiClient.createGem()`
- `GeminiClient.updateGem()`
- `GeminiClient.deleteGem()`
- `ChatSession.sendMessage()`
- `ChatSession.sendMessageStream()`
- `ChatSession.chooseCandidate()`

## Synced From Latest Python

- Updated model catalog (`gemini-3-*`, plus/advanced variants)
- Two-step chat deletion RPC flow
- Chat list and available model cache APIs
- Candidate outputs now include images, videos, and generated media
- `language` option added to generation methods

## Notes

- This package keeps all newly added code in `typescript/` as requested.
- Browser cookie auto-import from local browsers is not implemented yet in the TypeScript port.
- Upload accepts file path string, Buffer, Uint8Array, and ArrayBuffer.
- Rotated cookies are persisted to disk.
  - If `GEMINI_COOKIE_PATH` is set: saved under that directory.
  - Otherwise default path is `<app-working-directory>/gemini_cookies/.cached_cookies_<Secure-1PSID>.json`.
npm package: @lupoliemilio/my-fetch
Description: ## Table of contents * [General info](#what-does-it-do) * [Technologies](#technologies) * [Setup](#setup)
Author: lupoliemilio
Latest version: 1.0.2

# My-Fetch

## Table of contents
* [General info](#what-does-it-do)
* [Technologies](#technologies)
* [Setup](#setup)

## What does it do?
A Project around the concept of UMD. It's possible to fetch for Node and with backwards compatibility on older browsers using XMLHttpRequest.

## Technologies
Project is created with:
* Javascript
* HTML5
* Node.js
	
## Setup
To run this project, install by inserting this magic sentence into your terminal

```
npm i @lupoliemilio/my-fetch
```
## How to use
you have to require the npm package you've just installed!

```js
let myFetch = require("./umd");
myFetch.init({
    address: "https://reqres.in/api/",
    key: "1234"
});
```
## Functions
* GET - Retrieve data from API.
* PUT - Replace data from API.
* PATCH - Modify data from API.
* REMOVE - Remove data from API.
* POST - Create data to API.

<a href="https://www.youtube.com/watch?v=QHIbljKwUeo"><img src="https://www.youtube.com/watch?v=QHIbljKwUeo" 
alt="Youtube video" width="240" height="180" border="2" /></a>
npm package: @lupucl/unid
Description: A public TypeScript library to generate UUIDs. You can generate UUID4 and UUID5.
Author: Lupu Claudiu-Andrei
Latest version: 2.4.5


# unid
A public TypeScript library to generate UUIDs. You can generate UUID4 and UUID5.


## Installation

Install unid with

```bash
  npm install @lupucl/unid
```
```bash
  yarn add @lupucl/unid (soon)
```
## Usage/Examples

Generating UUIDs

```javascript
import { unid } from '@lupucl/unid;

// Generating UUID4
const uuid4 = unid.generate4(); // e.g. 'd6339023-aa8e-4c52-a53d-f3f3f913b8c5'

// Generating UUID5
const name = 'Hello, world!';
// unid.generate5(namespace, name)
const uuid5 = unid.generate5(uuid4, name); //e.g 'cd6366d4-01cd-5948-97a2-3309017638fc'

// Generating UNID1
const unid1 = unid.v1(); //e.g '4de338f09b7f-19788-d2a75-259c-9b9a4f42c99c'
```

Validating a UUID/ UNID
```javascript
//UUID4, UUID5 & UNID1
const isValid = unid.check(UUID); // true, can use UUID4, UUID5 and UNID1
const isInvalid = uuid.check('not-a-uuid'); // false
```

## UUID Version 4:
UUID Version 4, also known as a random UUID, is a type of UUID that is generated using random numbers. According to the RFC 4122 specification, the UUID format consists of a randomly generated 128-bit value, which is then represented as a sequence of 32 hexadecimal digits, separated by hyphens into five groups. Version 4 UUIDs are designed to have a very low probability of collisions between two generated UUIDs.

## UUID Version 5:
UUID Version 5, also known as a name-based UUID, is a type of UUID that is generated using a hash function based on a namespace and a name. According to the RFC 4122 specification, a UUID Version 5 is created by applying a SHA-1 hash function to a namespace UUID and a name. The resulting hash value is then used to generate a new UUID with a format similar to other UUID versions. UUID Version 5 is useful when a unique identifier is needed for a specific name within a particular namespace.


## UNID Version 1 (new)
UNIDv1 is a unique identifier generator that produces a unique string of 38 characters, with a format of xxxxxxxxxxxx-1xxxx-xxxxx-xxxx-xxxxxxxxxxxx. Unlike UUIDs, UNIDs are not based on a standardized algorithm. Instead, they use a combination of the current time, a cryptographically secure random number generator, and a fixed prefix and suffix to generate a unique string. UNIDs are designed to be more secure than UUIDs because they use a cryptographically secure random number generator, which makes it much more difficult for an attacker to predict the next value in the sequence. UNIDs are useful when a unique identifier is needed for a specific application or use case.


## License

This library is licensed under the [MIT License](https://choosealicense.com/licenses/mit/).
npm package: @luqh/node-red-jolt
Description: Jolt - JsOn Language for Transform
Author: Lucas Branco
Latest version: 1.0.1

![Platform Node-RED](http://b.repl.ca/v1/Platform-Node--RED-red.png)
![Node-RED Jolt](http://b.repl.ca/v1/Node--RED-Jolt-blue.png)
[![Repository GitHub](http://b.repl.ca/v1/Repository-Github-orange.png)](https://github.com/luqholanda/node-red-jolt)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/79b328ffe7aa4842ba8385cb250de414)](https://www.codacy.com/gh/luqholanda/node-red-jolt/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=luqholanda/node-red-jolt&amp;utm_campaign=Badge_Grade)

[![noderedjolt](icons/jolt.svg)](https://sollutie.com.br)

# node-red-jolt
The Jolt (Jolt - JsOn Language for Transform) toolbox package for Node-RED.

**If you like that contributor's package for Jolt, then please give us your star at GitHub**

## Jolt Version

Jolt 0.1.6

## Install

Run command on Node-RED installation directory.

	npm install node-red-jolt 

or run command for global installation.

	npm install -g node-red-jolt

try these options on npm install to build, if you have problems to install

    --unsafe-perm --build-from-source
   
### License

The MIT License

### Important

This is **not** an official product of the Jolt.
It is just to provide Jolt to Node-RED based on Jolt package.