ts-procedures 8.3.0 → 8.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent_config/claude-code/skills/ts-procedures/SKILL.md +26 -8
- package/agent_config/claude-code/skills/ts-procedures/templates/client.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/hono.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/procedure.md +3 -3
- package/agent_config/claude-code/skills/ts-procedures/templates/stream-procedure.md +3 -3
- package/build/client/call.js +1 -1
- package/build/client/call.js.map +1 -1
- package/build/client/index.d.ts +1 -1
- package/build/client/index.js +23 -1
- package/build/client/index.js.map +1 -1
- package/build/client/index.test.js +87 -0
- package/build/client/index.test.js.map +1 -1
- package/build/client/resolve-options.d.ts +5 -4
- package/build/client/resolve-options.js +18 -7
- package/build/client/resolve-options.js.map +1 -1
- package/build/client/resolve-options.test.js +53 -24
- package/build/client/resolve-options.test.js.map +1 -1
- package/build/client/stream.js +1 -1
- package/build/client/stream.js.map +1 -1
- package/build/client/types.d.ts +31 -3
- package/build/codegen/__fixtures__/make-envelope.d.ts +41 -0
- package/build/codegen/__fixtures__/make-envelope.js +38 -0
- package/build/codegen/__fixtures__/make-envelope.js.map +1 -0
- package/build/codegen/bin/cli.d.ts +15 -0
- package/build/codegen/bin/cli.js +46 -21
- package/build/codegen/bin/cli.js.map +1 -1
- package/build/codegen/bin/cli.test.js +54 -1
- package/build/codegen/bin/cli.test.js.map +1 -1
- package/build/codegen/bin/flag-specs.d.ts +10 -0
- package/build/codegen/bin/flag-specs.js +62 -0
- package/build/codegen/bin/flag-specs.js.map +1 -0
- package/build/codegen/bin/flag-specs.test.d.ts +1 -0
- package/build/codegen/bin/flag-specs.test.js +35 -0
- package/build/codegen/bin/flag-specs.test.js.map +1 -0
- package/build/codegen/collect-models.d.ts +48 -0
- package/build/codegen/collect-models.js +84 -0
- package/build/codegen/collect-models.js.map +1 -0
- package/build/codegen/collect-models.test.d.ts +1 -0
- package/build/codegen/collect-models.test.js +59 -0
- package/build/codegen/collect-models.test.js.map +1 -0
- package/build/codegen/emit-client-runtime.js +1 -0
- package/build/codegen/emit-client-runtime.js.map +1 -1
- package/build/codegen/emit-models.d.ts +26 -0
- package/build/codegen/emit-models.js +53 -0
- package/build/codegen/emit-models.js.map +1 -0
- package/build/codegen/emit-models.test.d.ts +1 -0
- package/build/codegen/emit-models.test.js +42 -0
- package/build/codegen/emit-models.test.js.map +1 -0
- package/build/codegen/emit-scope.d.ts +10 -0
- package/build/codegen/emit-scope.js +119 -34
- package/build/codegen/emit-scope.js.map +1 -1
- package/build/codegen/emit-types.d.ts +26 -1
- package/build/codegen/emit-types.js +27 -5
- package/build/codegen/emit-types.js.map +1 -1
- package/build/codegen/index.d.ts +15 -0
- package/build/codegen/index.js +5 -0
- package/build/codegen/index.js.map +1 -1
- package/build/codegen/model-refs.d.ts +27 -0
- package/build/codegen/model-refs.js +49 -0
- package/build/codegen/model-refs.js.map +1 -0
- package/build/codegen/model-refs.test.d.ts +1 -0
- package/build/codegen/model-refs.test.js +33 -0
- package/build/codegen/model-refs.test.js.map +1 -0
- package/build/codegen/pipeline.d.ts +7 -0
- package/build/codegen/pipeline.js +6 -1
- package/build/codegen/pipeline.js.map +1 -1
- package/build/codegen/schema-walk.d.ts +13 -0
- package/build/codegen/schema-walk.js +26 -0
- package/build/codegen/schema-walk.js.map +1 -0
- package/build/codegen/schema-walk.test.d.ts +1 -0
- package/build/codegen/schema-walk.test.js +35 -0
- package/build/codegen/schema-walk.test.js.map +1 -0
- package/build/codegen/targets/_shared/target-run.d.ts +15 -0
- package/build/codegen/targets/ts/run.js +37 -1
- package/build/codegen/targets/ts/run.js.map +1 -1
- package/build/codegen/targets/ts/shared-models.test.d.ts +1 -0
- package/build/codegen/targets/ts/shared-models.test.js +354 -0
- package/build/codegen/targets/ts/shared-models.test.js.map +1 -0
- package/build/doc-envelope.d.ts +13 -0
- package/build/doc-envelope.js +23 -0
- package/build/doc-envelope.js.map +1 -0
- package/build/doc-envelope.test.d.ts +1 -0
- package/build/doc-envelope.test.js +31 -0
- package/build/doc-envelope.test.js.map +1 -0
- package/build/exports.d.ts +2 -0
- package/build/exports.js +1 -0
- package/build/exports.js.map +1 -1
- package/docs/client-and-codegen.md +163 -0
- package/docs/handoffs/ajsc-named-type-collision.md +134 -0
- package/docs/handoffs/ajsc-named-type-support.md +181 -0
- package/docs/handoffs/shared-models-auto-resolve-response.md +181 -0
- package/docs/superpowers/plans/2026-06-05-dx-feedback-round.md +1292 -0
- package/docs/superpowers/plans/2026-06-06-shared-models-convention-and-diagnostics.md +659 -0
- package/docs/superpowers/specs/2026-06-05-dx-feedback-round-design.md +285 -0
- package/package.json +2 -2
- package/src/client/call.ts +1 -1
- package/src/client/index.test.ts +98 -0
- package/src/client/index.ts +32 -1
- package/src/client/resolve-options.test.ts +73 -26
- package/src/client/resolve-options.ts +23 -9
- package/src/client/stream.ts +1 -1
- package/src/client/types.ts +34 -3
- package/src/codegen/__fixtures__/make-envelope.ts +89 -0
- package/src/codegen/bin/cli.test.ts +65 -1
- package/src/codegen/bin/cli.ts +51 -22
- package/src/codegen/bin/flag-specs.test.ts +38 -0
- package/src/codegen/bin/flag-specs.ts +71 -0
- package/src/codegen/collect-models.test.ts +68 -0
- package/src/codegen/collect-models.ts +125 -0
- package/src/codegen/emit-client-runtime.ts +1 -0
- package/src/codegen/emit-models.test.ts +48 -0
- package/src/codegen/emit-models.ts +63 -0
- package/src/codegen/emit-scope.ts +145 -33
- package/src/codegen/emit-types.ts +48 -7
- package/src/codegen/index.ts +20 -0
- package/src/codegen/model-refs.test.ts +37 -0
- package/src/codegen/model-refs.ts +57 -0
- package/src/codegen/pipeline.ts +13 -1
- package/src/codegen/schema-walk.test.ts +37 -0
- package/src/codegen/schema-walk.ts +23 -0
- package/src/codegen/targets/_shared/target-run.ts +15 -0
- package/src/codegen/targets/ts/run.ts +50 -0
- package/src/codegen/targets/ts/shared-models.test.ts +391 -0
- package/src/doc-envelope.test.ts +35 -0
- package/src/doc-envelope.ts +30 -0
- package/src/exports.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface FlagSpec {
|
|
2
|
+
name: string;
|
|
3
|
+
arg?: string;
|
|
4
|
+
description: string;
|
|
5
|
+
group: 'Source' | 'Output' | 'Codegen' | 'Targets' | 'Misc';
|
|
6
|
+
default?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const FLAG_SPECS: readonly FlagSpec[];
|
|
9
|
+
export declare const KNOWN_FLAGS: readonly string[];
|
|
10
|
+
export declare function formatHelp(): string;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export const FLAG_SPECS = [
|
|
2
|
+
// Source
|
|
3
|
+
{ name: '--url', arg: '<url>', description: 'Fetch the doc envelope from a running server', group: 'Source' },
|
|
4
|
+
{ name: '--file', arg: '<path>', description: 'Read the doc envelope from a JSON file (see writeDocEnvelope)', group: 'Source' },
|
|
5
|
+
{ name: '--config', arg: '<path>', description: 'Load options from a JSON config file', group: 'Source' },
|
|
6
|
+
// Output
|
|
7
|
+
{ name: '--out', arg: '<dir>', description: 'Output directory for generated files', group: 'Output' },
|
|
8
|
+
{ name: '--dry-run', description: 'Print what would be written without touching disk', group: 'Output' },
|
|
9
|
+
{ name: '--clean-out-dir', description: 'Prune orphaned generator-owned files before writing', group: 'Output', default: 'on' },
|
|
10
|
+
{ name: '--no-clean-out-dir', description: 'Disable orphan pruning', group: 'Output' },
|
|
11
|
+
{ name: '--watch', description: 'Regenerate on envelope change', group: 'Output' },
|
|
12
|
+
{ name: '--interval', arg: '<ms>', description: 'Poll interval for --watch (default 3000)', group: 'Output' },
|
|
13
|
+
// Codegen
|
|
14
|
+
{ name: '--service-name', arg: '<name>', description: 'Service identifier driving generated names', group: 'Codegen', default: 'Api' },
|
|
15
|
+
{ name: '--namespace-types', description: 'Wrap types in nested namespaces', group: 'Codegen', default: 'on' },
|
|
16
|
+
{ name: '--no-namespace-types', description: 'Flat type names', group: 'Codegen' },
|
|
17
|
+
{ name: '--self-contained', description: 'Bundle the client runtime into the output dir', group: 'Codegen', default: 'on' },
|
|
18
|
+
{ name: '--no-self-contained', description: 'Import the client runtime from ts-procedures/client', group: 'Codegen' },
|
|
19
|
+
{ name: '--client-import-path', arg: '<path>', description: 'Override the client runtime import path', group: 'Codegen' },
|
|
20
|
+
{ name: '--share-models', description: 'Hoist $id-bearing schemas into a shared _models.ts', group: 'Codegen', default: 'on' },
|
|
21
|
+
{ name: '--no-share-models', description: 'Inline every type per route (legacy behaviour)', group: 'Codegen' },
|
|
22
|
+
{ name: '--shared-models-module', arg: '<module>', description: 'Re-export every $id model from one module (convention; sharedTypesImport overrides)', group: 'Codegen' },
|
|
23
|
+
{ name: '--strict-shared-models', description: 'Fail if any $id model would be generated as a local twin', group: 'Codegen' },
|
|
24
|
+
{ name: '--jsdoc', description: 'Emit JSDoc on generated types', group: 'Codegen', default: 'on' },
|
|
25
|
+
{ name: '--no-jsdoc', description: 'Suppress JSDoc', group: 'Codegen' },
|
|
26
|
+
{ name: '--enum-style', arg: '<union|enum>', description: 'How to emit enums (namespace mode)', group: 'Codegen' },
|
|
27
|
+
{ name: '--depluralize', description: 'Depluralize extracted array-item type names', group: 'Codegen' },
|
|
28
|
+
{ name: '--array-item-naming', arg: '<name|false>', description: 'Naming for extracted array-item types', group: 'Codegen' },
|
|
29
|
+
{ name: '--uncountable-words', arg: '<csv>', description: 'Words exempt from depluralization', group: 'Codegen' },
|
|
30
|
+
// Targets
|
|
31
|
+
{ name: '--target', arg: '<ts|kotlin|swift>', description: 'Output language', group: 'Targets', default: 'ts' },
|
|
32
|
+
{ name: '--kotlin-package', arg: '<pkg>', description: 'Package for Kotlin output (required for --target kotlin)', group: 'Targets' },
|
|
33
|
+
{ name: '--kotlin-serializer', arg: '<kotlinx|none>', description: 'Kotlin serialization annotations', group: 'Targets', default: 'kotlinx' },
|
|
34
|
+
{ name: '--swift-serializer', arg: '<codable|none>', description: 'Swift Codable conformance', group: 'Targets', default: 'codable' },
|
|
35
|
+
{ name: '--swift-access-level', arg: '<public|internal>', description: 'Swift access level', group: 'Targets', default: 'public' },
|
|
36
|
+
{ name: '--unsupported-unions', arg: '<throw|fallback>', description: 'Behaviour for untagged oneOf schemas', group: 'Targets', default: 'throw' },
|
|
37
|
+
];
|
|
38
|
+
export const KNOWN_FLAGS = FLAG_SPECS.map((s) => s.name);
|
|
39
|
+
const GROUP_ORDER = ['Source', 'Output', 'Codegen', 'Targets', 'Misc'];
|
|
40
|
+
export function formatHelp() {
|
|
41
|
+
const lines = [];
|
|
42
|
+
lines.push('Usage: ts-procedures-codegen --out <dir> (--url <url> | --file <path>) [options]');
|
|
43
|
+
lines.push('');
|
|
44
|
+
lines.push('Generate a typed client from a ts-procedures doc envelope.');
|
|
45
|
+
lines.push('');
|
|
46
|
+
const col = Math.max(...FLAG_SPECS.map((s) => (s.name + (s.arg ? ' ' + s.arg : '')).length)) + 2;
|
|
47
|
+
for (const group of GROUP_ORDER) {
|
|
48
|
+
const specs = FLAG_SPECS.filter((s) => s.group === group);
|
|
49
|
+
if (specs.length === 0)
|
|
50
|
+
continue;
|
|
51
|
+
lines.push(`${group}:`);
|
|
52
|
+
for (const s of specs) {
|
|
53
|
+
const left = s.name + (s.arg ? ' ' + s.arg : '');
|
|
54
|
+
const def = s.default ? ` (default: ${s.default})` : '';
|
|
55
|
+
lines.push(` ${left.padEnd(col)}${s.description}${def}`);
|
|
56
|
+
}
|
|
57
|
+
lines.push('');
|
|
58
|
+
}
|
|
59
|
+
lines.push(' -h, --help Show this help and exit');
|
|
60
|
+
return lines.join('\n');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=flag-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag-specs.js","sourceRoot":"","sources":["../../../src/codegen/bin/flag-specs.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,SAAS;IACT,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,8CAA8C,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7G,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,+DAA+D,EAAE,KAAK,EAAE,QAAQ,EAAE;IAChI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzG,SAAS;IACT,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,sCAAsC,EAAE,KAAK,EAAE,QAAQ,EAAE;IACrG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mDAAmD,EAAE,KAAK,EAAE,QAAQ,EAAE;IACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,qDAAqD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/H,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtF,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClF,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,0CAA0C,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7G,UAAU;IACV,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACtI,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,iCAAiC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC9G,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;IAClF,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,+CAA+C,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3H,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,qDAAqD,EAAE,KAAK,EAAE,SAAS,EAAE;IACrH,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,KAAK,EAAE,SAAS,EAAE;IACzH,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,oDAAoD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC9H,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,gDAAgD,EAAE,KAAK,EAAE,SAAS,EAAE;IAC9G,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,qFAAqF,EAAE,KAAK,EAAE,SAAS,EAAE;IACzK,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,0DAA0D,EAAE,KAAK,EAAE,SAAS,EAAE;IAC7H,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,+BAA+B,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAClG,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE;IACvE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,oCAAoC,EAAE,KAAK,EAAE,SAAS,EAAE;IAClH,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,6CAA6C,EAAE,KAAK,EAAE,SAAS,EAAE;IACvG,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,uCAAuC,EAAE,KAAK,EAAE,SAAS,EAAE;IAC5H,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,mCAAmC,EAAE,KAAK,EAAE,SAAS,EAAE;IACjH,UAAU;IACV,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/G,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,0DAA0D,EAAE,KAAK,EAAE,SAAS,EAAE;IACrI,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IAC7I,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,2BAA2B,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;IACrI,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;IAClI,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,sCAAsC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;CACnJ,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAE3E,MAAM,WAAW,GAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;AAE3F,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAA;IAC9F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;IAChG,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YAChD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACvD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { FLAG_SPECS, KNOWN_FLAGS, formatHelp } from './flag-specs.js';
|
|
3
|
+
describe('flag-specs', () => {
|
|
4
|
+
it('derives KNOWN_FLAGS from the spec table', () => {
|
|
5
|
+
expect(KNOWN_FLAGS).toContain('--url');
|
|
6
|
+
expect(KNOWN_FLAGS).toContain('--service-name');
|
|
7
|
+
expect(KNOWN_FLAGS).toContain('--target');
|
|
8
|
+
for (const spec of FLAG_SPECS)
|
|
9
|
+
expect(KNOWN_FLAGS).toContain(spec.name);
|
|
10
|
+
});
|
|
11
|
+
it('formatHelp lists every flag with its description, grouped', () => {
|
|
12
|
+
const help = formatHelp();
|
|
13
|
+
expect(help).toMatch(/Usage: ts-procedures-codegen/);
|
|
14
|
+
for (const spec of FLAG_SPECS) {
|
|
15
|
+
expect(help).toContain(spec.name);
|
|
16
|
+
expect(help).toContain(spec.description);
|
|
17
|
+
}
|
|
18
|
+
expect(help).toMatch(/Source/);
|
|
19
|
+
expect(help).toMatch(/Targets/);
|
|
20
|
+
});
|
|
21
|
+
it('does not list --help/-h as a real codegen flag in KNOWN_FLAGS', () => {
|
|
22
|
+
expect(KNOWN_FLAGS).not.toContain('--help');
|
|
23
|
+
expect(KNOWN_FLAGS).not.toContain('-h');
|
|
24
|
+
});
|
|
25
|
+
it('catalogs the shared-models convention + strict flags', () => {
|
|
26
|
+
expect(KNOWN_FLAGS).toContain('--shared-models-module');
|
|
27
|
+
expect(KNOWN_FLAGS).toContain('--strict-shared-models');
|
|
28
|
+
});
|
|
29
|
+
it('documents the new flags in --help output', () => {
|
|
30
|
+
const help = formatHelp();
|
|
31
|
+
expect(help).toContain('--shared-models-module');
|
|
32
|
+
expect(help).toContain('--strict-shared-models');
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=flag-specs.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flag-specs.test.js","sourceRoot":"","sources":["../../../src/codegen/bin/flag-specs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAErE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,UAAU;YAAE,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAA;QACpD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QACvD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QAChD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { AnyHttpRouteDoc } from '../implementations/types.js';
|
|
2
|
+
/** A schema hoisted out of per-route inlining because it carries a `$id`. */
|
|
3
|
+
export interface CollectedModel {
|
|
4
|
+
/** The schema's `$id` — the stable identity key used for dedup and import mapping. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** PascalCase TypeScript identifier for the emitted model (disambiguated on collision). */
|
|
7
|
+
name: string;
|
|
8
|
+
/** The model's JSON Schema (first-seen copy). */
|
|
9
|
+
schema: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
/** Maps a model `$id` to an external import (module + exported name). */
|
|
12
|
+
export interface SharedTypeImport {
|
|
13
|
+
module: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
/** `$id` → external import. Models with a matching entry are imported rather than generated. */
|
|
17
|
+
export type SharedTypesImportMap = Record<string, SharedTypeImport>;
|
|
18
|
+
/** A {@link CollectedModel} tagged with its external import, if one was configured. */
|
|
19
|
+
export interface ResolvedModel extends CollectedModel {
|
|
20
|
+
import?: SharedTypeImport;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Deep-walks every route's `jsonSchema` and collects each subschema carrying a
|
|
24
|
+
* string `$id` exactly once (deduped by `$id`, first-seen order preserved).
|
|
25
|
+
*
|
|
26
|
+
* - Names are derived from `title` (or the last `$id` segment), PascalCased.
|
|
27
|
+
* - Distinct `$id`s that derive the same name are disambiguated deterministically
|
|
28
|
+
* by first-seen order (`Message`, `Message2`, `Message3`, …).
|
|
29
|
+
* - Two nodes sharing an `$id` but differing structurally throw (the `$id` is a
|
|
30
|
+
* broken identity contract).
|
|
31
|
+
*/
|
|
32
|
+
export declare function collectModels(routes: AnyHttpRouteDoc[]): CollectedModel[];
|
|
33
|
+
/** Options controlling how collected models are resolved to external imports. */
|
|
34
|
+
export interface ResolveModelImportsOptions {
|
|
35
|
+
/** Per-`$id` external import. A matching entry wins over `sharedModelsModule`. */
|
|
36
|
+
sharedTypesImport?: SharedTypesImportMap;
|
|
37
|
+
/** Single module every otherwise-unmapped `$id` model re-exports from (convention). */
|
|
38
|
+
sharedModelsModule?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Tags each collected model with its external import. Precedence:
|
|
42
|
+
* 1. an explicit `sharedTypesImport[$id]` entry (per-type override / rename),
|
|
43
|
+
* 2. otherwise, when `sharedModelsModule` is set, the convention
|
|
44
|
+
* `{ module: sharedModelsModule, name: model.name }` — every shared model
|
|
45
|
+
* re-exports from one module under its derived name (`$id`/`title` === export),
|
|
46
|
+
* 3. otherwise `import` stays undefined and the model is generated locally.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveModelImports(models: CollectedModel[], options?: ResolveModelImportsOptions): ResolvedModel[];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { toPascalCase } from './naming.js';
|
|
2
|
+
import { walkSubschemas } from './schema-walk.js';
|
|
3
|
+
/** Produces a stable structural key for collision detection (key order does not matter). */
|
|
4
|
+
function structuralKey(value) {
|
|
5
|
+
return JSON.stringify(value, (_k, v) => {
|
|
6
|
+
if (v && typeof v === 'object' && !Array.isArray(v)) {
|
|
7
|
+
const sorted = {};
|
|
8
|
+
for (const k of Object.keys(v).sort()) {
|
|
9
|
+
sorted[k] = v[k];
|
|
10
|
+
}
|
|
11
|
+
return sorted;
|
|
12
|
+
}
|
|
13
|
+
return v;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
/** Derives a base PascalCase name from a schema's `title`, falling back to the last `$id` segment. */
|
|
17
|
+
function deriveBaseName(schema, id) {
|
|
18
|
+
const title = typeof schema.title === 'string' ? schema.title : undefined;
|
|
19
|
+
const source = title ?? id.split(/[/:#?]+/).filter(Boolean).pop() ?? id;
|
|
20
|
+
const pascal = toPascalCase(source);
|
|
21
|
+
return pascal.length > 0 ? pascal : 'Model';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Deep-walks every route's `jsonSchema` and collects each subschema carrying a
|
|
25
|
+
* string `$id` exactly once (deduped by `$id`, first-seen order preserved).
|
|
26
|
+
*
|
|
27
|
+
* - Names are derived from `title` (or the last `$id` segment), PascalCased.
|
|
28
|
+
* - Distinct `$id`s that derive the same name are disambiguated deterministically
|
|
29
|
+
* by first-seen order (`Message`, `Message2`, `Message3`, …).
|
|
30
|
+
* - Two nodes sharing an `$id` but differing structurally throw (the `$id` is a
|
|
31
|
+
* broken identity contract).
|
|
32
|
+
*/
|
|
33
|
+
export function collectModels(routes) {
|
|
34
|
+
const byId = new Map();
|
|
35
|
+
const order = [];
|
|
36
|
+
const visit = (obj) => {
|
|
37
|
+
if (typeof obj.$id === 'string') {
|
|
38
|
+
const id = obj.$id;
|
|
39
|
+
const key = structuralKey(obj);
|
|
40
|
+
const existing = byId.get(id);
|
|
41
|
+
if (existing) {
|
|
42
|
+
if (existing.key !== key) {
|
|
43
|
+
throw new Error(`[ts-procedures-codegen] Conflicting schemas share $id "${id}". A $id must identify a single structural shape; found two divergent definitions.`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
byId.set(id, { schema: obj, key });
|
|
48
|
+
order.push(id);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
for (const route of routes)
|
|
53
|
+
walkSubschemas(route.jsonSchema, visit);
|
|
54
|
+
const usedNames = new Map();
|
|
55
|
+
return order.map((id) => {
|
|
56
|
+
const { schema } = byId.get(id);
|
|
57
|
+
const base = deriveBaseName(schema, id);
|
|
58
|
+
const seen = usedNames.get(base) ?? 0;
|
|
59
|
+
usedNames.set(base, seen + 1);
|
|
60
|
+
const name = seen === 0 ? base : `${base}${seen + 1}`;
|
|
61
|
+
return { id, name, schema };
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Tags each collected model with its external import. Precedence:
|
|
66
|
+
* 1. an explicit `sharedTypesImport[$id]` entry (per-type override / rename),
|
|
67
|
+
* 2. otherwise, when `sharedModelsModule` is set, the convention
|
|
68
|
+
* `{ module: sharedModelsModule, name: model.name }` — every shared model
|
|
69
|
+
* re-exports from one module under its derived name (`$id`/`title` === export),
|
|
70
|
+
* 3. otherwise `import` stays undefined and the model is generated locally.
|
|
71
|
+
*/
|
|
72
|
+
export function resolveModelImports(models, options = {}) {
|
|
73
|
+
const { sharedTypesImport = {}, sharedModelsModule } = options;
|
|
74
|
+
return models.map((model) => {
|
|
75
|
+
const mapped = sharedTypesImport[model.id];
|
|
76
|
+
if (mapped)
|
|
77
|
+
return { ...model, import: mapped };
|
|
78
|
+
if (sharedModelsModule != null && sharedModelsModule !== '') {
|
|
79
|
+
return { ...model, import: { module: sharedModelsModule, name: model.name } };
|
|
80
|
+
}
|
|
81
|
+
return { ...model };
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=collect-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-models.js","sourceRoot":"","sources":["../../src/codegen/collect-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { it, expect } from 'vitest';
|
|
2
|
+
import { collectModels, resolveModelImports } from './collect-models.js';
|
|
3
|
+
const message = { type: 'object', $id: 'urn:msg', title: 'Message', properties: { id: { type: 'string' } } };
|
|
4
|
+
it('collects each $id subschema once, named from title', () => {
|
|
5
|
+
const routes = [
|
|
6
|
+
{ jsonSchema: { response: message } },
|
|
7
|
+
{ jsonSchema: { body: { type: 'object', properties: { msg: message } } } },
|
|
8
|
+
];
|
|
9
|
+
const models = collectModels(routes);
|
|
10
|
+
expect(models.map((m) => m.name)).toEqual(['Message']);
|
|
11
|
+
expect(models[0]?.id).toBe('urn:msg');
|
|
12
|
+
});
|
|
13
|
+
it('throws on $id collision with divergent body', () => {
|
|
14
|
+
const a = { type: 'object', $id: 'urn:x', title: 'X', properties: { a: { type: 'string' } } };
|
|
15
|
+
const b = { type: 'object', $id: 'urn:x', title: 'X', properties: { b: { type: 'number' } } };
|
|
16
|
+
expect(() => collectModels([{ jsonSchema: { response: a } }, { jsonSchema: { body: b } }])).toThrow(/urn:x/);
|
|
17
|
+
});
|
|
18
|
+
it('disambiguates distinct $ids that derive the same name', () => {
|
|
19
|
+
const m1 = { type: 'object', $id: 'urn:a/message', title: 'Message', properties: { a: { type: 'string' } } };
|
|
20
|
+
const m2 = { type: 'object', $id: 'urn:b/message', title: 'Message', properties: { b: { type: 'string' } } };
|
|
21
|
+
const models = collectModels([{ jsonSchema: { response: m1 } }, { jsonSchema: { body: m2 } }]);
|
|
22
|
+
expect(models.map((m) => m.name).sort()).toEqual(['Message', 'Message2']);
|
|
23
|
+
});
|
|
24
|
+
it('ignores schemas without $id', () => {
|
|
25
|
+
const routes = [{ jsonSchema: { response: { type: 'object', title: 'Loose', properties: {} } } }];
|
|
26
|
+
expect(collectModels(routes)).toEqual([]);
|
|
27
|
+
});
|
|
28
|
+
it('does NOT throw for ordinary schemas without the reserved prefix', () => {
|
|
29
|
+
const routes = [
|
|
30
|
+
{ jsonSchema: { response: { type: 'object', properties: { kind: { const: 'message' }, status: { enum: ['ok', 'error'] } } } } },
|
|
31
|
+
];
|
|
32
|
+
expect(() => collectModels(routes)).not.toThrow();
|
|
33
|
+
});
|
|
34
|
+
it('resolveModelImports tags mapped models and leaves others generated', () => {
|
|
35
|
+
const models = [{ id: 'urn:msg', name: 'Message', schema: {} }];
|
|
36
|
+
const mapped = resolveModelImports(models, {
|
|
37
|
+
sharedTypesImport: { 'urn:msg': { module: '@shared/schemas', name: 'Message' } },
|
|
38
|
+
});
|
|
39
|
+
expect(mapped[0]?.import).toEqual({ module: '@shared/schemas', name: 'Message' });
|
|
40
|
+
expect(resolveModelImports(models)[0]?.import).toBeUndefined();
|
|
41
|
+
});
|
|
42
|
+
it('resolveModelImports falls back to sharedModelsModule when no map entry matches', () => {
|
|
43
|
+
const models = [{ id: 'urn:msg', name: 'Message', schema: {} }];
|
|
44
|
+
const resolved = resolveModelImports(models, { sharedModelsModule: '@app/schemas' });
|
|
45
|
+
expect(resolved[0]?.import).toEqual({ module: '@app/schemas', name: 'Message' });
|
|
46
|
+
});
|
|
47
|
+
it('resolveModelImports: explicit map entry wins over the convention', () => {
|
|
48
|
+
const models = [{ id: 'urn:msg', name: 'Message', schema: {} }];
|
|
49
|
+
const resolved = resolveModelImports(models, {
|
|
50
|
+
sharedTypesImport: { 'urn:msg': { module: '@override/pkg', name: 'Msg' } },
|
|
51
|
+
sharedModelsModule: '@app/schemas',
|
|
52
|
+
});
|
|
53
|
+
expect(resolved[0]?.import).toEqual({ module: '@override/pkg', name: 'Msg' });
|
|
54
|
+
});
|
|
55
|
+
it('resolveModelImports: empty-string convention is treated as unset (generated locally)', () => {
|
|
56
|
+
const models = [{ id: 'urn:msg', name: 'Message', schema: {} }];
|
|
57
|
+
expect(resolveModelImports(models, { sharedModelsModule: '' })[0]?.import).toBeUndefined();
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=collect-models.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collect-models.test.js","sourceRoot":"","sources":["../../src/codegen/collect-models.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-client-runtime.js","sourceRoot":"","sources":["../../src/codegen/emit-client-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"emit-client-runtime.js","sourceRoot":"","sources":["../../src/codegen/emit-client-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4BH,CAAA;AAElB;;;GAGG;AACH,MAAM,YAAY,GAAG;IACnB,WAAW;IACX,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,UAAU;IACV,SAAS;IACT,WAAW;IACX,kBAAkB;IAClB,UAAU;CACF,CAAA;AAEV;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,2DAA2D;IAC3D,OAAO,OAAO,CAAC,OAAO,CAAC,mDAAmD,EAAE,EAAE,CAAC,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,mFAAmF;IACnF,OAAO,OAAO,CAAC,OAAO,CAAC,gEAAgE,EAAE,EAAE,CAAC,CAAA;AAC9F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrC,sEAAsE;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAEpD,gCAAgC;IAChC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,sBAAsB,QAAQ,IAAI;gBAC1F,8CAA8C,CAC/C,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACzC,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE/C,mDAAmD;QACnD,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAE/B,kDAAkD;QAClD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;YACjC,0EAA0E;YAC1E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;QACxD,CAAC;QAED,yCAAyC;QACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE5C,mCAAmC;QACnC,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAExB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3E,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AjscOptions } from './emit-types.js';
|
|
2
|
+
import type { ResolvedModel } from './collect-models.js';
|
|
3
|
+
export interface EmitModelsOptions {
|
|
4
|
+
ajsc?: AjscOptions;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Emits the shared `_models.ts` hub: one named TypeScript type per `$id`-bearing
|
|
8
|
+
* schema so routes can reference a single entity type instead of inlining copies.
|
|
9
|
+
*
|
|
10
|
+
* Two kinds of model:
|
|
11
|
+
* - **Imported** (`model.import` set): re-exported from the user's package —
|
|
12
|
+
* `export { <PkgName>[ as <LocalName>] } from '<module>'`.
|
|
13
|
+
* - **Generated** (no `import`): converted from JSON Schema to a TS type via
|
|
14
|
+
* ajsc. Nested OTHER models are first rewritten to `x-named-type` nodes
|
|
15
|
+
* ({@link substituteModelRefs} with `skipSelfId` so the model's own root
|
|
16
|
+
* `$id` is not self-referenced); ajsc (≥7.3.0) then emits each nested model
|
|
17
|
+
* as a bare verbatim reference rather than re-inlining its shape.
|
|
18
|
+
*
|
|
19
|
+
* Declarations are kept FLAT at the top level regardless of `namespaceTypes` —
|
|
20
|
+
* scopes import these by bare name and TS `type` aliases permit forward
|
|
21
|
+
* references, so declaration order does not matter. Re-exports are emitted first,
|
|
22
|
+
* then generated declarations.
|
|
23
|
+
*
|
|
24
|
+
* Returns `null` when there are no models.
|
|
25
|
+
*/
|
|
26
|
+
export declare function emitModelsFile(models: ResolvedModel[], opts: EmitModelsOptions): Promise<string | null>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsonSchemaToTypeBody } from './emit-types.js';
|
|
2
|
+
import { substituteModelRefs } from './model-refs.js';
|
|
3
|
+
import { CODEGEN_HEADER } from './constants.js';
|
|
4
|
+
/**
|
|
5
|
+
* Emits the shared `_models.ts` hub: one named TypeScript type per `$id`-bearing
|
|
6
|
+
* schema so routes can reference a single entity type instead of inlining copies.
|
|
7
|
+
*
|
|
8
|
+
* Two kinds of model:
|
|
9
|
+
* - **Imported** (`model.import` set): re-exported from the user's package —
|
|
10
|
+
* `export { <PkgName>[ as <LocalName>] } from '<module>'`.
|
|
11
|
+
* - **Generated** (no `import`): converted from JSON Schema to a TS type via
|
|
12
|
+
* ajsc. Nested OTHER models are first rewritten to `x-named-type` nodes
|
|
13
|
+
* ({@link substituteModelRefs} with `skipSelfId` so the model's own root
|
|
14
|
+
* `$id` is not self-referenced); ajsc (≥7.3.0) then emits each nested model
|
|
15
|
+
* as a bare verbatim reference rather than re-inlining its shape.
|
|
16
|
+
*
|
|
17
|
+
* Declarations are kept FLAT at the top level regardless of `namespaceTypes` —
|
|
18
|
+
* scopes import these by bare name and TS `type` aliases permit forward
|
|
19
|
+
* references, so declaration order does not matter. Re-exports are emitted first,
|
|
20
|
+
* then generated declarations.
|
|
21
|
+
*
|
|
22
|
+
* Returns `null` when there are no models.
|
|
23
|
+
*/
|
|
24
|
+
export async function emitModelsFile(models, opts) {
|
|
25
|
+
if (models.length === 0)
|
|
26
|
+
return null;
|
|
27
|
+
const idToName = new Map(models.map((m) => [m.id, m.name]));
|
|
28
|
+
const reExports = [];
|
|
29
|
+
const declarations = [];
|
|
30
|
+
for (const model of models) {
|
|
31
|
+
if (model.import) {
|
|
32
|
+
const pkgName = model.import.name;
|
|
33
|
+
const localName = model.name;
|
|
34
|
+
const clause = pkgName === localName ? pkgName : `${pkgName} as ${localName}`;
|
|
35
|
+
reExports.push(`export { ${clause} } from '${model.import.module}'`);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// Generated model: rewrite nested OTHER models to `x-named-type` nodes so
|
|
39
|
+
// ajsc emits them as bare references, then convert to a TS body.
|
|
40
|
+
const substituted = substituteModelRefs(model.schema, idToName, model.id);
|
|
41
|
+
const body = await jsonSchemaToTypeBody(substituted.schema, opts.ajsc);
|
|
42
|
+
if (body == null)
|
|
43
|
+
continue;
|
|
44
|
+
declarations.push(`export type ${model.name} = ${body}`);
|
|
45
|
+
}
|
|
46
|
+
const blocks = [];
|
|
47
|
+
if (reExports.length > 0)
|
|
48
|
+
blocks.push(reExports.join('\n'));
|
|
49
|
+
for (const decl of declarations)
|
|
50
|
+
blocks.push(decl);
|
|
51
|
+
return [CODEGEN_HEADER, '', blocks.join('\n\n')].join('\n');
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=emit-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-models.js","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAoB,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAO/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAuB,EACvB,IAAuB;IAEvB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEpC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE3D,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,YAAY,GAAa,EAAE,CAAA;IAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;YAC5B,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,SAAS,EAAE,CAAA;YAC7E,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YACpE,SAAQ;QACV,CAAC;QAED,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACzE,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,IAAI,IAAI,IAAI,IAAI;YAAE,SAAQ;QAC1B,YAAY,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,MAAM,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3D,KAAK,MAAM,IAAI,IAAI,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAElD,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { emitModelsFile } from './emit-models.js';
|
|
3
|
+
const thread = {
|
|
4
|
+
id: 'urn:thread', name: 'Thread',
|
|
5
|
+
schema: { type: 'object', $id: 'urn:thread', title: 'Thread',
|
|
6
|
+
properties: { id: { type: 'string' }, author: { type: 'object', $id: 'urn:msg', title: 'Message', properties: { id: { type: 'string' } } } } },
|
|
7
|
+
};
|
|
8
|
+
const messageGenerated = {
|
|
9
|
+
id: 'urn:msg', name: 'Message',
|
|
10
|
+
schema: { type: 'object', $id: 'urn:msg', title: 'Message', properties: { id: { type: 'string' } } },
|
|
11
|
+
};
|
|
12
|
+
const messageImported = {
|
|
13
|
+
id: 'urn:msg', name: 'Message', schema: {},
|
|
14
|
+
import: { module: '@shared/schemas', name: 'Message' },
|
|
15
|
+
};
|
|
16
|
+
describe('emitModelsFile', () => {
|
|
17
|
+
it('returns null when there are no models', async () => {
|
|
18
|
+
expect(await emitModelsFile([], { ajsc: {} })).toBeNull();
|
|
19
|
+
});
|
|
20
|
+
it('declares a generated model as a named type', async () => {
|
|
21
|
+
const code = await emitModelsFile([messageGenerated], { ajsc: {} });
|
|
22
|
+
expect(code).toMatch(/export type Message =/);
|
|
23
|
+
});
|
|
24
|
+
it('re-exports a mapped model from the user package', async () => {
|
|
25
|
+
const code = await emitModelsFile([messageImported], { ajsc: {} });
|
|
26
|
+
expect(code).toContain("export { Message } from '@shared/schemas'");
|
|
27
|
+
});
|
|
28
|
+
it('aliases a re-export when local name differs from the package name', async () => {
|
|
29
|
+
const m = { id: 'urn:msg', name: 'ChatMessage', schema: {}, import: { module: '@shared/schemas', name: 'Message' } };
|
|
30
|
+
const code = await emitModelsFile([m], { ajsc: {} });
|
|
31
|
+
expect(code).toContain("export { Message as ChatMessage } from '@shared/schemas'");
|
|
32
|
+
});
|
|
33
|
+
it('a generated model that nests another model references it by name, not inlined', async () => {
|
|
34
|
+
// Thread.author is the Message model — Thread should reference Message, not inline { id }
|
|
35
|
+
const code = await emitModelsFile([thread, messageGenerated], { ajsc: {} });
|
|
36
|
+
// Thread's author property is typed as Message (the model), referenced by bare name
|
|
37
|
+
expect(code).toMatch(/author\??:\s*Message/);
|
|
38
|
+
// and there is no leftover placeholder token
|
|
39
|
+
expect(code).not.toContain('__MODELREF__');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=emit-models.test.js.map
|