diff --git a/.clang-format-version b/.clang-format-version index bcba2cb5..8c5fe545 100644 --- a/.clang-format-version +++ b/.clang-format-version @@ -1 +1 @@ -llvmorg-19.1.4 +llvmorg-19.1.5 diff --git a/.eslintrc.js b/.eslintrc.js index cd3cc9c7..64231b59 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,16 +1,10 @@ module.exports = { root: true, - plugins: [ - // plugins has no priority. - 'import', - 'prettier', - ], extends: [ // extends has priority. Last index has the highest priority. 'eslint:recommended', 'plugin:import/recommended', 'airbnb-base', - 'plugin:prettier/recommended', 'prettier', ], env: { diff --git a/.github/workflows/bump.yml b/.github/workflows/bump.yml index 26ce6b30..36575a54 100644 --- a/.github/workflows/bump.yml +++ b/.github/workflows/bump.yml @@ -55,12 +55,12 @@ jobs: - name: Bump version(patch, minor, major) if: ${{ inputs.type == 'patch' || inputs.type == 'minor' || inputs.type == 'major' }} run: | - npx lerna version ${{ inputs.type }} -m "release(${{ inputs.type }}): %s" --no-push --no-private --yes + npx lerna version ${{ inputs.type }} -m "release(${{ inputs.type }}): %s" --no-push --yes - name: Bump version(prerelease, prepatch, preminor, premajor) if: ${{ inputs.type == 'prerelease' || inputs.type == 'prepatch' || inputs.type == 'preminor' || inputs.type == 'premajor' }} run: | - npx lerna version ${{ inputs.type }} -m "release(${{ inputs.type }}): %s" --preid canary --no-push --no-private --yes + npx lerna version ${{ inputs.type }} -m "release(${{ inputs.type }}): %s" --preid canary --no-push --yes - name: Set up environment variables run: echo "NEW_VERSION=$(node -p "require('./lerna.json').version")" >> $GITHUB_ENV diff --git a/.github/workflows/test-cross-platform.yml b/.github/workflows/test-cross-platform.yml index 1d691b7c..e35da9c6 100644 --- a/.github/workflows/test-cross-platform.yml +++ b/.github/workflows/test-cross-platform.yml @@ -37,7 +37,7 @@ jobs: - name: Build packages run: | mkdir packs - npm pack --workspaces --pack-destination packs + npm pack --workspace packages --pack-destination packs - name: Upload artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 719f1876..8c0f1ff3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,6 +37,4 @@ jobs: run: npm run coverage - name: Upload results to codecov - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} + uses: codecov/codecov-action@v5 diff --git a/.textlintrc.js b/.textlintrc.js new file mode 100644 index 00000000..ce8d982d --- /dev/null +++ b/.textlintrc.js @@ -0,0 +1,9 @@ +module.exports = { + rules: { + 'allowed-uris': { + disallowed: { + links: [/^\.\//], + }, + }, + }, +}; diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 51f62055..22ef6291 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,10 @@ # Contributing -This repository uses `npm workspaces` and `lerna` to maintain a **monorepo**. All packages are located in the `packages` directory, and the documentation can be found in the `docs` directory. +This repository uses [`npm workspaces`](https://docs.npmjs.com/cli/using-npm/workspaces) and [`lerna`](https://lerna.js.org/) to maintain a **monorepo**. + +## Directory Structure + +All packages are located in the `packages` directory, and the documentation can be found in the `docs` directory. ## Installation diff --git a/README.md b/README.md index 3c3e3252..c4c239b9 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,10 @@ Your support helps us improve and maintain the project. [![test-cross-platform](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/test-cross-platform.yml/badge.svg)](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/test-cross-platform.yml) [![codecov](https://codecov.io/gh/lumirlumir/npm-clang-format-node/graph/badge.svg?token=69BF05THA2)](https://codecov.io/gh/lumirlumir/npm-clang-format-node) +[![Maintainability](https://api.codeclimate.com/v1/badges/4bcedf673457b80b9b18/maintainability)](https://codeclimate.com/github/lumirlumir/npm-clang-format-node/maintainability) [![Static Badge](https://img.shields.io/badge/Official_Documentation-skyblue?style=flat&logo=gitbook&labelColor=gray)](https://clang-format-node.lumir.page) -Node repackaging(wrapping) of the **LLVM Clang's** `clang-format` and `git-clang-format` native binary inspired by ['angular/clang-format'](https://github.com/angular/clang-format).🐉 +Node wrapper for LLVM Clang's `clang-format` and `git-clang-format` native binaries inspired by [angular/clang-format](https://github.com/angular/clang-format).🐉 @@ -32,44 +33,60 @@ Node repackaging(wrapping) of the **LLVM Clang's** `clang-format` and `git-clang ## Included Packages -This repository is maintained as a **monorepo** and includes the following packages. +This repository is maintained as a **monorepo** and includes the following **three** packages. -1. `clang-format-node` [![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node): -Node repackaging of the `clang-format` native binary. (The **CORE** package.) [『Docs』](/docs/02-packages/01-clang-format-node.md), [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-node), [『npm』](https://www.npmjs.com/package/clang-format-node) +### `clang-format-node` [![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node) -1. `clang-format-git` [![NPM Version](https://img.shields.io/npm/v/clang-format-git)](https://www.npmjs.com/package/clang-format-git): Node repackaging of the `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. [『Docs』](/docs/02-packages/02-clang-format-git.md), [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git), [『npm』](https://www.npmjs.com/package/clang-format-git) +> [Docs](/docs/02-packages/01-clang-format-node.md) | [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-node) | [npm](https://www.npmjs.com/package/clang-format-node) -1. `clang-format-git-python` [![NPM Version](https://img.shields.io/npm/v/clang-format-git-python)](https://www.npmjs.com/package/clang-format-git-python): Node repackaging of the `git-clang-format` Python script. **This package requires Python3 as a dependency**. [『Docs』](/docs/02-packages/03-clang-format-git-python.md), [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git-python), [『npm』](https://www.npmjs.com/package/clang-format-git-python) +Node wrapper for `clang-format` native binary inspired by angular/clang-format. (The **CORE** package.) -## Supported +### `clang-format-git` [![NPM Version](https://img.shields.io/npm/v/clang-format-git)](https://www.npmjs.com/package/clang-format-git) -See the [supported](/docs/01-introduction/05-supported.md) documentation, which lists the supported 'OS Platforms and Architectures', 'Node.js Versions', 'GitHub Actions Runner Images', and 'Docker(Build) Images'. +> [Docs](/docs/02-packages/02-clang-format-git.md) | [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git) | [npm](https://www.npmjs.com/package/clang-format-git) -## Releases +Node wrapper for `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. -Each package intends to release a new npm package for every **latest** release of the `clang-format` and `git-clang-format`. It **checks** for the latest LLVM release every week, builds all packages using its own pipeline, and makes a pull request. **All processes are run automatically**. If you are interested in the build process, take a look at [`.github/workflows/llvm-build-bump-pr.yml`](/.github/workflows/llvm-build-bump-pr.yml). +### `clang-format-git-python` [![NPM Version](https://img.shields.io/npm/v/clang-format-git-python)](https://www.npmjs.com/package/clang-format-git-python) -## Contributing (Issues & Pull Requests) +> [Docs](/docs/02-packages/03-clang-format-git-python.md) | [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git-python) | [npm](https://www.npmjs.com/package/clang-format-git-python) -Thanks for having attention to this package🙇‍♂️. We appreciate you spending the time to work on these things. Every issue and pull request about bugs, suggestions and the other topics is always welcome! +Node wrapper for `git-clang-format` Python script. **This package requires Python3 as a dependency**. + +## Supported -Please read our [Code of Conduct](./CODE_OF_CONDUCT.md) and [Contributing Guides](/CONTRIBUTING.md) before you work on these things. We also recommend you to read the [Guides on LLVM and `clang-format`](docs/03-others/04-guides-on-llvm-and-clang-format.md) mentioned in the documentation before contributing. +See the [supported](/docs/01-introduction/05-supported.md) section of the documentation, which lists the following: + +- OS Platforms and Architectures +- Node.js Version +- GitHub Actions Runner Images +- Docker Build Images + +## Releases + +Each package intends to release a new npm package for every **latest** release of `clang-format` and `git-clang-format`. Automated GitHub Actions check for the latest LLVM release every week, builds all packages using their own pipeline, and makes a pull request. **All processes are automated**. If you are interested in the build process, take a look at [`.github/workflows/llvm-build-bump-pr.yml`](/.github/workflows/llvm-build-bump-pr.yml). ## Documentation For full documentation, see the [official documentation of the `clang-format-node`](https://clang-format-node.lumir.page) or [`docs` directory of `clang-format-node` repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/docs). -## Versioning +## Contributing (Issues & Pull Requests) -See [Versioning](/docs/04-community/02-versioning.md). +Thanks for having attention to this package🙇‍♂️. We appreciate you spending the time to work on these things. Every issue and pull request about bugs, suggestions and the other topics is always welcome! + +Please read our [Contributing](/CONTRIBUTING.md) Guides and [Code of Conduct](/CODE_OF_CONDUCT.md) before you work on these things. We also recommend you to read the [Guides on LLVM and `clang-format`](docs/03-others/04-guides-on-llvm-and-clang-format.md) mentioned in the documentation before contributing. + +## Code of Conduct + +See [Code of Conduct](/CODE_OF_CONDUCT.md). ## Change Log See [Change Log](/CHANGELOG.md). -## Code of Conduct +## Versioning -See [Code of Conduct](/CODE_OF_CONDUCT.md). +See [Versioning](/docs/04-community/02-versioning.md). ## Security diff --git a/SECURITY.md b/SECURITY.md index ef6f71ea..5b43f949 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,19 +2,20 @@ Some may have concerns about the security of binary files, but the following points should provide assurance about this project: -1. **First and foremost, we have no intention of harming anyone’s project.** +1. First and foremost, we have no intention of harming anyone’s project. -1. **Second, our build process is fully transparent.** You can review exactly how these binaries are built and track the pull requests showing their origins. +1. Second, our build processes are fully transparent. You can review exactly how these binaries are built and track the pull requests showing their origins. - See [`llvm-build-bump-pr.yml`](https://github.com/lumirlumir/npm-clang-format-node/blob/main/.github/workflows/llvm-build-bump-pr.yml). - - See the [Pull Request list](https://github.com/lumirlumir/npm-clang-format-node/pulls?q=is%3Apr+is%3Aclosed+llvm+build%28deps%29%3A+bump+LLVM). + - See the [Pull Request list on GitHub](https://github.com/lumirlumir/npm-clang-format-node/pulls?q=is%3Apr+is%3Aclosed+llvm+build%28deps%29%3A+bump+LLVM). -1. **Third,** when you run the command `clang-format --version`, you can verify the current **LLVM version**, **repository URL**, and **commit SHA**, as shown below: +1. Third, when you run the command `clang-format --version`, you can verify the current **LLVM version**, **repository URL**, and **commit SHA**, as shown below: ```bash clang-format version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) ``` + - `18.1.8`: The current LLVM version. - `https://github.com/llvm/llvm-project`: The Git repository URL for the LLVM project, which includes Clang. - `3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff`: The commit hash for the specific version used to build `clang-format`, allowing you to trace the source code exactly. diff --git a/SUMMARY.md b/SUMMARY.md index 7c2e9bb6..1f397ae5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -24,8 +24,8 @@ ## Community - [Contributing](/CONTRIBUTING.md) -- [Versioning](/docs/04-community/02-versioning.md) -- [Change Log](/CHANGELOG.md) - [Code of Conduct](/CODE_OF_CONDUCT.md) +- [Change Log](/CHANGELOG.md) +- [Versioning](/docs/04-community/02-versioning.md) - [Security](/SECURITY.md) - [License](/LICENSE.md) diff --git a/docs/01-introduction/03-why-we-started-this-project.md b/docs/01-introduction/03-why-we-started-this-project.md index f9f00313..7d2a7da8 100644 --- a/docs/01-introduction/03-why-we-started-this-project.md +++ b/docs/01-introduction/03-why-we-started-this-project.md @@ -1,8 +1,8 @@ # Why we started this project -['angular/clang-format'](https://github.com/angular/clang-format) is no longer maintained. (See [#79](https://github.com/angular/clang-format/issues/79) [#82](https://github.com/angular/clang-format/issues/82) [#83](https://github.com/angular/clang-format/pull/83).) Nevertheless, new versions of `clang-format` continue to be released. Bugs are fixed, and new features are added. However, using `clang-format` directly in a Node.js environment without any support can be somewhat cumbersome. So we decided to make a new, maintained version of it. +['angular/clang-format'](https://github.com/angular/clang-format) is no longer maintained (See [#79](https://github.com/angular/clang-format/issues/79) [#82](https://github.com/angular/clang-format/issues/82) [#83](https://github.com/angular/clang-format/pull/83)). Nevertheless, new versions of `clang-format` continue to be released. Bugs are fixed, and new features are added. However, using `clang-format` directly in a Node.js environment without any support can be somewhat cumbersome. So we decided to make a new, maintained version of it. -And also, `git-clang-format` relies on **Python3**, so if you haven't installed Python, they cannot be executed. Many people would prefer if this package worked without dependencies beyond Node.js. **So, this package relies only on Node.js.** However, for the compatability with previous users of ['angular/clang-format'](https://github.com/angular/clang-format) and those who prefer to use this package with Python3, alternative options for using `git-clang-format` are also provided. +And also, `git-clang-format` relies on **Python3**, so if you haven't installed Python, they cannot be executed. Many people would prefer if this package worked without dependencies beyond Node.js. **So, this package relies only on Node.js.** However, for the compatability with previous users of [angular/clang-format](https://github.com/angular/clang-format) and those who prefer to use this package with Python3, alternative options for using `git-clang-format` are also provided. To add a bit more explanation, one package is [`clang-format-git`](https://www.npmjs.com/package/clang-format-git), which works without a Python3 dependency, while the other is [`clang-format-git-python`](https://www.npmjs.com/package/clang-format-git-python), which requires Python3. The only difference between them is the size. `clang-format-git` package is larger. diff --git a/docs/01-introduction/04-getting-started.md b/docs/01-introduction/04-getting-started.md index 211e7dc5..9bedcbe4 100644 --- a/docs/01-introduction/04-getting-started.md +++ b/docs/01-introduction/04-getting-started.md @@ -191,21 +191,21 @@ See the [Usage section of `clang-format-git-python`](../02-packages/03-clang-for npx git-clang-format --help ``` -## APIs +## Node.js APIs Each package also supports JSDoc type hints with the following APIs, so you’ll see more detailed information directly in your code editor. ### `clang-format-node` -See the [APIs section of `clang-format-node`](../02-packages/01-clang-format-node.md#apis). +See the [APIs section of `clang-format-node`](../02-packages/01-clang-format-node.md#nodejs-apis). ### `clang-format-git` -See the [APIs section of `clang-format-git`](../02-packages/02-clang-format-git.md#apis). +See the [APIs section of `clang-format-git`](../02-packages/02-clang-format-git.md#nodejs-apis). ### `clang-format-git-python` -See the [APIs section of `clang-format-git-python`](../02-packages/03-clang-format-git-python.md#apis). +See the [APIs section of `clang-format-git-python`](../02-packages/03-clang-format-git-python.md#nodejs-apis). ## [`.clang-format-ignore`](https://clang.llvm.org/docs/ClangFormat.html#clang-format-ignore) diff --git a/docs/01-introduction/05-supported.md b/docs/01-introduction/05-supported.md index 943ec969..95b1cf4b 100644 --- a/docs/01-introduction/05-supported.md +++ b/docs/01-introduction/05-supported.md @@ -1,6 +1,6 @@ # Supported -The following content applies to all packages within the [`clang-format-node`](https://github.com/lumirlumir/npm-clang-format-node) repository. +The following content applies to all packages within [`clang-format-node`](https://github.com/lumirlumir/npm-clang-format-node) repository. ## OS Platforms and Architectures @@ -31,7 +31,7 @@ Each package supports **ALL** [**Tier1**](https://github.com/nodejs/node/blob/ma > - `clang+llvm-18.1.8-x86_64-pc-windows-msvc.tar.xz` > - and more... -## Node.js +## Node.js Version ![Node Current](https://img.shields.io/node/v/clang-format-node) @@ -63,7 +63,7 @@ Image | YAML Label | Included Software | ~~Ubuntu 20.04~~ | `ubuntu-20.04` | [ubuntu-20.04] | ~~Windows Server 2019~~ | `windows-2019` | [windows-2019] | -## Docker(Build) Images +## Docker Build Images We used the following Images to build `clang-format` excuatable binaries. diff --git a/docs/02-packages/01-clang-format-node.md b/docs/02-packages/01-clang-format-node.md index c8012212..4ba1aeb9 100644 --- a/docs/02-packages/01-clang-format-node.md +++ b/docs/02-packages/01-clang-format-node.md @@ -1,12 +1,15 @@ # `clang-format-node` -[![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node) [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-node), [『npm』](https://www.npmjs.com/package/clang-format-node) +[![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node) +![Node Current](https://img.shields.io/node/v/clang-format-node) -Node repackaging of the `clang-format` native binary. (The **CORE** package.) +> [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-node) | [npm](https://www.npmjs.com/package/clang-format-node) + +Node wrapper for `clang-format` native binary inspired by angular/clang-format. (The **CORE** package.) ## Installation -If you want to use `clang-format` without `git-clang-format`, simply follow the installation guide below. If you need `git-clang-format`, refer to the [`clang-format-git`](./02-clang-format-git.md) or [`clang-format-git-python`](./03-clang-format-git-python.md). +If you want to use `clang-format` without `git-clang-format`, simply follow the installation guide below. If you need `git-clang-format`, refer to the [`clang-format-git`](02-clang-format-git.md) or [`clang-format-git-python`](03-clang-format-git-python.md). ### global @@ -58,16 +61,31 @@ npx clang-format npx clang-format-node ``` -## APIs +## Node.js APIs -```javascript -const { - clangFormatPath, - clangFormatNodePath, - getClangFormatPath, - getClangFormatNodePath -} = require('clang-format-node'); -``` +These APIs depends on the Node.js `fs` and `path` module and the file system, so you cannot use it in browsers. + +- CommonJS + + ```javascript + const { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath + } = require('clang-format-node'); + ``` + +- ES Modules + + ```javascript + import { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath + } from 'clang-format-node'; + ``` ### `clangFormatPath` @@ -75,8 +93,8 @@ The ABSOLUTE path to the `clang-format` executable binary based on the OS platfo #### Alias and Version -- **Alias**: `clangFormatNodePath`. See [`clangFormatNodePath`](#clangformatnodepath). -- **Version**: `v1.2.0` Initial release. +- Alias: `clangFormatNodePath`. See [`clangFormatNodePath`](#clangformatnodepath). +- Version: `v1.2.0` Initial release. ### `clangFormatNodePath` @@ -84,8 +102,8 @@ Alias for `clangFormatPath`. #### Alias and Version -- **Alias**: `clangFormatPath`. See [`clangFormatPath`](#clangformatpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `clangFormatPath`. See [`clangFormatPath`](#clangformatpath). +- Version: `v1.2.0` Initial release. ### `getClangFormatPath` @@ -97,21 +115,21 @@ Throws an error if the executable is not found. #### Parameters -- **osPlatform** (`string`): The current operating system platform. (e.g., `darwin`, `linux`, `win32`) -- **architecture** (`string`): The current system architecture. (e.g., `arm`, `arm64`, `ppc64`, `s390x`, `x64`) +- osPlatform (`string`): The current operating system platform. (e.g., `darwin`, `linux`, `win32`) +- architecture (`string`): The current system architecture. (e.g., `arm`, `arm64`, `ppc64`, `s390x`, `x64`) #### Returns -- **`string`**: The absolute path to the `clang-format` executable binary. +- `string`: The absolute path to the `clang-format` executable binary. #### Throws -- **`Error`**: Throws an error if the executable binary is not found for the specified OS platform and architecture. +- `Error`: Throws an error if the executable binary is not found for the specified OS platform and architecture. #### Alias and Version -- **Alias**: `getClangFormatNodePath`. See [`getClangFormatNodePath`](#getclangformatnodepath). -- **Version**: `v1.2.0` Initial release. +- Alias: `getClangFormatNodePath`. See [`getClangFormatNodePath`](#getclangformatnodepath). +- Version: `v1.2.0` Initial release. ### `getClangFormatNodePath` @@ -119,5 +137,5 @@ Alias for `getClangFormatPath`. #### Alias and Version -- **Alias**: `getClangFormatPath`. See [`getClangFormatPath`](#getclangformatpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `getClangFormatPath`. See [`getClangFormatPath`](#getclangformatpath). +- Version: `v1.2.0` Initial release. diff --git a/docs/02-packages/02-clang-format-git.md b/docs/02-packages/02-clang-format-git.md index 474fbb96..c43bea6e 100644 --- a/docs/02-packages/02-clang-format-git.md +++ b/docs/02-packages/02-clang-format-git.md @@ -1,8 +1,11 @@ # `clang-format-git` -[![NPM Version](https://img.shields.io/npm/v/clang-format-git)](https://www.npmjs.com/package/clang-format-git) [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git), [『npm』](https://www.npmjs.com/package/clang-format-git) +[![NPM Version](https://img.shields.io/npm/v/clang-format-git)](https://www.npmjs.com/package/clang-format-git) +![Node Current](https://img.shields.io/node/v/clang-format-git) -Node repackaging of the `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. +> [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git) | [npm](https://www.npmjs.com/package/clang-format-git) + +Node wrapper for `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. ## Installation @@ -58,16 +61,31 @@ npx git-clang-format npx clang-format-git ``` -## APIs +## Node.js APIs -```javascript -const { - gitClangFormatPath, - clangFormatGitPath, - getGitClangFormatPath, - getClangFormatGitPath, -} = require('clang-format-git'); -``` +These APIs depends on the Node.js `fs` and `path` module and the file system, so you cannot use it in browsers. + +- CommonJS + + ```javascript + const { + gitClangFormatPath, + clangFormatGitPath, + getGitClangFormatPath, + getClangFormatGitPath, + } = require('clang-format-git'); + ``` + +- ES Modules + + ```javascript + import { + gitClangFormatPath, + clangFormatGitPath, + getGitClangFormatPath, + getClangFormatGitPath, + } from 'clang-format-git'; + ``` ### `gitClangFormatPath` @@ -75,8 +93,8 @@ The ABSOLUTE path to the `git-clang-format` executable binary based on the OS pl #### Alias and Version -- **Alias**: `clangFormatGitPath`. See [`clangFormatGitPath`](#clangformatgitpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `clangFormatGitPath`. See [`clangFormatGitPath`](#clangformatgitpath). +- Version: `v1.2.0` Initial release. ### `clangFormatGitPath` @@ -84,8 +102,8 @@ Alias for `gitClangFormatPath`. #### Alias and Version -- **Alias**: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). +- Version: `v1.2.0` Initial release. ### `getGitClangFormatPath` @@ -97,21 +115,21 @@ Throws an error if the executable is not found. #### Parameters -- **osPlatform** (`string`): The current operating system platform. (e.g., `darwin`, `linux`, `win32`) -- **architecture** (`string`): The current system architecture. (e.g., `arm`, `arm64`, `ppc64`, `s390x`, `x64`) +- osPlatform (`string`): The current operating system platform. (e.g., `darwin`, `linux`, `win32`) +- architecture (`string`): The current system architecture. (e.g., `arm`, `arm64`, `ppc64`, `s390x`, `x64`) #### Returns -- **`string`**: The absolute path to the `git-clang-format` executable binary. +- `string`: The absolute path to the `git-clang-format` executable binary. #### Throws -- **`Error`**: Throws an error if the executable binary is not found for the specified OS platform and architecture. +- `Error`: Throws an error if the executable binary is not found for the specified OS platform and architecture. #### Alias and Version -- **Alias**: `getClangFormatGitPath`. See [`getClangFormatGitPath`](#getclangformatgitpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `getClangFormatGitPath`. See [`getClangFormatGitPath`](#getclangformatgitpath). +- Version: `v1.2.0` Initial release. ### `getClangFormatGitPath` @@ -119,5 +137,5 @@ Alias for `getGitClangFormatPath`. #### Alias and Version -- **Alias**: `getGitClangFormatPath`. See [`getGitClangFormatPath`](#getgitclangformatpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `getGitClangFormatPath`. See [`getGitClangFormatPath`](#getgitclangformatpath). +- Version: `v1.2.0` Initial release. diff --git a/docs/02-packages/03-clang-format-git-python.md b/docs/02-packages/03-clang-format-git-python.md index 8cc67e0e..c171250b 100644 --- a/docs/02-packages/03-clang-format-git-python.md +++ b/docs/02-packages/03-clang-format-git-python.md @@ -1,8 +1,11 @@ # `clang-format-git-python` -[![NPM Version](https://img.shields.io/npm/v/clang-format-git-python)](https://www.npmjs.com/package/clang-format-git-python) [『Repository』](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git-python), [『npm』](https://www.npmjs.com/package/clang-format-git-python) +[![NPM Version](https://img.shields.io/npm/v/clang-format-git-python)](https://www.npmjs.com/package/clang-format-git-python) +![Node Current](https://img.shields.io/node/v/clang-format-git-python) -Node repackaging of the `git-clang-format` Python script. **This package requires Python3 as a dependency**. (This package doesn’t include binaries.) +> [Repository](https://github.com/lumirlumir/npm-clang-format-node/tree/main/packages/clang-format-git-python) | [npm](https://www.npmjs.com/package/clang-format-git-python) + +Node wrapper for `git-clang-format` Python script. **This package requires Python3 as a dependency**. ## Installation @@ -58,26 +61,39 @@ npx git-clang-format npx clang-format-git-python ``` -## APIs +## Node.js APIs -```javascript -const { - gitClangFormatPath, - clangFormatGitPythonPath, -} = require('clang-format-git-python'); -``` +These APIs depends on the Node.js `fs` and `path` module and the file system, so you cannot use it in browsers. + +- CommonJS + + ```javascript + const { + gitClangFormatPath, + clangFormatGitPythonPath, + } = require('clang-format-git-python'); + ``` + +- ES Modules + + ```javascript + import { + gitClangFormatPath, + clangFormatGitPythonPath, + } from 'clang-format-git-python'; + ``` ### `gitClangFormatPath` The ABSOLUTE path to the [`git-clang-format`](https://github.com/lumirlumir/npm-clang-format-node/blob/main/packages/clang-format-git-python/src/script/git-clang-format) Python script. -- **Type**: `string` -- **Alias**: `clangFormatGitPythonPath`. See [`clangFormatGitPythonPath`](#clangformatgitpythonpath). -- **Version**: `v1.2.0` Initial release. +- Type: `string` +- Alias: `clangFormatGitPythonPath`. See [`clangFormatGitPythonPath`](#clangformatgitpythonpath). +- Version: `v1.2.0` Initial release. ### `clangFormatGitPythonPath` Alias for `gitClangFormatPath`. -- **Alias**: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). -- **Version**: `v1.2.0` Initial release. +- Alias: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). +- Version: `v1.2.0` Initial release. diff --git a/docs/03-others/03-build-process.md b/docs/03-others/03-build-process.md index 4538db06..76e6552a 100644 --- a/docs/03-others/03-build-process.md +++ b/docs/03-others/03-build-process.md @@ -26,4 +26,4 @@ build/bin/clang-format --version Some packages for **cross-compilation** have been deprecated, making it difficult to make build processes directly, so **cross-compilation** is not used. Instead, I utilize **QEMU** and **Docker** to build cross-compiled binaries. -If you want to learn more about the images I used, see [Docker(Build) Images](../01-introduction/05-supported.md/#dockerbuild-images). +If you want to learn more about the images I used, see [Docker Build Images](../01-introduction/05-supported.md/#docker-build-images). diff --git a/docs/04-community/04-code-of-conduct.md b/docs/04-community/02-code-of-conduct.md similarity index 100% rename from docs/04-community/04-code-of-conduct.md rename to docs/04-community/02-code-of-conduct.md diff --git a/docs/04-community/02-versioning.md b/docs/04-community/04-versioning.md similarity index 89% rename from docs/04-community/02-versioning.md rename to docs/04-community/04-versioning.md index bf79d8fd..97744b00 100644 --- a/docs/04-community/02-versioning.md +++ b/docs/04-community/04-versioning.md @@ -4,6 +4,6 @@ This project adheres to [Semantic Versioning](https://semver.org/). The BREAKING CHANGES, features and bug fixes from [LLVM](https://github.com/llvm/llvm-project/releases) will be reflected in this package. -In addition to version updates that correspond to the LLVM version upgrade, the version will also increment based on the BREAKING CHANGES, addition of new features or bug fixes in the package. +In addition to version updates that correspond to the LLVM version upgrade, the version will also increment based on the BREAKING CHANGES, addition of new features or bug fixes in this package. The release title includes the LLVM version, like `v1.0.0 (llvmorg-18.1.8)`. See [`.clang-format-version`](https://github.com/lumirlumir/npm-clang-format-node/blob/main/.clang-format-version) to check the exact current LLVM version. diff --git a/examples/clang-format/.clang-format b/examples/clang-format/.clang-format new file mode 100644 index 00000000..1516991e --- /dev/null +++ b/examples/clang-format/.clang-format @@ -0,0 +1,2 @@ +BasedOnStyle: Google +ColumnLimit: 90 diff --git a/examples/clang-format/README.md b/examples/clang-format/README.md new file mode 100644 index 00000000..57f7bff3 --- /dev/null +++ b/examples/clang-format/README.md @@ -0,0 +1,23 @@ +# `clang-format` Example + +This `clang-format` example is provided to showcase the features included in `clang-format`. + +To see which commands are available, check the `scripts` property in `package.json`. + +## Running a Command + +For example, to run the `unformatted:cpp:dry-run` command: + +- From the root directory (`/`) + + ```bash + npm run unformatted:cpp:dry-run -w examples/clang-format + ``` + +- From the `examples/clang-format` directory (`/examples/clang-format`) + + ```bash + cd examples/clang-format + + npm run unformatted:cpp:dry-run + ``` diff --git a/examples/clang-format/package.json b/examples/clang-format/package.json new file mode 100644 index 00000000..8fc4f998 --- /dev/null +++ b/examples/clang-format/package.json @@ -0,0 +1,18 @@ +{ + "private": true, + "name": "examples-clang-format", + "version": "1.2.2", + "scripts": { + "formatted:c": "npx clang-format src/formatted.c", + "formatted:c:dry-run": "npx clang-format -Werror -n src/formatted.c", + "formatted:cpp": "npx clang-format src/formatted.cpp", + "formatted:cpp:dry-run": "npx clang-format -Werror -n src/formatted.cpp", + "unformatted:c": "npx clang-format src/unformatted.c", + "unformatted:c:dry-run": "npx clang-format -Werror -n src/unformatted.c", + "unformatted:cpp": "npx clang-format src/unformatted.cpp", + "unformatted:cpp:dry-run": "npx clang-format -Werror -n src/unformatted.cpp" + }, + "dependencies": { + "clang-format-node": "^1.2.2" + } +} diff --git a/examples/clang-format/src/formatted.c b/examples/clang-format/src/formatted.c new file mode 100644 index 00000000..533f52b5 --- /dev/null +++ b/examples/clang-format/src/formatted.c @@ -0,0 +1,12 @@ +// Simple Addition Formatted. + +#include + +int main(void) { + int a, b; + + scanf("%d %d", &a, &b); + printf("%d", a + b); + + return 0; +} diff --git a/examples/clang-format/src/formatted.cpp b/examples/clang-format/src/formatted.cpp new file mode 100644 index 00000000..3d4afaab --- /dev/null +++ b/examples/clang-format/src/formatted.cpp @@ -0,0 +1,12 @@ +// Simple Addition Formatted. + +#include + +int main(void) { + int a, b; + + std::cin >> a >> b; + std::cout << (a + b); + + return 0; +} diff --git a/examples/clang-format/src/unformatted.c b/examples/clang-format/src/unformatted.c new file mode 100644 index 00000000..c86cdd1d --- /dev/null +++ b/examples/clang-format/src/unformatted.c @@ -0,0 +1,12 @@ +// Simple Addition Unformatted. + +#include + +int main(void) { + int a, b; + + scanf("%d %d", &a, &b); + printf("%d", a + b); + + return 0; +} diff --git a/examples/clang-format/src/unformatted.cpp b/examples/clang-format/src/unformatted.cpp new file mode 100644 index 00000000..aea39675 --- /dev/null +++ b/examples/clang-format/src/unformatted.cpp @@ -0,0 +1,12 @@ +// Simple Addition Unformatted. + +#include + +int main(void) { + int a, b; + + std::cin >> a >> b; + std::cout << (a + b); + + return 0; +} diff --git a/lerna.json b/lerna.json index 83741c3f..839cee50 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "1.2.1" + "version": "1.2.2" } diff --git a/lint-staged.config.js b/lint-staged.config.js new file mode 100644 index 00000000..33eadac4 --- /dev/null +++ b/lint-staged.config.js @@ -0,0 +1,8 @@ +module.exports = { + '*': [ + 'npx prettier --check', + 'npx editorconfig-checker -config .editorconfig-checker.json', + ], + '*.js': 'npx eslint', + '*.md': ['npx markdownlint', 'npx textlint -f pretty-error'], +}; diff --git a/package-lock.json b/package-lock.json index 3661427c..03a3a355 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,9 @@ "packages": { "": { "workspaces": [ - "packages/*" + "examples/*", + "packages/*", + "tests/*" ], "devDependencies": { "@babel/cli": "^7.24.8", @@ -17,16 +19,31 @@ "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-prettier": "^5.2.1", "husky": "^9.1.5", "lerna": "^8.1.9", "lint-staged": "^15.2.10", - "markdownlint-cli": "^0.42.0", + "markdownlint-cli": "^0.43.0", "nyc": "^17.0.0", "prettier": "^3.3.3", + "textlint": "^14.3.0", + "textlint-rule-allowed-uris": "^1.0.6", "typescript": "^5.6.3" } }, + "examples/clang-format": { + "name": "examples-clang-format", + "version": "1.2.2", + "dependencies": { + "clang-format-node": "^1.2.2" + } + }, + "examples/git-clang-format": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -41,6 +58,23 @@ "node": ">=6.0.0" } }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, "node_modules/@babel/cli": { "version": "7.25.9", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.25.9.tgz", @@ -3602,19 +3636,6 @@ "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -3708,6 +3729,329 @@ "dev": true, "license": "MIT" }, + "node_modules/@textlint/ast-node-types": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/ast-tester": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz", + "integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "debug": "^4.3.4" + } + }, + "node_modules/@textlint/ast-traverse": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz", + "integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/config-loader": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz", + "integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/kernel": "^14.4.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "rc-config-loader": "^4.1.3" + } + }, + "node_modules/@textlint/feature-flag": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz", + "integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/fixer-formatter": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz", + "integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "diff": "^5.2.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/fixer-formatter/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@textlint/fixer-formatter/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/fixer-formatter/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/fixer-formatter/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/kernel": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz", + "integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "@textlint/ast-tester": "^14.4.0", + "@textlint/ast-traverse": "^14.4.0", + "@textlint/feature-flag": "^14.4.0", + "@textlint/source-code-fixer": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "fast-equals": "^4.0.3", + "structured-source": "^4.0.0" + } + }, + "node_modules/@textlint/linter-formatter": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz", + "integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", + "chalk": "^4.1.2", + "debug": "^4.3.4", + "js-yaml": "^3.14.1", + "lodash": "^4.17.21", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/markdown-to-ast": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz", + "integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "debug": "^4.3.4", + "mdast-util-gfm-autolink-literal": "^0.1.3", + "neotraverse": "^0.6.15", + "remark-footnotes": "^3.0.0", + "remark-frontmatter": "^3.0.0", + "remark-gfm": "^1.0.0", + "remark-parse": "^9.0.0", + "unified": "^9.2.2" + } + }, + "node_modules/@textlint/module-interop": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz", + "integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz", + "integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/source-code-fixer": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz", + "integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/types": "^14.4.0", + "debug": "^4.3.4" + } + }, + "node_modules/@textlint/text-to-ast": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz", + "integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/textlint-plugin-markdown": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz", + "integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/markdown-to-ast": "^14.4.0" + } + }, + "node_modules/@textlint/textlint-plugin-text": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz", + "integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/text-to-ast": "^14.4.0" + } + }, + "node_modules/@textlint/types": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz", + "integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0" + } + }, + "node_modules/@textlint/utils": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz", + "integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==", + "dev": true, + "license": "MIT" + }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -3775,6 +4119,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -3796,6 +4150,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -4203,6 +4564,16 @@ "node": ">=0.10.0" } }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -4287,6 +4658,17 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -4378,6 +4760,20 @@ "readable-stream": "^3.4.0" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4730,6 +5126,17 @@ } ] }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", @@ -4747,6 +5154,39 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -4754,6 +5194,60 @@ "dev": true, "license": "MIT" }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -5458,9 +5952,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -5472,6 +5966,46 @@ "node": ">= 8" } }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -5748,6 +6282,16 @@ "node": ">=4" } }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -5784,6 +6328,65 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -5896,6 +6499,33 @@ "iconv-lite": "^0.6.2" } }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -6357,37 +6987,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -6575,6 +7174,10 @@ "dev": true, "license": "MIT" }, + "node_modules/examples-clang-format": { + "resolved": "examples/clang-format", + "link": true + }, "node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -6606,6 +7209,13 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -6641,12 +7251,12 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", "dev": true, - "license": "Apache-2.0" + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.2", @@ -6679,6 +7289,13 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -6689,6 +7306,20 @@ "reusify": "^1.0.4" } }, + "node_modules/fault": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", + "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "dev": true, + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -6914,6 +7545,15 @@ "node": ">= 6" } }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/fromentries": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", @@ -7282,16 +7922,13 @@ } }, "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, "node_modules/get-stream": { @@ -7739,6 +8376,26 @@ "dev": true, "license": "MIT" }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -8216,6 +8873,32 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -8284,6 +8967,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -8358,6 +9048,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -8410,6 +9111,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", @@ -8486,6 +9198,16 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -8633,6 +9355,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -9858,6 +10587,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -9987,6 +10723,17 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -10075,14 +10822,28 @@ "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/markdownlint": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.35.0.tgz", - "integrity": "sha512-wgp8yesWjFBL7bycA3hxwHRdsZGJhjhyP1dSxKVKrza0EPFYtn+mHtkVy6dvP1kGSjovyG5B8yNP6Frj0UFUJg==", + "node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdownlint": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.36.1.tgz", + "integrity": "sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==", "dev": true, "dependencies": { "markdown-it": "14.1.0", - "markdownlint-micromark": "0.1.10" + "markdownlint-micromark": "0.1.12" }, "engines": { "node": ">=18" @@ -10092,22 +10853,21 @@ } }, "node_modules/markdownlint-cli": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.42.0.tgz", - "integrity": "sha512-AjkzhhZa3TmEGi/CE2Wpmny69x1IrzqK2gPB0k8SmNMRgnSAJfyEO5FgZdWTHtJ6Nrdv5FWt5c4C5pkG6Dk30A==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.43.0.tgz", + "integrity": "sha512-6vwurKK4B21eyYzwgX6ph13cZS7hE6LZfcS8QyD722CyxVD2RtAvbZK2p7k+FZbbKORulEuwl+hJaEq1l6/hoQ==", "dev": true, "dependencies": { "commander": "~12.1.0", - "get-stdin": "~9.0.0", "glob": "~11.0.0", "ignore": "~6.0.2", "js-yaml": "^4.1.0", "jsonc-parser": "~3.3.1", "jsonpointer": "5.0.1", - "markdownlint": "~0.35.0", + "markdownlint": "~0.36.1", "minimatch": "~10.0.1", "run-con": "~1.3.2", - "smol-toml": "~1.3.0" + "smol-toml": "~1.3.1" }, "bin": { "markdownlint": "markdownlint.js" @@ -10199,9 +10959,9 @@ } }, "node_modules/markdownlint-micromark": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.10.tgz", - "integrity": "sha512-no5ZfdqAdWGxftCLlySHSgddEjyW4kui4z7amQcGsSKfYC5v/ou+8mIQVyg9KQMeEZLNtz9OPDTj7nnTnoR4FQ==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.12.tgz", + "integrity": "sha512-RlB6EwMGgc0sxcIhOQ2+aq7Zw1V2fBnzbXKGgYK/mVWdT7cz34fteKSwfYeo4rL6+L/q2tyC9QtD/PgZbkdyJQ==", "dev": true, "engines": { "node": ">=18" @@ -10210,6 +10970,201 @@ "url": "https://github.com/sponsors/DavidAnson" } }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", + "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^4.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-footnote": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz", + "integrity": "sha512-QxNdO8qSxqbO2e3m09KwDKfWiLgqyCurdWTQ198NpbZ2hxntdc+VKS4fDJCmNWbAroUdYnSthu+XbZ8ovh8C3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0", + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", + "integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", + "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm-autolink-literal": "^0.1.0", + "mdast-util-gfm-strikethrough": "^0.2.0", + "mdast-util-gfm-table": "^0.1.0", + "mdast-util-gfm-task-list-item": "^0.1.0", + "mdast-util-to-markdown": "^0.6.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", + "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ccount": "^1.0.0", + "mdast-util-find-and-replace": "^1.1.0", + "micromark": "^2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", + "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", + "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-table": "^2.0.0", + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", + "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "~0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", + "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", @@ -10474,6 +11429,141 @@ "node": ">= 8" } }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromark-extension-footnote": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz", + "integrity": "sha512-gr/BeIxbIWQoUm02cIfK7mdMZ/fbroRpLsck4kvFtjbzP4yi+OPVbnukTc/zy0i7spC2xYE/dbX1Sur8BEDJsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", + "integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fault": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", + "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0", + "micromark-extension-gfm-autolink-literal": "~0.5.0", + "micromark-extension-gfm-strikethrough": "~0.6.5", + "micromark-extension-gfm-table": "~0.4.0", + "micromark-extension-gfm-tagfilter": "~0.3.0", + "micromark-extension-gfm-task-list-item": "~0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", + "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", + "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", + "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", + "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", + "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "~2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -10859,6 +11949,16 @@ "dev": true, "license": "MIT" }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -11299,6 +12399,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nx": { "version": "20.0.7", "resolved": "https://registry.npmjs.org/nx/-/nx-20.0.7.tgz", @@ -12344,6 +13457,25 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12397,6 +13529,46 @@ "parse-path": "^7.0.0" } }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -12459,6 +13631,13 @@ "node": "20 || >=22" } }, + "node_modules/path-to-glob-pattern": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-to-glob-pattern/-/path-to-glob-pattern-2.0.1.tgz", + "integrity": "sha512-tmciSlVyHnX0LC86+zSr+0LURw9rDPw8ilhXcmTpVUOnI6OsKdCzXQs5fTG10Bjz26IBdnKL3XIaP+QvGsk5YQ==", + "dev": true, + "license": "MIT" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -12512,15 +13691,38 @@ "node": ">=6" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, "engines": { "node": ">=8" } @@ -12581,6 +13783,13 @@ "node": ">=8" } }, + "node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -12616,9 +13825,9 @@ } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz", + "integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==", "dev": true, "license": "MIT", "bin": { @@ -12631,19 +13840,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -12830,6 +14026,19 @@ "node": ">=8" } }, + "node_modules/rc-config-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", + "require-from-string": "^2.0.2" + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -13222,6 +14431,75 @@ "node": ">=4" } }, + "node_modules/remark-footnotes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-3.0.0.tgz", + "integrity": "sha512-ZssAvH9FjGYlJ/PBVKdSmfyPc3Cz4rTWgZLI4iE/SX8Nt5l3o3oEjv3wwG5VD7xOjktzdwp5coac+kJV9l4jgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-footnote": "^0.1.0", + "micromark-extension-footnote": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", + "integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-frontmatter": "^0.2.0", + "micromark-extension-frontmatter": "^0.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", + "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-gfm": "^0.1.0", + "micromark-extension-gfm": "^0.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", + "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -13232,6 +14510,16 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -13692,9 +14980,9 @@ } }, "node_modules/smol-toml": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.0.tgz", - "integrity": "sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz", + "integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==", "dev": true, "engines": { "node": ">= 18" @@ -14128,6 +15416,16 @@ "node": ">=4" } }, + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14154,21 +15452,95 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/tar": { @@ -14274,6 +15646,18 @@ "node": ">=8" } }, + "node_modules/tests-integration-api-cjs": { + "resolved": "tests/integration-api-cjs", + "link": true + }, + "node_modules/tests-integration-api-esm": { + "resolved": "tests/integration-api-esm", + "link": true + }, + "node_modules/tests-integration-binaries-permission": { + "resolved": "tests/integration-binaries-permission", + "link": true + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -14291,101 +15675,483 @@ "dev": true, "license": "MIT" }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node_modules/textlint": { + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz", + "integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "^14.4.0", + "@textlint/ast-traverse": "^14.4.0", + "@textlint/config-loader": "^14.4.0", + "@textlint/feature-flag": "^14.4.0", + "@textlint/fixer-formatter": "^14.4.0", + "@textlint/kernel": "^14.4.0", + "@textlint/linter-formatter": "^14.4.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/textlint-plugin-markdown": "^14.4.0", + "@textlint/textlint-plugin-text": "^14.4.0", + "@textlint/types": "^14.4.0", + "@textlint/utils": "^14.4.0", + "debug": "^4.3.4", + "file-entry-cache": "^5.0.1", + "get-stdin": "^5.0.1", + "glob": "^10.4.5", + "md5": "^2.3.0", + "mkdirp": "^0.5.6", + "optionator": "^0.9.3", + "path-to-glob-pattern": "^2.0.1", + "rc-config-loader": "^4.1.3", + "read-pkg": "^1.1.0", + "read-pkg-up": "^3.0.0", + "structured-source": "^4.0.0", + "unique-concat": "^0.2.2" + }, + "bin": { + "textlint": "bin/textlint.js" + }, + "engines": { + "node": ">=18.14.0" } }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/textlint-rule-allowed-uris": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/textlint-rule-allowed-uris/-/textlint-rule-allowed-uris-1.0.6.tgz", + "integrity": "sha512-R6HF+S439t76RqkIeRHIbL8BQPlR3YBVnMea1iS/FvnEGwgDlDhuVU+nerJJUK/TQJFqdEin1MxJK2oIHwHSAg==", "dev": true, "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "ansi-colors": "^4.1.3", + "axios": "^1.7.4", + "cheerio": "^1.0.0", + "mime-types": "^2.1.35" + }, + "peerDependencies": { + "textlint": "^14.0.4" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/textlint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "balanced-match": "^1.0.0" } }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/textlint/node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "license": "MIT", + "dependencies": { + "flat-cache": "^2.0.1" + }, "engines": { - "node": ">=14.14" + "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/textlint/node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "engines": { - "node": ">=8.0" + "node": ">=4" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/textlint/node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "node_modules/textlint/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, - "license": "MIT", - "bin": { + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/textlint/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/textlint/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/textlint/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/textlint/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/textlint/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/textlint/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/textlint/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/textlint/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/textlint/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/textlint/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/textlint/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/textlint/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/textlint/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/textlint/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/textlint/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/textlint/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/textlint/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/textlint/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/textlint/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { "tree-kill": "cli.js" } }, @@ -14409,6 +16175,17 @@ "node": ">=8" } }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -14585,11 +16362,10 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -14634,6 +16410,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", @@ -14674,6 +16460,56 @@ "node": ">=4" } }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-concat": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz", + "integrity": "sha512-nFT3frbsvTa9rrc71FJApPqXF8oIhVHbX3IWgObQi1mF7WrW48Ys70daL7o4evZUtmUf6Qn6WK0LbHhyO0hpXw==", + "dev": true, + "license": "MIT" + }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", @@ -14700,6 +16536,46 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universal-user-agent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", @@ -14807,6 +16683,62 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/walk-up-path": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", @@ -14831,6 +16763,42 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -15075,6 +17043,19 @@ "dev": true, "license": "ISC" }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -15157,6 +17138,19 @@ "node": ">=6" } }, + "node_modules/write/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -15281,12 +17275,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "packages/clang-format-git": { - "version": "1.2.1", + "version": "1.2.2", "hasInstallScript": true, "license": "MIT", "dependencies": { - "clang-format-node": "^1.2.1" + "clang-format-node": "^1.2.2" }, "bin": { "clang-format-git": "build/cli.js", @@ -15297,11 +17302,11 @@ } }, "packages/clang-format-git-python": { - "version": "1.2.1", + "version": "1.2.2", "hasInstallScript": true, "license": "MIT", "dependencies": { - "clang-format-node": "^1.2.1" + "clang-format-node": "^1.2.2" }, "bin": { "clang-format-git-python": "build/cli.js", @@ -15312,7 +17317,7 @@ } }, "packages/clang-format-node": { - "version": "1.2.1", + "version": "1.2.2", "hasInstallScript": true, "license": "MIT", "bin": { @@ -15322,6 +17327,73 @@ "engines": { "node": ">=16" } + }, + "tests/integration-api-cjs": { + "name": "tests-integration-api-cjs", + "version": "1.2.2", + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } + }, + "tests/integration-api-esm": { + "name": "tests-integration-api-esm", + "version": "1.2.2", + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } + }, + "tests/integration-binaries-perimission": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1", + "clang-format-node": "^1.2.1" + } + }, + "tests/integration-binaries-permission": { + "name": "tests-integration-binaries-permission", + "version": "1.2.2", + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } + }, + "tests/integration-cjs": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1", + "clang-format-node": "^1.2.1" + } + }, + "tests/integration-cli": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1", + "clang-format-node": "^1.2.1" + } + }, + "tests/integration-import": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1", + "clang-format-node": "^1.2.1" + } + }, + "tests/integration-mjs": { + "extraneous": true, + "dependencies": { + "clang-format-git": "^1.2.1", + "clang-format-git-python": "^1.2.1", + "clang-format-node": "^1.2.1" + } } } } diff --git a/package.json b/package.json index 0f119cef..a9606748 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,22 @@ { "private": true, "workspaces": [ - "packages/*" + "examples/*", + "packages/*", + "tests/*" ], "scripts": { "prepare": "husky", "publish-package": "npx lerna publish from-package --pre-dist-tag canary --yes", "build": "npx lerna run build", - "test": "npx lerna run test", + "test": "npx lerna run test --concurrency 1", "coverage": "npx nyc --reporter=lcov npm run test", "lint": "concurrently \"npm:lint-*\"", "lint-eslint": "npx eslint . --ext .js", "lint-prettier": "npx prettier . --check", "lint-editorconfig": "npx editorconfig-checker -config .editorconfig-checker.json", "lint-markdownlint": "npx markdownlint **/*.md", + "lint-textlint": "npx textlint -f pretty-error **/*.md", "fix": "concurrently \"npm:fix-*\"", "fix-eslint": "npx eslint . --fix --ext .js", "fix-prettier": "npx prettier . --write" @@ -28,21 +31,14 @@ "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-prettier": "^5.2.1", "husky": "^9.1.5", "lerna": "^8.1.9", "lint-staged": "^15.2.10", - "markdownlint-cli": "^0.42.0", + "markdownlint-cli": "^0.43.0", "nyc": "^17.0.0", "prettier": "^3.3.3", + "textlint": "^14.3.0", + "textlint-rule-allowed-uris": "^1.0.6", "typescript": "^5.6.3" - }, - "lint-staged": { - "*": [ - "npx prettier --check", - "npx editorconfig-checker -config .editorconfig-checker.json" - ], - "*.js": "npx eslint", - "*.md": "npx markdownlint" } } diff --git a/packages/clang-format-git-python/package.json b/packages/clang-format-git-python/package.json index 023ad29c..5f2709ad 100644 --- a/packages/clang-format-git-python/package.json +++ b/packages/clang-format-git-python/package.json @@ -1,7 +1,7 @@ { "name": "clang-format-git-python", - "version": "1.2.1", - "description": "Node repackaging of the git-clang-format Python script. This package requires Python3 as a dependency.🐉", + "version": "1.2.2", + "description": "Node wrapper for git-clang-format Python script. This package requires Python3 as a dependency.🐉", "main": "build/index.js", "files": [ "build", @@ -53,6 +53,6 @@ "chmod": "find ./src/script ./build/script -type f -exec chmod 755 {} + || true" }, "dependencies": { - "clang-format-node": "^1.2.1" + "clang-format-node": "^1.2.2" } } diff --git a/packages/clang-format-git/package.json b/packages/clang-format-git/package.json index e6fe30ee..d256321a 100644 --- a/packages/clang-format-git/package.json +++ b/packages/clang-format-git/package.json @@ -1,7 +1,7 @@ { "name": "clang-format-git", - "version": "1.2.1", - "description": "Node repackaging of the git-clang-format Python script as a standalone native binary to allow execution without a Python dependency.🐉", + "version": "1.2.2", + "description": "Node wrapper for git-clang-format Python script as a standalone native binary to allow execution without a Python dependency.🐉", "main": "build/index.js", "files": [ "build", @@ -52,6 +52,6 @@ "chmod": "find ./src/bin ./build/bin -type f -exec chmod 755 {} + || true" }, "dependencies": { - "clang-format-node": "^1.2.1" + "clang-format-node": "^1.2.2" } } diff --git a/packages/clang-format-git/src/bin/cfg-linux-s390x/git-clang-format b/packages/clang-format-git/src/bin/cfg-linux-s390x/git-clang-format index 6aaa50a3..bbae407c 100755 Binary files a/packages/clang-format-git/src/bin/cfg-linux-s390x/git-clang-format and b/packages/clang-format-git/src/bin/cfg-linux-s390x/git-clang-format differ diff --git a/packages/clang-format-git/src/bin/cfg-linux-x64/git-clang-format b/packages/clang-format-git/src/bin/cfg-linux-x64/git-clang-format index 1b1f2978..4d754f4b 100755 Binary files a/packages/clang-format-git/src/bin/cfg-linux-x64/git-clang-format and b/packages/clang-format-git/src/bin/cfg-linux-x64/git-clang-format differ diff --git a/packages/clang-format-git/src/bin/cfg-win32-x64/git-clang-format.exe b/packages/clang-format-git/src/bin/cfg-win32-x64/git-clang-format.exe index fd2b9a1d..8cabfc42 100755 Binary files a/packages/clang-format-git/src/bin/cfg-win32-x64/git-clang-format.exe and b/packages/clang-format-git/src/bin/cfg-win32-x64/git-clang-format.exe differ diff --git a/packages/clang-format-markdown/.nvmrc b/packages/clang-format-markdown/.nvmrc deleted file mode 100644 index 87834047..00000000 --- a/packages/clang-format-markdown/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -20.12.2 diff --git a/packages/clang-format-markdown/README.md b/packages/clang-format-markdown/README.md deleted file mode 100644 index 70ea1b76..00000000 --- a/packages/clang-format-markdown/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# textlint-rule-markdown-clang-format - -Let's check a Markdown code block written in C or C++ using Clang Format.🐲 diff --git a/packages/clang-format-markdown/VScode.code-workspace b/packages/clang-format-markdown/VScode.code-workspace deleted file mode 100644 index 2e8b0c6d..00000000 --- a/packages/clang-format-markdown/VScode.code-workspace +++ /dev/null @@ -1,7 +0,0 @@ -{ - "folders": [ - { - "path": ".", - }, - ], -} diff --git a/packages/clang-format-node/package.json b/packages/clang-format-node/package.json index 5015607b..e7b7b8a7 100644 --- a/packages/clang-format-node/package.json +++ b/packages/clang-format-node/package.json @@ -1,7 +1,7 @@ { "name": "clang-format-node", - "version": "1.2.1", - "description": "Node repackaging of the clang-format native binary inspired by angular/clang-format.🐉", + "version": "1.2.2", + "description": "Node wrapper for clang-format native binary inspired by angular/clang-format.🐉", "main": "build/index.js", "files": [ "build", diff --git a/packages/clang-format-node/src/bin/cfn-darwin-arm64/clang-format b/packages/clang-format-node/src/bin/cfn-darwin-arm64/clang-format index 269c4167..5502e09a 100755 Binary files a/packages/clang-format-node/src/bin/cfn-darwin-arm64/clang-format and b/packages/clang-format-node/src/bin/cfn-darwin-arm64/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-darwin-x64/clang-format b/packages/clang-format-node/src/bin/cfn-darwin-x64/clang-format index fe6b1ba3..2627635f 100755 Binary files a/packages/clang-format-node/src/bin/cfn-darwin-x64/clang-format and b/packages/clang-format-node/src/bin/cfn-darwin-x64/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-linux-arm/clang-format b/packages/clang-format-node/src/bin/cfn-linux-arm/clang-format index 971b4883..d5eb4e21 100755 Binary files a/packages/clang-format-node/src/bin/cfn-linux-arm/clang-format and b/packages/clang-format-node/src/bin/cfn-linux-arm/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-linux-arm64/clang-format b/packages/clang-format-node/src/bin/cfn-linux-arm64/clang-format index 1d3a3640..ddf5f04d 100755 Binary files a/packages/clang-format-node/src/bin/cfn-linux-arm64/clang-format and b/packages/clang-format-node/src/bin/cfn-linux-arm64/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-linux-ppc64/clang-format b/packages/clang-format-node/src/bin/cfn-linux-ppc64/clang-format index e8234821..cc9d351f 100755 Binary files a/packages/clang-format-node/src/bin/cfn-linux-ppc64/clang-format and b/packages/clang-format-node/src/bin/cfn-linux-ppc64/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-linux-s390x/clang-format b/packages/clang-format-node/src/bin/cfn-linux-s390x/clang-format index 2dbaa351..fc95a33c 100755 Binary files a/packages/clang-format-node/src/bin/cfn-linux-s390x/clang-format and b/packages/clang-format-node/src/bin/cfn-linux-s390x/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-linux-x64/clang-format b/packages/clang-format-node/src/bin/cfn-linux-x64/clang-format index b5d8c0e3..fff8f283 100755 Binary files a/packages/clang-format-node/src/bin/cfn-linux-x64/clang-format and b/packages/clang-format-node/src/bin/cfn-linux-x64/clang-format differ diff --git a/packages/clang-format-node/src/bin/cfn-win32-x64/clang-format.exe b/packages/clang-format-node/src/bin/cfn-win32-x64/clang-format.exe index fa949933..c439d309 100755 Binary files a/packages/clang-format-node/src/bin/cfn-win32-x64/clang-format.exe and b/packages/clang-format-node/src/bin/cfn-win32-x64/clang-format.exe differ diff --git a/tests/integration-api-cjs/index.test.js b/tests/integration-api-cjs/index.test.js new file mode 100644 index 00000000..91f0cad3 --- /dev/null +++ b/tests/integration-api-cjs/index.test.js @@ -0,0 +1,64 @@ +// This file should have the same format as '/tests/integration-api-esm/index.test.cjs'. + +const { ok } = require('node:assert'); +const { describe, it } = require('node:test'); + +const { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath, +} = require('clang-format-node'); + +const { + getGitClangFormatPath, + getClangFormatGitPath, + gitClangFormatPath, + clangFormatGitPath, +} = require('clang-format-git'); + +const { + gitClangFormatPath: gitClangFormatPathPython, + clangFormatGitPythonPath, +} = require('clang-format-git-python'); + +describe('integration-api-cjs CJS ok testing', () => { + describe('clang-format-node', () => { + it('clangFormatPath should be imported correctly', () => { + ok(clangFormatPath); + }); + it('clangFormatNodePath should be imported correctly', () => { + ok(clangFormatNodePath); + }); + it('getClangFormatPath should be imported correctly', () => { + ok(getClangFormatPath); + }); + it('getClangFormatNodePath should be imported correctly', () => { + ok(getClangFormatNodePath); + }); + }); + + describe('clang-format-git', () => { + it('getGitClangFormatPath should be imported correctly', () => { + ok(getGitClangFormatPath); + }); + it('getClangFormatGitPath should be imported correctly', () => { + ok(getClangFormatGitPath); + }); + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPath); + }); + it('clangFormatGitPath should be imported correctly', () => { + ok(clangFormatGitPath); + }); + }); + + describe('clang-format-git-python', () => { + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPathPython); + }); + it('clangFormatGitPythonPath should be imported correctly', () => { + ok(clangFormatGitPythonPath); + }); + }); +}); diff --git a/tests/integration-api-cjs/index.test.mjs b/tests/integration-api-cjs/index.test.mjs new file mode 100644 index 00000000..117557f2 --- /dev/null +++ b/tests/integration-api-cjs/index.test.mjs @@ -0,0 +1,64 @@ +// This file should have the same format as '/tests/integration-api-esm/index.test.js'. + +import { ok } from 'node:assert'; +import { describe, it } from 'node:test'; + +import { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath, +} from 'clang-format-node'; + +import { + getGitClangFormatPath, + getClangFormatGitPath, + gitClangFormatPath, + clangFormatGitPath, +} from 'clang-format-git'; + +import { + gitClangFormatPath as gitClangFormatPathPython, + clangFormatGitPythonPath, +} from 'clang-format-git-python'; + +describe('integration-api-cjs ESM ok testing', () => { + describe('clang-format-node', () => { + it('clangFormatPath should be imported correctly', () => { + ok(clangFormatPath); + }); + it('clangFormatNodePath should be imported correctly', () => { + ok(clangFormatNodePath); + }); + it('getClangFormatPath should be imported correctly', () => { + ok(getClangFormatPath); + }); + it('getClangFormatNodePath should be imported correctly', () => { + ok(getClangFormatNodePath); + }); + }); + + describe('clang-format-git', () => { + it('getGitClangFormatPath should be imported correctly', () => { + ok(getGitClangFormatPath); + }); + it('getClangFormatGitPath should be imported correctly', () => { + ok(getClangFormatGitPath); + }); + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPath); + }); + it('clangFormatGitPath should be imported correctly', () => { + ok(clangFormatGitPath); + }); + }); + + describe('clang-format-git-python', () => { + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPathPython); + }); + it('clangFormatGitPythonPath should be imported correctly', () => { + ok(clangFormatGitPythonPath); + }); + }); +}); diff --git a/tests/integration-api-cjs/package.json b/tests/integration-api-cjs/package.json new file mode 100644 index 00000000..20c08fd5 --- /dev/null +++ b/tests/integration-api-cjs/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "name": "tests-integration-api-cjs", + "version": "1.2.2", + "type": "commonjs", + "scripts": { + "test": "node --test" + }, + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } +} diff --git a/tests/integration-api-esm/index.test.cjs b/tests/integration-api-esm/index.test.cjs new file mode 100644 index 00000000..bcc4edf6 --- /dev/null +++ b/tests/integration-api-esm/index.test.cjs @@ -0,0 +1,64 @@ +// This file should have the same format as '/tests/integration-api-cjs/index.test.js'. + +const { ok } = require('node:assert'); +const { describe, it } = require('node:test'); + +const { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath, +} = require('clang-format-node'); + +const { + getGitClangFormatPath, + getClangFormatGitPath, + gitClangFormatPath, + clangFormatGitPath, +} = require('clang-format-git'); + +const { + gitClangFormatPath: gitClangFormatPathPython, + clangFormatGitPythonPath, +} = require('clang-format-git-python'); + +describe('integration-api-cjs CJS ok testing', () => { + describe('clang-format-node', () => { + it('clangFormatPath should be imported correctly', () => { + ok(clangFormatPath); + }); + it('clangFormatNodePath should be imported correctly', () => { + ok(clangFormatNodePath); + }); + it('getClangFormatPath should be imported correctly', () => { + ok(getClangFormatPath); + }); + it('getClangFormatNodePath should be imported correctly', () => { + ok(getClangFormatNodePath); + }); + }); + + describe('clang-format-git', () => { + it('getGitClangFormatPath should be imported correctly', () => { + ok(getGitClangFormatPath); + }); + it('getClangFormatGitPath should be imported correctly', () => { + ok(getClangFormatGitPath); + }); + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPath); + }); + it('clangFormatGitPath should be imported correctly', () => { + ok(clangFormatGitPath); + }); + }); + + describe('clang-format-git-python', () => { + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPathPython); + }); + it('clangFormatGitPythonPath should be imported correctly', () => { + ok(clangFormatGitPythonPath); + }); + }); +}); diff --git a/tests/integration-api-esm/index.test.js b/tests/integration-api-esm/index.test.js new file mode 100644 index 00000000..34593a83 --- /dev/null +++ b/tests/integration-api-esm/index.test.js @@ -0,0 +1,64 @@ +// This file should have the same format as '/tests/integration-api-cjs/index.test.mjs'. + +import { ok } from 'node:assert'; +import { describe, it } from 'node:test'; + +import { + clangFormatPath, + clangFormatNodePath, + getClangFormatPath, + getClangFormatNodePath, +} from 'clang-format-node'; + +import { + getGitClangFormatPath, + getClangFormatGitPath, + gitClangFormatPath, + clangFormatGitPath, +} from 'clang-format-git'; + +import { + gitClangFormatPath as gitClangFormatPathPython, + clangFormatGitPythonPath, +} from 'clang-format-git-python'; + +describe('integration-api-cjs ESM ok testing', () => { + describe('clang-format-node', () => { + it('clangFormatPath should be imported correctly', () => { + ok(clangFormatPath); + }); + it('clangFormatNodePath should be imported correctly', () => { + ok(clangFormatNodePath); + }); + it('getClangFormatPath should be imported correctly', () => { + ok(getClangFormatPath); + }); + it('getClangFormatNodePath should be imported correctly', () => { + ok(getClangFormatNodePath); + }); + }); + + describe('clang-format-git', () => { + it('getGitClangFormatPath should be imported correctly', () => { + ok(getGitClangFormatPath); + }); + it('getClangFormatGitPath should be imported correctly', () => { + ok(getClangFormatGitPath); + }); + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPath); + }); + it('clangFormatGitPath should be imported correctly', () => { + ok(clangFormatGitPath); + }); + }); + + describe('clang-format-git-python', () => { + it('gitClangFormatPath should be imported correctly', () => { + ok(gitClangFormatPathPython); + }); + it('clangFormatGitPythonPath should be imported correctly', () => { + ok(clangFormatGitPythonPath); + }); + }); +}); diff --git a/tests/integration-api-esm/package.json b/tests/integration-api-esm/package.json new file mode 100644 index 00000000..df09bff1 --- /dev/null +++ b/tests/integration-api-esm/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "name": "tests-integration-api-esm", + "version": "1.2.2", + "type": "module", + "scripts": { + "test": "node --test" + }, + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } +} diff --git a/tests/integration-binaries-permission/index.test.js b/tests/integration-binaries-permission/index.test.js new file mode 100644 index 00000000..8dc4ce5a --- /dev/null +++ b/tests/integration-binaries-permission/index.test.js @@ -0,0 +1,77 @@ +const { ok } = require('node:assert'); +const { execSync } = require('node:child_process'); +const { describe, it } = require('node:test'); +const { platform } = require('node:os'); + +const { getClangFormatNodePath } = require('clang-format-node'); +const { getClangFormatGitPath } = require('clang-format-git'); +const { clangFormatGitPythonPath } = require('clang-format-git-python'); + +const isPermission755 = path => + execSync(`stat -c '%a' ${path}`).toString().trim() === '755'; + +const binaries = [ + { + osPlatform: 'darwin', + architecture: 'arm64', + }, + { + osPlatform: 'darwin', + architecture: 'x64', + }, + { + osPlatform: 'linux', + architecture: 'arm', + }, + { + osPlatform: 'linux', + architecture: 'arm64', + }, + { + osPlatform: 'linux', + architecture: 'ppc64', + }, + { + osPlatform: 'linux', + architecture: 's390x', + }, + { + osPlatform: 'linux', + architecture: 'x64', + }, + { + osPlatform: 'win32', + architecture: 'x64', + }, +]; + +describe('integration-binaries-permission ok testing', () => { + // Skip test on Windows. + // On Windows, using `chmod` to change permissions doesn't work correctly, + // which can lead to unwanted results, as some binary permissions are not changed. + if (platform() === 'win32') { + // eslint-disable-next-line no-console + console.log('This test was skipped on Windows.'); + return; + } + + describe('clang-format-node', () => { + binaries.forEach(({ osPlatform, architecture }) => { + it(`osPlatform: ${osPlatform}, architecture: ${architecture}`, () => { + ok(isPermission755(getClangFormatNodePath(osPlatform, architecture))); + }); + }); + }); + + describe('clang-format-git', () => { + binaries.forEach(({ osPlatform, architecture }) => { + it(`osPlatform: ${osPlatform}, architecture: ${architecture}`, () => { + ok(isPermission755(getClangFormatGitPath(osPlatform, architecture))); + }); + }); + }); + + it('clang-format-git-python', () => { + ok(isPermission755(clangFormatGitPythonPath)); + }); +}); diff --git a/tests/integration-binaries-permission/package.json b/tests/integration-binaries-permission/package.json new file mode 100644 index 00000000..44a8db79 --- /dev/null +++ b/tests/integration-binaries-permission/package.json @@ -0,0 +1,13 @@ +{ + "private": true, + "name": "tests-integration-binaries-permission", + "version": "1.2.2", + "scripts": { + "test": "node --test" + }, + "dependencies": { + "clang-format-git": "^1.2.2", + "clang-format-git-python": "^1.2.2", + "clang-format-node": "^1.2.2" + } +} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy