@metaobjectsdev/codegen-ts 0.9.0 → 0.11.0-rc.1
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 +12 -6
- package/dist/column-mapper.d.ts.map +1 -1
- package/dist/column-mapper.js +68 -28
- 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 +439 -167
- 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/import-path.d.ts +18 -0
- package/dist/import-path.d.ts.map +1 -1
- package/dist/import-path.js +21 -0
- package/dist/import-path.js.map +1 -1
- 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 +101 -2
- package/dist/metaobjects-config.d.ts.map +1 -1
- package/dist/metaobjects-config.js +46 -0
- package/dist/metaobjects-config.js.map +1 -1
- package/dist/naming.d.ts +39 -2
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +52 -3
- package/dist/naming.js.map +1 -1
- package/dist/payload-codegen.d.ts.map +1 -1
- package/dist/payload-codegen.js +14 -6
- package/dist/payload-codegen.js.map +1 -1
- package/dist/pk-resolver.d.ts.map +1 -1
- package/dist/pk-resolver.js +4 -2
- package/dist/pk-resolver.js.map +1 -1
- package/dist/projection/extract-view-spec.d.ts.map +1 -1
- package/dist/projection/extract-view-spec.js +52 -26
- 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 +25 -2
- package/dist/render-context.d.ts.map +1 -1
- package/dist/render-context.js +7 -0
- 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 +20 -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 +72 -23
- 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 +3 -3
- 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 +6 -8
- package/dist/templates/extract-delegate-emitter.js.map +1 -1
- package/dist/templates/extractor.d.ts.map +1 -1
- package/dist/templates/extractor.js +58 -41
- package/dist/templates/extractor.js.map +1 -1
- package/dist/templates/field-meta.d.ts.map +1 -1
- package/dist/templates/field-meta.js +2 -6
- 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 +18 -10
- package/dist/templates/filter-allowlist.js.map +1 -1
- package/dist/templates/filter-shared.js +2 -2
- package/dist/templates/filter-shared.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 +10 -6
- 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 +15 -11
- 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 +121 -19
- 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-format-spec-emitter.js +1 -1
- package/dist/templates/output-format-spec-emitter.js.map +1 -1
- package/dist/templates/output-parser.d.ts.map +1 -1
- package/dist/templates/output-parser.js +31 -80
- 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 +113 -5
- package/dist/templates/queries-file.js.map +1 -1
- package/dist/templates/queries.d.ts +7 -2
- package/dist/templates/queries.d.ts.map +1 -1
- package/dist/templates/queries.js +15 -15
- package/dist/templates/queries.js.map +1 -1
- package/dist/templates/relations-block.d.ts.map +1 -1
- package/dist/templates/relations-block.js +12 -3
- 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 +5 -5
- package/dist/templates/render-helper.js.map +1 -1
- package/dist/templates/routes-file-hono.d.ts.map +1 -1
- package/dist/templates/routes-file-hono.js +1 -2
- package/dist/templates/routes-file-hono.js.map +1 -1
- package/dist/templates/routes-file.d.ts.map +1 -1
- package/dist/templates/routes-file.js +184 -7
- 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 +33 -5
- package/dist/templates/value-object-file.js.map +1 -1
- package/dist/templates/zod-validators.d.ts +65 -2
- package/dist/templates/zod-validators.d.ts.map +1 -1
- package/dist/templates/zod-validators.js +202 -22
- package/dist/templates/zod-validators.js.map +1 -1
- package/package.json +103 -34
- package/src/column-mapper.ts +79 -32
- 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 +483 -189
- 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/import-path.ts +28 -0
- package/src/index.ts +55 -4
- package/src/metaobjects-config.ts +146 -2
- package/src/naming.ts +73 -3
- package/src/payload-codegen.ts +16 -5
- package/src/pk-resolver.ts +4 -2
- package/src/projection/extract-view-spec.ts +50 -31
- package/src/relation-resolver.ts +103 -1
- package/src/render-context.ts +32 -2
- package/src/render-engine/embedded-templates.generated.ts +14 -0
- package/src/render-engine/framework-provider.ts +25 -11
- package/src/runner.ts +24 -0
- package/src/templates/docs-file.ts +2 -9
- package/src/templates/drizzle-schema.ts +80 -28
- package/src/templates/entity-constants.ts +3 -3
- package/src/templates/entity-file.ts +16 -5
- package/src/templates/enums-file.ts +50 -0
- package/src/templates/extract-delegate-emitter.ts +6 -7
- package/src/templates/extractor.ts +70 -40
- package/src/templates/field-meta.ts +1 -7
- package/src/templates/filter-allowlist.ts +18 -11
- package/src/templates/filter-shared.ts +2 -2
- package/src/templates/filter-type.ts +9 -7
- package/src/templates/find-templates.ts +15 -0
- package/src/templates/fr010-field-mapping.ts +15 -13
- package/src/templates/inferred-types.ts +122 -21
- package/src/templates/mermaid-er.ts +176 -8
- package/src/templates/output-format-spec-emitter.ts +1 -1
- package/src/templates/output-parser.ts +31 -80
- package/src/templates/output-prompt.ts +2 -1
- package/src/templates/queries-file.ts +133 -4
- package/src/templates/queries.ts +21 -15
- package/src/templates/relations-block.ts +19 -3
- package/src/templates/render-helper.ts +5 -4
- package/src/templates/routes-file-hono.ts +1 -2
- package/src/templates/routes-file.ts +234 -7
- package/src/templates/tph-discriminator.ts +232 -0
- package/src/templates/value-object-file.ts +39 -5
- package/src/templates/zod-validators.ts +225 -21
- 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/dist/templates/extract-schema-emitter.d.ts +0 -8
- package/dist/templates/extract-schema-emitter.d.ts.map +0 -1
- package/dist/templates/extract-schema-emitter.js +0 -81
- package/dist/templates/extract-schema-emitter.js.map +0 -1
- package/src/templates/extract-schema-emitter.ts +0 -111
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// FR-019 — shared + externally-provided enum resolution.
|
|
2
|
+
//
|
|
3
|
+
// A reusable enum is a ROOT/package-level abstract `field.enum` (a sibling of
|
|
4
|
+
// object.entity) that concrete entity fields `extends`. Per ADR-0026 such a
|
|
5
|
+
// declaration is materialized ONCE per port and referenced, instead of being
|
|
6
|
+
// redeclared inline in every consuming entity file.
|
|
7
|
+
//
|
|
8
|
+
// Two cases on the abstract declaration:
|
|
9
|
+
// • non-@provided → metaobjects MATERIALIZES the type once (a shared module),
|
|
10
|
+
// and consuming fields reference it.
|
|
11
|
+
// • @provided: true → metaobjects emits NOTHING for the type; consuming fields
|
|
12
|
+
// reference an existing hand-written/third-party type, resolved via per-port
|
|
13
|
+
// codegen config (the namespace/module never lives in metadata — ADR-0001).
|
|
14
|
+
//
|
|
15
|
+
// The common inline case (a concrete `field.enum` with @values declared directly,
|
|
16
|
+
// no root-extends) is UNCHANGED — it stays a per-entity `<Entity><Field>` union.
|
|
17
|
+
import { FIELD_SUBTYPE_ENUM, FIELD_ATTR_PROVIDED, TYPE_METADATA, } from "@metaobjectsdev/metadata";
|
|
18
|
+
import { toPascalCase } from "./naming.js";
|
|
19
|
+
import { enumValues } from "./enum-meta.js";
|
|
20
|
+
/**
|
|
21
|
+
* The root-level abstract `field.enum` a concrete enum field resolves to via
|
|
22
|
+
* `extends`, or undefined when the field is an inline enum (no root-abstract
|
|
23
|
+
* super). A super qualifies only when it is (a) an abstract field, AND (b) a
|
|
24
|
+
* direct child of the metadata root (a package-level declaration) — NOT an
|
|
25
|
+
* abstract field nested inside another object.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveSharedEnumDecl(field) {
|
|
28
|
+
if (field.subType !== FIELD_SUBTYPE_ENUM)
|
|
29
|
+
return undefined;
|
|
30
|
+
const sup = field.resolveSuper();
|
|
31
|
+
if (sup === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
if (!sup.isAbstract)
|
|
34
|
+
return undefined;
|
|
35
|
+
// The declaration must sit at the package/root level (sibling of object.entity),
|
|
36
|
+
// i.e. its parent node is the metadata root.
|
|
37
|
+
const parent = sup.parent;
|
|
38
|
+
if (parent === undefined || parent.type !== TYPE_METADATA)
|
|
39
|
+
return undefined;
|
|
40
|
+
return sup;
|
|
41
|
+
}
|
|
42
|
+
/** The shared-enum descriptor a field resolves to, or undefined for inline enums. */
|
|
43
|
+
export function sharedEnumForField(field) {
|
|
44
|
+
const decl = resolveSharedEnumDecl(field);
|
|
45
|
+
if (decl === undefined)
|
|
46
|
+
return undefined;
|
|
47
|
+
const values = enumValues(field);
|
|
48
|
+
if (values === undefined)
|
|
49
|
+
return undefined;
|
|
50
|
+
return {
|
|
51
|
+
name: toPascalCase(decl.name),
|
|
52
|
+
values,
|
|
53
|
+
provided: decl.attr(FIELD_ATTR_PROVIDED) === true,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* All shared (root-level abstract) enum declarations in the loaded root that are
|
|
58
|
+
* actually CONSUMED by at least one concrete entity field — keyed by the
|
|
59
|
+
* materialized type name. A declaration nobody extends is not materialized (no
|
|
60
|
+
* dangling type). Deterministic order: first-consumption order across entities.
|
|
61
|
+
*/
|
|
62
|
+
export function collectSharedEnums(root) {
|
|
63
|
+
const out = new Map();
|
|
64
|
+
for (const entity of root.objects()) {
|
|
65
|
+
for (const field of entity.fields()) {
|
|
66
|
+
const shared = sharedEnumForField(field);
|
|
67
|
+
if (shared === undefined)
|
|
68
|
+
continue;
|
|
69
|
+
if (!out.has(shared.name))
|
|
70
|
+
out.set(shared.name, shared);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
/** The shared enums that metaobjects MATERIALIZES (non-@provided, consumed). */
|
|
76
|
+
export function materializedSharedEnums(root) {
|
|
77
|
+
return [...collectSharedEnums(root).values()].filter((e) => !e.provided);
|
|
78
|
+
}
|
|
79
|
+
/** Whether any shared enum (materialized or provided) is consumed in the model. */
|
|
80
|
+
export function hasSharedEnums(root) {
|
|
81
|
+
return collectSharedEnums(root).size > 0;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=enum-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-shared.js","sourceRoot":"","sources":["../src/enum-shared.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,oDAAoD;AACpD,EAAE;AACF,yCAAyC;AACzC,gFAAgF;AAChF,yCAAyC;AACzC,iFAAiF;AACjF,iFAAiF;AACjF,gFAAgF;AAChF,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AAGjF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAY5C;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgB;IACpD,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACtC,iFAAiF;IACjF,6CAA6C;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI;KAClD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CAAC,IAAc;IACpD,OAAO,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Generator } from "./generator.js";
|
|
2
|
+
export type GeneratorTier = "native" | "neutral";
|
|
3
|
+
export interface GeneratorRegistryEntry {
|
|
4
|
+
/** Stable, cross-port-consistent id. Equals the registry map key. */
|
|
5
|
+
name: string;
|
|
6
|
+
/** One-line (no newline) human description for `--list`. */
|
|
7
|
+
description: string;
|
|
8
|
+
/** "native" = recommended `meta gen` suite; "neutral" = `meta docs`-owned. */
|
|
9
|
+
tier: GeneratorTier;
|
|
10
|
+
/** Constructs the generator with sensible defaults. Calling it must not throw. */
|
|
11
|
+
factory: () => Generator;
|
|
12
|
+
/** Optional one-line options summary for `--list`. */
|
|
13
|
+
options?: string;
|
|
14
|
+
/** Optional note — used to point neutral entries at their canonical door. */
|
|
15
|
+
note?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const generatorRegistry: Record<string, GeneratorRegistryEntry>;
|
|
18
|
+
/** All registry entries, native first then neutral, alphabetical within tier. */
|
|
19
|
+
export declare function listGenerators(): GeneratorRegistryEntry[];
|
|
20
|
+
/** Resolve a generator entry by its stable id, or undefined if unknown. */
|
|
21
|
+
export declare function getGenerator(id: string): GeneratorRegistryEntry | undefined;
|
|
22
|
+
//# sourceMappingURL=generator-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-registry.d.ts","sourceRoot":"","sources":["../src/generator-registry.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoBhD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,IAAI,EAAE,aAAa,CAAC;IACpB,kFAAkF;IAClF,OAAO,EAAE,MAAM,SAAS,CAAC;IACzB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAeD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAsHpE,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,cAAc,IAAI,sBAAsB,EAAE,CAQzD;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAE3E"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// ADR-0021 D3 — stable-name generator registry.
|
|
2
|
+
//
|
|
3
|
+
// Generators are identified by a STABLE string id (e.g. `entity`, `routes`,
|
|
4
|
+
// `render-helper`) rather than by a language-specific factory import. The id is
|
|
5
|
+
// the cross-port contract: the same logical generator carries the same stable
|
|
6
|
+
// name in every port. This module is the discoverability + identity surface
|
|
7
|
+
// behind `meta gen --list`.
|
|
8
|
+
//
|
|
9
|
+
// It is ADDITIVE. The existing `defineConfig({ generators: [entityFile(), ...] })`
|
|
10
|
+
// factory-array config keeps working unchanged — the registry powers `--list`
|
|
11
|
+
// and a stable identity, it does not replace the config path.
|
|
12
|
+
//
|
|
13
|
+
// Tiering (ADR-0020 / ADR-0021 D1):
|
|
14
|
+
// - "native" — the recommended Tier-1 `meta gen` suite (idiomatic emission).
|
|
15
|
+
// - "neutral" — Tier-2 artifacts owned by the neutral docs engine. `docs` and
|
|
16
|
+
// `mermaid-er` are present here for identity/discoverability but
|
|
17
|
+
// are NOT part of the recommended native surface — the canonical
|
|
18
|
+
// door for documentation is `meta docs` (D1).
|
|
19
|
+
import { entityFile, queriesFile, callableFile, routesFile, routesFileHono, barrel, mermaidErDiagram, promptRender, outputParser, extractor, outputPrompt, renderHelper, apiDocsFile, docsFile, templateGenerator, traceHelperFile, } from "./generators/index.js";
|
|
20
|
+
// The `template` generator is a PRIMITIVE: callers supply { name, walk,
|
|
21
|
+
// template }. For registry identity + `--list` we expose a no-op default so the
|
|
22
|
+
// factory constructs a valid Generator without throwing; real use passes opts
|
|
23
|
+
// via the config factory-array path. (docsFile() is the first instance of this
|
|
24
|
+
// primitive — see template-generator.ts.)
|
|
25
|
+
function templatePrimitive() {
|
|
26
|
+
return templateGenerator({
|
|
27
|
+
name: "template",
|
|
28
|
+
template: "",
|
|
29
|
+
walk: () => [],
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export const generatorRegistry = {
|
|
33
|
+
// ----- Tier-1 native suite (idiomatic per-port emission) -----------------
|
|
34
|
+
entity: {
|
|
35
|
+
name: "entity",
|
|
36
|
+
description: "Per-entity Drizzle table + typed model module (the entity module).",
|
|
37
|
+
tier: "native",
|
|
38
|
+
factory: () => entityFile(),
|
|
39
|
+
options: "filter?, target?",
|
|
40
|
+
},
|
|
41
|
+
queries: {
|
|
42
|
+
name: "queries",
|
|
43
|
+
description: "Per-entity typed query helpers (findById/create/...).",
|
|
44
|
+
tier: "native",
|
|
45
|
+
factory: () => queriesFile(),
|
|
46
|
+
options: "filter?, target?",
|
|
47
|
+
},
|
|
48
|
+
callable: {
|
|
49
|
+
name: "callable",
|
|
50
|
+
description: "Per-entity callable/service surface wrapping the query helpers.",
|
|
51
|
+
tier: "native",
|
|
52
|
+
factory: () => callableFile(),
|
|
53
|
+
options: "filter?, target?",
|
|
54
|
+
},
|
|
55
|
+
routes: {
|
|
56
|
+
name: "routes",
|
|
57
|
+
description: "Per-entity Fastify CRUD routes (drizzle-fastify mountCrudRoutes).",
|
|
58
|
+
tier: "native",
|
|
59
|
+
factory: () => routesFile(),
|
|
60
|
+
options: "filter?, target?",
|
|
61
|
+
},
|
|
62
|
+
"routes-hono": {
|
|
63
|
+
name: "routes-hono",
|
|
64
|
+
description: "Per-entity Hono CRUD routes (runtime-ts/hono mountCrudRoutes).",
|
|
65
|
+
tier: "native",
|
|
66
|
+
factory: () => routesFileHono(),
|
|
67
|
+
options: "filter?, target?",
|
|
68
|
+
},
|
|
69
|
+
barrel: {
|
|
70
|
+
name: "barrel",
|
|
71
|
+
description: "Single index.ts re-exporting every generated entity module.",
|
|
72
|
+
tier: "native",
|
|
73
|
+
factory: () => barrel(),
|
|
74
|
+
options: "target?",
|
|
75
|
+
},
|
|
76
|
+
"prompt-render": {
|
|
77
|
+
name: "prompt-render",
|
|
78
|
+
description: "Per-template prompt-render helper over the render engine.",
|
|
79
|
+
tier: "native",
|
|
80
|
+
factory: () => promptRender(),
|
|
81
|
+
options: "filter?, target?",
|
|
82
|
+
},
|
|
83
|
+
"output-parser": {
|
|
84
|
+
name: "output-parser",
|
|
85
|
+
description: "Per-template tolerant output parser (recover-on-receipt).",
|
|
86
|
+
tier: "native",
|
|
87
|
+
factory: () => outputParser(),
|
|
88
|
+
options: "filter?, target?",
|
|
89
|
+
},
|
|
90
|
+
extractor: {
|
|
91
|
+
name: "extractor",
|
|
92
|
+
description: "Per-template typed extract<Name> helper (strict payload extraction).",
|
|
93
|
+
tier: "native",
|
|
94
|
+
factory: () => extractor(),
|
|
95
|
+
options: "filter?, target?",
|
|
96
|
+
},
|
|
97
|
+
"output-prompt": {
|
|
98
|
+
name: "output-prompt",
|
|
99
|
+
description: "Per-template output-format prompt fragment generator.",
|
|
100
|
+
tier: "native",
|
|
101
|
+
factory: () => outputPrompt(),
|
|
102
|
+
options: "filter?, target?",
|
|
103
|
+
},
|
|
104
|
+
"render-helper": {
|
|
105
|
+
name: "render-helper",
|
|
106
|
+
description: "Per-template.output render helper (document/email typed wrappers).",
|
|
107
|
+
tier: "native",
|
|
108
|
+
factory: () => renderHelper(),
|
|
109
|
+
options: "filter?, target?",
|
|
110
|
+
},
|
|
111
|
+
template: {
|
|
112
|
+
name: "template",
|
|
113
|
+
description: "Generic Mustache template primitive (walk + template → files).",
|
|
114
|
+
tier: "native",
|
|
115
|
+
factory: () => templatePrimitive(),
|
|
116
|
+
options: "name, walk, template, format?, filter?, provider?, target?",
|
|
117
|
+
},
|
|
118
|
+
"api-docs": {
|
|
119
|
+
name: "api-docs",
|
|
120
|
+
description: "Per-entity/template SDK API reference (the generated code's API, human + agent forms).",
|
|
121
|
+
tier: "native",
|
|
122
|
+
factory: () => apiDocsFile(),
|
|
123
|
+
options: "filter?, target?",
|
|
124
|
+
},
|
|
125
|
+
"trace-helper": {
|
|
126
|
+
name: "trace-helper",
|
|
127
|
+
description: "Per-entity typed record<Entity>/call<Entity> trace helpers (extract + buildLlmCallRow + persist; LlmCallBase-derived entities only).",
|
|
128
|
+
tier: "native",
|
|
129
|
+
factory: () => traceHelperFile(),
|
|
130
|
+
options: "outDir?, target?",
|
|
131
|
+
},
|
|
132
|
+
// ----- Tier-2 neutral (owned by the `meta docs` engine — D1 / ADR-0020) ---
|
|
133
|
+
docs: {
|
|
134
|
+
name: "docs",
|
|
135
|
+
description: "Neutral per-entity / per-template Markdown documentation pages.",
|
|
136
|
+
tier: "neutral",
|
|
137
|
+
factory: () => docsFile(),
|
|
138
|
+
note: "neutral artifact — use `meta docs` (the single docs door, ADR-0021 D1); not part of the recommended `meta gen` native suite.",
|
|
139
|
+
},
|
|
140
|
+
"mermaid-er": {
|
|
141
|
+
name: "mermaid-er",
|
|
142
|
+
description: "Mermaid ER diagram of the entity/relationship model.",
|
|
143
|
+
tier: "neutral",
|
|
144
|
+
factory: () => mermaidErDiagram(),
|
|
145
|
+
note: "neutral artifact owned by the docs engine (ADR-0020); surfaced via `meta docs`, not the recommended `meta gen` native suite.",
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
/** All registry entries, native first then neutral, alphabetical within tier. */
|
|
149
|
+
export function listGenerators() {
|
|
150
|
+
const entries = Object.values(generatorRegistry);
|
|
151
|
+
const byName = (a, b) => a.name.localeCompare(b.name);
|
|
152
|
+
return [
|
|
153
|
+
...entries.filter((e) => e.tier === "native").sort(byName),
|
|
154
|
+
...entries.filter((e) => e.tier === "neutral").sort(byName),
|
|
155
|
+
];
|
|
156
|
+
}
|
|
157
|
+
/** Resolve a generator entry by its stable id, or undefined if unknown. */
|
|
158
|
+
export function getGenerator(id) {
|
|
159
|
+
return generatorRegistry[id];
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=generator-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-registry.js","sourceRoot":"","sources":["../src/generator-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -44,6 +44,12 @@ export interface Generator {
|
|
|
44
44
|
/** Marks the generator that produces entity modules — the runner uses its
|
|
45
45
|
* target as the entity-module target for cross-target import resolution. */
|
|
46
46
|
emitsEntityModule?: boolean;
|
|
47
|
+
/** Marks the OPT-IN Hono routes generator (routesFileHono). The runner
|
|
48
|
+
* aggregates this across the active suite into `ctx.config.includeHonoRoutes`,
|
|
49
|
+
* so a generator that documents the API surface (api-docs) can AUTO-DETECT
|
|
50
|
+
* that Hono routes are actually being emitted and document them — rather than
|
|
51
|
+
* silently omitting the Hono CRUD registrars whenever the variant is wired. */
|
|
52
|
+
emitsHonoRoutes?: boolean;
|
|
47
53
|
}
|
|
48
54
|
export type GeneratorFactory<TOpts = void> = TOpts extends void ? () => Generator : (opts?: TOpts) => Generator;
|
|
49
55
|
/** One-file-per-entity convenience. Async-safe. */
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,EAAE,QAAQ,CAAC;IACrB;;oBAEgB;IAChB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;gEAG4D;IAC5D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;4DAOwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;iFAC6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,EAAE,QAAQ,CAAC;IACrB;;oBAEgB;IAChB,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;gEAG4D;IAC5D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;4DAOwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;iFAC6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;oFAIgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,GAC3D,MAAM,SAAS,GACf,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC;AAEhC,mDAAmD;AACnD,wBAAgB,SAAS,CACvB,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,KACpC,WAAW,GACX,WAAW,EAAE,GACb,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,GACvC,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAM7C;AAED,sFAAsF;AACtF,wBAAgB,UAAU,CACxB,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,KACxC,WAAW,GACX,WAAW,EAAE,GACb,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,GACvC,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAM7C"}
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AA6DA,mDAAmD;AACnD,MAAM,UAAU,SAAS,CACvB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,UAAU,CACxB,EAGwC;IAExC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Provider } from "@metaobjectsdev/render";
|
|
2
|
+
import type { ApiModel, ApiUnitDoc } from "./api-model.js";
|
|
3
|
+
import type { OutputLayout } from "../import-path.js";
|
|
4
|
+
/** Render ONE per-unit human reference page from an ApiUnitDoc, via the shared
|
|
5
|
+
* render() engine + the canonical `api/entity-api.md` template. `modelPageHref`
|
|
6
|
+
* (when given) cross-links the page back to the entity's model/metadata page. */
|
|
7
|
+
export declare function renderEntityApiPage(unit: ApiUnitDoc, provider: Provider, modelPageHref?: string): string;
|
|
8
|
+
/** Render the consolidated human API index (links to each unit page, grouped
|
|
9
|
+
* entity vs template) via the shared render() engine + `api/index.md`. */
|
|
10
|
+
export declare function renderApiIndex(model: ApiModel, layout: OutputLayout, provider: Provider): string;
|
|
11
|
+
/** Render the condensed agent/LLM form: per unit, symbols grouped under a single
|
|
12
|
+
* `import { … } from "<module>"` header then one compact `signature — usage`
|
|
13
|
+
* line each (with a `[throws: …]` marker when it throws), NO prose/examples
|
|
14
|
+
* (token budget). Units keep their ApiModel order; symbols keep their per-unit
|
|
15
|
+
* order (the canonical generator emission order). */
|
|
16
|
+
export declare function renderAgentApi(model: ApiModel, provider: Provider): string;
|
|
17
|
+
//# sourceMappingURL=api-doc-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-doc-render.d.ts","sourceRoot":"","sources":["../../src/generators/api-doc-render.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAyC,MAAM,gBAAgB,CAAC;AAGlG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA8StD;;kFAEkF;AAClF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CASR;AAyDD;2EAC2E;AAC3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAehG;AA+GD;;;;sDAIsD;AACtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA8B1E"}
|