From 2af94a6eb96dcfde22cab939cbee7d045b1f187d Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:36:55 +0900 Subject: [PATCH 01/10] changeset init --- .changeset/README.md | 8 + .changeset/config.json | 11 + docs/package.json | 1 + package.json | 4 + yarn.lock | 713 +++++++++++++++++++++++++++++++++++++++-- 5 files changed, 702 insertions(+), 35 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..ad6f18a --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/docs/package.json b/docs/package.json index 009d17b..c27f7d1 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,4 +1,5 @@ { + "name": "docflow-docs", "private": true, "packageManager": "yarn@4.9.1", "scripts": { diff --git a/package.json b/package.json index bc1402c..e137987 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "name": "docflow-monorepo", "private": true, "workspaces": [ "packages/*", @@ -6,9 +7,12 @@ ], "scripts": { "lint": "eslint ." + "changeset:version": "changeset version", + "changeset:publish": "changeset publish" }, "packageManager": "yarn@4.9.1", "devDependencies": { + "@changesets/cli": "^2.29.8", "@eslint/js": "^9.9.1", "@types/eslint": "^9", "@types/eslint__js": "^8.42.3", diff --git a/yarn.lock b/yarn.lock index ca7c7d9..ea55bc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -235,6 +235,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.5.5": + version: 7.28.6 + resolution: "@babel/runtime@npm:7.28.6" + checksum: 10c0/358cf2429992ac1c466df1a21c1601d595c46930a13c1d4662fde908d44ee78ec3c183aaff513ecb01ef8c55c3624afe0309eeeb34715672dbfadb7feedb2c0d + languageName: node + linkType: hard + "@babel/types@npm:^7.28.0, @babel/types@npm:^7.28.1": version: 7.28.1 resolution: "@babel/types@npm:7.28.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2F%40babel%2Ftypes%2F-%2Ftypes-7.28.1.tgz" @@ -245,6 +252,240 @@ __metadata: languageName: node linkType: hard +"@changesets/apply-release-plan@npm:^7.0.14": + version: 7.0.14 + resolution: "@changesets/apply-release-plan@npm:7.0.14" + dependencies: + "@changesets/config": "npm:^3.1.2" + "@changesets/get-version-range-type": "npm:^0.4.0" + "@changesets/git": "npm:^3.0.4" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + detect-indent: "npm:^6.0.0" + fs-extra: "npm:^7.0.1" + lodash.startcase: "npm:^4.4.0" + outdent: "npm:^0.5.0" + prettier: "npm:^2.7.1" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + checksum: 10c0/097c7ebcec758966b6728696498d59cfac23271aba2a56824ee307be1eefb2d0c6974aef1be4841e20b3458546ffacfd108c1afbf3acc512d6c3a4e30fa28622 + languageName: node + linkType: hard + +"@changesets/assemble-release-plan@npm:^6.0.9": + version: 6.0.9 + resolution: "@changesets/assemble-release-plan@npm:6.0.9" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.3" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + semver: "npm:^7.5.3" + checksum: 10c0/128f87975f65d9ceb2c997df186a5deae8637fd3868098bb4fb9772f35fdd3b47883ccbdc2761d0468e60a83ef4e2c1561a8e58f8052bfe2daf1ea046803fe1a + languageName: node + linkType: hard + +"@changesets/changelog-git@npm:^0.2.1": + version: 0.2.1 + resolution: "@changesets/changelog-git@npm:0.2.1" + dependencies: + "@changesets/types": "npm:^6.1.0" + checksum: 10c0/6a6fb315ffb2266fcb8f32ae9a60ccdb5436e52350a2f53beacf9822d3355f9052aba5001a718e12af472b4a8fabd69b408d0b11c02ac909ba7a183d27a9f7fd + languageName: node + linkType: hard + +"@changesets/cli@npm:^2.29.8": + version: 2.29.8 + resolution: "@changesets/cli@npm:2.29.8" + dependencies: + "@changesets/apply-release-plan": "npm:^7.0.14" + "@changesets/assemble-release-plan": "npm:^6.0.9" + "@changesets/changelog-git": "npm:^0.2.1" + "@changesets/config": "npm:^3.1.2" + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.3" + "@changesets/get-release-plan": "npm:^4.0.14" + "@changesets/git": "npm:^3.0.4" + "@changesets/logger": "npm:^0.1.1" + "@changesets/pre": "npm:^2.0.2" + "@changesets/read": "npm:^0.6.6" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@changesets/write": "npm:^0.4.0" + "@inquirer/external-editor": "npm:^1.0.2" + "@manypkg/get-packages": "npm:^1.1.3" + ansi-colors: "npm:^4.1.3" + ci-info: "npm:^3.7.0" + enquirer: "npm:^2.4.1" + fs-extra: "npm:^7.0.1" + mri: "npm:^1.2.0" + p-limit: "npm:^2.2.0" + package-manager-detector: "npm:^0.2.0" + picocolors: "npm:^1.1.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + spawndamnit: "npm:^3.0.1" + term-size: "npm:^2.1.0" + bin: + changeset: bin.js + checksum: 10c0/85c32814698403f1634b649d96b8b32f04fa7f2065e455df672c0b39e9a2dc3a05538b82496536ac00aabf7810dfa68ff8049fa4f618e50ed00a29ceb302a7b5 + languageName: node + linkType: hard + +"@changesets/config@npm:^3.1.2": + version: 3.1.2 + resolution: "@changesets/config@npm:3.1.2" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.3" + "@changesets/logger": "npm:^0.1.1" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + micromatch: "npm:^4.0.8" + checksum: 10c0/76065383cd5b7595f95ad7dc4aacfa74dd4ebb2ef956c30ea97e6f09b87b2e73b870676e7b294290b6cf9b1777983526bc8d3bb58dedd37dfa8a5ddbb02ebe1a + languageName: node + linkType: hard + +"@changesets/errors@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/errors@npm:0.2.0" + dependencies: + extendable-error: "npm:^0.1.5" + checksum: 10c0/f2757c752ab04e9733b0dfd7903f1caf873f9e603794c4d9ea2294af4f937c73d07273c24be864ad0c30b6a98424360d5b96a6eab14f97f3cf2cbfd3763b95c1 + languageName: node + linkType: hard + +"@changesets/get-dependents-graph@npm:^2.1.3": + version: 2.1.3 + resolution: "@changesets/get-dependents-graph@npm:2.1.3" + dependencies: + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + picocolors: "npm:^1.1.0" + semver: "npm:^7.5.3" + checksum: 10c0/b9d9992440b7e09dcaf22f57d28f1d8e0e31996e1bc44dbbfa1801e44f93fa49ebba6f9356c60f6ff0bd85cd0f0d0b8602f7e0f2addc5be647b686e6f8985f70 + languageName: node + linkType: hard + +"@changesets/get-release-plan@npm:^4.0.14": + version: 4.0.14 + resolution: "@changesets/get-release-plan@npm:4.0.14" + dependencies: + "@changesets/assemble-release-plan": "npm:^6.0.9" + "@changesets/config": "npm:^3.1.2" + "@changesets/pre": "npm:^2.0.2" + "@changesets/read": "npm:^0.6.6" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10c0/24a15056955fc3967e023f058fa6c1e7550f3aad5c299264307a09b6d312868715684595bdb45a79c3f25fc809a70582be39861f3ae958d392b89a234f65b670 + languageName: node + linkType: hard + +"@changesets/get-version-range-type@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/get-version-range-type@npm:0.4.0" + checksum: 10c0/e466208c8383489a383f37958d8b5b9aed38539f9287b47fe155a2e8855973f6960fb1724a1ee33b11580d65e1011059045ee654e8ef51e4783017d8989c9d3f + languageName: node + linkType: hard + +"@changesets/git@npm:^3.0.4": + version: 3.0.4 + resolution: "@changesets/git@npm:3.0.4" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@manypkg/get-packages": "npm:^1.1.3" + is-subdir: "npm:^1.1.1" + micromatch: "npm:^4.0.8" + spawndamnit: "npm:^3.0.1" + checksum: 10c0/4abbdc1dec6ddc50b6ad927d9eba4f23acd775fdff615415813099befb0cecd1b0f56ceea5e18a5a3cbbb919d68179366074b02a954fbf4016501e5fd125d2b5 + languageName: node + linkType: hard + +"@changesets/logger@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/logger@npm:0.1.1" + dependencies: + picocolors: "npm:^1.1.0" + checksum: 10c0/a0933b5bd4d99e10730b22612dc1bdfd25b8804c5b48f8cada050bf5c7a89b2ae9a61687f846a5e9e5d379a95b59fef795c8d5d91e49a251f8da2be76133f83f + languageName: node + linkType: hard + +"@changesets/parse@npm:^0.4.2": + version: 0.4.2 + resolution: "@changesets/parse@npm:0.4.2" + dependencies: + "@changesets/types": "npm:^6.1.0" + js-yaml: "npm:^4.1.1" + checksum: 10c0/fdc1c99e01257e194a5ff59213993158deae9f84a66f5444a636645ff2655f67b6031589bab796a8c3ed653220d3c55fd62a6af2504a7c54bb541ac573119c5d + languageName: node + linkType: hard + +"@changesets/pre@npm:^2.0.2": + version: 2.0.2 + resolution: "@changesets/pre@npm:2.0.2" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + checksum: 10c0/0af9396d84c47a88d79b757e9db4e3579b6620260f92c243b8349e7fcefca3c2652583f6d215c13115bed5d5cdc30c975f307fd6acbb89d205b1ba2ae403b918 + languageName: node + linkType: hard + +"@changesets/read@npm:^0.6.6": + version: 0.6.6 + resolution: "@changesets/read@npm:0.6.6" + dependencies: + "@changesets/git": "npm:^3.0.4" + "@changesets/logger": "npm:^0.1.1" + "@changesets/parse": "npm:^0.4.2" + "@changesets/types": "npm:^6.1.0" + fs-extra: "npm:^7.0.1" + p-filter: "npm:^2.1.0" + picocolors: "npm:^1.1.0" + checksum: 10c0/a0a503061764bb391e00a37df1251c90356cf46519663dd517e58bc170c290f591abc1cff44569c88c87083360a36e2d756afcf7537b8725f4decfd915f838d3 + languageName: node + linkType: hard + +"@changesets/should-skip-package@npm:^0.1.2": + version: 0.1.2 + resolution: "@changesets/should-skip-package@npm:0.1.2" + dependencies: + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10c0/484e339e7d6e6950e12bff4eda6e8eccb077c0fbb1f09dd95d2ae948b715226a838c71eaf50cd2d7e0e631ce3bfb1ca93ac752436e6feae5b87aece2e917b440 + languageName: node + linkType: hard + +"@changesets/types@npm:^4.0.1": + version: 4.1.0 + resolution: "@changesets/types@npm:4.1.0" + checksum: 10c0/a372ad21f6a1e0d4ce6c19573c1ca269eef1ad53c26751ad9515a24f003e7c49dcd859dbb1fedb6badaf7be956c1559e8798304039e0ec0da2d9a68583f13464 + languageName: node + linkType: hard + +"@changesets/types@npm:^6.1.0": + version: 6.1.0 + resolution: "@changesets/types@npm:6.1.0" + checksum: 10c0/b4cea3a4465d1eaf0bbd7be1e404aca5a055a61d4cc72aadcb73bbbda1670b4022736b8d3052616cbf1f451afa0637545d077697f4b923236539af9cd5abce6c + languageName: node + linkType: hard + +"@changesets/write@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/write@npm:0.4.0" + dependencies: + "@changesets/types": "npm:^6.1.0" + fs-extra: "npm:^7.0.1" + human-id: "npm:^4.1.1" + prettier: "npm:^2.7.1" + checksum: 10c0/311f4d0e536d1b5f2d3f9053537d62b2d4cdbd51e1d2767807ac9d1e0f380367f915d2ad370e5c73902d5a54bffd282d53fff5418c8ad31df51751d652bea826 + languageName: node + linkType: hard + "@cspotcode/source-map-support@npm:^0.8.0": version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" @@ -836,6 +1077,21 @@ __metadata: languageName: node linkType: hard +"@inquirer/external-editor@npm:^1.0.2": + version: 1.0.3 + resolution: "@inquirer/external-editor@npm:1.0.3" + dependencies: + chardet: "npm:^2.1.1" + iconv-lite: "npm:^0.7.0" + peerDependencies: + "@types/node": ">=18" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10c0/82951cb7f3762dd78cca2ea291396841e3f4adfe26004b5badfed1cec4b6a04bb567dff94d0e41b35c61bdd7957317c64c22f58074d14b238d44e44d9e420019 + languageName: node + linkType: hard + "@isaacs/balanced-match@npm:^4.0.1": version: 4.0.1 resolution: "@isaacs/balanced-match@npm:4.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2F%40isaacs%2Fbalanced-match%2F-%2Fbalanced-match-4.0.1.tgz" @@ -933,6 +1189,32 @@ __metadata: languageName: node linkType: hard +"@manypkg/find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "@manypkg/find-root@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@types/node": "npm:^12.7.1" + find-up: "npm:^4.1.0" + fs-extra: "npm:^8.1.0" + checksum: 10c0/0ee907698e6c73d6f1821ff630f3fec6dcf38260817c8752fec8991ac38b95ba431ab11c2773ddf9beb33d0e057f1122b00e8ffc9b8411b3fd24151413626fa6 + languageName: node + linkType: hard + +"@manypkg/get-packages@npm:^1.1.3": + version: 1.1.3 + resolution: "@manypkg/get-packages@npm:1.1.3" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@changesets/types": "npm:^4.0.1" + "@manypkg/find-root": "npm:^1.1.0" + fs-extra: "npm:^8.1.0" + globby: "npm:^11.0.0" + read-yaml-file: "npm:^1.1.0" + checksum: 10c0/f05907d1174ae28861eaa06d0efdc144f773d9a4b8b65e1e7cdc01eb93361d335351b4a336e05c6aac02661be39e8809a3f7ad28bc67b6b338071434ab442130 + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^2.0.0": version: 2.0.0 resolution: "@mapbox/node-pre-gyp@npm:2.0.0" @@ -1691,6 +1973,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^12.7.1": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 + languageName: node + linkType: hard + "@types/node@npm:^17.0.19": version: 17.0.45 resolution: "@types/node@npm:17.0.45::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2F%40types%2Fnode%2F-%2Fnode-17.0.45.tgz" @@ -2584,6 +2873,13 @@ __metadata: languageName: node linkType: hard +"ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fansi-regex%2F-%2Fansi-regex-5.0.1.tgz" @@ -2658,6 +2954,13 @@ __metadata: languageName: node linkType: hard +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 + languageName: node + linkType: hard + "assertion-error@npm:^2.0.1": version: 2.0.1 resolution: "assertion-error@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fassertion-error%2F-%2Fassertion-error-2.0.1.tgz" @@ -2733,6 +3036,15 @@ __metadata: languageName: node linkType: hard +"better-path-resolve@npm:1.0.0": + version: 1.0.0 + resolution: "better-path-resolve@npm:1.0.0" + dependencies: + is-windows: "npm:^1.0.0" + checksum: 10c0/7335130729d59a14b8e4753fea180ca84e287cccc20cb5f2438a95667abc5810327c414eee7b3c79ed1b5a348a40284ea872958f50caba69432c40405eb0acce + languageName: node + linkType: hard + "bindings@npm:^1.4.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" @@ -2926,6 +3238,13 @@ __metadata: languageName: node linkType: hard +"chardet@npm:^2.1.1": + version: 2.1.1 + resolution: "chardet@npm:2.1.1" + checksum: 10c0/d8391dd412338442b3de0d3a488aa9327f8bcf74b62b8723d6bd0b85c4084d50b731320e0a7c710edb1d44de75969995d2784b80e4c13b004a6c7a0db4c6e793 + languageName: node + linkType: hard + "check-error@npm:^2.1.1": version: 2.1.1 resolution: "check-error@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fcheck-error%2F-%2Fcheck-error-2.1.1.tgz" @@ -2965,6 +3284,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^3.7.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a + languageName: node + linkType: hard + "cjs-module-lexer@npm:1.2.3": version: 1.2.3 resolution: "cjs-module-lexer@npm:1.2.3" @@ -3115,6 +3441,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + "csstype@npm:^3.1.3": version: 3.1.3 resolution: "csstype@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fcsstype%2F-%2Fcsstype-3.1.3.tgz" @@ -3199,6 +3536,13 @@ __metadata: languageName: node linkType: hard +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10c0/dd83cdeda9af219cf77f5e9a0dc31d828c045337386cfb55ce04fad94ba872ee7957336834154f7647b89b899c3c7acc977c57a79b7c776b506240993f97acc7 + languageName: node + linkType: hard + "detect-libc@npm:^2.0.0": version: 2.0.4 resolution: "detect-libc@npm:2.0.4" @@ -3229,6 +3573,45 @@ __metadata: languageName: node linkType: hard +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: "npm:^4.0.0" + checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c + languageName: node + linkType: hard + +"docflow-docs@workspace:docs": + version: 0.0.0-use.local + resolution: "docflow-docs@workspace:docs" + dependencies: + vitepress: "npm:1.3.4" + vue: "npm:^3.4.37" + languageName: unknown + linkType: soft + +"docflow-monorepo@workspace:.": + version: 0.0.0-use.local + resolution: "docflow-monorepo@workspace:." + dependencies: + "@changesets/cli": "npm:^2.29.8" + "@eslint/js": "npm:^9.9.1" + "@types/eslint": "npm:^9" + "@types/eslint__js": "npm:^8.42.3" + "@types/node": "npm:^22.15.1" + docflow: "workspace:^" + eslint: "npm:^9.9.1" + hygen: "npm:^6.2.11" + knip: "npm:^5.61.3" + tsx: "npm:^4.20.3" + typescript: "npm:^5.8.3" + typescript-eslint: "npm:^8.4.0" + vercel: "npm:^44.5.5" + vitest: "npm:^3.2.4" + languageName: unknown + linkType: soft + "docflow@workspace:^, docflow@workspace:packages/cli": version: 0.0.0-use.local resolution: "docflow@workspace:packages/cli" @@ -3258,15 +3641,6 @@ __metadata: languageName: unknown linkType: soft -"docs-8895dd@workspace:docs": - version: 0.0.0-use.local - resolution: "docs-8895dd@workspace:docs" - dependencies: - vitepress: "npm:1.3.4" - vue: "npm:^3.4.37" - languageName: unknown - linkType: soft - "dot-case@npm:^2.1.0": version: 2.1.1 resolution: "dot-case@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fdot-case%2F-%2Fdot-case-2.1.1.tgz" @@ -4010,6 +4384,13 @@ __metadata: languageName: node linkType: hard +"extendable-error@npm:^0.1.5": + version: 0.1.7 + resolution: "extendable-error@npm:0.1.7" + checksum: 10c0/c46648b7682448428f81b157cbfe480170fd96359c55db477a839ddeaa34905a18cba0b989bafe5e83f93c2491a3fcc7cc536063ea326ba9d72e9c6e2fe736a7 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Ffast-deep-equal%2F-%2Ffast-deep-equal-3.1.3.tgz" @@ -4017,7 +4398,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.7": +"fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -4130,6 +4511,16 @@ __metadata: languageName: node linkType: hard +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + languageName: node + linkType: hard + "find-up@npm:^5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Ffind-up%2F-%2Ffind-up-5.0.0.tgz" @@ -4218,6 +4609,28 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" + dependencies: + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10c0/1943bb2150007e3739921b8d13d4109abdc3cc481e53b97b7ea7f77eda1c3c642e27ae49eac3af074e3496ea02fde30f411ef410c760c70a38b92e656e5da784 + languageName: node + linkType: hard + +"fs-extra@npm:^8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -4335,16 +4748,30 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": +"globby@npm:^11.0.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: "npm:^2.1.0" + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.2.9" + ignore: "npm:^5.2.0" + merge2: "npm:^1.4.1" + slash: "npm:^3.0.0" + checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.2.9": version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fgraceful-fs%2F-%2Fgraceful-fs-4.2.11.tgz" + resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 languageName: node linkType: hard -"graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" + resolution: "graceful-fs@npm:4.2.11::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fgraceful-fs%2F-%2Fgraceful-fs-4.2.11.tgz" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 languageName: node linkType: hard @@ -4475,6 +4902,15 @@ __metadata: languageName: node linkType: hard +"human-id@npm:^4.1.1": + version: 4.1.3 + resolution: "human-id@npm:4.1.3" + bin: + human-id: dist/cli.js + checksum: 10c0/c0e6aacfa71adff6e9783fc209493a7f8de92da041bea32deb3a9cd1244a4d2b89f32d5e90130e8e22da4e6fe15b61cf4e533f114927384de1418460c92b5a7a + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fhuman-signals%2F-%2Fhuman-signals-2.1.0.tgz" @@ -4524,6 +4960,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:^0.7.0": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fieee754%2F-%2Fieee754-1.2.1.tgz" @@ -4676,6 +5121,15 @@ __metadata: languageName: node linkType: hard +"is-subdir@npm:^1.1.1": + version: 1.2.0 + resolution: "is-subdir@npm:1.2.0" + dependencies: + better-path-resolve: "npm:1.0.0" + checksum: 10c0/03a03ee2ee6578ce589b1cfaf00e65c86b20fd1b82c1660625557c535439a7477cda77e20c62cda6d4c99e7fd908b4619355ae2d989f4a524a35350a44353032 + languageName: node + linkType: hard + "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fis-unicode-supported%2F-%2Fis-unicode-supported-0.1.0.tgz" @@ -4699,6 +5153,13 @@ __metadata: languageName: node linkType: hard +"is-windows@npm:^1.0.0": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 + languageName: node + linkType: hard + "isarray@npm:0.0.1": version: 0.0.1 resolution: "isarray@npm:0.0.1" @@ -4791,6 +5252,18 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^3.6.1": + version: 3.14.2 + resolution: "js-yaml@npm:3.14.2" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/3261f25912f5dd76605e5993d0a126c2b6c346311885d3c483706cd722efe34f697ea0331f654ce27c00a42b426e524518ec89d65ed02ea47df8ad26dcc8ce69 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fjs-yaml%2F-%2Fjs-yaml-4.1.0.tgz" @@ -4802,6 +5275,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.1.1": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 + languageName: node + linkType: hard + "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fjsbn%2F-%2Fjsbn-1.1.0.tgz" @@ -4856,6 +5340,18 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" + dependencies: + graceful-fs: "npm:^4.1.6" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fjsonfile%2F-%2Fjsonfile-6.1.0.tgz" @@ -4915,6 +5411,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + languageName: node + linkType: hard + "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Flocate-path%2F-%2Flocate-path-6.0.0.tgz" @@ -4931,6 +5436,13 @@ __metadata: languageName: node linkType: hard +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: 10c0/bd82aa87a45de8080e1c5ee61128c7aee77bf7f1d86f4ff94f4a6d7438fc9e15e5f03374b947be577a93804c8ad6241f0251beaf1452bf716064eeb657b3a9f0 + languageName: node + linkType: hard + "log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Flog-symbols%2F-%2Flog-symbols-4.1.0.tgz" @@ -5053,6 +5565,13 @@ __metadata: languageName: node linkType: hard +"merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + languageName: node + linkType: hard + "micro@npm:9.3.5-canary.3": version: 9.3.5-canary.3 resolution: "micro@npm:9.3.5-canary.3" @@ -5293,7 +5812,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:1.2.0": +"mri@npm:1.2.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 @@ -5522,6 +6041,13 @@ __metadata: languageName: node linkType: hard +"outdent@npm:^0.5.0": + version: 0.5.0 + resolution: "outdent@npm:0.5.0" + checksum: 10c0/e216a4498889ba1babae06af84cdc4091f7cac86da49d22d0163b3be202a5f52efcd2bcd3dfca60a361eb3a27b4299f185c5655061b6b402552d7fcd1d040cff + languageName: node + linkType: hard + "oxc-resolver@npm:^11.1.0": version: 11.5.2 resolution: "oxc-resolver@npm:11.5.2::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Foxc-resolver%2F-%2Foxc-resolver-11.5.2.tgz" @@ -5589,6 +6115,24 @@ __metadata: languageName: node linkType: hard +"p-filter@npm:^2.1.0": + version: 2.1.0 + resolution: "p-filter@npm:2.1.0" + dependencies: + p-map: "npm:^2.0.0" + checksum: 10c0/5ac34b74b3b691c04212d5dd2319ed484f591c557a850a3ffc93a08cb38c4f5540be059c6b10a185773c479ca583a91ea00c7d6c9958c815e6b74d052f356645 + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + "p-limit@npm:^3.0.2": version: 3.1.0 resolution: "p-limit@npm:3.1.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fp-limit%2F-%2Fp-limit-3.1.0.tgz" @@ -5598,6 +6142,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + "p-locate@npm:^5.0.0": version: 5.0.0 resolution: "p-locate@npm:5.0.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fp-locate%2F-%2Fp-locate-5.0.0.tgz" @@ -5607,6 +6160,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^2.0.0": + version: 2.1.0 + resolution: "p-map@npm:2.1.0" + checksum: 10c0/735dae87badd4737a2dd582b6d8f93e49a1b79eabbc9815a4d63a528d5e3523e978e127a21d784cccb637010e32103a40d2aaa3ab23ae60250b1a820ca752043 + languageName: node + linkType: hard + "p-map@npm:^7.0.2": version: 7.0.3 resolution: "p-map@npm:7.0.3::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fp-map%2F-%2Fp-map-7.0.3.tgz" @@ -5614,6 +6174,13 @@ __metadata: languageName: node linkType: hard +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + languageName: node + linkType: hard + "package-json-from-dist@npm:^1.0.0": version: 1.0.1 resolution: "package-json-from-dist@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fpackage-json-from-dist%2F-%2Fpackage-json-from-dist-1.0.1.tgz" @@ -5621,6 +6188,15 @@ __metadata: languageName: node linkType: hard +"package-manager-detector@npm:^0.2.0": + version: 0.2.11 + resolution: "package-manager-detector@npm:0.2.11" + dependencies: + quansync: "npm:^0.2.7" + checksum: 10c0/247991de461b9e731f3463b7dae9ce187e53095b7b94d7d96eec039abf418b61ccf74464bec1d0c11d97311f33472e77baccd4c5898f77358da4b5b33395e0b1 + languageName: node + linkType: hard + "param-case@npm:^2.1.0": version: 2.1.1 resolution: "param-case@npm:2.1.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fparam-case%2F-%2Fparam-case-2.1.1.tgz" @@ -5729,6 +6305,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c + languageName: node + linkType: hard + "pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fpathe%2F-%2Fpathe-1.1.2.tgz" @@ -5771,6 +6354,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + "picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fpicocolors%2F-%2Fpicocolors-1.1.1.tgz" @@ -5792,6 +6382,13 @@ __metadata: languageName: node linkType: hard +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf + languageName: node + linkType: hard + "postcss@npm:^8.4.43, postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fpostcss%2F-%2Fpostcss-8.5.6.tgz" @@ -5817,6 +6414,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^2.7.1": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a + languageName: node + linkType: hard + "pretty-ms@npm:7.0.1": version: 7.0.1 resolution: "pretty-ms@npm:7.0.1" @@ -5871,6 +6477,13 @@ __metadata: languageName: node linkType: hard +"quansync@npm:^0.2.7": + version: 0.2.11 + resolution: "quansync@npm:0.2.11" + checksum: 10c0/cb9a1f8ebce074069f2f6a78578873ffedd9de9f6aa212039b44c0870955c04a71c3b1311b5d97f8ac2f2ec476de202d0a5c01160cb12bc0a11b7ef36d22ef56 + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fqueue-microtask%2F-%2Fqueue-microtask-1.2.3.tgz" @@ -5890,6 +6503,18 @@ __metadata: languageName: node linkType: hard +"read-yaml-file@npm:^1.1.0": + version: 1.1.0 + resolution: "read-yaml-file@npm:1.1.0" + dependencies: + graceful-fs: "npm:^4.1.5" + js-yaml: "npm:^3.6.1" + pify: "npm:^4.0.1" + strip-bom: "npm:^3.0.0" + checksum: 10c0/85a9ba08bb93f3c91089bab4f1603995ec7156ee595f8ce40ae9f49d841cbb586511508bd47b7cf78c97f678c679b2c6e2c0092e63f124214af41b6f8a25ca31 + languageName: node + linkType: hard + "readable-stream@npm:^3.4.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Freadable-stream%2F-%2Freadable-stream-3.6.2.tgz" @@ -6154,26 +6779,6 @@ __metadata: languageName: node linkType: hard -"root-workspace-0b6124@workspace:.": - version: 0.0.0-use.local - resolution: "root-workspace-0b6124@workspace:." - dependencies: - "@eslint/js": "npm:^9.9.1" - "@types/eslint": "npm:^9" - "@types/eslint__js": "npm:^8.42.3" - "@types/node": "npm:^22.15.1" - docflow: "workspace:^" - eslint: "npm:^9.9.1" - hygen: "npm:^6.2.11" - knip: "npm:^5.61.3" - tsx: "npm:^4.20.3" - typescript: "npm:^5.8.3" - typescript-eslint: "npm:^8.4.0" - vercel: "npm:^44.5.5" - vitest: "npm:^3.2.4" - languageName: unknown - linkType: soft - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Frun-parallel%2F-%2Frun-parallel-1.2.0.tgz" @@ -6319,6 +6924,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fsmart-buffer%2F-%2Fsmart-buffer-4.2.0.tgz" @@ -6377,6 +6989,16 @@ __metadata: languageName: node linkType: hard +"spawndamnit@npm:^3.0.1": + version: 3.0.1 + resolution: "spawndamnit@npm:3.0.1" + dependencies: + cross-spawn: "npm:^7.0.5" + signal-exit: "npm:^4.0.1" + checksum: 10c0/a9821a59bc78a665bd44718dea8f4f4010bb1a374972b0a6a1633b9186cda6d6fd93f22d1e49d9944d6bb175ba23ce29036a4bd624884fb157d981842c3682f3 + languageName: node + linkType: hard + "speakingurl@npm:^14.0.1": version: 14.0.1 resolution: "speakingurl@npm:14.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fspeakingurl%2F-%2Fspeakingurl-14.0.1.tgz" @@ -6514,6 +7136,13 @@ __metadata: languageName: node linkType: hard +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 + languageName: node + linkType: hard + "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fstrip-final-newline%2F-%2Fstrip-final-newline-2.0.0.tgz" @@ -6621,6 +7250,13 @@ __metadata: languageName: node linkType: hard +"term-size@npm:^2.1.0": + version: 2.2.1 + resolution: "term-size@npm:2.2.1" + checksum: 10c0/89f6bba1d05d425156c0910982f9344d9e4aebf12d64bfa1f460d93c24baa7bc4c4a21d355fbd7153c316433df0538f64d0ae6e336cc4a69fdda4f85d62bc79d + languageName: node + linkType: hard + "throttleit@npm:^2.1.0": version: 2.1.0 resolution: "throttleit@npm:2.1.0" @@ -7104,6 +7740,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^0.1.0": + version: 0.1.2 + resolution: "universalify@npm:0.1.2" + checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Funiversalify%2F-%2Funiversalify-2.0.1.tgz" From b5f1c7e8fcc346ce72acb1e9ab6d2f835e63f471 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:37:54 +0900 Subject: [PATCH 02/10] change lint typecheck build script --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index e137987..556c469 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "docs" ], "scripts": { - "lint": "eslint ." + "lint": "yarn workspaces foreach -ptR --from 'packages/*' run lint", + "typecheck": "yarn workspaces foreach -ptR --from 'packages/*' run typecheck", + "build": "yarn workspaces foreach -ptR --from 'packages/*' run build", "changeset:version": "changeset version", "changeset:publish": "changeset publish" }, From 361b0b1c4e19f2f04fd0b0ae70768c6700631196 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:38:40 +0900 Subject: [PATCH 03/10] set changeset github action workflow and separate deploy-docs workflow --- .github/workflows/deploy-docs.yml | 32 +++++++++ .github/workflows/release.yml | 113 ++++++++---------------------- 2 files changed, 61 insertions(+), 84 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..dccde55 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,32 @@ +name: Release + +on: + push: + branches: + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +jobs: + deploy-docs: + if: github.event_name == 'push' && github.ref_type == 'tag' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - run: corepack enable + + - uses: actions/setup-node@v4 + with: + cache: "yarn" + cache-dependency-path: "yarn.lock" + node-version-file: ".nvmrc" + + - name: Install dependencies + run: yarn install + + - name: Deploy a docs site + run: |- + cd docs + yarn vercel deploy --yes --prod --token=${{ secrets.VERCEL_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 86d2bc3..104eb4b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,105 +3,50 @@ name: Release on: push: branches: - - "*" - tags: - - "v*.*.*" + - main + +concurrency: ${{ github.workflow }}-${{ github.ref }} jobs: release: + name: Release runs-on: ubuntu-latest permissions: - id-token: write contents: write - deployments: write - + pull-requests: write + id-token: write steps: - - name: Checkout + - name: Checkout Repo uses: actions/checkout@v4 + with: + fetch-depth: 0 - - run: corepack enable + - name: Enable Corepack + run: corepack enable - - uses: actions/setup-node@v4 + - name: Setup Node + uses: actions/setup-node@v4 with: + node-version-file: .nvmrc cache: "yarn" - cache-dependency-path: "yarn.lock" - node-version-file: ".nvmrc" - - if: github.ref_type == 'branch' - run: | - jq \ - --arg build "$GITHUB_RUN_NUMBER" \ - --arg commit "${GITHUB_SHA::8}" \ - '.version = .version + "-dev." + $build + "+" + $commit' \ - packages/cli/package.json > packages/cli/package.json.tmp - mv packages/cli/package.json.tmp packages/cli/package.json + - name: Install Dependencies + run: yarn install --immutable - - run: yarn install + - name: Build + run: yarn build - - name: Build and pack CLI - run: | - yarn workspace docflow build - mkdir -p out - cd packages/cli - yarn pack --out ../../out/docflow-cli.tgz + - name: Type Check + run: yarn typecheck - - id: extract-changelog - uses: dahlia/submark@5a5ff0a58382fb812616a5801402f5aef00f90ce + - name: Create Release Pull Request or Publish to npm + id: changesets + uses: changesets/action@v1 with: - input-file: CHANGELOG.md - heading-level: 2 - heading-title-text: version ${{ github.ref_name }} - ignore-case: true - omit-heading: true - - - run: cat ${{ steps.extract-changelog.outputs.output-file }} - - - name: Release - uses: softprops/action-gh-release@v2 - if: startsWith(github.ref, 'refs/tags/') - with: - body_path: ${{ steps.extract-changelog.outputs.output-file }} - repository: ${{ github.repository }} - generate_release_notes: false - token: ${{ secrets.GITHUB_TOKEN }} - files: out/*.tgz - - - name: Publish to registry - if: | - github.event_name == 'push' && - (github.ref_type == 'tag' || github.ref == 'refs/heads/main') - run: | - set -ex - npm config set //registry.npmjs.org/:_authToken "$NPM_AUTH_TOKEN" - npm whoami - if [[ "$GITHUB_REF_TYPE" = "tag" ]]; then - npm publish --provenance --access public docflow-cli.tgz - else - npm publish --provenance --access public --tag dev docflow-cli.tgz - fi + title: "chore: version packages" + commit: "chore: version packages" + version: yarn changeset:version + publish: yarn changeset:publish env: - NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - working-directory: ${{ github.workspace }}/out/ - - deploy-docs: - if: github.event_name == 'push' && github.ref_type == 'tag' - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - run: corepack enable - - - uses: actions/setup-node@v4 - with: - cache: "yarn" - cache-dependency-path: "yarn.lock" - node-version-file: ".nvmrc" - - - name: Install dependencies - run: yarn install - - - name: Deploy a docs site - run: |- - cd docs - yarn vercel deploy --yes --prod --token=${{ secrets.VERCEL_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_CONFIG_PROVENANCE: true From c21b3d9bc5abd399f965df73697fd3484c7c174e Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:43:02 +0900 Subject: [PATCH 04/10] fix lint --- packages/cli/src/config/load-config.ts | 1 + .../core/parser/jsdoc/jsdoc-utils.spec.ts | 9 +++--- .../core/parser/jsdoc/parse-jsdoc.spec.ts | 30 ++++++++++--------- ...xported-declarations-by-sourcefile.spec.ts | 16 +++++----- .../source/is-export-source-file.spec.ts | 8 +++-- .../src/tests/plugin/plugin-manager.spec.ts | 27 +++++++++-------- 6 files changed, 50 insertions(+), 41 deletions(-) diff --git a/packages/cli/src/config/load-config.ts b/packages/cli/src/config/load-config.ts index b505572..230bd21 100644 --- a/packages/cli/src/config/load-config.ts +++ b/packages/cli/src/config/load-config.ts @@ -17,6 +17,7 @@ export async function loadConfig(rootPath: string) { { files: "package.json", extensions: [], + // eslint-disable-next-line @typescript-eslint/no-explicit-any rewrite: (pkg: any) => pkg?.[MODULE_NAME], }, ], diff --git a/packages/cli/src/tests/core/parser/jsdoc/jsdoc-utils.spec.ts b/packages/cli/src/tests/core/parser/jsdoc/jsdoc-utils.spec.ts index 925e188..20bab87 100644 --- a/packages/cli/src/tests/core/parser/jsdoc/jsdoc-utils.spec.ts +++ b/packages/cli/src/tests/core/parser/jsdoc/jsdoc-utils.spec.ts @@ -5,7 +5,10 @@ import { } from "../../../../core/parser/jsdoc/jsdoc-utils.js"; import { getTsProject } from "../../../../core/get-ts-project.js"; import { getTsConfigPath } from "../../../../core/get-ts-config-path.js"; -import { createE2EWorkspace, E2EWorkspace } from "../../../utils/create-e2e-workspace.js"; +import { + createE2EWorkspace, + E2EWorkspace, +} from "../../../utils/create-e2e-workspace.js"; describe("jsdoc-utils", () => { let workspace: E2EWorkspace; @@ -67,8 +70,6 @@ describe("jsdoc-utils", () => { it("should handle different tag names", async () => { const workspace = await createE2EWorkspace(); const tsConfigPath = getTsConfigPath(workspace.root, "packages/core"); - const project = getTsProject(tsConfigPath); - await workspace.write( "packages/core/src/test-tags.ts", ` @@ -80,7 +81,7 @@ describe("jsdoc-utils", () => { export function testFunction() { return true; } - `, + ` ); const updatedProject = getTsProject(tsConfigPath); diff --git a/packages/cli/src/tests/core/parser/jsdoc/parse-jsdoc.spec.ts b/packages/cli/src/tests/core/parser/jsdoc/parse-jsdoc.spec.ts index dc1082d..47724e4 100644 --- a/packages/cli/src/tests/core/parser/jsdoc/parse-jsdoc.spec.ts +++ b/packages/cli/src/tests/core/parser/jsdoc/parse-jsdoc.spec.ts @@ -1,11 +1,13 @@ -import { describe, it, expect, beforeEach, afterEach } from "vitest"; -import { parseJSDoc } from "../../../../core/parser/jsdoc/parse-jsdoc.js"; -import { JSDocParser } from "../../../../core/parser/jsdoc/jsdoc-parser.js"; -import { ExportDeclaration } from "../../../../core/types/parser.types.js"; -import { getTsProject } from "../../../../core/get-ts-project.js"; +import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { getTsConfigPath } from "../../../../core/get-ts-config-path.js"; +import { getTsProject } from "../../../../core/get-ts-project.js"; +import { JSDocParser } from "../../../../core/parser/jsdoc/jsdoc-parser.js"; +import { parseJSDoc } from "../../../../core/parser/jsdoc/parse-jsdoc.js"; import { getExportedDeclarationsBySourceFile } from "../../../../core/parser/source/get-exported-declarations-by-sourcefile.js"; -import { createE2EWorkspace, E2EWorkspace } from "../../../utils/create-e2e-workspace.js"; +import { + createE2EWorkspace, + E2EWorkspace, +} from "../../../utils/create-e2e-workspace.js"; describe("parseJSDoc", () => { let workspace: E2EWorkspace; @@ -29,7 +31,7 @@ describe("parseJSDoc", () => { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addExport = exportDeclarations.find( - (exp) => exp.symbolName === "add", + (exp) => exp.symbolName === "add" ); expect(addExport).toBeDefined(); @@ -54,7 +56,7 @@ describe("parseJSDoc", () => { export function minimalJSDoc(x: number): number { return x * 2; } - `, + ` ); const tsConfigPath = getTsConfigPath(workspace.root, "packages/core"); @@ -66,7 +68,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(testFile!); const minimalExport = exportDeclarations.find( - (exp) => exp.symbolName === "minimalJSDoc", + (exp) => exp.symbolName === "minimalJSDoc" ); expect(minimalExport).toBeDefined(); @@ -90,7 +92,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addExport = exportDeclarations.find( - (exp) => exp.symbolName === "add", + (exp) => exp.symbolName === "add" ); expect(addExport).toBeDefined(); @@ -117,7 +119,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addExport = exportDeclarations.find( - (exp) => exp.symbolName === "add", + (exp) => exp.symbolName === "add" ); expect(addExport).toBeDefined(); @@ -139,7 +141,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addExport = exportDeclarations.find( - (exp) => exp.symbolName === "add", + (exp) => exp.symbolName === "add" ); expect(addExport).toBeDefined(); @@ -162,7 +164,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addExport = exportDeclarations.find( - (exp) => exp.symbolName === "add", + (exp) => exp.symbolName === "add" ); expect(addExport).toBeDefined(); @@ -186,7 +188,7 @@ export function minimalJSDoc(x: number): number { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const multiplyExport = exportDeclarations.find( - (exp) => exp.symbolName === "multiply", + (exp) => exp.symbolName === "multiply" ); expect(multiplyExport).toBeDefined(); diff --git a/packages/cli/src/tests/core/parser/source/get-exported-declarations-by-sourcefile.spec.ts b/packages/cli/src/tests/core/parser/source/get-exported-declarations-by-sourcefile.spec.ts index 4f590cb..d4bd341 100644 --- a/packages/cli/src/tests/core/parser/source/get-exported-declarations-by-sourcefile.spec.ts +++ b/packages/cli/src/tests/core/parser/source/get-exported-declarations-by-sourcefile.spec.ts @@ -2,7 +2,10 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest"; import { getExportedDeclarationsBySourceFile } from "../../../../core/parser/source/get-exported-declarations-by-sourcefile.js"; import { getTsProject } from "../../../../core/get-ts-project.js"; import { getTsConfigPath } from "../../../../core/get-ts-config-path.js"; -import { createE2EWorkspace, E2EWorkspace } from "../../../utils/create-e2e-workspace.js"; +import { + createE2EWorkspace, + E2EWorkspace, +} from "../../../utils/create-e2e-workspace.js"; describe("getExportedDeclarationsBySourceFile", () => { let workspace: E2EWorkspace; @@ -47,7 +50,7 @@ describe("getExportedDeclarationsBySourceFile", () => { const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const addDeclaration = exportDeclarations.find( - (decl) => decl.symbolName === "add", + (decl) => decl.symbolName === "add" ); expect(addDeclaration).toBeDefined(); expect(addDeclaration!.kind).toBe("function"); @@ -59,7 +62,6 @@ describe("getExportedDeclarationsBySourceFile", () => { it("should handle files with no exports", async () => { const workspace = await createE2EWorkspace(); const tsConfigPath = getTsConfigPath(workspace.root, "packages/core"); - const project = getTsProject(tsConfigPath); await workspace.write( "packages/core/src/no-exports.ts", @@ -69,7 +71,7 @@ function internalFunction() { } const internalVariable = "test"; - `, + ` ); const updatedProject = getTsProject(tsConfigPath); @@ -80,7 +82,7 @@ const internalVariable = "test"; expect(noExportsFile).toBeDefined(); const exportDeclarations = getExportedDeclarationsBySourceFile( - noExportsFile!, + noExportsFile! ); expect(exportDeclarations).toHaveLength(0); }); @@ -117,10 +119,10 @@ const internalVariable = "test"; const exportDeclarations = getExportedDeclarationsBySourceFile(mathFile!); const withJSDoc = exportDeclarations.filter( - (decl) => decl.jsDoc !== undefined, + (decl) => decl.jsDoc !== undefined ); const withoutJSDoc = exportDeclarations.filter( - (decl) => decl.jsDoc === undefined, + (decl) => decl.jsDoc === undefined ); expect(withJSDoc.length).toBeGreaterThan(0); diff --git a/packages/cli/src/tests/core/parser/source/is-export-source-file.spec.ts b/packages/cli/src/tests/core/parser/source/is-export-source-file.spec.ts index 49eb84e..71968b9 100644 --- a/packages/cli/src/tests/core/parser/source/is-export-source-file.spec.ts +++ b/packages/cli/src/tests/core/parser/source/is-export-source-file.spec.ts @@ -2,7 +2,10 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest"; import { isExportSourceFile } from "../../../../core/parser/source/is-export-source-file.js"; import { getTsProject } from "../../../../core/get-ts-project.js"; import { getTsConfigPath } from "../../../../core/get-ts-config-path.js"; -import { createE2EWorkspace, E2EWorkspace } from "../../../utils/create-e2e-workspace.js"; +import { + createE2EWorkspace, + E2EWorkspace, +} from "../../../utils/create-e2e-workspace.js"; describe("isExportSourceFile", () => { let workspace: E2EWorkspace; @@ -41,7 +44,6 @@ describe("isExportSourceFile", () => { it("should return false for files without exports", async () => { const tsConfigPath = getTsConfigPath(workspace.root, "packages/core"); - const project = getTsProject(tsConfigPath); await workspace.write( "packages/core/src/no-exports.ts", @@ -51,7 +53,7 @@ function internalFunction() { } const internalVariable = "test"; - `, + ` ); const updatedProject = getTsProject(tsConfigPath); diff --git a/packages/cli/src/tests/plugin/plugin-manager.spec.ts b/packages/cli/src/tests/plugin/plugin-manager.spec.ts index 0740f38..bda1f5e 100644 --- a/packages/cli/src/tests/plugin/plugin-manager.spec.ts +++ b/packages/cli/src/tests/plugin/plugin-manager.spec.ts @@ -1,11 +1,6 @@ -import { describe, it, expect, beforeEach, afterEach } from "vitest"; -import { PluginManager } from "../../plugins/plugin-manager.js"; -import { Plugin } from "../../plugins/types/plugin.types.js"; +import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { SidebarItem } from "../../commands/build/manifest/manifest.js"; import { loadConfig } from "../../config/load-config.js"; -import { createE2EWorkspace, E2EWorkspace } from "../utils/create-e2e-workspace.js"; -import { Config } from "../../config/config.schema.js"; -import { MockPlugins } from "../utils/plugin-mocks.js"; import { GeneratedDoc, MarkdownDocument, @@ -14,8 +9,14 @@ import { import { ParsedJSDoc, StandardizedFilePath, - TargetWithJSDoc, } from "../../core/types/parser.types.js"; +import { PluginManager } from "../../plugins/plugin-manager.js"; +import { Plugin } from "../../plugins/types/plugin.types.js"; +import { + createE2EWorkspace, + E2EWorkspace, +} from "../utils/create-e2e-workspace.js"; +import { MockPlugins } from "../utils/plugin-mocks.js"; describe("PluginManager", () => { it("should register single plugin", () => { @@ -93,7 +94,7 @@ describe("PluginManager", () => { }); it("should return custom generator from plugin", async () => { - let config = await loadConfig(workspace.root); + const config = await loadConfig(workspace.root); const manager = new PluginManager(); const mockGenerator: MarkdownGenerator = { @@ -133,7 +134,7 @@ describe("PluginManager", () => { }); it("should throw error for unknown generator", async () => { - let config = await loadConfig(workspace.root); + const config = await loadConfig(workspace.root); const manager = new PluginManager(); config.commands.build.generator.name = "unknown-generator"; @@ -144,7 +145,7 @@ describe("PluginManager", () => { }); it("should list available generators in error message", async () => { - let config = await loadConfig(workspace.root); + const config = await loadConfig(workspace.root); const manager = new PluginManager(); const plugin1: Plugin = { @@ -189,7 +190,7 @@ describe("PluginManager", () => { }); it("should work with plugin that doesn't provide generator", async () => { - let config = await loadConfig(workspace.root); + const config = await loadConfig(workspace.root); const manager = new PluginManager(); const plugin: Plugin = { @@ -209,11 +210,11 @@ describe("PluginManager", () => { }); it("should generate and serialize with custom generator", async () => { - let config = await loadConfig(workspace.root); + const config = await loadConfig(workspace.root); const manager = new PluginManager(); const mockGenerator: MarkdownGenerator = { - generateDocs: (_: TargetWithJSDoc, __: string): GeneratedDoc => ({ + generateDocs: (): GeneratedDoc => ({ filePath: "" as StandardizedFilePath, content: "", relativePath: "", From 755ef1e4130fa54025898dd5c509a955921189c3 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:52:26 +0900 Subject: [PATCH 05/10] fix: failed test case --- packages/cli/src/tests/e2e/workflow.e2e.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/tests/e2e/workflow.e2e.spec.ts b/packages/cli/src/tests/e2e/workflow.e2e.spec.ts index d5e2ffc..a387210 100644 --- a/packages/cli/src/tests/e2e/workflow.e2e.spec.ts +++ b/packages/cli/src/tests/e2e/workflow.e2e.spec.ts @@ -94,14 +94,14 @@ describe("workflow", () => { "docs/references/core/index/fetchData.md" ); expect(fetchDataMd).toContain("# fetchData"); - expect(fetchDataMd).toContain("Fetches data from the given URL"); + expect(fetchDataMd).toContain("data from the given URL"); expect(fetchDataMd).toContain("@libs/core"); const calculateAreaMd = await workspace.read( "docs/references/math/index/calculateArea.md" ); expect(calculateAreaMd).toContain("# calculateArea"); - expect(calculateAreaMd).toContain("Calculates the area of a circle"); + expect(calculateAreaMd).toContain("the area of a circle"); expect(calculateAreaMd).toContain("@libs/math"); const checkOutput = execSync("yarn docflow check", { From d0a8da558e840647553857470dcd14133a0dc654 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:56:53 +0900 Subject: [PATCH 06/10] fix: package-manger test environment util --- .../package-manager/package-manager.spec.ts | 180 +++++++++--------- .../src/tests/utils/create-e2e-workspace.ts | 14 ++ 2 files changed, 105 insertions(+), 89 deletions(-) diff --git a/packages/cli/src/tests/package-manager/package-manager.spec.ts b/packages/cli/src/tests/package-manager/package-manager.spec.ts index 017f532..b74dc3b 100644 --- a/packages/cli/src/tests/package-manager/package-manager.spec.ts +++ b/packages/cli/src/tests/package-manager/package-manager.spec.ts @@ -1,104 +1,106 @@ -import { describe, it, expect, beforeEach, afterEach } from "vitest"; -import { - createE2EWorkspace, - E2EWorkspace, -} from "../utils/create-e2e-workspace.js"; -import { YarnPackageManager } from "../../package-manager/package-managers/yarn-package-manager.js"; +import { execSync } from "child_process"; +import { describe, expect, it } from "vitest"; import { NpmPackageManager } from "../../package-manager/package-managers/npm-package-manager.js"; import { PnpmPackageManager } from "../../package-manager/package-managers/pnpm-package-manager.js"; +import { YarnPackageManager } from "../../package-manager/package-managers/yarn-package-manager.js"; import { isTargetPackage } from "../../package-manager/utils/is-target-package.js"; -import { execSync } from "child_process"; +import { createE2EWorkspace } from "../utils/create-e2e-workspace.js"; describe("PackageManager integration", () => { - let workspace: E2EWorkspace; - - beforeEach(async () => { - workspace = await createE2EWorkspace(); - }); - - afterEach(async () => { - await workspace.cleanup(); - }); - it("YarnPackageManager should parse workspaces correctly", async () => { - const yarn = new YarnPackageManager(workspace.root); - const result = yarn.getPackages(); - - expect(result).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - name: "@libs/core", - location: "packages/core", - }), - expect.objectContaining({ - name: "@libs/math", - location: "packages/math", - }), - expect.objectContaining({ - name: "@libs/types", - location: "packages/types", - }), - expect.objectContaining({ - name: "@libs/utils", - location: "packages/utils", - }), - ]) - ); + const workspace = await createE2EWorkspace({ packageManager: "yarn" }); + try { + const yarn = new YarnPackageManager(workspace.root); + const result = yarn.getPackages(); + + expect(result).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: "@libs/core", + location: "packages/core", + }), + expect.objectContaining({ + name: "@libs/math", + location: "packages/math", + }), + expect.objectContaining({ + name: "@libs/types", + location: "packages/types", + }), + expect.objectContaining({ + name: "@libs/utils", + location: "packages/utils", + }), + ]) + ); + } finally { + await workspace.cleanup(); + } }); it("NpmPackageManager should parse workspaces correctly", async () => { - execSync("npm install", { stdio: "ignore", cwd: workspace.root }); - - const npm = new NpmPackageManager(workspace.root); - const result = npm.getPackages(); - - expect(result).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - name: "@libs/core", - location: "packages/core", - }), - expect.objectContaining({ - name: "@libs/math", - location: "packages/math", - }), - expect.objectContaining({ - name: "@libs/types", - location: "packages/types", - }), - expect.objectContaining({ - name: "@libs/utils", - location: "packages/utils", - }), - ]) - ); + const workspace = await createE2EWorkspace({ packageManager: "npm" }); + try { + execSync("npm install", { stdio: "ignore", cwd: workspace.root }); + + const npm = new NpmPackageManager(workspace.root); + const result = npm.getPackages(); + + expect(result).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: "@libs/core", + location: "packages/core", + }), + expect.objectContaining({ + name: "@libs/math", + location: "packages/math", + }), + expect.objectContaining({ + name: "@libs/types", + location: "packages/types", + }), + expect.objectContaining({ + name: "@libs/utils", + location: "packages/utils", + }), + ]) + ); + } finally { + await workspace.cleanup(); + } }); it("PnpmPackageManager should parse workspaces correctly", async () => { - await workspace.write( - "pnpm-workspace.yaml", - "packages:\n - 'packages/*'\n" - ); - - const pnpm = new PnpmPackageManager(workspace.root); - const result = pnpm.getPackages(); - - expect(result).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - name: "@libs/core", - }), - expect.objectContaining({ - name: "@libs/math", - }), - expect.objectContaining({ - name: "@libs/types", - }), - expect.objectContaining({ - name: "@libs/utils", - }), - ]) - ); + const workspace = await createE2EWorkspace({ packageManager: "pnpm" }); + try { + await workspace.write( + "pnpm-workspace.yaml", + "packages:\n - 'packages/*'\n" + ); + + const pnpm = new PnpmPackageManager(workspace.root); + const result = pnpm.getPackages(); + + expect(result).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + name: "@libs/core", + }), + expect.objectContaining({ + name: "@libs/math", + }), + expect.objectContaining({ + name: "@libs/types", + }), + expect.objectContaining({ + name: "@libs/utils", + }), + ]) + ); + } finally { + await workspace.cleanup(); + } }); }); diff --git a/packages/cli/src/tests/utils/create-e2e-workspace.ts b/packages/cli/src/tests/utils/create-e2e-workspace.ts index a8f194c..3c23987 100644 --- a/packages/cli/src/tests/utils/create-e2e-workspace.ts +++ b/packages/cli/src/tests/utils/create-e2e-workspace.ts @@ -13,9 +13,11 @@ export type E2EWorkspace = TestWorkspace; export async function createE2EWorkspace(options?: { installDependencies?: boolean; + packageManager?: "yarn" | "pnpm" | "npm"; }): Promise { const workspace = await createTestWorkspace(); const root = path.resolve(process.cwd()); + const packageManager = options?.packageManager ?? "yarn"; await workspace.write("tsconfig.json", { compilerOptions: { @@ -34,11 +36,23 @@ export async function createE2EWorkspace(options?: { exclude: ["node_modules", "dist"], }); + const packageManagerField = (() => { + switch (packageManager) { + case "yarn": + return "yarn@4.9.1"; + case "pnpm": + return "pnpm@9.15.4"; + default: + return undefined; + } + })(); + await workspace.write("package.json", { name: "test-workspace", version: "1.0.0", private: true, workspaces: ["packages/*"], + ...(packageManagerField ? { packageManager: packageManagerField } : {}), devDependencies: { docflow: `file:${root}`, typescript: "^5.0.0", From 6059da486b81954fc0d073c0e21acc21fd5d5dd4 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:57:07 +0900 Subject: [PATCH 07/10] ci workflow --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ package.json | 1 + packages/cli/package.json | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ba76a72 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + types: [opened, synchronize, reopened] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + ci: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - run: corepack enable + - uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + cache: "yarn" + - run: yarn install --immutable + - run: yarn lint + - run: yarn build + - run: yarn typecheck + - run: yarn test diff --git a/package.json b/package.json index 556c469..d8b97d7 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "lint": "yarn workspaces foreach -ptR --from 'packages/*' run lint", "typecheck": "yarn workspaces foreach -ptR --from 'packages/*' run typecheck", "build": "yarn workspaces foreach -ptR --from 'packages/*' run build", + "test": "yarn workspaces foreach -ptR --from 'packages/*' run test", "changeset:version": "changeset version", "changeset:publish": "changeset publish" }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 4a476c3..2d3d200 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -15,7 +15,8 @@ "prepack": "yarn build", "build": "tsdown", "typecheck": "tsc --noEmit", - "test": "vitest", + "test": "vitest run src/tests --exclude 'src/tests/e2e'", + "test:e2e": "vitest run src/tests/e2e", "lint": "eslint ." }, "files": [ From 36c510edbb9b5054bbe9dd5a915eb0df39bbd4ae Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:57:32 +0900 Subject: [PATCH 08/10] ci test trigger --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba76a72..48dd1e8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI on: push: - branches: [main] + branches: [chore/workflow] pull_request: types: [opened, synchronize, reopened] concurrency: From 3574c2f83dd9e5361b5a02c35812338a5e54a6c5 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 21:59:45 +0900 Subject: [PATCH 09/10] revert test setting --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48dd1e8..ba76a72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI on: push: - branches: [chore/workflow] + branches: [main] pull_request: types: [opened, synchronize, reopened] concurrency: From cdf7036307f6c883e95a9b4df01ad296ec33df68 Mon Sep 17 00:00:00 2001 From: ziho Date: Mon, 19 Jan 2026 22:16:33 +0900 Subject: [PATCH 10/10] fix: invalid resolution node-gyp:latest in hardened mode --- package.json | 3 +++ yarn.lock | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d8b97d7..db8578c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,9 @@ "changeset:publish": "changeset publish" }, "packageManager": "yarn@4.9.1", + "resolutions": { + "node-gyp@npm:latest": "npm:11.2.0" + }, "devDependencies": { "@changesets/cli": "^2.29.8", "@eslint/js": "^9.9.1", diff --git a/yarn.lock b/yarn.lock index ea55bc7..205806d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5934,9 +5934,9 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:latest": +"node-gyp@npm:11.2.0": version: 11.2.0 - resolution: "node-gyp@npm:11.2.0::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fnode-gyp%2F-%2Fnode-gyp-11.2.0.tgz" + resolution: "node-gyp@npm:11.2.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1"