@prodara/compiler 0.1.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 +204 -0
- package/dist/agent/agent.d.ts +10 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +122 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/api-client.d.ts +29 -0
- package/dist/agent/api-client.d.ts.map +1 -0
- package/dist/agent/api-client.js +167 -0
- package/dist/agent/api-client.js.map +1 -0
- package/dist/agent/index.d.ts +5 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +3 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/party.d.ts +48 -0
- package/dist/agent/party.d.ts.map +1 -0
- package/dist/agent/party.js +79 -0
- package/dist/agent/party.js.map +1 -0
- package/dist/agent/types.d.ts +35 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +5 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/audit/audit.d.ts +32 -0
- package/dist/audit/audit.d.ts.map +1 -0
- package/dist/audit/audit.js +120 -0
- package/dist/audit/audit.js.map +1 -0
- package/dist/audit/index.d.ts +3 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +2 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/types.d.ts +25 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +5 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/binder/binder.d.ts +34 -0
- package/dist/binder/binder.d.ts.map +1 -0
- package/dist/binder/binder.js +202 -0
- package/dist/binder/binder.js.map +1 -0
- package/dist/binder/index.d.ts +3 -0
- package/dist/binder/index.d.ts.map +1 -0
- package/dist/binder/index.js +2 -0
- package/dist/binder/index.js.map +1 -0
- package/dist/build-state/build-state.d.ts +40 -0
- package/dist/build-state/build-state.d.ts.map +1 -0
- package/dist/build-state/build-state.js +180 -0
- package/dist/build-state/build-state.js.map +1 -0
- package/dist/build-state/index.d.ts +3 -0
- package/dist/build-state/index.d.ts.map +1 -0
- package/dist/build-state/index.js +2 -0
- package/dist/build-state/index.js.map +1 -0
- package/dist/checker/index.d.ts +5 -0
- package/dist/checker/index.d.ts.map +1 -0
- package/dist/checker/index.js +3 -0
- package/dist/checker/index.js.map +1 -0
- package/dist/checker/type-checker.d.ts +8 -0
- package/dist/checker/type-checker.d.ts.map +1 -0
- package/dist/checker/type-checker.js +136 -0
- package/dist/checker/type-checker.js.map +1 -0
- package/dist/checker/validator.d.ts +8 -0
- package/dist/checker/validator.d.ts.map +1 -0
- package/dist/checker/validator.js +251 -0
- package/dist/checker/validator.js.map +1 -0
- package/dist/cli/agent-setup.d.ts +27 -0
- package/dist/cli/agent-setup.d.ts.map +1 -0
- package/dist/cli/agent-setup.js +829 -0
- package/dist/cli/agent-setup.js.map +1 -0
- package/dist/cli/analyze.d.ts +28 -0
- package/dist/cli/analyze.d.ts.map +1 -0
- package/dist/cli/analyze.js +188 -0
- package/dist/cli/analyze.js.map +1 -0
- package/dist/cli/checklist.d.ts +27 -0
- package/dist/cli/checklist.d.ts.map +1 -0
- package/dist/cli/checklist.js +153 -0
- package/dist/cli/checklist.js.map +1 -0
- package/dist/cli/compile.d.ts +26 -0
- package/dist/cli/compile.d.ts.map +1 -0
- package/dist/cli/compile.js +112 -0
- package/dist/cli/compile.js.map +1 -0
- package/dist/cli/dashboard.d.ts +19 -0
- package/dist/cli/dashboard.d.ts.map +1 -0
- package/dist/cli/dashboard.js +73 -0
- package/dist/cli/dashboard.js.map +1 -0
- package/dist/cli/explain.d.ts +23 -0
- package/dist/cli/explain.d.ts.map +1 -0
- package/dist/cli/explain.js +144 -0
- package/dist/cli/explain.js.map +1 -0
- package/dist/cli/git.d.ts +14 -0
- package/dist/cli/git.d.ts.map +1 -0
- package/dist/cli/git.js +44 -0
- package/dist/cli/git.js.map +1 -0
- package/dist/cli/lifecycle.d.ts +28 -0
- package/dist/cli/lifecycle.d.ts.map +1 -0
- package/dist/cli/lifecycle.js +82 -0
- package/dist/cli/lifecycle.js.map +1 -0
- package/dist/cli/main.d.ts +10 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +1072 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/notify.d.ts +13 -0
- package/dist/cli/notify.d.ts.map +1 -0
- package/dist/cli/notify.js +36 -0
- package/dist/cli/notify.js.map +1 -0
- package/dist/cli/starters.d.ts +12 -0
- package/dist/cli/starters.d.ts.map +1 -0
- package/dist/cli/starters.js +439 -0
- package/dist/cli/starters.js.map +1 -0
- package/dist/config/config.d.ts +194 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +434 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/diagnostics/diagnostic.d.ts +44 -0
- package/dist/diagnostics/diagnostic.d.ts.map +1 -0
- package/dist/diagnostics/diagnostic.js +44 -0
- package/dist/diagnostics/diagnostic.js.map +1 -0
- package/dist/diagnostics/index.d.ts +4 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +3 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/diagnostics/reporter.d.ts +43 -0
- package/dist/diagnostics/reporter.d.ts.map +1 -0
- package/dist/diagnostics/reporter.js +74 -0
- package/dist/diagnostics/reporter.js.map +1 -0
- package/dist/discovery/discovery.d.ts +6 -0
- package/dist/discovery/discovery.d.ts.map +1 -0
- package/dist/discovery/discovery.js +66 -0
- package/dist/discovery/discovery.js.map +1 -0
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +2 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/doc-gen/doc-gen-types.d.ts +174 -0
- package/dist/doc-gen/doc-gen-types.d.ts.map +1 -0
- package/dist/doc-gen/doc-gen-types.js +7 -0
- package/dist/doc-gen/doc-gen-types.js.map +1 -0
- package/dist/doc-gen/doc-renderer.d.ts +17 -0
- package/dist/doc-gen/doc-renderer.d.ts.map +1 -0
- package/dist/doc-gen/doc-renderer.js +65 -0
- package/dist/doc-gen/doc-renderer.js.map +1 -0
- package/dist/doc-gen/format-helpers.d.ts +18 -0
- package/dist/doc-gen/format-helpers.d.ts.map +1 -0
- package/dist/doc-gen/format-helpers.js +92 -0
- package/dist/doc-gen/format-helpers.js.map +1 -0
- package/dist/doc-gen/index.d.ts +5 -0
- package/dist/doc-gen/index.d.ts.map +1 -0
- package/dist/doc-gen/index.js +5 -0
- package/dist/doc-gen/index.js.map +1 -0
- package/dist/doc-gen/link-resolver.d.ts +10 -0
- package/dist/doc-gen/link-resolver.d.ts.map +1 -0
- package/dist/doc-gen/link-resolver.js +87 -0
- package/dist/doc-gen/link-resolver.js.map +1 -0
- package/dist/doc-gen/mermaid-renderers.d.ts +12 -0
- package/dist/doc-gen/mermaid-renderers.d.ts.map +1 -0
- package/dist/doc-gen/mermaid-renderers.js +197 -0
- package/dist/doc-gen/mermaid-renderers.js.map +1 -0
- package/dist/doc-gen/module-renderer.d.ts +6 -0
- package/dist/doc-gen/module-renderer.d.ts.map +1 -0
- package/dist/doc-gen/module-renderer.js +54 -0
- package/dist/doc-gen/module-renderer.js.map +1 -0
- package/dist/doc-gen/product-renderer.d.ts +6 -0
- package/dist/doc-gen/product-renderer.d.ts.map +1 -0
- package/dist/doc-gen/product-renderer.js +101 -0
- package/dist/doc-gen/product-renderer.js.map +1 -0
- package/dist/doc-gen/section-renderers.d.ts +20 -0
- package/dist/doc-gen/section-renderers.d.ts.map +1 -0
- package/dist/doc-gen/section-renderers.js +357 -0
- package/dist/doc-gen/section-renderers.js.map +1 -0
- package/dist/doc-gen/string-resolver.d.ts +8 -0
- package/dist/doc-gen/string-resolver.d.ts.map +1 -0
- package/dist/doc-gen/string-resolver.js +47 -0
- package/dist/doc-gen/string-resolver.js.map +1 -0
- package/dist/doc-gen/surface-ascii.d.ts +7 -0
- package/dist/doc-gen/surface-ascii.d.ts.map +1 -0
- package/dist/doc-gen/surface-ascii.js +87 -0
- package/dist/doc-gen/surface-ascii.js.map +1 -0
- package/dist/drift/drift.d.ts +16 -0
- package/dist/drift/drift.d.ts.map +1 -0
- package/dist/drift/drift.js +149 -0
- package/dist/drift/drift.js.map +1 -0
- package/dist/drift/index.d.ts +3 -0
- package/dist/drift/index.d.ts.map +1 -0
- package/dist/drift/index.js +2 -0
- package/dist/drift/index.js.map +1 -0
- package/dist/extensions/index.d.ts +6 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +7 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/loader.d.ts +21 -0
- package/dist/extensions/loader.d.ts.map +1 -0
- package/dist/extensions/loader.js +101 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/extensions/marketplace.d.ts +22 -0
- package/dist/extensions/marketplace.d.ts.map +1 -0
- package/dist/extensions/marketplace.js +40 -0
- package/dist/extensions/marketplace.js.map +1 -0
- package/dist/extensions/registry.d.ts +45 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +82 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +41 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +5 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/generator/contracts.d.ts +67 -0
- package/dist/generator/contracts.d.ts.map +1 -0
- package/dist/generator/contracts.js +94 -0
- package/dist/generator/contracts.js.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +2 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/governance/governance.d.ts +24 -0
- package/dist/governance/governance.d.ts.map +1 -0
- package/dist/governance/governance.js +238 -0
- package/dist/governance/governance.js.map +1 -0
- package/dist/governance/index.d.ts +3 -0
- package/dist/governance/index.d.ts.map +1 -0
- package/dist/governance/index.js +2 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/types.d.ts +14 -0
- package/dist/governance/types.d.ts.map +1 -0
- package/dist/governance/types.js +5 -0
- package/dist/governance/types.js.map +1 -0
- package/dist/graph/builder.d.ts +10 -0
- package/dist/graph/builder.d.ts.map +1 -0
- package/dist/graph/builder.js +573 -0
- package/dist/graph/builder.js.map +1 -0
- package/dist/graph/graph-types.d.ts +64 -0
- package/dist/graph/graph-types.d.ts.map +1 -0
- package/dist/graph/graph-types.js +29 -0
- package/dist/graph/graph-types.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +5 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/serializer.d.ts +9 -0
- package/dist/graph/serializer.d.ts.map +1 -0
- package/dist/graph/serializer.js +31 -0
- package/dist/graph/serializer.js.map +1 -0
- package/dist/graph/validator.d.ts +14 -0
- package/dist/graph/validator.d.ts.map +1 -0
- package/dist/graph/validator.js +96 -0
- package/dist/graph/validator.js.map +1 -0
- package/dist/implement/implement.d.ts +30 -0
- package/dist/implement/implement.d.ts.map +1 -0
- package/dist/implement/implement.js +299 -0
- package/dist/implement/implement.js.map +1 -0
- package/dist/implement/index.d.ts +3 -0
- package/dist/implement/index.d.ts.map +1 -0
- package/dist/implement/index.js +2 -0
- package/dist/implement/index.js.map +1 -0
- package/dist/implement/types.d.ts +41 -0
- package/dist/implement/types.d.ts.map +1 -0
- package/dist/implement/types.js +5 -0
- package/dist/implement/types.js.map +1 -0
- package/dist/incremental/incremental-spec.d.ts +12 -0
- package/dist/incremental/incremental-spec.d.ts.map +1 -0
- package/dist/incremental/incremental-spec.js +100 -0
- package/dist/incremental/incremental-spec.js.map +1 -0
- package/dist/incremental/index.d.ts +3 -0
- package/dist/incremental/index.d.ts.map +1 -0
- package/dist/incremental/index.js +5 -0
- package/dist/incremental/index.js.map +1 -0
- package/dist/incremental/types.d.ts +28 -0
- package/dist/incremental/types.d.ts.map +1 -0
- package/dist/incremental/types.js +7 -0
- package/dist/incremental/types.js.map +1 -0
- package/dist/index.d.ts +106 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/index.d.ts +6 -0
- package/dist/lexer/index.d.ts.map +1 -0
- package/dist/lexer/index.js +5 -0
- package/dist/lexer/index.js.map +1 -0
- package/dist/lexer/keywords.d.ts +3 -0
- package/dist/lexer/keywords.d.ts.map +1 -0
- package/dist/lexer/keywords.js +142 -0
- package/dist/lexer/keywords.js.map +1 -0
- package/dist/lexer/lexer.d.ts +19 -0
- package/dist/lexer/lexer.d.ts.map +1 -0
- package/dist/lexer/lexer.js +286 -0
- package/dist/lexer/lexer.js.map +1 -0
- package/dist/lexer/source.d.ts +13 -0
- package/dist/lexer/source.d.ts.map +1 -0
- package/dist/lexer/source.js +59 -0
- package/dist/lexer/source.js.map +1 -0
- package/dist/lexer/tokens.d.ts +157 -0
- package/dist/lexer/tokens.d.ts.map +1 -0
- package/dist/lexer/tokens.js +173 -0
- package/dist/lexer/tokens.js.map +1 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +3 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrator.d.ts +14 -0
- package/dist/orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/orchestrator.js +129 -0
- package/dist/orchestrator/orchestrator.js.map +1 -0
- package/dist/orchestrator/pipeline.d.ts +31 -0
- package/dist/orchestrator/pipeline.d.ts.map +1 -0
- package/dist/orchestrator/pipeline.js +290 -0
- package/dist/orchestrator/pipeline.js.map +1 -0
- package/dist/orchestrator/types.d.ts +60 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +8 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/parser/ast.d.ts +502 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/ast.js +7 -0
- package/dist/parser/ast.js.map +1 -0
- package/dist/parser/expressions.d.ts +18 -0
- package/dist/parser/expressions.d.ts.map +1 -0
- package/dist/parser/expressions.js +230 -0
- package/dist/parser/expressions.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +83 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +2149 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/planner/differ.d.ts +4 -0
- package/dist/planner/differ.d.ts.map +1 -0
- package/dist/planner/differ.js +96 -0
- package/dist/planner/differ.js.map +1 -0
- package/dist/planner/index.d.ts +7 -0
- package/dist/planner/index.d.ts.map +1 -0
- package/dist/planner/index.js +5 -0
- package/dist/planner/index.js.map +1 -0
- package/dist/planner/plan-types.d.ts +26 -0
- package/dist/planner/plan-types.d.ts.map +1 -0
- package/dist/planner/plan-types.js +5 -0
- package/dist/planner/plan-types.js.map +1 -0
- package/dist/planner/planner.d.ts +8 -0
- package/dist/planner/planner.d.ts.map +1 -0
- package/dist/planner/planner.js +83 -0
- package/dist/planner/planner.js.map +1 -0
- package/dist/planner/propagator.d.ts +4 -0
- package/dist/planner/propagator.d.ts.map +1 -0
- package/dist/planner/propagator.js +45 -0
- package/dist/planner/propagator.js.map +1 -0
- package/dist/planner/semantic-diff.d.ts +27 -0
- package/dist/planner/semantic-diff.d.ts.map +1 -0
- package/dist/planner/semantic-diff.js +253 -0
- package/dist/planner/semantic-diff.js.map +1 -0
- package/dist/presets/index.d.ts +3 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +5 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/loader.d.ts +28 -0
- package/dist/presets/loader.d.ts.map +1 -0
- package/dist/presets/loader.js +99 -0
- package/dist/presets/loader.js.map +1 -0
- package/dist/presets/types.d.ts +21 -0
- package/dist/presets/types.d.ts.map +1 -0
- package/dist/presets/types.js +5 -0
- package/dist/presets/types.js.map +1 -0
- package/dist/proposal/index.d.ts +3 -0
- package/dist/proposal/index.d.ts.map +1 -0
- package/dist/proposal/index.js +7 -0
- package/dist/proposal/index.js.map +1 -0
- package/dist/proposal/proposal.d.ts +9 -0
- package/dist/proposal/proposal.d.ts.map +1 -0
- package/dist/proposal/proposal.js +169 -0
- package/dist/proposal/proposal.js.map +1 -0
- package/dist/proposal/types.d.ts +15 -0
- package/dist/proposal/types.d.ts.map +1 -0
- package/dist/proposal/types.js +5 -0
- package/dist/proposal/types.js.map +1 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +2 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/resolution.d.ts +39 -0
- package/dist/registry/resolution.d.ts.map +1 -0
- package/dist/registry/resolution.js +70 -0
- package/dist/registry/resolution.js.map +1 -0
- package/dist/reviewers/adversarial.d.ts +3 -0
- package/dist/reviewers/adversarial.d.ts.map +1 -0
- package/dist/reviewers/adversarial.js +111 -0
- package/dist/reviewers/adversarial.js.map +1 -0
- package/dist/reviewers/architecture.d.ts +3 -0
- package/dist/reviewers/architecture.d.ts.map +1 -0
- package/dist/reviewers/architecture.js +71 -0
- package/dist/reviewers/architecture.js.map +1 -0
- package/dist/reviewers/code-quality.d.ts +3 -0
- package/dist/reviewers/code-quality.d.ts.map +1 -0
- package/dist/reviewers/code-quality.js +72 -0
- package/dist/reviewers/code-quality.js.map +1 -0
- package/dist/reviewers/edge-case.d.ts +3 -0
- package/dist/reviewers/edge-case.d.ts.map +1 -0
- package/dist/reviewers/edge-case.js +107 -0
- package/dist/reviewers/edge-case.js.map +1 -0
- package/dist/reviewers/index.d.ts +21 -0
- package/dist/reviewers/index.d.ts.map +1 -0
- package/dist/reviewers/index.js +39 -0
- package/dist/reviewers/index.js.map +1 -0
- package/dist/reviewers/prompt-loader.d.ts +24 -0
- package/dist/reviewers/prompt-loader.d.ts.map +1 -0
- package/dist/reviewers/prompt-loader.js +67 -0
- package/dist/reviewers/prompt-loader.js.map +1 -0
- package/dist/reviewers/quality.d.ts +3 -0
- package/dist/reviewers/quality.d.ts.map +1 -0
- package/dist/reviewers/quality.js +76 -0
- package/dist/reviewers/quality.js.map +1 -0
- package/dist/reviewers/reviewer.d.ts +39 -0
- package/dist/reviewers/reviewer.d.ts.map +1 -0
- package/dist/reviewers/reviewer.js +149 -0
- package/dist/reviewers/reviewer.js.map +1 -0
- package/dist/reviewers/security.d.ts +3 -0
- package/dist/reviewers/security.d.ts.map +1 -0
- package/dist/reviewers/security.js +87 -0
- package/dist/reviewers/security.js.map +1 -0
- package/dist/reviewers/specification.d.ts +3 -0
- package/dist/reviewers/specification.d.ts.map +1 -0
- package/dist/reviewers/specification.js +79 -0
- package/dist/reviewers/specification.js.map +1 -0
- package/dist/reviewers/test-quality.d.ts +3 -0
- package/dist/reviewers/test-quality.d.ts.map +1 -0
- package/dist/reviewers/test-quality.js +88 -0
- package/dist/reviewers/test-quality.js.map +1 -0
- package/dist/reviewers/types.d.ts +32 -0
- package/dist/reviewers/types.d.ts.map +1 -0
- package/dist/reviewers/types.js +5 -0
- package/dist/reviewers/types.js.map +1 -0
- package/dist/reviewers/ux.d.ts +3 -0
- package/dist/reviewers/ux.d.ts.map +1 -0
- package/dist/reviewers/ux.js +94 -0
- package/dist/reviewers/ux.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +2 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/resolution.d.ts +30 -0
- package/dist/runtime/resolution.d.ts.map +1 -0
- package/dist/runtime/resolution.js +59 -0
- package/dist/runtime/resolution.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/test-runner.d.ts +18 -0
- package/dist/testing/test-runner.d.ts.map +1 -0
- package/dist/testing/test-runner.js +131 -0
- package/dist/testing/test-runner.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +127 -0
- package/dist/types.js.map +1 -0
- package/dist/validation/index.d.ts +3 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +2 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +16 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +5 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/validation.d.ts +8 -0
- package/dist/validation/validation.d.ts.map +1 -0
- package/dist/validation/validation.js +101 -0
- package/dist/validation/validation.js.map +1 -0
- package/dist/verification/index.d.ts +3 -0
- package/dist/verification/index.d.ts.map +1 -0
- package/dist/verification/index.js +5 -0
- package/dist/verification/index.js.map +1 -0
- package/dist/verification/types.d.ts +14 -0
- package/dist/verification/types.d.ts.map +1 -0
- package/dist/verification/types.js +5 -0
- package/dist/verification/types.js.map +1 -0
- package/dist/verification/verify.d.ts +7 -0
- package/dist/verification/verify.d.ts.map +1 -0
- package/dist/verification/verify.js +127 -0
- package/dist/verification/verify.js.map +1 -0
- package/dist/workflow/clarify.d.ts +7 -0
- package/dist/workflow/clarify.d.ts.map +1 -0
- package/dist/workflow/clarify.js +165 -0
- package/dist/workflow/clarify.js.map +1 -0
- package/dist/workflow/engine.d.ts +19 -0
- package/dist/workflow/engine.d.ts.map +1 -0
- package/dist/workflow/engine.js +265 -0
- package/dist/workflow/engine.js.map +1 -0
- package/dist/workflow/index.d.ts +6 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +7 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/types.d.ts +95 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/types.js +18 -0
- package/dist/workflow/types.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Main Renderer
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Top-level entry point: generates DocFile[] from a ProductGraph.
|
|
5
|
+
// Also handles writing files with atomic writes and stale cleanup.
|
|
6
|
+
import { writeFileSync, mkdirSync, readdirSync, unlinkSync, renameSync } from 'node:fs';
|
|
7
|
+
import { basename, join, resolve } from 'node:path';
|
|
8
|
+
import { randomBytes } from 'node:crypto';
|
|
9
|
+
import { createStringResolver } from './string-resolver.js';
|
|
10
|
+
import { createLinkResolver } from './link-resolver.js';
|
|
11
|
+
import { renderModuleDoc } from './module-renderer.js';
|
|
12
|
+
import { renderProductOverview } from './product-renderer.js';
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Generation
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
/**
|
|
17
|
+
* Generate human-readable markdown docs from a product graph.
|
|
18
|
+
* Returns the files to write — caller can use `writeDocs()` for I/O.
|
|
19
|
+
*/
|
|
20
|
+
export function generateDocs(graph, config, root) {
|
|
21
|
+
const outputDir = resolve(root, config.outputDir);
|
|
22
|
+
const resolveString = createStringResolver(graph);
|
|
23
|
+
const resolveLink = createLinkResolver(graph);
|
|
24
|
+
const files = [];
|
|
25
|
+
// Product overview
|
|
26
|
+
files.push({
|
|
27
|
+
path: join(outputDir, 'README.md'),
|
|
28
|
+
content: renderProductOverview(graph, resolveString),
|
|
29
|
+
});
|
|
30
|
+
// Per-module docs
|
|
31
|
+
for (const mod of graph.modules) {
|
|
32
|
+
files.push({
|
|
33
|
+
path: join(outputDir, `${mod.name}.md`),
|
|
34
|
+
content: renderModuleDoc(mod, graph, resolveString, resolveLink),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return files;
|
|
38
|
+
}
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
// File writing
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
/**
|
|
43
|
+
* Write generated doc files to disk with atomic writes.
|
|
44
|
+
* Cleans up stale .md files that no longer correspond to modules.
|
|
45
|
+
*/
|
|
46
|
+
export function writeDocs(files, outputDir, root) {
|
|
47
|
+
const absOutputDir = resolve(root, outputDir);
|
|
48
|
+
mkdirSync(absOutputDir, { recursive: true });
|
|
49
|
+
// Write files atomically (temp + rename)
|
|
50
|
+
const writtenNames = new Set();
|
|
51
|
+
for (const file of files) {
|
|
52
|
+
const tmpPath = file.path + `.tmp_${randomBytes(4).toString('hex')}`;
|
|
53
|
+
writeFileSync(tmpPath, file.content, 'utf-8');
|
|
54
|
+
renameSync(tmpPath, file.path);
|
|
55
|
+
writtenNames.add(basename(file.path));
|
|
56
|
+
}
|
|
57
|
+
// Clean stale .md files that no longer correspond to modules
|
|
58
|
+
const existing = readdirSync(absOutputDir);
|
|
59
|
+
for (const name of existing) {
|
|
60
|
+
if (name.endsWith('.md') && !writtenNames.has(name)) {
|
|
61
|
+
unlinkSync(join(absOutputDir, name));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=doc-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-renderer.js","sourceRoot":"","sources":["../../src/doc-gen/doc-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GraphTypeRef, ModuleNode } from '../graph/graph-types.js';
|
|
2
|
+
export declare function renderBanner(sourceFile: string): string[];
|
|
3
|
+
export declare function formatTypeRef(ref: GraphTypeRef): string;
|
|
4
|
+
export declare function renderTable(headers: string[], rows: string[][]): string[];
|
|
5
|
+
export declare function humanize(snakeName: string): string;
|
|
6
|
+
export declare function toAnchor(heading: string): string;
|
|
7
|
+
export declare function section(title: string, level?: number): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Safely extract a typed array property from a module node.
|
|
10
|
+
* Returns empty array if the property is missing or not an array.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getArrayProp<T>(mod: ModuleNode, key: string): T[];
|
|
13
|
+
/**
|
|
14
|
+
* Extract the last segment of a dot-separated identifier.
|
|
15
|
+
* e.g. `"board.board_strings.title"` → `"title"`
|
|
16
|
+
*/
|
|
17
|
+
export declare function shortName(id: string): string;
|
|
18
|
+
//# sourceMappingURL=format-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../src/doc-gen/format-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMxE,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAMD,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAcvD;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAQzE;AAMD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhD;AAMD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,EAAE,CAGlE;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAGjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAI5C"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Format Helpers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Shared formatting utilities for human-readable doc generation.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Auto-generated file banner
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export function renderBanner(sourceFile) {
|
|
9
|
+
const now = new Date().toISOString();
|
|
10
|
+
return [
|
|
11
|
+
`<!-- ⚠️ AUTO-GENERATED FROM .prd FILES — DO NOT EDIT -->`,
|
|
12
|
+
`<!-- Source: ${sourceFile} | Compiled: ${now} -->`,
|
|
13
|
+
`<!-- Edit the .prd source files and recompile to update. -->`,
|
|
14
|
+
'',
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Type display
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
export function formatTypeRef(ref) {
|
|
21
|
+
if (typeof ref === 'string')
|
|
22
|
+
return ref;
|
|
23
|
+
if ('ref' in ref) {
|
|
24
|
+
const parts = ref.ref.split('.');
|
|
25
|
+
/* v8 ignore next -- split always returns ≥1 element */
|
|
26
|
+
return parts[parts.length - 1] ?? ref.ref;
|
|
27
|
+
}
|
|
28
|
+
/* v8 ignore next 3 -- exhaustive: false branch of this if is unreachable */
|
|
29
|
+
if ('generic' in ref) {
|
|
30
|
+
return `${ref.generic}<${formatTypeRef(ref.arg)}>`;
|
|
31
|
+
}
|
|
32
|
+
/* v8 ignore next 3 -- exhaustive check */
|
|
33
|
+
const _exhaustive = ref;
|
|
34
|
+
return String(_exhaustive);
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Markdown table helpers
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
export function renderTable(headers, rows) {
|
|
40
|
+
const lines = [];
|
|
41
|
+
lines.push(`| ${headers.join(' | ')} |`);
|
|
42
|
+
lines.push(`| ${headers.map(() => '---').join(' | ')} |`);
|
|
43
|
+
for (const row of rows) {
|
|
44
|
+
lines.push(`| ${row.join(' | ')} |`);
|
|
45
|
+
}
|
|
46
|
+
return lines;
|
|
47
|
+
}
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Name formatting
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
export function humanize(snakeName) {
|
|
52
|
+
return snakeName
|
|
53
|
+
.replace(/_/g, ' ')
|
|
54
|
+
.trim()
|
|
55
|
+
.replace(/\b\w/g, c => c.toUpperCase());
|
|
56
|
+
}
|
|
57
|
+
export function toAnchor(heading) {
|
|
58
|
+
return heading
|
|
59
|
+
.toLowerCase()
|
|
60
|
+
.trim()
|
|
61
|
+
.replace(/[^a-z0-9 -]/g, '')
|
|
62
|
+
.replace(/\s+/g, '-')
|
|
63
|
+
.replace(/^-+|-+$/g, '');
|
|
64
|
+
}
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
// Section helpers
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
export function section(title, level = 2) {
|
|
69
|
+
const prefix = '#'.repeat(level);
|
|
70
|
+
return ['', `${prefix} ${title}`, ''];
|
|
71
|
+
}
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
// Graph node helpers — shared across all doc-gen renderers
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
/**
|
|
76
|
+
* Safely extract a typed array property from a module node.
|
|
77
|
+
* Returns empty array if the property is missing or not an array.
|
|
78
|
+
*/
|
|
79
|
+
export function getArrayProp(mod, key) {
|
|
80
|
+
const val = mod[key];
|
|
81
|
+
return Array.isArray(val) ? val : [];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extract the last segment of a dot-separated identifier.
|
|
85
|
+
* e.g. `"board.board_strings.title"` → `"title"`
|
|
86
|
+
*/
|
|
87
|
+
export function shortName(id) {
|
|
88
|
+
const parts = id.split('.');
|
|
89
|
+
/* v8 ignore next -- split always returns ≥1 element */
|
|
90
|
+
return parts[parts.length - 1] ?? id;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=format-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-helpers.js","sourceRoot":"","sources":["../../src/doc-gen/format-helpers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAC9E,iEAAiE;AAIjE,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,0DAA0D;QAC1D,gBAAgB,UAAU,gBAAgB,GAAG,MAAM;QACnD,8DAA8D;QAC9D,EAAE;KACH,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,uDAAuD;QACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;IAC5C,CAAC;IACD,4EAA4E;IAC5E,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IACrD,CAAC;IACD,0CAA0C;IAC1C,MAAM,WAAW,GAAU,GAAG,CAAC;IAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,IAAgB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACxC,OAAO,SAAS;SACb,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,IAAI,EAAE;SACN,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,OAAO;SACX,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,QAAgB,CAAC;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAI,GAAe,EAAE,GAAW;IAC1D,MAAM,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,uDAAuD;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { generateDocs, writeDocs } from './doc-renderer.js';
|
|
2
|
+
export type { DocFile } from './doc-renderer.js';
|
|
3
|
+
export type { SectionContext } from './section-renderers.js';
|
|
4
|
+
export type { ActorNode, CapabilityNode, EntityNode, ValueNode, EnumNode, RuleNode, WorkflowNode, ActionNode, EventNode, ScheduleNode, SurfaceNode, RenderingNode, TokensNode, StorageNode, SecurityNode, PrivacyNode, TestNode, StringsNode, FieldRef, StepNode, } from './doc-gen-types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/doc-gen/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACV,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC1D,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAC3D,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EACnD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GACrE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Barrel Exports
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export { generateDocs, writeDocs } from './doc-renderer.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doc-gen/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProductGraph } from '../graph/graph-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a link resolver for cross-module and same-module references.
|
|
4
|
+
*
|
|
5
|
+
* @param graph The product graph (used to look up which module a node belongs to)
|
|
6
|
+
* @returns A function that given a node id and the current module name,
|
|
7
|
+
* returns a markdown link string
|
|
8
|
+
*/
|
|
9
|
+
export declare function createLinkResolver(graph: ProductGraph): (nodeId: string, fromModule: string) => string;
|
|
10
|
+
//# sourceMappingURL=link-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-resolver.d.ts","sourceRoot":"","sources":["../../src/doc-gen/link-resolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAsC5D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CA0ChD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Link Resolver
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Generates cross-module markdown links and same-module anchor links.
|
|
5
|
+
import { toAnchor, humanize } from './format-helpers.js';
|
|
6
|
+
/**
|
|
7
|
+
* Section heading anchors keyed by node kind.
|
|
8
|
+
* Used to link to the correct section within a module doc.
|
|
9
|
+
*/
|
|
10
|
+
const KIND_TO_SECTION = {
|
|
11
|
+
entity: 'Domain Model',
|
|
12
|
+
value: 'Domain Model',
|
|
13
|
+
enum: 'Domain Model',
|
|
14
|
+
rule: 'Business Rules',
|
|
15
|
+
actor: 'Actors & Capabilities',
|
|
16
|
+
capability: 'Actors & Capabilities',
|
|
17
|
+
workflow: 'Workflows',
|
|
18
|
+
action: 'Actions',
|
|
19
|
+
event: 'Events',
|
|
20
|
+
schedule: 'Schedules',
|
|
21
|
+
surface: 'Surfaces',
|
|
22
|
+
rendering: 'Surfaces',
|
|
23
|
+
tokens: 'Design System',
|
|
24
|
+
theme: 'Design System',
|
|
25
|
+
strings: 'Design System',
|
|
26
|
+
storage: 'Storage',
|
|
27
|
+
integration: 'Platform',
|
|
28
|
+
transport: 'Platform',
|
|
29
|
+
execution: 'Platform',
|
|
30
|
+
extension: 'Platform',
|
|
31
|
+
security: 'Governance',
|
|
32
|
+
privacy: 'Governance',
|
|
33
|
+
validation: 'Governance',
|
|
34
|
+
constitution: 'Governance',
|
|
35
|
+
secret: 'Runtime',
|
|
36
|
+
environment: 'Runtime',
|
|
37
|
+
deployment: 'Runtime',
|
|
38
|
+
test: 'Tests',
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Create a link resolver for cross-module and same-module references.
|
|
42
|
+
*
|
|
43
|
+
* @param graph The product graph (used to look up which module a node belongs to)
|
|
44
|
+
* @returns A function that given a node id and the current module name,
|
|
45
|
+
* returns a markdown link string
|
|
46
|
+
*/
|
|
47
|
+
export function createLinkResolver(graph) {
|
|
48
|
+
// Build a map from node id → { moduleName, kind, name }
|
|
49
|
+
const nodeIndex = new Map();
|
|
50
|
+
for (const mod of graph.modules) {
|
|
51
|
+
for (const [key, value] of Object.entries(mod)) {
|
|
52
|
+
if (key === 'id' || key === 'kind' || key === 'name' || key === 'imports')
|
|
53
|
+
continue;
|
|
54
|
+
/* v8 ignore next -- all graph module properties past id/kind/name/imports are arrays */
|
|
55
|
+
if (!Array.isArray(value))
|
|
56
|
+
continue;
|
|
57
|
+
for (const item of value) {
|
|
58
|
+
if (item && typeof item === 'object' && 'id' in item && 'kind' in item && 'name' in item) {
|
|
59
|
+
nodeIndex.set(item.id, {
|
|
60
|
+
moduleName: mod.name,
|
|
61
|
+
kind: item.kind,
|
|
62
|
+
name: item.name,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return (nodeId, fromModule) => {
|
|
69
|
+
const node = nodeIndex.get(nodeId);
|
|
70
|
+
if (!node) {
|
|
71
|
+
// Can't resolve — just return the last segment as plain text
|
|
72
|
+
const parts = nodeId.split('.');
|
|
73
|
+
/* v8 ignore next -- split always returns ≥1 element */
|
|
74
|
+
return parts[parts.length - 1] ?? nodeId;
|
|
75
|
+
}
|
|
76
|
+
/* v8 ignore next -- all known kinds are in KIND_TO_SECTION */
|
|
77
|
+
const sectionTitle = KIND_TO_SECTION[node.kind] ?? humanize(node.kind);
|
|
78
|
+
const anchor = `#${toAnchor(sectionTitle)}`;
|
|
79
|
+
if (node.moduleName === fromModule) {
|
|
80
|
+
// Same-module anchor link
|
|
81
|
+
return `[${node.name}](${anchor})`;
|
|
82
|
+
}
|
|
83
|
+
// Cross-module link
|
|
84
|
+
return `[${node.name}](${node.moduleName}.md${anchor})`;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=link-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["../../src/doc-gen/link-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ModuleNode, GraphEdge } from '../graph/graph-types.js';
|
|
2
|
+
import type { WorkflowNode } from './doc-gen-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Render a Mermaid erDiagram block for all entities/enums/values in a module.
|
|
5
|
+
* Returns empty array if the module has no domain objects.
|
|
6
|
+
*/
|
|
7
|
+
export declare function renderEntityErDiagram(mod: ModuleNode, edges: readonly GraphEdge[]): string[];
|
|
8
|
+
/**
|
|
9
|
+
* Render a Mermaid flowchart for a single workflow.
|
|
10
|
+
*/
|
|
11
|
+
export declare function renderWorkflowFlowchart(workflow: WorkflowNode): string[];
|
|
12
|
+
//# sourceMappingURL=mermaid-renderers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid-renderers.d.ts","sourceRoot":"","sources":["../../src/doc-gen/mermaid-renderers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAgB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcxF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,MAAM,EAAE,CA2EV;AAqDD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,EAAE,CA0DxE"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Mermaid Renderers
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Generates Mermaid ER diagrams for entities and flowcharts for workflows.
|
|
5
|
+
import { formatTypeRef, getArrayProp } from './format-helpers.js';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Shared helpers
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
function mermaidId(name) {
|
|
10
|
+
return name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
11
|
+
}
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Entity-Relationship Diagram
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Render a Mermaid erDiagram block for all entities/enums/values in a module.
|
|
17
|
+
* Returns empty array if the module has no domain objects.
|
|
18
|
+
*/
|
|
19
|
+
export function renderEntityErDiagram(mod, edges) {
|
|
20
|
+
const entities = getArrayProp(mod, 'entities');
|
|
21
|
+
const enums = getArrayProp(mod, 'enums');
|
|
22
|
+
const values = getArrayProp(mod, 'values');
|
|
23
|
+
if (entities.length === 0 && enums.length === 0 && values.length === 0)
|
|
24
|
+
return [];
|
|
25
|
+
const lines = [];
|
|
26
|
+
lines.push('```mermaid');
|
|
27
|
+
lines.push('erDiagram');
|
|
28
|
+
// Render entities
|
|
29
|
+
for (const entity of entities) {
|
|
30
|
+
const eid = mermaidId(entity.name).toUpperCase();
|
|
31
|
+
lines.push(` ${eid} {`);
|
|
32
|
+
for (const field of entity.fields) {
|
|
33
|
+
const typeName = formatTypeRef(field.type);
|
|
34
|
+
const pk = field.name.endsWith('_id') || field.name === 'id' ? ' PK' : '';
|
|
35
|
+
lines.push(` ${typeName} ${field.name}${pk}`);
|
|
36
|
+
}
|
|
37
|
+
lines.push(' }');
|
|
38
|
+
}
|
|
39
|
+
// Render value objects
|
|
40
|
+
for (const value of values) {
|
|
41
|
+
const vid = mermaidId(value.name).toUpperCase();
|
|
42
|
+
lines.push(` ${vid} {`);
|
|
43
|
+
for (const field of value.fields) {
|
|
44
|
+
const typeName = formatTypeRef(field.type);
|
|
45
|
+
lines.push(` ${typeName} ${field.name}`);
|
|
46
|
+
}
|
|
47
|
+
lines.push(' }');
|
|
48
|
+
}
|
|
49
|
+
// Render enums as entities with members
|
|
50
|
+
for (const en of enums) {
|
|
51
|
+
const eid = mermaidId(en.name).toUpperCase();
|
|
52
|
+
lines.push(` ${eid} {`);
|
|
53
|
+
for (const member of en.members) {
|
|
54
|
+
lines.push(` enum ${member.name}`);
|
|
55
|
+
}
|
|
56
|
+
lines.push(' }');
|
|
57
|
+
}
|
|
58
|
+
// Render relationships from field_type edges within this module
|
|
59
|
+
const modulePrefix = mod.id + '.';
|
|
60
|
+
const fieldTypeEdges = edges.filter(e => e.kind === 'field_type' && e.from.startsWith(modulePrefix));
|
|
61
|
+
// Build name lookup once to avoid O(n²) scanning
|
|
62
|
+
const nameById = new Map();
|
|
63
|
+
for (const e of entities)
|
|
64
|
+
nameById.set(e.id, e.name);
|
|
65
|
+
for (const v of values)
|
|
66
|
+
nameById.set(v.id, v.name);
|
|
67
|
+
for (const en of enums)
|
|
68
|
+
nameById.set(en.id, en.name);
|
|
69
|
+
const rendered = new Set();
|
|
70
|
+
for (const edge of fieldTypeEdges) {
|
|
71
|
+
/* v8 ignore next -- field_type edges always reference known entities */
|
|
72
|
+
const fromNode = nameById.get(edge.from) ?? null;
|
|
73
|
+
const toNode = nameById.get(edge.to) ?? null;
|
|
74
|
+
if (!fromNode || !toNode)
|
|
75
|
+
continue;
|
|
76
|
+
const fromId = mermaidId(fromNode).toUpperCase();
|
|
77
|
+
const toId = mermaidId(toNode).toUpperCase();
|
|
78
|
+
const key = `${fromId}-${toId}`;
|
|
79
|
+
if (rendered.has(key))
|
|
80
|
+
continue;
|
|
81
|
+
rendered.add(key);
|
|
82
|
+
const cardinality = inferCardinality(entities, values, edge.from, edge.to);
|
|
83
|
+
lines.push(` ${fromId} ${cardinality} ${toId} : "references"`);
|
|
84
|
+
}
|
|
85
|
+
lines.push('```');
|
|
86
|
+
return lines;
|
|
87
|
+
}
|
|
88
|
+
function inferCardinality(entities, values, fromId, toId) {
|
|
89
|
+
// Look at the from entity's fields to find the field referencing toId
|
|
90
|
+
const allFieldContainers = [...entities, ...values];
|
|
91
|
+
for (const container of allFieldContainers) {
|
|
92
|
+
if (!fromId.startsWith(container.id))
|
|
93
|
+
continue;
|
|
94
|
+
for (const field of container.fields) {
|
|
95
|
+
if (refPointsTo(field.type, toId)) {
|
|
96
|
+
return getCardinalitySymbol(field.type);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return '||--||';
|
|
101
|
+
}
|
|
102
|
+
function refPointsTo(type, targetId) {
|
|
103
|
+
if (typeof type === 'string')
|
|
104
|
+
return false;
|
|
105
|
+
if ('ref' in type)
|
|
106
|
+
return type.ref === targetId || targetId.endsWith(`.${extractName(type.ref)}`);
|
|
107
|
+
/* v8 ignore next 2 -- exhaustive: type is always string | ref | generic */
|
|
108
|
+
if ('generic' in type)
|
|
109
|
+
return refPointsTo(type.arg, targetId);
|
|
110
|
+
/* v8 ignore next 2 -- exhaustive: type is always string | ref | generic */
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
function extractName(ref) {
|
|
114
|
+
const parts = ref.split('.');
|
|
115
|
+
/* v8 ignore next -- split always returns ≥1 element */
|
|
116
|
+
return parts[parts.length - 1] ?? ref;
|
|
117
|
+
}
|
|
118
|
+
function getCardinalitySymbol(type) {
|
|
119
|
+
/* v8 ignore next -- only called with ref or generic types */
|
|
120
|
+
if (typeof type === 'string')
|
|
121
|
+
return '||--||';
|
|
122
|
+
if ('ref' in type)
|
|
123
|
+
return '||--||';
|
|
124
|
+
/* v8 ignore next 4 -- all known generics handled above */
|
|
125
|
+
if ('generic' in type) {
|
|
126
|
+
if (type.generic === 'optional')
|
|
127
|
+
return '||--o|';
|
|
128
|
+
if (type.generic === 'list')
|
|
129
|
+
return '||--o{';
|
|
130
|
+
}
|
|
131
|
+
/* v8 ignore next 2 -- only optional and list generics are used */
|
|
132
|
+
return '||--||';
|
|
133
|
+
}
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Workflow Flowchart
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
/**
|
|
138
|
+
* Render a Mermaid flowchart for a single workflow.
|
|
139
|
+
*/
|
|
140
|
+
export function renderWorkflowFlowchart(workflow) {
|
|
141
|
+
if (!workflow.steps || workflow.steps.length === 0)
|
|
142
|
+
return [];
|
|
143
|
+
const lines = [];
|
|
144
|
+
lines.push('```mermaid');
|
|
145
|
+
lines.push('flowchart TD');
|
|
146
|
+
const wfId = mermaidId(workflow.name);
|
|
147
|
+
lines.push(` START([${workflow.name}]) --> S0`);
|
|
148
|
+
let idx = 0;
|
|
149
|
+
for (const step of workflow.steps) {
|
|
150
|
+
const nodeId = `S${idx}`;
|
|
151
|
+
const nextId = idx + 1 < workflow.steps.length ? `S${idx + 1}` : null;
|
|
152
|
+
if ('call' in step) {
|
|
153
|
+
lines.push(` ${nodeId}[${step.call}]`);
|
|
154
|
+
if (nextId) {
|
|
155
|
+
lines.push(` ${nodeId} --> ${nextId}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else if ('fail' in step) {
|
|
159
|
+
lines.push(` ${nodeId}{{${step.fail}}}`);
|
|
160
|
+
}
|
|
161
|
+
else if ('decide' in step) {
|
|
162
|
+
lines.push(` ${nodeId}{${step.decide}?}`);
|
|
163
|
+
for (const branch of step.branches) {
|
|
164
|
+
const branchId = `${nodeId}_${mermaidId(branch.when)}`;
|
|
165
|
+
if (branch.action.call) {
|
|
166
|
+
lines.push(` ${nodeId} -->|${branch.when}| ${branchId}[${branch.action.call}]`);
|
|
167
|
+
if (nextId) {
|
|
168
|
+
lines.push(` ${branchId} --> ${nextId}`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else if (branch.action.fail) {
|
|
172
|
+
lines.push(` ${nodeId} -->|${branch.when}| ${branchId}{{${branch.action.fail}}}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Default branch to next step
|
|
176
|
+
if (nextId) {
|
|
177
|
+
lines.push(` ${nodeId} -->|other| ${nextId}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
idx++;
|
|
181
|
+
}
|
|
182
|
+
// Effects
|
|
183
|
+
const lastStepId = `S${workflow.steps.length - 1}`;
|
|
184
|
+
if (workflow.effects) {
|
|
185
|
+
let effIdx = 0;
|
|
186
|
+
for (const effect of workflow.effects) {
|
|
187
|
+
const effId = `EFF${effIdx}`;
|
|
188
|
+
/* v8 ignore next -- effect always has entries */
|
|
189
|
+
const [kind, value] = Object.entries(effect)[0] ?? ['effect', 'unknown'];
|
|
190
|
+
lines.push(` ${lastStepId} --> ${effId}>${kind}: ${value}]`);
|
|
191
|
+
effIdx++;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
lines.push('```');
|
|
195
|
+
return lines;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=mermaid-renderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mermaid-renderers.js","sourceRoot":"","sources":["../../src/doc-gen/mermaid-renderers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ModuleNode, ProductGraph } from '../graph/graph-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Render a complete human-readable markdown document for one module.
|
|
4
|
+
*/
|
|
5
|
+
export declare function renderModuleDoc(mod: ModuleNode, graph: ProductGraph, resolveString: (ref: string | null) => string | null, resolveLink: (nodeId: string, fromModule: string) => string): string;
|
|
6
|
+
//# sourceMappingURL=module-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-renderer.d.ts","sourceRoot":"","sources":["../../src/doc-gen/module-renderer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAkBxE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,EACpD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,GAC1D,MAAM,CAiDR"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Doc-Gen Module Renderer
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Orchestrates all section renderers to produce a complete module doc.
|
|
5
|
+
import { renderBanner, humanize } from './format-helpers.js';
|
|
6
|
+
import { renderActorsSection, renderDomainSection, renderRulesSection, renderWorkflowsSection, renderActionsSection, renderEventsSection, renderSchedulesSection, renderSurfacesSection, renderDesignSection, renderStorageSection, renderGovernanceSection, renderTestsSection, } from './section-renderers.js';
|
|
7
|
+
/**
|
|
8
|
+
* Render a complete human-readable markdown document for one module.
|
|
9
|
+
*/
|
|
10
|
+
export function renderModuleDoc(mod, graph, resolveString, resolveLink) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
// Source file hint — use the module name as the source reference
|
|
13
|
+
lines.push(...renderBanner(`${mod.name}.prd`));
|
|
14
|
+
lines.push(`# ${humanize(mod.name)}`);
|
|
15
|
+
lines.push('');
|
|
16
|
+
// Imports
|
|
17
|
+
if (mod.imports.length > 0) {
|
|
18
|
+
lines.push('**Imports:**');
|
|
19
|
+
for (const imp of mod.imports) {
|
|
20
|
+
lines.push(`- \`${imp.symbol}\` from \`${imp.from}\`${imp.alias ? ` (as \`${imp.alias}\`)` : ''}`);
|
|
21
|
+
}
|
|
22
|
+
lines.push('');
|
|
23
|
+
}
|
|
24
|
+
// Build section context
|
|
25
|
+
const ctx = {
|
|
26
|
+
mod,
|
|
27
|
+
edges: graph.edges,
|
|
28
|
+
resolveString,
|
|
29
|
+
resolveLink,
|
|
30
|
+
};
|
|
31
|
+
// Render all sections in order
|
|
32
|
+
const sectionRenderers = [
|
|
33
|
+
renderActorsSection,
|
|
34
|
+
renderDomainSection,
|
|
35
|
+
renderRulesSection,
|
|
36
|
+
renderWorkflowsSection,
|
|
37
|
+
renderActionsSection,
|
|
38
|
+
renderEventsSection,
|
|
39
|
+
renderSchedulesSection,
|
|
40
|
+
renderSurfacesSection,
|
|
41
|
+
renderDesignSection,
|
|
42
|
+
renderStorageSection,
|
|
43
|
+
renderGovernanceSection,
|
|
44
|
+
renderTestsSection,
|
|
45
|
+
];
|
|
46
|
+
for (const renderer of sectionRenderers) {
|
|
47
|
+
const sectionLines = renderer(ctx);
|
|
48
|
+
if (sectionLines.length > 0) {
|
|
49
|
+
lines.push(...sectionLines);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return lines.join('\n');
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=module-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-renderer.js","sourceRoot":"","sources":["../../src/doc-gen/module-renderer.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAC9E,uEAAuE;AAGvE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAe,EACf,KAAmB,EACnB,aAAoD,EACpD,WAA2D;IAE3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,UAAU;IACV,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,wBAAwB;IACxB,MAAM,GAAG,GAAmB;QAC1B,GAAG;QACH,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa;QACb,WAAW;KACZ,CAAC;IAEF,+BAA+B;IAC/B,MAAM,gBAAgB,GAAG;QACvB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,uBAAuB;QACvB,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ProductGraph } from '../graph/graph-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Render the product-level README.md overview document.
|
|
4
|
+
*/
|
|
5
|
+
export declare function renderProductOverview(graph: ProductGraph, resolveString: (ref: string | null) => string | null): string;
|
|
6
|
+
//# sourceMappingURL=product-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-renderer.d.ts","sourceRoot":"","sources":["../../src/doc-gen/product-renderer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,yBAAyB,CAAC;AAQxE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,GACnD,MAAM,CAqFR"}
|