Files
qqq-cli/package.json
T
james.maesandClaude Fable 5.1 2a2325bc6f client: merge every extension document and tag each operation with its extension
The client document is now the sample server's live document (core plus esb, UI API 1.8.0) merged
with the extension documents of every qbit checked out beside this repository: health (qqq), alerts,
assistant, collaboration, data-analysis, db-performance, edi, qa-capture, quick-search,
release-notes, secured-data and sql-workbench. 202 operations, 136 of them from extensions.

- scripts/merge-spec.mjs records each extension's path prefix and operationIds in
  info.x-qqq-extensions, and accepts an extension the core input already carries when its
  operations are identical (the live document's esb), instead of failing on the duplicate.
- scripts/merge-extensions.mjs (npm run spec:merge-extensions) finds the documents, merges them and
  writes openapi/extension-sources.json with each document's version, branch and commit.
- scripts/gen-operations.mjs adds `extension` to OperationInfo (from x-qqq-extensions, else the
  /qbit/{name} or established prefix) and exports DOCUMENT_EXTENSIONS.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-31 17:43:58 -05:00

33 lines
1.2 KiB
JSON

{
"name": "qqq-cli-workspace",
"private": true,
"description": "Reference CLI, generated TypeScript client, mock server and conformance suite for the QQQ UI API (/qqq/v1).",
"license": "Apache-2.0",
"type": "module",
"engines": {
"node": ">=20"
},
"workspaces": [
"packages/ui-api-client",
"packages/core",
"packages/conformance",
"packages/cli"
],
"scripts": {
"spec:merge": "node scripts/merge-spec.mjs --out packages/ui-api-client/openapi/qqq-v1.json",
"spec:merge-extensions": "node scripts/merge-extensions.mjs",
"generate": "npm run generate -w @qrun-io/qqq-ui-api-client && node scripts/gen-operations.mjs",
"build": "npm run build -w @qrun-io/qqq-ui-api-client && npm run build -w @qrun-io/qqq-core && npm run build -w @qrun-io/qqq-ui-api-conformance && npm run build -w @qrun-io/qqq-cli",
"test": "npm test --workspaces --if-present",
"mock": "prism mock --dynamic --port 4010 packages/ui-api-client/openapi/qqq-v1.json",
"prepublishOnly": "npm run build",
"lint": "node scripts/lint.mjs"
},
"devDependencies": {
"@stoplight/prism-cli": "5.16.0",
"@types/node": "22.15.3",
"typescript": "5.8.3",
"yaml": "2.9.1"
}
}