From ab4f37533677ee747a9b240ce9b3876d3ba4bcaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Tue, 21 Jan 2025 02:02:32 +0900 Subject: [PATCH 01/16] docs: fix incorrect comment placement (#180) This pull request includes a minor change to the `packages/clang-format-node/src/cli.js` file. The change repositions the ESLint directive `/* eslint-disable n/prefer-node-protocol */` to a different location within the file for better code organization. * [`packages/clang-format-node/src/cli.js`](diffhunk://#diff-10e5439e75c8ce1bc7c2f61004997244cb90676b01d19b66ac9f3ba7a6b2fb67L4-R9): Moved the ESLint directive `/* eslint-disable n/prefer-node-protocol */` to a location after the file overview comment. --- packages/clang-format-node/src/cli.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/clang-format-node/src/cli.js b/packages/clang-format-node/src/cli.js index 5adb236e..682f91e5 100644 --- a/packages/clang-format-node/src/cli.js +++ b/packages/clang-format-node/src/cli.js @@ -1,12 +1,12 @@ #!/usr/bin/env node // The shebang line `#!/usr/bin/env node` ensures the script runs with the correct Node.js interpreter across different environments. -/* eslint-disable n/prefer-node-protocol */ - /** * @fileoverview Entry file for the `npx clang-format` and `npx clang-format-node` command. See the `bin` property in `package.json`. */ +/* eslint-disable n/prefer-node-protocol */ + // -------------------------------------------------------------------------------- // Require // -------------------------------------------------------------------------------- From 08edbf977888bbb87dc649041912b9fbef3dbd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Wed, 22 Jan 2025 21:22:14 +0900 Subject: [PATCH 02/16] docs: update eslint-disable comments for backward compatibility with `node:` namespace (#181) This pull request includes several changes across multiple files to ensure backward compatibility by not using the `node:` namespace. The changes are consistent across different files and packages. Backward compatibility: * [`packages/clang-format-git-python/src/cli.js`](diffhunk://#diff-93f1a01c7f4ac5a2380112cca516851320758c8184f96cddb10e1cc97012a468L7-R7): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-git-python/src/utils/gitClangFormatPath.js`](diffhunk://#diff-0b92886b850ec05cf8174fb293fc1d7f26dfd6064e907bfc81e09da43c8e1e49L5-R5): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-git/src/cli.js`](diffhunk://#diff-63ba214e13f2c5ab6dd124bf509fd488f9e2c9480f2db2c0e8293f0f38887bd7L7-R7): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-git/src/utils/getGitClangFormatPath.js`](diffhunk://#diff-1bb2e643c38d95e89f5956f9701352544d048ce9b211521186d0aecda6a2b09bL5-R5): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-git/src/utils/gitClangFormatPath.js`](diffhunk://#diff-1adcc2abfa385d5db149f797a576817728d4ddee81c1b9196d60ce4d8328390eL5-R5): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-node/src/cli.js`](diffhunk://#diff-10e5439e75c8ce1bc7c2f61004997244cb90676b01d19b66ac9f3ba7a6b2fb67L8-R8): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-node/src/utils/clangFormatPath.js`](diffhunk://#diff-2fec3a5daf6d86f193c4f1bf1b809829a7471077b651f5233947089305a1371fL5-R5): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. * [`packages/clang-format-node/src/utils/getClangFormatPath.js`](diffhunk://#diff-69431841c8379c19bac868db91bce476be6122cca550dd2bb841a8fd7d050ebbL5-R5): Updated eslint-disable comment to specify not using `node:` namespace for backward compatibility. --- packages/clang-format-git-python/src/cli.js | 2 +- .../clang-format-git-python/src/utils/gitClangFormatPath.js | 2 +- packages/clang-format-git/src/cli.js | 2 +- packages/clang-format-git/src/utils/getGitClangFormatPath.js | 2 +- packages/clang-format-git/src/utils/gitClangFormatPath.js | 2 +- packages/clang-format-node/src/cli.js | 2 +- packages/clang-format-node/src/utils/clangFormatPath.js | 2 +- packages/clang-format-node/src/utils/getClangFormatPath.js | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/clang-format-git-python/src/cli.js b/packages/clang-format-git-python/src/cli.js index 4c972d09..c2765398 100644 --- a/packages/clang-format-git-python/src/cli.js +++ b/packages/clang-format-git-python/src/cli.js @@ -4,7 +4,7 @@ * @fileoverview Entry file for the `npx git-clang-format` or `npx clang-format-git-python` command. See the `bin` property in `package.json`. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-git-python/src/utils/gitClangFormatPath.js b/packages/clang-format-git-python/src/utils/gitClangFormatPath.js index 4684c170..fdd34510 100644 --- a/packages/clang-format-git-python/src/utils/gitClangFormatPath.js +++ b/packages/clang-format-git-python/src/utils/gitClangFormatPath.js @@ -2,7 +2,7 @@ * @fileoverview `gitClangFormatPath` and `clangFormatGitPythonPath` APIs. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-git/src/cli.js b/packages/clang-format-git/src/cli.js index 65e30f6e..b144709e 100644 --- a/packages/clang-format-git/src/cli.js +++ b/packages/clang-format-git/src/cli.js @@ -4,7 +4,7 @@ * @fileoverview Entry file for the `npx git-clang-format` or `npx clang-format-git` command. See the `bin` property in `package.json`. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-git/src/utils/getGitClangFormatPath.js b/packages/clang-format-git/src/utils/getGitClangFormatPath.js index ac496330..5fd0d57f 100644 --- a/packages/clang-format-git/src/utils/getGitClangFormatPath.js +++ b/packages/clang-format-git/src/utils/getGitClangFormatPath.js @@ -2,7 +2,7 @@ * @fileoverview `getGitClangFormatPath` and `getClangFormatGitPath` APIs. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-git/src/utils/gitClangFormatPath.js b/packages/clang-format-git/src/utils/gitClangFormatPath.js index e9a2293c..0daa9f21 100644 --- a/packages/clang-format-git/src/utils/gitClangFormatPath.js +++ b/packages/clang-format-git/src/utils/gitClangFormatPath.js @@ -2,7 +2,7 @@ * @fileoverview `gitClangFormatPath` and `clangFormatGitPath` APIs. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-node/src/cli.js b/packages/clang-format-node/src/cli.js index 682f91e5..c914c0a7 100644 --- a/packages/clang-format-node/src/cli.js +++ b/packages/clang-format-node/src/cli.js @@ -5,7 +5,7 @@ * @fileoverview Entry file for the `npx clang-format` and `npx clang-format-node` command. See the `bin` property in `package.json`. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-node/src/utils/clangFormatPath.js b/packages/clang-format-node/src/utils/clangFormatPath.js index 7716d41e..470db7e7 100644 --- a/packages/clang-format-node/src/utils/clangFormatPath.js +++ b/packages/clang-format-node/src/utils/clangFormatPath.js @@ -2,7 +2,7 @@ * @fileoverview `clangFormatPath` and `clangFormatNodePath` APIs. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require diff --git a/packages/clang-format-node/src/utils/getClangFormatPath.js b/packages/clang-format-node/src/utils/getClangFormatPath.js index d6678bac..55972bdf 100644 --- a/packages/clang-format-node/src/utils/getClangFormatPath.js +++ b/packages/clang-format-node/src/utils/getClangFormatPath.js @@ -2,7 +2,7 @@ * @fileoverview `getClangFormatPath` and `getClangFormatNodePath` APIs. */ -/* eslint-disable n/prefer-node-protocol */ +/* eslint-disable n/prefer-node-protocol -- DO NOT USE `node:` namespace for backward compatibility */ // -------------------------------------------------------------------------------- // Require From 3decbf418cbccd7c0902e04705a8af70b9571387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Wed, 22 Jan 2025 22:18:23 +0900 Subject: [PATCH 03/16] ci: update labeler workflow to trigger on edited pull requests (#182) This pull request includes a change to the GitHub Actions workflow for labeling pull requests. The change ensures that the labeler action runs not only when a pull request is opened but also when it is edited. * [`.github/workflows/labeler.yml`](diffhunk://#diff-09b72f3c9a3e4f00ab00cd7000b302db25f056075d8895bd91b3654d6e7e956bL5-R13): Modified the `pull_request_target` event to include the `edited` type and added a condition to run the labeler step when the pull request is opened or its title is changed. --- .github/workflows/labeler.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 05b06cdf..159d61f7 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -2,7 +2,7 @@ name: labeler on: pull_request_target: - types: [opened] + types: [opened, edited] jobs: labeler: @@ -10,6 +10,7 @@ jobs: steps: - name: Labeler + if: github.event.action == 'opened' || github.event.changes.title uses: jimschubert/labeler-action@v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From f8ce4d0ab8593a2dea5d546b9a2e2c566844b933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Fri, 24 Jan 2025 22:32:55 +0900 Subject: [PATCH 04/16] ci: add `concurrency` settings to `test-cross-platform.yml` test workflow (#183) This pull request includes a change to the GitHub Actions workflow configuration to manage concurrency for the `test-cross-platform.yml` workflow. The change ensures that concurrent runs of the workflow are managed more efficiently by grouping them and canceling in-progress runs for non-main branches. Concurrency management: * [`.github/workflows/test-cross-platform.yml`](diffhunk://#diff-290907d9a4bcf13181105b134bd1645da5a3ef27c54f148ad5823e6b77e88426R14-R17): Added `concurrency` configuration to group workflow runs by workflow name and reference, and to cancel in-progress runs for non-main branches. --- .github/workflows/test-cross-platform.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test-cross-platform.yml b/.github/workflows/test-cross-platform.yml index e35da9c6..b4c47a98 100644 --- a/.github/workflows/test-cross-platform.yml +++ b/.github/workflows/test-cross-platform.yml @@ -11,6 +11,10 @@ on: paths-ignore: - '**/*.md' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !contains(github.ref, 'main') }} + jobs: build-packages: runs-on: ubuntu-latest From d670704eedecb06b4693d8c0cd75e272fb25d4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Fri, 24 Jan 2025 23:20:05 +0900 Subject: [PATCH 05/16] feat: introduce new website using `vitepress` (#179) This pull request includes several updates to improve the repository's configuration, documentation, and build processes. The most important changes involve updating configuration files, improving documentation, and adding new scripts to `package.json`. ### Configuration Updates: * [`.markdownlint.json`](diffhunk://#diff-7acf5910ecddb0a88c58debaedb129a30ebad965e878f6ebba3dad5a4fd8758aR18): Added `small` and `Badge` to the list of allowed HTML elements. [[1]](diffhunk://#diff-7acf5910ecddb0a88c58debaedb129a30ebad965e878f6ebba3dad5a4fd8758aR18) [[2]](diffhunk://#diff-7acf5910ecddb0a88c58debaedb129a30ebad965e878f6ebba3dad5a4fd8758aL30-R32) * `.markdownlintignore` and `.prettierignore`: Added `**/.vitepress/cache/` to the ignore list. [[1]](diffhunk://#diff-b5e89e929d119744a043caea30a5e49d7a9ea25e3253755760d5b6ec9bd24ca0R7) [[2]](diffhunk://#diff-b640b344ee7f3f03d2a443795a5d0708ef50e2e6e34214109ab2aad13ad6ba98R7) * [`eslint.config.js`](diffhunk://#diff-a32a0887ed9d1d707bbb3b845b7df7fd40e673c47e7b60a3ebd896b68d3b8839L5-R5): Updated `ignores` to include `**/.vitepress/cache/`. ### Documentation Improvements: * [`README.md`](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L1-R52): Simplified and reorganized the content, including updating badge colors and improving the call-to-action for GitHub stars. [[1]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L1-R52) [[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L67-R87) * [`CONTRIBUTING.md`](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L7-R7): Updated the directory reference for documentation from `docs` to `website` and improved the commit message format. [[1]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L7-R7) [[2]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L42-R42) * Removed unnecessary placeholder files in the `docs` directory to clean up the documentation. [[1]](diffhunk://#diff-3f5974b01bc12b7cc340eb07857c2e551cb979521e0dc10aad13dab6fc51b538L1-L4) [[2]](diffhunk://#diff-92d48e115aa9fab863f9e23a97277320bbf003699d0a4d5ecb9627025f311509L1-L4) [[3]](diffhunk://#diff-0f1f17e40241101d28e95b7b342a54e8642870b95b5ac05b4670b56b7b7aa476L1-L23) [[4]](diffhunk://#diff-53fd0b03cc517cf9d15e56a7f0d375169c3be1c2b9e302719e71e4650525be4cL1-L4) [[5]](diffhunk://#diff-9fa84ecbabf692139352a59b58246c8236a61e6a32b1314be91981fc5e30bb97L1-L4) [[6]](diffhunk://#diff-7ceab4fe3daae9060d9c124c5dac23575f81e29bfcca396799f794e9c08ff495L1-L4) [[7]](diffhunk://#diff-958bd111f88e01820551e26aaccc46341bec03c544ee17ddf8aab284ec92069dL1-L4) [[8]](diffhunk://#diff-120a31182daa62063855751460906663d47bbdc87bd071f2ee1ce6cd73b54d39L1-L4) ### Build Process Enhancements: * [`package.json`](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L16-R36): Added new scripts for development and build processes, including `dev`, `start`, and `build:website`. Also added `@types/node` to `devDependencies`. These changes aim to enhance the repository's maintainability and streamline the development workflow. --- .gitignore | 1 + .markdownlint.json | 4 +- .markdownlintignore | 1 + .prettierignore | 1 + CONTRIBUTING.md | 4 +- README.md | 68 +- SUMMARY.md | 31 - docs/01-introduction/01-clang-format-node.md | 4 - docs/01-introduction/02-table-of-contents.md | 4 - .../01-migration-from-angular-clang-format.md | 23 - docs/04-community/01-contributing.md | 4 - docs/04-community/02-code-of-conduct.md | 4 - docs/04-community/03-change-log.md | 4 - docs/04-community/05-security.md | 4 - docs/04-community/06-license.md | 4 - eslint.config.js | 2 +- package-lock.json | 2551 ++++++++++++++++- package.json | 14 +- website/.vitepress/config.mjs | 330 +++ website/.vitepress/theme/index.mjs | 21 + website/.vitepress/theme/style.css | 105 + .../docs/apis/clang-format-git-python.md | 78 +- .../docs/apis/clang-format-git.md | 86 +- .../docs/apis/clang-format-node.md | 86 +- website/docs/blog/v1.2.0.md | 33 + website/docs/community/change-log.md | 1 + website/docs/community/code-of-conduct.md | 1 + website/docs/community/contributing.md | 1 + website/docs/community/license.md | 1 + website/docs/community/security.md | 1 + .../docs/community/versioning.md | 4 + ...about-os-platform-and-os-arch-in-nodejs.md | 4 + .../docs/further-reading/build-process.md | 6 +- .../difference-between-exit-0-and-true.md | 83 + .../guides-on-llvm-clang-format.md | 8 +- .../docs/get-started/cli.md | 169 +- website/docs/get-started/configuration.md | 228 ++ website/docs/get-started/ignore-files.md | 24 + website/docs/get-started/index.md | 5 + website/docs/get-started/installation.md | 122 + .../migration-from-angular-clang-format.md | 31 + .../docs/get-started/supported.md | 14 +- .../use-with-husky-and-lint-staged.md | 43 + .../why-we-started-this-project.md | 6 +- website/index.md | 77 + website/package.json | 9 +- website/public/logo-black.svg | 1 + website/public/logo-lightgray.svg | 1 + website/public/logo-og.png | Bin 0 -> 428067 bytes website/public/logo-white.svg | 1 + website/public/robots.txt | 4 + website/vercel.json | 3 + 52 files changed, 3928 insertions(+), 387 deletions(-) delete mode 100644 SUMMARY.md delete mode 100644 docs/01-introduction/01-clang-format-node.md delete mode 100644 docs/01-introduction/02-table-of-contents.md delete mode 100644 docs/03-others/01-migration-from-angular-clang-format.md delete mode 100644 docs/04-community/01-contributing.md delete mode 100644 docs/04-community/02-code-of-conduct.md delete mode 100644 docs/04-community/03-change-log.md delete mode 100644 docs/04-community/05-security.md delete mode 100644 docs/04-community/06-license.md create mode 100644 website/.vitepress/config.mjs create mode 100644 website/.vitepress/theme/index.mjs create mode 100644 website/.vitepress/theme/style.css rename docs/02-packages/03-clang-format-git-python.md => website/docs/apis/clang-format-git-python.md (60%) rename docs/02-packages/02-clang-format-git.md => website/docs/apis/clang-format-git.md (74%) rename docs/02-packages/01-clang-format-node.md => website/docs/apis/clang-format-node.md (72%) create mode 100644 website/docs/blog/v1.2.0.md create mode 100644 website/docs/community/change-log.md create mode 100644 website/docs/community/code-of-conduct.md create mode 100644 website/docs/community/contributing.md create mode 100644 website/docs/community/license.md create mode 100644 website/docs/community/security.md rename docs/04-community/04-versioning.md => website/docs/community/versioning.md (79%) rename docs/03-others/02-about-os-platform-and-os-arch-in-nodejs.md => website/docs/further-reading/about-os-platform-and-os-arch-in-nodejs.md (91%) rename docs/03-others/03-build-process.md => website/docs/further-reading/build-process.md (83%) create mode 100644 website/docs/further-reading/difference-between-exit-0-and-true.md rename docs/03-others/04-guides-on-llvm-and-clang-format.md => website/docs/further-reading/guides-on-llvm-clang-format.md (72%) rename docs/01-introduction/04-getting-started.md => website/docs/get-started/cli.md (50%) create mode 100644 website/docs/get-started/configuration.md create mode 100644 website/docs/get-started/ignore-files.md create mode 100644 website/docs/get-started/index.md create mode 100644 website/docs/get-started/installation.md create mode 100644 website/docs/get-started/migration-from-angular-clang-format.md rename docs/01-introduction/05-supported.md => website/docs/get-started/supported.md (86%) create mode 100644 website/docs/get-started/use-with-husky-and-lint-staged.md rename docs/01-introduction/03-why-we-started-this-project.md => website/docs/get-started/why-we-started-this-project.md (84%) create mode 100644 website/index.md create mode 100644 website/public/logo-black.svg create mode 100644 website/public/logo-lightgray.svg create mode 100644 website/public/logo-og.png create mode 100644 website/public/logo-white.svg create mode 100644 website/public/robots.txt create mode 100644 website/vercel.json diff --git a/.gitignore b/.gitignore index 07139ab6..a4541fd8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ node_modules # production build .next +**/.vitepress/cache/ # env .env diff --git a/.markdownlint.json b/.markdownlint.json index 365ee2c4..a95c3c16 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -15,6 +15,7 @@ }, "no-inline-html": { "allowed_elements": [ + "small", "sub", "sup", "u", @@ -27,7 +28,8 @@ "mark", "ruby", "rp", - "rt" + "rt", + "Badge" ] }, "hr-style": { diff --git a/.markdownlintignore b/.markdownlintignore index 66f6e635..b5d6413d 100644 --- a/.markdownlintignore +++ b/.markdownlintignore @@ -4,6 +4,7 @@ node_modules # production build .next +**/.vitepress/cache/ # files LICENSE.md diff --git a/.prettierignore b/.prettierignore index 7713fd27..317099b0 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,6 +4,7 @@ node_modules # production build .next +**/.vitepress/cache/ # env .env diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4ed1748a..9f0ca517 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ This repository uses [`npm workspaces`](https://docs.npmjs.com/cli/using-npm/wor ## Directory Structure -All packages are located in the `packages` directory, and the documentation can be found in the `docs` directory. +All packages are located in the `packages` directory, and the documentation can be found in the `website` directory. ## Installation @@ -39,7 +39,7 @@ All packages are located in the `packages` directory, and the documentation can 1. Commit your changes. (`husky` and `lint-staged` will lint your changed files!) ```bash - git commit -am "commit type: title" + git commit -am "[optional scope]: " ``` 1. Push them to your remote branch. diff --git a/README.md b/README.md index c4c239b9..97b766f4 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,55 @@ - -#
clang-format-node
+# clang-format-node - -
- -⭐If you like this package, please give it a star on [GitHub](https://github.com/lumirlumir/npm-clang-format-node)!⭐
-Your support helps us improve and maintain the project. - -

- -![GitHub Release](https://img.shields.io/github/v/release/lumirlumir/npm-clang-format-node?label=release%20(LLVM%20version)&color=violet&display_name=release) -[![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node) -![NPM Downloads](https://img.shields.io/npm/dm/clang-format-node) -![Node Current](https://img.shields.io/node/v/clang-format-node) +![GitHub Release](https://img.shields.io/github/v/release/lumirlumir/npm-clang-format-node?label=release%20(LLVM%20version)&color=83ba63&display_name=release) +[![NPM Version](https://img.shields.io/npm/v/clang-format-node?color=83ba63)](https://www.npmjs.com/package/clang-format-node) +![NPM Downloads](https://img.shields.io/npm/dm/clang-format-node?color=83ba63) +![Node Current](https://img.shields.io/node/v/clang-format-node?color=83ba63) [![lint](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/lint.yml/badge.svg)](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/lint.yml) [![test](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/test.yml/badge.svg)](https://github.com/lumirlumir/npm-clang-format-node/actions/workflows/test.yml) [![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) + +> [!IMPORTANT] +> +> If you like this package, please give it a star on [GitHub](https://github.com/lumirlumir/npm-clang-format-node)!⭐
+> Your support helps us improve and maintain the project. 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).🐉 - -
+## Documentation -> [!IMPORTANT] -> -> Please participate in the issue regarding the introduction of a **glob pattern**. Click [here](https://github.com/lumirlumir/npm-clang-format-node/issues/14). +For full documentation, see the [official documentation of the `clang-format-node`](https://clang-format-node.lumir.page). ## Included Packages This repository is maintained as a **monorepo** and includes the following **three** packages. -### `clang-format-node` [![NPM Version](https://img.shields.io/npm/v/clang-format-node)](https://www.npmjs.com/package/clang-format-node) +### `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) -> [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) +[![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 wrapper for `clang-format` native binary inspired by angular/clang-format. (The **CORE** package.) -### `clang-format-git` [![NPM Version](https://img.shields.io/npm/v/clang-format-git)](https://www.npmjs.com/package/clang-format-git) +### `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) -> [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) +[![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 wrapper for `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. -### `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) +### `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) -> [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) +[![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 wrapper for `git-clang-format` Python script. **This package requires Python3 as a dependency**. ## Supported -See the [supported](/docs/01-introduction/05-supported.md) section of the documentation, which lists the following: +See the [supported](https://clang-format-node.lumir.page/docs/get-started/supported) section of the documentation, which lists the following: - OS Platforms and Architectures - Node.js Version @@ -64,34 +58,30 @@ See the [supported](/docs/01-introduction/05-supported.md) section of the docume ## 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). +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`](https://github.com/lumirlumir/npm-clang-format-node/blob/main/.github/workflows/llvm-build-bump-pr.yml). ## Contributing (Issues & Pull Requests) 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. +Please read our [Code of Conduct](https://github.com/lumirlumir/npm-clang-format-node/blob/main/CODE_OF_CONDUCT.md) and [Contributing](https://github.com/lumirlumir/npm-clang-format-node/blob/main/CONTRIBUTING.md) Guides before you work on these things. We also recommend you to read the [Guides on LLVM `clang-format`](http://clang-format-node.lumir.page/docs/further-reading/guides-on-llvm-clang-format) mentioned in the documentation before contributing. ## Code of Conduct -See [Code of Conduct](/CODE_OF_CONDUCT.md). +See [Code of Conduct](https://github.com/lumirlumir/npm-clang-format-node/blob/main/CODE_OF_CONDUCT.md). ## Change Log -See [Change Log](/CHANGELOG.md). +See [Change Log](https://github.com/lumirlumir/npm-clang-format-node/blob/main/CHANGELOG.md). ## Versioning -See [Versioning](/docs/04-community/02-versioning.md). +See [Versioning](http://clang-format-node.lumir.page/docs/community/versioning). ## Security -See [Security](/SECURITY.md). +See [Security](https://github.com/lumirlumir/npm-clang-format-node/blob/main/SECURITY.md). ## License -[MIT](/LICENSE.md) under [LLVM Apache License 2.0](https://github.com/llvm/llvm-project/blob/main/LICENSE.TXT). +[MIT](https://github.com/lumirlumir/npm-clang-format-node/blob/main/LICENSE.md) under [LLVM Apache License 2.0](https://github.com/llvm/llvm-project/blob/main/LICENSE.TXT). diff --git a/SUMMARY.md b/SUMMARY.md deleted file mode 100644 index 1f397ae5..00000000 --- a/SUMMARY.md +++ /dev/null @@ -1,31 +0,0 @@ -# Table of contents - -## Introduction - -- [`clang-format-node`](/README.md) -- [Table of Contents](/SUMMARY.md) -- [Why We Started This Project](/docs/01-introduction/03-why-we-started-this-project.md) -- [Getting Started](/docs/01-introduction/04-getting-started.md) -- [Supported](/docs/01-introduction/05-supported.md) - -## Packages - -- [`clang-format-node`](/docs/02-packages/01-clang-format-node.md) -- [`clang-format-git`](/docs/02-packages/02-clang-format-git.md) -- [`clang-format-git-python`](/docs/02-packages/03-clang-format-git-python.md) - -## Others - -- [Migration from 'angular/clang-format'](/docs/03-others/01-migration-from-angular-clang-format.md) -- [About `os.platform()` and `os.arch()` in Node.js](/docs/03-others/02-about-os-platform-and-os-arch-in-nodejs.md) -- [Build Process](/docs/03-others/03-build-process.md) -- [Guides on LLVM and `clang-format`](/docs/03-others/04-guides-on-llvm-and-clang-format.md) - -## Community - -- [Contributing](/CONTRIBUTING.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/01-clang-format-node.md b/docs/01-introduction/01-clang-format-node.md deleted file mode 100644 index c355a3e0..00000000 --- a/docs/01-introduction/01-clang-format-node.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [README.md](/README.md). diff --git a/docs/01-introduction/02-table-of-contents.md b/docs/01-introduction/02-table-of-contents.md deleted file mode 100644 index 9f4c881d..00000000 --- a/docs/01-introduction/02-table-of-contents.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [SUMMARY.md](/SUMMARY.md). diff --git a/docs/03-others/01-migration-from-angular-clang-format.md b/docs/03-others/01-migration-from-angular-clang-format.md deleted file mode 100644 index a797acaf..00000000 --- a/docs/03-others/01-migration-from-angular-clang-format.md +++ /dev/null @@ -1,23 +0,0 @@ -# Migration from 'angular/clang-format' - -## `check-clang-format` - -This package only uses native `clang-format` features to check formatting. The following commands will produce an error if the target files are not correctly formatted. So use them with `husky` and `lint-staged`. (`--dry-run` and `-n` options are equivalent.) - -```bash -npx clang-format -Werror --dry-run example.cpp -``` - -```bash -npx clang-format -Werror -n example.cpp -``` - -## `git-clang-format` - -> `v1.2.0 (llvmorg-19.1.3)` - latest - -This feature has been supported since `v1.2.0 (llvmorg-19.1.3)`, so migration is no longer necessary. Instead, you can use the [`clang-format-git`](../02-packages/02-clang-format-git.md) or [`clang-format-git-python`](../02-packages/03-clang-format-git-python.md) package. - -> `v1.0.0 (llvmorg-18.1.8)` - `v1.1.3 (llvmorg-19.1.3)` - -Use [`husky`](https://typicode.github.io/husky/) and [`lint-staged`](https://github.com/lint-staged/lint-staged) for the `pre-commit` hook instead. See [Use with `husky` and `lint-staged`](/docs/01-introduction/04-getting-started.md#use-with-husky-and-lint-staged) for details. diff --git a/docs/04-community/01-contributing.md b/docs/04-community/01-contributing.md deleted file mode 100644 index e3efc1c7..00000000 --- a/docs/04-community/01-contributing.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [CONTRIBUTING.md](/CONTRIBUTING.md). diff --git a/docs/04-community/02-code-of-conduct.md b/docs/04-community/02-code-of-conduct.md deleted file mode 100644 index 74c13b85..00000000 --- a/docs/04-community/02-code-of-conduct.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [CODE_OF_CONDUCT.md](/CODE_OF_CONDUCT.md). diff --git a/docs/04-community/03-change-log.md b/docs/04-community/03-change-log.md deleted file mode 100644 index ef41482d..00000000 --- a/docs/04-community/03-change-log.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [CHANGELOG.md](/CHANGELOG.md). diff --git a/docs/04-community/05-security.md b/docs/04-community/05-security.md deleted file mode 100644 index d461e10b..00000000 --- a/docs/04-community/05-security.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [SECURITY.md](/SECURITY.md). diff --git a/docs/04-community/06-license.md b/docs/04-community/06-license.md deleted file mode 100644 index 3059ee7e..00000000 --- a/docs/04-community/06-license.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -See [LICENSE.md](/LICENSE.md). diff --git a/eslint.config.js b/eslint.config.js index 86c5fcd7..46fefa6d 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -2,7 +2,7 @@ const bananass = require('eslint-config-bananass'); module.exports = [ { - ignores: ['**/build/', '**/coverage/'], + ignores: ['**/build/', '**/coverage/', '**/.vitepress/cache/'], }, bananass.configs.recommended, ]; diff --git a/package-lock.json b/package-lock.json index d4821b54..1b47cb64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@babel/cli": "^7.24.8", "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", + "@types/node": "^22.10.9", "c8": "^10.1.3", "concurrently": "^9.0.0", "editorconfig-checker": "^6.0.0", @@ -47,6 +48,248 @@ "clang-format-git": "^1.2.5" } }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.17.7" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.19.0.tgz", + "integrity": "sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.19.0.tgz", + "integrity": "sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.19.0.tgz", + "integrity": "sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.19.0.tgz", + "integrity": "sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.19.0.tgz", + "integrity": "sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.19.0.tgz", + "integrity": "sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.19.0.tgz", + "integrity": "sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/ingestion": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.19.0.tgz", + "integrity": "sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.19.0.tgz", + "integrity": "sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.19.0.tgz", + "integrity": "sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.19.0.tgz", + "integrity": "sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.19.0.tgz", + "integrity": "sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.19.0.tgz", + "integrity": "sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -61,6 +304,30 @@ "node": ">=6.0.0" } }, + "node_modules/@antfu/install-pkg": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz", + "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-manager-detector": "^0.2.0", + "tinyexec": "^0.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@azu/format-text": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", @@ -1559,6 +1826,57 @@ "node": ">=18" } }, + "node_modules/@docsearch/css": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", + "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docsearch/js": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.8.2.tgz", + "integrity": "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/react": "3.8.2", + "preact": "^10.0.0" + } + }, + "node_modules/@docsearch/react": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", + "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.2", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, "node_modules/@emnapi/core": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", @@ -1590,6 +1908,397 @@ "tslib": "^2.4.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", @@ -1784,14 +2493,81 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@iconify-json/logos": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@iconify-json/logos/-/logos-1.2.4.tgz", + "integrity": "sha512-XC4If5D/hbaZvUkTV8iaZuGlQCyG6CNOlaAaJaGa13V5QMYwYjgtKk3vPP8wz3wtTVNVEVk3LRx1fOJz+YnSMw==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify-json/simple-icons": { + "version": "1.2.20", + "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.20.tgz", + "integrity": "sha512-WlQ95zrdxxizrFt2HtkfYjyWatLfE8Z7BKOkew9quG5S5AKYVxF1PkTtOs8LDWShce1DpvxKWQne4W5DQyEGZg==", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify-json/vscode-icons": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@iconify-json/vscode-icons/-/vscode-icons-1.2.10.tgz", + "integrity": "sha512-qjp/j2RcHEZkesuAT6RP8BfcuHa+oERr7K1twfsulrIHrKZlpxxBeEyFm+3evZSAOgD+sjgU5CuTYS3RfCL+Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.2.1.tgz", + "integrity": "sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^0.4.1", + "@antfu/utils": "^0.7.10", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.13.0", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.1", + "mlly": "^1.7.3" + } + }, + "node_modules/@iconify/utils/node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@isaacs/cliui": { @@ -3603,22 +4379,375 @@ "@octokit/openapi-types": "^18.0.0" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz", + "integrity": "sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz", + "integrity": "sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz", + "integrity": "sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz", + "integrity": "sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz", + "integrity": "sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz", + "integrity": "sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz", + "integrity": "sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz", + "integrity": "sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz", + "integrity": "sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz", + "integrity": "sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz", + "integrity": "sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz", + "integrity": "sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz", + "integrity": "sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz", + "integrity": "sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz", + "integrity": "sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz", + "integrity": "sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz", + "integrity": "sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz", + "integrity": "sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz", + "integrity": "sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@shikijs/core": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.0.3.tgz", + "integrity": "sha512-dhbLagx1As0BmaNGUTxJ/qshb4MPyKYIvjCcd7y1utDToebUS4BZI3FH+WVCJF3/VwWWKOhuzX4lgjOb7qtSjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "2.0.3", + "@shikijs/engine-oniguruma": "2.0.3", + "@shikijs/types": "2.0.3", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.0.3.tgz", + "integrity": "sha512-GMmfP8xEmUl0H7RXo4VTFYqAWzAADtlghA9perlm6mzuo0n/Ih+owh57ZLWBMMe/N1TUMis4SGJRvx31HtK3jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.0.3", + "@shikijs/vscode-textmate": "^10.0.1", + "oniguruma-to-es": "^2.2.0" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.0.3.tgz", + "integrity": "sha512-MicRzo0aNaS18yXBnXjYFLnzi5Sh3NUHtm/WXzavtpGiWd75gRdZsZDMceeFyTL9MMy9iGifK2JePXY5dlZHIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.0.3", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, + "node_modules/@shikijs/langs": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.0.3.tgz", + "integrity": "sha512-L+QcwH6tjVY21xDxe3etR+C+33mAbkyQVvUIsszwnQrRVI54r7VPNTMVWR4EbZfPFwWmwLCoO83V5YiBWusvVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.0.3" + } + }, + "node_modules/@shikijs/themes": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.0.3.tgz", + "integrity": "sha512-NFnArltjzmYAssn1SLIFlKX9HJEL9K12z0uBB0tg579hW6UHIXwfd+AhsaB/+cXYLix2YuN5uEPJpqtRN2zi0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.0.3" + } + }, + "node_modules/@shikijs/transformers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.0.3.tgz", + "integrity": "sha512-Y5qmHA2LyoXccq6IPP5AeGqialn54ZORPBxbyNH+NEbCaw1nTCCy+Tfm3idRkqYLZOw0yq+0MUSDWbGezHksow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.0.3", + "@shikijs/types": "2.0.3" + } + }, + "node_modules/@shikijs/types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.0.3.tgz", + "integrity": "sha512-jyP6NMdWkbBpEn3WqqH8TCfkzE52/hS7msKGJAvxcwyQQah7+hU8x7ejFhCVoxrBaW001v+ID4zl3wspcDSaaw==", "dev": true, "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "dev": true, + "license": "MIT" }, "node_modules/@sigstore/bundle": { "version": "2.3.2", @@ -4127,6 +5256,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -4148,6 +5287,24 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, "node_modules/@types/mdast": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", @@ -4158,6 +5315,13 @@ "@types/unist": "^2" } }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -4172,6 +5336,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node": { + "version": "22.10.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.9.tgz", + "integrity": "sha512-Ir6hwgsKyNESl/gLOcEz3krR4CBGgliDqBQ2ma4wIhEx0w+xnoeTq3tdrNw15kU3SxogDjOgv9sqdtLW8mIHaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -4186,6 +5360,285 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", + "integrity": "sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.0.tgz", + "integrity": "sha512-bHEv6kT85BHtyGgDhE07bAUMAy7zpv6nnR004nSTd0wWMrAOtcrYoXO5iyr20Hkf5jR8obQOfS3byW+I3l2CCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.0.tgz", + "integrity": "sha512-5cvZ+6SA88zKC8XiuxUfqpdTwVjJbvYnQZY5NReh7qlSGPvVDjjzyEtW+gdzLXNSd8tStgOjAdMCpvDQamUXtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.0", + "birpc": "^0.2.19", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.1" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.0.tgz", + "integrity": "sha512-jtlQY26R5thQxW9YQTpXbI0HoK0Wf9Rd4ekidOkRvSy7ChfK0kIU6vvcBtjj87/EcpeOSK49fZAicaFNJcoTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-12.4.0.tgz", + "integrity": "sha512-XnjQYcJwCsyXyIafyA6SvyN/OBtfPnjvJmbxNxQjCcyWD198urwm5TYvIUUyAxEAN0K7HJggOgT15cOlWFyLeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "12.4.0", + "@vueuse/shared": "12.4.0", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-12.4.0.tgz", + "integrity": "sha512-EZm+TLoZMeEwDnccnEqB54CvvcVKbVnJubOF380HqdyZAxWfQ8egnFCESdlXWEIbxFgjfhcGfZUvQx5Nqw9Ofw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "12.4.0", + "@vueuse/shared": "12.4.0", + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^5", + "drauu": "^0.4", + "focus-trap": "^7", + "fuse.js": "^7", + "idb-keyval": "^6", + "jwt-decode": "^4", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^7" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-12.4.0.tgz", + "integrity": "sha512-AhPuHs/qtYrKHUlEoNO6zCXufu8OgbR8S/n2oMw1OQuBQJ3+HOLQ+EpvXs+feOlZMa0p8QVvDWNlmcJJY8rW2g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-12.4.0.tgz", + "integrity": "sha512-9yLgbHVIF12OSCojnjTIoZL1+UA10+O4E1aD6Hpfo/DKVm5o3SZIwz6CupqGy3+IcKI8d6Jnl26EQj/YucnW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -4328,6 +5781,31 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/algoliasearch": { + "version": "5.19.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.19.0.tgz", + "integrity": "sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@algolia/client-abtesting": "5.19.0", + "@algolia/client-analytics": "5.19.0", + "@algolia/client-common": "5.19.0", + "@algolia/client-insights": "5.19.0", + "@algolia/client-personalization": "5.19.0", + "@algolia/client-query-suggestions": "5.19.0", + "@algolia/client-search": "5.19.0", + "@algolia/ingestion": "1.19.0", + "@algolia/monitoring": "1.19.0", + "@algolia/recommend": "5.19.0", + "@algolia/requester-browser-xhr": "5.19.0", + "@algolia/requester-fetch": "5.19.0", + "@algolia/requester-node-http": "5.19.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -4750,6 +6228,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/birpc": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", + "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5183,6 +6671,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "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", @@ -5573,6 +7072,17 @@ "node": ">= 0.8" } }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -5696,6 +7206,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -5908,6 +7425,22 @@ "dev": true, "license": "MIT" }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/core-js-compat": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", @@ -6024,6 +7557,13 @@ "node": ">=4" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -6261,6 +7801,16 @@ "dev": true, "license": "ISC" }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-indent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", @@ -6271,6 +7821,20 @@ "node": ">=4" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", @@ -6465,6 +8029,13 @@ "dev": true, "license": "MIT" }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" + }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -6759,6 +8330,45 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -7268,6 +8878,13 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -7558,6 +9175,16 @@ "dev": true, "license": "ISC" }, + "node_modules/focus-trap": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz", + "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tabbable": "^6.2.0" + } + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -8370,6 +9997,80 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-html": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", + "integrity": "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-to-html/node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-html/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, "node_modules/hookified": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz", @@ -8404,6 +10105,17 @@ "dev": true, "license": "MIT" }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/htmlparser2": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", @@ -9386,6 +11098,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -9747,6 +11472,13 @@ "node": ">=0.10.0" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lerna": { "version": "8.1.9", "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.9.tgz", @@ -10462,6 +12194,23 @@ "node": ">=8" } }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10663,6 +12412,16 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -10724,6 +12483,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "dev": true, + "license": "MIT" + }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -10741,6 +12507,13 @@ "markdown-it": "bin/markdown-it.mjs" } }, + "node_modules/markdown-it-footnote": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-4.0.0.tgz", + "integrity": "sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==", + "dev": true, + "license": "MIT" + }, "node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", @@ -11038,6 +12811,89 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-to-hast/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.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", @@ -11467,6 +13323,100 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -11727,6 +13677,13 @@ "dev": true, "license": "ISC" }, + "node_modules/minisearch": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.1.1.tgz", + "integrity": "sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==", + "dev": true, + "license": "MIT" + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -11761,6 +13718,13 @@ "dev": true, "license": "ISC" }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -11774,6 +13738,19 @@ "node": ">=10" } }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -11828,6 +13805,25 @@ "dev": true, "license": "ISC" }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -12684,6 +14680,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-es": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.2.0.tgz", + "integrity": "sha512-EEsso27ri0sf+t4uRFEj5C5gvXQj0d0w1Y2qq06b+hDLBnvzO1rWTwEW4C7ytan6nhg4WPwE26eLoiPhHUbvKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^5.1.1", + "regex-recursion": "^5.1.1" + } + }, "node_modules/open": { "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", @@ -12958,6 +14966,13 @@ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true }, + "node_modules/package-manager-detector": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.8.tgz", + "integrity": "sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==", + "dev": true, + "license": "MIT" + }, "node_modules/pacote": { "version": "18.0.6", "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", @@ -13209,10 +15224,24 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.2.tgz", + "integrity": "sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -13344,6 +15373,18 @@ "node": ">=8" } }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/pluralize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", @@ -13361,6 +15402,35 @@ "node": ">= 0.4" } }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/postcss-selector-parser": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", @@ -13375,6 +15445,17 @@ "node": ">=4" } }, + "node_modules/preact": { + "version": "10.25.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", + "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -13520,6 +15601,17 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/protocols": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", @@ -13922,6 +16014,34 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regex": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", + "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz", + "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex": "^5.1.1", + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", @@ -14187,6 +16307,45 @@ "dev": true, "license": "MIT" }, + "node_modules/rollup": { + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.31.0.tgz", + "integrity": "sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.31.0", + "@rollup/rollup-android-arm64": "4.31.0", + "@rollup/rollup-darwin-arm64": "4.31.0", + "@rollup/rollup-darwin-x64": "4.31.0", + "@rollup/rollup-freebsd-arm64": "4.31.0", + "@rollup/rollup-freebsd-x64": "4.31.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.31.0", + "@rollup/rollup-linux-arm-musleabihf": "4.31.0", + "@rollup/rollup-linux-arm64-gnu": "4.31.0", + "@rollup/rollup-linux-arm64-musl": "4.31.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.31.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.31.0", + "@rollup/rollup-linux-riscv64-gnu": "4.31.0", + "@rollup/rollup-linux-s390x-gnu": "4.31.0", + "@rollup/rollup-linux-x64-gnu": "4.31.0", + "@rollup/rollup-linux-x64-musl": "4.31.0", + "@rollup/rollup-win32-arm64-msvc": "4.31.0", + "@rollup/rollup-win32-ia32-msvc": "4.31.0", + "@rollup/rollup-win32-x64-msvc": "4.31.0", + "fsevents": "~2.3.2" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -14312,6 +16471,14 @@ "dev": true, "license": "MIT" }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -14409,6 +16576,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/shiki": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.0.3.tgz", + "integrity": "sha512-njF3iF97mxWcEFxxB591EeVFgf5VPpXJKFIB3RCFSkcgINetMIb+9CfNInmzkz8BlPWlEEY1nSGd0F1807YhCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.0.3", + "@shikijs/engine-javascript": "2.0.3", + "@shikijs/engine-oniguruma": "2.0.3", + "@shikijs/langs": "2.0.3", + "@shikijs/themes": "2.0.3", + "@shikijs/types": "2.0.3", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -14585,6 +16769,27 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -14621,6 +16826,16 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -14813,6 +17028,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities/node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -14916,6 +17157,19 @@ "boundary": "^2.0.0" } }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14942,6 +17196,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "dev": true, + "license": "MIT" + }, "node_modules/table": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", @@ -15611,6 +17872,13 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -15661,6 +17929,17 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", @@ -15857,6 +18136,13 @@ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, "node_modules/uglify-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", @@ -15897,6 +18183,13 @@ "node": ">=18.17" } }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, "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", @@ -16024,6 +18317,27 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, "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", @@ -16038,6 +18352,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "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", @@ -16053,6 +18383,42 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-visit/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.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", @@ -16221,6 +18587,142 @@ "node": ">=4" } }, + "node_modules/vite": { + "version": "5.4.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.12.tgz", + "integrity": "sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitepress": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.6.1.tgz", + "integrity": "sha512-n41KBL08aonxaWMnk5V+TkpZ29rZF4sgYjvIqU2k0foteNhgms5BmbVWw9xTqD5hps12H1W+EZUwc7NlHh1s3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@docsearch/css": "^3.8.2", + "@docsearch/js": "^3.8.2", + "@iconify-json/simple-icons": "^1.2.20", + "@shikijs/core": "^2.0.0", + "@shikijs/transformers": "^2.0.0", + "@shikijs/types": "^2.0.0", + "@types/markdown-it": "^14.1.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/devtools-api": "^7.7.0", + "@vue/shared": "^3.5.13", + "@vueuse/core": "^12.4.0", + "@vueuse/integrations": "^12.4.0", + "focus-trap": "^7.6.4", + "mark.js": "8.11.1", + "minisearch": "^7.1.1", + "shiki": "^2.0.0", + "vite": "^5.4.12", + "vue": "^3.5.13" + }, + "bin": { + "vitepress": "bin/vitepress.js" + }, + "peerDependencies": { + "markdown-it-mathjax3": "^4", + "postcss": "^8" + }, + "peerDependenciesMeta": { + "markdown-it-mathjax3": { + "optional": true + }, + "postcss": { + "optional": true + } + } + }, + "node_modules/vitepress-plugin-group-icons": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/vitepress-plugin-group-icons/-/vitepress-plugin-group-icons-1.3.5.tgz", + "integrity": "sha512-1f1NP7osRYlNTR0yS5CAqcaasKHRSAzFKpeCUOfCPwYLAFxhCxsEbRtPBm0U1CfrDVa303MsjX18ngGpFGxIMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify-json/logos": "^1.2.4", + "@iconify-json/vscode-icons": "^1.2.10", + "@iconify/utils": "^2.2.1" + } + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/walk-up-path": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", @@ -16829,7 +19331,12 @@ } }, "website": { - "version": "1.2.5" + "version": "1.2.5", + "devDependencies": { + "markdown-it-footnote": "^4.0.0", + "vitepress": "^1.6.1", + "vitepress-plugin-group-icons": "^1.3.5" + } } } } diff --git a/package.json b/package.json index 2c678d62..ae538b9b 100644 --- a/package.json +++ b/package.json @@ -13,23 +13,27 @@ "scripts": { "prepare": "husky", "publish-package": "npx lerna publish from-package --pre-dist-tag canary --yes", - "build": "npx lerna run build", + "dev": "npm run dev -w website", + "start": "npm run start -w website", "test": "npx lerna run test --concurrency 1", "coverage": "npx c8 --reporter=lcov npm run test", + "build": "npx lerna run build", + "build:website": "npm run build -w website", + "fix": "concurrently \"npm:fix:*\"", + "fix:eslint": "npx eslint --fix", + "fix:prettier": "npx prettier . --write", "lint": "concurrently \"npm:lint:*\"", "lint:eslint": "npx eslint", "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", - "fix:prettier": "npx prettier . --write" + "lint:textlint": "npx textlint -f pretty-error **/*.md" }, "devDependencies": { "@babel/cli": "^7.24.8", "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", + "@types/node": "^22.10.9", "c8": "^10.1.3", "concurrently": "^9.0.0", "editorconfig-checker": "^6.0.0", diff --git a/website/.vitepress/config.mjs b/website/.vitepress/config.mjs new file mode 100644 index 00000000..21bab488 --- /dev/null +++ b/website/.vitepress/config.mjs @@ -0,0 +1,330 @@ +/** + * @fileoverview Vitepress site configuration. + * + * @see https://vitepress.dev/reference/site-config#site-config + */ + +/* eslint-disable import/no-extraneous-dependencies -- TODO: Delete it after this rule is updated in `eslint-config-bananass` */ + +// -------------------------------------------------------------------------------- +// Import +// -------------------------------------------------------------------------------- + +import footnote from 'markdown-it-footnote'; +import { defineConfig } from 'vitepress'; +import { groupIconMdPlugin, groupIconVitePlugin } from 'vitepress-plugin-group-icons'; + +// -------------------------------------------------------------------------------- +// Constants +// -------------------------------------------------------------------------------- + +const TITLE = 'clang-format-node'; +const DESCRIPTION = + "The official documentation website for clang-format-node, a Node.js wrapper for LLVM Clang's clang-format and git-clang-format native binaries inspired by angular/clang-format.🐉"; +const AUTHOR = '루밀LuMir'; +const SITE_URL = 'https://clang-format-node.lumir.page'; +const GITHUB_URL = 'https://github.com/lumirlumir/npm-clang-format-node'; +const NPM_URL = 'https://www.npmjs.com'; + +// -------------------------------------------------------------------------------- +// Export +// -------------------------------------------------------------------------------- + +export default defineConfig({ + /* Site Metadata */ + title: TITLE, + description: DESCRIPTION, + head: [ + // Basic + ['link', { rel: 'icon', href: '/logo-lightgray.svg', type: 'image/svg+xml' }], + ['meta', { name: 'title', content: TITLE }], + ['meta', { name: 'theme-color', content: '#83ba63' }], + ['meta', { name: 'author', content: AUTHOR }], + [ + 'meta', + { + name: 'keywords', + content: 'LLVM, clang-format, clang-format-node, git-clang-format', + }, + ], + + // Open Graph + ['meta', { property: 'og:type', content: 'website' }], + ['meta', { property: 'og:url', content: SITE_URL }], + ['meta', { property: 'og:title', content: TITLE }], + ['meta', { property: 'og:description', content: DESCRIPTION }], + ['meta', { property: 'og:image', content: `${SITE_URL}/logo-og.png` }], + ['meta', { property: 'og:image:width', content: '1280' }], + ['meta', { property: 'og:image:height', content: '640' }], + ['meta', { property: 'og:site_name', content: TITLE }], + ['meta', { property: 'og:article:author', content: AUTHOR }], + + // Twitter + ['meta', { name: 'twitter:url', content: SITE_URL }], + ['meta', { name: 'twitter:title', content: TITLE }], + ['meta', { name: 'twitter:description', content: DESCRIPTION }], + ['meta', { name: 'twitter:image', content: `${SITE_URL}/logo-og.png` }], + ['meta', { name: 'twitter:creator', content: AUTHOR }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + + // TODO: Add @vercel/speed-insight + // TODO: Add @vercel/analytics + ], + lang: 'en-US', + + // TODO: stylelint? + + /* Routing */ + cleanUrls: true, + + /* Build */ + outDir: 'build', + metaChunk: true, + + /* Theming */ + lastUpdated: true, + + /* Sitemap */ + sitemap: { + hostname: SITE_URL, + }, + + /* Thme Configuration */ + themeConfig: { + logo: { + light: '/logo-black.svg', + dark: '/logo-white.svg', + alt: 'clang-format-node Logo', + }, + + outline: { + level: 'deep', + }, + + nav: [ + { + text: 'Get Started', + link: '/docs/get-started', + activeMatch: '/docs/get-started/', + }, + { + text: 'APIs', + link: '/docs/apis/clang-format-node', + activeMatch: '/docs/apis/', + }, + { + text: 'Others', + activeMatch: '/docs/(?:further-reading|blog|community)/', + items: [ + { + text: 'Further Reading', + link: '/docs/further-reading/guides-on-llvm-clang-format', + activeMatch: '/docs/further-reading/', + }, + { + text: 'Blog', + link: '/docs/blog/v1.2.0', + activeMatch: '/docs/blog/', + }, + { + text: 'Community', + link: '/docs/community/code-of-conduct', + activeMatch: '/docs/community/', + }, + ], + }, + { + text: 'Examples', + link: `${GITHUB_URL}/tree/main/examples`, + }, + { + text: 'Packages', + items: [ + { + text: 'clang-format-node', + link: `${NPM_URL}/package/clang-format-node`, + }, + { + text: 'clang-format-git', + link: `${NPM_URL}/package/clang-format-git`, + }, + { + text: 'clang-format-git-python', + link: `${NPM_URL}/package/clang-format-git-python`, + }, + ], + }, + ], + + sidebar: { + '/docs/': [ + { + base: '/docs/get-started/', + text: 'Get Started', + link: '/', + collapsed: false, // Set it `false` to show `>` icon. + items: [ + { + text: 'Why We Started This Project', + link: 'why-we-started-this-project', + }, + { + text: 'Installation', + link: 'installation', + }, + { + text: 'Configuration', + link: 'configuration', + }, + { + text: 'Ignore Files', + link: 'ignore-files', + }, + { + text: 'CLI', + link: 'cli', + }, + { + text: 'Supported', + link: 'supported', + }, + { + text: 'Migration Guide', + link: 'migration-from-angular-clang-format', + }, + { + text: 'Use with husky, lint-staged', + link: 'use-with-husky-and-lint-staged', + }, + ], + }, + + { + base: '/docs/apis/', + text: 'APIs', + collapsed: true, + items: [ + { + text: 'clang-format-node', + link: 'clang-format-node', + }, + { + text: 'clang-format-git', + link: 'clang-format-git', + }, + { + text: 'clang-format-git-python', + link: 'clang-format-git-python', + }, + ], + }, + + { + base: '/docs/further-reading/', + text: 'Further Reading', + collapsed: true, + items: [ + { + text: 'Guides on LLVM Clang Format', + link: 'guides-on-llvm-clang-format', + }, + { + text: 'Build Process', + link: 'build-process', + }, + { + text: 'os.platform(), os.arch()', + link: 'about-os-platform-and-os-arch-in-nodejs', + }, + { + text: '|| exit 0 and || true', + link: 'difference-between-exit-0-and-true', + }, + ], + }, + + { + base: '/docs/blog/', + text: 'Blog', + collapsed: true, + items: [ + { + text: 'v1.2.0', + link: 'v1.2.0', + }, + ], + }, + + { + base: '/docs/community/', + text: 'Community', + collapsed: true, + items: [ + { + text: 'Code of Conduct', + link: 'code-of-conduct', + }, + { + text: 'Contributing', + link: 'contributing', + }, + { + text: 'Change Log', + link: 'change-log', + }, + { + text: 'Versioning', + link: 'versioning', + }, + { + text: 'Security', + link: 'security', + }, + { + text: 'License', + link: 'license', + }, + ], + }, + ], + }, + + socialLinks: [ + { + icon: 'npm', + link: `${NPM_URL}/~lumir`, + ariaLabel: 'npm profile link for LuMir', + }, + { + icon: 'github', + link: GITHUB_URL, + ariaLabel: 'GitHub repository link for clang-format-node', + }, + ], + + editLink: { + pattern: `${GITHUB_URL}/edit/main/website/:path`, + text: 'Edit this page on GitHub', + }, + + search: { + provider: 'local', + }, + + footer: { + message: 'Released under the MIT License.', + copyright: `Copyright © 2024-present ${AUTHOR}(lumirlumir)`, + }, + }, + + markdown: { + config(md) { + md.use(footnote); + md.use(groupIconMdPlugin); + }, + }, + + vite: { + plugins: [groupIconVitePlugin()], + }, +}); diff --git a/website/.vitepress/theme/index.mjs b/website/.vitepress/theme/index.mjs new file mode 100644 index 00000000..6e67e6b5 --- /dev/null +++ b/website/.vitepress/theme/index.mjs @@ -0,0 +1,21 @@ +/** + * @fileoverview VitePress theme entry file. + * + * @see https://vitepress.dev/guide/custom-theme#using-a-custom-theme + */ + +// -------------------------------------------------------------------------------- +// Import +// -------------------------------------------------------------------------------- + +import theme from 'vitepress/theme'; + +import './style.css'; +import 'virtual:group-icons.css'; // eslint-disable-line n/no-missing-import + +// -------------------------------------------------------------------------------- +// Export +// -------------------------------------------------------------------------------- + +/** @type {import('vitepress').Theme} */ +export default theme; diff --git a/website/.vitepress/theme/style.css b/website/.vitepress/theme/style.css new file mode 100644 index 00000000..ae27cc76 --- /dev/null +++ b/website/.vitepress/theme/style.css @@ -0,0 +1,105 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * + * Each colors have exact same color scale system with 3 levels of solid + * colors with different brightness, and 1 soft color. + * + * - `XXX-1`: The most solid color used mainly for colored text. It must + * satisfy the contrast ratio against when used on top of `XXX-soft`. + * + * - `XXX-2`: The color used mainly for hover state of the button. + * + * - `XXX-3`: The color for solid background, such as bg color of the button. + * It must satisfy the contrast ratio with pure white (#ffffff) text on + * top of it. + * + * - `XXX-soft`: The color used for subtle background such as custom container + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors + * on top of it. + * + * The soft color must be semi transparent alpha channel. This is crucial + * because it allows adding multiple "soft" colors on top of each other + * to create a accent, such as when having inline code block inside + * custom containers. + * + * - `default`: The color used purely for subtle indication without any + * special meanings attached to it such as bg color for menu hover state. + * + * - `brand`: Used for primary brand colors, such as link text, button with + * brand theme, etc. + * + * - `tip`: Used to indicate useful information. The default theme uses the + * brand color for this by default. + * + * - `warning`: Used to indicate warning to the users. Used in custom + * container, badges, etc. + * + * - `danger`: Used to show error, or dangerous message to the users. Used + * in custom container, badges, etc. + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-brand-1: #83ba63; /* Node.js Brand Color */ + --vp-c-brand-2: #417f38; /* Node.js Brand Color */ + --vp-c-brand-3: #215127; /* Node.js Brand Color */ + --vp-c-brand-soft: #83ba6340; +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient(150deg, #83ba63 20%, #41d1ff); + + --vp-home-hero-image-background-image: linear-gradient( + -45deg, + #83ba63 50%, + #41d1ff 50% + ); + --vp-home-hero-image-filter: blur(44px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } + + .image-container { + transform: scale(2) translate(0px, -16px) !important; + } + + .image-bg { + width: 320px !important; + height: 320px !important; + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(64px); + } + + .image-container { + transform: scale(2) translate(-64px, -32px) !important; + } + + .image-bg { + width: 384px !important; + height: 384px !important; + } +} + +/** + * Markdown Document + * -------------------------------------------------------------------------- */ + +.vp-doc p img { + display: inline; +} diff --git a/docs/02-packages/03-clang-format-git-python.md b/website/docs/apis/clang-format-git-python.md similarity index 60% rename from docs/02-packages/03-clang-format-git-python.md rename to website/docs/apis/clang-format-git-python.md index c171250b..a600ec21 100644 --- a/docs/02-packages/03-clang-format-git-python.md +++ b/website/docs/apis/clang-format-git-python.md @@ -1,63 +1,65 @@ # `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) +[![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) > [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**. +Node wrapper for `git-clang-format` Python script. **This package requires Python3 as a dependency**. + +> [!TIP] +> +> This package also supports JSDoc type hints with the following APIs, so you’ll see more detailed information directly in your code editor. ## Installation -This package already includes `clang-format-node`, so there’s no need to install it separately. +This package already includes `clang-format-node` as a dependency, so there’s no need to install it separately. -### global +::: code-group -```bash -npm install -g clang-format-git-python +```sh [npm] +# Global +$ npm install -g clang-format-git-python +# Local +$ npm install -D clang-format-git-python ``` -```bash -yarn global add clang-format-git-python +```sh [pnpm] +# Global +$ pnpm add -g clang-format-git-python +# Local +$ pnpm add -D clang-format-git-python ``` -```bash -pnpm add -g clang-format-git-python +```sh [yarn] +# Global +$ yarn global add clang-format-git-python +# Local +$ yarn add --dev clang-format-git-python ``` -```bash -bun add -g clang-format-git-python +```sh [bun] +# Global +$ bun add -g clang-format-git-python +# Local +$ bun add -d clang-format-git-python ``` -### local(devDependencies) - -```bash -npm install --save-dev clang-format-git-python -``` +::: -```bash -yarn add --dev clang-format-git-python -``` - -```bash -pnpm add -D clang-format-git-python -``` - -```bash -bun add -d clang-format-git-python -``` - -## Usage +## CLI Commands You can use the commands below to run `git-clang-format`. +> [!NOTE] +> > `clang-format-git-python` is an alias for `git-clang-format` and works in exactly the same way. -```bash +```sh npx git-clang-format ``` -```bash +```sh npx clang-format-git-python ``` @@ -67,7 +69,7 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - CommonJS - ```javascript + ```js const { gitClangFormatPath, clangFormatGitPythonPath, @@ -76,23 +78,31 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - ES Modules - ```javascript + ```js import { gitClangFormatPath, clangFormatGitPythonPath, } from 'clang-format-git-python'; ``` +--- + ### `gitClangFormatPath` +> Type: `string` + 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. +--- + ### `clangFormatGitPythonPath` +> Type: `string` + Alias for `gitClangFormatPath`. - Alias: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). diff --git a/docs/02-packages/02-clang-format-git.md b/website/docs/apis/clang-format-git.md similarity index 74% rename from docs/02-packages/02-clang-format-git.md rename to website/docs/apis/clang-format-git.md index c43bea6e..a3369dfe 100644 --- a/docs/02-packages/02-clang-format-git.md +++ b/website/docs/apis/clang-format-git.md @@ -1,63 +1,65 @@ # `clang-format-git` -[![NPM Version](https://img.shields.io/npm/v/clang-format-git)](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) > [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**. +Node wrapper for `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. + +> [!TIP] +> +> This package also supports JSDoc type hints with the following APIs, so you’ll see more detailed information directly in your code editor. ## Installation -This package already includes `clang-format-node`, so there’s no need to install it separately. +This package already includes `clang-format-node` as a dependency, so there’s no need to install it separately. -### global +::: code-group -```bash -npm install -g clang-format-git +```sh [npm] +# Global +$ npm install -g clang-format-git +# Local +$ npm install -D clang-format-git ``` -```bash -yarn global add clang-format-git +```sh [pnpm] +# Global +$ pnpm add -g clang-format-git +# Local +$ pnpm add -D clang-format-git ``` -```bash -pnpm add -g clang-format-git +```sh [yarn] +# Global +$ yarn global add clang-format-git +# Local +$ yarn add --dev clang-format-git ``` -```bash -bun add -g clang-format-git +```sh [bun] +# Global +$ bun add -g clang-format-git +# Local +$ bun add -d clang-format-git ``` -### local(devDependencies) - -```bash -npm install --save-dev clang-format-git -``` - -```bash -yarn add --dev clang-format-git -``` - -```bash -pnpm add -D clang-format-git -``` - -```bash -bun add -d clang-format-git -``` +::: -## Usage +## CLI Commands You can use the commands below to run `git-clang-format`. +> [!NOTE] +> > `clang-format-git` is an alias for `git-clang-format` and works in exactly the same way. -```bash +```sh npx git-clang-format ``` -```bash +```sh npx clang-format-git ``` @@ -67,7 +69,7 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - CommonJS - ```javascript + ```js const { gitClangFormatPath, clangFormatGitPath, @@ -78,7 +80,7 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - ES Modules - ```javascript + ```js import { gitClangFormatPath, clangFormatGitPath, @@ -87,8 +89,12 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so } from 'clang-format-git'; ``` +--- + ### `gitClangFormatPath` +> Type: `string` + The ABSOLUTE path to the `git-clang-format` executable binary based on the OS platform and architecture. #### Alias and Version @@ -96,8 +102,12 @@ The ABSOLUTE path to the `git-clang-format` executable binary based on the OS pl - Alias: `clangFormatGitPath`. See [`clangFormatGitPath`](#clangformatgitpath). - Version: `v1.2.0` Initial release. +--- + ### `clangFormatGitPath` +> Type: `string` + Alias for `gitClangFormatPath`. #### Alias and Version @@ -105,8 +115,12 @@ Alias for `gitClangFormatPath`. - Alias: `gitClangFormatPath`. See [`gitClangFormatPath`](#gitclangformatpath). - Version: `v1.2.0` Initial release. +--- + ### `getGitClangFormatPath` +> Type: `function` + Returns the ABSOLUTE path to the `git-clang-format` executable binary based on the OS platform and architecture. The possible combinations are `darwin-arm64`, `darwin-x64`, `linux-arm`, `linux-arm64`, `linux-ppc64`, `linux-s390x`, `linux-x64`, `win32-x64`. @@ -131,8 +145,12 @@ Throws an error if the executable is not found. - Alias: `getClangFormatGitPath`. See [`getClangFormatGitPath`](#getclangformatgitpath). - Version: `v1.2.0` Initial release. +--- + ### `getClangFormatGitPath` +> Type: `function` + Alias for `getGitClangFormatPath`. #### Alias and Version diff --git a/docs/02-packages/01-clang-format-node.md b/website/docs/apis/clang-format-node.md similarity index 72% rename from docs/02-packages/01-clang-format-node.md rename to website/docs/apis/clang-format-node.md index 4ba1aeb9..73251401 100644 --- a/docs/02-packages/01-clang-format-node.md +++ b/website/docs/apis/clang-format-node.md @@ -1,63 +1,65 @@ # `clang-format-node` -[![NPM Version](https://img.shields.io/npm/v/clang-format-node)](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) > [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.) +Node wrapper for `clang-format` native binary inspired by [angular/clang-format](https://github.com/angular/clang-format). (The **CORE** package.) + +> [!TIP] +> +> This package also supports JSDoc type hints with the following APIs, so you’ll see more detailed information directly in your code editor. ## 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`](clang-format-git.md) or [`clang-format-git-python`](clang-format-git-python.md). -### global +::: code-group -```bash -npm install -g clang-format-node +```sh [npm] +# Global +$ npm install -g clang-format-node +# Local +$ npm install -D clang-format-node ``` -```bash -yarn global add clang-format-node +```sh [pnpm] +# Global +$ pnpm add -g clang-format-node +# Local +$ pnpm add -D clang-format-node ``` -```bash -pnpm add -g clang-format-node +```sh [yarn] +# Global +$ yarn global add clang-format-node +# Local +$ yarn add --dev clang-format-node ``` -```bash -bun add -g clang-format-node +```sh [bun] +# Global +$ bun add -g clang-format-node +# Local +$ bun add -d clang-format-node ``` -### local(devDependencies) - -```bash -npm install --save-dev clang-format-node -``` - -```bash -yarn add --dev clang-format-node -``` - -```bash -pnpm add -D clang-format-node -``` - -```bash -bun add -d clang-format-node -``` +::: -## Usage +## CLI Commands You can use the commands below to run `clang-format`. +> [!NOTE] +> > `clang-format-node` is an alias for `clang-format` and works in exactly the same way. -```bash +```sh npx clang-format ``` -```bash +```sh npx clang-format-node ``` @@ -67,7 +69,7 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - CommonJS - ```javascript + ```js const { clangFormatPath, clangFormatNodePath, @@ -78,7 +80,7 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so - ES Modules - ```javascript + ```js import { clangFormatPath, clangFormatNodePath, @@ -87,8 +89,12 @@ These APIs depends on the Node.js `fs` and `path` module and the file system, so } from 'clang-format-node'; ``` +--- + ### `clangFormatPath` +> Type: `string` + The ABSOLUTE path to the `clang-format` executable binary based on the OS platform and architecture. #### Alias and Version @@ -96,8 +102,12 @@ The ABSOLUTE path to the `clang-format` executable binary based on the OS platfo - Alias: `clangFormatNodePath`. See [`clangFormatNodePath`](#clangformatnodepath). - Version: `v1.2.0` Initial release. +--- + ### `clangFormatNodePath` +> Type: `string` + Alias for `clangFormatPath`. #### Alias and Version @@ -105,8 +115,12 @@ Alias for `clangFormatPath`. - Alias: `clangFormatPath`. See [`clangFormatPath`](#clangformatpath). - Version: `v1.2.0` Initial release. +--- + ### `getClangFormatPath` +> Type: `function` + Returns the ABSOLUTE path to the `clang-format` executable binary based on the OS platform and architecture. The possible combinations are `darwin-arm64`, `darwin-x64`, `linux-arm`, `linux-arm64`, `linux-ppc64`, `linux-s390x`, `linux-x64`, `win32-x64`. @@ -131,8 +145,12 @@ Throws an error if the executable is not found. - Alias: `getClangFormatNodePath`. See [`getClangFormatNodePath`](#getclangformatnodepath). - Version: `v1.2.0` Initial release. +--- + ### `getClangFormatNodePath` +> Type: `function` + Alias for `getClangFormatPath`. #### Alias and Version diff --git a/website/docs/blog/v1.2.0.md b/website/docs/blog/v1.2.0.md new file mode 100644 index 00000000..de3d9776 --- /dev/null +++ b/website/docs/blog/v1.2.0.md @@ -0,0 +1,33 @@ +--- +description: Release notes for clang-format-node v1.2.0, a Node.js package for formatting C, C++, Java, and more. +head: + - - meta + - name: keywords + content: 'releases, v1.2.0, clang-format-node, npm, package' +--- + +# Release of v1.2.0 {#release-of-v1-2-0} + +I’m excited to share the new release of `clang-format-node` v1.2.0, a formatter for C, C++, Java, JavaScript, JSON, Objective-C, Protobuf, and C#, built on Clang for the Node.js environment. This project is a fresh take, inspired by Angular’s deprecated [`clang-format`](https://github.com/angular/clang-format) package. + +I previously introduced this project to the open source community a month or two ago , but I’m sharing it again as it has become even more stable and new features have been added. Thanks to the interest and support from the community, and the adoption by legacy users, the package recently hit over 10,000 weekly downloads. I am deeply grateful for this support. + +This package now has full test coverage and a PR is in progress to replace the old Angular `clang-format` in the Node.js core with this updated package. While it’s thoroughly tested, there could still be edge cases I might have missed, so any feedback is welcome! + +## What `clang-format-node` does {#what-clang-format-node-does} + +The package leverages Clang’s `clang-format` and `git-clang-format`, known for its widespread use in formatting C, C++ and Java code. Think of it as similar to [Prettier](https://prettier.io/), but specifically for languages like C, C++ and Java, which Prettier does not support. + +This formatter is especially useful in the Node.js environment when you’re working on projects that mix JavaScript with C, C++ code, such as core Node.js development. The package eliminates the need to install additional dependencies for using `clang-format` and `git-clang-format`. While the original `clang-format` package was challenging to integrate into Node.js and npm workflows, this new package streamlines the process. You can easily set it up in CI by simply downloading it via npm and configuring your scripts, which makes it much easier to use in automated environments. + +## New features in v1.2.0 {#new-features-in-v1-2-0} + +With the recent update to v1.2.0, we’ve added several new features, notably the `git-clang-format` package. + +Let’s consider a scenario where you want to introduce code formatting for a C/C++ project. In smaller projects, you can reformat all the code at once without causing too much disruption. However, in larger projects, reformatting the entire codebase at once can make commit history harder to track. + +Now, let’s imagine a developer modifies 100 lines within a 1,000-line codebase. Instead of reformatting the entire file, it would be better to check and format only the modified lines. This keeps the commit history clean and consistent. Additionally, as the project evolves, formatting becomes more uniform over time. `git-clang-format` helps achieve this by allowing formatting to be applied only to modified lines, similar to how [`lint-staged`](https://github.com/lint-staged/lint-staged) checks only staged files to optimize CI speed. + +I’ve also wrapped `git-clang-format` as a standalone package, leveraging LLVM’s native support for this feature. The detailed instructions are available in the official documentation, though currently only in English. + +Thank you for reading, and please feel free to leave any questions or feedback on GitHub! diff --git a/website/docs/community/change-log.md b/website/docs/community/change-log.md new file mode 100644 index 00000000..09339789 --- /dev/null +++ b/website/docs/community/change-log.md @@ -0,0 +1 @@ + diff --git a/website/docs/community/code-of-conduct.md b/website/docs/community/code-of-conduct.md new file mode 100644 index 00000000..8226c3d2 --- /dev/null +++ b/website/docs/community/code-of-conduct.md @@ -0,0 +1 @@ + diff --git a/website/docs/community/contributing.md b/website/docs/community/contributing.md new file mode 100644 index 00000000..4dd029d9 --- /dev/null +++ b/website/docs/community/contributing.md @@ -0,0 +1 @@ + diff --git a/website/docs/community/license.md b/website/docs/community/license.md new file mode 100644 index 00000000..45fbe511 --- /dev/null +++ b/website/docs/community/license.md @@ -0,0 +1 @@ + diff --git a/website/docs/community/security.md b/website/docs/community/security.md new file mode 100644 index 00000000..9699e3d9 --- /dev/null +++ b/website/docs/community/security.md @@ -0,0 +1 @@ + diff --git a/docs/04-community/04-versioning.md b/website/docs/community/versioning.md similarity index 79% rename from docs/04-community/04-versioning.md rename to website/docs/community/versioning.md index 97744b00..305e7cce 100644 --- a/docs/04-community/04-versioning.md +++ b/website/docs/community/versioning.md @@ -1,3 +1,7 @@ +--- +description: "This project follows Semantic Versioning, with version updates based on LLVM version upgrades, breaking changes, feature additions, or bug fixes." +--- + # Versioning This project adheres to [Semantic Versioning](https://semver.org/). diff --git a/docs/03-others/02-about-os-platform-and-os-arch-in-nodejs.md b/website/docs/further-reading/about-os-platform-and-os-arch-in-nodejs.md similarity index 91% rename from docs/03-others/02-about-os-platform-and-os-arch-in-nodejs.md rename to website/docs/further-reading/about-os-platform-and-os-arch-in-nodejs.md index 913a41ca..ad746cab 100644 --- a/docs/03-others/02-about-os-platform-and-os-arch-in-nodejs.md +++ b/website/docs/further-reading/about-os-platform-and-os-arch-in-nodejs.md @@ -1,3 +1,7 @@ +--- +description: "Explanation of `os.platform()` and `os.arch()` in Node.js with return values based on OS and architecture." +--- + # About `os.platform()` and `os.arch()` in Node.js ## [`os.platform()`](https://nodejs.org/docs/v20.17.0/api/os.html#osplatform) diff --git a/docs/03-others/03-build-process.md b/website/docs/further-reading/build-process.md similarity index 83% rename from docs/03-others/03-build-process.md rename to website/docs/further-reading/build-process.md index 76e6552a..f36f527a 100644 --- a/docs/03-others/03-build-process.md +++ b/website/docs/further-reading/build-process.md @@ -1,3 +1,7 @@ +--- +description: "Guide for building the `clang-format` native binary on Linux and cross-platform build using QEMU and Docker." +--- + # Build process ## How to build `clang-format` native binary on Linux @@ -26,4 +30,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/#docker-build-images). +If you want to learn more about the images I used, see [Docker Build Images](../get-started/supported.md#docker-build-images). diff --git a/website/docs/further-reading/difference-between-exit-0-and-true.md b/website/docs/further-reading/difference-between-exit-0-and-true.md new file mode 100644 index 00000000..c57092aa --- /dev/null +++ b/website/docs/further-reading/difference-between-exit-0-and-true.md @@ -0,0 +1,83 @@ +--- +description: This article breaks down the differences between `myscript || exit 0` and `myscript || true`, highlighting how they handle failures, affect script flow, and work on different platforms like POSIX and Windows. +head: + - - meta + - name: keywords + content: 'Shell Scripting, POSIX Compatibility, Cross-Platform Behavior, || true, || exit 0' +--- + +# Difference Between `myscript || exit 0` and `myscript || true` {#difference-between-myscript-exit-0-and-myscript-true} + +> [!NOTE] +> +> I've referred to the [A Clean Exit](https://remysharp.com/2018/01/08/a-clean-exit) blog post, [#170](https://github.com/lumirlumir/npm-clang-format-node/issues/170) and [#171](https://github.com/lumirlumir/npm-clang-format-node/pull/171). + +When writing or running shell scripts, the `||` operator is commonly used to handle cases where a specific command fails. The `||` operator is designed to execute the command on its right **only when the preceding command fails**. At first glance, `myscript || exit 0` and `myscript || true` might seem similar, but they have subtle differences, especially regarding the behavior of `|| true` across different platforms. + +## 1. `myscript || exit 0` {#1-some-script-exit-0} + +`exit 0` immediately terminates the script while returning a **successful exit code (`0`)**. + +> [!TIP] +> +> - `exit 0` → success +> - `exit 1` → failure + +In this case, if `myscript` fails (i.e., returns a non-zero exit code), `exit 0` is executed, marking the script as **"successfully terminated" despite the failure**. This approach can be useful in scenarios like CI/CD pipelines where errors need to be ignored, and the process should continue or be logged as successful. + +```sh +sh -c "myscript || exit 0" +``` + +The above command ensures that even if `myscript` fails, the script returns exit code `0`, allowing subsequent processes to treat it as a success. + +## 2. `myscript || true` {#2-some-script-true} + +`true` is a command in Linux/Unix(POSIX) systems that always returns a **successful exit code (`0`)**. When using `myscript || true`, even if `myscript` fails, `true` will execute and return a **successful exit code (`0`)**. + +However, unlike `exit 0`, `true` does **not terminate the current script**; it merely returns a success status, allowing the rest of the script to continue execution. + +```sh +sh -c "myscript || true" +``` + +In this case, if `myscript` fails, `true` is executed, ensuring an exit code of `0`, but the script continues running. + +## 3. Cross-Platform Behavior {#3-cross-platform-behavior} + +`|| true` works as expected on POSIX-compliant shells (e.g., bash, zsh) and Git Bash. However, it does **not work in Windows PowerShell or CMD**. + +For Windows environments using PowerShell or CMD, the `|| true` syntax is unsupported, and you should use alternatives like `|| exit 0`. + +## 4. Key Differences Summary {#4-key-differences-summary} + +| Aspect | `myscript \|\| exit 0` | `myscript \|\| true` | +|-------------------------|--------------------------------------------------------|------------------------------------------------------------| +| **On Failure** | Terminates the script (exit) with a success code (`0`) | Returns a success code (`0`) and continues execution | +| **Script Flow Control** | The script immediately stops | The script continues running | +| **Compatibility** | Works in both POSIX and Windows environments | Works only in POSIX and Git Bash; not in PowerShell or CMD | +| **Use Case** | Ignoring errors and terminating execution | Ignoring errors and proceeding to the next command | + +## 5. Practical Examples {#5-practical-examples} + +- **`myscript || exit 0`**: + + ```sh + nodemon --exec "mocha bad.test.js || exit 0" + ``` + + In this example, if the tests fail, `exit 0` ensures the script exits successfully, allowing nodemon to continue restarting. This approach works in all POSIX and Windows environments. + +- **`myscript || true`**: + + ```sh + npm install || true + ``` + + This command ensures that even if some errors occur during the installation, the script will continue executing. However, this approach works **only in Git Bash or Linux environments** and **will not work in Windows PowerShell or CMD**. + +## 6. Conclusion {#6-conclusion} + +`myscript || exit 0` terminates the script on failure but treats it as a success, while `myscript || true` ignores the failure and allows the script to proceed. However, since `|| true` is **specific to POSIX-compliant environments**, Windows users must find suitable alternatives like `|| exit 0` for compatibility. + +Choosing the right approach for your environment is key to ensuring proper script behavior. I hope this explanation helps you understand the differences between `|| exit 0` and `|| true`! diff --git a/docs/03-others/04-guides-on-llvm-and-clang-format.md b/website/docs/further-reading/guides-on-llvm-clang-format.md similarity index 72% rename from docs/03-others/04-guides-on-llvm-and-clang-format.md rename to website/docs/further-reading/guides-on-llvm-clang-format.md index 71826333..e2110e81 100644 --- a/docs/03-others/04-guides-on-llvm-and-clang-format.md +++ b/website/docs/further-reading/guides-on-llvm-clang-format.md @@ -1,6 +1,10 @@ -# Guides on LLVM and `clang-format` +--- +description: "A collection of useful documentation and guide links related to LLVM `clang-format`." +--- -If you want to learn more about LLVM and `clang-format`, check out the links below. +# Guides on LLVM `clang-format` + +If you want to learn more about LLVM `clang-format`, check out the links below. - [LLVM GitHub Repository](https://github.com/llvm/llvm-project) - [LLVM Download Page](https://releases.llvm.org/download.html) diff --git a/docs/01-introduction/04-getting-started.md b/website/docs/get-started/cli.md similarity index 50% rename from docs/01-introduction/04-getting-started.md rename to website/docs/get-started/cli.md index 9bedcbe4..0c29553b 100644 --- a/docs/01-introduction/04-getting-started.md +++ b/website/docs/get-started/cli.md @@ -1,34 +1,26 @@ -# Getting Started +--- +description: "Instructions for using `clang-format` and `git-clang-format` CLI tools, including common commands and options." +--- -This page explains how to get started with packages related to `clang-format` and highlights their common features. +# CLI -For more detailed information, please refer to each package's individual documentation. - -## Installation - -### `clang-format-node` - -See the [Installation section of `clang-format-node`](../02-packages/01-clang-format-node.md#installation). - -### `clang-format-git` - -See the [Installation section of `clang-format-git`](../02-packages/02-clang-format-git.md#installation). - -### `clang-format-git-python` - -See the [Installation section of `clang-format-git-python`](../02-packages/03-clang-format-git-python.md#installation). +> [!IMPORTANT] +> +> The CLI examples in this page only cover the most common options and do not cover all the available options. To see the full list of options, check the [Clang-Format CLI](https://clang.llvm.org/docs/ClangFormat.html) page which covers `clang-format` and `git-clang-format`. -## Usage: `clang-format` +## `clang-format` -This feature is included in the `clang-format-node` package. +> [!NOTE] +> +> This feature is included in the [`clang-format-node`](../apis/clang-format-node.md) package. -If you want to learn more about `clang-format` itself, see the [`clang-format style options`](https://clang.llvm.org/docs/ClangFormatStyleOptions.html). +If you want to learn more about `clang-format` itself, see the [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html). > [!TIP] > > `clang-format` can take multiple files as arguments. > -> ```bash +> ```sh > npx clang-format -n -Werror file1.cpp file2.cpp src/file3.cpp > ``` @@ -36,15 +28,15 @@ If you want to learn more about `clang-format` itself, see the [`clang-format st 1. Global - ```bash + ```sh clang-format [options] [@] [ ...] ``` 1. Local - Use `npx` to run a locally installed package. + Use `npx` (when using npm) to run a locally installed package. - ```bash + ```sh npx clang-format [options] [@] [ ...] ``` @@ -52,13 +44,13 @@ If you want to learn more about `clang-format` itself, see the [`clang-format st 1. `--version`: Check the version of `clang-format`. - ``` bash + ```sh npx clang-format --version ``` Output example - ```bash + ```sh clang-format version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) ``` @@ -67,7 +59,7 @@ If you want to learn more about `clang-format` itself, see the [`clang-format st 1. `--help`: Help view additional options. - ```bash + ```sh npx clang-format --help ``` @@ -75,33 +67,37 @@ If you want to learn more about `clang-format` itself, see the [`clang-format st `--dry-run` and `-n` options are equivalent. - ```bash + ```sh npx clang-format --dry-run example.cpp ``` - ```bash + ```sh npx clang-format -n example.cpp ``` 1. `-Werror --dry-run` or `-Werror -n`: Makes an **ERROR** when `example.cpp` is not correctly formatted. + > [!TIP] + > > Similar to `eslint` or `prettier --check` commands. `--dry-run` and `-n` options are equivalent. - ```bash + ```sh npx clang-format -Werror --dry-run example.cpp ``` - ```bash + ```sh npx clang-format -Werror -n example.cpp ``` 1. `-i`: Automatically fix unformatted files. + > [!TIP] + > > Similar to `eslint --fix` or `prettier --write` commands. - ```bash + ```sh npx clang-format -i example.cpp ``` @@ -117,13 +113,13 @@ It is simple but can produce an error if the [**Argument list is too long**](htt To recursively search for all `.cpp` files in the current directory, use: - ```bash + ```sh npx clang-format $(find . -name "*.cpp") ``` If the argument list is too long, use `xargs`. And if file names contain spaces or special characters, use `-print0` and `-0` options. `-print0` makes `find` output file names separated by null characters (`\0`), and `-0` tells `xargs` to correctly handle these null-separated file names. - ```bash + ```sh find . -name "*.cpp" -print0 | xargs -0 npx clang-format ``` @@ -131,7 +127,7 @@ It is simple but can produce an error if the [**Argument list is too long**](htt To recursively search for all `.cpp` and `.h` files in the current directory using a regular expression, use: - ```bash + ```sh npx clang-format $(find . -regex ".*\.\(cpp\|h\)") ``` @@ -139,31 +135,35 @@ It is simple but can produce an error if the [**Argument list is too long**](htt To exclude `excluded_file.cpp` from the `.cpp` files, use: - ```bash + ```sh npx clang-format $(find . -name "*.cpp" ! -name "excluded_file.cpp") ``` -## Usage: `git-clang-format` +## `git-clang-format` -This feature is included in the `clang-format-git` and `clang-format-git-python` package. +> [!NOTE] +> +> This feature is included in the [`clang-format-git`](../apis/clang-format-git.md) and [`clang-format-git-python`](../apis/clang-format-git-python.md) package. `clang-format-git` and `clang-format-git-python` are two options for using `git-clang-format`, so you can choose the one that best fits your setup. The usage is same to ['angular/clang-format'](https://github.com/angular/clang-format). +--- + ### Using Without the Python3 Dependency This package provides a standalone executable version of `git-clang-format`, so you won’t need to install Python3. But it's size is quite large. -#### Usage +See the [`clang-format-git` package](../apis/clang-format-git.md). -See the [Usage section of `clang-format-git`](../02-packages/02-clang-format-git.md#usage). +--- ### Using with Python3 Dependency This version has a smaller file size than `clang-format-git`, but it does require **Python3** to run. -#### Usage +See the [`clang-format-git-python` package](../apis/clang-format-git-python.md). -See the [Usage section of `clang-format-git-python`](../02-packages/03-clang-format-git-python.md#usage). +--- ### How to use @@ -171,15 +171,15 @@ See the [Usage section of `clang-format-git-python`](../02-packages/03-clang-for 1. Global - ```bash + ```sh git-clang-format [OPTIONS] [] [|--staged] [--] [...] ``` 1. Local - Use `npx` to run a locally installed package. + Use `npx` (when using npm) to run a locally installed package. - ```bash + ```sh npx git-clang-format [OPTIONS] [] [|--staged] [--] [...] ``` @@ -187,83 +187,6 @@ See the [Usage section of `clang-format-git-python`](../02-packages/03-clang-for 1. `--help`: Help view additional options. - ```bash + ```sh npx git-clang-format --help ``` - -## 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#nodejs-apis). - -### `clang-format-git` - -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#nodejs-apis). - -## [`.clang-format-ignore`](https://clang.llvm.org/docs/ClangFormat.html#clang-format-ignore) - -You can create `.clang-format-ignore` files to make `clang-format` ignore certain files. A `.clang-format-ignore` file consists of patterns of file path names. It has the following format: - -- A blank line is skipped. -- Leading and trailing spaces of a line are trimmed. -- A line starting with a hash (`#`) is a comment. -- A non-comment line is a single pattern. -- The slash (`/`) is used as the directory separator. -- A pattern is relative to the directory of the `.clang-format-ignore` file (or the root directory if the pattern starts with a slash). Patterns containing drive names (e.g. `C:`) are not supported. -- Patterns follow the rules specified in [**POSIX 2.13.1, 2.13.2, and Rule 1 of 2.13.3.**](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13) -- A pattern is negated if it starts with a bang (`!`). - -To match all files in a directory, use e.g. `foo/bar/*`. To match all files in the directory of the `.clang-format-ignore` file, use `*`. Multiple `.clang-format-ignore` files are supported similar to the `.clang-format` files, with a lower directory level file voiding the higher level ones. - -## Use with `husky` and `lint-staged` - -Ensuring that changes to your code are properly formatted is an important part of your development workflow. Use `husky` and `lint-staged` for your continuous integration process. - -### `husky` (v8.x) - -```bash -# .husky/pre-commit - -npx lint-staged -``` - -### `lint-staged` (v15.x) - -1. Check - - ```jsonc - /* package.json */ - - { - // ... - "lint-staged": { - "*.{c,cpp,h}": "npx clang-format -Werror -n", - } - // ... - } - ``` - -1. Fix - - ```jsonc - /* package.json */ - - { - // ... - "lint-staged": { - "*.{c,cpp,h}": "npx clang-format -i", - } - // ... - } - ``` - -> [!TIP] -> -> If `example1.cpp` and `example2.c` are staged, then `npx clang-format -Werror -n example1.cpp example2.c` will be excuted. diff --git a/website/docs/get-started/configuration.md b/website/docs/get-started/configuration.md new file mode 100644 index 00000000..8f81bfb7 --- /dev/null +++ b/website/docs/get-started/configuration.md @@ -0,0 +1,228 @@ +--- +description: "Instructions for setting up and configuring `.clang-format` files in different project structures." +--- + +# Configuration + +## File Location + +### Basic + +Place your `.clang-format` (or [`.clang-format-ignore`](ignore-files.md) if necessary) configuration file in the root of your project. The `clang-format` and `git-clang-format` command will automatically find it and apply the rules. + +```sh {6,7} +my-project/ +├── src/ +│ ├── file1.cpp +│ ├── file2.js +│ └── ... +├── .clang-format # [!code focus] +├── .clang-format-ignore # [!code focus] Optional +├── package.json +└── ... +``` + +### Monorepo + +If you are using monorepo, you can place the configuration file in the root of the monorepo. + +```sh {8,9} +my-monorepo/ +├── packages/ +│ ├── package1/ +│ │ ├── src/ +│ │ │ ├── file1.cpp +│ │ │ ├── file2.js +│ │ │ └── ... +│ │ ├── .clang-format # [!code focus] +│ │ ├── .clang-format-ignore # [!code focus] Optional +│ │ ├── package.json +│ │ └── ... +│ ├── package2/ +│ │ ├── src/ +│ │ │ ├── file1.cpp +│ │ │ ├── file2.js +│ │ │ └── ... +│ │ ├── package.json +│ │ └── ... +│ └── ... +├── package.json +└── ... +``` + +## File Format + +> [!IMPORTANT] +> +> To see the full list of options, check the [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) page. + +You can use the `.clang-format` file to configure the style of your code. Here is an brief example of a `.clang-format` file: + +- Simple: + + ```.clang-format [.clang-format] + BasedOnStyle: Google + ColumnLimit: 90 + ``` + +- Advanced: + + ::: details Node.js project's configuration. See [Node.js repository](https://github.com/nodejs/node/blob/main/.clang-format). + + ```.clang-format [.clang-format] + --- + Language: Cpp + # BasedOnStyle: Google + AccessModifierOffset: -1 + AlignAfterOpenBracket: Align + AlignConsecutiveAssignments: false + AlignConsecutiveDeclarations: false + AlignEscapedNewlines: Right + AlignOperands: true + AlignTrailingComments: true + AllowAllParametersOfDeclarationOnNextLine: true + AllowShortBlocksOnASingleLine: false + AllowShortCaseLabelsOnASingleLine: false + AllowShortFunctionsOnASingleLine: Inline + AllowShortIfStatementsOnASingleLine: true + AllowShortLoopsOnASingleLine: true + AlwaysBreakAfterDefinitionReturnType: None + AlwaysBreakAfterReturnType: None + AlwaysBreakBeforeMultilineStrings: false + AlwaysBreakTemplateDeclarations: true + BinPackArguments: false + BinPackParameters: false + BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true + BreakBeforeBinaryOperators: None + BreakBeforeBraces: Attach + BreakBeforeInheritanceComma: false + BreakBeforeTernaryOperators: true + BreakConstructorInitializersBeforeComma: false + BreakConstructorInitializers: BeforeColon + BreakAfterJavaFieldAnnotations: false + BreakStringLiterals: true + ColumnLimit: 80 + CommentPragmas: '^ IWYU pragma:' + CompactNamespaces: false + ConstructorInitializerAllOnOneLineOrOnePerLine: true + ConstructorInitializerIndentWidth: 4 + ContinuationIndentWidth: 4 + Cpp11BracedListStyle: true + DerivePointerAlignment: false + DisableFormat: false + ExperimentalAutoDetectBinPacking: false + FixNamespaceComments: true + ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH + IncludeBlocks: Preserve + IncludeCategories: + - Regex: '^' + Priority: 2 + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 + IncludeIsMainRegex: '([-_](test|unittest))?$' + IndentCaseLabels: true + IndentPPDirectives: None + IndentWidth: 2 + IndentWrappedFunctionNames: false + JavaScriptQuotes: Leave + JavaScriptWrapImports: true + KeepEmptyLinesAtTheStartOfBlocks: false + MacroBlockBegin: '' + MacroBlockEnd: '' + MaxEmptyLinesToKeep: 1 + NamespaceIndentation: None + ObjCBlockIndentWidth: 2 + ObjCSpaceAfterProperty: false + ObjCSpaceBeforeProtocolList: false + PenaltyBreakAssignment: 2 + PenaltyBreakBeforeFirstCallParameter: 1 + PenaltyBreakComment: 300 + PenaltyBreakFirstLessLess: 120 + PenaltyBreakString: 1000 + PenaltyExcessCharacter: 1000000 + PenaltyReturnTypeOnItsOwnLine: 200 + PointerAlignment: Left + ReflowComments: true + SortIncludes: true + SortUsingDeclarations: true + SpaceAfterCStyleCast: false + SpaceAfterTemplateKeyword: true + SpaceBeforeAssignmentOperators: true + SpaceBeforeParens: ControlStatements + SpaceInEmptyParentheses: false + SpacesBeforeTrailingComments: 2 + SpacesInAngles: false + SpacesInContainerLiterals: true + SpacesInCStyleCastParentheses: false + SpacesInParentheses: false + SpacesInSquareBrackets: false + Standard: Auto + TabWidth: 8 + UseTab: Never + ``` + + ::: + + ::: details Electron project's configuration. See [Electron repository](https://github.com/electron/electron/blob/main/.clang-format). + + ```.clang-format [.clang-format] + # Defines the Chromium style for automatic reformatting. + # http://clang.llvm.org/docs/ClangFormatStyleOptions.html + BasedOnStyle: Chromium + # This defaults to 'Auto'. Explicitly set it for a while, so that + # 'vector >' in existing files gets formatted to + # 'vector>'. ('Auto' means that clang-format will only use + # 'int>>' if the file already contains at least one such instance.) + Standard: Cpp11 + # Make sure code like: + # IPC_BEGIN_MESSAGE_MAP() + # IPC_MESSAGE_HANDLER(WidgetHostViewHost_Update, OnUpdate) + # IPC_END_MESSAGE_MAP() + # gets correctly indented. + MacroBlockBegin: "^\ + BEGIN_MSG_MAP|\ + BEGIN_MSG_MAP_EX|\ + BEGIN_SAFE_MSG_MAP_EX|\ + CR_BEGIN_MSG_MAP_EX|\ + IPC_BEGIN_MESSAGE_MAP|\ + IPC_BEGIN_MESSAGE_MAP_WITH_PARAM|\ + IPC_PROTOBUF_MESSAGE_TRAITS_BEGIN|\ + IPC_STRUCT_BEGIN|\ + IPC_STRUCT_BEGIN_WITH_PARENT|\ + IPC_STRUCT_TRAITS_BEGIN|\ + POLPARAMS_BEGIN|\ + PPAPI_BEGIN_MESSAGE_MAP$" + MacroBlockEnd: "^\ + CR_END_MSG_MAP|\ + END_MSG_MAP|\ + IPC_END_MESSAGE_MAP|\ + IPC_PROTOBUF_MESSAGE_TRAITS_END|\ + IPC_STRUCT_END|\ + IPC_STRUCT_TRAITS_END|\ + POLPARAMS_END|\ + PPAPI_END_MESSAGE_MAP$" + ``` + + ::: diff --git a/website/docs/get-started/ignore-files.md b/website/docs/get-started/ignore-files.md new file mode 100644 index 00000000..c995ea40 --- /dev/null +++ b/website/docs/get-started/ignore-files.md @@ -0,0 +1,24 @@ +--- +description: "Instructions for creating and using `.clang-format-ignore` files to specify which files should be ignored by `clang-format`." +--- + +# Ignore files + +> [!IMPORTANT] +> +> To see the full list of options, check the [`.clang-format-ignore`](https://clang.llvm.org/docs/ClangFormat.html#clang-format-ignore) page. + +## [`.clang-format-ignore`](https://clang.llvm.org/docs/ClangFormat.html#clang-format-ignore) + +You can create `.clang-format-ignore` files to make `clang-format` ignore certain files. A `.clang-format-ignore` file consists of patterns of file path names. It has the following format: + +- A blank line is skipped. +- Leading and trailing spaces of a line are trimmed. +- A line starting with a hash (`#`) is a comment. +- A non-comment line is a single pattern. +- The slash (`/`) is used as the directory separator. +- A pattern is relative to the directory of the `.clang-format-ignore` file (or the root directory if the pattern starts with a slash). Patterns containing drive names (e.g. `C:`) are not supported. +- Patterns follow the rules specified in [**POSIX 2.13.1, 2.13.2, and Rule 1 of 2.13.3.**](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13) +- A pattern is negated if it starts with a bang (`!`). + +To match all files in a directory, use e.g. `foo/bar/*`. To match all files in the directory of the `.clang-format-ignore` file, use `*`. Multiple `.clang-format-ignore` files are supported similar to the `.clang-format` files, with a lower directory level file voiding the higher level ones. diff --git a/website/docs/get-started/index.md b/website/docs/get-started/index.md new file mode 100644 index 00000000..44e13747 --- /dev/null +++ b/website/docs/get-started/index.md @@ -0,0 +1,5 @@ +--- +description: "Documentation and details for the `clang-format-node` package, including included packages, support, contributing guidelines, and more." +--- + + diff --git a/website/docs/get-started/installation.md b/website/docs/get-started/installation.md new file mode 100644 index 00000000..b62226b9 --- /dev/null +++ b/website/docs/get-started/installation.md @@ -0,0 +1,122 @@ +--- +description: "Installation instructions for `clang-format-node`, `clang-format-git`, and `clang-format-git-python` with support for global and local installs using npm, pnpm, yarn, and bun." +--- + +# Installation {#installation} + +## `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) {#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 wrapper for `clang-format` native binary inspired by angular/clang-format. (The **CORE** package.) + +::: code-group + +```sh [npm] +# Global +$ npm install -g clang-format-node +# Local +$ npm install -D clang-format-node +``` + +```sh [pnpm] +# Global +$ pnpm add -g clang-format-node +# Local +$ pnpm add -D clang-format-node +``` + +```sh [yarn] +# Global +$ yarn global add clang-format-node +# Local +$ yarn add --dev clang-format-node +``` + +```sh [bun] +# Global +$ bun add -g clang-format-node +# Local +$ bun add -d clang-format-node +``` + +::: + +## `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) {#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 wrapper for `git-clang-format` Python script as a standalone native binary to **allow execution without a Python dependency**. + +::: code-group + +```sh [npm] +# Global +$ npm install -g clang-format-git +# Local +$ npm install -D clang-format-git +``` + +```sh [pnpm] +# Global +$ pnpm add -g clang-format-git +# Local +$ pnpm add -D clang-format-git +``` + +```sh [yarn] +# Global +$ yarn global add clang-format-git +# Local +$ yarn add --dev clang-format-git +``` + +```sh [bun] +# Global +$ bun add -g clang-format-git +# Local +$ bun add -d clang-format-git +``` + +::: + +## `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) {#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 wrapper for `git-clang-format` Python script. **This package requires Python3 as a dependency**. + +::: code-group + +```sh [npm] +# Global +$ npm install -g clang-format-git-python +# Local +$ npm install -D clang-format-git-python +``` + +```sh [pnpm] +# Global +$ pnpm add -g clang-format-git-python +# Local +$ pnpm add -D clang-format-git-python +``` + +```sh [yarn] +# Global +$ yarn global add clang-format-git-python +# Local +$ yarn add --dev clang-format-git-python +``` + +```sh [bun] +# Global +$ bun add -g clang-format-git-python +# Local +$ bun add -d clang-format-git-python +``` + +::: diff --git a/website/docs/get-started/migration-from-angular-clang-format.md b/website/docs/get-started/migration-from-angular-clang-format.md new file mode 100644 index 00000000..7cb30e12 --- /dev/null +++ b/website/docs/get-started/migration-from-angular-clang-format.md @@ -0,0 +1,31 @@ +--- +description: "Guide to migrating from 'angular/clang-format,' including alternatives for `check-clang-format` and `git-clang-format` with Node.js support and integration with tools like Husky and lint-staged." +--- + +# Migration from 'angular/clang-format' + +## `check-clang-format` + +This package only uses native `clang-format` and `git-clang-format` features to check formatting. The following commands will produce an error if the target files are not correctly formatted. So use them with [`husky`](https://typicode.github.io/husky/) and [`lint-staged`](https://github.com/lint-staged/lint-staged). + +> [!TIP] +> +> `--dry-run` and `-n` options are equivalent. + +```sh +npx clang-format -Werror --dry-run example.cpp +``` + +```sh +npx clang-format -Werror -n example.cpp +``` + +## `git-clang-format` + +> `v1.2.0 (llvmorg-19.1.3)` - latest + +This feature has been supported since [`v1.2.0 (llvmorg-19.1.3)`](https://github.com/lumirlumir/npm-clang-format-node/releases/tag/v1.2.0), so migration is no longer necessary. Instead, you can use the [`clang-format-git`](../apis/clang-format-git.md) or [`clang-format-git-python`](../apis/clang-format-git-python.md) package. + +> `v1.0.0 (llvmorg-18.1.8)` - `v1.1.3 (llvmorg-19.1.3)` + +Use [`husky`](https://typicode.github.io/husky/) and [`lint-staged`](https://github.com/lint-staged/lint-staged) for the `pre-commit` hook instead. See [Use with `husky` and `lint-staged`](use-with-husky-and-lint-staged.md) for more details. diff --git a/docs/01-introduction/05-supported.md b/website/docs/get-started/supported.md similarity index 86% rename from docs/01-introduction/05-supported.md rename to website/docs/get-started/supported.md index dd8d723d..72966a5b 100644 --- a/docs/01-introduction/05-supported.md +++ b/website/docs/get-started/supported.md @@ -1,3 +1,7 @@ +--- +description: "Comprehensive support for platforms, architectures, and Node.js versions, with CI integration options for `clang-format-node` across GitHub Actions and Docker images." +--- + # Supported The following content applies to all packages within [`clang-format-node`](https://github.com/lumirlumir/npm-clang-format-node) repository. @@ -21,7 +25,7 @@ Each package supports **ALL** [**Tier1**](https://github.com/nodejs/node/blob/ma > [!TIP] > -> 1. If your platform isn't yet supported, you can build the `clang-format` native binary from the latest upstream Clang sources. Refer to [Build Process](../03-others/03-build-process.md) and [`.github/workflows/llvm-build-bump-pr.yml`](/.github/workflows/llvm-build-bump-pr.yml) for the build scripts for **Linux Shell** and **GitHub Actions**, respectively. +> 1. If your platform isn't yet supported, you can build the `clang-format` native binary from the latest upstream Clang sources. Refer to [Build Process](../further-reading/build-process.md) and [`.github/workflows/llvm-build-bump-pr.yml`](https://github.com/lumirlumir/npm-clang-format-node/blob/main/.github/workflows/llvm-build-bump-pr.yml) for the build scripts for **Linux Shell** and **GitHub Actions**, respectively. > > 1. Or you can download `clang-format` native binary from [LLVM release assets](https://github.com/llvm/llvm-project/releases) that match your operating system platform and architecture like the lists below. > @@ -35,13 +39,13 @@ Each package supports **ALL** [**Tier1**](https://github.com/nodejs/node/blob/ma ![Node Current](https://img.shields.io/node/v/clang-format-node) -The official support for **Node.js version 16 and above** has been confirmed through [testing](/.github/workflows/test-cross-platform.yml). +The official support for **Node.js version 16 and above** has been confirmed through [testing](https://github.com/lumirlumir/npm-clang-format-node/blob/main/.github/workflows/test-cross-platform.yml). However, this package does not utilize the latest features of Node.js and is transpiled using Babel. Therefore, it is expected to work on versions significantly lower than the officially supported ones. (ex. `"node": ">= 0.7.10"`) Consequently, **if the current package operates on a version of Node.js that is lower than the officially supported version, it should be perfectly fine to use.** ## [GitHub Actions Runner Images](https://github.com/actions/runner-images?tab=readme-ov-file#available-images) -If you want to use `clang-format-node` in continuous integration (CI), You can use **GitHub Actions**. The following basic runner images are compatible(available) with `clang-format-node`. +If you want to use `clang-format-node` or `clang-format-git` in continuous integration (CI), You can use **GitHub Actions**. The following basic runner images are compatible(available) with `clang-format-node`. Image | YAML Label | Included Software | ---------------------------- | ---------------------------------------------------------------------- | ----------------- | @@ -59,8 +63,8 @@ However, the following basic runner images are **NOT** compatible(available) wit Image | YAML Label | Included Software | ----------------------- | -------------- | ----------------- | -~~Ubuntu 20.04~~ | `ubuntu-20.04` | [ubuntu-20.04] | -~~Windows Server 2019~~ | `windows-2019` | [windows-2019] | +~~Ubuntu 20.04~~ | `ubuntu-20.04` | ubuntu-20.04 | +~~Windows Server 2019~~ | `windows-2019` | windows-2019 | ## Docker Build Images diff --git a/website/docs/get-started/use-with-husky-and-lint-staged.md b/website/docs/get-started/use-with-husky-and-lint-staged.md new file mode 100644 index 00000000..bb9a2dfe --- /dev/null +++ b/website/docs/get-started/use-with-husky-and-lint-staged.md @@ -0,0 +1,43 @@ +--- +description: "Guide to integrating `clang-format` with `husky` and `lint-staged` for code formatting in continuous integration workflows." +--- + +# Use with `husky` and `lint-staged` + +Ensuring that changes to your code are properly formatted is an important part of your development workflow. Use [`husky`](https://typicode.github.io/husky/) and [`lint-staged`](https://github.com/lint-staged/lint-staged) for your continuous integration process. + +## `husky` + +```sh [.husky/pre-commit] +npx lint-staged +``` + +## `lint-staged` + +1. Check + + > [!TIP] + > + > If `example1.cpp` and `example2.c` are staged, then `npx clang-format -Werror -n example1.cpp example2.c` will be excuted. + + ```json [package.json] {3-5} + { + // ... + "lint-staged": { + "*.{c,cpp,h}": "npx clang-format -Werror -n", + } + // ... + } + ``` + +1. Fix + + ```json [package.json] {3-5} + { + // ... + "lint-staged": { + "*.{c,cpp,h}": "npx clang-format -i", + } + // ... + } + ``` diff --git a/docs/01-introduction/03-why-we-started-this-project.md b/website/docs/get-started/why-we-started-this-project.md similarity index 84% rename from docs/01-introduction/03-why-we-started-this-project.md rename to website/docs/get-started/why-we-started-this-project.md index 7d2a7da8..a26b5206 100644 --- a/docs/01-introduction/03-why-we-started-this-project.md +++ b/website/docs/get-started/why-we-started-this-project.md @@ -1,3 +1,7 @@ +--- +description: "Learn why this project was created as a maintained alternative to 'angular/clang-format,' offering Node.js support without Python dependencies, while providing options for Python3 compatibility and migration guidance." +--- + # 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. @@ -6,4 +10,4 @@ And also, `git-clang-format` relies on **Python3**, so if you haven't installed 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. -Note that certain feautures from 'angular/clang-format' are not included in this package. Specifically `check-clang-format` is not used. For alternative methods to `check-clang-format`, See the [Migration Guide](../03-others/01-migration-from-angular-clang-format.md). +Note that certain feautures from 'angular/clang-format' are not included in this package. Specifically `check-clang-format` is not used. For alternative methods to `check-clang-format`, See the [Migration Guide](migration-from-angular-clang-format.md). diff --git a/website/index.md b/website/index.md new file mode 100644 index 00000000..a53c2d5a --- /dev/null +++ b/website/index.md @@ -0,0 +1,77 @@ +--- +layout: home +title: clang-format-node + +hero: + name: clang-format-node + text: Node wrapper for LLVM Clang Project's clang-format and git-clang-format native binaries. + tagline: C, C++, Java, JavaScript, JSON, Objective-C, Protobuf, and C# formatter based on Clang for Node.js environment.🐉 + image: + light: /logo-white.svg + dark: /logo-black.svg + alt: clang-format-node Logo + actions: + - theme: brand + text: Get Started + link: /docs/get-started/ + - theme: alt + text: APIs + link: /docs/apis/clang-format-node + - theme: alt + text: Examples + link: https://github.com/lumirlumir/npm-clang-format-node/tree/main/examples + - theme: brand + text: Give It a Star⭐ + link: https://github.com/lumirlumir/npm-clang-format-node + +features: + - icon: '' + title: Drop-in replacement for 'angular/clang-format' + details: Switch from 'angular/clang-format' to clang-format-node in no time. + link: /docs/get-started/migration-from-angular-clang-format + linkText: Migration Guide + + - icon: '' + title: Use only Node.js, no other dependencies needed + details: No need for Python or C++. Just use Node.js with no additional dependencies required. + link: /docs/get-started/installation + linkText: Installation + + - icon: '' + title: Wide range of support + details: Broader support for 'OS Platforms and Architectures', 'Node.js Versions', 'GitHub Actions Runner Images' and 'Docker Build Images'. + link: /docs/get-started/supported + linkText: Supported + + - icon: '' + title: CI made easy + details: You no longer have to struggle with CI setups. Simply use clang-format like any other Node.js packages. + link: /docs/get-started/cli + linkText: CLI + + - icon: '' + title: Automated build and release + details: Each package releases a new npm version with every clang-format update. GitHub Actions automatically checks for updates, builds the packages, and creates a pull request. + link: https://github.com/lumirlumir/npm-clang-format-node/blob/main/.github/workflows/llvm-build-bump-pr.yml + linkText: GitHub Actions + rel: external + + - icon: '' + title: Continuous maintenance + details: LuMir, the author, is deeply passionate about open source. Maintenance never stops. + link: https://github.com/lumirlumir + linkText: Who is LuMir? + rel: external + + - title: 📦clang-format-node + details: Node wrapper for clang-format native binary inspired by angular/clang-format. (The CORE package.) + link: https://www.npmjs.com/package/clang-format-node + + - title: 📦clang-format-git + details: Node wrapper for git-clang-format Python script as a standalone native binary to allow execution without a Python dependency. + link: https://www.npmjs.com/package/clang-format-git + + - title: 📦clang-format-git-python + details: Node wrapper for git-clang-format Python script. This package requires Python3 as a dependency. + link: https://www.npmjs.com/package/clang-format-git-python +--- diff --git a/website/package.json b/website/package.json index ebb72235..bcbafd06 100644 --- a/website/package.json +++ b/website/package.json @@ -3,6 +3,13 @@ "name": "website", "version": "1.2.5", "scripts": { - "start": "echo start" + "dev": "npx vitepress --open --host", + "build": "npx vitepress build --outDir build", + "start": "npx vitepress preview" + }, + "devDependencies": { + "markdown-it-footnote": "^4.0.0", + "vitepress": "^1.6.1", + "vitepress-plugin-group-icons": "^1.3.5" } } diff --git a/website/public/logo-black.svg b/website/public/logo-black.svg new file mode 100644 index 00000000..ab9b5e97 --- /dev/null +++ b/website/public/logo-black.svg @@ -0,0 +1 @@ + diff --git a/website/public/logo-lightgray.svg b/website/public/logo-lightgray.svg new file mode 100644 index 00000000..84a7b02d --- /dev/null +++ b/website/public/logo-lightgray.svg @@ -0,0 +1 @@ + diff --git a/website/public/logo-og.png b/website/public/logo-og.png new file mode 100644 index 0000000000000000000000000000000000000000..2cc746919020bbecd283b0dad5a4e43bcdafd666 GIT binary patch literal 428067 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

D)!*9POJjDZPL$3lCD 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∨YoVBfNX!LnS1ByO%LVXKl^oD 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%0D*UH9G#t851w zro$UQ_I|k3fA%p))2tieqwiS)Ejs^Qn;wDt<5#H=Mh^#ByQ=t=-{5Pb#pZa=t^)aO ztA`k~=~-B1Ynn~-;f>ene~V*Gud#6b=4Ta`co#)lf%r8KauE zE?Bp23;6GzG>nC7m&}Cmbn^55se=d88-|RX3)f8>>hF|m-?a|b*)g!#BCzdA`sE5n zZ{Sb4#(1nwLlevy5&xM&KD`6VLLl@P`9ewPuF1zLN;fwyw53ZVk0VQ|YpxbXV<@ZtaZcKD4y zyA7^-+l4T4eEjm?SBF#hII(TrE_n3LXW^@VaR)C5e(`^O4<7vPQ?PO6Ht6cqcL?GZ zM=MvdbTx}xX}_ybh|wzBN_ki;pduzw`BQ^8K5MX$7v35{Ar?~t?xXrShEWJsldAT^ z9kBY@4e;Y{J^}yor+2_#|Nd9uTYvv!c=;M#XA<3+#s{?3iC_{urZG&p?; ziH;^q?O<8{vXA>J%*R?qdpcK3P|4eh;b4__Tm=Trhs0-#7apd;d4=$Rq!H0^Wg0_9 zByQ_S#}k33L<&z8I~+_yTYA@@$7yWx@?LVyr8~5z5SYe;V?-(z5oabMX#7eE>P#`R zpT!tAl|(lkgBYK991lVXS1#u0Ha74|SqWElxe5jxv@1v=Px~iozOTVRNEX`k=xJd* z-ECN5O_&f>6&Mu+=}QEcHGoSMA{Fz(BAeesP1t4$e*blEf^kVhLc8{!qLnAJN^GD!I-ChkaZoxtrb!tEC zKYR-MHMGF^C2xTb-7*iF^|jl9r@s#0c)>qZ#ppL~AuO9DFK${!je|ZX8(_rPVbFX3 zZa9RGXI(pYK)+ebU?PR|9R@QOOo!%UdtgsTZ)j{74s))1FTDH8NxBHu0c-F1Dm<{m zKUYSR0awn{2Vs1j)i{1JTrjB#I@=Ur|2%R)~)(oBj z%NCE5F?Mc;XP;aP=|iC{aP>z&g)h9Xge$IC00Y-Z+q&rN1!I>ikaqz#jDuODkHXe1 z`{58i0qEN_9_C;F4tV#alc2wyv^1vWnwQ3eb8^KDIYBzMKMPN;tLktx%)Mfk{(32% z0}sFC=RnuaHfUa~{r4RTGv`l(=95R@Q2Qz9J908yeEoaiE%RH#oLE2pt@;^!o(!k= z!pcnp;QaaHVIaBswZP=Xm%$}-r@{DN56HHsO5XSOC%mG;Y*h(mUig*yd$e%x2a<#3?a{2B|Squxu z$ZAfHS8r$@HVOuI?gn}z*lC=dadQ^x_gXf?s1d#4WJ4>A z!K7{b=;OtQVB67AFn?MLMh<|{bLPY3K^?Gv&tW)xq7O6;ACFJe-V8U={gKeQ2_E>- zi?Em1+;CtcX28XhWs*C0uYl*a#E;3N-^Z?`VDtP8pAHvI(gTIph=!3fVczIQ=sZl{ znKuB2PFV&wUB3(_+jGTZYv70Xt%XDM4k5f9ZJYp0^ou)NMoomqBX})4(g7z<_lMT; z=fTx)xIDdsjBt1>Jhfpz_uX-{0jA6x$@hr?!zRJl)4O5IfunGO?q~gnz_i6z!o?FB z`5c3;ZSc%voAI7Y{kFr7j-hbggu&?R4od9O>!<16xMHyd_t{)f07z z<@gSG?C~|Q|D=rhTGaCZ+54FnJF?k)j>ySoGk z?(Pmj65QRL)A#d!IcJRX7xtK|cCA{o=B2SC5@Ir6JU8oF3B4w$ERjb}Y5EbYuoW%0 z`m;6zsKV!OLRr14R2BcyGo-oIZKVWD@> )}PYnr+NfGK&u$Iyx_^qAO20^Ul5z` zyl<=19N(4-CuO{yH!jI4iL@yA)|4mCVitk#dwDjHHvTNo4c-d9EC1IQBMJSz4<4&4Rp6`_ z@Dh!7i;AR1j2UDyH;K>2&Qj}661e0UkO=u0qE;j=#`t+#4efruQAX+|lef_doE0LV zxfV2QxGeH9*){ch9E}Q@onu2B=9%qkw#Q3J& zTQoz^;RQhP&Z>jXUJ6|;f<=_l3o|+aWlXZ47t_ws5(!OL zlO>e}tvOjGTFEVLZ5MgtS@QKS@4W$n=EBm}G=)O@G;4to;hDzFY^dHf434uf@r0^Y zp^XFb14U}mP?V7k0Zd`aI*$+g?yPPNgKDIX=I}31xa;^69(>QM7AY#>$2+ob;km<) zRLW-2lv5Zt*y=o6AZR}(&#@(!?M{mY&+ABk*r(CHJ8qgf+&id;*$>M4=Tu^_70@V1 z=F$MQD(!nHv#on?&}PIH!CKhLjL2+{*eCTq=xpqR@=mCV&`=1kYSy0QuAEbF2H#pO z9~qOKjhmIs<7}f5ZMm}^HrLC9TIi|k+ZOqTHtRnaL7t1DU1wyP83Lq<+AJjAO?N=g z#P`X;ZN7kq9g2e1^gh+GpYTUcg}yvKs`%w$C9q;_r_Ia>5eK2Qe1*3LmQ$Pq3^0x6 z2uiS&ykW%`ZUJg+Q3=$`f4b@SE7{!HleOPQ>o_3cG(OCIlFFoV4^(dCtPnBRk=&p8 z%e|d#<5vOd4cW3Kun8J&;e?IQX8dZu@uyc!JK2OH5|9|vK!=J8AG2)?24?DXU_dzH zMv#yoYUHXR`?Au(A0syNzfQgdIjRncz1a@~&iOb5u-vJChfSbWCipGjM7VTTaktJJzo(JQE=+$p)!ByMUlcnW z3Ai*i0!`VRhLO`nK&Z$fCc7etggTcIYKJpP30-qYpXAeq>Z45W&8sd}qrpw&+gm)+BduB%m@ZsZwD+Z4lkmjMjm zZ!28nl6dd?umg4t$5^guIkv_MR@drx5g}g_T*YnvFAK1}^p1UQhXan@elD)m8;?ag zCm)Tq`6xWU6T*ht^A`hFk##+{OB{!AbowpuSo`^{!@KQO`W8Bd`*c5y23Fi56LF=C z|6t-BWt!eKwbgt6;m~b?mO)Ww8KJ4viJ&GQD2Cw*i*ylY znI0WQvH88Yrt?|Sfpb!k)cd;+w;yH#@U%5u+5JDb>m8Xy05g5P2RmA%7i@kj~lxc>vSKo{&skTTr^Lf2n{rtXBy& z5gi}9wI!C5GtdG?V%>|QQ%K67ZYsanQkREn|||j z0WXeNSi9eVSH4ZaE1Y6*N#|O^q1&nMgG$aa41BI{7@kANLl@Ng%XFX@h=Bc@F;K`1 zaZCM#hIKfHt6d_%}g@q~GMd*es#(6A+rj3l6H=!!Psu1W<5R(fY=qgp)p5WSbTeZr{+bW@MMs3Kn`+dZ(1&`(IY|$d#8 $fWSUN_YH~b6_+gc*VY; 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 literal 0 HcmV?d00001 diff --git a/website/public/logo-white.svg b/website/public/logo-white.svg new file mode 100644 index 00000000..7970fad4 --- /dev/null +++ b/website/public/logo-white.svg @@ -0,0 +1 @@ + diff --git a/website/public/robots.txt b/website/public/robots.txt new file mode 100644 index 00000000..899b0c44 --- /dev/null +++ b/website/public/robots.txt @@ -0,0 +1,4 @@ +User-Agent: * +Allow: / + +Sitemap: https://clang-format-node.lumir.page/sitemap.xml diff --git a/website/vercel.json b/website/vercel.json new file mode 100644 index 00000000..bd6fd8fa --- /dev/null +++ b/website/vercel.json @@ -0,0 +1,3 @@ +{ + "cleanUrls": true +} From b1490e8e6beeab1470c1e376857f35d6ce3662f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 01:32:41 +0900 Subject: [PATCH 06/16] refactor(website): add Google Analytics integration to `.vitepress/config.mjs` (#184) This pull request includes changes to add Google Analytics to the website configuration and a minor documentation correction. The most important changes include adding the Google Analytics ID and script to the configuration file and fixing a typo in the documentation. ### Configuration updates: * [`website/.vitepress/config.mjs`](diffhunk://#diff-bd4ac01d4c35583e9c20414103304b0628a6be199987bd1084fdef61cd43cc71R28): Added `GOOGLE_GA_ID` constant and included Google Analytics script tags for tracking. [[1]](diffhunk://#diff-bd4ac01d4c35583e9c20414103304b0628a6be199987bd1084fdef61cd43cc71R28) [[2]](diffhunk://#diff-bd4ac01d4c35583e9c20414103304b0628a6be199987bd1084fdef61cd43cc71L70-L76) ### Documentation correction: * [`website/docs/get-started/configuration.md`](diffhunk://#diff-6a87b005e020bd2dfcf1e779a14c7ddc13bfc307a99b1b02b6c538e7f4da1b77L59-R59): Corrected a typo from "an brief example" to "a brief example". --- website/.vitepress/config.mjs | 18 ++++++++++++++---- website/docs/get-started/configuration.md | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/website/.vitepress/config.mjs b/website/.vitepress/config.mjs index 21bab488..b00cd096 100644 --- a/website/.vitepress/config.mjs +++ b/website/.vitepress/config.mjs @@ -25,6 +25,7 @@ const AUTHOR = '루밀LuMir'; const SITE_URL = 'https://clang-format-node.lumir.page'; const GITHUB_URL = 'https://github.com/lumirlumir/npm-clang-format-node'; const NPM_URL = 'https://www.npmjs.com'; +const GOOGLE_GA_ID = 'G-SVZGJNXDB2'; // -------------------------------------------------------------------------------- // Export @@ -67,13 +68,22 @@ export default defineConfig({ ['meta', { name: 'twitter:creator', content: AUTHOR }], ['meta', { name: 'twitter:card', content: 'summary_large_image' }], - // TODO: Add @vercel/speed-insight - // TODO: Add @vercel/analytics + // Google Analytics + [ + 'script', + { async: '', src: `https://www.googletagmanager.com/gtag/js?id=${GOOGLE_GA_ID}` }, + ], + [ + 'script', + {}, + `window.dataLayer = window.dataLayer || []; + function gtag(){dataLayer.push(arguments);} + gtag('js', new Date()); + gtag('config', '${GOOGLE_GA_ID}');`, + ], ], lang: 'en-US', - // TODO: stylelint? - /* Routing */ cleanUrls: true, diff --git a/website/docs/get-started/configuration.md b/website/docs/get-started/configuration.md index 8f81bfb7..9bb83bc1 100644 --- a/website/docs/get-started/configuration.md +++ b/website/docs/get-started/configuration.md @@ -56,7 +56,7 @@ my-monorepo/ > > To see the full list of options, check the [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) page. -You can use the `.clang-format` file to configure the style of your code. Here is an brief example of a `.clang-format` file: +You can use the `.clang-format` file to configure the style of your code. Here is a brief example of a `.clang-format` file: - Simple: From 798a9e5be9d3f12ff56e447e14bd5bd750379743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 02:18:16 +0900 Subject: [PATCH 07/16] docs: create `q-and-a.md` (#185) This pull request adds a new "Q & A" section to the documentation and updates the website configuration to include a link to this new section. Documentation updates: * Added a new "Q & A" section to the documentation with questions and answers about `clang-format-node`, including an explanation of the differences between `clang-format` and `git-clang-format`. (`website/docs/get-started/q-and-a.md`) Website configuration updates: * Updated the VitePress configuration to include a link to the new "Q & A" section in the navigation menu. (`website/.vitepress/config.mjs`) --- website/.vitepress/config.mjs | 4 ++++ website/docs/get-started/q-and-a.md | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 website/docs/get-started/q-and-a.md diff --git a/website/.vitepress/config.mjs b/website/.vitepress/config.mjs index b00cd096..e5e41bc4 100644 --- a/website/.vitepress/config.mjs +++ b/website/.vitepress/config.mjs @@ -206,6 +206,10 @@ export default defineConfig({ text: 'Use with husky, lint-staged', link: 'use-with-husky-and-lint-staged', }, + { + text: 'Q & A', + link: 'q-and-a', + }, ], }, diff --git a/website/docs/get-started/q-and-a.md b/website/docs/get-started/q-and-a.md new file mode 100644 index 00000000..71d7e18b --- /dev/null +++ b/website/docs/get-started/q-and-a.md @@ -0,0 +1,16 @@ +--- +description: Questions and answers about clang-format-node. +--- + +# Q & A + +## Why are the results of `clang-format` and `git-clang-format` different? + +> [!NOTE] References +> +> - [Why are the results of `clang-format` and `git-clang-format` different?](https://stackoverflow.com/questions/76968316/why-are-the-results-of-clang-format-and-git-clang-format-different) on Stack Overflow. +> - [Git Intergration](https://clang.llvm.org/docs/ClangFormat.html#git-integration) on LLVM Clang. + +`git-clang-format` only formats changes. `clang-format` formats the whole document. + +The script [`clang/tools/clang-format/git-clang-format`](https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/git-clang-format) can be used to format just the lines touched in git commits. From e54e98ef94f451128c271b31509aa194c0142f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 13:32:22 +0900 Subject: [PATCH 08/16] docs: add navigation link to 'Why We Started This Project' in `get-started /index.md` documentation (#186) This pull request includes an update to the `website/docs/get-started/index.md` file to enhance the navigation within the documentation. The most important change is the addition of a link to provide context on why the project was started. Documentation enhancement: * [`website/docs/get-started/index.md`](diffhunk://#diff-5c932f6df78484172c717421fffc4ef01f10355cd96ebd8b86b65e02b39f99b3R3-R5): Added a "Next" section with a link to 'Why We Started This Project' to improve navigation and provide additional context for users. --- website/docs/get-started/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/website/docs/get-started/index.md b/website/docs/get-started/index.md index 44e13747..42a79c56 100644 --- a/website/docs/get-started/index.md +++ b/website/docs/get-started/index.md @@ -1,5 +1,8 @@ --- description: "Documentation and details for the `clang-format-node` package, including included packages, support, contributing guidelines, and more." +next: + text: 'Why We Started This Project' + link: '/docs/get-started/why-we-started-this-project/' --- From b4d449184603e287e694948b417ffbefec4894ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 16:10:29 +0900 Subject: [PATCH 09/16] docs: create `surgical-formatting-with-git-clang-format.md` (#187) This pull request adds a new documentation page and updates the site configuration to include a link to this new page. The most important changes include adding a new entry to the navigation menu and creating detailed content for the new documentation page on surgical formatting with `git-clang-format`. Documentation updates: * [`website/.vitepress/config.mjs`](diffhunk://#diff-bd4ac01d4c35583e9c20414103304b0628a6be199987bd1084fdef61cd43cc71R257-R260): Added a new entry "Surgical Formatting" to the navigation menu to link to the new documentation page. * [`website/docs/further-reading/surgical-formatting-with-git-clang-format.md`](diffhunk://#diff-4eabe91a6c51648711792a2daa82f0a8d9efcf9d01642f6940cd47868407fd84R1-R105): Created a new documentation page that explains how to use `git-clang-format` for surgically formatting only the changes in a pull request, including detailed steps and examples. --- website/.vitepress/config.mjs | 4 + ...rgical-formatting-with-git-clang-format.md | 105 ++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 website/docs/further-reading/surgical-formatting-with-git-clang-format.md diff --git a/website/.vitepress/config.mjs b/website/.vitepress/config.mjs index e5e41bc4..cd8e5bdd 100644 --- a/website/.vitepress/config.mjs +++ b/website/.vitepress/config.mjs @@ -254,6 +254,10 @@ export default defineConfig({ text: '|| exit 0 and || true', link: 'difference-between-exit-0-and-true', }, + { + text: 'Surgical Formatting', + link: 'surgical-formatting-with-git-clang-format', + }, ], }, diff --git a/website/docs/further-reading/surgical-formatting-with-git-clang-format.md b/website/docs/further-reading/surgical-formatting-with-git-clang-format.md new file mode 100644 index 00000000..e016b6e8 --- /dev/null +++ b/website/docs/further-reading/surgical-formatting-with-git-clang-format.md @@ -0,0 +1,105 @@ +# Surgical formatting with `git-clang-format` + +> [!NOTE] Reference +> +> - [Surgical formatting with `git-clang-format`](https://offlinemark.com/surgical-formatting-with-git-clang-format/) + +::: warning `git clang-format` vs `git-clang-format` + +- You can use the `git-clang-format` command (when installed **globally**) as an alternative to `git clang-format` in Node.js by leveraging the [`clang-format-git`](../apis/clang-format-git.md) or [`clang-format-git-python`](../apis/clang-format-git-python.md) package. + +- In this document, all instances of the `git clang-format` command will be uniformly referred to as the `git-clang-format` command. + +::: + +If you’re already a 10x engineer, this article might not be for you. But for the rest of us, here’s what I wish I knew as an inexperienced C++ programmer: how to format only the changes in your pull request using `clang-format`. + +You’ve probably heard of `clang-format`. It’s a tool that auto-formats source files for languages like C and C++. You can apply it to an entire file with a simple command like [`clang-format -i file.cpp`](/docs/get-started/cli#frequently-used-commands). + +If you’re working on a project that’s already 100% `clang-format` compliant, this workflow works perfectly. However, some projects like [LLVM](https://github.com/llvm/llvm-project), [osquery](https://github.com/osquery/osquery), or [Electron](https://github.com/electron/electron) aren’t entirely formatted. In these cases, formatting the whole file isn’t practical because it inadvertently affects parts of the code unrelated to your changes. This adds unnecessary noise to your diffs, making code reviews more difficult. + +In this case, you need a way to surgically format only the lines changed in your contribution. To do this, you can use the `clang-format` Git extension named `git-clang-format`. + +## `git-clang-format` + +The `clang-format` Git extension is often included with the `clang-format` package on Ubuntu. If it’s not available on your system, you can manually download the [`git-clang-format`](https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/git-clang-format) Python script from the LLVM source tree and add it to your `PATH`. Make sure the script is executable, and you’ll be able to run `git-clang-format` from your shell. + +## Formatting a Single Commit + +`git-clang-format` operates on staged changes. The workflow is simple: + +1. Write and edit your files however you like (it’s okay to be messy). +1. Stage your changes using `git add`. +1. Format your staged changes with `git-clang-format`. + +Here’s an example: + +1. I’ve added a new file, `x.cpp`, and staged it: + + ```sh + $ git diff --staged + diff --git a/x.cpp b/x.cpp + new file mode 100644 + index 0000000..af14ed5 + --- /dev/null # [!code --] + +++ b/x.cpp # [!code ++] + @@ -0,0 +1,3 @@ + +int main() { # [!code ++] + + # [!code ++] + +} # [!code ++] + ``` + +1. Running `git-clang-format` results in this output: + + ```sh + $ git-clang-format + changed files: + x.cpp + ``` + +1. Now, `git status` shows both staged and unstaged changes: + + ```sh + $ git status + On branch master + Changes to be committed: + (use "git restore --staged ..." to unstage) + new file: x.cpp + + Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: x.cpp + ``` + +1. `git diff` will show the unstaged changes – the changes created by `clang-format`. + + ```sh + $ git diff + diff --git a/x.cpp b/x.cpp + index af14ed5..237c8ce 100644 + --- a/x.cpp # [!code --] + +++ b/x.cpp # [!code ++] + @@ -1,3 +1 @@ + -int main() { # [!code --] + - # [!code --] + -} # [!code --] + +int main() {} # [!code ++] + ``` + +This workflow allows you to review `clang-format`’s changes independently of your development changes. If you don’t like them, you can discard them by purging your working tree using `git checkout`. If you’re satisfied, simply stage the formatting changes with `git add`. + +## Specifying a Formatting Style + +You can customize the formatting style using the `--style` option. Predefined styles include `LLVM`, `Google`, `Chromium`, `Mozilla`, and `WebKit`. If your project has a `.clang-format` file, you can use it by specifying `file` as the style: + +```sh +$ git-clang-format --style=WebKit +$ git-clang-format --style=file # Uses the `.clang-format` file. +``` + +## Conclusion + +`clang-format` is a powerful tool, but its real-world application often requires more than just running `clang-format -i`. For most developers, the practical approach is to use `git-clang-format` to format only the specific changes in your pull request. + +Since `git-clang-format` works on the staging tree, it’s easy to review formatting changes separately from development changes. This makes code reviews smoother and helps you maintain a clean, professional codebase without sacrificing flexibility during development. Whether you’re tidying up a single commit or an entire branch, a few additional Git commands can go a long way toward keeping your formatting clean and reviewers happy. From df1e1c85654fb67fd3e34245ce50f7a2b56d0643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 18:41:56 +0900 Subject: [PATCH 10/16] docs: create `introduction.md` (#188) This pull request includes significant updates to the documentation and configuration files, focusing on the restructuring and enhancement of content related to `clang-format` and `git-clang-format`. The key changes involve adding new sections, removing outdated content, and introducing a new introductory page. ### Documentation Updates: * Added a new section titled 'Introduction' to the navigation menu in `website/.vitepress/config.mjs`. * Removed the 'Surgical Formatting' section from the navigation menu in `website/.vitepress/config.mjs`. * Deleted the detailed documentation on 'Surgical formatting with `git-clang-format`' from `website/docs/further-reading/surgical-formatting-with-git-clang-format.md`. ### New Content: * Created a new introductory page `website/docs/get-started/introduction.md` that provides an overview of `clang-format` and `git-clang-format`, including examples and guidance for newcomers. --- website/.vitepress/config.mjs | 8 +- ...rgical-formatting-with-git-clang-format.md | 105 ----------- website/docs/get-started/introduction.md | 177 ++++++++++++++++++ 3 files changed, 181 insertions(+), 109 deletions(-) delete mode 100644 website/docs/further-reading/surgical-formatting-with-git-clang-format.md create mode 100644 website/docs/get-started/introduction.md diff --git a/website/.vitepress/config.mjs b/website/.vitepress/config.mjs index cd8e5bdd..66aa80ae 100644 --- a/website/.vitepress/config.mjs +++ b/website/.vitepress/config.mjs @@ -178,6 +178,10 @@ export default defineConfig({ text: 'Why We Started This Project', link: 'why-we-started-this-project', }, + { + text: 'Introduction', + link: 'introduction', + }, { text: 'Installation', link: 'installation', @@ -254,10 +258,6 @@ export default defineConfig({ text: '|| exit 0 and || true', link: 'difference-between-exit-0-and-true', }, - { - text: 'Surgical Formatting', - link: 'surgical-formatting-with-git-clang-format', - }, ], }, diff --git a/website/docs/further-reading/surgical-formatting-with-git-clang-format.md b/website/docs/further-reading/surgical-formatting-with-git-clang-format.md deleted file mode 100644 index e016b6e8..00000000 --- a/website/docs/further-reading/surgical-formatting-with-git-clang-format.md +++ /dev/null @@ -1,105 +0,0 @@ -# Surgical formatting with `git-clang-format` - -> [!NOTE] Reference -> -> - [Surgical formatting with `git-clang-format`](https://offlinemark.com/surgical-formatting-with-git-clang-format/) - -::: warning `git clang-format` vs `git-clang-format` - -- You can use the `git-clang-format` command (when installed **globally**) as an alternative to `git clang-format` in Node.js by leveraging the [`clang-format-git`](../apis/clang-format-git.md) or [`clang-format-git-python`](../apis/clang-format-git-python.md) package. - -- In this document, all instances of the `git clang-format` command will be uniformly referred to as the `git-clang-format` command. - -::: - -If you’re already a 10x engineer, this article might not be for you. But for the rest of us, here’s what I wish I knew as an inexperienced C++ programmer: how to format only the changes in your pull request using `clang-format`. - -You’ve probably heard of `clang-format`. It’s a tool that auto-formats source files for languages like C and C++. You can apply it to an entire file with a simple command like [`clang-format -i file.cpp`](/docs/get-started/cli#frequently-used-commands). - -If you’re working on a project that’s already 100% `clang-format` compliant, this workflow works perfectly. However, some projects like [LLVM](https://github.com/llvm/llvm-project), [osquery](https://github.com/osquery/osquery), or [Electron](https://github.com/electron/electron) aren’t entirely formatted. In these cases, formatting the whole file isn’t practical because it inadvertently affects parts of the code unrelated to your changes. This adds unnecessary noise to your diffs, making code reviews more difficult. - -In this case, you need a way to surgically format only the lines changed in your contribution. To do this, you can use the `clang-format` Git extension named `git-clang-format`. - -## `git-clang-format` - -The `clang-format` Git extension is often included with the `clang-format` package on Ubuntu. If it’s not available on your system, you can manually download the [`git-clang-format`](https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/git-clang-format) Python script from the LLVM source tree and add it to your `PATH`. Make sure the script is executable, and you’ll be able to run `git-clang-format` from your shell. - -## Formatting a Single Commit - -`git-clang-format` operates on staged changes. The workflow is simple: - -1. Write and edit your files however you like (it’s okay to be messy). -1. Stage your changes using `git add`. -1. Format your staged changes with `git-clang-format`. - -Here’s an example: - -1. I’ve added a new file, `x.cpp`, and staged it: - - ```sh - $ git diff --staged - diff --git a/x.cpp b/x.cpp - new file mode 100644 - index 0000000..af14ed5 - --- /dev/null # [!code --] - +++ b/x.cpp # [!code ++] - @@ -0,0 +1,3 @@ - +int main() { # [!code ++] - + # [!code ++] - +} # [!code ++] - ``` - -1. Running `git-clang-format` results in this output: - - ```sh - $ git-clang-format - changed files: - x.cpp - ``` - -1. Now, `git status` shows both staged and unstaged changes: - - ```sh - $ git status - On branch master - Changes to be committed: - (use "git restore --staged ..." to unstage) - new file: x.cpp - - Changes not staged for commit: - (use "git add ..." to update what will be committed) - (use "git restore ..." to discard changes in working directory) - modified: x.cpp - ``` - -1. `git diff` will show the unstaged changes – the changes created by `clang-format`. - - ```sh - $ git diff - diff --git a/x.cpp b/x.cpp - index af14ed5..237c8ce 100644 - --- a/x.cpp # [!code --] - +++ b/x.cpp # [!code ++] - @@ -1,3 +1 @@ - -int main() { # [!code --] - - # [!code --] - -} # [!code --] - +int main() {} # [!code ++] - ``` - -This workflow allows you to review `clang-format`’s changes independently of your development changes. If you don’t like them, you can discard them by purging your working tree using `git checkout`. If you’re satisfied, simply stage the formatting changes with `git add`. - -## Specifying a Formatting Style - -You can customize the formatting style using the `--style` option. Predefined styles include `LLVM`, `Google`, `Chromium`, `Mozilla`, and `WebKit`. If your project has a `.clang-format` file, you can use it by specifying `file` as the style: - -```sh -$ git-clang-format --style=WebKit -$ git-clang-format --style=file # Uses the `.clang-format` file. -``` - -## Conclusion - -`clang-format` is a powerful tool, but its real-world application often requires more than just running `clang-format -i`. For most developers, the practical approach is to use `git-clang-format` to format only the specific changes in your pull request. - -Since `git-clang-format` works on the staging tree, it’s easy to review formatting changes separately from development changes. This makes code reviews smoother and helps you maintain a clean, professional codebase without sacrificing flexibility during development. Whether you’re tidying up a single commit or an entire branch, a few additional Git commands can go a long way toward keeping your formatting clean and reviewers happy. diff --git a/website/docs/get-started/introduction.md b/website/docs/get-started/introduction.md new file mode 100644 index 00000000..56d621c8 --- /dev/null +++ b/website/docs/get-started/introduction.md @@ -0,0 +1,177 @@ +--- +description: 'This page introduces the concepts and provides guidance on how to format your code with `clang-format` and `git-clang-format`.' +--- + +# Formatting with `clang-format` and `git-clang-format` + +::: danger Target Audience + +**This page introduces the concepts and provides guidance on how to format your code with `clang-format` and `git-clang-format`.** It's designed for newcomers, so If you’re already a senior engineer with experience in Clang, this page might not be for you. You can skip this page and go directly to the [Installation](installation.md) page. + +::: + +::: warning `git clang-format` vs `git-clang-format` + +- You can use the `git-clang-format` command (when installed **globally**) as an alternative to `git clang-format` in Node.js by leveraging the [`clang-format-git`](../apis/clang-format-git.md) or [`clang-format-git-python`](../apis/clang-format-git-python.md) package. +- In this document, all instances of the `git clang-format` command will be uniformly referred to as the `git-clang-format` command. + +::: + +> [!NOTE] Reference +> +> - [Format your code - all the time](https://ortogonal.github.io/cpp/git-clang-format/) +> - [Surgical formatting with `git-clang-format`](https://offlinemark.com/surgical-formatting-with-git-clang-format/) + +Formatting source code is something that, at least I think, is crucial for improving code quality. The reason why formatting your code is important is that it ensures a uniform appearance, making it easier to read and understand. + +This page is not about debates like whether the `{` should be on the same line as the `if` statement or on the line below. Instead, it focuses on the tools and methods you can use to consistently apply the same formatting. + +## `clang-format` + +You’ve probably heard of `clang-format`, a tool that automatically formats source files for languages like C and C++. It was created as part of the LLVM Clang open-source project. The concept behind `clang-format` is simple. [You setup a configuration file](/docs/get-started/configuration) that defines the formatting style you want for your code, and then you run `clang-format`. It will automatically reformat your code to follow the rules specified in the configuration file. + +`clang-format` offers options for customizing almost everything. Typically, your settings are stored in a file called [`.clang-format`](/docs/get-started/configuration), which `clang-format` will then use. It can handle code written in C, C++, Java, JavaScript, Objective-C, Protobuf, and C#. You can apply it to an entire file with a simple command like [`clang-format -i my_source.cpp`](/docs/get-started/cli#frequently-used-commands). + +### Example + +```cpp [my_source.cpp] +void test(QString&data, bool extraString) { + int i=0; + for (i=0;i<3;i++) { + data+="reallylongstringtoproducealonglineasanexample" + QString::number(i * 1000) + "/filetoload.html"; + if (extraString) + { + data += "some-extra"; + } + } +} +``` + +To format your code, run: + +```sh +$ clang-format -i my_source.cpp +``` + +After running `clang-format`, the code will be formatted as follows: + +```cpp [my_source.cpp] +void test(QString &data, bool extraString) +{ + int i = 0; + for (i = 0; i < 3; i++) { + data += "reallylongstringtoproducealonglineasanexample" + QString::number(i * 1000) + + "/filetoload.html"; + if (extraString) { + data += "some-extra"; + } + } +} +``` + +The code above is entirely trivial, but it illustrates what `clang-format` can do for your code. Whether you like this formatting or not isn’t the point here, because you can set up any rules that suit you and your team! + +## Problems with `clang-format` + +`clang-format` is a great tool to use but it has one major issue - **legacy code** and your **commit history**. The problem is simple. When you reformat a source file, you end up with tons of changes that mess up the commit history, making branch merging more difficult. It also complicates code reviews and code archaeology, because you have to figure out if the changes are actual code modifications or just formatting changes that don’t affect functionality. Another issue is maintaining the code format when adding new code to already formatted section. + +If you’re working on a project that’s already fully (100%) `clang-format` compliant, using `clang-format` alone for the workflow works perfectly. However, some projects like [LLVM](https://github.com/llvm/llvm-project), [osquery](https://github.com/osquery/osquery), or [Electron](https://github.com/electron/electron) aren’t fully formatted. In these cases, formatting the entire file isn’t practical because it inadvertently affects parts of the code unrelated to your changes. This adds unnecessary noise to your diffs, making code reviews more difficult. + +In such cases, you need a way to surgically format only the lines changed in your contribution. To do this, you can use the `clang-format` Git extension called `git-clang-format`. + +## `git-clang-format` + +`git-clang-format` is a simple Python script that's often included with the `clang-format` package on Ubuntu. If it’s not available on your system, you can manually download the [`git-clang-format`](https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/git-clang-format) Python script from the LLVM source tree and add it to your `PATH`. Just ensure the script is executable, and you’ll be able to run `git-clang-format` from your shell. + +What `git-clang-format` solves is that it runs `clang-format` only on the changes you've made. This helps address the problems I mentioned earlier. It formats only the changes in your pull requests, meaning every time we modify code, it can be formatted with `clang-format`. As a result, our legacy code base will gradually become better formatted without loosing the readability during code reviews. + +The workflow using `git-clang-format` is quite straightforward. + +- Develop your code. +- Run `git-clang-format`. + +This ensures that the changes you've made are properly formatted! + +### Formatting a Single Commit + +`git-clang-format` operates on staged changes. The workflow is simple: + +1. Write and edit your files however you like (it’s okay to be messy). +1. Stage your changes using `git add`. +1. Format your staged changes with `git-clang-format`. + +Here’s an example: + +1. I’ve added a new file, `x.cpp`, and staged it: + + ```sh + $ git diff --staged + diff --git a/x.cpp b/x.cpp + new file mode 100644 + index 0000000..af14ed5 + --- /dev/null # [!code --] + +++ b/x.cpp # [!code ++] + @@ -0,0 +1,3 @@ + +int main() { # [!code ++] + + # [!code ++] + +} # [!code ++] + ``` + +1. Running `git-clang-format` results in this output: + + ```sh + $ git-clang-format + changed files: + x.cpp + ``` + +1. Now, `git status` shows both staged and unstaged changes: + + ```sh + $ git status + On branch master + Changes to be committed: + (use "git restore --staged ..." to unstage) + new file: x.cpp + + Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: x.cpp + ``` + +1. `git diff` will show the unstaged changes – the changes created by `clang-format`. + + ```sh + $ git diff + diff --git a/x.cpp b/x.cpp + index af14ed5..237c8ce 100644 + --- a/x.cpp # [!code --] + +++ b/x.cpp # [!code ++] + @@ -1,3 +1 @@ + -int main() { # [!code --] + - # [!code --] + -} # [!code --] + +int main() {} # [!code ++] + ``` + +This workflow allows you to review `clang-format`’s changes independently of your development changes. If you don’t like them, you can discard them by purging your working tree using `git checkout`. If you’re satisfied, simply stage the formatting changes with `git add`. + +### Specifying a Formatting Style + +You can customize the formatting style using the `--style` option. Predefined styles include `LLVM`, `Google`, `Chromium`, `Mozilla`, and `WebKit`. If your project has a `.clang-format` file, you can use it by specifying `file` as the style: + +```sh +$ git-clang-format --style=WebKit +$ git-clang-format --style=file # Uses the `.clang-format` file. +``` + +### Using with a `pre-commit` hook + +You can use `git-clang-format` with a `pre-commit` hook to format your code before committing. This ensures that your code is always formatted correctly. This part is well documented in the [Use with `husky` and `lint-staged`](use-with-husky-and-lint-staged.md) page. Take a look at it if you want to know more about it. + +## Conclusion + +`clang-format` is a powerful tool, but its real-world application often requires more than just running `clang-format -i`. For most developers, the practical approach is to use `git-clang-format` to format only the specific changes in your pull request. + +Since `git-clang-format` works on the staging tree, it’s easy to review formatting changes separately from development changes. This makes code reviews smoother and helps you maintain a clean, professional codebase without sacrificing flexibility during development. Whether you’re tidying up a single commit or an entire branch, a few additional Git commands can go a long way toward keeping your formatting clean and reviewers happy. From ce2483e8dbeeb6e35754a0f5dff65d9299b95219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 19:24:18 +0900 Subject: [PATCH 11/16] ci: update commit type of `llvm-build-bump-pr.yml` to `chore` from `build` (#189) This pull request includes changes to update the commit message and title format in the LLVM bump workflow and a minor documentation update. Changes to workflow: * [`.github/workflows/llvm-build-bump-pr.yml`](diffhunk://#diff-d608eb75b383338d789a8908995e47499214a7cc55a847771ad73800464b18b0L429-R432): Updated the commit message and title prefix from 'build(deps)' to 'chore(deps)' for consistency with other dependency updates. Documentation update: * [`website/docs/get-started/introduction.md`](diffhunk://#diff-aeb0fea669d0b87f99bf331106ddc13e198f254aa732266a2435acf9a98f82aaL143-R143): Added a colon at the end of the sentence to clarify the explanation of the `git diff` command output. --- .github/workflows/llvm-build-bump-pr.yml | 4 ++-- website/docs/get-started/introduction.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/llvm-build-bump-pr.yml b/.github/workflows/llvm-build-bump-pr.yml index 0b178a29..23beda85 100644 --- a/.github/workflows/llvm-build-bump-pr.yml +++ b/.github/workflows/llvm-build-bump-pr.yml @@ -426,10 +426,10 @@ jobs: uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GH_PAT }} - commit-message: 'build(deps): bump LLVM from ${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }} to ${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}' + commit-message: 'chore(deps): bump LLVM from ${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }} to ${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}' branch: 'bump-llvm-from-${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }}-to-${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}' base: 'main' - title: 'build(deps): bump LLVM from ${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }} to ${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}' + title: 'chore(deps): bump LLVM from ${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }} to ${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}' body: | This PR bumps the LLVM version from `${{ needs.stage1.outputs.LLVM_CURRENT_RELEASE_TAG_NAME }}` to `${{ needs.stage1.outputs.LLVM_LATEST_RELEASE_TAG_NAME }}` using LLVM binary that was built automatically. :tada: diff --git a/website/docs/get-started/introduction.md b/website/docs/get-started/introduction.md index 56d621c8..14b675a5 100644 --- a/website/docs/get-started/introduction.md +++ b/website/docs/get-started/introduction.md @@ -140,7 +140,7 @@ Here’s an example: modified: x.cpp ``` -1. `git diff` will show the unstaged changes – the changes created by `clang-format`. +1. `git diff` will show the unstaged changes – the changes created by `clang-format`: ```sh $ git diff From 7ea973c1086b3dc0f6ae13b69f61dcd9e7bd620f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 19:49:23 +0900 Subject: [PATCH 12/16] ci: add PowerShell and CMD test to `test-cross-platform.yml` (#190) This pull request includes updates to the `.github/workflows/test-cross-platform.yml` file to enhance the testing process across different platforms. The changes mainly focus on expanding the test coverage to include various shell environments on Windows. Enhancements to cross-platform testing: * Added a basic test for `clang-format-node` and `clang-format-git` in the Git Bash environment. * Included a new test for `clang-format-node` and `clang-format-git` in the Windows PowerShell environment, conditional on the runner operating system being Windows. * Added a test for `clang-format-node` and `clang-format-git` in the Windows CMD environment, also conditional on the runner operating system being Windows. --- .github/workflows/test-cross-platform.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-cross-platform.yml b/.github/workflows/test-cross-platform.yml index b4c47a98..02de7a40 100644 --- a/.github/workflows/test-cross-platform.yml +++ b/.github/workflows/test-cross-platform.yml @@ -103,16 +103,26 @@ jobs: Get-ChildItem -Recurse -Filter "clang-format-node-*.tgz" | ForEach-Object { npm install $_.FullName } Get-ChildItem -Recurse -Filter "clang-format-git-*.tgz" | ForEach-Object { npm install $_.FullName } - - name: Test clang-format-git - run: npx clang-format-git --help - - - name: Test clang-format-git-python - run: npx clang-format-git-python --help + - name: Basic test (Git Bash) + run: | + npx clang-format-node --help + npx clang-format-node --version + npx clang-format-git --help + npx clang-format-git-python --help - - name: Test clang-format-node + - name: Windows PowerShell test + if: runner.os == 'Windows' + shell: pwsh run: | npx clang-format-node --help npx clang-format-node --version + npx clang-format-git --help + npx clang-format-git-python --help + + - name: Windows CMD test + if: runner.os == 'Windows' + shell: cmd + run: npx clang-format-node --help && npx clang-format-node --version && npx clang-format-git --help && npx clang-format-git-python --help docker-images: strategy: From 388bcc605452f542682a44615025849c34b2f82a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 20:02:22 +0900 Subject: [PATCH 13/16] feat: add API documentation links to type files (JSDoc type hints) (#191) This pull request includes several changes to the documentation comments in various utility files across different packages. The changes primarily add references to the documentation URLs for the respective APIs. Documentation improvements: * [`packages/clang-format-git-python/src/utils/gitClangFormatPath.js`](diffhunk://#diff-0b92886b850ec05cf8174fb293fc1d7f26dfd6064e907bfc81e09da43c8e1e49R23): Added a reference to the documentation URL for `clang-format-git-python` in the comments for `gitClangFormatPath` and `clangFormatGitPythonPath`. [[1]](diffhunk://#diff-0b92886b850ec05cf8174fb293fc1d7f26dfd6064e907bfc81e09da43c8e1e49R23) [[2]](diffhunk://#diff-0b92886b850ec05cf8174fb293fc1d7f26dfd6064e907bfc81e09da43c8e1e49R32) * [`packages/clang-format-git/src/utils/getGitClangFormatPath.js`](diffhunk://#diff-1bb2e643c38d95e89f5956f9701352544d048ce9b211521186d0aecda6a2b09bR31): Added a reference to the documentation URL for `clang-format-git` in the comments for `getGitClangFormatPath` and `getClangFormatGitPath`. [[1]](diffhunk://#diff-1bb2e643c38d95e89f5956f9701352544d048ce9b211521186d0aecda6a2b09bR31) [[2]](diffhunk://#diff-1bb2e643c38d95e89f5956f9701352544d048ce9b211521186d0aecda6a2b09bR55) * [`packages/clang-format-git/src/utils/gitClangFormatPath.js`](diffhunk://#diff-1adcc2abfa385d5db149f797a576817728d4ddee81c1b9196d60ce4d8328390eR24): Added a reference to the documentation URL for `clang-format-git` in the comments for `gitClangFormatPath` and `clangFormatGitPath`. [[1]](diffhunk://#diff-1adcc2abfa385d5db149f797a576817728d4ddee81c1b9196d60ce4d8328390eR24) [[2]](diffhunk://#diff-1adcc2abfa385d5db149f797a576817728d4ddee81c1b9196d60ce4d8328390eR33) * [`packages/clang-format-node/src/utils/clangFormatPath.js`](diffhunk://#diff-2fec3a5daf6d86f193c4f1bf1b809829a7471077b651f5233947089305a1371fR24): Added a reference to the documentation URL for `clang-format-node` in the comments for `clangFormatPath` and `clangFormatNodePath`. [[1]](diffhunk://#diff-2fec3a5daf6d86f193c4f1bf1b809829a7471077b651f5233947089305a1371fR24) [[2]](diffhunk://#diff-2fec3a5daf6d86f193c4f1bf1b809829a7471077b651f5233947089305a1371fR33) * [`packages/clang-format-node/src/utils/getClangFormatPath.js`](diffhunk://#diff-69431841c8379c19bac868db91bce476be6122cca550dd2bb841a8fd7d050ebbR31): Added a reference to the documentation URL for `clang-format-node` in the comments for `getClangFormatPath` and `getClangFormatNodePath`. [[1]](diffhunk://#diff-69431841c8379c19bac868db91bce476be6122cca550dd2bb841a8fd7d050ebbR31) [[2]](diffhunk://#diff-69431841c8379c19bac868db91bce476be6122cca550dd2bb841a8fd7d050ebbR55) --- .../clang-format-git-python/src/utils/gitClangFormatPath.js | 2 ++ packages/clang-format-git/src/utils/getGitClangFormatPath.js | 2 ++ packages/clang-format-git/src/utils/gitClangFormatPath.js | 2 ++ packages/clang-format-node/src/utils/clangFormatPath.js | 2 ++ packages/clang-format-node/src/utils/getClangFormatPath.js | 2 ++ 5 files changed, 10 insertions(+) diff --git a/packages/clang-format-git-python/src/utils/gitClangFormatPath.js b/packages/clang-format-git-python/src/utils/gitClangFormatPath.js index fdd34510..a57fbc51 100644 --- a/packages/clang-format-git-python/src/utils/gitClangFormatPath.js +++ b/packages/clang-format-git-python/src/utils/gitClangFormatPath.js @@ -20,6 +20,7 @@ const { resolve } = require('path'); * @type string * @alias `clangFormatGitPythonPath`. See {@link clangFormatGitPythonPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git-python */ const gitClangFormatPath = resolve(__dirname, `..`, `script`, `git-clang-format`); @@ -28,6 +29,7 @@ const gitClangFormatPath = resolve(__dirname, `..`, `script`, `git-clang-format` * * @alias `gitClangFormatPath`. See {@link gitClangFormatPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git-python */ const clangFormatGitPythonPath = gitClangFormatPath; diff --git a/packages/clang-format-git/src/utils/getGitClangFormatPath.js b/packages/clang-format-git/src/utils/getGitClangFormatPath.js index 5fd0d57f..2ee747b2 100644 --- a/packages/clang-format-git/src/utils/getGitClangFormatPath.js +++ b/packages/clang-format-git/src/utils/getGitClangFormatPath.js @@ -28,6 +28,7 @@ const { resolve } = require('path'); * @throws `Error` Throws an error if the executable binary is not found for the specified OS platform and architecture. * @alias `getClangFormatGitPath`. See {@link getClangFormatGitPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git */ function getGitClangFormatPath(osPlatform, architecture) { const gitClangFormatPath = resolve( @@ -51,6 +52,7 @@ function getGitClangFormatPath(osPlatform, architecture) { * * @alias `getGitClangFormatPath`. See {@link getGitClangFormatPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git */ const getClangFormatGitPath = getGitClangFormatPath; diff --git a/packages/clang-format-git/src/utils/gitClangFormatPath.js b/packages/clang-format-git/src/utils/gitClangFormatPath.js index 0daa9f21..909459dc 100644 --- a/packages/clang-format-git/src/utils/gitClangFormatPath.js +++ b/packages/clang-format-git/src/utils/gitClangFormatPath.js @@ -21,6 +21,7 @@ const { getGitClangFormatPath } = require('./getGitClangFormatPath'); * * @alias `clangFormatGitPath`. See {@link clangFormatGitPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git */ const gitClangFormatPath = getGitClangFormatPath(platform(), arch()); @@ -29,6 +30,7 @@ const gitClangFormatPath = getGitClangFormatPath(platform(), arch()); * * @alias `gitClangFormatPath`. See {@link gitClangFormatPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-git */ const clangFormatGitPath = gitClangFormatPath; diff --git a/packages/clang-format-node/src/utils/clangFormatPath.js b/packages/clang-format-node/src/utils/clangFormatPath.js index 470db7e7..d06f723c 100644 --- a/packages/clang-format-node/src/utils/clangFormatPath.js +++ b/packages/clang-format-node/src/utils/clangFormatPath.js @@ -21,6 +21,7 @@ const { getClangFormatPath } = require('./getClangFormatPath'); * * @alias `clangFormatNodePath`. See {@link clangFormatNodePath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-node */ const clangFormatPath = getClangFormatPath(platform(), arch()); @@ -29,6 +30,7 @@ const clangFormatPath = getClangFormatPath(platform(), arch()); * * @alias `clangFormatPath`. See {@link clangFormatPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-node */ const clangFormatNodePath = clangFormatPath; diff --git a/packages/clang-format-node/src/utils/getClangFormatPath.js b/packages/clang-format-node/src/utils/getClangFormatPath.js index 55972bdf..66e0ceef 100644 --- a/packages/clang-format-node/src/utils/getClangFormatPath.js +++ b/packages/clang-format-node/src/utils/getClangFormatPath.js @@ -28,6 +28,7 @@ const { resolve } = require('path'); * @throws `Error` Throws an error if the executable binary is not found for the specified OS platform and architecture. * @alias `getClangFormatNodePath`. See {@link getClangFormatNodePath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-node */ function getClangFormatPath(osPlatform, architecture) { const clangFormatPath = resolve( @@ -51,6 +52,7 @@ function getClangFormatPath(osPlatform, architecture) { * * @alias `getClangFormatPath`. See {@link getClangFormatPath}. * @version `v1.2.0` Initial release. + * @see https://clang-format-node.lumir.page/docs/apis/clang-format-node */ const getClangFormatNodePath = getClangFormatPath; From fff7d0bda9714e8a680b3d844b67bb5225a963d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 21:03:36 +0900 Subject: [PATCH 14/16] chore: update `extensions.json` and `.github/sync-client.yml` (#192) This pull request includes updates to configuration files and recommended extensions. The most important changes involve re-adding some configuration files to the synchronization list and updating the recommended extensions for VS Code. Configuration file updates: * [`.github/sync-client.yml`](diffhunk://#diff-93bc202766315b6269beef308a6ad30ed3e86938ddbfa31b49e030f2263695f1L27-R42): Re-added `dependabot.yml` and `labeler.yml` to the synchronization list. * [`.vscode/extensions.json`](diffhunk://#diff-c16655a98a3ee89a7636a59c59a72b0e93649e3a1e947327cfc43a1336b4e912L4): Removed `stylelint.vscode-stylelint` from the list of recommended extensions. --- .github/sync-client.yml | 10 +++++----- .vscode/extensions.json | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/sync-client.yml b/.github/sync-client.yml index 074e702d..b4334359 100644 --- a/.github/sync-client.yml +++ b/.github/sync-client.yml @@ -24,14 +24,14 @@ lumirlumir/lumirlumir-configs: # ./.github - source: ./.github/CODEOWNERS dest: ./configs/.github/CODEOWNERS - - source: ./.github/dependabot.yml - dest: ./configs/.github/dependabot.yml - source: ./.github/FUNDING.yml dest: ./configs/.github/FUNDING.yml - - source: ./.github/labeler.yml - dest: ./configs/.github/labeler.yml - source: ./.github/PULL_REQUEST_TEMPLATE.md dest: ./configs/.github/PULL_REQUEST_TEMPLATE.md + - source: ./.github/dependabot.yml + dest: ./configs/.github/dependabot.yml + - source: ./.github/labeler.yml + dest: ./configs/.github/labeler.yml - source: ./.github/release.yml dest: ./configs/.github/release.yml # ./.husky @@ -39,7 +39,7 @@ lumirlumir/lumirlumir-configs: dest: ./configs/.husky/pre-commit # ./.vscode - source: ./.vscode/extensions.json - dest: ./configs/.vscode/web-extensions.json + dest: ./configs/.vscode/npm-extensions.json - source: ./.vscode/settings.json dest: ./configs/.vscode/settings.json # ./ diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 5de777fa..3bd06b51 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,7 +1,6 @@ { "recommendations": [ "dbaeumer.vscode-eslint", - "stylelint.vscode-stylelint", "esbenp.prettier-vscode", "editorconfig.editorconfig", "davidanson.vscode-markdownlint" From af9b6acb9f9b198e53a4e44739662b371a5ccc63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 21:09:54 +0900 Subject: [PATCH 15/16] ci: add `concurrency` settings to `lint.yml` and `test.yml` workflows (#193) This pull request includes changes to the GitHub Actions workflows to add concurrency control for the `lint` and `test` jobs. The most important changes are: GitHub Actions concurrency control: * [`.github/workflows/lint.yml`](diffhunk://#diff-107e910e9f2ebfb9a741fa10b2aa7100cc1fc4f5f3aca2dfe78b905cbd73c0d2R10-R13): Added concurrency control to the `lint` job to group by workflow and ref, and cancel in-progress runs for non-main branches. * [`.github/workflows/test.yml`](diffhunk://#diff-faff1af3d8ff408964a57b2e475f69a6b7c7b71c9978cccc8f471798caac2c88R10-R13): Added concurrency control to the `test` job to group by workflow and ref, and cancel in-progress runs for non-main branches. --- .github/workflows/lint.yml | 4 ++++ .github/workflows/test.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4e9200e5..89c6e474 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,6 +7,10 @@ on: pull_request: branches: [main] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !contains(github.ref, 'main') }} + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eafe128c..f947d96c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,6 +7,10 @@ on: pull_request: branches: [main] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !contains(github.ref, 'main') }} + jobs: test: runs-on: ubuntu-latest From 9686d5ba81836f06c9afcce40c4cb9f19292bdec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A3=A8=EB=B0=80LuMir?= Date: Sat, 25 Jan 2025 21:15:17 +0900 Subject: [PATCH 16/16] release(minor): v1.3.0 (#194) Bump `lumirlumir/npm-clang-format-node` from v1.2.5 to v1.3.0 :tada: --- examples/clang-format/package.json | 4 +- examples/git-clang-format/package.json | 4 +- lerna.json | 2 +- package-lock.json | 44 +++++++++---------- packages/clang-format-git-python/package.json | 4 +- packages/clang-format-git/package.json | 4 +- packages/clang-format-node/package.json | 2 +- tests/integration-api-cjs/package.json | 8 ++-- tests/integration-api-esm/package.json | 8 ++-- .../package.json | 8 ++-- website/package.json | 2 +- 11 files changed, 45 insertions(+), 45 deletions(-) diff --git a/examples/clang-format/package.json b/examples/clang-format/package.json index 6bc53caa..6cc6294a 100644 --- a/examples/clang-format/package.json +++ b/examples/clang-format/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "examples-clang-format", - "version": "1.2.5", + "version": "1.3.0", "scripts": { "formatted:c": "npx clang-format src/formatted.c", "formatted:c:dry-run": "npx clang-format -Werror -n src/formatted.c", @@ -13,6 +13,6 @@ "unformatted:cpp:dry-run": "npx clang-format -Werror -n src/unformatted.cpp" }, "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" } } diff --git a/examples/git-clang-format/package.json b/examples/git-clang-format/package.json index 981c9c4b..b74f4925 100644 --- a/examples/git-clang-format/package.json +++ b/examples/git-clang-format/package.json @@ -1,13 +1,13 @@ { "private": true, "name": "examples-git-clang-format", - "version": "1.2.5", + "version": "1.3.0", "scripts": { "add-a-space-to-line-9-of-main-c-file": "cat src/main_overwrite.txt > src/main.c", "git-add": "git add src/main.c && git status", "git-clang-format": "npx git-clang-format" }, "dependencies": { - "clang-format-git": "^1.2.5" + "clang-format-git": "^1.3.0" } } diff --git a/lerna.json b/lerna.json index 96423fe2..61826102 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "1.2.5" + "version": "1.3.0" } diff --git a/package-lock.json b/package-lock.json index 1b47cb64..21d0e731 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,16 +36,16 @@ }, "examples/clang-format": { "name": "examples-clang-format", - "version": "1.2.5", + "version": "1.3.0", "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" } }, "examples/git-clang-format": { "name": "examples-git-clang-format", - "version": "1.2.5", + "version": "1.3.0", "dependencies": { - "clang-format-git": "^1.2.5" + "clang-format-git": "^1.3.0" } }, "node_modules/@algolia/autocomplete-core": { @@ -19222,11 +19222,11 @@ } }, "packages/clang-format-git": { - "version": "1.2.5", + "version": "1.3.0", "hasInstallScript": true, "license": "MIT", "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" }, "bin": { "clang-format-git": "build/cli.js", @@ -19237,11 +19237,11 @@ } }, "packages/clang-format-git-python": { - "version": "1.2.5", + "version": "1.3.0", "hasInstallScript": true, "license": "MIT", "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" }, "bin": { "clang-format-git-python": "build/cli.js", @@ -19252,7 +19252,7 @@ } }, "packages/clang-format-node": { - "version": "1.2.5", + "version": "1.3.0", "hasInstallScript": true, "license": "MIT", "bin": { @@ -19265,20 +19265,20 @@ }, "tests/integration-api-cjs": { "name": "tests-integration-api-cjs", - "version": "1.2.5", + "version": "1.3.0", "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } }, "tests/integration-api-esm": { "name": "tests-integration-api-esm", - "version": "1.2.5", + "version": "1.3.0", "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } }, "tests/integration-binaries-perimission": { @@ -19291,11 +19291,11 @@ }, "tests/integration-binaries-permission": { "name": "tests-integration-binaries-permission", - "version": "1.2.5", + "version": "1.3.0", "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } }, "tests/integration-cjs": { @@ -19331,7 +19331,7 @@ } }, "website": { - "version": "1.2.5", + "version": "1.3.0", "devDependencies": { "markdown-it-footnote": "^4.0.0", "vitepress": "^1.6.1", diff --git a/packages/clang-format-git-python/package.json b/packages/clang-format-git-python/package.json index e714facc..eb77b6f4 100644 --- a/packages/clang-format-git-python/package.json +++ b/packages/clang-format-git-python/package.json @@ -1,6 +1,6 @@ { "name": "clang-format-git-python", - "version": "1.2.5", + "version": "1.3.0", "description": "Node wrapper for git-clang-format Python script. This package requires Python3 as a dependency.🐉", "main": "build/index.js", "files": [ @@ -53,6 +53,6 @@ "chmod": "find ./src/script ./build/script -type f -exec chmod 755 {} + || exit 0" }, "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" } } diff --git a/packages/clang-format-git/package.json b/packages/clang-format-git/package.json index 08f573e7..60532214 100644 --- a/packages/clang-format-git/package.json +++ b/packages/clang-format-git/package.json @@ -1,6 +1,6 @@ { "name": "clang-format-git", - "version": "1.2.5", + "version": "1.3.0", "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": [ @@ -52,6 +52,6 @@ "chmod": "find ./src/bin ./build/bin -type f -exec chmod 755 {} + || exit 0" }, "dependencies": { - "clang-format-node": "^1.2.5" + "clang-format-node": "^1.3.0" } } diff --git a/packages/clang-format-node/package.json b/packages/clang-format-node/package.json index e864e5e3..da480f61 100644 --- a/packages/clang-format-node/package.json +++ b/packages/clang-format-node/package.json @@ -1,6 +1,6 @@ { "name": "clang-format-node", - "version": "1.2.5", + "version": "1.3.0", "description": "Node wrapper for clang-format native binary inspired by angular/clang-format.🐉", "main": "build/index.js", "files": [ diff --git a/tests/integration-api-cjs/package.json b/tests/integration-api-cjs/package.json index 9b2319dc..898ccb89 100644 --- a/tests/integration-api-cjs/package.json +++ b/tests/integration-api-cjs/package.json @@ -1,14 +1,14 @@ { "private": true, "name": "tests-integration-api-cjs", - "version": "1.2.5", + "version": "1.3.0", "type": "commonjs", "scripts": { "test": "node --test" }, "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } } diff --git a/tests/integration-api-esm/package.json b/tests/integration-api-esm/package.json index 427e4bee..f040869d 100644 --- a/tests/integration-api-esm/package.json +++ b/tests/integration-api-esm/package.json @@ -1,14 +1,14 @@ { "private": true, "name": "tests-integration-api-esm", - "version": "1.2.5", + "version": "1.3.0", "type": "module", "scripts": { "test": "node --test" }, "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } } diff --git a/tests/integration-binaries-permission/package.json b/tests/integration-binaries-permission/package.json index 1d2a21f8..b27f921a 100644 --- a/tests/integration-binaries-permission/package.json +++ b/tests/integration-binaries-permission/package.json @@ -1,13 +1,13 @@ { "private": true, "name": "tests-integration-binaries-permission", - "version": "1.2.5", + "version": "1.3.0", "scripts": { "test": "node --test" }, "dependencies": { - "clang-format-git": "^1.2.5", - "clang-format-git-python": "^1.2.5", - "clang-format-node": "^1.2.5" + "clang-format-git": "^1.3.0", + "clang-format-git-python": "^1.3.0", + "clang-format-node": "^1.3.0" } } diff --git a/website/package.json b/website/package.json index bcbafd06..9fde73b8 100644 --- a/website/package.json +++ b/website/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "website", - "version": "1.2.5", + "version": "1.3.0", "scripts": { "dev": "npx vitepress --open --host", "build": "npx vitepress build --outDir build", 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