@aster-cloud/aster-lang-ts 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -0
- package/dist/peg/headers-parser.js +1887 -0
- package/dist/scripts/aster.d.ts +3 -0
- package/dist/scripts/aster.d.ts.map +1 -0
- package/dist/scripts/aster.js +304 -0
- package/dist/scripts/aster.js.map +1 -0
- package/dist/scripts/build-example-packages.d.ts +3 -0
- package/dist/scripts/build-example-packages.d.ts.map +1 -0
- package/dist/scripts/build-example-packages.js +78 -0
- package/dist/scripts/build-example-packages.js.map +1 -0
- package/dist/scripts/build-peg.d.ts +3 -0
- package/dist/scripts/build-peg.d.ts.map +1 -0
- package/dist/scripts/build-peg.js +13 -0
- package/dist/scripts/build-peg.js.map +1 -0
- package/dist/scripts/cleanup-examples.d.ts +3 -0
- package/dist/scripts/cleanup-examples.d.ts.map +1 -0
- package/dist/scripts/cleanup-examples.js +40 -0
- package/dist/scripts/cleanup-examples.js.map +1 -0
- package/dist/scripts/clear-method-cache.d.ts +3 -0
- package/dist/scripts/clear-method-cache.d.ts.map +1 -0
- package/dist/scripts/clear-method-cache.js +20 -0
- package/dist/scripts/clear-method-cache.js.map +1 -0
- package/dist/scripts/cli.d.ts +3 -0
- package/dist/scripts/cli.d.ts.map +1 -0
- package/dist/scripts/cli.js +51 -0
- package/dist/scripts/cli.js.map +1 -0
- package/dist/scripts/determinism.d.ts +3 -0
- package/dist/scripts/determinism.d.ts.map +1 -0
- package/dist/scripts/determinism.js +124 -0
- package/dist/scripts/determinism.js.map +1 -0
- package/dist/scripts/emit-classfiles-core.d.ts +3 -0
- package/dist/scripts/emit-classfiles-core.d.ts.map +1 -0
- package/dist/scripts/emit-classfiles-core.js +86 -0
- package/dist/scripts/emit-classfiles-core.js.map +1 -0
- package/dist/scripts/emit-classfiles.d.ts +3 -0
- package/dist/scripts/emit-classfiles.d.ts.map +1 -0
- package/dist/scripts/emit-classfiles.js +401 -0
- package/dist/scripts/emit-classfiles.js.map +1 -0
- package/dist/scripts/emit-core.d.ts +3 -0
- package/dist/scripts/emit-core.d.ts.map +1 -0
- package/dist/scripts/emit-core.js +52 -0
- package/dist/scripts/emit-core.js.map +1 -0
- package/dist/scripts/emit-hints.d.ts +3 -0
- package/dist/scripts/emit-hints.d.ts.map +1 -0
- package/dist/scripts/emit-hints.js +75 -0
- package/dist/scripts/emit-hints.js.map +1 -0
- package/dist/scripts/format-examples.d.ts +3 -0
- package/dist/scripts/format-examples.d.ts.map +1 -0
- package/dist/scripts/format-examples.js +55 -0
- package/dist/scripts/format-examples.js.map +1 -0
- package/dist/scripts/generate_error_code_docs.d.ts +8 -0
- package/dist/scripts/generate_error_code_docs.d.ts.map +1 -0
- package/dist/scripts/generate_error_code_docs.js +128 -0
- package/dist/scripts/generate_error_code_docs.js.map +1 -0
- package/dist/scripts/generate_error_codes.d.ts +3 -0
- package/dist/scripts/generate_error_codes.d.ts.map +1 -0
- package/dist/scripts/generate_error_codes.js +224 -0
- package/dist/scripts/generate_error_codes.js.map +1 -0
- package/dist/scripts/golden.d.ts +3 -0
- package/dist/scripts/golden.d.ts.map +1 -0
- package/dist/scripts/golden.js +405 -0
- package/dist/scripts/golden.js.map +1 -0
- package/dist/scripts/health-check.d.ts +3 -0
- package/dist/scripts/health-check.d.ts.map +1 -0
- package/dist/scripts/health-check.js +42 -0
- package/dist/scripts/health-check.js.map +1 -0
- package/dist/scripts/inspect-method-cache.d.ts +3 -0
- package/dist/scripts/inspect-method-cache.d.ts.map +1 -0
- package/dist/scripts/inspect-method-cache.js +24 -0
- package/dist/scripts/inspect-method-cache.js.map +1 -0
- package/dist/scripts/lsp-build-index.d.ts +3 -0
- package/dist/scripts/lsp-build-index.d.ts.map +1 -0
- package/dist/scripts/lsp-build-index.js +60 -0
- package/dist/scripts/lsp-build-index.js.map +1 -0
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.d.ts +3 -0
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.js +161 -0
- package/dist/scripts/lsp-capmanifest-codeaction-smoke.js.map +1 -0
- package/dist/scripts/lsp-client-helper.d.ts +30 -0
- package/dist/scripts/lsp-client-helper.d.ts.map +1 -0
- package/dist/scripts/lsp-client-helper.js +192 -0
- package/dist/scripts/lsp-client-helper.js.map +1 -0
- package/dist/scripts/lsp-client-helper.test.d.ts +7 -0
- package/dist/scripts/lsp-client-helper.test.d.ts.map +1 -0
- package/dist/scripts/lsp-client-helper.test.js +45 -0
- package/dist/scripts/lsp-client-helper.test.js.map +1 -0
- package/dist/scripts/lsp-codeaction-smoke.d.ts +3 -0
- package/dist/scripts/lsp-codeaction-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-codeaction-smoke.js +98 -0
- package/dist/scripts/lsp-codeaction-smoke.js.map +1 -0
- package/dist/scripts/lsp-harness.d.ts +3 -0
- package/dist/scripts/lsp-harness.d.ts.map +1 -0
- package/dist/scripts/lsp-harness.js +33 -0
- package/dist/scripts/lsp-harness.js.map +1 -0
- package/dist/scripts/lsp-health-smoke.d.ts +3 -0
- package/dist/scripts/lsp-health-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-health-smoke.js +98 -0
- package/dist/scripts/lsp-health-smoke.js.map +1 -0
- package/dist/scripts/lsp-health.d.ts +3 -0
- package/dist/scripts/lsp-health.d.ts.map +1 -0
- package/dist/scripts/lsp-health.js +22 -0
- package/dist/scripts/lsp-health.js.map +1 -0
- package/dist/scripts/lsp-highlight-smoke.d.ts +3 -0
- package/dist/scripts/lsp-highlight-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-highlight-smoke.js +124 -0
- package/dist/scripts/lsp-highlight-smoke.js.map +1 -0
- package/dist/scripts/lsp-missing-header-codeaction-smoke.d.ts +3 -0
- package/dist/scripts/lsp-missing-header-codeaction-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-missing-header-codeaction-smoke.js +78 -0
- package/dist/scripts/lsp-missing-header-codeaction-smoke.js.map +1 -0
- package/dist/scripts/lsp-multi-rename.test.d.ts +3 -0
- package/dist/scripts/lsp-multi-rename.test.d.ts.map +1 -0
- package/dist/scripts/lsp-multi-rename.test.js +81 -0
- package/dist/scripts/lsp-multi-rename.test.js.map +1 -0
- package/dist/scripts/lsp-punct-codeaction-smoke.d.ts +3 -0
- package/dist/scripts/lsp-punct-codeaction-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-punct-codeaction-smoke.js +71 -0
- package/dist/scripts/lsp-punct-codeaction-smoke.js.map +1 -0
- package/dist/scripts/lsp-signaturehelp-smoke.d.ts +3 -0
- package/dist/scripts/lsp-signaturehelp-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-signaturehelp-smoke.js +129 -0
- package/dist/scripts/lsp-signaturehelp-smoke.js.map +1 -0
- package/dist/scripts/lsp-smoke.d.ts +3 -0
- package/dist/scripts/lsp-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-smoke.js +54 -0
- package/dist/scripts/lsp-smoke.js.map +1 -0
- package/dist/scripts/lsp-streaming-progress-smoke.d.ts +3 -0
- package/dist/scripts/lsp-streaming-progress-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-streaming-progress-smoke.js +116 -0
- package/dist/scripts/lsp-streaming-progress-smoke.js.map +1 -0
- package/dist/scripts/lsp-workspace-diagnostics-smoke.d.ts +3 -0
- package/dist/scripts/lsp-workspace-diagnostics-smoke.d.ts.map +1 -0
- package/dist/scripts/lsp-workspace-diagnostics-smoke.js +81 -0
- package/dist/scripts/lsp-workspace-diagnostics-smoke.js.map +1 -0
- package/dist/scripts/perf-assert-report.d.ts +8 -0
- package/dist/scripts/perf-assert-report.d.ts.map +1 -0
- package/dist/scripts/perf-assert-report.js +44 -0
- package/dist/scripts/perf-assert-report.js.map +1 -0
- package/dist/scripts/perf-assert.d.ts +3 -0
- package/dist/scripts/perf-assert.d.ts.map +1 -0
- package/dist/scripts/perf-assert.js +29 -0
- package/dist/scripts/perf-assert.js.map +1 -0
- package/dist/scripts/perf-benchmark.d.ts +9 -0
- package/dist/scripts/perf-benchmark.d.ts.map +1 -0
- package/dist/scripts/perf-benchmark.js +272 -0
- package/dist/scripts/perf-benchmark.js.map +1 -0
- package/dist/scripts/perf-diagnostics.d.ts +7 -0
- package/dist/scripts/perf-diagnostics.d.ts.map +1 -0
- package/dist/scripts/perf-diagnostics.js +87 -0
- package/dist/scripts/perf-diagnostics.js.map +1 -0
- package/dist/scripts/perf-lsp-e2e-v2.d.ts +15 -0
- package/dist/scripts/perf-lsp-e2e-v2.d.ts.map +1 -0
- package/dist/scripts/perf-lsp-e2e-v2.js +323 -0
- package/dist/scripts/perf-lsp-e2e-v2.js.map +1 -0
- package/dist/scripts/perf-lsp-e2e.d.ts +3 -0
- package/dist/scripts/perf-lsp-e2e.d.ts.map +1 -0
- package/dist/scripts/perf-lsp-e2e.js +331 -0
- package/dist/scripts/perf-lsp-e2e.js.map +1 -0
- package/dist/scripts/perf-lsp-internal.d.ts +11 -0
- package/dist/scripts/perf-lsp-internal.d.ts.map +1 -0
- package/dist/scripts/perf-lsp-internal.js +163 -0
- package/dist/scripts/perf-lsp-internal.js.map +1 -0
- package/dist/scripts/perf-lsp-ipc.d.ts +11 -0
- package/dist/scripts/perf-lsp-ipc.d.ts.map +1 -0
- package/dist/scripts/perf-lsp-ipc.js +127 -0
- package/dist/scripts/perf-lsp-ipc.js.map +1 -0
- package/dist/scripts/perf-lsp.d.ts +3 -0
- package/dist/scripts/perf-lsp.d.ts.map +1 -0
- package/dist/scripts/perf-lsp.js +87 -0
- package/dist/scripts/perf-lsp.js.map +1 -0
- package/dist/scripts/perf-utils.d.ts +29 -0
- package/dist/scripts/perf-utils.d.ts.map +1 -0
- package/dist/scripts/perf-utils.js +40 -0
- package/dist/scripts/perf-utils.js.map +1 -0
- package/dist/scripts/profile-medium-project.d.ts +7 -0
- package/dist/scripts/profile-medium-project.d.ts.map +1 -0
- package/dist/scripts/profile-medium-project.js +152 -0
- package/dist/scripts/profile-medium-project.js.map +1 -0
- package/dist/scripts/repl.d.ts +3 -0
- package/dist/scripts/repl.d.ts.map +1 -0
- package/dist/scripts/repl.js +88 -0
- package/dist/scripts/repl.js.map +1 -0
- package/dist/scripts/scaffold.d.ts +3 -0
- package/dist/scripts/scaffold.d.ts.map +1 -0
- package/dist/scripts/scaffold.js +73 -0
- package/dist/scripts/scaffold.js.map +1 -0
- package/dist/scripts/seed-method-cache.d.ts +3 -0
- package/dist/scripts/seed-method-cache.d.ts.map +1 -0
- package/dist/scripts/seed-method-cache.js +37 -0
- package/dist/scripts/seed-method-cache.js.map +1 -0
- package/dist/scripts/test-comments-golden.d.ts +3 -0
- package/dist/scripts/test-comments-golden.d.ts.map +1 -0
- package/dist/scripts/test-comments-golden.js +36 -0
- package/dist/scripts/test-comments-golden.js.map +1 -0
- package/dist/scripts/test-lossless-golden.d.ts +3 -0
- package/dist/scripts/test-lossless-golden.d.ts.map +1 -0
- package/dist/scripts/test-lossless-golden.js +42 -0
- package/dist/scripts/test-lossless-golden.js.map +1 -0
- package/dist/scripts/test-lossless.d.ts +3 -0
- package/dist/scripts/test-lossless.d.ts.map +1 -0
- package/dist/scripts/test-lossless.js +26 -0
- package/dist/scripts/test-lossless.js.map +1 -0
- package/dist/scripts/test-lsp-index.d.ts +3 -0
- package/dist/scripts/test-lsp-index.d.ts.map +1 -0
- package/dist/scripts/test-lsp-index.js +37 -0
- package/dist/scripts/test-lsp-index.js.map +1 -0
- package/dist/scripts/test-medium-diagnostics.d.ts +7 -0
- package/dist/scripts/test-medium-diagnostics.d.ts.map +1 -0
- package/dist/scripts/test-medium-diagnostics.js +129 -0
- package/dist/scripts/test-medium-diagnostics.js.map +1 -0
- package/dist/scripts/typecheck-cli.d.ts +3 -0
- package/dist/scripts/typecheck-cli.d.ts.map +1 -0
- package/dist/scripts/typecheck-cli.js +104 -0
- package/dist/scripts/typecheck-cli.js.map +1 -0
- package/dist/scripts/update-eff-violation-expected.d.ts +3 -0
- package/dist/scripts/update-eff-violation-expected.d.ts.map +1 -0
- package/dist/scripts/update-eff-violation-expected.js +57 -0
- package/dist/scripts/update-eff-violation-expected.js.map +1 -0
- package/dist/scripts/update-golden-ast.d.ts +3 -0
- package/dist/scripts/update-golden-ast.d.ts.map +1 -0
- package/dist/scripts/update-golden-ast.js +61 -0
- package/dist/scripts/update-golden-ast.js.map +1 -0
- package/dist/scripts/validate_error_codes.d.ts +12 -0
- package/dist/scripts/validate_error_codes.d.ts.map +1 -0
- package/dist/scripts/validate_error_codes.js +114 -0
- package/dist/scripts/validate_error_codes.js.map +1 -0
- package/dist/scripts/verify-capabilities.d.ts +3 -0
- package/dist/scripts/verify-capabilities.d.ts.map +1 -0
- package/dist/scripts/verify-capabilities.js +23 -0
- package/dist/scripts/verify-capabilities.js.map +1 -0
- package/dist/scripts/verify-classes.d.ts +3 -0
- package/dist/scripts/verify-classes.d.ts.map +1 -0
- package/dist/scripts/verify-classes.js +32 -0
- package/dist/scripts/verify-classes.js.map +1 -0
- package/dist/scripts/verify-examples.d.ts +3 -0
- package/dist/scripts/verify-examples.d.ts.map +1 -0
- package/dist/scripts/verify-examples.js +79 -0
- package/dist/scripts/verify-examples.js.map +1 -0
- package/dist/scripts/verify-fuzz.d.ts +3 -0
- package/dist/scripts/verify-fuzz.d.ts.map +1 -0
- package/dist/scripts/verify-fuzz.js +88 -0
- package/dist/scripts/verify-fuzz.js.map +1 -0
- package/dist/scripts/verify-jar-checksum.d.ts +3 -0
- package/dist/scripts/verify-jar-checksum.d.ts.map +1 -0
- package/dist/scripts/verify-jar-checksum.js +63 -0
- package/dist/scripts/verify-jar-checksum.js.map +1 -0
- package/dist/scripts/verify-nullstrict.d.ts +3 -0
- package/dist/scripts/verify-nullstrict.d.ts.map +1 -0
- package/dist/scripts/verify-nullstrict.js +20 -0
- package/dist/scripts/verify-nullstrict.js.map +1 -0
- package/dist/src/ai/generation-cache.d.ts +36 -0
- package/dist/src/ai/generation-cache.d.ts.map +1 -0
- package/dist/src/ai/generation-cache.js +91 -0
- package/dist/src/ai/generation-cache.js.map +1 -0
- package/dist/src/ai/generator.d.ts +105 -0
- package/dist/src/ai/generator.d.ts.map +1 -0
- package/dist/src/ai/generator.js +103 -0
- package/dist/src/ai/generator.js.map +1 -0
- package/dist/src/ai/llm-provider.d.ts +31 -0
- package/dist/src/ai/llm-provider.d.ts.map +1 -0
- package/dist/src/ai/llm-provider.js +17 -0
- package/dist/src/ai/llm-provider.js.map +1 -0
- package/dist/src/ai/prompt-manager.d.ts +48 -0
- package/dist/src/ai/prompt-manager.d.ts.map +1 -0
- package/dist/src/ai/prompt-manager.js +70 -0
- package/dist/src/ai/prompt-manager.js.map +1 -0
- package/dist/src/ai/provenance.d.ts +70 -0
- package/dist/src/ai/provenance.d.ts.map +1 -0
- package/dist/src/ai/provenance.js +95 -0
- package/dist/src/ai/provenance.js.map +1 -0
- package/dist/src/ai/providers/anthropic.d.ts +14 -0
- package/dist/src/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/src/ai/providers/anthropic.js +56 -0
- package/dist/src/ai/providers/anthropic.js.map +1 -0
- package/dist/src/ai/providers/openai.d.ts +15 -0
- package/dist/src/ai/providers/openai.d.ts.map +1 -0
- package/dist/src/ai/providers/openai.js +58 -0
- package/dist/src/ai/providers/openai.js.map +1 -0
- package/dist/src/ai/validator.d.ts +68 -0
- package/dist/src/ai/validator.d.ts.map +1 -0
- package/dist/src/ai/validator.js +108 -0
- package/dist/src/ai/validator.js.map +1 -0
- package/dist/src/ast/ast.d.ts +49 -0
- package/dist/src/ast/ast.d.ts.map +1 -0
- package/dist/src/ast/ast.js +191 -0
- package/dist/src/ast/ast.js.map +1 -0
- package/dist/src/ast/ast_visitor.d.ts +66 -0
- package/dist/src/ast/ast_visitor.d.ts.map +1 -0
- package/dist/src/ast/ast_visitor.js +176 -0
- package/dist/src/ast/ast_visitor.js.map +1 -0
- package/dist/src/ast/index.d.ts +13 -0
- package/dist/src/ast/index.d.ts.map +1 -0
- package/dist/src/ast/index.js +12 -0
- package/dist/src/ast/index.js.map +1 -0
- package/dist/src/cli/commands/ai-generate.d.ts +39 -0
- package/dist/src/cli/commands/ai-generate.d.ts.map +1 -0
- package/dist/src/cli/commands/ai-generate.js +146 -0
- package/dist/src/cli/commands/ai-generate.js.map +1 -0
- package/dist/src/cli/commands/install.d.ts +7 -0
- package/dist/src/cli/commands/install.d.ts.map +1 -0
- package/dist/src/cli/commands/install.js +146 -0
- package/dist/src/cli/commands/install.js.map +1 -0
- package/dist/src/cli/commands/list.d.ts +6 -0
- package/dist/src/cli/commands/list.d.ts.map +1 -0
- package/dist/src/cli/commands/list.js +158 -0
- package/dist/src/cli/commands/list.js.map +1 -0
- package/dist/src/cli/commands/search.d.ts +2 -0
- package/dist/src/cli/commands/search.d.ts.map +1 -0
- package/dist/src/cli/commands/search.js +174 -0
- package/dist/src/cli/commands/search.js.map +1 -0
- package/dist/src/cli/commands/update.d.ts +2 -0
- package/dist/src/cli/commands/update.d.ts.map +1 -0
- package/dist/src/cli/commands/update.js +244 -0
- package/dist/src/cli/commands/update.js.map +1 -0
- package/dist/src/cli/policy-converter.d.ts +10 -0
- package/dist/src/cli/policy-converter.d.ts.map +1 -0
- package/dist/src/cli/policy-converter.js +188 -0
- package/dist/src/cli/policy-converter.js.map +1 -0
- package/dist/src/cli/utils/error-handler.d.ts +4 -0
- package/dist/src/cli/utils/error-handler.d.ts.map +1 -0
- package/dist/src/cli/utils/error-handler.js +91 -0
- package/dist/src/cli/utils/error-handler.js.map +1 -0
- package/dist/src/cli/utils/logger.d.ts +8 -0
- package/dist/src/cli/utils/logger.d.ts.map +1 -0
- package/dist/src/cli/utils/logger.js +20 -0
- package/dist/src/cli/utils/logger.js.map +1 -0
- package/dist/src/config/config-service.d.ts +79 -0
- package/dist/src/config/config-service.d.ts.map +1 -0
- package/dist/src/config/config-service.js +112 -0
- package/dist/src/config/config-service.js.map +1 -0
- package/dist/src/config/effect_config.d.ts +111 -0
- package/dist/src/config/effect_config.d.ts.map +1 -0
- package/dist/src/config/effect_config.js +248 -0
- package/dist/src/config/effect_config.js.map +1 -0
- package/dist/src/config/effects.d.ts +33 -0
- package/dist/src/config/effects.d.ts.map +1 -0
- package/dist/src/config/effects.js +34 -0
- package/dist/src/config/effects.js.map +1 -0
- package/dist/src/config/lexicons/de-DE.d.ts +12 -0
- package/dist/src/config/lexicons/de-DE.d.ts.map +1 -0
- package/dist/src/config/lexicons/de-DE.js +129 -0
- package/dist/src/config/lexicons/de-DE.js.map +1 -0
- package/dist/src/config/lexicons/en-US.d.ts +15 -0
- package/dist/src/config/lexicons/en-US.d.ts.map +1 -0
- package/dist/src/config/lexicons/en-US.js +136 -0
- package/dist/src/config/lexicons/en-US.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.d.ts +13 -0
- package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.js +307 -0
- package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.d.ts +25 -0
- package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.js +355 -0
- package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.d.ts +47 -0
- package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.js +142 -0
- package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/index.d.ts +34 -0
- package/dist/src/config/lexicons/identifiers/index.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/index.js +37 -0
- package/dist/src/config/lexicons/identifiers/index.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/registry.d.ts +112 -0
- package/dist/src/config/lexicons/identifiers/registry.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/registry.js +188 -0
- package/dist/src/config/lexicons/identifiers/registry.js.map +1 -0
- package/dist/src/config/lexicons/identifiers/types.d.ts +129 -0
- package/dist/src/config/lexicons/identifiers/types.d.ts.map +1 -0
- package/dist/src/config/lexicons/identifiers/types.js +146 -0
- package/dist/src/config/lexicons/identifiers/types.js.map +1 -0
- package/dist/src/config/lexicons/index.d.ts +33 -0
- package/dist/src/config/lexicons/index.d.ts.map +1 -0
- package/dist/src/config/lexicons/index.js +50 -0
- package/dist/src/config/lexicons/index.js.map +1 -0
- package/dist/src/config/lexicons/registry.d.ts +41 -0
- package/dist/src/config/lexicons/registry.d.ts.map +1 -0
- package/dist/src/config/lexicons/registry.js +205 -0
- package/dist/src/config/lexicons/registry.js.map +1 -0
- package/dist/src/config/lexicons/template.d.ts +67 -0
- package/dist/src/config/lexicons/template.d.ts.map +1 -0
- package/dist/src/config/lexicons/template.js +442 -0
- package/dist/src/config/lexicons/template.js.map +1 -0
- package/dist/src/config/lexicons/types.d.ts +169 -0
- package/dist/src/config/lexicons/types.d.ts.map +1 -0
- package/dist/src/config/lexicons/types.js +62 -0
- package/dist/src/config/lexicons/types.js.map +1 -0
- package/dist/src/config/lexicons/zh-CN.d.ts +21 -0
- package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -0
- package/dist/src/config/lexicons/zh-CN.js +139 -0
- package/dist/src/config/lexicons/zh-CN.js.map +1 -0
- package/dist/src/config/runtime.d.ts +2 -0
- package/dist/src/config/runtime.d.ts.map +1 -0
- package/dist/src/config/runtime.js +13 -0
- package/dist/src/config/runtime.js.map +1 -0
- package/dist/src/config/semantic.d.ts +262 -0
- package/dist/src/config/semantic.d.ts.map +1 -0
- package/dist/src/config/semantic.js +394 -0
- package/dist/src/config/semantic.js.map +1 -0
- package/dist/src/config/token-kind.d.ts +177 -0
- package/dist/src/config/token-kind.d.ts.map +1 -0
- package/dist/src/config/token-kind.js +298 -0
- package/dist/src/config/token-kind.js.map +1 -0
- package/dist/src/core/core_ir.d.ts +50 -0
- package/dist/src/core/core_ir.d.ts.map +1 -0
- package/dist/src/core/core_ir.js +139 -0
- package/dist/src/core/core_ir.js.map +1 -0
- package/dist/src/core/core_ir_json.d.ts +62 -0
- package/dist/src/core/core_ir_json.d.ts.map +1 -0
- package/dist/src/core/core_ir_json.js +81 -0
- package/dist/src/core/core_ir_json.js.map +1 -0
- package/dist/src/core/index.d.ts +18 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +16 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/pretty_core.d.ts +3 -0
- package/dist/src/core/pretty_core.d.ts.map +1 -0
- package/dist/src/core/pretty_core.js +177 -0
- package/dist/src/core/pretty_core.js.map +1 -0
- package/dist/src/core/visitor.d.ts +51 -0
- package/dist/src/core/visitor.d.ts.map +1 -0
- package/dist/src/core/visitor.js +117 -0
- package/dist/src/core/visitor.js.map +1 -0
- package/dist/src/cst/cst.d.ts +32 -0
- package/dist/src/cst/cst.d.ts.map +1 -0
- package/dist/src/cst/cst.js +2 -0
- package/dist/src/cst/cst.js.map +1 -0
- package/dist/src/cst/cst_builder.d.ts +5 -0
- package/dist/src/cst/cst_builder.d.ts.map +1 -0
- package/dist/src/cst/cst_builder.js +101 -0
- package/dist/src/cst/cst_builder.js.map +1 -0
- package/dist/src/cst/cst_printer.d.ts +8 -0
- package/dist/src/cst/cst_printer.d.ts.map +1 -0
- package/dist/src/cst/cst_printer.js +47 -0
- package/dist/src/cst/cst_printer.js.map +1 -0
- package/dist/src/cst/index.d.ts +14 -0
- package/dist/src/cst/index.d.ts.map +1 -0
- package/dist/src/cst/index.js +13 -0
- package/dist/src/cst/index.js.map +1 -0
- package/dist/src/diagnostics/diagnostics.d.ts +138 -0
- package/dist/src/diagnostics/diagnostics.d.ts.map +1 -0
- package/dist/src/diagnostics/diagnostics.js +249 -0
- package/dist/src/diagnostics/diagnostics.js.map +1 -0
- package/dist/src/diagnostics/error_codes.d.ts +88 -0
- package/dist/src/diagnostics/error_codes.d.ts.map +1 -0
- package/dist/src/diagnostics/error_codes.js +551 -0
- package/dist/src/diagnostics/error_codes.js.map +1 -0
- package/dist/src/diagnostics/index.d.ts +14 -0
- package/dist/src/diagnostics/index.d.ts.map +1 -0
- package/dist/src/diagnostics/index.js +14 -0
- package/dist/src/diagnostics/index.js.map +1 -0
- package/dist/src/effects/capabilities.d.ts +18 -0
- package/dist/src/effects/capabilities.d.ts.map +1 -0
- package/dist/src/effects/capabilities.js +101 -0
- package/dist/src/effects/capabilities.js.map +1 -0
- package/dist/src/effects/effect_inference.d.ts +17 -0
- package/dist/src/effects/effect_inference.d.ts.map +1 -0
- package/dist/src/effects/effect_inference.js +557 -0
- package/dist/src/effects/effect_inference.js.map +1 -0
- package/dist/src/effects/effect_signature.d.ts +13 -0
- package/dist/src/effects/effect_signature.d.ts.map +1 -0
- package/dist/src/effects/effect_signature.js +2 -0
- package/dist/src/effects/effect_signature.js.map +1 -0
- package/dist/src/effects/index.d.ts +14 -0
- package/dist/src/effects/index.d.ts.map +1 -0
- package/dist/src/effects/index.js +13 -0
- package/dist/src/effects/index.js.map +1 -0
- package/dist/src/formatter.d.ts +7 -0
- package/dist/src/formatter.d.ts.map +1 -0
- package/dist/src/formatter.js +383 -0
- package/dist/src/formatter.js.map +1 -0
- package/dist/src/frontend/canonicalizer.d.ts +55 -0
- package/dist/src/frontend/canonicalizer.d.ts.map +1 -0
- package/dist/src/frontend/canonicalizer.js +348 -0
- package/dist/src/frontend/canonicalizer.js.map +1 -0
- package/dist/src/frontend/index.d.ts +17 -0
- package/dist/src/frontend/index.d.ts.map +1 -0
- package/dist/src/frontend/index.js +16 -0
- package/dist/src/frontend/index.js.map +1 -0
- package/dist/src/frontend/keyword-translator.d.ts +134 -0
- package/dist/src/frontend/keyword-translator.d.ts.map +1 -0
- package/dist/src/frontend/keyword-translator.js +188 -0
- package/dist/src/frontend/keyword-translator.js.map +1 -0
- package/dist/src/frontend/lexer.d.ts +59 -0
- package/dist/src/frontend/lexer.d.ts.map +1 -0
- package/dist/src/frontend/lexer.js +536 -0
- package/dist/src/frontend/lexer.js.map +1 -0
- package/dist/src/frontend/tokens.d.ts +12 -0
- package/dist/src/frontend/tokens.d.ts.map +1 -0
- package/dist/src/frontend/tokens.js +12 -0
- package/dist/src/frontend/tokens.js.map +1 -0
- package/dist/src/index.d.ts +36 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +37 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/jvm/emitter.d.ts +3 -0
- package/dist/src/jvm/emitter.d.ts.map +1 -0
- package/dist/src/jvm/emitter.js +609 -0
- package/dist/src/jvm/emitter.js.map +1 -0
- package/dist/src/lower_to_core.d.ts +53 -0
- package/dist/src/lower_to_core.d.ts.map +1 -0
- package/dist/src/lower_to_core.js +528 -0
- package/dist/src/lower_to_core.js.map +1 -0
- package/dist/src/lsp/analysis.d.ts +50 -0
- package/dist/src/lsp/analysis.d.ts.map +1 -0
- package/dist/src/lsp/analysis.js +399 -0
- package/dist/src/lsp/analysis.js.map +1 -0
- package/dist/src/lsp/codeaction.d.ts +21 -0
- package/dist/src/lsp/codeaction.d.ts.map +1 -0
- package/dist/src/lsp/codeaction.js +531 -0
- package/dist/src/lsp/codeaction.js.map +1 -0
- package/dist/src/lsp/completion.d.ts +81 -0
- package/dist/src/lsp/completion.d.ts.map +1 -0
- package/dist/src/lsp/completion.js +345 -0
- package/dist/src/lsp/completion.js.map +1 -0
- package/dist/src/lsp/config.d.ts +34 -0
- package/dist/src/lsp/config.d.ts.map +1 -0
- package/dist/src/lsp/config.js +23 -0
- package/dist/src/lsp/config.js.map +1 -0
- package/dist/src/lsp/diagnostics.d.ts +87 -0
- package/dist/src/lsp/diagnostics.d.ts.map +1 -0
- package/dist/src/lsp/diagnostics.js +474 -0
- package/dist/src/lsp/diagnostics.js.map +1 -0
- package/dist/src/lsp/formatting.d.ts +16 -0
- package/dist/src/lsp/formatting.d.ts.map +1 -0
- package/dist/src/lsp/formatting.js +75 -0
- package/dist/src/lsp/formatting.js.map +1 -0
- package/dist/src/lsp/health.d.ts +74 -0
- package/dist/src/lsp/health.d.ts.map +1 -0
- package/dist/src/lsp/health.js +106 -0
- package/dist/src/lsp/health.js.map +1 -0
- package/dist/src/lsp/index.d.ts +14 -0
- package/dist/src/lsp/index.d.ts.map +1 -0
- package/dist/src/lsp/index.js +17 -0
- package/dist/src/lsp/index.js.map +1 -0
- package/dist/src/lsp/module_cache.d.ts +39 -0
- package/dist/src/lsp/module_cache.d.ts.map +1 -0
- package/dist/src/lsp/module_cache.js +308 -0
- package/dist/src/lsp/module_cache.js.map +1 -0
- package/dist/src/lsp/navigation/definition.d.ts +20 -0
- package/dist/src/lsp/navigation/definition.d.ts.map +1 -0
- package/dist/src/lsp/navigation/definition.js +96 -0
- package/dist/src/lsp/navigation/definition.js.map +1 -0
- package/dist/src/lsp/navigation/document-symbol.d.ts +20 -0
- package/dist/src/lsp/navigation/document-symbol.d.ts.map +1 -0
- package/dist/src/lsp/navigation/document-symbol.js +196 -0
- package/dist/src/lsp/navigation/document-symbol.js.map +1 -0
- package/dist/src/lsp/navigation/hover.d.ts +20 -0
- package/dist/src/lsp/navigation/hover.d.ts.map +1 -0
- package/dist/src/lsp/navigation/hover.js +147 -0
- package/dist/src/lsp/navigation/hover.js.map +1 -0
- package/dist/src/lsp/navigation/references.d.ts +17 -0
- package/dist/src/lsp/navigation/references.d.ts.map +1 -0
- package/dist/src/lsp/navigation/references.js +104 -0
- package/dist/src/lsp/navigation/references.js.map +1 -0
- package/dist/src/lsp/navigation/rename.d.ts +22 -0
- package/dist/src/lsp/navigation/rename.d.ts.map +1 -0
- package/dist/src/lsp/navigation/rename.js +161 -0
- package/dist/src/lsp/navigation/rename.js.map +1 -0
- package/dist/src/lsp/navigation/shared.d.ts +175 -0
- package/dist/src/lsp/navigation/shared.d.ts.map +1 -0
- package/dist/src/lsp/navigation/shared.js +470 -0
- package/dist/src/lsp/navigation/shared.js.map +1 -0
- package/dist/src/lsp/navigation.d.ts +23 -0
- package/dist/src/lsp/navigation.d.ts.map +1 -0
- package/dist/src/lsp/navigation.js +28 -0
- package/dist/src/lsp/navigation.js.map +1 -0
- package/dist/src/lsp/pii_diagnostics.d.ts +15 -0
- package/dist/src/lsp/pii_diagnostics.d.ts.map +1 -0
- package/dist/src/lsp/pii_diagnostics.js +624 -0
- package/dist/src/lsp/pii_diagnostics.js.map +1 -0
- package/dist/src/lsp/server.d.ts +3 -0
- package/dist/src/lsp/server.d.ts.map +1 -0
- package/dist/src/lsp/server.js +406 -0
- package/dist/src/lsp/server.js.map +1 -0
- package/dist/src/lsp/shared-state.d.ts +15 -0
- package/dist/src/lsp/shared-state.d.ts.map +1 -0
- package/dist/src/lsp/shared-state.js +21 -0
- package/dist/src/lsp/shared-state.js.map +1 -0
- package/dist/src/lsp/symbols.d.ts +35 -0
- package/dist/src/lsp/symbols.d.ts.map +1 -0
- package/dist/src/lsp/symbols.js +124 -0
- package/dist/src/lsp/symbols.js.map +1 -0
- package/dist/src/lsp/task-queue.d.ts +172 -0
- package/dist/src/lsp/task-queue.d.ts.map +1 -0
- package/dist/src/lsp/task-queue.js +310 -0
- package/dist/src/lsp/task-queue.js.map +1 -0
- package/dist/src/lsp/token-index.d.ts +45 -0
- package/dist/src/lsp/token-index.d.ts.map +1 -0
- package/dist/src/lsp/token-index.js +114 -0
- package/dist/src/lsp/token-index.js.map +1 -0
- package/dist/src/lsp/tokens.d.ts +33 -0
- package/dist/src/lsp/tokens.d.ts.map +1 -0
- package/dist/src/lsp/tokens.js +259 -0
- package/dist/src/lsp/tokens.js.map +1 -0
- package/dist/src/lsp/type-guards.d.ts +80 -0
- package/dist/src/lsp/type-guards.d.ts.map +1 -0
- package/dist/src/lsp/type-guards.js +132 -0
- package/dist/src/lsp/type-guards.js.map +1 -0
- package/dist/src/lsp/utils.d.ts +4 -0
- package/dist/src/lsp/utils.d.ts.map +1 -0
- package/dist/src/lsp/utils.js +52 -0
- package/dist/src/lsp/utils.js.map +1 -0
- package/dist/src/lsp/workspace/document-indexer.d.ts +14 -0
- package/dist/src/lsp/workspace/document-indexer.d.ts.map +1 -0
- package/dist/src/lsp/workspace/document-indexer.js +88 -0
- package/dist/src/lsp/workspace/document-indexer.js.map +1 -0
- package/dist/src/lsp/workspace/file-watcher.d.ts +137 -0
- package/dist/src/lsp/workspace/file-watcher.d.ts.map +1 -0
- package/dist/src/lsp/workspace/file-watcher.js +307 -0
- package/dist/src/lsp/workspace/file-watcher.js.map +1 -0
- package/dist/src/lsp/workspace/index-manager.d.ts +48 -0
- package/dist/src/lsp/workspace/index-manager.d.ts.map +1 -0
- package/dist/src/lsp/workspace/index-manager.js +131 -0
- package/dist/src/lsp/workspace/index-manager.js.map +1 -0
- package/dist/src/lsp/workspace/symbol-finder.d.ts +13 -0
- package/dist/src/lsp/workspace/symbol-finder.d.ts.map +1 -0
- package/dist/src/lsp/workspace/symbol-finder.js +69 -0
- package/dist/src/lsp/workspace/symbol-finder.js.map +1 -0
- package/dist/src/lsp/workspace/types.d.ts +77 -0
- package/dist/src/lsp/workspace/types.d.ts.map +1 -0
- package/dist/src/lsp/workspace/types.js +6 -0
- package/dist/src/lsp/workspace/types.js.map +1 -0
- package/dist/src/lsp/workspace/workspace-scanner.d.ts +11 -0
- package/dist/src/lsp/workspace/workspace-scanner.d.ts.map +1 -0
- package/dist/src/lsp/workspace/workspace-scanner.js +115 -0
- package/dist/src/lsp/workspace/workspace-scanner.js.map +1 -0
- package/dist/src/manifest.d.ts +48 -0
- package/dist/src/manifest.d.ts.map +1 -0
- package/dist/src/manifest.js +10 -0
- package/dist/src/manifest.js.map +1 -0
- package/dist/src/package/config.d.ts +28 -0
- package/dist/src/package/config.d.ts.map +1 -0
- package/dist/src/package/config.js +59 -0
- package/dist/src/package/config.js.map +1 -0
- package/dist/src/package/dependency-graph.d.ts +42 -0
- package/dist/src/package/dependency-graph.d.ts.map +1 -0
- package/dist/src/package/dependency-graph.js +144 -0
- package/dist/src/package/dependency-graph.js.map +1 -0
- package/dist/src/package/lockfile.d.ts +20 -0
- package/dist/src/package/lockfile.d.ts.map +1 -0
- package/dist/src/package/lockfile.js +146 -0
- package/dist/src/package/lockfile.js.map +1 -0
- package/dist/src/package/manifest-parser.d.ts +22 -0
- package/dist/src/package/manifest-parser.d.ts.map +1 -0
- package/dist/src/package/manifest-parser.js +275 -0
- package/dist/src/package/manifest-parser.js.map +1 -0
- package/dist/src/package/package-cache.d.ts +56 -0
- package/dist/src/package/package-cache.d.ts.map +1 -0
- package/dist/src/package/package-cache.js +166 -0
- package/dist/src/package/package-cache.js.map +1 -0
- package/dist/src/package/package-installer.d.ts +67 -0
- package/dist/src/package/package-installer.d.ts.map +1 -0
- package/dist/src/package/package-installer.js +310 -0
- package/dist/src/package/package-installer.js.map +1 -0
- package/dist/src/package/package-registry.d.ts +70 -0
- package/dist/src/package/package-registry.d.ts.map +1 -0
- package/dist/src/package/package-registry.js +480 -0
- package/dist/src/package/package-registry.js.map +1 -0
- package/dist/src/package/resolver.d.ts +50 -0
- package/dist/src/package/resolver.d.ts.map +1 -0
- package/dist/src/package/resolver.js +236 -0
- package/dist/src/package/resolver.js.map +1 -0
- package/dist/src/package/version-utils.d.ts +53 -0
- package/dist/src/package/version-utils.d.ts.map +1 -0
- package/dist/src/package/version-utils.js +61 -0
- package/dist/src/package/version-utils.js.map +1 -0
- package/dist/src/parser/constraint-parser.d.ts +42 -0
- package/dist/src/parser/constraint-parser.d.ts.map +1 -0
- package/dist/src/parser/constraint-parser.js +192 -0
- package/dist/src/parser/constraint-parser.js.map +1 -0
- package/dist/src/parser/context.d.ts +56 -0
- package/dist/src/parser/context.d.ts.map +1 -0
- package/dist/src/parser/context.js +177 -0
- package/dist/src/parser/context.js.map +1 -0
- package/dist/src/parser/decl-parser.d.ts +52 -0
- package/dist/src/parser/decl-parser.d.ts.map +1 -0
- package/dist/src/parser/decl-parser.js +461 -0
- package/dist/src/parser/decl-parser.js.map +1 -0
- package/dist/src/parser/expr-stmt-parser.d.ts +51 -0
- package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -0
- package/dist/src/parser/expr-stmt-parser.js +1317 -0
- package/dist/src/parser/expr-stmt-parser.js.map +1 -0
- package/dist/src/parser/field-variant-parser.d.ts +47 -0
- package/dist/src/parser/field-variant-parser.d.ts.map +1 -0
- package/dist/src/parser/field-variant-parser.js +142 -0
- package/dist/src/parser/field-variant-parser.js.map +1 -0
- package/dist/src/parser/import-parser.d.ts +40 -0
- package/dist/src/parser/import-parser.d.ts.map +1 -0
- package/dist/src/parser/import-parser.js +91 -0
- package/dist/src/parser/import-parser.js.map +1 -0
- package/dist/src/parser/parser-tools.d.ts +52 -0
- package/dist/src/parser/parser-tools.d.ts.map +1 -0
- package/dist/src/parser/parser-tools.js +50 -0
- package/dist/src/parser/parser-tools.js.map +1 -0
- package/dist/src/parser/span-utils.d.ts +16 -0
- package/dist/src/parser/span-utils.d.ts.map +1 -0
- package/dist/src/parser/span-utils.js +90 -0
- package/dist/src/parser/span-utils.js.map +1 -0
- package/dist/src/parser/type-inference.d.ts +90 -0
- package/dist/src/parser/type-inference.d.ts.map +1 -0
- package/dist/src/parser/type-inference.js +287 -0
- package/dist/src/parser/type-inference.js.map +1 -0
- package/dist/src/parser/type-parser.d.ts +24 -0
- package/dist/src/parser/type-parser.d.ts.map +1 -0
- package/dist/src/parser/type-parser.js +338 -0
- package/dist/src/parser/type-parser.js.map +1 -0
- package/dist/src/parser.d.ts +12 -0
- package/dist/src/parser.d.ts.map +1 -0
- package/dist/src/parser.js +25 -0
- package/dist/src/parser.js.map +1 -0
- package/dist/src/typecheck/async.d.ts +57 -0
- package/dist/src/typecheck/async.d.ts.map +1 -0
- package/dist/src/typecheck/async.js +369 -0
- package/dist/src/typecheck/async.js.map +1 -0
- package/dist/src/typecheck/capabilities.d.ts +20 -0
- package/dist/src/typecheck/capabilities.d.ts.map +1 -0
- package/dist/src/typecheck/capabilities.js +86 -0
- package/dist/src/typecheck/capabilities.js.map +1 -0
- package/dist/src/typecheck/context.d.ts +31 -0
- package/dist/src/typecheck/context.d.ts.map +1 -0
- package/dist/src/typecheck/context.js +34 -0
- package/dist/src/typecheck/context.js.map +1 -0
- package/dist/src/typecheck/diagnostics.d.ts +15 -0
- package/dist/src/typecheck/diagnostics.d.ts.map +1 -0
- package/dist/src/typecheck/diagnostics.js +92 -0
- package/dist/src/typecheck/diagnostics.js.map +1 -0
- package/dist/src/typecheck/effects.d.ts +16 -0
- package/dist/src/typecheck/effects.d.ts.map +1 -0
- package/dist/src/typecheck/effects.js +122 -0
- package/dist/src/typecheck/effects.js.map +1 -0
- package/dist/src/typecheck/expression.d.ts +12 -0
- package/dist/src/typecheck/expression.d.ts.map +1 -0
- package/dist/src/typecheck/expression.js +306 -0
- package/dist/src/typecheck/expression.js.map +1 -0
- package/dist/src/typecheck/generics.d.ts +6 -0
- package/dist/src/typecheck/generics.d.ts.map +1 -0
- package/dist/src/typecheck/generics.js +131 -0
- package/dist/src/typecheck/generics.js.map +1 -0
- package/dist/src/typecheck/index.d.ts +6 -0
- package/dist/src/typecheck/index.d.ts.map +1 -0
- package/dist/src/typecheck/index.js +3 -0
- package/dist/src/typecheck/index.js.map +1 -0
- package/dist/src/typecheck/module.d.ts +9 -0
- package/dist/src/typecheck/module.d.ts.map +1 -0
- package/dist/src/typecheck/module.js +223 -0
- package/dist/src/typecheck/module.js.map +1 -0
- package/dist/src/typecheck/pattern.d.ts +6 -0
- package/dist/src/typecheck/pattern.d.ts.map +1 -0
- package/dist/src/typecheck/pattern.js +80 -0
- package/dist/src/typecheck/pattern.js.map +1 -0
- package/dist/src/typecheck/statement.d.ts +13 -0
- package/dist/src/typecheck/statement.d.ts.map +1 -0
- package/dist/src/typecheck/statement.js +176 -0
- package/dist/src/typecheck/statement.js.map +1 -0
- package/dist/src/typecheck/symbol_table.d.ts +63 -0
- package/dist/src/typecheck/symbol_table.d.ts.map +1 -0
- package/dist/src/typecheck/symbol_table.js +208 -0
- package/dist/src/typecheck/symbol_table.js.map +1 -0
- package/dist/src/typecheck/type_system.d.ts +30 -0
- package/dist/src/typecheck/type_system.d.ts.map +1 -0
- package/dist/src/typecheck/type_system.js +529 -0
- package/dist/src/typecheck/type_system.js.map +1 -0
- package/dist/src/typecheck/utils.d.ts +45 -0
- package/dist/src/typecheck/utils.d.ts.map +1 -0
- package/dist/src/typecheck/utils.js +110 -0
- package/dist/src/typecheck/utils.js.map +1 -0
- package/dist/src/typecheck/workflow.d.ts +8 -0
- package/dist/src/typecheck/workflow.d.ts.map +1 -0
- package/dist/src/typecheck/workflow.js +247 -0
- package/dist/src/typecheck/workflow.js.map +1 -0
- package/dist/src/typecheck-pii.d.ts +3 -0
- package/dist/src/typecheck-pii.d.ts.map +1 -0
- package/dist/src/typecheck-pii.js +534 -0
- package/dist/src/typecheck-pii.js.map +1 -0
- package/dist/src/typecheck.d.ts +7 -0
- package/dist/src/typecheck.d.ts.map +1 -0
- package/dist/src/typecheck.js +2 -0
- package/dist/src/typecheck.js.map +1 -0
- package/dist/src/types/base.d.ts +423 -0
- package/dist/src/types/base.d.ts.map +1 -0
- package/dist/src/types/base.js +18 -0
- package/dist/src/types/base.js.map +1 -0
- package/dist/src/types.d.ts +531 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +47 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/logger.d.ts +28 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +60 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/test/benchmark.d.ts +3 -0
- package/dist/test/benchmark.d.ts.map +1 -0
- package/dist/test/benchmark.js +106 -0
- package/dist/test/benchmark.js.map +1 -0
- package/dist/test/cli/commands/install.test.d.ts +2 -0
- package/dist/test/cli/commands/install.test.d.ts.map +1 -0
- package/dist/test/cli/commands/install.test.js +97 -0
- package/dist/test/cli/commands/install.test.js.map +1 -0
- package/dist/test/cli/commands/list.test.d.ts +2 -0
- package/dist/test/cli/commands/list.test.d.ts.map +1 -0
- package/dist/test/cli/commands/list.test.js +98 -0
- package/dist/test/cli/commands/list.test.js.map +1 -0
- package/dist/test/cli/commands/search.test.d.ts +2 -0
- package/dist/test/cli/commands/search.test.d.ts.map +1 -0
- package/dist/test/cli/commands/search.test.js +133 -0
- package/dist/test/cli/commands/search.test.js.map +1 -0
- package/dist/test/cli/commands/update.test.d.ts +2 -0
- package/dist/test/cli/commands/update.test.d.ts.map +1 -0
- package/dist/test/cli/commands/update.test.js +205 -0
- package/dist/test/cli/commands/update.test.js.map +1 -0
- package/dist/test/cli/integration.test.d.ts +2 -0
- package/dist/test/cli/integration.test.d.ts.map +1 -0
- package/dist/test/cli/integration.test.js +51 -0
- package/dist/test/cli/integration.test.js.map +1 -0
- package/dist/test/cli/registry-utils.d.ts +6 -0
- package/dist/test/cli/registry-utils.d.ts.map +1 -0
- package/dist/test/cli/registry-utils.js +35 -0
- package/dist/test/cli/registry-utils.js.map +1 -0
- package/dist/test/cli/utils/error-handler.test.d.ts +2 -0
- package/dist/test/cli/utils/error-handler.test.d.ts.map +1 -0
- package/dist/test/cli/utils/error-handler.test.js +108 -0
- package/dist/test/cli/utils/error-handler.test.js.map +1 -0
- package/dist/test/compiler/depends-on.test.d.ts +2 -0
- package/dist/test/compiler/depends-on.test.d.ts.map +1 -0
- package/dist/test/compiler/depends-on.test.js +184 -0
- package/dist/test/compiler/depends-on.test.js.map +1 -0
- package/dist/test/compiler/inventory-capability.test.d.ts +2 -0
- package/dist/test/compiler/inventory-capability.test.d.ts.map +1 -0
- package/dist/test/compiler/inventory-capability.test.js +22 -0
- package/dist/test/compiler/inventory-capability.test.js.map +1 -0
- package/dist/test/compiler/payment-capability.test.d.ts +2 -0
- package/dist/test/compiler/payment-capability.test.d.ts.map +1 -0
- package/dist/test/compiler/payment-capability.test.js +22 -0
- package/dist/test/compiler/payment-capability.test.js.map +1 -0
- package/dist/test/compiler/workflow-emitter-helpers.d.ts +3 -0
- package/dist/test/compiler/workflow-emitter-helpers.d.ts.map +1 -0
- package/dist/test/compiler/workflow-emitter-helpers.js +44 -0
- package/dist/test/compiler/workflow-emitter-helpers.js.map +1 -0
- package/dist/test/e2e/package-management.test.d.ts +2 -0
- package/dist/test/e2e/package-management.test.d.ts.map +1 -0
- package/dist/test/e2e/package-management.test.js +51 -0
- package/dist/test/e2e/package-management.test.js.map +1 -0
- package/dist/test/e2e/runner/golden-runner.d.ts +3 -0
- package/dist/test/e2e/runner/golden-runner.d.ts.map +1 -0
- package/dist/test/e2e/runner/golden-runner.js +212 -0
- package/dist/test/e2e/runner/golden-runner.js.map +1 -0
- package/dist/test/fuzz/formatter-fuzz.test.d.ts +3 -0
- package/dist/test/fuzz/formatter-fuzz.test.d.ts.map +1 -0
- package/dist/test/fuzz/formatter-fuzz.test.js +44 -0
- package/dist/test/fuzz/formatter-fuzz.test.js.map +1 -0
- package/dist/test/fuzz/fuzz.test.d.ts +3 -0
- package/dist/test/fuzz/fuzz.test.d.ts.map +1 -0
- package/dist/test/fuzz/fuzz.test.js +141 -0
- package/dist/test/fuzz/fuzz.test.js.map +1 -0
- package/dist/test/fuzz/lossless-fuzz.test.d.ts +3 -0
- package/dist/test/fuzz/lossless-fuzz.test.d.ts.map +1 -0
- package/dist/test/fuzz/lossless-fuzz.test.js +116 -0
- package/dist/test/fuzz/lossless-fuzz.test.js.map +1 -0
- package/dist/test/generators.d.ts +53 -0
- package/dist/test/generators.d.ts.map +1 -0
- package/dist/test/generators.js +253 -0
- package/dist/test/generators.js.map +1 -0
- package/dist/test/helpers/test-factories.d.ts +24 -0
- package/dist/test/helpers/test-factories.d.ts.map +1 -0
- package/dist/test/helpers/test-factories.js +30 -0
- package/dist/test/helpers/test-factories.js.map +1 -0
- package/dist/test/helpers/test-utils.d.ts +19 -0
- package/dist/test/helpers/test-utils.d.ts.map +1 -0
- package/dist/test/helpers/test-utils.js +30 -0
- package/dist/test/helpers/test-utils.js.map +1 -0
- package/dist/test/integration/capabilities/capabilities.test.d.ts +3 -0
- package/dist/test/integration/capabilities/capabilities.test.d.ts.map +1 -0
- package/dist/test/integration/capabilities/capabilities.test.js +63 -0
- package/dist/test/integration/capabilities/capabilities.test.js.map +1 -0
- package/dist/test/integration/capabilities/config-service.test.d.ts +11 -0
- package/dist/test/integration/capabilities/config-service.test.d.ts.map +1 -0
- package/dist/test/integration/capabilities/config-service.test.js +125 -0
- package/dist/test/integration/capabilities/config-service.test.js.map +1 -0
- package/dist/test/integration/capabilities/effect-config.test.d.ts +3 -0
- package/dist/test/integration/capabilities/effect-config.test.d.ts.map +1 -0
- package/dist/test/integration/capabilities/effect-config.test.js +196 -0
- package/dist/test/integration/capabilities/effect-config.test.js.map +1 -0
- package/dist/test/integration/compliance/compliance-smoke.test.d.ts +14 -0
- package/dist/test/integration/compliance/compliance-smoke.test.d.ts.map +1 -0
- package/dist/test/integration/compliance/compliance-smoke.test.js +222 -0
- package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-client-helper.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-client-helper.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-client-helper.test.js +45 -0
- package/dist/test/integration/lsp/lsp-client-helper.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-completion.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-completion.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-completion.test.js +178 -0
- package/dist/test/integration/lsp/lsp-completion.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-diagnostics.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-diagnostics.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-diagnostics.test.js +105 -0
- package/dist/test/integration/lsp/lsp-diagnostics.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-file-watcher.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-file-watcher.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-file-watcher.test.js +401 -0
- package/dist/test/integration/lsp/lsp-file-watcher.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-health-metrics.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-health-metrics.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-health-metrics.test.js +285 -0
- package/dist/test/integration/lsp/lsp-health-metrics.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-modules.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-modules.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-modules.test.js +193 -0
- package/dist/test/integration/lsp/lsp-modules.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-multi-rename.test.d.ts +3 -0
- package/dist/test/integration/lsp/lsp-multi-rename.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-multi-rename.test.js +81 -0
- package/dist/test/integration/lsp/lsp-multi-rename.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-navigation.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-navigation.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-navigation.test.js +332 -0
- package/dist/test/integration/lsp/lsp-navigation.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-process-lifecycle.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-process-lifecycle.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-process-lifecycle.test.js +257 -0
- package/dist/test/integration/lsp/lsp-process-lifecycle.test.js.map +1 -0
- package/dist/test/integration/lsp/lsp-task-queue.test.d.ts +7 -0
- package/dist/test/integration/lsp/lsp-task-queue.test.d.ts.map +1 -0
- package/dist/test/integration/lsp/lsp-task-queue.test.js +267 -0
- package/dist/test/integration/lsp/lsp-task-queue.test.js.map +1 -0
- package/dist/test/integration/pipeline/pipeline.test.d.ts +13 -0
- package/dist/test/integration/pipeline/pipeline.test.d.ts.map +1 -0
- package/dist/test/integration/pipeline/pipeline.test.js +310 -0
- package/dist/test/integration/pipeline/pipeline.test.js.map +1 -0
- package/dist/test/perf/perf-utils.test.d.ts +3 -0
- package/dist/test/perf/perf-utils.test.d.ts.map +1 -0
- package/dist/test/perf/perf-utils.test.js +144 -0
- package/dist/test/perf/perf-utils.test.js.map +1 -0
- package/dist/test/performance/package-installer.perf.test.d.ts +9 -0
- package/dist/test/performance/package-installer.perf.test.d.ts.map +1 -0
- package/dist/test/performance/package-installer.perf.test.js +80 -0
- package/dist/test/performance/package-installer.perf.test.js.map +1 -0
- package/dist/test/policy-converter/round-trip.test.d.ts +2 -0
- package/dist/test/policy-converter/round-trip.test.d.ts.map +1 -0
- package/dist/test/policy-converter/round-trip.test.js +83 -0
- package/dist/test/policy-converter/round-trip.test.js.map +1 -0
- package/dist/test/property/lsp-props.test.d.ts +3 -0
- package/dist/test/property/lsp-props.test.d.ts.map +1 -0
- package/dist/test/property/lsp-props.test.js +43 -0
- package/dist/test/property/lsp-props.test.js.map +1 -0
- package/dist/test/property/property.test.d.ts +3 -0
- package/dist/test/property/property.test.d.ts.map +1 -0
- package/dist/test/property/property.test.js +456 -0
- package/dist/test/property/property.test.js.map +1 -0
- package/dist/test/regression/type-checker-golden.test.d.ts +8 -0
- package/dist/test/regression/type-checker-golden.test.d.ts.map +1 -0
- package/dist/test/regression/type-checker-golden.test.js +172 -0
- package/dist/test/regression/type-checker-golden.test.js.map +1 -0
- package/dist/test/type-checker/cross-module-packages.test.d.ts +2 -0
- package/dist/test/type-checker/cross-module-packages.test.d.ts.map +1 -0
- package/dist/test/type-checker/cross-module-packages.test.js +51 -0
- package/dist/test/type-checker/cross-module-packages.test.js.map +1 -0
- package/dist/test/type-checker/pii-propagation.test.d.ts +2 -0
- package/dist/test/type-checker/pii-propagation.test.d.ts.map +1 -0
- package/dist/test/type-checker/pii-propagation.test.js +656 -0
- package/dist/test/type-checker/pii-propagation.test.js.map +1 -0
- package/dist/test/unit/async/async-discipline.test.d.ts +12 -0
- package/dist/test/unit/async/async-discipline.test.d.ts.map +1 -0
- package/dist/test/unit/async/async-discipline.test.js +492 -0
- package/dist/test/unit/async/async-discipline.test.js.map +1 -0
- package/dist/test/unit/async/async-schedule.test.d.ts +7 -0
- package/dist/test/unit/async/async-schedule.test.d.ts.map +1 -0
- package/dist/test/unit/async/async-schedule.test.js +154 -0
- package/dist/test/unit/async/async-schedule.test.js.map +1 -0
- package/dist/test/unit/canonicalizer/canonicalizer.test.d.ts +2 -0
- package/dist/test/unit/canonicalizer/canonicalizer.test.d.ts.map +1 -0
- package/dist/test/unit/canonicalizer/canonicalizer.test.js +195 -0
- package/dist/test/unit/canonicalizer/canonicalizer.test.js.map +1 -0
- package/dist/test/unit/config/config-service.test.d.ts +2 -0
- package/dist/test/unit/config/config-service.test.d.ts.map +1 -0
- package/dist/test/unit/config/config-service.test.js +235 -0
- package/dist/test/unit/config/config-service.test.js.map +1 -0
- package/dist/test/unit/config/effect-config-cache.test.d.ts +2 -0
- package/dist/test/unit/config/effect-config-cache.test.d.ts.map +1 -0
- package/dist/test/unit/config/effect-config-cache.test.js +135 -0
- package/dist/test/unit/config/effect-config-cache.test.js.map +1 -0
- package/dist/test/unit/config/lexicons/i18n.test.d.ts +15 -0
- package/dist/test/unit/config/lexicons/i18n.test.d.ts.map +1 -0
- package/dist/test/unit/config/lexicons/i18n.test.js +318 -0
- package/dist/test/unit/config/lexicons/i18n.test.js.map +1 -0
- package/dist/test/unit/config/lexicons/identifiers/identifier-mapping.test.d.ts +7 -0
- package/dist/test/unit/config/lexicons/identifiers/identifier-mapping.test.d.ts.map +1 -0
- package/dist/test/unit/config/lexicons/identifiers/identifier-mapping.test.js +180 -0
- package/dist/test/unit/config/lexicons/identifiers/identifier-mapping.test.js.map +1 -0
- package/dist/test/unit/config/lexicons/zh-CN.test.d.ts +7 -0
- package/dist/test/unit/config/lexicons/zh-CN.test.d.ts.map +1 -0
- package/dist/test/unit/config/lexicons/zh-CN.test.js +922 -0
- package/dist/test/unit/config/lexicons/zh-CN.test.js.map +1 -0
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts +2 -0
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts.map +1 -0
- package/dist/test/unit/core_ir_json/core_ir_json.test.js +218 -0
- package/dist/test/unit/core_ir_json/core_ir_json.test.js.map +1 -0
- package/dist/test/unit/dependency-graph.test.d.ts +5 -0
- package/dist/test/unit/dependency-graph.test.d.ts.map +1 -0
- package/dist/test/unit/dependency-graph.test.js +105 -0
- package/dist/test/unit/dependency-graph.test.js.map +1 -0
- package/dist/test/unit/effect/effect-inference.test.d.ts +2 -0
- package/dist/test/unit/effect/effect-inference.test.d.ts.map +1 -0
- package/dist/test/unit/effect/effect-inference.test.js +480 -0
- package/dist/test/unit/effect/effect-inference.test.js.map +1 -0
- package/dist/test/unit/emitter/emitter.test.d.ts +2 -0
- package/dist/test/unit/emitter/emitter.test.d.ts.map +1 -0
- package/dist/test/unit/emitter/emitter.test.js +825 -0
- package/dist/test/unit/emitter/emitter.test.js.map +1 -0
- package/dist/test/unit/generator.test.d.ts +2 -0
- package/dist/test/unit/generator.test.d.ts.map +1 -0
- package/dist/test/unit/generator.test.js +322 -0
- package/dist/test/unit/generator.test.js.map +1 -0
- package/dist/test/unit/keyword-translator.test.d.ts +10 -0
- package/dist/test/unit/keyword-translator.test.d.ts.map +1 -0
- package/dist/test/unit/keyword-translator.test.js +251 -0
- package/dist/test/unit/keyword-translator.test.js.map +1 -0
- package/dist/test/unit/lexer/lexer.test.d.ts +2 -0
- package/dist/test/unit/lexer/lexer.test.d.ts.map +1 -0
- package/dist/test/unit/lexer/lexer.test.js +136 -0
- package/dist/test/unit/lexer/lexer.test.js.map +1 -0
- package/dist/test/unit/lexer/newline-handling.test.d.ts +12 -0
- package/dist/test/unit/lexer/newline-handling.test.d.ts.map +1 -0
- package/dist/test/unit/lexer/newline-handling.test.js +379 -0
- package/dist/test/unit/lexer/newline-handling.test.js.map +1 -0
- package/dist/test/unit/llm-providers.test.d.ts +2 -0
- package/dist/test/unit/llm-providers.test.d.ts.map +1 -0
- package/dist/test/unit/llm-providers.test.js +341 -0
- package/dist/test/unit/llm-providers.test.js.map +1 -0
- package/dist/test/unit/lockfile.test.d.ts +5 -0
- package/dist/test/unit/lockfile.test.d.ts.map +1 -0
- package/dist/test/unit/lockfile.test.js +116 -0
- package/dist/test/unit/lockfile.test.js.map +1 -0
- package/dist/test/unit/lowering/lowering.test.d.ts +2 -0
- package/dist/test/unit/lowering/lowering.test.d.ts.map +1 -0
- package/dist/test/unit/lowering/lowering.test.js +625 -0
- package/dist/test/unit/lowering/lowering.test.js.map +1 -0
- package/dist/test/unit/lsp/analysis.test.d.ts +2 -0
- package/dist/test/unit/lsp/analysis.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/analysis.test.js +401 -0
- package/dist/test/unit/lsp/analysis.test.js.map +1 -0
- package/dist/test/unit/lsp/codeaction.test.d.ts +2 -0
- package/dist/test/unit/lsp/codeaction.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/codeaction.test.js +542 -0
- package/dist/test/unit/lsp/codeaction.test.js.map +1 -0
- package/dist/test/unit/lsp/pii-diagnostics.test.d.ts +2 -0
- package/dist/test/unit/lsp/pii-diagnostics.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/pii-diagnostics.test.js +222 -0
- package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -0
- package/dist/test/unit/lsp/symbols.test.d.ts +2 -0
- package/dist/test/unit/lsp/symbols.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/symbols.test.js +160 -0
- package/dist/test/unit/lsp/symbols.test.js.map +1 -0
- package/dist/test/unit/lsp/utils.test.d.ts +2 -0
- package/dist/test/unit/lsp/utils.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/utils.test.js +182 -0
- package/dist/test/unit/lsp/utils.test.js.map +1 -0
- package/dist/test/unit/manifest-parser.test.d.ts +12 -0
- package/dist/test/unit/manifest-parser.test.d.ts.map +1 -0
- package/dist/test/unit/manifest-parser.test.js +285 -0
- package/dist/test/unit/manifest-parser.test.js.map +1 -0
- package/dist/test/unit/manifest-schema.test.d.ts +11 -0
- package/dist/test/unit/manifest-schema.test.d.ts.map +1 -0
- package/dist/test/unit/manifest-schema.test.js +171 -0
- package/dist/test/unit/manifest-schema.test.js.map +1 -0
- package/dist/test/unit/module-cache-packages.test.d.ts +2 -0
- package/dist/test/unit/module-cache-packages.test.d.ts.map +1 -0
- package/dist/test/unit/module-cache-packages.test.js +114 -0
- package/dist/test/unit/module-cache-packages.test.js.map +1 -0
- package/dist/test/unit/package-cache.test.d.ts +7 -0
- package/dist/test/unit/package-cache.test.d.ts.map +1 -0
- package/dist/test/unit/package-cache.test.js +192 -0
- package/dist/test/unit/package-cache.test.js.map +1 -0
- package/dist/test/unit/package-installer.test.d.ts +2 -0
- package/dist/test/unit/package-installer.test.d.ts.map +1 -0
- package/dist/test/unit/package-installer.test.js +263 -0
- package/dist/test/unit/package-installer.test.js.map +1 -0
- package/dist/test/unit/package-registry.test.d.ts +7 -0
- package/dist/test/unit/package-registry.test.d.ts.map +1 -0
- package/dist/test/unit/package-registry.test.js +198 -0
- package/dist/test/unit/package-registry.test.js.map +1 -0
- package/dist/test/unit/parser/parser.test.d.ts +2 -0
- package/dist/test/unit/parser/parser.test.d.ts.map +1 -0
- package/dist/test/unit/parser/parser.test.js +1117 -0
- package/dist/test/unit/parser/parser.test.js.map +1 -0
- package/dist/test/unit/parser/type-inference.test.d.ts +5 -0
- package/dist/test/unit/parser/type-inference.test.d.ts.map +1 -0
- package/dist/test/unit/parser/type-inference.test.js +262 -0
- package/dist/test/unit/parser/type-inference.test.js.map +1 -0
- package/dist/test/unit/prompt-manager.test.d.ts +2 -0
- package/dist/test/unit/prompt-manager.test.d.ts.map +1 -0
- package/dist/test/unit/prompt-manager.test.js +137 -0
- package/dist/test/unit/prompt-manager.test.js.map +1 -0
- package/dist/test/unit/provenance-integration.test.d.ts +2 -0
- package/dist/test/unit/provenance-integration.test.d.ts.map +1 -0
- package/dist/test/unit/provenance-integration.test.js +181 -0
- package/dist/test/unit/provenance-integration.test.js.map +1 -0
- package/dist/test/unit/provenance.test.d.ts +2 -0
- package/dist/test/unit/provenance.test.d.ts.map +1 -0
- package/dist/test/unit/provenance.test.js +170 -0
- package/dist/test/unit/provenance.test.js.map +1 -0
- package/dist/test/unit/resolver.test.d.ts +5 -0
- package/dist/test/unit/resolver.test.d.ts.map +1 -0
- package/dist/test/unit/resolver.test.js +48 -0
- package/dist/test/unit/resolver.test.js.map +1 -0
- package/dist/test/unit/typecheck/async-discipline-extended.test.d.ts +2 -0
- package/dist/test/unit/typecheck/async-discipline-extended.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/async-discipline-extended.test.js +69 -0
- package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -0
- package/dist/test/unit/typecheck/effects-and-capabilities.test.d.ts +2 -0
- package/dist/test/unit/typecheck/effects-and-capabilities.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/effects-and-capabilities.test.js +191 -0
- package/dist/test/unit/typecheck/effects-and-capabilities.test.js.map +1 -0
- package/dist/test/unit/typecheck/regression-fixes.test.d.ts +11 -0
- package/dist/test/unit/typecheck/regression-fixes.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/regression-fixes.test.js +456 -0
- package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -0
- package/dist/test/unit/typecheck/should-enforce-pii.test.d.ts +2 -0
- package/dist/test/unit/typecheck/should-enforce-pii.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/should-enforce-pii.test.js +167 -0
- package/dist/test/unit/typecheck/should-enforce-pii.test.js.map +1 -0
- package/dist/test/unit/typecheck/symbol-table.test.d.ts +7 -0
- package/dist/test/unit/typecheck/symbol-table.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/symbol-table.test.js +145 -0
- package/dist/test/unit/typecheck/symbol-table.test.js.map +1 -0
- package/dist/test/unit/typecheck/type-inference.test.d.ts +2 -0
- package/dist/test/unit/typecheck/type-inference.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/type-inference.test.js +122 -0
- package/dist/test/unit/typecheck/type-inference.test.js.map +1 -0
- package/dist/test/unit/typecheck/type-system-extended.test.d.ts +8 -0
- package/dist/test/unit/typecheck/type-system-extended.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/type-system-extended.test.js +131 -0
- package/dist/test/unit/typecheck/type-system-extended.test.js.map +1 -0
- package/dist/test/unit/typecheck/type-system.test.d.ts +9 -0
- package/dist/test/unit/typecheck/type-system.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/type-system.test.js +617 -0
- package/dist/test/unit/typecheck/type-system.test.js.map +1 -0
- package/dist/test/unit/typecheck/typecheck-advanced.test.d.ts +2 -0
- package/dist/test/unit/typecheck/typecheck-advanced.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/typecheck-advanced.test.js +125 -0
- package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -0
- package/dist/test/unit/validator.test.d.ts +2 -0
- package/dist/test/unit/validator.test.d.ts.map +1 -0
- package/dist/test/unit/validator.test.js +154 -0
- package/dist/test/unit/validator.test.js.map +1 -0
- package/dist/test/unit/version-utils.test.d.ts +12 -0
- package/dist/test/unit/version-utils.test.d.ts.map +1 -0
- package/dist/test/unit/version-utils.test.js +112 -0
- package/dist/test/unit/version-utils.test.js.map +1 -0
- package/package.json +153 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 层 2: IPC 通信开销测试
|
|
4
|
+
*
|
|
5
|
+
* 目的:量化 LSP 协议中的 IPC 序列化/反序列化开销
|
|
6
|
+
* 方法:启动 LSP server 子进程,发送最小消息测量往返延迟
|
|
7
|
+
*
|
|
8
|
+
* 预期结果:~5-20ms per request
|
|
9
|
+
*/
|
|
10
|
+
import { performance } from 'node:perf_hooks';
|
|
11
|
+
import { LSPClient } from './lsp-client-helper.js';
|
|
12
|
+
import { p50, p95, p99 } from './perf-utils.js';
|
|
13
|
+
const WARMUP_ITERATIONS = 10;
|
|
14
|
+
const MEASUREMENT_ITERATIONS = 100;
|
|
15
|
+
async function measureIPCLatency(client) {
|
|
16
|
+
const samples = [];
|
|
17
|
+
for (let i = 0; i < MEASUREMENT_ITERATIONS; i++) {
|
|
18
|
+
const start = performance.now();
|
|
19
|
+
try {
|
|
20
|
+
// 发送空的 hover 请求(最小有效消息)
|
|
21
|
+
await client.request('textDocument/hover', {
|
|
22
|
+
textDocument: { uri: 'file:///nonexistent.aster' },
|
|
23
|
+
position: { line: 0, character: 0 },
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// 预期会失败(文件不存在),我们只关心往返延迟
|
|
28
|
+
}
|
|
29
|
+
const duration = performance.now() - start;
|
|
30
|
+
samples.push(duration);
|
|
31
|
+
}
|
|
32
|
+
return samples;
|
|
33
|
+
}
|
|
34
|
+
async function measureInitializeLatency(client) {
|
|
35
|
+
const start = performance.now();
|
|
36
|
+
await client.request('initialize', {
|
|
37
|
+
processId: process.pid,
|
|
38
|
+
capabilities: {},
|
|
39
|
+
workspaceFolders: null,
|
|
40
|
+
});
|
|
41
|
+
return performance.now() - start;
|
|
42
|
+
}
|
|
43
|
+
async function main() {
|
|
44
|
+
console.log('🚀 Layer 2: IPC Communication Overhead Test');
|
|
45
|
+
console.log('='.repeat(70));
|
|
46
|
+
console.log('');
|
|
47
|
+
console.log('Purpose: Quantify IPC serialization/deserialization overhead');
|
|
48
|
+
console.log('Method: Measure round-trip time of minimal LSP messages');
|
|
49
|
+
console.log('');
|
|
50
|
+
const client = new LSPClient();
|
|
51
|
+
try {
|
|
52
|
+
console.log('📦 Starting LSP server...');
|
|
53
|
+
const processStartTime = performance.now();
|
|
54
|
+
client.spawn('dist/src/lsp/server.js');
|
|
55
|
+
const processStartDuration = performance.now() - processStartTime;
|
|
56
|
+
console.log(`✅ Server started in ${processStartDuration.toFixed(2)}ms`);
|
|
57
|
+
// 测量 initialize 握手延迟
|
|
58
|
+
console.log('\n🔬 Measuring initialize handshake latency...');
|
|
59
|
+
const initDuration = await measureInitializeLatency(client);
|
|
60
|
+
console.log(`✅ Initialize completed in ${initDuration.toFixed(2)}ms`);
|
|
61
|
+
// Warmup: 预热 IPC 通道
|
|
62
|
+
console.log(`\n🔥 Warming up (${WARMUP_ITERATIONS} iterations)...`);
|
|
63
|
+
for (let i = 0; i < WARMUP_ITERATIONS; i++) {
|
|
64
|
+
try {
|
|
65
|
+
await client.request('textDocument/hover', {
|
|
66
|
+
textDocument: { uri: 'file:///warmup.aster' },
|
|
67
|
+
position: { line: 0, character: 0 },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignore
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
console.log('✅ Warmup completed');
|
|
75
|
+
// 测量 IPC 往返延迟
|
|
76
|
+
console.log(`\n🔬 Measuring IPC round-trip latency (${MEASUREMENT_ITERATIONS} iterations)...`);
|
|
77
|
+
const samples = await measureIPCLatency(client);
|
|
78
|
+
// 统计分析
|
|
79
|
+
console.log('\n' + '─'.repeat(70));
|
|
80
|
+
console.log('📈 IPC Round-Trip Latency Statistics:');
|
|
81
|
+
console.log('');
|
|
82
|
+
console.log(` Samples: ${samples.length}`);
|
|
83
|
+
console.log(` Total: ${samples.reduce((a, b) => a + b, 0).toFixed(2)}ms`);
|
|
84
|
+
console.log(` Average: ${(samples.reduce((a, b) => a + b, 0) / samples.length).toFixed(2)}ms`);
|
|
85
|
+
console.log(` p50 (median):${p50(samples).toFixed(2)}ms`);
|
|
86
|
+
console.log(` p95: ${p95(samples).toFixed(2)}ms`);
|
|
87
|
+
console.log(` p99: ${p99(samples).toFixed(2)}ms`);
|
|
88
|
+
console.log(` Min: ${Math.min(...samples).toFixed(2)}ms`);
|
|
89
|
+
console.log(` Max: ${Math.max(...samples).toFixed(2)}ms`);
|
|
90
|
+
// 批量请求开销估算
|
|
91
|
+
const avgLatency = samples.reduce((a, b) => a + b, 0) / samples.length;
|
|
92
|
+
console.log('\n' + '─'.repeat(70));
|
|
93
|
+
console.log('💡 Batch Request Overhead Estimation:');
|
|
94
|
+
console.log('');
|
|
95
|
+
console.log(` For 1 request: ${avgLatency.toFixed(2)}ms`);
|
|
96
|
+
console.log(` For 10 requests: ${(avgLatency * 10).toFixed(2)}ms`);
|
|
97
|
+
console.log(` For 40 requests: ${(avgLatency * 40).toFixed(2)}ms (Medium project)`);
|
|
98
|
+
console.log(` For 100 requests:${(avgLatency * 100).toFixed(2)}ms`);
|
|
99
|
+
// 与层 1 对比
|
|
100
|
+
console.log('\n' + '─'.repeat(70));
|
|
101
|
+
console.log('📌 Comparison with Layer 1 (LSP Internal):');
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log(' Layer 1 (in-process): ~0.95ms per file (cold), ~0.00ms (warm)');
|
|
104
|
+
console.log(` Layer 2 (IPC): ${avgLatency.toFixed(2)}ms per request`);
|
|
105
|
+
console.log(` IPC overhead: ${avgLatency.toFixed(2)}ms per request`);
|
|
106
|
+
console.log('');
|
|
107
|
+
console.log(' 📊 For Medium project (40 files):');
|
|
108
|
+
console.log(' Layer 1 processing: ~38ms');
|
|
109
|
+
console.log(` IPC overhead: ~${(avgLatency * 40).toFixed(2)}ms`);
|
|
110
|
+
console.log(` Total expected: ~${(38 + avgLatency * 40).toFixed(2)}ms`);
|
|
111
|
+
console.log('\n' + '='.repeat(70));
|
|
112
|
+
console.log('✅ Layer 2 test completed');
|
|
113
|
+
console.log('');
|
|
114
|
+
console.log('Next steps:');
|
|
115
|
+
console.log(' - Run Layer 3 (perf-lsp-e2e-v2.ts) to measure end-to-end latency');
|
|
116
|
+
console.log(' - Compare all layers to identify bottleneck location');
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
console.log('\n🔚 Stopping LSP server...');
|
|
120
|
+
client.close();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
main().catch(error => {
|
|
124
|
+
console.error('❌ Layer 2 test failed:', error);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=perf-lsp-ipc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-lsp-ipc.js","sourceRoot":"","sources":["../../scripts/perf-lsp-ipc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-lsp.d.ts","sourceRoot":"","sources":["../../scripts/perf-lsp.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { performance } from 'node:perf_hooks';
|
|
3
|
+
import { p50 } from './perf-utils.js';
|
|
4
|
+
import { canonicalize } from '../src/frontend/canonicalizer.js';
|
|
5
|
+
import { lex } from '../src/frontend/lexer.js';
|
|
6
|
+
import { parse } from '../src/parser.js';
|
|
7
|
+
function main() {
|
|
8
|
+
// Choose a sample that avoids unsupported syntax (e.g., '?' suffix) for lexer
|
|
9
|
+
const text = [
|
|
10
|
+
'This module is demo.perf.',
|
|
11
|
+
'To join with left: Text and right: Text, produce Text:',
|
|
12
|
+
' Return Text.concat(left, right).',
|
|
13
|
+
''
|
|
14
|
+
].join('\n');
|
|
15
|
+
const N = 100;
|
|
16
|
+
const docs = Array.from({ length: N }, () => ({ text, can: canonicalize(text) }));
|
|
17
|
+
const tLex = [];
|
|
18
|
+
const tParse = [];
|
|
19
|
+
const tHoverPrep = [];
|
|
20
|
+
const tSem = [];
|
|
21
|
+
const tRefs = [];
|
|
22
|
+
for (const d of docs) {
|
|
23
|
+
try {
|
|
24
|
+
let t0 = performance.now();
|
|
25
|
+
const toks = lex(d.can);
|
|
26
|
+
let t1 = performance.now();
|
|
27
|
+
tLex.push(t1 - t0);
|
|
28
|
+
const ast = parse(toks);
|
|
29
|
+
const t2 = performance.now();
|
|
30
|
+
tParse.push(t2 - t1);
|
|
31
|
+
// Simulate semantic tokens/hover prep by a shallow decl/param scan
|
|
32
|
+
t0 = performance.now();
|
|
33
|
+
let count = 0;
|
|
34
|
+
for (const dec of ast.decls) {
|
|
35
|
+
if (dec.kind === 'Func')
|
|
36
|
+
count += 1 + (dec.params?.length || 0);
|
|
37
|
+
}
|
|
38
|
+
void count;
|
|
39
|
+
t1 = performance.now();
|
|
40
|
+
tHoverPrep.push(t1 - t0);
|
|
41
|
+
// Simulate semantic tokens building over tokens
|
|
42
|
+
t0 = performance.now();
|
|
43
|
+
let kw = 0, ty = 0;
|
|
44
|
+
for (const t of toks) {
|
|
45
|
+
if (t.kind === 'KEYWORD')
|
|
46
|
+
kw++;
|
|
47
|
+
else if (t.kind === 'TYPE_IDENT')
|
|
48
|
+
ty++;
|
|
49
|
+
}
|
|
50
|
+
void kw;
|
|
51
|
+
void ty;
|
|
52
|
+
t1 = performance.now();
|
|
53
|
+
tSem.push(t1 - t0);
|
|
54
|
+
// Simulate references lookup by building an id index
|
|
55
|
+
t0 = performance.now();
|
|
56
|
+
const idx = new Map();
|
|
57
|
+
for (const t of toks) {
|
|
58
|
+
if (t.kind !== 'IDENT' && t.kind !== 'TYPE_IDENT')
|
|
59
|
+
continue;
|
|
60
|
+
const k = String(t.value || '');
|
|
61
|
+
idx.set(k, (idx.get(k) || 0) + 1);
|
|
62
|
+
}
|
|
63
|
+
void idx;
|
|
64
|
+
t1 = performance.now();
|
|
65
|
+
tRefs.push(t1 - t0);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// skip invalid sample
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const out = {
|
|
72
|
+
files: N,
|
|
73
|
+
lex: { p50: p50(tLex).toFixed(2), mean: (tLex.reduce((a, b) => a + b, 0) / N).toFixed(2) },
|
|
74
|
+
parse: { p50: p50(tParse).toFixed(2), mean: (tParse.reduce((a, b) => a + b, 0) / Math.max(1, tParse.length)).toFixed(2) },
|
|
75
|
+
prep: { p50: p50(tHoverPrep).toFixed(2), mean: (tHoverPrep.reduce((a, b) => a + b, 0) / Math.max(1, tHoverPrep.length)).toFixed(2) },
|
|
76
|
+
sem: { p50: p50(tSem).toFixed(2), mean: (tSem.reduce((a, b) => a + b, 0) / Math.max(1, tSem.length)).toFixed(2) },
|
|
77
|
+
refs: { p50: p50(tRefs).toFixed(2), mean: (tRefs.reduce((a, b) => a + b, 0) / Math.max(1, tRefs.length)).toFixed(2) },
|
|
78
|
+
};
|
|
79
|
+
console.log(JSON.stringify(out, null, 2));
|
|
80
|
+
// Soft gate: warn if parse p50 exceeds 30ms
|
|
81
|
+
if (parseFloat(out.parse.p50) > 30) {
|
|
82
|
+
console.error('Warn: parse p50 exceeds 30ms target');
|
|
83
|
+
process.exitCode = 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
main();
|
|
87
|
+
//# sourceMappingURL=perf-lsp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-lsp.js","sourceRoot":"","sources":["../../scripts/perf-lsp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 性能统计工具函数
|
|
4
|
+
* 提供百分位数计算,用于性能测试脚本
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 计算数组的百分位数(使用线性插值方法)
|
|
8
|
+
* @param values 数值数组
|
|
9
|
+
* @param p 百分位 (0.0-1.0,例如 0.50 表示中位数)
|
|
10
|
+
* @returns 百分位数值,空数组返回 0
|
|
11
|
+
*
|
|
12
|
+
* 使用线性插值确保 p50 在偶数长度数组中取平均值,
|
|
13
|
+
* 与 p95/p99 使用一致的算法。
|
|
14
|
+
*/
|
|
15
|
+
export declare function percentile(values: number[], p: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* 计算中位数 (50th percentile)
|
|
18
|
+
* 使用线性插值,偶数长度数组自动取平均值
|
|
19
|
+
*/
|
|
20
|
+
export declare const p50: (values: number[]) => number;
|
|
21
|
+
/**
|
|
22
|
+
* 计算 95th percentile
|
|
23
|
+
*/
|
|
24
|
+
export declare const p95: (values: number[]) => number;
|
|
25
|
+
/**
|
|
26
|
+
* 计算 99th percentile
|
|
27
|
+
*/
|
|
28
|
+
export declare const p99: (values: number[]) => number;
|
|
29
|
+
//# sourceMappingURL=perf-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-utils.d.ts","sourceRoot":"","sources":["../../scripts/perf-utils.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAkC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAkC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAkC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 性能统计工具函数
|
|
4
|
+
* 提供百分位数计算,用于性能测试脚本
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 计算数组的百分位数(使用线性插值方法)
|
|
8
|
+
* @param values 数值数组
|
|
9
|
+
* @param p 百分位 (0.0-1.0,例如 0.50 表示中位数)
|
|
10
|
+
* @returns 百分位数值,空数组返回 0
|
|
11
|
+
*
|
|
12
|
+
* 使用线性插值确保 p50 在偶数长度数组中取平均值,
|
|
13
|
+
* 与 p95/p99 使用一致的算法。
|
|
14
|
+
*/
|
|
15
|
+
export function percentile(values, p) {
|
|
16
|
+
if (values.length === 0)
|
|
17
|
+
return 0;
|
|
18
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
19
|
+
const index = p * (sorted.length - 1);
|
|
20
|
+
const lower = Math.floor(index);
|
|
21
|
+
const upper = Math.ceil(index);
|
|
22
|
+
const weight = index - lower;
|
|
23
|
+
if (upper >= sorted.length)
|
|
24
|
+
return sorted[sorted.length - 1];
|
|
25
|
+
return sorted[lower] * (1 - weight) + sorted[upper] * weight;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 计算中位数 (50th percentile)
|
|
29
|
+
* 使用线性插值,偶数长度数组自动取平均值
|
|
30
|
+
*/
|
|
31
|
+
export const p50 = (values) => percentile(values, 0.50);
|
|
32
|
+
/**
|
|
33
|
+
* 计算 95th percentile
|
|
34
|
+
*/
|
|
35
|
+
export const p95 = (values) => percentile(values, 0.95);
|
|
36
|
+
/**
|
|
37
|
+
* 计算 99th percentile
|
|
38
|
+
*/
|
|
39
|
+
export const p99 = (values) => percentile(values, 0.99);
|
|
40
|
+
//# sourceMappingURL=perf-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-utils.js","sourceRoot":"","sources":["../../scripts/perf-utils.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,CAAS;IACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAE7B,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC9D,OAAO,MAAM,CAAC,KAAK,CAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAE,GAAG,MAAM,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAU,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAU,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAU,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-medium-project.d.ts","sourceRoot":"","sources":["../../scripts/profile-medium-project.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 性能分析:精确测量Medium项目各阶段耗时
|
|
4
|
+
* 目的:找出导致基准测试超时的真正瓶颈
|
|
5
|
+
*/
|
|
6
|
+
import { performance } from 'node:perf_hooks';
|
|
7
|
+
import { canonicalize } from '../src/frontend/canonicalizer.js';
|
|
8
|
+
import { lex } from '../src/frontend/lexer.js';
|
|
9
|
+
import { parse } from '../src/parser.js';
|
|
10
|
+
import { lowerModule } from '../src/lower_to_core.js';
|
|
11
|
+
import { typecheckModule } from '../src/typecheck.js';
|
|
12
|
+
import { generateMediumProject } from '../test/generators.js';
|
|
13
|
+
function calculateStats(name, samples) {
|
|
14
|
+
const total = samples.reduce((a, b) => a + b, 0);
|
|
15
|
+
const sorted = [...samples].sort((a, b) => a - b);
|
|
16
|
+
return {
|
|
17
|
+
name,
|
|
18
|
+
total,
|
|
19
|
+
avg: total / samples.length,
|
|
20
|
+
min: Math.min(...samples),
|
|
21
|
+
max: Math.max(...samples),
|
|
22
|
+
p50: sorted[Math.floor(sorted.length * 0.5)] ?? 0,
|
|
23
|
+
p95: sorted[Math.floor(sorted.length * 0.95)] ?? 0,
|
|
24
|
+
samples,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function printStats(stats) {
|
|
28
|
+
console.log(`\n📊 ${stats.name}`);
|
|
29
|
+
console.log('─'.repeat(60));
|
|
30
|
+
console.log(` Total: ${stats.total.toFixed(2)}ms`);
|
|
31
|
+
console.log(` Average: ${stats.avg.toFixed(2)}ms`);
|
|
32
|
+
console.log(` p50 (median):${stats.p50.toFixed(2)}ms`);
|
|
33
|
+
console.log(` p95: ${stats.p95.toFixed(2)}ms`);
|
|
34
|
+
console.log(` Min: ${stats.min.toFixed(2)}ms`);
|
|
35
|
+
console.log(` Max: ${stats.max.toFixed(2)}ms`);
|
|
36
|
+
}
|
|
37
|
+
async function main() {
|
|
38
|
+
console.log('🚀 Medium Project Performance Analysis');
|
|
39
|
+
console.log('='.repeat(60));
|
|
40
|
+
// 生成Medium项目 (40个模块)
|
|
41
|
+
console.log('\n📦 Generating Medium project (40 modules)...');
|
|
42
|
+
const genStart = performance.now();
|
|
43
|
+
const modules = generateMediumProject(40, 42);
|
|
44
|
+
const genTime = performance.now() - genStart;
|
|
45
|
+
console.log(`✅ Generated in ${genTime.toFixed(2)}ms`);
|
|
46
|
+
console.log(` Modules: ${modules.size}`);
|
|
47
|
+
// 统计各阶段耗时
|
|
48
|
+
const canonicalizeTimings = [];
|
|
49
|
+
const lexTimings = [];
|
|
50
|
+
const parseTimings = [];
|
|
51
|
+
const lowerTimings = [];
|
|
52
|
+
const typecheckTimings = [];
|
|
53
|
+
const totalTimings = [];
|
|
54
|
+
console.log('\n🔬 Processing modules...');
|
|
55
|
+
let moduleIndex = 0;
|
|
56
|
+
for (const [moduleName, source] of modules.entries()) {
|
|
57
|
+
moduleIndex++;
|
|
58
|
+
const moduleStart = performance.now();
|
|
59
|
+
try {
|
|
60
|
+
// Phase 1: Canonicalize
|
|
61
|
+
const canStart = performance.now();
|
|
62
|
+
const canonicalized = canonicalize(source);
|
|
63
|
+
canonicalizeTimings.push(performance.now() - canStart);
|
|
64
|
+
// Phase 2: Lex
|
|
65
|
+
const lexStart = performance.now();
|
|
66
|
+
const tokens = lex(canonicalized);
|
|
67
|
+
lexTimings.push(performance.now() - lexStart);
|
|
68
|
+
// Phase 3: Parse
|
|
69
|
+
const parseStart = performance.now();
|
|
70
|
+
const ast = parse(tokens);
|
|
71
|
+
parseTimings.push(performance.now() - parseStart);
|
|
72
|
+
// Phase 4: Lower to Core IR
|
|
73
|
+
const lowerStart = performance.now();
|
|
74
|
+
const core = lowerModule(ast);
|
|
75
|
+
lowerTimings.push(performance.now() - lowerStart);
|
|
76
|
+
// Phase 5: Typecheck
|
|
77
|
+
const typecheckStart = performance.now();
|
|
78
|
+
const diags = typecheckModule(core);
|
|
79
|
+
typecheckTimings.push(performance.now() - typecheckStart);
|
|
80
|
+
const moduleDuration = performance.now() - moduleStart;
|
|
81
|
+
totalTimings.push(moduleDuration);
|
|
82
|
+
if (moduleIndex <= 5 || moduleIndex % 10 === 0 || moduleIndex === modules.size) {
|
|
83
|
+
console.log(` [${moduleIndex.toString().padStart(2)}/${modules.size}] ${moduleName.padEnd(35)} ` +
|
|
84
|
+
`${moduleDuration.toFixed(2).padStart(8)}ms (${diags.length} diags)`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.log(` [${moduleIndex.toString().padStart(2)}/${modules.size}] ${moduleName.padEnd(35)} ` +
|
|
89
|
+
`ERROR: ${error instanceof Error ? error.message : String(error)}`);
|
|
90
|
+
// 仍然记录部分完成的阶段
|
|
91
|
+
totalTimings.push(performance.now() - moduleStart);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// 打印各阶段统计
|
|
95
|
+
console.log('\n' + '='.repeat(60));
|
|
96
|
+
console.log('📈 PHASE-BY-PHASE BREAKDOWN');
|
|
97
|
+
console.log('='.repeat(60));
|
|
98
|
+
const canonStats = calculateStats('Phase 1: Canonicalize', canonicalizeTimings);
|
|
99
|
+
const lexStats = calculateStats('Phase 2: Lex', lexTimings);
|
|
100
|
+
const parseStats = calculateStats('Phase 3: Parse', parseTimings);
|
|
101
|
+
const lowerStats = calculateStats('Phase 4: Lower to Core', lowerTimings);
|
|
102
|
+
const typecheckStats = calculateStats('Phase 5: Typecheck', typecheckTimings);
|
|
103
|
+
const totalStats = calculateStats('Total (all phases)', totalTimings);
|
|
104
|
+
printStats(canonStats);
|
|
105
|
+
printStats(lexStats);
|
|
106
|
+
printStats(parseStats);
|
|
107
|
+
printStats(lowerStats);
|
|
108
|
+
printStats(typecheckStats);
|
|
109
|
+
printStats(totalStats);
|
|
110
|
+
// 瓶颈分析
|
|
111
|
+
console.log('\n' + '='.repeat(60));
|
|
112
|
+
console.log('🎯 BOTTLENECK ANALYSIS');
|
|
113
|
+
console.log('='.repeat(60));
|
|
114
|
+
const phases = [
|
|
115
|
+
{ name: 'Canonicalize', total: canonStats.total, percent: 0 },
|
|
116
|
+
{ name: 'Lex', total: lexStats.total, percent: 0 },
|
|
117
|
+
{ name: 'Parse', total: parseStats.total, percent: 0 },
|
|
118
|
+
{ name: 'Lower', total: lowerStats.total, percent: 0 },
|
|
119
|
+
{ name: 'Typecheck', total: typecheckStats.total, percent: 0 },
|
|
120
|
+
];
|
|
121
|
+
const grandTotal = phases.reduce((sum, p) => sum + p.total, 0);
|
|
122
|
+
for (const phase of phases) {
|
|
123
|
+
phase.percent = (phase.total / grandTotal) * 100;
|
|
124
|
+
}
|
|
125
|
+
phases.sort((a, b) => b.total - a.total);
|
|
126
|
+
console.log('\nTime distribution by phase:');
|
|
127
|
+
for (const phase of phases) {
|
|
128
|
+
const bar = '█'.repeat(Math.floor(phase.percent / 2));
|
|
129
|
+
console.log(` ${phase.name.padEnd(15)} ${phase.total.toFixed(2).padStart(8)}ms ` +
|
|
130
|
+
`${phase.percent.toFixed(1).padStart(5)}% ${bar}`);
|
|
131
|
+
}
|
|
132
|
+
console.log(`\n🏁 Grand Total: ${grandTotal.toFixed(2)}ms for ${modules.size} modules`);
|
|
133
|
+
console.log(` Average per module: ${(grandTotal / modules.size).toFixed(2)}ms`);
|
|
134
|
+
// 与超时阈值对比
|
|
135
|
+
const TIMEOUT_MS = 30000;
|
|
136
|
+
if (grandTotal > TIMEOUT_MS) {
|
|
137
|
+
console.log(`\n⚠️ WARNING: Total time (${grandTotal.toFixed(2)}ms) exceeds timeout (${TIMEOUT_MS}ms)`);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.log(`\n✅ Total time (${grandTotal.toFixed(2)}ms) is within timeout (${TIMEOUT_MS}ms)`);
|
|
141
|
+
}
|
|
142
|
+
// 识别最大瓶颈
|
|
143
|
+
console.log(`\n🔴 PRIMARY BOTTLENECK: ${phases[0].name} (${phases[0].percent.toFixed(1)}% of total time)`);
|
|
144
|
+
if (phases[0].percent > 40) {
|
|
145
|
+
console.log(` This phase accounts for more than 40% of total time - optimization target!`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
main().catch(error => {
|
|
149
|
+
console.error('❌ Performance analysis failed:', error);
|
|
150
|
+
process.exit(1);
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=profile-medium-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-medium-project.js","sourceRoot":"","sources":["../../scripts/profile-medium-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../scripts/repl.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import readline from 'node:readline';
|
|
3
|
+
// import fs from 'node:fs';
|
|
4
|
+
import { canonicalize } from '../src/frontend/canonicalizer.js';
|
|
5
|
+
import { lex } from '../src/frontend/lexer.js';
|
|
6
|
+
import { parse } from '../src/parser.js';
|
|
7
|
+
import { lowerModule } from '../src/lower_to_core.js';
|
|
8
|
+
import { formatModule } from '../src/core/pretty_core.js';
|
|
9
|
+
import { DiagnosticError, formatDiagnostic } from '../src/diagnostics/diagnostics.js';
|
|
10
|
+
const BANNER = `Aster REPL (v0)
|
|
11
|
+
Type CNL statements or paste a module. End input with an empty line to evaluate.
|
|
12
|
+
Commands: :q to quit, :h for help.`;
|
|
13
|
+
function help() {
|
|
14
|
+
console.log(`Commands:
|
|
15
|
+
:q quit
|
|
16
|
+
:h help
|
|
17
|
+
:f toggle formatter output (Core pseudocode vs JSON)`);
|
|
18
|
+
}
|
|
19
|
+
async function repl() {
|
|
20
|
+
console.log(BANNER);
|
|
21
|
+
const rl = readline.createInterface({
|
|
22
|
+
input: process.stdin,
|
|
23
|
+
output: process.stdout,
|
|
24
|
+
prompt: '> ',
|
|
25
|
+
});
|
|
26
|
+
let buffer = [];
|
|
27
|
+
let pretty = true;
|
|
28
|
+
rl.prompt();
|
|
29
|
+
rl.on('line', (line) => {
|
|
30
|
+
const trimmed = line.trim();
|
|
31
|
+
if (trimmed === ':q') {
|
|
32
|
+
rl.close();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (trimmed === ':h') {
|
|
36
|
+
help();
|
|
37
|
+
rl.prompt();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (trimmed === ':f') {
|
|
41
|
+
pretty = !pretty;
|
|
42
|
+
console.log(`Formatter: ${pretty ? 'on' : 'off'}`);
|
|
43
|
+
rl.prompt();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (trimmed === '') {
|
|
47
|
+
// evaluate
|
|
48
|
+
const src = buffer.join('\n');
|
|
49
|
+
buffer = [];
|
|
50
|
+
if (!src.trim()) {
|
|
51
|
+
rl.prompt();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const can = canonicalize(src);
|
|
56
|
+
const tokens = lex(can);
|
|
57
|
+
const ast = parse(tokens);
|
|
58
|
+
const core = lowerModule(ast);
|
|
59
|
+
if (pretty) {
|
|
60
|
+
console.log(formatModule(core));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.log(JSON.stringify(core, null, 2));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
if (e instanceof DiagnosticError) {
|
|
68
|
+
console.error(formatDiagnostic(e.diagnostic, src));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const err = e;
|
|
72
|
+
const pos = err.pos ? `:${err.pos.line}:${err.pos.col}` : '';
|
|
73
|
+
console.error(`Error${pos}: ${err.message ?? String(e)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
rl.prompt();
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
buffer.push(line);
|
|
80
|
+
rl.setPrompt('… ');
|
|
81
|
+
rl.prompt();
|
|
82
|
+
rl.setPrompt('> ');
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
rl.on('close', () => process.exit(0));
|
|
86
|
+
}
|
|
87
|
+
repl();
|
|
88
|
+
//# sourceMappingURL=repl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../scripts/repl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../scripts/scaffold.ts"],"names":[],"mappings":""}
|