From 45ea5108b7b8a127ce9d32d31ad25bf6a3f931ff Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 10:50:18 -0300 Subject: [PATCH 01/14] fix: relax yjs peer dependency from exact pin to range --- pnpm-workspace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 52b18823fe..733612888c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -120,7 +120,7 @@ catalog: y-prosemirror: ^1.3.7 y-protocols: ^1.0.6 y-websocket: ^3.0.0 - yjs: 13.6.19 + yjs: ^13.6.19 onlyBuiltDependencies: - '@vscode/vsce-sign' From 11e31df0713debdb01726daa760a916bdefe01bb Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 10:53:17 -0300 Subject: [PATCH 02/14] ci: trigger release workflows on pnpm-workspace.yaml changes --- .github/workflows/release-cli.yml | 1 + .github/workflows/release-esign.yml | 1 + .github/workflows/release-mcp.yml | 1 + .github/workflows/release-react.yml | 1 + .github/workflows/release-sdk.yml | 1 + .github/workflows/release-superdoc.yml | 1 + .github/workflows/release-template-builder.yml | 1 + .github/workflows/release-vscode-ext.yml | 1 + 8 files changed, 8 insertions(+) diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index de1d7efd2d..e952604b33 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -20,6 +20,7 @@ on: - 'packages/word-layout/**' - 'packages/preset-geometry/**' - 'scripts/semantic-release/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-esign.yml b/.github/workflows/release-esign.yml index 6ad81662f5..83cfa0fcc3 100644 --- a/.github/workflows/release-esign.yml +++ b/.github/workflows/release-esign.yml @@ -8,6 +8,7 @@ on: - main paths: - 'packages/esign/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-mcp.yml b/.github/workflows/release-mcp.yml index bc3ad46698..65449b0936 100644 --- a/.github/workflows/release-mcp.yml +++ b/.github/workflows/release-mcp.yml @@ -8,6 +8,7 @@ on: - main paths: - 'apps/mcp/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-react.yml b/.github/workflows/release-react.yml index a5f2b3e546..e38096399b 100644 --- a/.github/workflows/release-react.yml +++ b/.github/workflows/release-react.yml @@ -8,6 +8,7 @@ on: - main paths: - 'packages/react/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-sdk.yml b/.github/workflows/release-sdk.yml index 112a9cd837..5c3dcbcaf7 100644 --- a/.github/workflows/release-sdk.yml +++ b/.github/workflows/release-sdk.yml @@ -19,6 +19,7 @@ on: - 'packages/word-layout/**' - 'packages/preset-geometry/**' - 'scripts/semantic-release/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: inputs: diff --git a/.github/workflows/release-superdoc.yml b/.github/workflows/release-superdoc.yml index 19b74879b2..8fbe248d42 100644 --- a/.github/workflows/release-superdoc.yml +++ b/.github/workflows/release-superdoc.yml @@ -15,6 +15,7 @@ on: - 'packages/ai/**' - 'packages/word-layout/**' - 'packages/preset-geometry/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-template-builder.yml b/.github/workflows/release-template-builder.yml index eaa8fe0991..608a9a0856 100644 --- a/.github/workflows/release-template-builder.yml +++ b/.github/workflows/release-template-builder.yml @@ -8,6 +8,7 @@ on: - main paths: - 'packages/template-builder/**' + - 'pnpm-workspace.yaml' - '!**/*.md' workflow_dispatch: diff --git a/.github/workflows/release-vscode-ext.yml b/.github/workflows/release-vscode-ext.yml index 0e46227126..f10d40977b 100644 --- a/.github/workflows/release-vscode-ext.yml +++ b/.github/workflows/release-vscode-ext.yml @@ -7,6 +7,7 @@ on: branches: main paths: - 'apps/vscode-ext/**' + - 'pnpm-workspace.yaml' - '!apps/vscode-ext/*.md' workflow_dispatch: From 1e21aabdc6e65d7e4e2b1e8b8a30dcedd57c65af Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 10:55:07 -0300 Subject: [PATCH 03/14] chore: regenerate lockfile after yjs catalog range change --- pnpm-lock.yaml | 122 ++++++++++++++++++++++++++++++------------------- 1 file changed, 74 insertions(+), 48 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 654955535a..e18afda1c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -286,8 +286,8 @@ catalogs: specifier: ^3.0.0 version: 3.0.0 yjs: - specifier: 13.6.19 - version: 13.6.19 + specifier: ^13.6.19 + version: 13.6.30 overrides: canvas: 3.2.1 @@ -425,7 +425,7 @@ importers: dependencies: '@hocuspocus/provider': specifier: 'catalog:' - version: 2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 2.15.3(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) fast-glob: specifier: 'catalog:' version: 3.3.3 @@ -434,10 +434,10 @@ importers: version: 20.4.0 y-websocket: specifier: 'catalog:' - version: 3.0.0(yjs@13.6.19) + version: 3.0.0(yjs@13.6.30) yjs: specifier: 'catalog:' - version: 13.6.19 + version: 13.6.30 devDependencies: '@superdoc/document-api': specifier: workspace:* @@ -811,7 +811,7 @@ importers: version: 10.4.27(postcss@8.5.6) axios: specifier: ^1.9.0 - version: 1.13.2(debug@4.4.3) + version: 1.13.2 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1878,10 +1878,10 @@ importers: version: 0.2.117 y-protocols: specifier: 'catalog:' - version: 1.0.7(yjs@13.6.19) + version: 1.0.7(yjs@13.6.30) yjs: specifier: 'catalog:' - version: 13.6.19 + version: 13.6.30 devDependencies: '@types/node': specifier: 'catalog:' @@ -2440,10 +2440,10 @@ importers: version: 1.6.11 y-prosemirror: specifier: 'catalog:' - version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) yjs: specifier: 'catalog:' - version: 13.6.19 + version: 13.6.30 devDependencies: '@floating-ui/dom': specifier: 'catalog:' @@ -2489,7 +2489,7 @@ importers: version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.4)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(less@4.4.2)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2) y-protocols: specifier: 'catalog:' - version: 1.0.7(yjs@13.6.19) + version: 1.0.7(yjs@13.6.30) packages/superdoc: dependencies: @@ -2519,20 +2519,20 @@ importers: version: 3.5.25(typescript@5.9.3) y-prosemirror: specifier: 'catalog:' - version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) y-websocket: specifier: 'catalog:' - version: 3.0.0(yjs@13.6.19) + version: 3.0.0(yjs@13.6.30) yjs: specifier: 'catalog:' - version: 13.6.19 + version: 13.6.30 devDependencies: '@hocuspocus/provider': specifier: 'catalog:' - version: 2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 2.15.3(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) '@hocuspocus/server': specifier: 'catalog:' - version: 2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 2.15.3(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) '@superdoc-dev/superdoc-yjs-collaboration': specifier: workspace:* version: link:../collaboration-yjs @@ -22438,8 +22438,8 @@ snapshots: '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 '@jsdevtools/ono': 7.1.3 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) call-me-maybe: 1.0.2 openapi-types: 7.2.3 @@ -25452,6 +25452,18 @@ snapshots: - bufferutil - utf-8-validate + '@hocuspocus/provider@2.15.3(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)': + dependencies: + '@hocuspocus/common': 2.15.3 + '@lifeomic/attempt': 3.1.0 + lib0: 0.2.117 + ws: 8.19.0 + y-protocols: 1.0.7(yjs@13.6.30) + yjs: 13.6.30 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@hocuspocus/provider@3.4.4(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)': dependencies: '@hocuspocus/common': 3.4.4 @@ -25478,6 +25490,20 @@ snapshots: - bufferutil - utf-8-validate + '@hocuspocus/server@2.15.3(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)': + dependencies: + '@hocuspocus/common': 2.15.3 + async-lock: 1.4.1 + kleur: 4.1.5 + lib0: 0.2.117 + uuid: 11.1.0 + ws: 8.19.0 + y-protocols: 1.0.7(yjs@13.6.30) + yjs: 13.6.30 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@hono/node-server@1.19.9(hono@4.12.1)': dependencies: hono: 4.12.1 @@ -26407,9 +26433,9 @@ snapshots: '@types/fs-extra': 11.0.4 '@types/node-fetch': 2.6.13 '@types/strip-bom': 4.0.1 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) - ajv-formats: 3.0.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) node-fetch: 2.7.0 strip-bom: 5.0.0 transitivePeerDependencies: @@ -26426,7 +26452,7 @@ snapshots: '@microsoft/dev-tunnels-management@1.1.9': dependencies: '@microsoft/dev-tunnels-contracts': 1.1.9 - axios: 1.13.2(debug@4.4.3) + axios: 1.13.6(debug@4.4.3) buffer: 5.7.1 debug: 4.4.3(supports-color@5.5.0) vscode-jsonrpc: 4.0.0 @@ -26448,9 +26474,9 @@ snapshots: dependencies: '@types/fs-extra': 11.0.4 '@types/node-fetch': 2.6.13 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) - ajv-formats: 3.0.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) fs-extra: 9.1.0 node-fetch: 2.7.0 transitivePeerDependencies: @@ -26492,7 +26518,7 @@ snapshots: lodash: 4.17.23 node-machine-id: 1.1.12 open: 8.4.2 - semver: 7.7.3 + semver: 7.7.4 tree-kill: 1.2.2 underscore: 1.13.7 optionalDependencies: @@ -26506,7 +26532,7 @@ snapshots: dependencies: '@azure/core-auth': 1.10.1 '@microsoft/teams-manifest': 0.1.5 - axios: 1.13.2(debug@4.4.3) + axios: 1.13.6(debug@4.4.3) chai: 4.5.0 jsonschema: 1.5.0 neverthrow: 3.2.0 @@ -26533,8 +26559,8 @@ snapshots: '@microsoft/m365-spec-parser': 0.2.11 '@microsoft/teamsfx-api': 0.23.1 adm-zip: 0.5.16 - ajv: 8.17.1 - axios: 1.13.2(debug@4.4.3) + ajv: 8.18.0 + axios: 1.13.6(debug@4.4.3) axios-retry: 3.9.1 comment-json: 4.6.2 cryptr: 6.4.0 @@ -26561,7 +26587,7 @@ snapshots: proper-lockfile: 4.1.2 read-package-json-fast: 2.0.3 reflect-metadata: 0.1.14 - semver: 7.7.3 + semver: 7.7.4 strip-bom: 4.0.0 swagger2openapi: 7.0.8 typedi: 0.10.0 @@ -26813,7 +26839,7 @@ snapshots: '@mintlify/models@0.0.286': dependencies: - axios: 1.13.2(debug@4.4.3) + axios: 1.13.2 openapi-types: 12.1.3 transitivePeerDependencies: - debug @@ -32590,6 +32616,10 @@ snapshots: optionalDependencies: ajv: 8.17.1 + ajv-draft-04@1.0.0(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + ajv-errors@3.0.0(ajv@8.17.1): dependencies: ajv: 8.17.1 @@ -33032,7 +33062,7 @@ snapshots: transitivePeerDependencies: - debug - axios@1.13.2(debug@4.4.3): + axios@1.13.2: dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.5 @@ -33047,7 +33077,6 @@ snapshots: proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - optional: true axobject-query@4.1.0: {} @@ -46174,11 +46203,11 @@ snapshots: vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - esbuild: 0.27.2 + esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.57.1 + postcss: 8.5.8 + rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.2 @@ -46193,11 +46222,11 @@ snapshots: vite@7.3.1(@types/node@22.19.8)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - esbuild: 0.27.2 + esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.57.1 + postcss: 8.5.8 + rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.8 @@ -46914,15 +46943,6 @@ snapshots: lib0: 0.2.117 yjs: 13.6.19 - y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19): - dependencies: - lib0: 0.2.117 - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-view: 1.41.5 - y-protocols: 1.0.7(yjs@13.6.19) - yjs: 13.6.19 - y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30): dependencies: lib0: 0.2.117 @@ -46948,6 +46968,12 @@ snapshots: y-protocols: 1.0.7(yjs@13.6.19) yjs: 13.6.19 + y-websocket@3.0.0(yjs@13.6.30): + dependencies: + lib0: 0.2.117 + y-protocols: 1.0.7(yjs@13.6.30) + yjs: 13.6.30 + y18n@5.0.8: {} yallist@3.1.1: {} From 9fbdb2565f224b33ed97117bb4ecf5f78378811d Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 11:06:08 -0300 Subject: [PATCH 04/14] fix: trigger patch release for yjs peer dependency range change From 62ae60b84367ba5af2ca483a82d59734a3c2a958 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 11:06:38 -0300 Subject: [PATCH 05/14] fix: add comment to yjs catalog entry for clarity --- pnpm-workspace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 733612888c..9765ff1cb2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -120,7 +120,7 @@ catalog: y-prosemirror: ^1.3.7 y-protocols: ^1.0.6 y-websocket: ^3.0.0 - yjs: ^13.6.19 + yjs: ^13.6.19 # range allows consumers to use newer patch versions onlyBuiltDependencies: - '@vscode/vsce-sign' From c9f54ccd32bf0c6ee659adbfb08fb20a38da85d1 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 11:11:30 -0300 Subject: [PATCH 06/14] fix: include pnpm-workspace.yaml in semantic-release commit filters --- apps/cli/.releaserc.cjs | 1 + packages/sdk/.releaserc.cjs | 1 + packages/superdoc/.releaserc.cjs | 1 + 3 files changed, 3 insertions(+) diff --git a/apps/cli/.releaserc.cjs b/apps/cli/.releaserc.cjs index e1943dd0af..c0d3196a91 100644 --- a/apps/cli/.releaserc.cjs +++ b/apps/cli/.releaserc.cjs @@ -17,6 +17,7 @@ require('../../scripts/semantic-release/patch-commit-filter.cjs')([ 'packages/ai', 'packages/word-layout', 'packages/preset-geometry', + 'pnpm-workspace.yaml', ]); const branch = process.env.GITHUB_REF_NAME || process.env.CI_COMMIT_BRANCH; diff --git a/packages/sdk/.releaserc.cjs b/packages/sdk/.releaserc.cjs index 420dc14ad4..e97e81b805 100644 --- a/packages/sdk/.releaserc.cjs +++ b/packages/sdk/.releaserc.cjs @@ -16,6 +16,7 @@ require('../../scripts/semantic-release/patch-commit-filter.cjs')([ 'packages/ai', 'packages/word-layout', 'packages/preset-geometry', + 'pnpm-workspace.yaml', ]); const branch = process.env.GITHUB_REF_NAME || process.env.CI_COMMIT_BRANCH; diff --git a/packages/superdoc/.releaserc.cjs b/packages/superdoc/.releaserc.cjs index aad6c86090..2c5982cba7 100644 --- a/packages/superdoc/.releaserc.cjs +++ b/packages/superdoc/.releaserc.cjs @@ -12,6 +12,7 @@ const SUPERDOC_PACKAGES = [ 'packages/ai', 'packages/word-layout', 'packages/preset-geometry', + 'pnpm-workspace.yaml', ] Object.keys(require.cache) From d60f65fb72d8615a1854551cd5077b47ce06657e Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 23 Mar 2026 14:14:27 +0000 Subject: [PATCH 07/14] chore(cli): 0.3.1 [skip ci] ## [0.3.1](https://github.com/superdoc-dev/superdoc/compare/cli-v0.3.0...cli-v0.3.1) (2026-03-23) ### Bug Fixes * add comment to yjs catalog entry for clarity ([62ae60b](https://github.com/superdoc-dev/superdoc/commit/62ae60b84367ba5af2ca483a82d59734a3c2a958)) * include pnpm-workspace.yaml in semantic-release commit filters ([c9f54cc](https://github.com/superdoc-dev/superdoc/commit/c9f54ccd32bf0c6ee659adbfb08fb20a38da85d1)) * relax yjs peer dependency from exact pin to range ([45ea510](https://github.com/superdoc-dev/superdoc/commit/45ea5108b7b8a127ce9d32d31ad25bf6a3f931ff)) --- apps/cli/package.json | 2 +- apps/cli/platforms/cli-darwin-arm64/package.json | 2 +- apps/cli/platforms/cli-darwin-x64/package.json | 2 +- apps/cli/platforms/cli-linux-arm64/package.json | 2 +- apps/cli/platforms/cli-linux-x64/package.json | 2 +- apps/cli/platforms/cli-windows-x64/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 944f3a7ba3..c8e0a0d4a7 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli", - "version": "0.3.0", + "version": "0.3.1", "type": "module", "bin": { "superdoc": "./dist/index.js" diff --git a/apps/cli/platforms/cli-darwin-arm64/package.json b/apps/cli/platforms/cli-darwin-arm64/package.json index 745aceca93..717b44cd52 100644 --- a/apps/cli/platforms/cli-darwin-arm64/package.json +++ b/apps/cli/platforms/cli-darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-arm64", - "version": "0.3.0", + "version": "0.3.1", "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-darwin-x64/package.json b/apps/cli/platforms/cli-darwin-x64/package.json index c7d57de8e4..7d96eea9aa 100644 --- a/apps/cli/platforms/cli-darwin-x64/package.json +++ b/apps/cli/platforms/cli-darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-x64", - "version": "0.3.0", + "version": "0.3.1", "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-linux-arm64/package.json b/apps/cli/platforms/cli-linux-arm64/package.json index 088e8d0efa..76903f6ffc 100644 --- a/apps/cli/platforms/cli-linux-arm64/package.json +++ b/apps/cli/platforms/cli-linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-linux-arm64", - "version": "0.3.0", + "version": "0.3.1", "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-linux-x64/package.json b/apps/cli/platforms/cli-linux-x64/package.json index 2802f8fdc8..53796fd62a 100644 --- a/apps/cli/platforms/cli-linux-x64/package.json +++ b/apps/cli/platforms/cli-linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-linux-x64", - "version": "0.3.0", + "version": "0.3.1", "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-windows-x64/package.json b/apps/cli/platforms/cli-windows-x64/package.json index 01d1a0521a..bd278ff4a4 100644 --- a/apps/cli/platforms/cli-windows-x64/package.json +++ b/apps/cli/platforms/cli-windows-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-windows-x64", - "version": "0.3.0", + "version": "0.3.1", "os": [ "win32" ], From 4e9fdc0abe6100d407661666bcd6f390d42ba90c Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 11:23:23 -0300 Subject: [PATCH 08/14] fix: retrigger release for yjs peer dependency range change --- packages/superdoc/.releaserc.cjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/superdoc/.releaserc.cjs b/packages/superdoc/.releaserc.cjs index 2c5982cba7..3c02f96544 100644 --- a/packages/superdoc/.releaserc.cjs +++ b/packages/superdoc/.releaserc.cjs @@ -1,5 +1,6 @@ /* eslint-env node */ -const path = require('path') +const path = require('path'); + /* * Commit filter: superdoc bundles multiple sub-packages, so git log must From f29dbed67af81eadfd5d20d524901f42f0a208da Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 23 Mar 2026 14:26:08 +0000 Subject: [PATCH 09/14] chore(release): 1.21.1 [skip ci] ## [1.21.1](https://github.com/superdoc-dev/superdoc/compare/v1.21.0...v1.21.1) (2026-03-23) ### Bug Fixes * add comment to yjs catalog entry for clarity ([62ae60b](https://github.com/superdoc-dev/superdoc/commit/62ae60b84367ba5af2ca483a82d59734a3c2a958)) * include pnpm-workspace.yaml in semantic-release commit filters ([c9f54cc](https://github.com/superdoc-dev/superdoc/commit/c9f54ccd32bf0c6ee659adbfb08fb20a38da85d1)) * relax yjs peer dependency from exact pin to range ([45ea510](https://github.com/superdoc-dev/superdoc/commit/45ea5108b7b8a127ce9d32d31ad25bf6a3f931ff)) * retrigger release for yjs peer dependency range change ([4e9fdc0](https://github.com/superdoc-dev/superdoc/commit/4e9fdc0abe6100d407661666bcd6f390d42ba90c)) --- packages/superdoc/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/superdoc/package.json b/packages/superdoc/package.json index 40a3fee696..7b9d6c00d0 100644 --- a/packages/superdoc/package.json +++ b/packages/superdoc/package.json @@ -1,7 +1,7 @@ { "name": "superdoc", "type": "module", - "version": "1.21.0", + "version": "1.21.1", "license": "AGPL-3.0", "repository": { "type": "git", From 9e6cf5ef960b43279fb198798ef0fec773af6ac3 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 11:28:38 -0300 Subject: [PATCH 10/14] fix: retrigger CLI release after push race condition --- apps/cli/.releaserc.cjs | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/cli/.releaserc.cjs b/apps/cli/.releaserc.cjs index c0d3196a91..2e006eb0cf 100644 --- a/apps/cli/.releaserc.cjs +++ b/apps/cli/.releaserc.cjs @@ -1,5 +1,4 @@ /* eslint-env node */ - /* * Commit filter: CLI bundles multiple sub-packages, so git log must include * commits touching any of them. This shared helper patches git-log-parser to From 509bc9af0beb99ed15017c64176fde243b618e24 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 23 Mar 2026 14:31:28 +0000 Subject: [PATCH 11/14] chore(cli): 0.3.2 [skip ci] ## [0.3.2](https://github.com/superdoc-dev/superdoc/compare/cli-v0.3.1...cli-v0.3.2) (2026-03-23) ### Bug Fixes * retrigger CLI release after push race condition ([9e6cf5e](https://github.com/superdoc-dev/superdoc/commit/9e6cf5ef960b43279fb198798ef0fec773af6ac3)) * retrigger release for yjs peer dependency range change ([4e9fdc0](https://github.com/superdoc-dev/superdoc/commit/4e9fdc0abe6100d407661666bcd6f390d42ba90c)) --- apps/cli/package.json | 2 +- apps/cli/platforms/cli-darwin-arm64/package.json | 2 +- apps/cli/platforms/cli-darwin-x64/package.json | 2 +- apps/cli/platforms/cli-linux-arm64/package.json | 2 +- apps/cli/platforms/cli-linux-x64/package.json | 2 +- apps/cli/platforms/cli-windows-x64/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index c8e0a0d4a7..f6d813dc36 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli", - "version": "0.3.1", + "version": "0.3.2", "type": "module", "bin": { "superdoc": "./dist/index.js" diff --git a/apps/cli/platforms/cli-darwin-arm64/package.json b/apps/cli/platforms/cli-darwin-arm64/package.json index 717b44cd52..dbbd637570 100644 --- a/apps/cli/platforms/cli-darwin-arm64/package.json +++ b/apps/cli/platforms/cli-darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-arm64", - "version": "0.3.1", + "version": "0.3.2", "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-darwin-x64/package.json b/apps/cli/platforms/cli-darwin-x64/package.json index 7d96eea9aa..fcbbcc78cc 100644 --- a/apps/cli/platforms/cli-darwin-x64/package.json +++ b/apps/cli/platforms/cli-darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-x64", - "version": "0.3.1", + "version": "0.3.2", "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-linux-arm64/package.json b/apps/cli/platforms/cli-linux-arm64/package.json index 76903f6ffc..4811ef1b54 100644 --- a/apps/cli/platforms/cli-linux-arm64/package.json +++ b/apps/cli/platforms/cli-linux-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-linux-arm64", - "version": "0.3.1", + "version": "0.3.2", "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-linux-x64/package.json b/apps/cli/platforms/cli-linux-x64/package.json index 53796fd62a..e53eb4b36c 100644 --- a/apps/cli/platforms/cli-linux-x64/package.json +++ b/apps/cli/platforms/cli-linux-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-linux-x64", - "version": "0.3.1", + "version": "0.3.2", "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-windows-x64/package.json b/apps/cli/platforms/cli-windows-x64/package.json index bd278ff4a4..808f6ad1b5 100644 --- a/apps/cli/platforms/cli-windows-x64/package.json +++ b/apps/cli/platforms/cli-windows-x64/package.json @@ -1,6 +1,6 @@ { "name": "@superdoc-dev/cli-windows-x64", - "version": "0.3.1", + "version": "0.3.2", "os": [ "win32" ], From 6ff986ddb1f7f68b469e24d2cb7dd5158a6d3c41 Mon Sep 17 00:00:00 2001 From: Caio Pizzol <97641911+caio-pizzol@users.noreply.github.com> Date: Mon, 23 Mar 2026 20:23:20 -0300 Subject: [PATCH 12/14] feat: add @superdoc-dev/create package for agent scaffolding (#2533) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add @superdoc-dev/create package for agent scaffolding SD-2258: Standalone interactive setup tool — separate from the document CLI. Detects framework, generates AGENTS.md with tailored code examples, creates CLAUDE.md symlink, installs skills, and prints MCP setup instructions. Supports: React, Next.js (use client), Vue, Nuxt (ClientOnly), Angular, Svelte, vanilla JS. Interactive agent tool selection (Claude Code, Cursor, Windsurf) or non-interactive with -y flag. 19 tests covering framework detection, template generation, and API correctness. * chore(create): add semantic release, publish config, and CI workflow - publishConfig with public access - .releaserc.cjs following MCP pattern (stable/next channels, Linear integration, AI release notes) - release-create.yml workflow: triggers on apps/create/** changes, builds, tests, then releases via semantic-release - Tag format: create-v${version} * chore(create): set version to 0.0.0 — semantic release manages versioning --- .github/workflows/release-create.yml | 66 +++++ apps/create/.releaserc.cjs | 50 ++++ apps/create/package.json | 23 ++ apps/create/src/__tests__/templates.test.ts | 123 +++++++++ apps/create/src/index.ts | 141 +++++++++++ apps/create/src/templates.ts | 261 ++++++++++++++++++++ 6 files changed, 664 insertions(+) create mode 100644 .github/workflows/release-create.yml create mode 100644 apps/create/.releaserc.cjs create mode 100644 apps/create/package.json create mode 100644 apps/create/src/__tests__/templates.test.ts create mode 100644 apps/create/src/index.ts create mode 100644 apps/create/src/templates.ts diff --git a/.github/workflows/release-create.yml b/.github/workflows/release-create.yml new file mode 100644 index 0000000000..fabe7adf34 --- /dev/null +++ b/.github/workflows/release-create.yml @@ -0,0 +1,66 @@ +# Auto-releases on push to main (@next channel) +# For stable (@latest): cherry-pick commits to stable branch, then manually dispatch this workflow +name: 📦 Release Create + +on: + push: + branches: + - main + paths: + - 'apps/create/**' + - 'pnpm-workspace.yaml' + - '!**/*.md' + workflow_dispatch: + +permissions: + contents: write + packages: write + +concurrency: + group: release-create-${{ github.ref }} + cancel-in-progress: true + +jobs: + release: + runs-on: ubuntu-24.04 + steps: + - name: Generate token + id: generate_token + uses: actions/create-github-app-token@v2 + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + token: ${{ steps.generate_token.outputs.token }} + + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v6 + with: + node-version-file: .nvmrc + cache: pnpm + registry-url: 'https://registry.npmjs.org' + + - uses: oven-sh/setup-bun@v2 + + - name: Install dependencies + run: pnpm install + + - name: Build + run: pnpm --prefix apps/create run build + + - name: Test + run: pnpm --prefix apps/create run test + + - name: Release + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + LINEAR_TOKEN: ${{ secrets.LINEAR_TOKEN }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + working-directory: apps/create + run: pnpx semantic-release diff --git a/apps/create/.releaserc.cjs b/apps/create/.releaserc.cjs new file mode 100644 index 0000000000..e68edcbfec --- /dev/null +++ b/apps/create/.releaserc.cjs @@ -0,0 +1,50 @@ +/* eslint-env node */ +const branch = process.env.GITHUB_REF_NAME || process.env.CI_COMMIT_BRANCH; + +const branches = [ + { name: 'stable', channel: 'latest' }, + { name: 'main', prerelease: 'next', channel: 'next' }, +]; + +const isPrerelease = branches.some((b) => typeof b === 'object' && b.name === branch && b.prerelease); + +const notesPlugin = isPrerelease + ? '@semantic-release/release-notes-generator' + : ['semantic-release-ai-notes', { style: 'concise' }]; + +const config = { + branches, + tagFormat: 'create-v${version}', + plugins: [ + 'semantic-release-commit-filter', + '@semantic-release/commit-analyzer', + notesPlugin, + ['@semantic-release/npm'], + ], +}; + +if (!isPrerelease) { + config.plugins.push([ + '@semantic-release/git', + { + assets: ['package.json'], + message: 'chore(create): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}', + }, + ]); +} + +config.plugins.push(['semantic-release-linear-app', { + teamKeys: ['SD'], + addComment: true, + packageName: 'create', + commentTemplate: 'shipped in {package} {releaseLink} {channel}' +}]); + +config.plugins.push([ + '@semantic-release/github', + { + successComment: ':tada: This ${issue.pull_request ? "PR" : "issue"} is included in **@superdoc-dev/create** v${nextRelease.version}\n\nThe release is available on [GitHub release](${releases.find(release => release.pluginName === "@semantic-release/github").url})', + } +]); + +module.exports = config; diff --git a/apps/create/package.json b/apps/create/package.json new file mode 100644 index 0000000000..03a8e04cd9 --- /dev/null +++ b/apps/create/package.json @@ -0,0 +1,23 @@ +{ + "name": "@superdoc-dev/create", + "version": "0.0.0", + "description": "Set up SuperDoc in your project — AGENTS.md, skills, and MCP configuration", + "type": "module", + "license": "MIT", + "bin": { + "create-superdoc": "./dist/index.js" + }, + "files": [ + "dist", + "skill" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "build": "bun build src/index.ts --outdir dist --target node", + "test": "bun test", + "release": "pnpx semantic-release", + "release:dry-run": "pnpx semantic-release --dry-run" + } +} diff --git a/apps/create/src/__tests__/templates.test.ts b/apps/create/src/__tests__/templates.test.ts new file mode 100644 index 0000000000..c6ccd19150 --- /dev/null +++ b/apps/create/src/__tests__/templates.test.ts @@ -0,0 +1,123 @@ +import { afterEach, describe, expect, test } from 'bun:test'; +import { existsSync, mkdirSync, rmSync, writeFileSync, mkdtempSync } from 'node:fs'; +import { join } from 'node:path'; +import { tmpdir } from 'node:os'; +import { detectFramework, generateAgentsMd, type DetectedFramework } from '../templates'; + +describe('detectFramework', () => { + let testDir: string; + + afterEach(() => { + if (testDir && existsSync(testDir)) { + rmSync(testDir, { recursive: true, force: true }); + } + }); + + function createDir(deps: Record = {}, devDeps: Record = {}): string { + testDir = mkdtempSync(join(tmpdir(), 'superdoc-fw-')); + const pkg: Record = {}; + if (Object.keys(deps).length) pkg.dependencies = deps; + if (Object.keys(devDeps).length) pkg.devDependencies = devDeps; + writeFileSync(join(testDir, 'package.json'), JSON.stringify(pkg)); + return testDir; + } + + const cases: [string, Record, DetectedFramework][] = [ + ['react', { react: '^19' }, 'react'], + ['@superdoc-dev/react', { '@superdoc-dev/react': '^1' }, 'react'], + ['next', { next: '^15', react: '^19' }, 'nextjs'], + ['vue', { vue: '^3' }, 'vue'], + ['nuxt', { nuxt: '^4', vue: '^3' }, 'nuxt'], + ['@angular/core', { '@angular/core': '^19' }, 'angular'], + ['svelte', { svelte: '^5' }, 'svelte'], + ]; + + for (const [dep, deps, expected] of cases) { + test(`detects ${expected} from ${dep}`, () => { + const dir = createDir(deps); + expect(detectFramework(dir)).toBe(expected); + }); + } + + test('returns vanilla when no framework deps', () => { + const dir = createDir({}); + expect(detectFramework(dir)).toBe('vanilla'); + }); + + test('returns vanilla when no package.json', () => { + testDir = mkdtempSync(join(tmpdir(), 'superdoc-fw-')); + expect(detectFramework(testDir)).toBe('vanilla'); + }); + + test('detects from devDependencies', () => { + testDir = mkdtempSync(join(tmpdir(), 'superdoc-fw-')); + writeFileSync(join(testDir, 'package.json'), JSON.stringify({ devDependencies: { react: '^19' } })); + expect(detectFramework(testDir)).toBe('react'); + }); + + test('prefers next over react', () => { + const dir = createDir({ next: '^15', react: '^19' }); + expect(detectFramework(dir)).toBe('nextjs'); + }); + + test('prefers nuxt over vue', () => { + const dir = createDir({ nuxt: '^4', vue: '^3' }); + expect(detectFramework(dir)).toBe('nuxt'); + }); +}); + +describe('generateAgentsMd', () => { + test('react template includes @superdoc-dev/react', () => { + const md = generateAgentsMd('react'); + expect(md).toContain('@superdoc-dev/react'); + expect(md).toContain('Embed editor — React'); + }); + + test('nextjs template includes use client', () => { + const md = generateAgentsMd('nextjs'); + expect(md).toContain("'use client'"); + expect(md).toContain('Embed editor — Next.js'); + expect(md).toContain('client component'); + }); + + test('nuxt template includes ClientOnly', () => { + const md = generateAgentsMd('nuxt'); + expect(md).toContain('ClientOnly'); + expect(md).toContain('Embed editor — Nuxt'); + expect(md).toContain('Disable SSR'); + }); + + test('vanilla template uses superdoc import', () => { + const md = generateAgentsMd('vanilla'); + expect(md).toContain("import { SuperDoc } from 'superdoc'"); + expect(md).toContain("import 'superdoc/style.css'"); + }); + + test('all templates contain knowledge corrections', () => { + for (const fw of ['react', 'nextjs', 'vue', 'nuxt', 'angular', 'svelte', 'vanilla'] as const) { + const md = generateAgentsMd(fw); + expect(md).toContain('Knowledge corrections'); + expect(md).toContain('python-docx'); + expect(md).toContain('superdoc.activeEditor.commands.addComment'); + expect(md).toContain('modules.toolbar.customButtons'); + } + }); + + test('all templates contain MCP and SDK sections', () => { + for (const fw of ['react', 'nextjs', 'vue', 'nuxt', 'angular', 'svelte', 'vanilla'] as const) { + const md = generateAgentsMd(fw); + expect(md).toContain('claude mcp add superdoc'); + expect(md).toContain('@superdoc-dev/sdk'); + expect(md).toContain('@superdoc-dev/cli'); + } + }); + + test('all templates contain correct API names', () => { + for (const fw of ['react', 'nextjs', 'vue', 'nuxt', 'angular', 'svelte', 'vanilla'] as const) { + const md = generateAgentsMd(fw); + expect(md).toContain("superdoc.on('ready'"); + expect(md).not.toContain('content-changed'); + expect(md).not.toContain('customItems'); + } + }); +}); diff --git a/apps/create/src/index.ts b/apps/create/src/index.ts new file mode 100644 index 0000000000..e6c8f6c688 --- /dev/null +++ b/apps/create/src/index.ts @@ -0,0 +1,141 @@ +#!/usr/bin/env node + +import { existsSync, readFileSync, writeFileSync, symlinkSync, unlinkSync, mkdirSync, cpSync } from 'node:fs'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { createInterface } from 'node:readline'; +import { detectFramework, generateAgentsMd, FRAMEWORK_LABELS, FRAMEWORK_INSTALL } from './templates'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +function resolveSkillSource(): string | null { + // In dist: __dirname is dist/, skill/ is at dist/../skill/ + const fromDist = join(__dirname, '..', 'skill'); + if (existsSync(fromDist)) return fromDist; + + // In dev: __dirname is src/, skill/ is at src/../skill/ + const fromSrc = join(__dirname, '..', 'skill'); + if (existsSync(fromSrc)) return fromSrc; + + return null; +} + +async function prompt(question: string, defaultValue?: string): Promise { + const rl = createInterface({ input: process.stdin, output: process.stdout }); + const suffix = defaultValue ? ` (${defaultValue})` : ''; + return new Promise((resolve) => { + rl.question(`${question}${suffix}: `, (answer) => { + rl.close(); + resolve(answer.trim() || defaultValue || ''); + }); + }); +} + +async function select(question: string, options: string[]): Promise { + console.log(`\n${question}`); + options.forEach((opt, i) => console.log(` ${i + 1}. ${opt}`)); + const answer = await prompt('Choose', '1'); + const idx = parseInt(answer, 10) - 1; + return idx >= 0 && idx < options.length ? idx : 0; +} + +async function main() { + const cwd = process.cwd(); + const force = process.argv.includes('--force'); + const nonInteractive = process.argv.includes('--yes') || process.argv.includes('-y'); + + console.log('\n SuperDoc project setup\n'); + + // 1. Detect framework + const fw = detectFramework(cwd); + console.log(` Framework: ${FRAMEWORK_LABELS[fw]}`); + + // 2. Choose agent tool + let setupMcp = false; + let agentTool = 'claude-code'; + + if (!nonInteractive) { + const agentIdx = await select('Which agent tool do you use?', [ + 'Claude Code', + 'Cursor', + 'Windsurf', + 'None / Skip', + ]); + agentTool = ['claude-code', 'cursor', 'windsurf', 'none'][agentIdx]; + setupMcp = agentTool !== 'none'; + } + + console.log(''); + + // 3. Write AGENTS.md + const agentsPath = join(cwd, 'AGENTS.md'); + const claudePath = join(cwd, 'CLAUDE.md'); + + if (existsSync(agentsPath) && !force) { + console.log(' AGENTS.md already exists (use --force to overwrite)'); + } else { + writeFileSync(agentsPath, generateAgentsMd(fw), 'utf-8'); + console.log(' Created AGENTS.md'); + } + + // 4. Create CLAUDE.md symlink + if (existsSync(claudePath)) { + if (force) { + unlinkSync(claudePath); + symlinkSync('AGENTS.md', claudePath); + console.log(' Created CLAUDE.md → AGENTS.md (overwritten)'); + } else { + console.log(' CLAUDE.md already exists (use --force to overwrite)'); + } + } else { + symlinkSync('AGENTS.md', claudePath); + console.log(' Created CLAUDE.md → AGENTS.md'); + } + + // 5. Install skills + const agentDirs = ['.claude', '.agents']; + const skillSource = resolveSkillSource(); + + for (const dir of agentDirs) { + const agentDir = join(cwd, dir); + if (!existsSync(agentDir)) continue; + + if (skillSource) { + const skillDir = join(agentDir, 'skills', 'superdoc'); + mkdirSync(skillDir, { recursive: true }); + cpSync(skillSource, skillDir, { recursive: true }); + console.log(` Installed skill to ${dir}/skills/superdoc/`); + } + } + + // 6. MCP setup instructions + if (setupMcp) { + console.log(''); + if (agentTool === 'claude-code') { + console.log(' Run this to connect your agent to DOCX files:'); + console.log(''); + console.log(' claude mcp add superdoc -- npx @superdoc-dev/mcp'); + } else if (agentTool === 'cursor') { + console.log(' Add to ~/.cursor/mcp.json:'); + console.log(''); + console.log(' { "mcpServers": { "superdoc": { "command": "npx", "args": ["@superdoc-dev/mcp"] } } }'); + } else if (agentTool === 'windsurf') { + console.log(' Add to ~/.codeium/windsurf/mcp_config.json:'); + console.log(''); + console.log(' { "mcpServers": { "superdoc": { "command": "npx", "args": ["@superdoc-dev/mcp"] } } }'); + } + } + + // 7. Next steps + console.log(''); + console.log(' Next steps:'); + console.log(` ${FRAMEWORK_INSTALL[fw]}`); + console.log(' https://docs.superdoc.dev/getting-started/quickstart'); + console.log(''); +} + +main().catch((err) => { + console.error(err.message || err); + process.exit(1); +}); diff --git a/apps/create/src/templates.ts b/apps/create/src/templates.ts new file mode 100644 index 0000000000..e9838ef77e --- /dev/null +++ b/apps/create/src/templates.ts @@ -0,0 +1,261 @@ +/** + * AGENTS.md template content for `create-superdoc`. + * Generates a consumer-facing guide tailored to the detected framework. + */ + +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; + +export type DetectedFramework = 'react' | 'vue' | 'angular' | 'svelte' | 'nextjs' | 'nuxt' | 'vanilla'; + +export function detectFramework(cwd: string): DetectedFramework { + let pkg: Record | null = null; + try { + const raw = readFileSync(join(cwd, 'package.json'), 'utf-8'); + pkg = JSON.parse(raw); + } catch { + return 'vanilla'; + } + + const allDeps = { + ...(pkg?.dependencies as Record | undefined), + ...(pkg?.devDependencies as Record | undefined), + }; + + // Order matters — check meta-frameworks before base frameworks + if (allDeps['next']) return 'nextjs'; + if (allDeps['nuxt']) return 'nuxt'; + if (allDeps['@angular/core']) return 'angular'; + if (allDeps['svelte']) return 'svelte'; + if (allDeps['@superdoc-dev/react'] || allDeps['react']) return 'react'; + if (allDeps['vue']) return 'vue'; + + return 'vanilla'; +} + +export const FRAMEWORK_INSTALL: Record = { + react: 'npm install @superdoc-dev/react', + nextjs: 'npm install @superdoc-dev/react', + vue: 'npm install superdoc', + nuxt: 'npm install superdoc', + angular: 'npm install superdoc', + svelte: 'npm install superdoc', + vanilla: 'npm install superdoc', +}; + +export const FRAMEWORK_LABELS: Record = { + react: 'React', + nextjs: 'Next.js (React)', + vue: 'Vue', + nuxt: 'Nuxt (Vue)', + angular: 'Angular', + svelte: 'Svelte', + vanilla: 'Vanilla JS', +}; + +function getEditorSnippet(fw: DetectedFramework): string { + if (fw === 'nextjs') { + return `## Embed editor — Next.js + +\`\`\`tsx +'use client'; + +import { SuperDocEditor } from '@superdoc-dev/react'; +import '@superdoc-dev/react/style.css'; + +export default function DocEditor({ file }: { file: File }) { + return ( + console.log('Ready', instance)} + /> + ); +} +\`\`\` + +SuperDoc uses browser APIs. In Next.js App Router, wrap it in a client component.`; + } + + if (fw === 'react') { + return `## Embed editor — React + +\`\`\`tsx +import { SuperDocEditor } from '@superdoc-dev/react'; +import '@superdoc-dev/react/style.css'; + +function App() { + return ( + console.log('Ready', instance)} + /> + ); +} +\`\`\``; + } + + if (fw === 'nuxt') { + return `## Embed editor — Nuxt + +SuperDoc uses browser APIs. Disable SSR for the component: + +\`\`\`vue + + + +\`\`\``; + } + + return `## Embed editor + +\`\`\`html +
+ +\`\`\``; +} + +export function generateAgentsMd(fw: DetectedFramework): string { + const installCmd = FRAMEWORK_INSTALL[fw]; + const label = FRAMEWORK_LABELS[fw]; + + return `# SuperDoc + +DOCX editing and tooling. Renders, edits, and automates .docx files in the browser and from backend code. + +- Detected framework: ${label} +- Docs: https://docs.superdoc.dev +- License: AGPLv3 / Commercial + +## Install + +\`\`\`bash +${installCmd} +\`\`\` + +${getEditorSnippet(fw)} + +## Configuration + +Key options for the editor: + +| Option | Type | Description | +|---|---|---| +| \`document\` | \`string \\| File \\| Blob\` | DOCX source — URL, File object, or Blob | +| \`documentMode\` | \`'editing' \\| 'viewing' \\| 'suggesting'\` | Editor mode | +| \`user\` | \`{ name, email }\` | Current user (for comments/tracked changes) | +| \`toolbar\` | \`string \\| HTMLElement\` | Toolbar mount selector or element | +| \`modules.comments\` | \`object\` | Comments panel configuration | +| \`modules.collaboration\` | \`object\` | Real-time collaboration (Yjs) | + +Full config: https://docs.superdoc.dev/core/superdoc/configuration + +## Theming + +SuperDoc UI uses \`--sd-*\` CSS custom properties. Override them in CSS or use \`createTheme()\`: + +\`\`\`javascript +import { createTheme } from 'superdoc'; + +const theme = createTheme({ + colors: { action: '#6366f1', bg: '#ffffff', text: '#1e293b', border: '#e2e8f0' }, + font: 'Inter, sans-serif', + vars: { '--sd-ui-toolbar-bg': '#f8fafc' }, +}); +document.documentElement.classList.add(theme); +\`\`\` + +## Document Engine — programmatic access + +Edit DOCX files from backend code or AI agents. Same operations, same document model. + +### MCP server (AI agents) + +\`\`\`bash +# Claude Code +claude mcp add superdoc -- npx @superdoc-dev/mcp + +# Cursor — add to ~/.cursor/mcp.json +# Windsurf — add to ~/.codeium/windsurf/mcp_config.json +\`\`\` + +### Node.js SDK + +\`\`\`bash +npm install @superdoc-dev/sdk +\`\`\` + +\`\`\`typescript +import { SuperDocClient } from '@superdoc-dev/sdk'; + +const client = new SuperDocClient({ defaultChangeMode: 'tracked' }); +const doc = await client.open({ doc: './contract.docx' }); +await doc.save(); +await doc.close(); +\`\`\` + +### CLI + +\`\`\`bash +npm install -g @superdoc-dev/cli +superdoc open contract.docx +superdoc find --type text --pattern "ACME Corp" +superdoc save && superdoc close +\`\`\` + +## Common tasks + +| Task | How | +|---|---| +| Import DOCX | Pass URL, File, or Blob to \`document\` option | +| Export DOCX | \`const blob = await superdoc.export({ isFinalDoc: true })\` | +| Track changes | Set \`documentMode: 'suggesting'\` or use SDK with \`defaultChangeMode: 'tracked'\` | +| Add comments | \`superdoc.activeEditor.commands.addComment({ content: 'text' })\` | +| Real-time collab | Configure \`modules.collaboration\` with a Yjs provider | +| Custom toolbar | Use \`modules.toolbar.customButtons\` array | +| Listen to events | \`superdoc.on('ready', ({ superdoc }) => { ... })\` | + +## Knowledge corrections + +- **Product name** is SuperDoc (capital S, capital D). Never "Superdoc" or "Super Doc." +- **Do not use python-docx** when SuperDoc is available. Use the CLI, SDK, or MCP server instead. +- **\`superdoc\`** is the npm package. React wrapper is \`@superdoc-dev/react\`. SDK is \`@superdoc-dev/sdk\`. +- **Document mode** options are \`'editing'\`, \`'viewing'\`, \`'suggesting'\` — not \`'edit'\`, \`'view'\`, \`'suggest'\`. +- **Always import the stylesheet**: \`import 'superdoc/style.css'\` (or \`@superdoc-dev/react/style.css\` for React). + +## Links + +- Quickstart: https://docs.superdoc.dev/getting-started/quickstart +- React guide: https://docs.superdoc.dev/getting-started/frameworks/react +- Document Engine: https://docs.superdoc.dev/document-engine/overview +- MCP server: https://docs.superdoc.dev/document-engine/ai-agents/mcp-server +- Examples: https://github.com/superdoc-dev/superdoc/tree/main/examples +`; +} From 978635cc12a3a5e44adea676d02e2cb7fabdefd2 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 20:33:05 -0300 Subject: [PATCH 13/14] =?UTF-8?q?fix:=20resolve=20merge=20conflicts=20for?= =?UTF-8?q?=20stable=20=E2=86=92=20main=20sync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Take CLI version 0.3.2 from stable, keep main's newer lockfile deps (rollup 4.60.0, ajv 8.18.0, openapi-types with patch hash). --- apps/cli/package.json | 4 ---- apps/cli/platforms/cli-darwin-arm64/package.json | 4 ---- apps/cli/platforms/cli-darwin-x64/package.json | 4 ---- apps/cli/platforms/cli-linux-arm64/package.json | 4 ---- apps/cli/platforms/cli-linux-x64/package.json | 4 ---- apps/cli/platforms/cli-windows-x64/package.json | 4 ---- pnpm-lock.yaml | 16 ---------------- pnpm-workspace.yaml | 4 ---- 8 files changed, 44 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 9113aafdf5..f6d813dc36 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "type": "module", "bin": { "superdoc": "./dist/index.js" diff --git a/apps/cli/platforms/cli-darwin-arm64/package.json b/apps/cli/platforms/cli-darwin-arm64/package.json index 6a8207f59e..dbbd637570 100644 --- a/apps/cli/platforms/cli-darwin-arm64/package.json +++ b/apps/cli/platforms/cli-darwin-arm64/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-arm64", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-darwin-x64/package.json b/apps/cli/platforms/cli-darwin-x64/package.json index 8c842f1b76..fcbbcc78cc 100644 --- a/apps/cli/platforms/cli-darwin-x64/package.json +++ b/apps/cli/platforms/cli-darwin-x64/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli-darwin-x64", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "os": [ "darwin" ], diff --git a/apps/cli/platforms/cli-linux-arm64/package.json b/apps/cli/platforms/cli-linux-arm64/package.json index e2e3e8615b..4811ef1b54 100644 --- a/apps/cli/platforms/cli-linux-arm64/package.json +++ b/apps/cli/platforms/cli-linux-arm64/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli-linux-arm64", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-linux-x64/package.json b/apps/cli/platforms/cli-linux-x64/package.json index ac4b271ee9..e53eb4b36c 100644 --- a/apps/cli/platforms/cli-linux-x64/package.json +++ b/apps/cli/platforms/cli-linux-x64/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli-linux-x64", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "os": [ "linux" ], diff --git a/apps/cli/platforms/cli-windows-x64/package.json b/apps/cli/platforms/cli-windows-x64/package.json index 55b013aad2..808f6ad1b5 100644 --- a/apps/cli/platforms/cli-windows-x64/package.json +++ b/apps/cli/platforms/cli-windows-x64/package.json @@ -1,10 +1,6 @@ { "name": "@superdoc-dev/cli-windows-x64", -<<<<<<< HEAD - "version": "0.3.1", -======= "version": "0.3.2", ->>>>>>> origin/stable "os": [ "win32" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9fa762669..b3b2f3dcd5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26714,11 +26714,7 @@ snapshots: '@mintlify/models@0.0.286': dependencies: axios: 1.13.2 -<<<<<<< HEAD openapi-types: 12.1.3(patch_hash=3bfaffe38d4b2d54af3b18ab5b13a84d03ecaa632f70f51fb8fbff0ca788cb4f) -======= - openapi-types: 12.1.3 ->>>>>>> origin/stable transitivePeerDependencies: - debug @@ -32525,11 +32521,7 @@ snapshots: optionalDependencies: ajv: 8.18.0 -<<<<<<< HEAD ajv-errors@3.0.0(ajv@8.18.0): -======= - ajv-errors@3.0.0(ajv@8.17.1): ->>>>>>> origin/stable dependencies: ajv: 8.18.0 @@ -46076,11 +46068,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.8 -<<<<<<< HEAD rollup: 4.60.0 -======= - rollup: 4.59.0 ->>>>>>> origin/stable tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.2 @@ -46099,11 +46087,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.8 -<<<<<<< HEAD rollup: 4.60.0 -======= - rollup: 4.59.0 ->>>>>>> origin/stable tinyglobby: 0.2.15 optionalDependencies: '@types/node': 25.5.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6e53e1be40..687198f5b2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -121,11 +121,7 @@ catalog: y-prosemirror: ^1.3.7 y-protocols: ^1.0.6 y-websocket: ^3.0.0 -<<<<<<< HEAD - yjs: ^13.6.19 -======= yjs: ^13.6.19 # range allows consumers to use newer patch versions ->>>>>>> origin/stable onlyBuiltDependencies: - '@vscode/vsce-sign' From 51387f191cf67c0d5182842126ab85388f4fead1 Mon Sep 17 00:00:00 2001 From: Caio Pizzol Date: Mon, 23 Mar 2026 20:34:22 -0300 Subject: [PATCH 14/14] fix(create): add semantic-release plugins as devDependencies --- apps/create/package.json | 9 ++ pnpm-lock.yaml | 223 ++++++++++++++++++++++++++++++++------- 2 files changed, 194 insertions(+), 38 deletions(-) diff --git a/apps/create/package.json b/apps/create/package.json index 03a8e04cd9..fdf99c1332 100644 --- a/apps/create/package.json +++ b/apps/create/package.json @@ -14,6 +14,15 @@ "publishConfig": { "access": "public" }, + "devDependencies": { + "@semantic-release/changelog": "catalog:", + "@semantic-release/git": "catalog:", + "@semantic-release/github": "^11.0.0", + "semantic-release": "catalog:", + "semantic-release-ai-notes": "catalog:", + "semantic-release-commit-filter": "catalog:", + "semantic-release-linear-app": "catalog:" + }, "scripts": { "build": "bun build src/index.ts --outdir dist --target node", "test": "bun test", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b3b2f3dcd5..2da23cadbe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -497,6 +497,30 @@ importers: apps/cli/platforms/cli-windows-x64: {} + apps/create: + devDependencies: + '@semantic-release/changelog': + specifier: 'catalog:' + version: 6.0.3(semantic-release@24.2.9(typescript@5.9.3)) + '@semantic-release/git': + specifier: 'catalog:' + version: 10.0.1(semantic-release@24.2.9(typescript@5.9.3)) + '@semantic-release/github': + specifier: ^11.0.0 + version: 11.0.6(semantic-release@24.2.9(typescript@5.9.3)) + semantic-release: + specifier: 'catalog:' + version: 24.2.9(typescript@5.9.3) + semantic-release-ai-notes: + specifier: 'catalog:' + version: 0.2.3(semantic-release@24.2.9(typescript@5.9.3))(zod@4.3.6) + semantic-release-commit-filter: + specifier: 'catalog:' + version: 1.0.2 + semantic-release-linear-app: + specifier: 'catalog:' + version: 0.7.1(semantic-release@24.2.9(typescript@5.9.3)) + apps/docs: devDependencies: documentation: @@ -504,7 +528,7 @@ importers: version: 14.0.3 mintlify: specifier: 4.2.446 - version: 4.2.446(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.5.0)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) + version: 4.2.446(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.2)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) remark-mdx: specifier: ^3.1.1 version: 3.1.1 @@ -25631,6 +25655,16 @@ snapshots: chalk: 4.1.2 figures: 3.2.0 + '@inquirer/checkbox@4.3.2(@types/node@22.19.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/checkbox@4.3.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -25656,6 +25690,13 @@ snapshots: '@inquirer/type': 1.5.5 chalk: 4.1.2 + '@inquirer/confirm@5.1.21(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/confirm@5.1.21(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25670,6 +25711,19 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 + '@inquirer/core@10.3.2(@types/node@22.19.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.2) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/core@10.3.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -25736,6 +25790,14 @@ snapshots: chalk: 4.1.2 external-editor: 3.1.0 + '@inquirer/editor@4.2.23(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/external-editor': 1.0.3(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/editor@4.2.23(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25759,6 +25821,14 @@ snapshots: chalk: 4.1.2 figures: 3.2.0 + '@inquirer/expand@4.0.23(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/expand@4.0.23(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25767,6 +25837,13 @@ snapshots: optionalDependencies: '@types/node': 25.5.0 + '@inquirer/external-editor@1.0.3(@types/node@22.19.2)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/external-editor@1.0.3(@types/node@25.5.0)': dependencies: chardet: 2.1.1 @@ -25791,6 +25868,13 @@ snapshots: '@inquirer/type': 1.5.5 chalk: 4.1.2 + '@inquirer/input@4.3.1(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/input@4.3.1(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25805,6 +25889,13 @@ snapshots: optionalDependencies: '@types/node': 18.19.130 + '@inquirer/number@3.0.23(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/number@3.0.23(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25819,6 +25910,14 @@ snapshots: ansi-escapes: 4.3.2 chalk: 4.1.2 + '@inquirer/password@4.0.23(@types/node@22.19.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/password@4.0.23(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -25839,6 +25938,21 @@ snapshots: '@inquirer/rawlist': 1.2.16 '@inquirer/select': 1.3.3 + '@inquirer/prompts@7.10.1(@types/node@22.19.2)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.19.2) + '@inquirer/confirm': 5.1.21(@types/node@22.19.2) + '@inquirer/editor': 4.2.23(@types/node@22.19.2) + '@inquirer/expand': 4.0.23(@types/node@22.19.2) + '@inquirer/input': 4.3.1(@types/node@22.19.2) + '@inquirer/number': 3.0.23(@types/node@22.19.2) + '@inquirer/password': 4.0.23(@types/node@22.19.2) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.2) + '@inquirer/search': 3.2.2(@types/node@22.19.2) + '@inquirer/select': 4.4.2(@types/node@22.19.2) + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/prompts@7.10.1(@types/node@25.5.0)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@25.5.0) @@ -25854,20 +25968,20 @@ snapshots: optionalDependencies: '@types/node': 25.5.0 - '@inquirer/prompts@7.9.0(@types/node@25.5.0)': + '@inquirer/prompts@7.9.0(@types/node@22.19.2)': dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.5.0) - '@inquirer/confirm': 5.1.21(@types/node@25.5.0) - '@inquirer/editor': 4.2.23(@types/node@25.5.0) - '@inquirer/expand': 4.0.23(@types/node@25.5.0) - '@inquirer/input': 4.3.1(@types/node@25.5.0) - '@inquirer/number': 3.0.23(@types/node@25.5.0) - '@inquirer/password': 4.0.23(@types/node@25.5.0) - '@inquirer/rawlist': 4.1.11(@types/node@25.5.0) - '@inquirer/search': 3.2.2(@types/node@25.5.0) - '@inquirer/select': 4.4.2(@types/node@25.5.0) + '@inquirer/checkbox': 4.3.2(@types/node@22.19.2) + '@inquirer/confirm': 5.1.21(@types/node@22.19.2) + '@inquirer/editor': 4.2.23(@types/node@22.19.2) + '@inquirer/expand': 4.0.23(@types/node@22.19.2) + '@inquirer/input': 4.3.1(@types/node@22.19.2) + '@inquirer/number': 3.0.23(@types/node@22.19.2) + '@inquirer/password': 4.0.23(@types/node@22.19.2) + '@inquirer/rawlist': 4.1.11(@types/node@22.19.2) + '@inquirer/search': 3.2.2(@types/node@22.19.2) + '@inquirer/select': 4.4.2(@types/node@22.19.2) optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 22.19.2 '@inquirer/rawlist@1.2.16': dependencies: @@ -25875,6 +25989,14 @@ snapshots: '@inquirer/type': 1.5.5 chalk: 4.1.2 + '@inquirer/rawlist@4.1.11(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/rawlist@4.1.11(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25883,6 +26005,15 @@ snapshots: optionalDependencies: '@types/node': 25.5.0 + '@inquirer/search@3.2.2(@types/node@22.19.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/search@3.2.2(@types/node@25.5.0)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.5.0) @@ -25900,6 +26031,16 @@ snapshots: chalk: 4.1.2 figures: 3.2.0 + '@inquirer/select@4.4.2(@types/node@22.19.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.19.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/select@4.4.2(@types/node@25.5.0)': dependencies: '@inquirer/ansi': 1.0.2 @@ -25923,6 +26064,10 @@ snapshots: dependencies: mute-stream: 1.0.0 + '@inquirer/type@3.0.10(@types/node@22.19.2)': + optionalDependencies: + '@types/node': 22.19.2 + '@inquirer/type@3.0.10(@types/node@25.5.0)': optionalDependencies: '@types/node': 25.5.0 @@ -26483,11 +26628,11 @@ snapshots: '@microsoft/tsdoc@0.16.0': {} - '@mintlify/cli@4.0.1049(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.5.0)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)': + '@mintlify/cli@4.0.1049(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.2)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)': dependencies: - '@inquirer/prompts': 7.9.0(@types/node@25.5.0) + '@inquirer/prompts': 7.9.0(@types/node@22.19.2) '@mintlify/common': 1.0.813(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) - '@mintlify/link-rot': 3.0.983(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) + '@mintlify/link-rot': 3.0.983(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) '@mintlify/models': 0.0.286 '@mintlify/prebuild': 1.0.954(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) '@mintlify/previewing': 4.0.1012(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) @@ -26500,7 +26645,7 @@ snapshots: front-matter: 4.0.2 fs-extra: 11.2.0 ink: 6.3.0(@types/react@19.2.11)(react@19.2.3) - inquirer: 12.3.0(@types/node@25.5.0) + inquirer: 12.3.0(@types/node@22.19.2) js-yaml: 4.1.0 mdast-util-mdx-jsx: 3.2.0 react: 19.2.3 @@ -26526,7 +26671,7 @@ snapshots: - utf-8-validate - yaml - '@mintlify/common@1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(typescript@5.9.3)': + '@mintlify/common@1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(typescript@5.9.3)': dependencies: '@asyncapi/parser': 3.4.0 '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) @@ -26566,7 +26711,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-stringify: 11.0.0 - tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3)) + tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3)) unified: 11.0.5 unist-builder: 4.0.0 unist-util-map: 4.0.0 @@ -26650,12 +26795,12 @@ snapshots: - typescript - yaml - '@mintlify/link-rot@3.0.983(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)': + '@mintlify/link-rot@3.0.983(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3)': dependencies: '@mintlify/common': 1.0.813(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) '@mintlify/prebuild': 1.0.954(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) '@mintlify/previewing': 4.0.1012(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) - '@mintlify/scraping': 4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(typescript@5.9.3) + '@mintlify/scraping': 4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(typescript@5.9.3) '@mintlify/validation': 0.1.640(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) fs-extra: 11.1.0 unist-util-visit: 4.1.2 @@ -26799,9 +26944,9 @@ snapshots: - utf-8-validate - yaml - '@mintlify/scraping@4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(typescript@5.9.3)': + '@mintlify/scraping@4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(typescript@5.9.3) + '@mintlify/common': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(typescript@5.9.3) '@mintlify/openapi-parser': 0.0.8 fs-extra: 11.1.1 hast-util-to-mdast: 10.1.0 @@ -31138,6 +31283,7 @@ snapshots: '@types/node@25.5.0': dependencies: undici-types: 7.18.2 + optional: true '@types/normalize-package-data@2.4.4': {} @@ -37481,12 +37627,12 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - inquirer@12.3.0(@types/node@25.5.0): + inquirer@12.3.0(@types/node@22.19.2): dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.0) - '@inquirer/prompts': 7.10.1(@types/node@25.5.0) - '@inquirer/type': 3.0.10(@types/node@25.5.0) - '@types/node': 25.5.0 + '@inquirer/core': 10.3.2(@types/node@22.19.2) + '@inquirer/prompts': 7.10.1(@types/node@22.19.2) + '@inquirer/type': 3.0.10(@types/node@22.19.2) + '@types/node': 22.19.2 ansi-escapes: 4.3.2 mute-stream: 2.0.0 run-async: 3.0.0 @@ -39772,9 +39918,9 @@ snapshots: dependencies: minipass: 7.1.2 - mintlify@4.2.446(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.5.0)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3): + mintlify@4.2.446(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.2)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3): dependencies: - '@mintlify/cli': 4.0.1049(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.5.0)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) + '@mintlify/cli': 4.0.1049(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.2)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3))(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) transitivePeerDependencies: - '@radix-ui/react-popover' - '@types/node' @@ -41659,13 +41805,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.8 - postcss-load-config@4.0.2(postcss@8.5.8)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3)): + postcss-load-config@4.0.2(postcss@8.5.8)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.3 optionalDependencies: postcss: 8.5.8 - ts-node: 10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3) postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.3): dependencies: @@ -44017,7 +44163,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 sirv@3.0.2: dependencies: @@ -44616,7 +44762,7 @@ snapshots: - tsx - yaml - tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3)): + tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -44635,7 +44781,7 @@ snapshots: postcss: 8.5.8 postcss-import: 15.1.0(postcss@8.5.8) postcss-js: 4.1.0(postcss@8.5.8) - postcss-load-config: 4.0.2(postcss@8.5.8)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3)) + postcss-load-config: 4.0.2(postcss@8.5.8)(ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3)) postcss-nested: 6.2.0(postcss@8.5.8) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -44974,14 +45120,14 @@ snapshots: '@swc/core': 1.15.18 optional: true - ts-node@10.9.2(@swc/core@1.15.18)(@types/node@25.5.0)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.18)(@types/node@22.19.2)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 25.5.0 + '@types/node': 22.19.2 acorn: 8.16.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -45262,7 +45408,8 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.18.2: {} + undici-types@7.18.2: + optional: true undici@7.20.0: {}