open-index/open-npm huggingface dataset:
npm package: @luizshigunov/angular-password
Description: The most performant AngularJS directive for matching two password input fields 
Author: gdi2290
Latest version: 1.0.4

angular-password
================

The most performant AngularJS directive for matching two password input fields. I use angular's built in $parsers rather than relying on a $watch

Installation

`bower install angular-password`

or

`npm install angular-password`

Inject angular-password into your module

```javascript
angular.module('yourmodulename', ['ngPassword']);
```

Simple example.

```html
<input name="newPassword" ng-model="password.new">
<input match-password="newPassword" name="confirmPassword" ng-model="password.confirm">
```
With ngMessages
```html
<form name="profileForm" autocomplete="off" novalidate="" ng-submit="submit(password)">
  <fieldset>
    <label for="newPassword">New Password</label>
    <input type="password" name="newPassword" ng-model="password.new" required=""/>
    <div class="clearfix">
      <div ng-messages="profileForm.newPassword.$error" ng-if="profileForm.$submitted || profileForm.newPassword.$dirty" ng-messages-multiple="ng-messages-multiple" class="error-messages slide-right">
        <div ng-message="required" class="message slide-left">You did not enter a field name</div>
      </div>
    </div>
    <label for="confirmPassword">Re-Type New Password</label>
    <input type="password" name="confirmPassword" ng-model="password.confirm" match-password="newPassword" required=""/>
    <div class="clearfix">
      <div ng-messages="profileForm.confirmPassword.$error" ng-if="profileForm.$submitted || profileForm.confirmPassword.$dirty" ng-messages-multiple="ng-messages-multiple" class="error-messages slide-right">
        <div ng-message="required" class="message slide-left">You did not enter a field name</div>
        <div ng-message="passwordMatch" class="message slide-left">Your passwords did not match</div>
      </div>
    </div>
  </fieldset>
  <button>Submit</button>
</form>
```

Licensing information can be found [here](LICENSE)
npm package: @luizshigunov/pdfmake
Description: Client/server side PDF printing in pure JavaScript
Author: Bartek Pampuch
Latest version: 0.2.8

# pdfmake

THIS PACKAGE HAS ACROFORM SUPPORT. BASED ON VERSION 0.3 PULL REQUEST (https://github.com/bpampuch/pdfmake/pull/2373)

I HOPE I CAN SOON MAKE A PULL REQUEST FOR VERSION 0.2

PDF document generation library for server-side and client-side usage in pure JavaScript.

Check out [the playground](http://bpampuch.github.io/pdfmake/playground.html) and [examples](https://github.com/bpampuch/pdfmake/tree/0.1/examples).

### Features

* line-wrapping,
* text-alignments (left, right, centered, justified),
* numbered and bulleted lists,
* tables and columns
  * auto/fixed/star-sized widths,
  * col-spans and row-spans,
  * headers automatically repeated in case of a page-break,
* images and vector graphics,
* convenient styling and style inheritance,
* page headers and footers:
  * static or dynamic content,
  * access to current page number and page count,
* background-layer,
* page dimensions and orientations,
* margins,
* custom page breaks,
* font embedding,
* support for complex, multi-level (nested) structures,
* table of contents,
* helper methods for opening/printing/downloading the generated PDF,
* setting of PDF metadata (e.g. author, subject).
* acroforms

## Documentation

Documentation URL: https://pdfmake.github.io/docs/

## Building from sources version 0.2.x

using npm:
```
git clone --branch 0.2 https://github.com/bpampuch/pdfmake.git
cd pdfmake
npm install
npm run build
```

using yarn:
```
git clone --branch 0.2 https://github.com/bpampuch/pdfmake.git
cd pdfmake
yarn
yarn run build
```

## License
MIT

## Authors
* [@bpampuch](https://github.com/bpampuch) (founder)
* [@liborm85](https://github.com/liborm85)

pdfmake is based on a truly amazing library [pdfkit](https://github.com/devongovett/pdfkit) (credits to [@devongovett](https://github.com/devongovett)).

Thanks to all contributors.
npm package: @luizzappa/autocomplete_mod
Description: Autocompletion for the CodeMirror code editor
Author: Marijn Haverbeke
Latest version: 6.4.5

# @codemirror/autocomplete [![NPM version](https://img.shields.io/npm/v/@codemirror/autocomplete.svg)](https://www.npmjs.org/package/@codemirror/autocomplete)

[ [**WEBSITE**](https://codemirror.net/) | [**DOCS**](https://codemirror.net/docs/ref/#autocomplete) | [**ISSUES**](https://github.com/codemirror/dev/issues) | [**FORUM**](https://discuss.codemirror.net/c/next/) | [**CHANGELOG**](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md) ]

This package implements autocompletion for the
[CodeMirror](https://codemirror.net/) code editor.

The [project page](https://codemirror.net/) has more information, a
number of [examples](https://codemirror.net/examples/) and the
[documentation](https://codemirror.net/docs/).

This code is released under an
[MIT license](https://github.com/codemirror/autocomplete/tree/main/LICENSE).

We aim to be an inclusive, welcoming community. To make that explicit,
we have a [code of
conduct](http://contributor-covenant.org/version/1/1/0/) that applies
to communication around the project.
npm package: @lujjjh/react
Description: An actively maintained ESM build of React, the JavaScript library for building user interfaces.
Latest version: 0.0.0-experimental-94c0244ba

# `react`

React is a JavaScript library for creating user interfaces.

The `react` package contains only the functionality necessary to define React components. It is typically used together with a React renderer like `react-dom` for the web, or `react-native` for the native environments.

**Note:** by default, React will be in development mode. The development version includes extra warnings about common mistakes, whereas the production version includes extra performance optimizations and strips all error messages. Don't forget to use the [production build](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) when deploying your application.

## Example Usage

```js
var React = require('react');
```
npm package: @lujjjh/react-dom
Description: An actively maintained ESM build of React-DOM, a package for working with the DOM.
Latest version: 0.0.0-experimental-94c0244ba

# `react-dom`

This package serves as the entry point to the DOM and server renderers for React. It is intended to be paired with the generic React package, which is shipped as `react` to npm.

## Installation

```sh
npm install react react-dom
```

## Usage

### In the browser

```js
var React = require('react');
var ReactDOM = require('react-dom');

class MyComponent extends React.Component {
  render() {
    return <div>Hello World</div>;
  }
}

ReactDOM.render(<MyComponent />, node);
```

### On the server

```js
var React = require('react');
var ReactDOMServer = require('react-dom/server');

class MyComponent extends React.Component {
  render() {
    return <div>Hello World</div>;
  }
}

ReactDOMServer.renderToString(<MyComponent />);
```

## API

### `react-dom`

- `findDOMNode`
- `render`
- `unmountComponentAtNode`

### `react-dom/server`

- `renderToString`
- `renderToStaticMarkup`
npm package: @lujs/di
Description: Dependency Injection
Author: lujs
Latest version: 1.2.0

The interface refers to [TSyringe](https://github.com/Microsoft/tsyringe)

## install
```bash
npm install @lujs/di
```

### api
#### injectable()
The injectable decorator marks a class as injectable, meaning that its dependencies can be resolved and injected by the Container.
```typescript
import { injectable, container } from './injectable';
class B {
  name = 'b'
}

@injectable()
class A {
  constructor(b: B) {}
}


const a = container.resolve(A)
console.log(a.b) // 'b'
```

#### singleton()
The singleton decorator marks a class as a singleton, meaning that the same instance will be used every time 
```typescript
import { singleton, container } from './injectable';
class B {
  name = 'b'
}

@singleton()
class A {
  constructor(b: B) {}
}

const a1 = container.resolve(A)
const a2 = container.resolve(A)

console.log(a1 === a2) // true
```
#### inject()
The inject decorator marks a constructor parameter as a dependency to be resolved and injected by the Container.
```typescript
import { inject, InjectToken } from './injectable';

const token = Symbol('token');
interface B {}

@injectable()
class A {
  constructor(@inject(token) public b: B) {}

  _() {
    console.log(this.b);
  }
}

class B1 implements B {}

container.register(token, { useClass: B1 });

const a = container.resolve(A);

expect(a.b).toBeDefined();
expect(a.b).toBeInstanceOf(B1);
```
### circular dependency
Use proxy objects to solve circular dependency problems. But you should approach this from the perspective of code design
```typescript
@injectable()
export class CircleA {
  constructor(@inject(delay(() => CircleB)) public b: CircleB) {}
}

@injectable()
export class CircleB {
  constructor(@inject(delay(() => CircleA)) public a: CircleA) {}
}
```
npm package: @lujs/middleware
Description: > To help you create and use middleware
Author: lujs
Latest version: 0.0.7

# Middleware Builder

> To help you create and use middleware

## install

```
npm install @lujs/middleware
```

## usage

```typescript
const m1: IMiddleware<string> = (ctx, next) => {
  console.log(1);
  next();
  console.log(6);
};
const m2: IMiddleware<string> = (ctx, next) => {
  console.log(2);
  next();
  console.log(5);
};
const m3: IMiddleware<string> = (ctx, next) => {
  console.log(3);
  next();
  console.log(4);
};

const runner = new MiddlewareRunner<string>();
runner.use(m1);
runner.use(m2);
runner.use(m3);

runner.run('');

// log 1 2 3 4 5 6
```

async

> The run function returns a promise, which is executed at the end

```typescript
const m1: IMiddleware<string> = async (ctx, next) => {
  console.log('async', 1);
  await next();
  console.log('async', 6);
};
const m2: IMiddleware<string> = async (ctx, next) => {
  console.log('async', 2);
  await next();
  console.log('async', 5);
};
const m3: IMiddleware<string> = async (ctx, next) => {
  console.log('async', 3);
  await next();
  console.log('async', 4);
};

const runner = new MiddlewareRunner<string>();
runner.use(m1);
runner.use(m2);
runner.use(m3);

runner.run('').then(() => {
  console.log('finally');
});

// log 1 2 3 4 5 6  finally
```

## error

## Todo
添加NestJs的中间件方式
npm package: @lujs/mvp
Description: Frond end MVP framework
Author: lujs
Latest version: 0.2.4

<h1 align = "center">@lujs/mvp</h1>

<div align="center">

![NPM version](https://img.shields.io/npm/v/@lujs/mvp.svg?style=flat)
![Gzip size](https://img.badgesize.io/https:/unpkg.com/@lujs/mvp/dist/index.js?label=gzip%20size&compression=gzip)
![GitHub](https://img.shields.io/npm/l/@lujs/mvp)
![Coverage line](https://raw.githubusercontent.com/lulusir/mvp/main/coverage/badge-lines.svg)

</div>

[Docs](https://lulusir.github.io/mvp/getting-started)

<h2 align = "center"> 整洁架构</h2>

- 独立于框架。支持 vue react
- 可测试。 业务逻辑方便测试
- 独立于 UI。
- 依赖单向，外层依赖内层，内层不知道外层

 <img src="https://lulusir.github.io/mvp-docs/CleanArchitecture.jpg" width = "600"  alt="整洁架构" align=center />

来源于 Bob 大叔的一篇[文章](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)

<h2 align = "center"> 目的</h2>

为了进一步实现整洁架构，使用 mvp 的方式组织你的前端代码，让项目更加清晰

<img src="https://lulusir.github.io/mvp-docs/mvp.png" width = "600"  alt="mvp" align=center />

- Model，一般是要在界面上显示需要的数据，或者临时数据

- View，一般是 react，vue 之类的视图层，它显示数据，并将事件绑定到 Presenter

- Presenter, 提供方法和 Model 给到 View
- service 实现我们的业务逻辑

# 快速上手

## install

```
npm install @lujs/mvp @lujs/react-mvp-adaptor --save
```

or

```
yarn add @lujs/mvp @lujs/react-mvp-adaptor
```

## Model

```typescript
import { Model } from '@lujs/mvp';

interface IViewState {
  loading: boolean;
  name: string
}

export class NameModel extends Model<IViewState> {
  constructor() {
    super();
    this.state = {
      loading: false,
      name: 'lujs'
    }
}

```

## Presenter

```typescript
import { Presenter, injectable } from '@lujs/mvp';
@injectable()
export class NamePresenter extends Presenter<NameModel> {
  constructor(protected readonly model: OrderModel) {
    super();
  }

  changeName() {
    this.setState('aha'); // api of set model state
    this.updateView(); // api of update view
  }
}
```

## View

```typescript | pure
const Name = () => {
  const { presenter, state } = usePresenter<NamePresenter>(NamePresenter);
  return (
    <div>
      name: {state.name}
      <button onClick={presenter.changeName}>change name</button>
    </div>
  );
};

export default Name;
```

## tsconfig.json

设置 tsconfig.json

```json
{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}
```
npm package: @lujs/upload-image
Description: Helps you with the process of choosing an image to upload
Author: lujs
Latest version: 0.0.10

Helps you with the process of choosing an image to upload

[docs](https://lulusir.github.io/mvp/ecosystem/upload-image)


```typescript
  const { presenter, state } = usePresenter<UploadImagePresenter>(
    UploadImagePresenter,
    {
      autoUpdate: true,
      registry: [
        { token: UploadServiceToken, useClass: MyUploadService },
        {
          token: SelectImageServiceToken,
          useClass: SelectImageService,
        },
      ],
    },
  );
```
npm package: @luk3d/flut-hero
Description: Hero icons for Flutjs
Author: LUK3D
Latest version: 1.0.2

# FLUT-HERO ⚔
## Hero Icons for Flutjs
Welcome! this package contains a set of icons widgets for Flutjs framework.


All the svg source where made by the awesome [tailwindcss](https://tailwindcss.com/) team and designed by [@steveschoger](https://twitter.com/steveschoger)

# How to use

1. Install the package `yarn add @luk3d/flut-hero`
2. Import the icons you want to use to your project
3. Use the imported icons as Widget.
npm package: @luka-cat-mimi/n8n-nodes-feilian
Description: n8n 社区节点：集成飞连开放平台，支持部门与成员管理、Wi-Fi 管理、终端管理
Author: luka-cat
Latest version: 0.1.3

# @luka-cat-mimi/n8n-nodes-feilian

飞连 n8n 社区节点，提供飞连开放平台 API 的集成支持，覆盖部门与成员管理、Wi-Fi 管理、终端管理等场景。

## 安装

参考：https://docs.n8n.io/integrations/community-nodes/installation/

节点名称：`@luka-cat-mimi/n8n-nodes-feilian`

## 功能列表

### 部门与成员 (10)

- 获取部门列表
- 根据名称获取部门 ID
- 获取用户详情
- 邮箱或手机换用户信息
- 姓名换用户信息
- 批量查询用户详情
- 邮箱或手机批量获取用户 ID
- 获取某个部门的成员（支持递归子部门成员）
- 获取部门数和用户数
- 重置用户密码

### Wi-Fi (12)

- 获取哑终端列表
- 批量创建哑终端
- 更新哑终端
- 批量删除哑终端设备
- 获取哑终端设备类型列表
- 创建哑终端设备类型
- 更新哑终端设备类型
- 批量删除哑终端设备类型
- 获取哑终端连接日志
- 获取员工 Wi-Fi 的连接日志
- 查看员工的 Wi-Fi 启用状态
- 获取访客 Wi-Fi 的连接日志

### 终端管理 (5)

- 获取设备列表
- did 换设备信息
- 获取设备登陆日志
- 获取对应设备的软件列表
- 获取设备大盘信息

## ✨ 特别之处

### 🔄 Return All 自动分页

以下接口支持 **Return All** 功能，自动处理分页获取全部数据：

| 模块       | 接口名称                   |
| ---------- | -------------------------- |
| 部门与成员 | 获取某个部门的成员         |
| Wi-Fi      | 获取哑终端列表             |
| Wi-Fi      | 获取哑终端设备类型列表     |
| Wi-Fi      | 获取哑终端连接日志         |
| Wi-Fi      | 获取员工 Wi-Fi 的连接日志  |
| Wi-Fi      | 获取访客 Wi-Fi 的连接日志  |
| 终端管理   | 获取设备列表               |
| 终端管理   | 获取设备登陆日志           |
| 终端管理   | 获取对应设备的软件列表     |

### ⏱️ 超时与批次管理

大部分接口支持以下高级选项：

- **Timeout（超时时间）**：设置请求超时时间（毫秒），避免请求长时间挂起
- **Batching（批次管理）**：
  - **Items per Batch**：每批处理的数量，用于控制请求频率
  - **Batch Interval (ms)**：每批请求之间的等待时间，避免触发 API 限流

这些功能可在接口的 `Options` 选项中配置，有效应对飞连 API 的频率限制。

## 凭证类型

- **飞连 API 凭证** - 使用飞连开放平台的 API Key 和 API Secret 进行认证

## 注意事项

1. 使用前需要在飞连开放平台创建应用并获取 API Key 和 API Secret
2. 部分接口需要相应的权限配置

## 📝 许可证

MIT License

## 🆘 支持

- 📧 邮箱：luka.cat.mimi@gmail.com
- 🐛 [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-feilian/issues)
npm package: @luka-cat-mimi/n8n-nodes-feishu-project
Description: 飞书项目 N8N 集成插件，支持附件管理等功能
Author: luka-cat
Latest version: 1.2.8

# @luka-cat-mimi/n8n-nodes-feishu-project

在 n8n 中轻松操作飞书项目 —— 无需写代码，拖拽即可实现工作项管理自动化。

## 为什么选择这个节点？

| 痛点 | 解决方案 |
|------|----------|
| 飞书项目 API 调用复杂 | **动态表单**：空间、工作项类型自动加载，下拉选择即可 |
| 分页数据获取麻烦 | **一键获取全部**：自动处理分页，返回完整数据 |
| API 限流导致失败 | **批次处理**：自动控制请求频率，避免触发限流 |
| 请求卡死无响应 | **超时保护**：设置超时时间，请求异常及时中断 |

## 安装

```
npm install @luka-cat-mimi/n8n-nodes-feishu-project
```

或在 n8n 社区节点中搜索安装，参考：[社区节点安装指南](https://docs.n8n.io/integrations/community-nodes/installation/)

## 支持的功能（68 个操作）

<details>
<summary><b>工作项管理（16 个）</b>- 创建、更新、删除、批量操作...</summary>

- 创建工作项 / 查询工作项详情 / 更新工作项 / 删除工作项
- 批量更新工作项 / 终止工作项 / 获取工作项元数据 / 获取工作项操作记录
- 获取工作项任务结果 / 批量查询评审信息 / 查询评审结论 / 更新评审
- 创建工时记录 / 获取工时记录列表 / 更新工时记录 / 删除工时记录
</details>

<details>
<summary><b>工作项搜索（4 个）</b>- 单空间搜索、复杂条件、全局搜索...</summary>

- 单空间工作项搜索 / 复杂条件搜索 / 全局搜索 / 关联工作项搜索
</details>

<details>
<summary><b>工作项配置（9 个）</b>- 字段管理、关联配置...</summary>

- 获取/更新工作项基础信息
- 创建/获取/更新工作项字段
- 创建/获取/更新/删除工作项关联配置
</details>

<details>
<summary><b>空间管理（6 个）</b>- 空间列表、详情、成员...</summary>

- 获取空间列表 / 获取空间列表详情 / 获取空间详情
- 获取空间业务线 / 获取空间团队成员 / 获取空间工作项类型列表
</details>

<details>
<summary><b>空间关联（4 个）</b>- 工作项关联绑定...</summary>

- 获取关联规则列表 / 绑定工作项关联 / 解绑工作项关联 / 获取关联工作项列表
</details>

<details>
<summary><b>流程与节点（5 个）</b>- 流程节点操作、状态变更...</summary>

- 查询流程节点 / 更新流程节点 / 操作流程节点 / 变更工作项状态 / 获取WBS视图
</details>

<details>
<summary><b>子任务（5 个）</b>- 子任务 CRUD...</summary>

- 创建子任务 / 获取子任务详情 / 更新子任务 / 操作子任务 / 删除子任务
</details>

<details>
<summary><b>视图管理（8 个）</b>- 视图创建、更新...</summary>

- 获取视图列表 / 创建条件视图 / 更新条件视图 / 创建固定视图
- 更新固定视图 / 删除视图 / 获取全景视图 / 获取视图工作项列表
</details>

<details>
<summary><b>评论管理（4 个）</b>- 评论 CRUD...</summary>

- 创建评论 / 查询评论 / 更新评论 / 删除评论
</details>

<details>
<summary><b>附件管理（4 个）</b>- 文件上传下载...</summary>

- 文件上传（通用） / 工作项附件上传 / 附件下载 / 附件删除
</details>

<details>
<summary><b>用户管理（4 个）</b>- 用户信息、用户组...</summary>

- 获取用户信息 / 搜索租户内的用户列表 / 创建用户组 / 更新用户组成员
</details>

<details>
<summary><b>其他（3 个）</b>- 流程模板、角色、群组、度量...</summary>

- 创建流程模板 / 获取流程角色列表 / 机器人加入聊天 / 获取图表详情
</details>

## 快速开始

### 1. 获取凭证

| 凭证 | 获取方式 |
|------|----------|
| **插件 ID / 密钥** | 飞书项目管理后台 → 插件管理 → 创建或查看插件 |
| **用户 ID** | 飞书项目空间左下角 → 双击个人头像 |
| **Host** | 通常为 `project.feishu.cn` |

### 2. 配置凭证

在 n8n 中创建 **飞书项目 API** 凭据：

| 字段 | 示例 |
|------|------|
| 飞书项目 Host | `project.feishu.cn` |
| 插件 ID | `MII_0000000000000000` |
| 插件密钥 | `AB92E56666CT8D60704743BF69C92C16` |
| 用户 ID | `7568516887894324252` |

### 3. 开始使用

拖入节点 → 选择资源和操作 → 填写参数 → 执行！

## 注意事项

- 确保插件具有所需 API 的访问权限
- [错误码查询](https://project.feishu.cn/b/helpcenter/1p8d7djs/4bsmoql6)

## 支持

- 邮箱：luka.cat.mimi@gmail.com
- [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-feishu-project/issues)

## 许可证

MIT License
npm package: @luka-cat-mimi/n8n-nodes-heic-convert
Description: n8n 社区节点：HEIC/HEIF 图片转 PNG/JPEG 格式转换
Author: luka-cat
Latest version: 0.2.0

# n8n-nodes-heic-convert

n8n 社区节点插件，用于将 HEIC/HEIF 格式图片转换为 PNG 或 JPEG 格式。

## 功能

- 支持 HEIC/HEIF 图片转 JPEG
- 支持 HEIC/HEIF 图片转 PNG
- 可调节 JPEG 输出质量（0-1）
- 自动保留原始文件名并更换扩展名
- 支持批量处理多个图片
- 支持 `continueOnFail` 错误处理

## 安装

在 n8n 的 **Settings > Community Nodes** 中搜索并安装：

```
@luka-cat-mimi/n8n-nodes-heic-convert
```

或通过命令行安装：

```bash
npm install @luka-cat-mimi/n8n-nodes-heic-convert
```

## 节点参数

| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| Input Binary Field | string | `data` | 包含 HEIC 图片的二进制字段名 |
| Output Format | JPEG / PNG | `JPEG` | 输出图片格式 |
| Quality | number (0-1) | `0.92` | JPEG 压缩质量（仅 JPEG 格式时可用） |
| Output Binary Field | string | `data` | 输出二进制字段名 |

## 使用示例

1. 使用 **Read Binary File** 或 **HTTP Request** 节点获取 HEIC 图片
2. 连接 **HEIC Convert** 节点
3. 选择输出格式（JPEG 或 PNG）
4. 如选择 JPEG，可调整压缩质量
5. 输出的二进制数据可传递给后续节点使用

## 开发

```bash
# 安装依赖
npm install

# 构建
npm run build

# 开发模式（监听变更）
npm run dev

# 格式化代码
npm run format

# 代码检查
npm run lint
```

## 许可证

[MIT](LICENSE.md)
npm package: @luka-cat-mimi/n8n-nodes-qingflow-oa
Description: 轻流OA N8N 集成插件
Author: luka-cat
Latest version: 1.2.1

# @luka-cat-mimi/n8n-nodes-qingflow-oa

轻流 OA n8n 社区节点，提供轻流开放平台 API 的集成支持。

## 安装

参考：https://docs.n8n.io/integrations/community-nodes/installation/

节点名称：`@luka-cat-mimi/n8n-nodes-qingflow-oa`

## 功能列表

### 通讯录 - 成员 (7)

- 创建成员
- 批量创建成员
- 获取用户详情
- 通过邮箱或手机号获取成员 userId
- 获取工作区全部成员 ✨ 支持 Return All
- 更新成员
- 删除成员

### 通讯录 - 部门 (9)

- 创建部门
- 获取部门列表
- 获取部门成员列表
- 获取不在部门的成员
- 查询单个部门详情
- 增加部门成员
- 移除部门成员
- 更新部门
- 删除部门

### 通讯录 - 角色 (7)

- 创建角色
- 获取角色列表
- 获取角色成员
- 增加角色成员
- 移除角色成员
- 更新角色
- 删除角色

### 通讯录 - 管理员 (3)

- 增加管理员
- 获取管理员列表
- 删除管理员

### 通讯录 - 子管理员 (4)

- 创建子管理员
- 获取工作区子管理员配置
- 更新子管理员
- 删除子管理员

### 轻流应用接口 - 应用管理 (7)

- 创建应用
- 获取工作区所有应用信息
- 获取应用基本信息 ✨ 支持 Return All
- 获取指定应用表单信息
- 获取应用 Word 打印模版信息
- 更新应用基本信息
- 删除应用

### 数据内容 - 应用数据 (6)

- 获取应用数据 ✨ 支持 Return All
- 获取个人在当前工作区全部事项信息 ✨ 支持 Return All
- 获取单条数据的详细信息
- 获取单条数据的留言信息 ✨ 支持 Return All
- 获取数据关联的内容
- 更新单条数据的信息

### 数据流程接口 - 流程操作 (6)

- 获取单条数据的流程日志
- 获取某条流程日志的详细信息
- 处理某条数据
- 催办某条数据
- 单条数据重新指派
- 单条数据流程回退

### 任务委托 (3)

- 新增委托
- 获取委托列表 ✨ 支持 Return All
- 结束委托

### 高级设置 (1)

- 自定义请求（支持任意 API 端点调用，含批次处理和超时控制）

## ✨ 特别之处

### 🔄 Return All 自动分页

以下接口支持 **Return All** 功能，自动处理分页获取全部数据：

| 模块                 | 接口名称                           |
| -------------------- | ---------------------------------- |
| 通讯录 - 成员        | 获取工作区全部成员                 |
| 轻流应用接口         | 获取应用基本信息                   |
| 数据内容 - 应用数据  | 获取应用数据                       |
| 数据内容 - 应用数据  | 获取个人在当前工作区全部事项信息   |
| 数据内容 - 应用数据  | 获取单条数据的留言信息             |
| 任务委托             | 获取委托列表                       |

### ⏱️ 超时与批次管理

大部分接口支持以下高级选项：

- **Timeout（超时时间）**：设置请求超时时间（毫秒），避免请求长时间挂起
- **Batching（批次管理）**：
  - **Items per Batch**：每批处理的数量，用于控制请求频率
  - **Batch Interval (ms)**：每批请求之间的等待时间，避免触发 API 限流

这些功能可在接口的 `Options` 选项中配置，有效应对轻流 API 的频率限制。

### 🔐 智能 Token 刷新

轻流 OA API 有一个特殊设计：即使请求失败，服务器也会返回 HTTP 200 状态码，错误信息通过响应体中的 `errCode` 字段返回。本节点自动检测 `errCode: 49300`（Token 已过期），自动刷新 Access Token 并重试请求。

## 凭证类型

- **轻流 OA API 凭证** - 使用 API Key 进行认证

### 配置说明

| 字段         | 说明                     | 示例                              |
| ------------ | ------------------------ | --------------------------------- |
| **Base URL** | 轻流 OA 的 API 基础地址  | `https://api.singleflow.com`      |
| **API Key**  | 轻流 OA 的 API 密钥      | `your_api_key`                    |
| **User ID**  | 默认用户 ID（可选）      | `default_user_id`                 |

### Base URL 说明

根据部署环境选择对应的地址：
- **公有云**：`https://api.singleflow.com`
- **专有云**：`https://xxx.xxx.com/openApi`

## 注意事项

1. API Key 获取：登录轻流 OA 管理后台 → API 管理页面 → 创建或查看 API 密钥
2. 错误码查询：[轻流 API 文档](https://exiao.yuque.com/ixwxsb/cqfg2y/xl9r0hpg3dyxstcy)

## 📝 许可证

MIT License

## 🆘 支持

- 📧 邮箱：luka.cat.mimi@gmail.com
- 🐛 [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-qingflow-oa/issues)
npm package: @luka-cat-mimi/n8n-nodes-volcengine
Description: 火山引擎 N8N 集成插件
Author: luka-cat
Latest version: 1.0.15

# 火山引擎 N8N 集成插件

![License](https://img.shields.io/badge/license-MIT-blue.svg)
![N8N](https://img.shields.io/badge/platform-N8N-brightgreen.svg)
![Node.js](https://img.shields.io/badge/node-%3E%3D20.15-green.svg)

一个 N8N 自定义节点，用于集成火山引擎 API，支持 VikingDB 知识库、IAM 用户管理和自定义请求。

## 📦 安装

```bash
npm install @luka-cat-mimi/n8n-nodes-volcengine
```

## ⚙️ 配置凭据

在 N8N 中创建「火山引擎 API」凭据：

| 字段 | 说明 |
|------|------|
| Base URL | 火山引擎 API 地址，默认 `https://open.volcengineapi.com` |
| Access Key ID | 访问密钥 ID |
| Secret Access Key | 访问密钥 |
| Region | 服务区域（默认华北2-北京） |

👉 [获取 Access Key](https://www.volcengine.com/docs/6291/65568?lang=zh)

## 📊 功能模块

### Viking 知识库

| 操作 | 说明 |
|------|------|
| **搜索知识库** | 语义检索知识库内容 |
| **多轮对话** | 基于知识库的 AI 对话，支持多种豆包模型 |

👉 [VikingDB 文档](https://www.volcengine.com/docs/84313/1254485?lang=zh)

### IAM 用户管理

| 操作 | 说明 |
|------|------|
| **获取用户** | 获取指定用户详情 |
| **列出用户** | 获取用户列表 |
| **更新用户** | 更新用户信息 |
| **更新登录配置** | 更新用户登录设置 |

### 自定义请求

调用任意火山引擎 OpenAPI，支持 GET/POST 请求、Query 参数和 Body 参数。

👉 [API Explorer](https://api.volcengine.com/api-explorer/?action=CreateAccessKey&groupName=%E8%AE%BF%E9%97%AE%E5%AF%86%E9%92%A5&serviceCode=iam&version=2018-01-01)

## 🔧 使用示例

### 搜索知识库

```javascript
Collection Name: my-knowledge-base
Query: 如何申请休假
Limit: 5
```

### 自定义请求调用 IAM

```javascript
Service: iam
Action: ListUsers
Version: 2018-01-01
Method: GET
```

## 🛠️ 开发

```bash
# 安装依赖
npm install

# 开发模式
npm run dev

# 构建
npm run build

# 代码检查
npm run lint
```

### 项目结构

```
├── credentials/
│   └── VolcEngineApi.credentials.ts
├── nodes/VolcEngine/
│   ├── VolcEngine.node.ts
│   └── resource/
│       ├── viking/          # 知识库模块
│       ├── iam/             # IAM 模块
│       └── customRequest/   # 自定义请求
└── package.json
```

## 📝 许可证

MIT License

## 🆘 支持

- 📧 邮箱：luka.cat.mimi@gmail.com
- 🐛 [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-volcengine/issues)
npm package: @lukaaspl/path-resolver
Description: Simple node/web path resolver
Author: lukaaspl
Latest version: 1.0.2

# Path resolver

## Installation

```
npm install @lukaaspl/path-resolver
```

```
yarn add @lukaaspl/path-resolver
```

## Usage

```js
import { resolvePath } from "@lukaaspl/path-resolver";

const path = "/docs/office/agreement.pdf";

const details = resolvePath(path);

// details output:
// {
//   followingDirectories: [ 'docs', 'office' ],
//   fullFilename: 'agreement.pdf',
//   fileName: 'agreement',
//   extension: 'pdf'
// }
```
npm package: @lukachi/delta-sdk
Description: M10 SDK
Author: Andrei Khvalko
Latest version: 0.4.0

# M10-SDK

The M10 (SDK) gives you access to the M10 APIs allowing you to build custom clients and banking integrations with the M10 Platform. Whether you are a central bank implementing custom applications, or a new Fintech who wants to build atop an M10 CBDC, the SDK is your first stop.

The M10-SDK is documented primary using TypeDoc (use `yarn run docs` to generate them) and examples in the tests.

## Installation & Requirements

Run `yarn install` for a node version >16.

## Using the SDK

Create an instance of the SDK and pass it the URL of your ledger Directory, specifying TLS:

```typescript
const sdk = require("m10-sdk");

const ledgerUrl = "develop.m10.net";
const ledgerClient = new sdk.client.LedgerClient(ledgerUrl, true);
```

Setup signer based on the key:

```typescript
const bankAdmin = "MC4CAQAwBQYDK2VwBCIEIIrikV/M3erX0lqmQgVXDRU1yFLStge7RyyvXv+kDesK";
const bankAdminSigner = sdk.signer.CryptoSigner.getSignerFromPkcs8V1(bankAdmin);
```

Make a request:

- Query request example which shows how to list accounts with bankAdmin as an owner:

    ```typescript
    const request = { owner: bankAdminSigner.getPublicKey() };
    const response = await ledgerClient.listAccounts(bankAdminSigner, request);
    ```
    
- Transaction request example of creating an account:

    ```typescript
    const { m10 } = require("m10-sdk/protobufs");

    const account = new m10.sdk.model.Account({
        id: utils.getUint8ArrayFromAccountId(accountId),
        name: "Name",
        publicName: "Some Public Name",
        owner: bankAdminSigner.getPublicKey(),
    });
    const transactionData = sdk.collections.getCreateTransactionDataFromDocument(
        m10.sdk.model.Account.encode(account).finish(),
        sdk.collections.Collection.Account,
    );

    const request = ledgerClient.transactionRequest(transactionData);
    const response = await ledgerClient.createTransaction(signer, request);
    ```

We also have some `helpers`, but it's better not to rely on them and use them only as an example to create your own.

## Protobufs

Protobufs are generated using `yarn run proto` script, for this to work you need to have dependencies installed (`yarn install`) and have necessary proto files in `../../protobuf` folder.

## Tests 

Tests are split into two parts:
- `tests/integration` will give you some examples on how to implement certain functionality
- `tests/*` are used for testing all actions separate without context

All of them can be run using `yarn run test`, or `yarn run test:cover` which will generate coverage reports (with html one saved in `coverage` folder).

## Support

If you have any issues with using the SDK, please file an issue on Github
npm package: @lukachi/rn-csca
Description: Interact with ldif and pem CSCAs
Author: lukachi
Latest version: 0.2.0

# rn-csca

Interact with ldif and pem CSCAs

## Installation

```sh
npm install rn-csca
```

## Usage

```js
import { parsePem, parsePemString, parseLdif, parseLdifString, findMasterCertificate } from 'rn-csca';

// Parse PEM file from string
const pemString = `-----BEGIN CERTIFICATE-----
MIIBkTCB+wIJANy...
-----END CERTIFICATE-----`;

try {
  const certificates = parsePemString(pemString);
  console.log(`Found ${certificates.length} certificates`);

  // Each certificate is returned as raw DER data (ArrayBuffer)
  certificates.forEach((certDer, index) => {
    console.log(`Certificate ${index}: ${certDer.byteLength} bytes`);
  });
} catch (error) {
  console.error('Failed to parse PEM:', error);
}

// Parse PEM file from bytes
const pemBytes = new TextEncoder().encode(pemString);
const certificates = parsePem(pemBytes.buffer);

// Parse LDIF file from string
const ldifString = `dn: cn=certificate1
objectClass: certificationAuthority
cACertificate:: MIIBkTCB+wIJANy...`;

try {
  const ldifCertificates = parseLdifString(ldifString);
  console.log(`Found ${ldifCertificates.length} certificates from LDIF`);
} catch (error) {
  console.error('Failed to parse LDIF:', error);
}

// Parse LDIF file from bytes
const ldifBytes = new TextEncoder().encode(ldifString);
const ldifCertificates = parseLdif(ldifBytes.buffer);

// Find master certificate for a slave certificate
const slaveCertDer = certificates[0]; // First certificate as slave
const masterCertsDer = certificates.slice(1); // Rest as potential masters

try {
  const masterCert = findMasterCertificate(slaveCertDer, masterCertsDer);
  if (masterCert) {
    console.log(`Found master certificate: ${masterCert.byteLength} bytes`);
  } else {
    console.log('No master certificate found');
  }
} catch (error) {
  console.error('Error finding master certificate:', error);
}
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @lukadriel/webfont-medical-icons
Description: A set of medical icons, rewrite of webfont-medical-icons
Author: Yozan Bi Adriel
Latest version: 1.0.0

Webfont Medical Icons
=====================

# Description
This library is based on the original [Webfont Medical Icons](https://samcome.github.io/webfont-medical-icons/). The particularity of this version is the compatibility with [Quasar Framework SVG Icons](https://quasar.dev/vue-components/icon#svg-icons).

# Usage
Import the icons you want to use as follow:

```html
<template>
  <div>
    <q-icon :name="tabMenu" />
    <q-btn :icon="medAdministration" />
  </div>
</template>

<script>
    import { medAccessibility, medAdministration } from '@lukadriel/webfont-medical-icons';
    export default {
    // ...
    setup () {
        return {
            medAccessibility,
            medAdministration
        }
    }
    }
</script>
```
npm package: @lukahartwig/prettier-preset
Description: Personal prettier configuration
Author: Luka Hartwig
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Prettier Config

Personal prettier configuration I use in all my projects.

## Usage

Create a `prettier.config.js` with the following statement

```js
module.exports = require('@lukahartwig/prettier-preset');
```
npm package: @lukalabs/esbuild-inject-plugin
Description: Monkey-patching esbuild to inject custom plugin for Remix
Author: Alexander Kuznetsov
Latest version: 1.1.0

# esbuild-inject-plugin

This plugin patches `build` function of [esbuild](https://esbuild.github.io/) to include additional plugins provided via config.

Intended to be used in [Remix](https://remix.run) projects, which currently doesn’t support custom esbuild plugins.

## Install

```sh
npm install -D @lukalabs/esbuild-inject-plugin
# or
yarn add -D @lukalabs/esbuild-inject-plugin
```

## Usage with Remix

1. Replace `build` and `dev` scripts in your `package.json` (you can also use [binode](https://github.com/kentcdodds/binode) to make it work on Windows)

**package.json**
```diff
"scripts": {
-    "build": "remix build",
-    "dev": "remix dev",
+    "build": "node --require @lukalabs/esbuild-inject-plugin -- ./node_modules/.bin/remix build",
+    "dev": "node --require @lukalabs/esbuild-inject-plugin -- ./node_modules/.bin/remix dev",
}
```

2. Add `esbuild-plugins.js` to project’s root folder (or provide config path via `ESBUILD_INJECT_PLUGIN_CONFIG` environment variable)
([@lukalabs/esbuild-styled-components](https://github.com/lukalabs/lukalabs-npm/tree/main/packages/esbuild-styled-components) used here as an example)

**esbuild-plugins.js**
```js
const styledComponentsPlugin = require('@lukalabs/esbuild-styled-components').default;

exports.plugins = function(plugins) {
  return [styledComponentsPlugin(), ...plugins];
}
```

## License

[MIT](https://github.com/lukalabs/lukalabs-npm/blob/main/LICENSE)
npm package: @lukalabs/esbuild-styled-components
Description: esbuild styled-components plugin to replace styled-components/macro
Author: Alexander Kuznetsov
Latest version: 1.0.1

# esbuild-styled-components

It is like [Styled Components babel plugin](https://github.com/styled-components/babel-plugin-styled-components), but for [esbuild](https://esbuild.github.io/).

## Install

```sh
npm install -D @lukalabs/esbuild-styled-components
# or
yarn add -D @lukalabs/esbuild-styled-components
```

## Usage with Remix

(see [esbuild-inject-plugin](https://github.com/lukalabs/lukalabs-npm/tree/main/packages/esbuild-inject-plugin/README.md) for how to setup a Remix project)

**esbuild-plugins.js**
```js
const styledComponentsPlugin = require('@lukalabs/esbuild-styled-components').default;

exports.plugins = function(plugins) {
  return [styledComponentsPlugin(/* options */), ...plugins];
}
```

### Plugin options

```js
const options = {
  // Regular expression to match current file contents
  // (only process files with "styled-components" in it)
  scMatch = 'styled-components',
  // Regular expression to match current file name
  filter = '(.jsx|.js|.tsx|.ts)$',
  // Regular expression for files to exclude 
  exclude = '/node_modules/',

  // These options are same as in Babel plugin (see https://styled-components.com/docs/tooling#babel-plugin)
  ssr = true,
  displayName = true,
  fileName = true,
  meaninglessFileNames = ['index']  
};
```

## License

[MIT](https://github.com/lukalabs/lukalabs-npm/blob/main/LICENSE)

esbuild-styled-components uses these libraries:

- [tree-sitter](https://github.com/tree-sitter/tree-sitter) (MIT license)
- [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript) (MIT license)