open-index/open-npm huggingface dataset:
npm package: @quick-gen/cli
Description: Quick and flexible code generation toolkit
Author: felix Shih
Latest version: 0.1.16

# @quick-gen/cli

[![npm version](https://img.shields.io/npm/v/@quick-gen/cli.svg)](https://www.npmjs.com/package/@quick-gen/cli)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

A quick and flexible code generation toolkit.

## 🚀 Features

- 📝 **Code Generation**: Generate various types of code and documentation
- 🔧 **Plugin System**: Extensible architecture for different generation needs
- 🎯 **Easy to Use**: Simple and intuitive CLI interface
- 🔄 More features coming soon...

## 📦 Installation

### Global Installation (Recommended)
```bash
# Using npm
npm install -g @quick-gen/cli

# Using yarn
yarn global add @quick-gen/cli

# Using pnpm
pnpm add -g @quick-gen/cli
```

### Local Installation
```bash
# Using npm
npm install @quick-gen/cli --save-dev

# Using yarn
yarn add -D @quick-gen/cli

# Using pnpm
pnpm add -D @quick-gen/cli
```

## 🎯 Usage

### Generate React Documentation

```bash
# Using global installation
quick-gen react -d src/components

# Using local installation
npx quick-gen react -d src/components
```

### Common Commands
```bash
# Generate docs for components
quick-gen react -d src/components

# Show help
quick-gen --help
```

### CLI Options

| Command | Description |
|---------|-------------|
| `react -d [dir]` | Generate JSDoc for React components |

#### React Command Options

| Option | Alias | Description | Default |
|--------|-------|-------------|---------|
| `--dir` | `-d` | Directory to scan for React components | `src` |
| `--help` | `-h` | Show help | |

## 🛠️ Requirements

- Node.js >= 14
- React project with `.js` or `.jsx` files

## 📦 Related Packages

- [@quick-gen/cli](https://www.npmjs.com/package/@quick-gen/cli) - Core CLI tool
- [@quick-gen/react](https://www.npmjs.com/package/@quick-gen/react) - React documentation generator

## 🔗 Links

- [GitHub Repository](https://github.com/fufuShih/quick-gen)
- [Bug Reports](https://github.com/fufuShih/quick-gen/issues)
- [npm Organization](https://www.npmjs.com/org/quick-gen)
npm package: @quick-gen/knowledge
Description: Knowledge graph generator for JavaScript/TypeScript projects and friendly for ai
Author: felix Shih
Latest version: 0.1.13

# @quick-gen/knowledge

[![npm version](https://img.shields.io/npm/v/@quick-gen/knowledge.svg)](https://www.npmjs.com/package/@quick-gen/knowledge)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

A powerful JavaScript/TypeScript code analysis tool that helps you understand your codebase by extracting and organizing information about symbols, dependencies, and relationships in your code.

## 🌟 Features

- 🔍 **Comprehensive Analysis**: 
  - Analyzes JavaScript and TypeScript files
  - Supports JSX and TSX formats
  - Extracts detailed code structure information
- 📊 **Rich Information Extraction**:
  - Classes, methods, and properties
  - Functions and variables
  - Import/Export relationships
  - Symbol references and dependencies
- 📦 **Structured Output**: 
  - Generates organized knowledge files
  - Creates separate JSON files for different aspects
  - Easy to integrate with other tools
- 🛠️ **Developer Friendly**: 
  - Simple CLI interface
  - Programmatic API available
  - Configurable ignore patterns

## 📦 Installation

```bash
# Using npm
npm install @quick-gen/knowledge --save-dev

# Using yarn
yarn add -D @quick-gen/knowledge

# Using pnpm
pnpm add -D @quick-gen/knowledge
```

## 🚀 Usage

### Command Line Interface

```bash
# Using npx
npx quick-gen knowledge

# Analyze specific directory
npx quick-gen knowledge src/
```

### Integration with package.json

Add a script to your package.json:

```json
{
  "scripts": {
    "analyze": "quick-gen-knowledge"
  }
}
```

## 📊 Output Structure

The tool generates three main JSON files in the `.knowledge` directory:

- `fileSymbols.json`: Contains information about symbols defined in each file
- `fileImports.json`: Maps import/export relationships between files
- `symbolReferences.json`: Tracks symbol usage and references across the codebase

## 🛠️ Requirements

- Node.js >= 14
- JavaScript/TypeScript project

## 📦 Related Packages

- [@quick-gen/cli](https://www.npmjs.com/package/@quick-gen/cli) - Core CLI tool
- [@quick-gen/react](https://www.npmjs.com/package/@quick-gen/react) - React documentation generator

## 🔗 Links

- [GitHub Repository](https://github.com/fufuShih/quick-gen)
- [Bug Reports](https://github.com/fufuShih/quick-gen/issues)
- [npm Organization](https://www.npmjs.com/org/quick-gen)
npm package: @quick-hjk/assemble-release-plan
Description: Reads changesets and adds information on dependents that need bumping
Latest version: 6.0.7

# Assemble Release Plan

[![npm package](https://img.shields.io/npm/v/@quick-hjk/assemble-release-plan)](https://npmjs.com/package/@quick-hjk/assemble-release-plan)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Assemble a release plan for changesets from data about a repository.

Usage

```ts
import assembleReleasePlan from "@quick-hjk/assemble-release-plan";
import readChangesets from "@quick-hjk/read";
import { read } from "@quick-hjk/config";
import { getPackages } from "@manypkg/get-packages";
import { readPreState } from "@quick-hjk/pre";

const packages = await getPackages(cwd);
const preState = await readPreState(cwd);
const config = await read(cwd, packages);
const changesets = await readChangesets(cwd, sinceRef);

const releasePlan = assembleReleasePlan(changesets, packages, config, preState);
```

Signature

```ts
import { NewChangeset, Config, ReleasePlan } from "@quick-hjk/types";
import { Packages } from "@manypkg/get-packages";

assembleReleasePlan = (
  changesets: NewChangeset[],
  packages: Packages,
  config: Config
) => ReleasePlan;
```

This package exists so assembling a release plan can be done without reading from disc.
This is useful primarily for testing within the changesets project, and when you cannot
run commands within the repository you want a release plan for (some CI cases).

For most cases, you should use `@quick-hjk/get-release-plan` which will read local changeset
files, config, and workspaces, to assemble the release plan from.
npm package: @quick-hjk/config
Description: Utilities for reading and parsing Changeset's config
Latest version: 3.1.1

# @quick-hjk/config

> Utilities for reading and parsing Changeset's config

[![npm package](https://img.shields.io/npm/v/@quick-hjk/config)](https://npmjs.com/package/@quick-hjk/config)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

```tsx
import { parse, read, ValidationError } from "@quick-hjk/config";

let config = await read(process.cwd(), workspaces);

let config = parse({ commit: true }, workspaces);

try {
  return parse({ commit: true }, workspaces);
} catch (err) {
  if (err instanceof ValidationError) {
    let message = err.message;
  } else {
    throw err;
  }
}
```
npm package: @quick-hjk/errors
Description: Error classes for @quick-hjk
Latest version: 0.2.0

# @quick-hjk/errors

[![npm package](https://img.shields.io/npm/v/@quick-hjk/errors)](https://npmjs.com/package/@quick-hjk/errors)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Error classes for Changesets.
npm package: @quick-hjk/get-dependents-graph
Description: Get the graph of dependents in a monorepo
Latest version: 2.1.3

# Get Dependents Graph

[![npm package](https://img.shields.io/npm/v/@quick-hjk/get-dependents-graph)](https://npmjs.com/package/@quick-hjk/get-dependents-graph)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Small helper utility extracted from bolt to get a graph of relationships between packages.

```ts
import { getDependentsGraph } from "@quick-hjk/get-dependents-graph";
import { getPackages } from "@manypkg/get-packages";

let { graph, valid } = getDependentsGraph(await getPackages(cwd));
```

Mostly published for use in [changesets](https://www.npmjs.com/package/@quick-hjk/cli)
npm package: @quick-hjk/get-github-info
Description: Get the GitHub username and PR number from a commit. Intended for use with changesets.
Latest version: 0.6.0

# @quick-hjk/get-github-info

[![npm package](https://img.shields.io/npm/v/@quick-hjk/get-github-info)](https://npmjs.com/package/@quick-hjk/get-github-info)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

> Get the GitHub username and PR number from a commit. Intended for use with changesets.

## Getting Started

> Note: This assumes you already have changesets setup.

To use `@quick-hjk/get-github-info`, you'll need to install it and you'll probably also want `dotenv` to provide a GitHub personal access token via a `.env` file.

```bash
yarn add --dev @quick-hjk/get-github-info dotenv
```

or

```bash
npm install --save-dev @quick-hjk/get-github-info dotenv
```

Then you can use it in your `.changeset/config.js` like this.

```jsx
require("dotenv").config();
const { getInfo } = require("@quick-hjk/get-github-info");

// ...

const getReleaseLine = async (changeset, type) => {
  const [firstLine, ...futureLines] = changeset.summary
    .split("\n")
    .map((l) => l.trimRight());
  // getInfo exposes the GH username and PR number if you want them directly
  // but it also exposes a set of links for the commit, PR and GH username
  let { user, pull, links } = await getInfo({
    // replace this with your own repo
    repo: "Noviny/changesets",
    commit: changeset.commit,
  });
  let returnVal = `- ${links.commit}${
    links.pull === null ? "" : ` ${links.pull}`
  }${links.user === null ? "" : ` Thanks ${links.user}!`}: ${firstLine}`;
  if (futureLines.length > 0) {
    returnVal += `\n${futureLines.map((l) => `  ${l}`).join("\n")}`;
  }
  return returnVal;
};

// ...
```

You'll need to [get a GitHub personal access token](https://github.com/settings/tokens/new) with `read:user` and `repo:status` permissions, and add it to a `.env` file.

```bash
GITHUB_TOKEN=token_here
```

You can now bump your packages and changelogs with `changeset version` and it'll have the GitHub info. 🎉

## API

```ts
type Info = {
  user: string | null;
  pull: number | null;
  links: {
    commit: string;
    pull: string | null;
    user: string | null;
  };
};

type Options = {
  commit: string;
  repo: string;
};

export function getInfo(options: Options): Info {
  // magic...
}
```
npm package: @quick-hjk/get-release-plan
Description: Reads changesets and adds information on dependents that need bumping
Latest version: 4.0.8

# @quick-hjk/get-release-plan

[![npm package](https://img.shields.io/npm/v/@quick-hjk/get-release-plan)](https://npmjs.com/package/@quick-hjk/get-release-plan)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

A function that reads information about the current repository

```js
import getReleasePlan from "@quick-hjk/get-release-plan";

const releasePlan = await getReleasePlan(cwd, since, passedConfig);
```

## cwd: string

The directory to run `getReleasePlan` in - most often `process.cwd()`

## since: string

Sets whether to use all changesets present, or only those changesets that are new since the branch
diverged from another one.

## passedConfig?: Config

The changeset config options as defined in `@quick-hjk/types`. This is optional, and can be used to overwrite any written config options.
npm package: @quick-hjk/get-version-range-type
Description: Common get-version-range-type shared between changeset packages
Latest version: 0.4.0

# @quick-hjk/get-version-range-type

[![npm package](https://img.shields.io/npm/v/@quick-hjk/get-version-range-type)](https://npmjs.com/package/@quick-hjk/get-version-range-type)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Simple function that takes in a string which is a version range (ie `^1.0.0`, `~3.5.1`, `2.0.0`)
and returns the range definition.

A helper published mostly to ensure consistency across several changeset packages.
npm package: @quick-hjk/git
Description: Some git helpers that changesets use to get information
Latest version: 3.0.10

# @quick-hjk/git

[![npm package](https://img.shields.io/npm/v/@quick-hjk/git)](https://npmjs.com/package/@quick-hjk/git)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

A collection of helper functions used internally in changesets to make git operations easier.

Published documentation is likely to remain sparse.
npm package: @quick-hjk/logger
Description: Console log alias
Latest version: 0.1.1

## @quick-hjk/logger

[![npm package](https://img.shields.io/npm/v/@quick-hjk/logger)](https://npmjs.com/package/@quick-hjk/logger)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

### Usage

```js
import { error } from '@quick-hjk/logger";

error('message part 1', 'message part 2');
```

### Package Exports

**error**: Use `error` to print error messages upon which users which immediately action to complete the task.

**info**: Use `info` to print informational messages to user.

**log**: Use `log` to print messages don't fall in any other specific category. For example, message to show title of the step being performed by the changesets tool.

**success**: Use `success` to assert to users that their instructions have completed successfully.

**warn**: Use `warn` to print warning messages, something that user could action on now or later without much impact of their work.

### Silencing Messages In Tests

Use the `@quick-hjk/test-utils` package to silence the logs in test cases.

For example:

```js
import { temporarilySilenceLogs } from "@quick-hjk/test-utils";
import { log } from "@quick-hjk/logger";

temporarilySilenceLogs();

// Now the logs in this test file are not actually logged to std out
log("I am not logged");

// Use console.log to log messages in tests if required
console.log("Yay, I am logged");
```
npm package: @quick-hjk/parse
Description: Parse a changeset file's contents into a usable json object
Latest version: 0.4.1

# @quick-hjk/parse

[![npm package](https://img.shields.io/npm/v/@quick-hjk/parse)](https://npmjs.com/package/@quick-hjk/parse)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Parses a changeset from its written format to a data object.

```js
import parse from "@quick-hjk/parse";

const changeset = `---
"@quick-hjk/something": minor
"@quick-hjk/something-else": patch
---

A description of a minor change`;

const parsedChangeset = parse(changeset);
```

For example, it can convert:

```md
---
"@quick-hjk/something": minor
"@quick-hjk/something-else": patch
---

A description of a minor change
```

to

```json
{
  "summary": "A description of a minor change",
  "releases": [
    { "name": "@quick-hjk/something", "type": "minor" },
    { "name": "@quick-hjk/something-else", "type": "patch" }
  ]
}
```

Note that this is not quite a complete Changeset for most tools as it lacks an `id`.

For written changesets, the id is normally given as the file name, which parse is not aware of.
npm package: @quick-hjk/pre
Description: Utils to make a Changesets repo enter and exit pre mode
Latest version: 2.0.2

# @quick-hjk/pre

[![npm package](https://img.shields.io/npm/v/@quick-hjk/pre)](https://npmjs.com/package/@quick-hjk/pre)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Enter and exit pre mode in a Changesets repo.

## Usage

```ts
import { enterPre, exitPre } from "@quick-hjk/pre";

await enterPre(cwd, tag);

let preState = await readPreState(cwd);

// version packages with @quick-hjk/cli or get a release plan and apply it
await exitPre(cwd);
```

This package is used by internally by Changesets to enter and exit pre mode along with reading the pre state for the `publish` and `version` commands, you should only need it if you're using `@quick-hjk/assemble-release-plan`, implementing Changesets or want to enter or exit pre mode programmatically.

## Types

```ts
import { PreState } from "@quick-hjk/types";

export function enterPre(cwd: string, tag: string): Promise<void>;
export function exitPre(cwd: string): Promise<void>;
export function readPreState(cwd: string): Promise<PreState>;
```
npm package: @quick-hjk/read
Description: Read changesets from disc, and return the information as JSON
Latest version: 0.6.4

# @quick-hjk/read

[![npm package](https://img.shields.io/npm/v/@quick-hjk/read)](https://npmjs.com/package/@quick-hjk/read)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

Read in all changesets from a repository.

```js
import read from "@quick-hjk/read";

let changesets = await getChangesets(cwd);
```

This returns an array of formatted changesets.
npm package: @quick-hjk/types
Description: Common types shared between changeset packages
Latest version: 6.1.0

# @quick-hjk/types

[![npm package](https://img.shields.io/npm/v/@quick-hjk/types)](https://npmjs.com/package/@quick-hjk/types)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)

A package of types for use in changesets, or projects wishing to extend them.

Of these, the most useful types are:

## NewChangeset

The format for a changeset as of changesets version 2.

## ChangelogFunctions

The shape of the object used for generating changelog entries.

## ReleasePlan

The combined object used to version packages and update changelogs.
npm package: @quick-hjk/write
Description: Writes a changeset to a file
Latest version: 0.4.0

# @quick-hjk/write

Writes a changeset to a file.

```js
import write from "@quick-hjk/write";

const changeset = {
  summary: "A description of a minor change",
  releases: [
    { name: "@quick-hjk/something", type: "minor" },
    { name: "@quick-hjk/something-else", type: "patch" },
  ],
};

const uniqueId = await write(changeset, cwd);
console.log(uniqueId); // orange-foxes-waggle
```

For example, it can convert:

```json
{
  "summary": "A description of a minor change",
  "releases": [
    { "name": "@quick-hjk/something", "type": "minor" },
    { "name": "@quick-hjk/something-else", "type": "patch" }
  ]
}
```

to

```markdown
---
"@quick-hjk/something": minor
"@quick-hjk/something-else": patch
---

A description of a minor change
```

This package will take care of generating a unique id for the changeset.
npm package: @quick-qui/app-server
Description: 实现的一部分。类似于常见的”三层架构“中的后台服务部分。按照模型的要求提供能力。典型的包括 -
Latest version: 1.1.0

# @quick-qui/app-server

实现的一部分。类似于常见的”三层架构“中的后台服务部分。按照模型的要求提供能力。典型的包括 -

1. 实体模型和功能模型要求的服务接口。
1. 交换模型要求的外部服务调用。
1. 交换模型要求的对外部提供的服务。

## 如何工作

1. 以nodejs应用运行。
1. 从[model-server](http://github.com/quickqui/model-server)取得模型和必要的模型扩展代码。
1. 根据模型，动态提供能力。


MODEL_PATH=../prototype MODEL_URL=http://localhost:5111 PORT=4001 IMPLEMENTATION_NAME=issue-raw-back npm start
npm package: @quick-qui/builder
Description: 从一个模型项目生成运行时所需的全部材料。包括各个实现运行起来所需的全部材料。俗称“打包”。
Latest version: 1.13.1

# @quick-qui/builder

从一个模型项目生成运行时所需的全部材料。包括各个实现运行起来所需的全部材料。俗称“打包”。

生成的材料一般是一个目录，称为“成品目录”，包括了在某种通用环境、前提下可以运行起来的所有所需。比如源代码、编译后的代码、静态资源、依赖等等，根据运行时类型不同而不同。

目前支持的运行种类如下 -

1. docker - 运行为一个 docker-compose 配置，在支持 docker-compose 的桌面/服务器运行。依赖于各实现的 docker 镜像。
2. raw - 运行为多个本地进程。各实现在当前目录之外，比如相对目录下（../xxx）。此种运行时一般只出现在@quick-qui 本身的开发场景里。方便调试@quick-qui本身机制和各实现。
3. （🏃🏻WIP）npm - 运行为多个本地进程。各实现被作为 npm 依赖安装在当前目录下。
4. （🏃🏻WIP）eLectron - 作为 Npm 运行时种类的一种扩展。除了运行各实现以外，还会把 electron 相关依赖打包进来。

## 如何工作

## 如何运行

作为node脚本直接运行 - `npm start`

## 所需环境

|               |          |                                |                                                              |
| ------------- | -------- | ------------------------------ | ------------------------------------------------------------ |
| MODEL_PATH    | 环境变量 | string， 必填。                | 指出模型项目所在的路径。本地路径，可以是相对路径。           |
| DIST_DIR      | 环境变量 | string， 必填。                | 指出“成品目录”所在路径。本地路径，可以是相对路径。           |
| LAUNCHER_TYPE | 环境变量 | string， 可选， 默认是“docker“ | 指出 launcher 的类型，也就是运行时的类型。 可能是 docker/raw/npm/electron... |
| LAUNCHER_NAME | 环境变量 | string， 可选                  | 指出 launcher 的名称，优先级高于 LAUNCHER_TYPE。             |