@metaobjectsdev/codegen-ts 0.9.0-rc.1 → 0.10.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/README.md +1 -1
- package/dist/column-mapper.d.ts.map +1 -1
- package/dist/column-mapper.js +24 -8
- package/dist/column-mapper.js.map +1 -1
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +16 -0
- package/dist/constants.js.map +1 -1
- package/dist/docs-paths.d.ts +58 -0
- package/dist/docs-paths.d.ts.map +1 -0
- package/dist/docs-paths.js +89 -0
- package/dist/docs-paths.js.map +1 -0
- package/dist/enum-import.d.ts +14 -0
- package/dist/enum-import.d.ts.map +1 -0
- package/dist/enum-import.js +35 -0
- package/dist/enum-import.js.map +1 -0
- package/dist/enum-shared.d.ts +32 -0
- package/dist/enum-shared.d.ts.map +1 -0
- package/dist/enum-shared.js +83 -0
- package/dist/enum-shared.js.map +1 -0
- package/dist/generator-registry.d.ts +22 -0
- package/dist/generator-registry.d.ts.map +1 -0
- package/dist/generator-registry.js +161 -0
- package/dist/generator-registry.js.map +1 -0
- package/dist/generator.d.ts +6 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js.map +1 -1
- package/dist/generators/api-doc-render.d.ts +17 -0
- package/dist/generators/api-doc-render.d.ts.map +1 -0
- package/dist/generators/api-doc-render.js +431 -0
- package/dist/generators/api-doc-render.js.map +1 -0
- package/dist/generators/api-docs-file.d.ts +21 -0
- package/dist/generators/api-docs-file.d.ts.map +1 -0
- package/dist/generators/api-docs-file.js +112 -0
- package/dist/generators/api-docs-file.js.map +1 -0
- package/dist/generators/api-field-shape.d.ts +39 -0
- package/dist/generators/api-field-shape.d.ts.map +1 -0
- package/dist/generators/api-field-shape.js +92 -0
- package/dist/generators/api-field-shape.js.map +1 -0
- package/dist/generators/api-label.d.ts +3 -0
- package/dist/generators/api-label.d.ts.map +1 -0
- package/dist/generators/api-label.js +8 -0
- package/dist/generators/api-label.js.map +1 -0
- package/dist/generators/api-model.d.ts +122 -0
- package/dist/generators/api-model.d.ts.map +1 -0
- package/dist/generators/api-model.js +809 -0
- package/dist/generators/api-model.js.map +1 -0
- package/dist/generators/docs-data-builder.d.ts +26 -4
- package/dist/generators/docs-data-builder.d.ts.map +1 -1
- package/dist/generators/docs-data-builder.js +436 -164
- package/dist/generators/docs-data-builder.js.map +1 -1
- package/dist/generators/docs-data.d.ts +136 -27
- package/dist/generators/docs-data.d.ts.map +1 -1
- package/dist/generators/docs-data.js +1 -1
- package/dist/generators/docs-data.js.map +1 -1
- package/dist/generators/docs-file.d.ts +19 -0
- package/dist/generators/docs-file.d.ts.map +1 -1
- package/dist/generators/docs-file.js +154 -27
- package/dist/generators/docs-file.js.map +1 -1
- package/dist/generators/entity-file.d.ts.map +1 -1
- package/dist/generators/entity-file.js +29 -14
- package/dist/generators/entity-file.js.map +1 -1
- package/dist/generators/extractor-file.d.ts.map +1 -1
- package/dist/generators/extractor-file.js +2 -1
- package/dist/generators/extractor-file.js.map +1 -1
- package/dist/generators/field-anchor.d.ts +7 -0
- package/dist/generators/field-anchor.d.ts.map +1 -0
- package/dist/generators/field-anchor.js +23 -0
- package/dist/generators/field-anchor.js.map +1 -0
- package/dist/generators/index.d.ts +8 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +6 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/mermaid-er.d.ts +14 -0
- package/dist/generators/mermaid-er.d.ts.map +1 -1
- package/dist/generators/mermaid-er.js +14 -0
- package/dist/generators/mermaid-er.js.map +1 -1
- package/dist/generators/output-parser-file.d.ts.map +1 -1
- package/dist/generators/output-parser-file.js +3 -4
- package/dist/generators/output-parser-file.js.map +1 -1
- package/dist/generators/output-prompt-file.d.ts.map +1 -1
- package/dist/generators/output-prompt-file.js +2 -2
- package/dist/generators/output-prompt-file.js.map +1 -1
- package/dist/generators/prompt-render-file.d.ts.map +1 -1
- package/dist/generators/prompt-render-file.js +3 -4
- package/dist/generators/prompt-render-file.js.map +1 -1
- package/dist/generators/queries-file.d.ts.map +1 -1
- package/dist/generators/queries-file.js +8 -3
- package/dist/generators/queries-file.js.map +1 -1
- package/dist/generators/render-helper-file.d.ts.map +1 -1
- package/dist/generators/render-helper-file.js +2 -2
- package/dist/generators/render-helper-file.js.map +1 -1
- package/dist/generators/routes-file-hono.d.ts.map +1 -1
- package/dist/generators/routes-file-hono.js +5 -1
- package/dist/generators/routes-file-hono.js.map +1 -1
- package/dist/generators/routes-file.d.ts +3 -0
- package/dist/generators/routes-file.d.ts.map +1 -1
- package/dist/generators/routes-file.js +6 -1
- package/dist/generators/routes-file.js.map +1 -1
- package/dist/generators/template-doc-builder.d.ts +19 -0
- package/dist/generators/template-doc-builder.d.ts.map +1 -0
- package/dist/generators/template-doc-builder.js +220 -0
- package/dist/generators/template-doc-builder.js.map +1 -0
- package/dist/generators/template-doc-data.d.ts +62 -0
- package/dist/generators/template-doc-data.d.ts.map +1 -0
- package/dist/generators/template-doc-data.js +16 -0
- package/dist/generators/template-doc-data.js.map +1 -0
- package/dist/generators/template-payload-tree.d.ts +15 -0
- package/dist/generators/template-payload-tree.d.ts.map +1 -0
- package/dist/generators/template-payload-tree.js +61 -0
- package/dist/generators/template-payload-tree.js.map +1 -0
- package/dist/generators/template-source-annotate.d.ts +74 -0
- package/dist/generators/template-source-annotate.d.ts.map +1 -0
- package/dist/generators/template-source-annotate.js +184 -0
- package/dist/generators/template-source-annotate.js.map +1 -0
- package/dist/generators/template-source-render.d.ts +24 -0
- package/dist/generators/template-source-render.d.ts.map +1 -0
- package/dist/generators/template-source-render.js +175 -0
- package/dist/generators/template-source-render.js.map +1 -0
- package/dist/generators/trace-helper-file.d.ts +9 -0
- package/dist/generators/trace-helper-file.d.ts.map +1 -0
- package/dist/generators/trace-helper-file.js +196 -0
- package/dist/generators/trace-helper-file.js.map +1 -0
- package/dist/index.d.ts +29 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -2
- package/dist/index.js.map +1 -1
- package/dist/metaobjects-config.d.ts +75 -2
- package/dist/metaobjects-config.d.ts.map +1 -1
- package/dist/metaobjects-config.js +43 -0
- package/dist/metaobjects-config.js.map +1 -1
- package/dist/naming.d.ts +19 -0
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +41 -0
- package/dist/naming.js.map +1 -1
- package/dist/payload-codegen.d.ts.map +1 -1
- package/dist/payload-codegen.js +12 -4
- package/dist/payload-codegen.js.map +1 -1
- package/dist/projection/extract-view-spec.d.ts.map +1 -1
- package/dist/projection/extract-view-spec.js +51 -25
- package/dist/projection/extract-view-spec.js.map +1 -1
- package/dist/relation-resolver.d.ts +16 -0
- package/dist/relation-resolver.d.ts.map +1 -1
- package/dist/relation-resolver.js +82 -1
- package/dist/relation-resolver.js.map +1 -1
- package/dist/render-context.d.ts +4 -0
- package/dist/render-context.d.ts.map +1 -1
- package/dist/render-context.js.map +1 -1
- package/dist/render-engine/embedded-templates.generated.d.ts +2 -0
- package/dist/render-engine/embedded-templates.generated.d.ts.map +1 -0
- package/dist/render-engine/embedded-templates.generated.js +15 -0
- package/dist/render-engine/embedded-templates.generated.js.map +1 -0
- package/dist/render-engine/framework-provider.d.ts.map +1 -1
- package/dist/render-engine/framework-provider.js +26 -13
- package/dist/render-engine/framework-provider.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +17 -0
- package/dist/runner.js.map +1 -1
- package/dist/templates/docs-file.d.ts +2 -6
- package/dist/templates/docs-file.d.ts.map +1 -1
- package/dist/templates/docs-file.js +2 -5
- package/dist/templates/docs-file.js.map +1 -1
- package/dist/templates/drizzle-schema.d.ts.map +1 -1
- package/dist/templates/drizzle-schema.js +30 -2
- package/dist/templates/drizzle-schema.js.map +1 -1
- package/dist/templates/entity-constants.d.ts +7 -0
- package/dist/templates/entity-constants.d.ts.map +1 -1
- package/dist/templates/entity-constants.js +1 -1
- package/dist/templates/entity-constants.js.map +1 -1
- package/dist/templates/entity-file.d.ts.map +1 -1
- package/dist/templates/entity-file.js +16 -5
- package/dist/templates/entity-file.js.map +1 -1
- package/dist/templates/enums-file.d.ts +11 -0
- package/dist/templates/enums-file.d.ts.map +1 -0
- package/dist/templates/enums-file.js +44 -0
- package/dist/templates/enums-file.js.map +1 -0
- package/dist/templates/extract-delegate-emitter.d.ts.map +1 -1
- package/dist/templates/extract-delegate-emitter.js +5 -7
- package/dist/templates/extract-delegate-emitter.js.map +1 -1
- package/dist/templates/extract-schema-emitter.d.ts.map +1 -1
- package/dist/templates/extract-schema-emitter.js +5 -1
- package/dist/templates/extract-schema-emitter.js.map +1 -1
- package/dist/templates/extractor.d.ts.map +1 -1
- package/dist/templates/extractor.js +56 -39
- package/dist/templates/extractor.js.map +1 -1
- package/dist/templates/field-meta.d.ts.map +1 -1
- package/dist/templates/field-meta.js +1 -5
- package/dist/templates/field-meta.js.map +1 -1
- package/dist/templates/filter-allowlist.d.ts +7 -2
- package/dist/templates/filter-allowlist.d.ts.map +1 -1
- package/dist/templates/filter-allowlist.js +17 -9
- package/dist/templates/filter-allowlist.js.map +1 -1
- package/dist/templates/filter-type.d.ts +7 -1
- package/dist/templates/filter-type.d.ts.map +1 -1
- package/dist/templates/filter-type.js +9 -5
- package/dist/templates/filter-type.js.map +1 -1
- package/dist/templates/find-templates.d.ts +4 -0
- package/dist/templates/find-templates.d.ts.map +1 -0
- package/dist/templates/find-templates.js +15 -0
- package/dist/templates/find-templates.js.map +1 -0
- package/dist/templates/fr010-field-mapping.d.ts +2 -0
- package/dist/templates/fr010-field-mapping.d.ts.map +1 -1
- package/dist/templates/fr010-field-mapping.js +10 -6
- package/dist/templates/fr010-field-mapping.js.map +1 -1
- package/dist/templates/inferred-types.d.ts +44 -7
- package/dist/templates/inferred-types.d.ts.map +1 -1
- package/dist/templates/inferred-types.js +107 -16
- package/dist/templates/inferred-types.js.map +1 -1
- package/dist/templates/mermaid-er.d.ts +35 -2
- package/dist/templates/mermaid-er.d.ts.map +1 -1
- package/dist/templates/mermaid-er.js +174 -7
- package/dist/templates/mermaid-er.js.map +1 -1
- package/dist/templates/output-parser.d.ts.map +1 -1
- package/dist/templates/output-parser.js +30 -79
- package/dist/templates/output-parser.js.map +1 -1
- package/dist/templates/output-prompt.d.ts.map +1 -1
- package/dist/templates/output-prompt.js +2 -2
- package/dist/templates/output-prompt.js.map +1 -1
- package/dist/templates/queries-file.d.ts.map +1 -1
- package/dist/templates/queries-file.js +112 -4
- package/dist/templates/queries-file.js.map +1 -1
- package/dist/templates/queries.d.ts +5 -0
- package/dist/templates/queries.d.ts.map +1 -1
- package/dist/templates/queries.js +7 -7
- package/dist/templates/queries.js.map +1 -1
- package/dist/templates/recover-schema-emitter.d.ts +8 -0
- package/dist/templates/recover-schema-emitter.d.ts.map +1 -0
- package/dist/templates/recover-schema-emitter.js +64 -0
- package/dist/templates/recover-schema-emitter.js.map +1 -0
- package/dist/templates/relations-block.js +10 -0
- package/dist/templates/relations-block.js.map +1 -1
- package/dist/templates/render-helper.d.ts.map +1 -1
- package/dist/templates/render-helper.js +4 -4
- package/dist/templates/render-helper.js.map +1 -1
- package/dist/templates/routes-file.d.ts.map +1 -1
- package/dist/templates/routes-file.js +183 -6
- package/dist/templates/routes-file.js.map +1 -1
- package/dist/templates/tph-discriminator.d.ts +56 -0
- package/dist/templates/tph-discriminator.d.ts.map +1 -0
- package/dist/templates/tph-discriminator.js +180 -0
- package/dist/templates/tph-discriminator.js.map +1 -0
- package/dist/templates/value-object-file.d.ts +2 -1
- package/dist/templates/value-object-file.d.ts.map +1 -1
- package/dist/templates/value-object-file.js +32 -4
- package/dist/templates/value-object-file.js.map +1 -1
- package/dist/templates/zod-validators.d.ts +64 -1
- package/dist/templates/zod-validators.d.ts.map +1 -1
- package/dist/templates/zod-validators.js +181 -8
- package/dist/templates/zod-validators.js.map +1 -1
- package/package.json +103 -34
- package/src/column-mapper.ts +25 -8
- package/src/constants.ts +18 -0
- package/src/docs-paths.ts +128 -0
- package/src/enum-import.ts +43 -0
- package/src/enum-shared.ts +95 -0
- package/src/generator-registry.ts +204 -0
- package/src/generator.ts +6 -0
- package/src/generators/api-doc-render.ts +572 -0
- package/src/generators/api-docs-file.ts +146 -0
- package/src/generators/api-field-shape.ts +114 -0
- package/src/generators/api-label.ts +7 -0
- package/src/generators/api-model.ts +1067 -0
- package/src/generators/docs-data-builder.ts +479 -185
- package/src/generators/docs-data.ts +139 -28
- package/src/generators/docs-file.ts +205 -39
- package/src/generators/entity-file.ts +31 -15
- package/src/generators/extractor-file.ts +2 -1
- package/src/generators/field-anchor.ts +24 -0
- package/src/generators/index.ts +8 -1
- package/src/generators/mermaid-er.ts +14 -0
- package/src/generators/output-parser-file.ts +3 -4
- package/src/generators/output-prompt-file.ts +2 -1
- package/src/generators/prompt-render-file.ts +3 -4
- package/src/generators/queries-file.ts +9 -3
- package/src/generators/render-helper-file.ts +2 -1
- package/src/generators/routes-file-hono.ts +5 -1
- package/src/generators/routes-file.ts +7 -1
- package/src/generators/template-doc-builder.ts +306 -0
- package/src/generators/template-doc-data.ts +85 -0
- package/src/generators/template-payload-tree.ts +71 -0
- package/src/generators/template-source-annotate.ts +290 -0
- package/src/generators/template-source-render.ts +203 -0
- package/src/generators/trace-helper-file.ts +301 -0
- package/src/index.ts +55 -4
- package/src/metaobjects-config.ts +117 -2
- package/src/naming.ts +48 -0
- package/src/payload-codegen.ts +14 -3
- package/src/projection/extract-view-spec.ts +49 -30
- package/src/relation-resolver.ts +103 -1
- package/src/render-context.ts +4 -0
- package/src/render-engine/embedded-templates.generated.ts +14 -0
- package/src/render-engine/framework-provider.ts +25 -11
- package/src/runner.ts +21 -0
- package/src/templates/docs-file.ts +2 -9
- package/src/templates/drizzle-schema.ts +31 -1
- package/src/templates/entity-constants.ts +1 -1
- package/src/templates/entity-file.ts +16 -5
- package/src/templates/enums-file.ts +50 -0
- package/src/templates/extract-delegate-emitter.ts +5 -6
- package/src/templates/extractor.ts +68 -38
- package/src/templates/field-meta.ts +0 -6
- package/src/templates/filter-allowlist.ts +17 -10
- package/src/templates/filter-type.ts +8 -6
- package/src/templates/find-templates.ts +15 -0
- package/src/templates/fr010-field-mapping.ts +10 -8
- package/src/templates/inferred-types.ts +108 -18
- package/src/templates/mermaid-er.ts +176 -8
- package/src/templates/output-parser.ts +30 -79
- package/src/templates/output-prompt.ts +2 -1
- package/src/templates/queries-file.ts +132 -3
- package/src/templates/queries.ts +15 -7
- package/src/templates/relations-block.ts +17 -0
- package/src/templates/render-helper.ts +4 -3
- package/src/templates/routes-file.ts +233 -6
- package/src/templates/tph-discriminator.ts +232 -0
- package/src/templates/value-object-file.ts +38 -4
- package/src/templates/zod-validators.ts +204 -7
- package/templates/api/agent-api.md.mustache +30 -0
- package/templates/api/entity-api.md.mustache +69 -0
- package/templates/api/index.md.mustache +21 -0
- package/templates/docs/entity-page.md.mustache +33 -21
- package/templates/docs/template-page.md.mustache +56 -0
- package/src/templates/extract-schema-emitter.ts +0 -111
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-doc-render.js","sourceRoot":"","sources":["../../src/generators/api-doc-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
|
+
import type { GeneratorFactory } from "../generator.js";
|
|
3
|
+
export interface ApiDocsFileOpts {
|
|
4
|
+
filter?: (entity: MetaObject) => boolean;
|
|
5
|
+
target?: string;
|
|
6
|
+
/** Output prefix for all api-docs artifacts. Default `docs/api`. */
|
|
7
|
+
subDir?: string;
|
|
8
|
+
/** When true, the model surface is emitted alongside the api surface (at the
|
|
9
|
+
* docs root), so each api entity page cross-links back to its model page. The
|
|
10
|
+
* href is computed via the shared `surfaceCrossHref` so it resolves in BOTH
|
|
11
|
+
* layouts. ABSENT/false ⇒ default api output byte-identical. */
|
|
12
|
+
modelSurface?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated ADR-0025: `meta docs` is the single door for ALL docs. `apiDocsFile()`
|
|
16
|
+
* stays as the INTERNAL engine of the docs door's api surface — do NOT add it to a
|
|
17
|
+
* `meta gen` config / the generators array. Use `meta docs` (it emits the api surface
|
|
18
|
+
* alongside the model surface). A `meta gen` config that lists it is warned + skipped.
|
|
19
|
+
*/
|
|
20
|
+
export declare const apiDocsFile: GeneratorFactory<ApiDocsFileOpts>;
|
|
21
|
+
//# sourceMappingURL=api-docs-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-docs-file.d.ts","sourceRoot":"","sources":["../../src/generators/api-docs-file.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAa,gBAAgB,EAAe,MAAM,iBAAiB,CAAC;AA2BhF,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;qEAGiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAwEnB,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// apiDocsFile() — the `api-docs` GENERATOR (ADR-0022 Part 3, Tier-1 NATIVE).
|
|
2
|
+
//
|
|
3
|
+
// It documents the PUBLIC API surface the OTHER generators emit for a model —
|
|
4
|
+
// the generated code's own API, in two forms (a human reference + a condensed
|
|
5
|
+
// agent form). It is a thin wiring layer: it REUSES, without re-derivation,
|
|
6
|
+
// • Task-1's buildApiModel() — the accurate-by-construction IR, and
|
|
7
|
+
// • Task-2's renderEntityApiPage / renderApiIndex / renderAgentApi renderers,
|
|
8
|
+
// • the shared docs-paths placement (collision-safe, layout-aware) that
|
|
9
|
+
// docsFile() uses — so multi-package models never silently overwrite a page.
|
|
10
|
+
//
|
|
11
|
+
// Output (all under `docs/api/`):
|
|
12
|
+
// • one `<Node>.md` per entity + template.output unit (the human page),
|
|
13
|
+
// • `README.md` — the consolidated human index (GitHub treats it as landing),
|
|
14
|
+
// • `AGENT-API.md` — the token-frugal agent form.
|
|
15
|
+
//
|
|
16
|
+
// Unlike `docs`/`mermaid-er` (Tier-2 neutral, owned by `meta docs`), `api-docs`
|
|
17
|
+
// is a NATIVE generator: it is REGISTERED in the generator registry (ADR-0022
|
|
18
|
+
// Part 3) — so it appears in `gen --list` and is selectable by its stable name
|
|
19
|
+
// `api-docs`. It is NOT a `meta docs` mode.
|
|
20
|
+
//
|
|
21
|
+
// It is NOT (yet) part of the default `meta gen` scaffold suite: it is
|
|
22
|
+
// registry-listed but not auto-run. Turning it on by default in the scaffold,
|
|
23
|
+
// and surfacing the agent form (AGENT-API.md) to a coding agent via a pointer
|
|
24
|
+
// from the installed `.metaobjects/` context, are tracked as agent-context-
|
|
25
|
+
// coordination follow-ups — deliberately deferred here to avoid colliding with
|
|
26
|
+
// the live agent-context work.
|
|
27
|
+
import { docPageOutputPath, surfaceCrossHref, assertNoDuplicateDocPaths, } from "../docs-paths.js";
|
|
28
|
+
import { projectProvider } from "../render-engine/framework-provider.js";
|
|
29
|
+
import { buildApiModel } from "./api-model.js";
|
|
30
|
+
import { renderEntityApiPage, renderApiIndex, renderAgentApi, } from "./api-doc-render.js";
|
|
31
|
+
// All api-docs artifacts live under this sub-directory of the codegen out dir.
|
|
32
|
+
// Per-unit pages fold further under their package path (package layout); the
|
|
33
|
+
// index + agent form stay at the api root (their links are computed relative to
|
|
34
|
+
// it via the same docPageHref the renderers use).
|
|
35
|
+
//
|
|
36
|
+
// The DEFAULT prefix is `docs/api` — byte-identical to the historical `meta gen`
|
|
37
|
+
// behaviour + goldens. The unified `meta docs` command (which writes everything
|
|
38
|
+
// under one docs root, `./docs`) overrides it via `subDir:'api'` so the api
|
|
39
|
+
// surface emits `api/<Node>.md` rather than doubling to `./docs/docs/api`.
|
|
40
|
+
const DEFAULT_API_DIR = "docs/api";
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated ADR-0025: `meta docs` is the single door for ALL docs. `apiDocsFile()`
|
|
43
|
+
* stays as the INTERNAL engine of the docs door's api surface — do NOT add it to a
|
|
44
|
+
* `meta gen` config / the generators array. Use `meta docs` (it emits the api surface
|
|
45
|
+
* alongside the model surface). A `meta gen` config that lists it is warned + skipped.
|
|
46
|
+
*/
|
|
47
|
+
export const apiDocsFile = function apiDocsFile(opts) {
|
|
48
|
+
const generator = {
|
|
49
|
+
name: "api-docs",
|
|
50
|
+
generate(ctx) {
|
|
51
|
+
const provider = projectProvider(ctx.projectRoot ?? process.cwd());
|
|
52
|
+
const layout = ctx.config.outputLayout ?? "flat";
|
|
53
|
+
// Per-call output prefix. Default `docs/api`; `meta docs` passes `api`.
|
|
54
|
+
const apiDir = opts?.subDir ?? DEFAULT_API_DIR;
|
|
55
|
+
const indexFilename = `${apiDir}/README.md`;
|
|
56
|
+
const agentFilename = `${apiDir}/AGENT-API.md`;
|
|
57
|
+
// ONE ApiModel feeds every form (Task-1 builder; Task-2 renderers). The
|
|
58
|
+
// pkMap is reused from the run's renderContext when present (the real gen
|
|
59
|
+
// run always provides it) and derived otherwise.
|
|
60
|
+
// Auto-detect: document the OPT-IN Hono CRUD surface iff the Hono routes
|
|
61
|
+
// generator is actually in the run. The runner aggregates each generator's
|
|
62
|
+
// `emitsHonoRoutes` marker into ctx.config.includeHonoRoutes, so api-docs
|
|
63
|
+
// "just works" — it documents Hono exactly when `routesFileHono` is wired,
|
|
64
|
+
// and omits it (Fastify-only) otherwise. No explicit opt needed.
|
|
65
|
+
const model = buildApiModel(ctx.loadedRoot, {
|
|
66
|
+
loadedRoot: ctx.loadedRoot,
|
|
67
|
+
outputLayout: layout,
|
|
68
|
+
includeHonoRoutes: ctx.config.includeHonoRoutes ?? false,
|
|
69
|
+
...(ctx.renderContext?.pkMap !== undefined && { pkMap: ctx.renderContext.pkMap }),
|
|
70
|
+
});
|
|
71
|
+
// Track (path, fqn) for the SAME hard collision backstop docsFile() uses —
|
|
72
|
+
// two units that resolve to one path (flat, cross-package short-name clash)
|
|
73
|
+
// throw rather than silently overwrite.
|
|
74
|
+
const placements = [];
|
|
75
|
+
// Per-unit human page. Placement is collision-safe via docPageOutputPath
|
|
76
|
+
// off {name, effective package}, prefixed under the api dir; the index
|
|
77
|
+
// (renderApiIndex) computes its links from the SAME {name, package}, so a
|
|
78
|
+
// link always points at the page's real location in BOTH layouts.
|
|
79
|
+
const files = model.units.map((unit) => {
|
|
80
|
+
const node = { name: unit.node, package: unit.package };
|
|
81
|
+
const path = `${apiDir}/${docPageOutputPath(layout, node)}`;
|
|
82
|
+
placements.push({ path, fqn: unit.package ? `${unit.package}::${unit.node}` : unit.node });
|
|
83
|
+
// Cross-link back to the sibling model page, when emitted. The model page
|
|
84
|
+
// lives at the docs root at `<placement>`; this api page lives at
|
|
85
|
+
// `<apiDir>/<placement>`. The href is derived from the SAME
|
|
86
|
+
// docPageOutputPath placement via surfaceCrossHref so it resolves in both
|
|
87
|
+
// layouts. ABSENT otherwise.
|
|
88
|
+
const modelPageHref = opts?.modelSurface
|
|
89
|
+
? surfaceCrossHref(path, docPageOutputPath(layout, node))
|
|
90
|
+
: undefined;
|
|
91
|
+
return { path, content: renderEntityApiPage(unit, provider, modelPageHref) };
|
|
92
|
+
});
|
|
93
|
+
// The consolidated human index (README.md) + the condensed agent form,
|
|
94
|
+
// both at the api root. Only emitted when at least one unit page exists.
|
|
95
|
+
if (files.length > 0) {
|
|
96
|
+
placements.push({ path: indexFilename, fqn: "<the api-docs index page>" });
|
|
97
|
+
placements.push({ path: agentFilename, fqn: "<the api-docs agent form>" });
|
|
98
|
+
files.unshift({ path: indexFilename, content: renderApiIndex(model, layout, provider) }, { path: agentFilename, content: renderAgentApi(model, provider) });
|
|
99
|
+
}
|
|
100
|
+
// Hard backstop against silent overwrite (ALL layouts): throw naming both
|
|
101
|
+
// colliding FQNs + the path. Same guard docsFile() reuses.
|
|
102
|
+
assertNoDuplicateDocPaths(placements);
|
|
103
|
+
return files;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
if (opts?.filter)
|
|
107
|
+
generator.filter = opts.filter;
|
|
108
|
+
if (opts?.target)
|
|
109
|
+
generator.target = opts.target;
|
|
110
|
+
return generator;
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=api-docs-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-docs-file.js","sourceRoot":"","sources":["../../src/generators/api-docs-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { MetaObject, MetaRoot } from "@metaobjectsdev/metadata";
|
|
2
|
+
/** One documented field in a model / payload shape. Structured so BOTH renderers
|
|
3
|
+
* (the human field table + the agent inline shape) format it without re-deriving. */
|
|
4
|
+
export interface FieldShape {
|
|
5
|
+
/** The field name (the property key). */
|
|
6
|
+
name: string;
|
|
7
|
+
/** The TS type expression, e.g. `string`, `number`, `"active" | "archived"`,
|
|
8
|
+
* `Address[]`. Enum unions are inlined (self-contained for an agent). */
|
|
9
|
+
type: string;
|
|
10
|
+
/** Whether the property is optional in this shape (`name?: T`). */
|
|
11
|
+
optional: boolean;
|
|
12
|
+
/** A short note, e.g. `pinned "Bridge"` (TPH discriminator) or `server-set`
|
|
13
|
+
* (@autoSet). Undefined when there is nothing extra to say. */
|
|
14
|
+
note?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The entity MODEL field shape — every field, with the value-object interface's
|
|
18
|
+
* TS type and the docs nullable rule (optional iff not required and not the PK).
|
|
19
|
+
* Mirrors `InferSelectModel` field-presence; the PK is reported required.
|
|
20
|
+
*/
|
|
21
|
+
export declare function modelFieldShapes(obj: MetaObject): FieldShape[];
|
|
22
|
+
/** The create-payload (InsertSchema) field shape — what `create<Name>` / POST
|
|
23
|
+
* accepts. */
|
|
24
|
+
export declare function createFieldShapes(obj: MetaObject): FieldShape[];
|
|
25
|
+
/** The update-payload (UpdateSchema) field shape — what `update<Name>` / PATCH
|
|
26
|
+
* accepts (typically all-optional partial). */
|
|
27
|
+
export declare function updateFieldShapes(obj: MetaObject): FieldShape[];
|
|
28
|
+
/**
|
|
29
|
+
* The extractor PAYLOAD field shape — the field interface of the value object
|
|
30
|
+
* `extract<Name>` returns (the `@payloadRef` target). Same `fieldTsTypeString`
|
|
31
|
+
* mapping + `isFieldRequired` optionality the VO interface emitter uses, so it
|
|
32
|
+
* matches the emitted payload type. Returns undefined when the ref does not
|
|
33
|
+
* resolve to a loaded object.
|
|
34
|
+
*/
|
|
35
|
+
export declare function payloadFieldShapes(root: MetaRoot, payloadRef: string): FieldShape[] | undefined;
|
|
36
|
+
/** Format a list of field shapes as a compact inline TS object type, e.g.
|
|
37
|
+
* `{ name: string; status?: "active" | "archived" }`. Empty list → `{}`. */
|
|
38
|
+
export declare function inlineShape(fields: FieldShape[]): string;
|
|
39
|
+
//# sourceMappingURL=api-field-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-field-shape.d.ts","sourceRoot":"","sources":["../../src/generators/api-field-shape.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAa,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAShF;sFACsF;AACtF,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb;8EAC0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB;oEACgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,CAW9D;AAuBD;eACe;AACf,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,CAE/D;AAED;gDACgD;AAChD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS,CAI/F;AAED;6EAC6E;AAC7E,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAIxD"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// api-field-shape.ts — the field SHAPES (name + TS type + optionality) the
|
|
2
|
+
// api-docs renderers attach to a unit's model / create-payload / update-payload /
|
|
3
|
+
// extractor-payload symbols. ACCURATE BY CONSTRUCTION: every shape REUSES the
|
|
4
|
+
// real generators' own field walks so the documented fields can never drift from
|
|
5
|
+
// the emitted code (the api-docs accuracy gate enforces the field-set match):
|
|
6
|
+
//
|
|
7
|
+
// • model fields → entity-file's inferred type. The TS type comes from
|
|
8
|
+
// `fieldTsTypeString` (the SINGLE source of truth the value-object interface
|
|
9
|
+
// emitter uses) and the optional/nullable rule from `isFieldRequired` (the
|
|
10
|
+
// SAME rule the docs Storage/Constraints nullable column uses).
|
|
11
|
+
// • create-payload → `insertSchemaFields` (the EXACT field set + optionality
|
|
12
|
+
// the zod InsertSchema emitter walks: auto-gen PK omitted, @readOnly omitted,
|
|
13
|
+
// TPH discriminator pinned, @autoSet optional, else `fieldWillBeOptional`).
|
|
14
|
+
// • update-payload → `updateSchemaFields` (the UpdateSchema walk: TPH
|
|
15
|
+
// discriminator + @autoSet-onCreate omitted, everything else optional).
|
|
16
|
+
// • extractor-payload → the referenced @payloadRef value-object's field
|
|
17
|
+
// interface — the type `extract<Name>` returns — via the SAME
|
|
18
|
+
// `fieldTsTypeString` mapping the VO interface emitter uses.
|
|
19
|
+
import { fieldTsTypeString } from "../templates/inferred-types.js";
|
|
20
|
+
import { insertSchemaFields, updateSchemaFields, } from "../templates/zod-validators.js";
|
|
21
|
+
import { isFieldRequired } from "./docs-data-builder.js";
|
|
22
|
+
/**
|
|
23
|
+
* The entity MODEL field shape — every field, with the value-object interface's
|
|
24
|
+
* TS type and the docs nullable rule (optional iff not required and not the PK).
|
|
25
|
+
* Mirrors `InferSelectModel` field-presence; the PK is reported required.
|
|
26
|
+
*/
|
|
27
|
+
export function modelFieldShapes(obj) {
|
|
28
|
+
const pkNames = new Set(obj.primaryIdentity()?.fields ?? []);
|
|
29
|
+
return obj.fields().map((field) => {
|
|
30
|
+
const isPk = pkNames.has(field.name);
|
|
31
|
+
const required = isPk || isFieldRequired(field);
|
|
32
|
+
return {
|
|
33
|
+
name: field.name,
|
|
34
|
+
type: fieldTsTypeString(obj.name, field),
|
|
35
|
+
optional: !required,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** Resolve a schema-field walk (insert/update) into a documented shape by
|
|
40
|
+
* pairing each schema field with its TS type (same `fieldTsTypeString` map). A
|
|
41
|
+
* TPH-pinned discriminator field documents the literal as its type. */
|
|
42
|
+
function shapesFromSchemaFields(obj, walk) {
|
|
43
|
+
const fieldByName = new Map(obj.fields().map((f) => [f.name, f]));
|
|
44
|
+
return walk.map((sf) => {
|
|
45
|
+
const field = fieldByName.get(sf.name);
|
|
46
|
+
let type = field !== undefined ? fieldTsTypeString(obj.name, field) : "unknown";
|
|
47
|
+
let note;
|
|
48
|
+
if (sf.pinnedLiteral !== undefined) {
|
|
49
|
+
type = JSON.stringify(sf.pinnedLiteral);
|
|
50
|
+
note = `pinned ${type}`;
|
|
51
|
+
}
|
|
52
|
+
else if (sf.autoSet === true) {
|
|
53
|
+
note = "server-set";
|
|
54
|
+
}
|
|
55
|
+
const shape = { name: sf.name, type, optional: sf.optional };
|
|
56
|
+
if (note !== undefined)
|
|
57
|
+
shape.note = note;
|
|
58
|
+
return shape;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/** The create-payload (InsertSchema) field shape — what `create<Name>` / POST
|
|
62
|
+
* accepts. */
|
|
63
|
+
export function createFieldShapes(obj) {
|
|
64
|
+
return shapesFromSchemaFields(obj, insertSchemaFields(obj));
|
|
65
|
+
}
|
|
66
|
+
/** The update-payload (UpdateSchema) field shape — what `update<Name>` / PATCH
|
|
67
|
+
* accepts (typically all-optional partial). */
|
|
68
|
+
export function updateFieldShapes(obj) {
|
|
69
|
+
return shapesFromSchemaFields(obj, updateSchemaFields(obj));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The extractor PAYLOAD field shape — the field interface of the value object
|
|
73
|
+
* `extract<Name>` returns (the `@payloadRef` target). Same `fieldTsTypeString`
|
|
74
|
+
* mapping + `isFieldRequired` optionality the VO interface emitter uses, so it
|
|
75
|
+
* matches the emitted payload type. Returns undefined when the ref does not
|
|
76
|
+
* resolve to a loaded object.
|
|
77
|
+
*/
|
|
78
|
+
export function payloadFieldShapes(root, payloadRef) {
|
|
79
|
+
const vo = root.findObject(payloadRef);
|
|
80
|
+
if (vo === undefined)
|
|
81
|
+
return undefined;
|
|
82
|
+
return modelFieldShapes(vo);
|
|
83
|
+
}
|
|
84
|
+
/** Format a list of field shapes as a compact inline TS object type, e.g.
|
|
85
|
+
* `{ name: string; status?: "active" | "archived" }`. Empty list → `{}`. */
|
|
86
|
+
export function inlineShape(fields) {
|
|
87
|
+
if (fields.length === 0)
|
|
88
|
+
return "{}";
|
|
89
|
+
const parts = fields.map((f) => `${f.name}${f.optional ? "?" : ""}: ${f.type}`);
|
|
90
|
+
return `{ ${parts.join("; ")} }`;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=api-field-shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-field-shape.js","sourceRoot":"","sources":["../../src/generators/api-field-shape.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,kFAAkF;AAClF,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,+EAA+E;AAC/E,oEAAoE;AACpE,mFAAmF;AACnF,kFAAkF;AAClF,gFAAgF;AAChF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,kEAAkE;AAClE,iEAAiE;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAiBzD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAgB,EAAc,EAAE;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;YACxC,QAAQ,EAAE,CAAC,QAAQ;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;wEAEwE;AACxE,SAAS,sBAAsB,CAAC,GAAe,EAAE,IAAwB;IACvE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAc,EAAE;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,IAAI,IAAwB,CAAC;QAC7B,IAAI,EAAE,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YACxC,IAAI,GAAG,UAAU,IAAI,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAe,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC;QACzE,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;eACe;AACf,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC/C,OAAO,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;gDACgD;AAChD,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAC/C,OAAO,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc,EAAE,UAAkB;IACnE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-label.d.ts","sourceRoot":"","sources":["../../src/generators/api-label.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const LABELS = {
|
|
2
|
+
ts: "TypeScript", java: "Java", kotlin: "Kotlin", csharp: "C#", python: "Python",
|
|
3
|
+
};
|
|
4
|
+
/** Human label for an api-surface language key. Unknown → capitalized verbatim. */
|
|
5
|
+
export function apiLabel(lang) {
|
|
6
|
+
return LABELS[lang] ?? (lang.length ? lang[0].toUpperCase() + lang.slice(1) : lang);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=api-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-label.js","sourceRoot":"","sources":["../../src/generators/api-label.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAA2B;IACrC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ;CACjF,CAAC;AACF,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type MetaRoot } from "@metaobjectsdev/metadata";
|
|
2
|
+
import { type RelationMap } from "../relation-resolver.js";
|
|
3
|
+
import { type OutputLayout } from "../import-path.js";
|
|
4
|
+
import type { PkInfo } from "../pk-resolver.js";
|
|
5
|
+
import { type FieldShape } from "./api-field-shape.js";
|
|
6
|
+
export type ApiSymbolKind = "model" | "data-access" | "rest" | "validation" | "extractor" | "render" | "relation" | "callable" | "rest-hono" | "prompt";
|
|
7
|
+
export interface ApiSymbol {
|
|
8
|
+
/** The exact symbol the real generator emits (function/type/schema name, or
|
|
9
|
+
* a "METHOD /path" for a REST endpoint). Never invented. */
|
|
10
|
+
name: string;
|
|
11
|
+
kind: ApiSymbolKind;
|
|
12
|
+
/**
|
|
13
|
+
* The module specifier an adopter imports this symbol from — the generated
|
|
14
|
+
* file's path WITHOUT the `.ts` extension, exactly as the EMITTING generator
|
|
15
|
+
* writes it (so it can't drift): e.g. `Product.queries`, `Product`,
|
|
16
|
+
* `ProductSummary.extractor`, `ProductSummary.render`. Package layout folds
|
|
17
|
+
* entity-derived modules under the package path (`acme/shop/Product.queries`)
|
|
18
|
+
* iff the emitting generator does (it keys off the entity's OWN package).
|
|
19
|
+
*
|
|
20
|
+
* REST symbols are NOT importable functions — their importPath is the entity's
|
|
21
|
+
* routes MODULE; `registrar` carries the camelCase `<entity>Routes` handler an
|
|
22
|
+
* adopter mounts (`await <registrar>(fastify)`) to wire the endpoints.
|
|
23
|
+
*/
|
|
24
|
+
importPath: string;
|
|
25
|
+
/** REST-only: the route-registrar function exported from `importPath` that an
|
|
26
|
+
* adopter mounts to wire the endpoints (`<entity>Routes`). Undefined for
|
|
27
|
+
* importable-symbol kinds (their `name` IS the import). */
|
|
28
|
+
registrar?: string;
|
|
29
|
+
/** A human-readable one-line signature (composed; the param/return SHAPE
|
|
30
|
+
* mirrors the generated code). For REST symbols this is "METHOD /path". */
|
|
31
|
+
signature: string;
|
|
32
|
+
/** Parameter descriptions, when meaningful. */
|
|
33
|
+
params?: string[];
|
|
34
|
+
/** Return-type description (e.g. "Product | null", "string", "EmailDocument"). */
|
|
35
|
+
returns?: string;
|
|
36
|
+
/** When/why the symbol throws, if it does. */
|
|
37
|
+
throws?: string;
|
|
38
|
+
/** One-line "what you use this for" prose. */
|
|
39
|
+
usage: string;
|
|
40
|
+
/** Optional usage example snippet. */
|
|
41
|
+
example?: string;
|
|
42
|
+
/**
|
|
43
|
+
* The field SHAPE this symbol's payload carries — name + TS type + optionality
|
|
44
|
+
* per field — so both renderers (human field table + agent inline shape) can
|
|
45
|
+
* show WHAT fields to pass, not just the type NAME. Accurate by construction:
|
|
46
|
+
* derived by REUSING the real generators' field walks (api-field-shape.ts), so
|
|
47
|
+
* the api-docs accuracy gate can assert the documented field set == the emitted
|
|
48
|
+
* one. Attached to:
|
|
49
|
+
* • model → the entity's inferred fields (model line / GET response);
|
|
50
|
+
* • create payload → the InsertSchema field set (create<Name> / POST body);
|
|
51
|
+
* • update payload → the UpdateSchema field set (update<Name> / PATCH body);
|
|
52
|
+
* • extractor payload → the @payloadRef VO interface (extract<Name>'s return).
|
|
53
|
+
* Undefined for symbols with no documented payload shape (e.g. deleteById, list).
|
|
54
|
+
*/
|
|
55
|
+
fields?: FieldShape[];
|
|
56
|
+
}
|
|
57
|
+
export interface ApiUnitDoc {
|
|
58
|
+
/** The metadata node name (entity or template). */
|
|
59
|
+
node: string;
|
|
60
|
+
/** The node's EFFECTIVE package (own package OR the file-default captured at
|
|
61
|
+
* parse time), used to place the unit's doc page + compute collision-safe
|
|
62
|
+
* links to it in package layout. Undefined for a package-less node. */
|
|
63
|
+
package?: string | undefined;
|
|
64
|
+
nodeKind: "entity" | "template";
|
|
65
|
+
symbols: ApiSymbol[];
|
|
66
|
+
/**
|
|
67
|
+
* ONE worked, runnable example per unit — a concrete call site an agent (or a
|
|
68
|
+
* human) can copy. ACCURATE BY CONSTRUCTION: it is composed from the SAME
|
|
69
|
+
* symbol NAMES + importPaths this builder already documents (never invented)
|
|
70
|
+
* and the SAME field SHAPES (T2) attached to the unit's payload symbols, with
|
|
71
|
+
* example VALUES derived from each field's TS type (string→"…", number→1,
|
|
72
|
+
* enum→a real member, …) — not entity-hardcoded. The body lines (without
|
|
73
|
+
* imports) are what the agent form shows; the human page wraps the full block
|
|
74
|
+
* (imports + body) in a fenced ```ts.
|
|
75
|
+
*
|
|
76
|
+
* For an ENTITY: a create→find→update→delete flow over the entity's own
|
|
77
|
+
* CRUD helpers. For a TEMPLATE: an extract (parse LLM text) and/or render
|
|
78
|
+
* (produce the document) call. Undefined when a unit has no runnable surface
|
|
79
|
+
* (e.g. a bare value-object model with no queries/template).
|
|
80
|
+
*/
|
|
81
|
+
example?: UnitExample;
|
|
82
|
+
}
|
|
83
|
+
/** A worked example for a unit: the imports it needs (one `import { … } from "…"`
|
|
84
|
+
* per module, in first-appearance order) + the body statements. Split so the
|
|
85
|
+
* human page can render a full fenced block and the agent form can show a tight
|
|
86
|
+
* body. */
|
|
87
|
+
export interface UnitExample {
|
|
88
|
+
/** `import { a, b } from "Mod"` lines, deduped by module, reusing the symbols'
|
|
89
|
+
* own importPaths (never re-derived). */
|
|
90
|
+
imports: string[];
|
|
91
|
+
/** The worked-flow statements (no imports), e.g.
|
|
92
|
+
* `const created = await createProduct(db, { name: "…" });`. */
|
|
93
|
+
body: string[];
|
|
94
|
+
}
|
|
95
|
+
export interface ApiModel {
|
|
96
|
+
units: ApiUnitDoc[];
|
|
97
|
+
}
|
|
98
|
+
/** Minimal context the builder needs. Accepts a full RenderContext OR just the
|
|
99
|
+
* loaded root (pkMap is derived when absent). Keeping it structural means the
|
|
100
|
+
* builder runs both inside a gen run and from a thin docs entrypoint. */
|
|
101
|
+
export interface ApiModelContext {
|
|
102
|
+
loadedRoot: MetaRoot;
|
|
103
|
+
pkMap?: Map<string, PkInfo>;
|
|
104
|
+
/** The relation map (relation-resolver) the entity file's relations() block is
|
|
105
|
+
* derived from. Derived from `loadedRoot` when absent — keeps the builder
|
|
106
|
+
* callable from a thin docs entrypoint. */
|
|
107
|
+
relationMap?: RelationMap;
|
|
108
|
+
/** The output layout the codegen run uses. The per-symbol `importPath` mirrors
|
|
109
|
+
* the emitting generator's own path computation under this layout (flat →
|
|
110
|
+
* `Product.queries`; package → folded under the entity's package path iff the
|
|
111
|
+
* generator folds). Defaults to "flat" (today's byte-identical placement). */
|
|
112
|
+
outputLayout?: OutputLayout;
|
|
113
|
+
/** Whether to ALSO document the OPT-IN Hono CRUD variant (routesFileHono).
|
|
114
|
+
* Hono is not in the default generator suite — it is an alternative wired by
|
|
115
|
+
* the adopter — so its symbols are documented ONLY when the adopter opts in
|
|
116
|
+
* (mirrors "match the generator's filters": don't over-document a surface the
|
|
117
|
+
* run didn't configure). The Fastify REST surface is always documented (it is
|
|
118
|
+
* the default-suite routes generator). Defaults to false. */
|
|
119
|
+
includeHonoRoutes?: boolean;
|
|
120
|
+
}
|
|
121
|
+
export declare function buildApiModel(root: MetaRoot, ctx: ApiModelContext): ApiModel;
|
|
122
|
+
//# sourceMappingURL=api-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-model.d.ts","sourceRoot":"","sources":["../../src/generators/api-model.ts"],"names":[],"mappings":"AAkFA,OAAO,EACL,KAAK,QAAQ,EAed,MAAM,0BAA0B,CAAC;AAkBlC,OAAO,EAAwC,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEjG,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,aAAa,GACb,MAAM,GACN,YAAY,GACZ,WAAW,GACX,QAAQ,GAER,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,WAAW,SAAS;IACxB;iEAC6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;gEAE4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;gFAC4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb;;4EAEwE;IACxE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED;;;YAGY;AACZ,MAAM,WAAW,WAAW;IAC1B;8CAC0C;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;qEACiE;IACjE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;0EAE0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B;;gDAE4C;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;mFAG+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;kEAK8D;IAC9D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,GAAG,QAAQ,CAwB5E"}
|