@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,79 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Multi-Agent Party Mode
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Orchestrates multiple specialized agents working as a team on the
|
|
5
|
+
// Product Graph. Each agent receives a graph slice relevant to its role.
|
|
6
|
+
import { sliceGraph } from '../generator/contracts.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Role → Graph Slice mapping
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const ROLE_SLICES = {
|
|
11
|
+
architect: ['backend', 'frontend', 'api', 'schema', 'runtime'],
|
|
12
|
+
security: ['runtime', 'api'],
|
|
13
|
+
developer: ['backend', 'frontend', 'api', 'schema'],
|
|
14
|
+
qa: ['test', 'schema'],
|
|
15
|
+
ux: ['frontend'],
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Get the graph slices relevant to a party role.
|
|
19
|
+
*/
|
|
20
|
+
export function getSlicesForRole(graph, role) {
|
|
21
|
+
return ROLE_SLICES[role].map(cat => sliceGraph(graph, cat));
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Orchestrator
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Run a party-mode review session.
|
|
28
|
+
*
|
|
29
|
+
* Each round:
|
|
30
|
+
* 1. Each agent reviews the full graph (agents are reviewers with role context)
|
|
31
|
+
* 2. Findings are collected
|
|
32
|
+
* 3. Consensus is checked — no new critical/error findings → done
|
|
33
|
+
* 4. If max rounds reached → stop
|
|
34
|
+
*/
|
|
35
|
+
export function runParty(graph, spec, config) {
|
|
36
|
+
const rounds = [];
|
|
37
|
+
let previousCriticalCount = 0;
|
|
38
|
+
for (let r = 1; r <= config.maxRounds; r++) {
|
|
39
|
+
const agentResults = [];
|
|
40
|
+
for (const agent of config.agents) {
|
|
41
|
+
const findings = agent.reviewer.review(graph, spec);
|
|
42
|
+
agentResults.push({ role: agent.role, findings });
|
|
43
|
+
}
|
|
44
|
+
const allFindings = agentResults.flatMap(ar => ar.findings);
|
|
45
|
+
const criticalCount = allFindings.filter(f => f.severity === 'critical' || f.severity === 'error').length;
|
|
46
|
+
const consensusReached = r > 1 && criticalCount <= previousCriticalCount;
|
|
47
|
+
previousCriticalCount = criticalCount;
|
|
48
|
+
rounds.push({ roundNumber: r, agentResults, consensusReached });
|
|
49
|
+
if (consensusReached || criticalCount === 0)
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
const totalFindings = rounds.flatMap(r => r.agentResults).flatMap(ar => ar.findings).length;
|
|
53
|
+
const finalConsensus = rounds.length > 0 && (rounds[rounds.length - 1].consensusReached || totalFindings === 0);
|
|
54
|
+
return { rounds, finalConsensus, totalFindings };
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Format party results for human output.
|
|
58
|
+
*/
|
|
59
|
+
export function formatPartyHuman(result) {
|
|
60
|
+
const lines = [];
|
|
61
|
+
lines.push(`Party Mode — ${result.rounds.length} round(s), ${result.totalFindings} findings`);
|
|
62
|
+
lines.push(`Consensus: ${result.finalConsensus ? 'YES' : 'NO'}`);
|
|
63
|
+
lines.push('');
|
|
64
|
+
for (const round of result.rounds) {
|
|
65
|
+
lines.push(`## Round ${round.roundNumber}`);
|
|
66
|
+
for (const ar of round.agentResults) {
|
|
67
|
+
const count = ar.findings.length;
|
|
68
|
+
lines.push(` ${ar.role}: ${count} finding${count !== 1 ? 's' : ''}`);
|
|
69
|
+
for (const f of ar.findings) {
|
|
70
|
+
/* v8 ignore next -- severity ternary: info is the uncommon path */
|
|
71
|
+
const icon = f.severity === 'critical' || f.severity === 'error' ? '✗' : f.severity === 'warning' ? '⚠' : 'ℹ';
|
|
72
|
+
lines.push(` ${icon} [${f.severity}] ${f.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
lines.push('');
|
|
76
|
+
}
|
|
77
|
+
return lines.join('\n');
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=party.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"party.js","sourceRoot":"","sources":["../../src/agent/party.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type AgentPlatform = 'copilot' | 'claude' | 'cursor' | 'opencode' | 'codex' | 'gemini' | 'windsurf' | 'kiro' | 'jules' | 'amp' | 'roo' | 'aider' | 'cline' | 'continue' | 'zed' | 'bolt' | 'aide' | 'trae' | 'augment' | 'sourcegraph' | 'tabnine' | 'supermaven' | 'void' | 'pear' | 'double' | 'generic' | 'api';
|
|
2
|
+
export type AgentCapability = 'implement' | 'review' | 'clarify' | 'fix';
|
|
3
|
+
export type AgentStatus = 'success' | 'error' | 'timeout' | 'skipped';
|
|
4
|
+
export interface AgentRequest {
|
|
5
|
+
readonly prompt: string;
|
|
6
|
+
readonly context: AgentContext;
|
|
7
|
+
readonly capability: AgentCapability;
|
|
8
|
+
readonly platform: AgentPlatform;
|
|
9
|
+
}
|
|
10
|
+
export interface AgentContext {
|
|
11
|
+
readonly constitution: string | null;
|
|
12
|
+
readonly graphSlice: string | null;
|
|
13
|
+
readonly governance: string | null;
|
|
14
|
+
readonly additionalContext: Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
export interface AgentResponse {
|
|
17
|
+
readonly content: string;
|
|
18
|
+
readonly status: AgentStatus;
|
|
19
|
+
readonly metadata: AgentMetadata;
|
|
20
|
+
}
|
|
21
|
+
export interface AgentMetadata {
|
|
22
|
+
readonly platform: AgentPlatform;
|
|
23
|
+
readonly duration_ms: number;
|
|
24
|
+
readonly tokens_used: number | null;
|
|
25
|
+
readonly model: string | null;
|
|
26
|
+
}
|
|
27
|
+
export interface AgentDriver {
|
|
28
|
+
readonly platform: AgentPlatform;
|
|
29
|
+
execute(request: AgentRequest): Promise<AgentResponse>;
|
|
30
|
+
}
|
|
31
|
+
export interface PromptFileOutput {
|
|
32
|
+
readonly path: string;
|
|
33
|
+
readonly content: string;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GACrB,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GACtD,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GACxD,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GACxD,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAC7D,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ResolvedAuditConfig } from '../config/config.js';
|
|
2
|
+
import type { AuditRecord, AuditPhase, AuditOutcome, AuditBlocker } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a new audit record builder.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createAuditRecord(specSummary: string): AuditRecordBuilder;
|
|
7
|
+
/**
|
|
8
|
+
* Write an audit record to disk at the configured path.
|
|
9
|
+
* Creates the audit directory if needed.
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeAuditRecord(root: string, config: ResolvedAuditConfig, record: AuditRecord): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* List existing audit records in the audit directory.
|
|
14
|
+
*/
|
|
15
|
+
export declare function listAuditRecords(root: string, config: ResolvedAuditConfig): string[];
|
|
16
|
+
export declare class AuditRecordBuilder {
|
|
17
|
+
private readonly startTime;
|
|
18
|
+
private readonly phases;
|
|
19
|
+
private outcome;
|
|
20
|
+
private blocker;
|
|
21
|
+
private filesChanged;
|
|
22
|
+
private configOptions;
|
|
23
|
+
private readonly specSummary;
|
|
24
|
+
constructor(specSummary: string);
|
|
25
|
+
addPhase(phase: AuditPhase): this;
|
|
26
|
+
setOutcome(outcome: AuditOutcome): this;
|
|
27
|
+
setBlocker(blocker: AuditBlocker): this;
|
|
28
|
+
setFilesChanged(files: readonly string[]): this;
|
|
29
|
+
setConfigOptions(options: Record<string, unknown>): this;
|
|
30
|
+
build(): AuditRecord;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/audit/audit.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAEzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,WAAW,GAClB,MAAM,GAAG,IAAI,CAkBf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAQpF;AAMD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,WAAW,EAAE,MAAM;IAK/B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKvC,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMvC,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAK/C,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKxD,KAAK,IAAI,WAAW;CAYrB"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Audit Logging
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Writes JSON audit records per run to the configured audit path.
|
|
5
|
+
// Never logs secrets, API keys, or user input verbatim.
|
|
6
|
+
import { writeFileSync, mkdirSync, existsSync, readdirSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
/**
|
|
9
|
+
* Create a new audit record builder.
|
|
10
|
+
*/
|
|
11
|
+
export function createAuditRecord(specSummary) {
|
|
12
|
+
return new AuditRecordBuilder(specSummary);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Write an audit record to disk at the configured path.
|
|
16
|
+
* Creates the audit directory if needed.
|
|
17
|
+
*/
|
|
18
|
+
export function writeAuditRecord(root, config, record) {
|
|
19
|
+
if (!config.enabled)
|
|
20
|
+
return null;
|
|
21
|
+
const dir = join(root, config.path);
|
|
22
|
+
if (!existsSync(dir)) {
|
|
23
|
+
mkdirSync(dir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
// Use ISO timestamp with safe filename characters
|
|
26
|
+
const safeTimestamp = record.timestamp.replace(/[:.]/g, '-');
|
|
27
|
+
const filename = `${safeTimestamp}.json`;
|
|
28
|
+
const filePath = join(dir, filename);
|
|
29
|
+
// Sanitize before writing
|
|
30
|
+
const sanitized = sanitizeRecord(record);
|
|
31
|
+
writeFileSync(filePath, JSON.stringify(sanitized, null, 2), 'utf-8');
|
|
32
|
+
return filePath;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* List existing audit records in the audit directory.
|
|
36
|
+
*/
|
|
37
|
+
export function listAuditRecords(root, config) {
|
|
38
|
+
const dir = join(root, config.path);
|
|
39
|
+
if (!existsSync(dir))
|
|
40
|
+
return [];
|
|
41
|
+
return readdirSync(dir)
|
|
42
|
+
.filter(f => f.endsWith('.json'))
|
|
43
|
+
.sort()
|
|
44
|
+
.map(f => join(dir, f));
|
|
45
|
+
}
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// Builder
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
export class AuditRecordBuilder {
|
|
50
|
+
startTime;
|
|
51
|
+
phases = [];
|
|
52
|
+
outcome = 'success';
|
|
53
|
+
blocker = null;
|
|
54
|
+
filesChanged = [];
|
|
55
|
+
configOptions = {};
|
|
56
|
+
specSummary;
|
|
57
|
+
constructor(specSummary) {
|
|
58
|
+
this.startTime = new Date().toISOString();
|
|
59
|
+
this.specSummary = specSummary;
|
|
60
|
+
}
|
|
61
|
+
addPhase(phase) {
|
|
62
|
+
this.phases.push(phase);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
setOutcome(outcome) {
|
|
66
|
+
this.outcome = outcome;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
setBlocker(blocker) {
|
|
70
|
+
this.blocker = blocker;
|
|
71
|
+
this.outcome = 'blocked';
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
setFilesChanged(files) {
|
|
75
|
+
this.filesChanged = [...files];
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
setConfigOptions(options) {
|
|
79
|
+
this.configOptions = sanitizeConfigOptions(options);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
build() {
|
|
83
|
+
return {
|
|
84
|
+
timestamp: this.startTime,
|
|
85
|
+
compiler_version: '0.1.0',
|
|
86
|
+
spec_summary: this.specSummary,
|
|
87
|
+
config_options: this.configOptions,
|
|
88
|
+
phases: [...this.phases],
|
|
89
|
+
outcome: this.outcome,
|
|
90
|
+
blocker: this.blocker,
|
|
91
|
+
files_changed: [...this.filesChanged],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
// Sanitization
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
const SENSITIVE_KEYS = new Set(['apiKey', 'api_key', 'secret', 'token', 'password', 'credentials']);
|
|
99
|
+
function sanitizeRecord(record) {
|
|
100
|
+
return {
|
|
101
|
+
...record,
|
|
102
|
+
config_options: sanitizeConfigOptions(record.config_options),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function sanitizeConfigOptions(options) {
|
|
106
|
+
const result = {};
|
|
107
|
+
for (const [key, value] of Object.entries(options)) {
|
|
108
|
+
if (SENSITIVE_KEYS.has(key)) {
|
|
109
|
+
result[key] = '[REDACTED]';
|
|
110
|
+
}
|
|
111
|
+
else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
112
|
+
result[key] = sanitizeConfigOptions(value);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
result[key] = value;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/audit/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type AuditPhaseStatus = 'ok' | 'warn' | 'error' | 'skipped';
|
|
2
|
+
export interface AuditPhase {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly status: AuditPhaseStatus;
|
|
5
|
+
readonly duration_ms: number;
|
|
6
|
+
readonly metrics: Record<string, number>;
|
|
7
|
+
}
|
|
8
|
+
export type AuditOutcome = 'success' | 'failed' | 'partial' | 'blocked';
|
|
9
|
+
export interface AuditBlocker {
|
|
10
|
+
readonly phase: string;
|
|
11
|
+
readonly reason: string;
|
|
12
|
+
readonly impact: string;
|
|
13
|
+
readonly resolution: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AuditRecord {
|
|
16
|
+
readonly timestamp: string;
|
|
17
|
+
readonly compiler_version: string;
|
|
18
|
+
readonly spec_summary: string;
|
|
19
|
+
readonly config_options: Record<string, unknown>;
|
|
20
|
+
readonly phases: readonly AuditPhase[];
|
|
21
|
+
readonly outcome: AuditOutcome;
|
|
22
|
+
readonly blocker: AuditBlocker | null;
|
|
23
|
+
readonly files_changed: readonly string[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/audit/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/audit/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AstFile, ModuleItem, ImportDecl } from '../parser/ast.js';
|
|
2
|
+
import type { NodeKind } from '../types.js';
|
|
3
|
+
import { DiagnosticBag } from '../diagnostics/diagnostic.js';
|
|
4
|
+
export interface Symbol {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly qualifiedName: string;
|
|
7
|
+
readonly nodeKind: NodeKind;
|
|
8
|
+
readonly module: string;
|
|
9
|
+
readonly declaration: ModuleItem;
|
|
10
|
+
readonly file: string;
|
|
11
|
+
readonly line: number;
|
|
12
|
+
readonly column: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ModuleSymbolTable {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly symbols: ReadonlyMap<string, Symbol>;
|
|
17
|
+
readonly imports: readonly ResolvedImport[];
|
|
18
|
+
}
|
|
19
|
+
export interface ResolvedImport {
|
|
20
|
+
readonly localName: string;
|
|
21
|
+
readonly qualifiedName: string;
|
|
22
|
+
readonly sourceModule: string;
|
|
23
|
+
readonly originalSymbol: string;
|
|
24
|
+
readonly import: ImportDecl;
|
|
25
|
+
}
|
|
26
|
+
export interface BindResult {
|
|
27
|
+
readonly modules: ReadonlyMap<string, ModuleSymbolTable>;
|
|
28
|
+
readonly allSymbols: ReadonlyMap<string, Symbol>;
|
|
29
|
+
readonly productName: string | undefined;
|
|
30
|
+
readonly bag: DiagnosticBag;
|
|
31
|
+
}
|
|
32
|
+
export declare function bind(files: readonly AstFile[]): BindResult;
|
|
33
|
+
export declare function resolveSymbolRef(segments: readonly string[], fromModule: string, modules: ReadonlyMap<string, ModuleSymbolTable>, allSymbols: ReadonlyMap<string, Symbol>): Symbol | null;
|
|
34
|
+
//# sourceMappingURL=binder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder/binder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAc,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAuC,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAK7D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAKD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;CAC7B;AA8CD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,GAAG,UAAU,CA+H1D;AAKD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC/C,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,MAAM,GAAG,IAAI,CAkCf"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Prodara Compiler — Binder
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// The binder merges open modules, builds symbol tables, resolves imports,
|
|
5
|
+
// and detects duplicate/ambiguous symbols
|
|
6
|
+
import { DiagnosticBag } from '../diagnostics/diagnostic.js';
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// nodeKind mapping from AST kind string
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
function itemNodeKind(item) {
|
|
11
|
+
switch (item.kind) {
|
|
12
|
+
case 'import': /* v8 ignore next */ return null; // imports are not symbols
|
|
13
|
+
case 'entity': return 'entity';
|
|
14
|
+
case 'value': return 'value';
|
|
15
|
+
case 'enum': return 'enum';
|
|
16
|
+
case 'rule': return 'rule';
|
|
17
|
+
case 'actor': return 'actor';
|
|
18
|
+
case 'capability': return 'capability';
|
|
19
|
+
case 'workflow': return 'workflow';
|
|
20
|
+
case 'action': return 'action';
|
|
21
|
+
case 'event': return 'event';
|
|
22
|
+
case 'schedule': return 'schedule';
|
|
23
|
+
case 'surface': return 'surface';
|
|
24
|
+
case 'rendering': return 'rendering';
|
|
25
|
+
case 'tokens': return 'tokens';
|
|
26
|
+
case 'theme': return 'theme';
|
|
27
|
+
case 'strings': return 'strings';
|
|
28
|
+
case 'serialization': return 'serialization';
|
|
29
|
+
case 'integration': return 'integration';
|
|
30
|
+
case 'transport': return 'transport';
|
|
31
|
+
case 'storage': return 'storage';
|
|
32
|
+
case 'execution': return 'execution';
|
|
33
|
+
case 'extension': return 'extension';
|
|
34
|
+
case 'constitution': return 'constitution';
|
|
35
|
+
case 'security': return 'security';
|
|
36
|
+
case 'privacy': return 'privacy';
|
|
37
|
+
case 'validation': return 'validation';
|
|
38
|
+
case 'secret': return 'secret';
|
|
39
|
+
case 'environment': return 'environment';
|
|
40
|
+
case 'deployment': return 'deployment';
|
|
41
|
+
case 'test': return 'test';
|
|
42
|
+
case 'product_ref': return 'product_ref';
|
|
43
|
+
/* v8 ignore next */
|
|
44
|
+
default: return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// Binder
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
export function bind(files) {
|
|
51
|
+
const bag = new DiagnosticBag();
|
|
52
|
+
// 1. Merge open modules — group module items by name across all files
|
|
53
|
+
const mergedModules = new Map();
|
|
54
|
+
let productName;
|
|
55
|
+
for (const file of files) {
|
|
56
|
+
for (const decl of file.declarations) {
|
|
57
|
+
if (decl.kind === 'product') {
|
|
58
|
+
if (productName !== undefined && productName !== decl.name) {
|
|
59
|
+
bag.add({
|
|
60
|
+
phase: 'binder', category: 'semantic_error', severity: 'error',
|
|
61
|
+
code: 'PRD0200', message: `Duplicate product declaration '${decl.name}' (already declared as '${productName}')`,
|
|
62
|
+
file: file.path, line: decl.location.line, column: decl.location.column,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
productName = decl.name;
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (decl.kind === 'module') {
|
|
69
|
+
let merged = mergedModules.get(decl.name);
|
|
70
|
+
if (!merged) {
|
|
71
|
+
merged = { items: [], files: new Set() };
|
|
72
|
+
mergedModules.set(decl.name, merged);
|
|
73
|
+
}
|
|
74
|
+
merged.files.add(file.path);
|
|
75
|
+
for (const item of decl.items) {
|
|
76
|
+
merged.items.push(item);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// 2. Build symbol tables per module
|
|
82
|
+
const allSymbols = new Map();
|
|
83
|
+
const moduleTables = new Map();
|
|
84
|
+
for (const [modName, merged] of mergedModules) {
|
|
85
|
+
const symbols = new Map();
|
|
86
|
+
const imports = [];
|
|
87
|
+
for (const item of merged.items) {
|
|
88
|
+
if (item.kind === 'import') {
|
|
89
|
+
imports.push(item);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const nk = itemNodeKind(item);
|
|
93
|
+
/* v8 ignore next */
|
|
94
|
+
if (!nk)
|
|
95
|
+
continue;
|
|
96
|
+
const name = item.name;
|
|
97
|
+
const qualifiedName = `${modName}.${name}`;
|
|
98
|
+
if (symbols.has(name)) {
|
|
99
|
+
const existing = symbols.get(name);
|
|
100
|
+
bag.add({
|
|
101
|
+
phase: 'binder', category: 'semantic_error', severity: 'error',
|
|
102
|
+
code: 'PRD0201',
|
|
103
|
+
message: `Duplicate declaration '${name}' in module '${modName}' (previously declared at ${existing.file}:${existing.line})`,
|
|
104
|
+
file: item.location.file, line: item.location.line, column: item.location.column,
|
|
105
|
+
});
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const sym = {
|
|
109
|
+
name, qualifiedName, nodeKind: nk, module: modName,
|
|
110
|
+
declaration: item,
|
|
111
|
+
file: item.location.file,
|
|
112
|
+
line: item.location.line,
|
|
113
|
+
column: item.location.column,
|
|
114
|
+
};
|
|
115
|
+
symbols.set(name, sym);
|
|
116
|
+
allSymbols.set(qualifiedName, sym);
|
|
117
|
+
}
|
|
118
|
+
// 3. Resolve imports
|
|
119
|
+
const resolvedImports = [];
|
|
120
|
+
for (const imp of imports) {
|
|
121
|
+
const fromModule = mergedModules.get(imp.from);
|
|
122
|
+
if (!fromModule) {
|
|
123
|
+
bag.add({
|
|
124
|
+
phase: 'binder', category: 'resolution_error', severity: 'error',
|
|
125
|
+
code: 'PRD0202',
|
|
126
|
+
message: `Module '${imp.from}' not found (imported in module '${modName}')`,
|
|
127
|
+
file: imp.location.file, line: imp.location.line, column: imp.location.column,
|
|
128
|
+
});
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const targetQualified = `${imp.from}.${imp.symbol}`;
|
|
132
|
+
const localName = imp.alias ?? imp.symbol;
|
|
133
|
+
resolvedImports.push({
|
|
134
|
+
localName,
|
|
135
|
+
qualifiedName: targetQualified,
|
|
136
|
+
sourceModule: imp.from,
|
|
137
|
+
originalSymbol: imp.symbol,
|
|
138
|
+
import: imp,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// Check for ambiguous imports (same local name)
|
|
142
|
+
const importsByLocal = new Map();
|
|
143
|
+
for (const ri of resolvedImports) {
|
|
144
|
+
const arr = importsByLocal.get(ri.localName) ?? [];
|
|
145
|
+
arr.push(ri);
|
|
146
|
+
importsByLocal.set(ri.localName, arr);
|
|
147
|
+
}
|
|
148
|
+
for (const [localName, arr] of importsByLocal) {
|
|
149
|
+
if (arr.length > 1) {
|
|
150
|
+
for (const ri of arr) {
|
|
151
|
+
bag.add({
|
|
152
|
+
phase: 'binder', category: 'resolution_error', severity: 'error',
|
|
153
|
+
code: 'PRD0203',
|
|
154
|
+
message: `Ambiguous import: '${localName}' imported from both '${arr[0].sourceModule}' and '${arr[1].sourceModule}'`,
|
|
155
|
+
file: ri.import.location.file, line: ri.import.location.line, column: ri.import.location.column,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
moduleTables.set(modName, { name: modName, symbols, imports: resolvedImports });
|
|
161
|
+
}
|
|
162
|
+
return { modules: moduleTables, allSymbols, productName, bag };
|
|
163
|
+
}
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
// Symbol Resolver — resolves a symbol_ref (string[]) from a given module context
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
export function resolveSymbolRef(segments, fromModule, modules, allSymbols) {
|
|
168
|
+
if (segments.length === 0)
|
|
169
|
+
return null;
|
|
170
|
+
// Fully qualified: module.name or module.enum.member etc.
|
|
171
|
+
if (segments.length >= 2) {
|
|
172
|
+
const qualifiedName = segments.join('.');
|
|
173
|
+
// Try direct lookup
|
|
174
|
+
const direct = allSymbols.get(qualifiedName);
|
|
175
|
+
if (direct)
|
|
176
|
+
return direct;
|
|
177
|
+
// Try module.name (first two segments)
|
|
178
|
+
const twoPartKey = `${segments[0]}.${segments[1]}`;
|
|
179
|
+
const sym = allSymbols.get(twoPartKey);
|
|
180
|
+
if (sym)
|
|
181
|
+
return sym;
|
|
182
|
+
}
|
|
183
|
+
// Unqualified: single identifier
|
|
184
|
+
if (segments.length === 1) {
|
|
185
|
+
const name = segments[0];
|
|
186
|
+
const moduleTable = modules.get(fromModule);
|
|
187
|
+
if (!moduleTable)
|
|
188
|
+
return null;
|
|
189
|
+
// 1. Current module declarations
|
|
190
|
+
const local = moduleTable.symbols.get(name);
|
|
191
|
+
if (local)
|
|
192
|
+
return local;
|
|
193
|
+
// 2. Import aliases first, then imported symbols
|
|
194
|
+
for (const imp of moduleTable.imports) {
|
|
195
|
+
if (imp.localName === name) {
|
|
196
|
+
return allSymbols.get(imp.qualifiedName) ?? null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=binder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binder.js","sourceRoot":"","sources":["../../src/binder/binder.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAC9E,0EAA0E;AAC1E,0CAA0C;AAI1C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AA2C7D,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAC9E,SAAS,YAAY,CAAC,IAAgB;IACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,CAAC,0BAA0B;QAC3E,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,eAAe,CAAC,CAAC,OAAO,eAAe,CAAC;QAC7C,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;QACrC,KAAK,cAAc,CAAC,CAAC,OAAO,cAAc,CAAC;QAC3C,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;QACzC,oBAAoB;QACpB,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAC9E,MAAM,UAAU,IAAI,CAAC,KAAyB;IAC5C,MAAM,GAAG,GAAG,IAAI,aAAa,EAAE,CAAC;IAEhC,sEAAsE;IACtE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuD,CAAC;IACrF,IAAI,WAA+B,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC;wBACN,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;wBAC9D,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kCAAkC,IAAI,CAAC,IAAI,2BAA2B,WAAW,IAAI;wBAC/G,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;qBACxE,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;oBACzC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE1D,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9B,oBAAoB;YACpB,IAAI,CAAC,EAAE;gBAAE,SAAS;YAElB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,MAAM,aAAa,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;YAE3C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC;oBACN,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO;oBAC9D,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,0BAA0B,IAAI,gBAAgB,OAAO,6BAA6B,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG;oBAC5H,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;iBACjF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAW;gBAClB,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO;gBAClD,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;aAC7B,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,qBAAqB;QACrB,MAAM,eAAe,GAAqB,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC;oBACN,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO;oBAChE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,WAAW,GAAG,CAAC,IAAI,oCAAoC,OAAO,IAAI;oBAC3E,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;iBAC9E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC;YAE1C,eAAe,CAAC,IAAI,CAAC;gBACnB,SAAS;gBACT,aAAa,EAAE,eAAe;gBAC9B,YAAY,EAAE,GAAG,CAAC,IAAI;gBACtB,cAAc,EAAE,GAAG,CAAC,MAAM;gBAC1B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAED,gDAAgD;QAChD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC3D,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;YAC9C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,GAAG,CAAC,GAAG,CAAC;wBACN,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO;wBAChE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,sBAAsB,SAAS,yBAAyB,GAAG,CAAC,CAAC,CAAE,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC,CAAE,CAAC,YAAY,GAAG;wBACtH,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;qBAChG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAC9B,QAA2B,EAC3B,UAAkB,EAClB,OAA+C,EAC/C,UAAuC;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,0DAA0D;IAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,oBAAoB;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,uCAAuC;QACvC,MAAM,UAAU,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IAED,iCAAiC;IACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,iCAAiC;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,iDAAiD;QACjD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/binder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|