@intentius/chant 0.7.0 → 0.8.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/dist/attrref.d.ts +35 -0
- package/dist/attrref.d.ts.map +1 -0
- package/dist/audit/catalog.d.ts +65 -0
- package/dist/audit/catalog.d.ts.map +1 -0
- package/dist/audit/core.d.ts +76 -0
- package/dist/audit/core.d.ts.map +1 -0
- package/dist/audit/discover.d.ts +76 -0
- package/dist/audit/discover.d.ts.map +1 -0
- package/dist/audit/fetch.d.ts +90 -0
- package/dist/audit/fetch.d.ts.map +1 -0
- package/dist/audit/proof.d.ts +53 -0
- package/dist/audit/proof.d.ts.map +1 -0
- package/dist/audit/report-html.d.ts +32 -0
- package/dist/audit/report-html.d.ts.map +1 -0
- package/dist/audit/report-model.d.ts +119 -0
- package/dist/audit/report-model.d.ts.map +1 -0
- package/dist/audit/report.d.ts +31 -0
- package/dist/audit/report.d.ts.map +1 -0
- package/dist/audit/rules-doc.d.ts +11 -0
- package/dist/audit/rules-doc.d.ts.map +1 -0
- package/dist/build.d.ts +120 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/builder.d.ts +56 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/child-project.d.ts +34 -0
- package/dist/child-project.d.ts.map +1 -0
- package/dist/cli/commands/audit.d.ts +60 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/build.d.ts +70 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/check-lexicon.d.ts +19 -0
- package/dist/cli/commands/check-lexicon.d.ts.map +1 -0
- package/dist/cli/commands/describe.d.ts +39 -0
- package/dist/cli/commands/describe.d.ts.map +1 -0
- package/dist/cli/commands/diff.d.ts +32 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +11 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/import.d.ts +68 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.d.ts +9 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/docs.d.ts +9 -0
- package/dist/cli/commands/init-lexicon/templates/docs.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/examples.d.ts +8 -0
- package/dist/cli/commands/init-lexicon/templates/examples.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/lint.d.ts +8 -0
- package/dist/cli/commands/init-lexicon/templates/lint.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/lsp.d.ts +6 -0
- package/dist/cli/commands/init-lexicon/templates/lsp.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/plugin.d.ts +12 -0
- package/dist/cli/commands/init-lexicon/templates/plugin.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/project.d.ts +19 -0
- package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/spec.d.ts +6 -0
- package/dist/cli/commands/init-lexicon/templates/spec.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon/templates/tests.d.ts +12 -0
- package/dist/cli/commands/init-lexicon/templates/tests.d.ts.map +1 -0
- package/dist/cli/commands/init-lexicon.d.ts +37 -0
- package/dist/cli/commands/init-lexicon.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +48 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/licenses.d.ts +23 -0
- package/dist/cli/commands/licenses.d.ts.map +1 -0
- package/dist/cli/commands/lint.d.ts +52 -0
- package/dist/cli/commands/lint.d.ts.map +1 -0
- package/dist/cli/commands/list.d.ts +38 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/migrate.d.ts +51 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/onboard.d.ts +19 -0
- package/dist/cli/commands/onboard.d.ts.map +1 -0
- package/dist/cli/commands/update.d.ts +29 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/vendor.d.ts +84 -0
- package/dist/cli/commands/vendor.d.ts.map +1 -0
- package/dist/cli/conflict-check.d.ts +18 -0
- package/dist/cli/conflict-check.d.ts.map +1 -0
- package/dist/cli/debug.d.ts +5 -0
- package/dist/cli/debug.d.ts.map +1 -0
- package/dist/cli/format.d.ts +36 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/handlers/build.d.ts +3 -0
- package/dist/cli/handlers/build.d.ts.map +1 -0
- package/dist/cli/handlers/dev.d.ts +7 -0
- package/dist/cli/handlers/dev.d.ts.map +1 -0
- package/dist/cli/handlers/graph.d.ts +8 -0
- package/dist/cli/handlers/graph.d.ts.map +1 -0
- package/dist/cli/handlers/init.d.ts +4 -0
- package/dist/cli/handlers/init.d.ts.map +1 -0
- package/dist/cli/handlers/lifecycle.d.ts +39 -0
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -0
- package/dist/cli/handlers/lint.d.ts +3 -0
- package/dist/cli/handlers/lint.d.ts.map +1 -0
- package/dist/cli/handlers/migrate.d.ts +3 -0
- package/dist/cli/handlers/migrate.d.ts.map +1 -0
- package/dist/cli/handlers/misc.d.ts +8 -0
- package/dist/cli/handlers/misc.d.ts.map +1 -0
- package/dist/cli/handlers/run-client.d.ts +107 -0
- package/dist/cli/handlers/run-client.d.ts.map +1 -0
- package/dist/cli/handlers/run-report.d.ts +5 -0
- package/dist/cli/handlers/run-report.d.ts.map +1 -0
- package/dist/cli/handlers/run.d.ts +27 -0
- package/dist/cli/handlers/run.d.ts.map +1 -0
- package/dist/cli/handlers/serve.d.ts +5 -0
- package/dist/cli/handlers/serve.d.ts.map +1 -0
- package/dist/cli/handlers/vendor.d.ts +9 -0
- package/dist/cli/handlers/vendor.d.ts.map +1 -0
- package/dist/cli/index.d.ts +4 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/lsp/capabilities.d.ts +21 -0
- package/dist/cli/lsp/capabilities.d.ts.map +1 -0
- package/dist/cli/lsp/diagnostics.d.ts +30 -0
- package/dist/cli/lsp/diagnostics.d.ts.map +1 -0
- package/dist/cli/lsp/server.d.ts +106 -0
- package/dist/cli/lsp/server.d.ts.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/mcp/lifecycle-tools.d.ts +15 -0
- package/dist/cli/mcp/lifecycle-tools.d.ts.map +1 -0
- package/dist/cli/mcp/op-tools.d.ts +7 -0
- package/dist/cli/mcp/op-tools.d.ts.map +1 -0
- package/dist/cli/mcp/resource-handlers.d.ts +28 -0
- package/dist/cli/mcp/resource-handlers.d.ts.map +1 -0
- package/dist/cli/mcp/resources/context.d.ts +6 -0
- package/dist/cli/mcp/resources/context.d.ts.map +1 -0
- package/dist/cli/mcp/server.d.ts +44 -0
- package/dist/cli/mcp/server.d.ts.map +1 -0
- package/dist/cli/mcp/tools/build.d.ts +31 -0
- package/dist/cli/mcp/tools/build.d.ts.map +1 -0
- package/dist/cli/mcp/tools/explain.d.ts +27 -0
- package/dist/cli/mcp/tools/explain.d.ts.map +1 -0
- package/dist/cli/mcp/tools/import.d.ts +26 -0
- package/dist/cli/mcp/tools/import.d.ts.map +1 -0
- package/dist/cli/mcp/tools/lint.d.ts +26 -0
- package/dist/cli/mcp/tools/lint.d.ts.map +1 -0
- package/dist/cli/mcp/tools/scaffold.d.ts +31 -0
- package/dist/cli/mcp/tools/scaffold.d.ts.map +1 -0
- package/dist/cli/mcp/tools/search.d.ts +31 -0
- package/dist/cli/mcp/tools/search.d.ts.map +1 -0
- package/dist/cli/mcp/types.d.ts +42 -0
- package/dist/cli/mcp/types.d.ts.map +1 -0
- package/dist/cli/plugins.d.ts +21 -0
- package/dist/cli/plugins.d.ts.map +1 -0
- package/dist/cli/registry.d.ts +100 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/reporters/stylish.d.ts +26 -0
- package/dist/cli/reporters/stylish.d.ts.map +1 -0
- package/dist/cli/watch.d.ts +29 -0
- package/dist/cli/watch.d.ts.map +1 -0
- package/dist/codegen/bound-property-types.d.ts +38 -0
- package/dist/codegen/bound-property-types.d.ts.map +1 -0
- package/dist/codegen/coverage.d.ts +57 -0
- package/dist/codegen/coverage.d.ts.map +1 -0
- package/dist/codegen/docs-file-markers.d.ts +16 -0
- package/dist/codegen/docs-file-markers.d.ts.map +1 -0
- package/dist/codegen/docs-rule-scanning.d.ts +14 -0
- package/dist/codegen/docs-rule-scanning.d.ts.map +1 -0
- package/dist/codegen/docs-rules.d.ts +17 -0
- package/dist/codegen/docs-rules.d.ts.map +1 -0
- package/dist/codegen/docs-sections.d.ts +11 -0
- package/dist/codegen/docs-sections.d.ts.map +1 -0
- package/dist/codegen/docs-sidebar.d.ts +6 -0
- package/dist/codegen/docs-sidebar.d.ts.map +1 -0
- package/dist/codegen/docs-types.d.ts +84 -0
- package/dist/codegen/docs-types.d.ts.map +1 -0
- package/dist/codegen/docs.d.ts +28 -0
- package/dist/codegen/docs.d.ts.map +1 -0
- package/dist/codegen/fetch.d.ts +76 -0
- package/dist/codegen/fetch.d.ts.map +1 -0
- package/dist/codegen/generate-post-synth-barrel.d.ts +32 -0
- package/dist/codegen/generate-post-synth-barrel.d.ts.map +1 -0
- package/dist/codegen/generate-registry.d.ts +40 -0
- package/dist/codegen/generate-registry.d.ts.map +1 -0
- package/dist/codegen/generate-runtime-index.d.ts +40 -0
- package/dist/codegen/generate-runtime-index.d.ts.map +1 -0
- package/dist/codegen/generate-typescript.d.ts +48 -0
- package/dist/codegen/generate-typescript.d.ts.map +1 -0
- package/dist/codegen/generate.d.ts +92 -0
- package/dist/codegen/generate.d.ts.map +1 -0
- package/dist/codegen/json-patch.d.ts +12 -0
- package/dist/codegen/json-patch.d.ts.map +1 -0
- package/dist/codegen/json-schema.d.ts +82 -0
- package/dist/codegen/json-schema.d.ts.map +1 -0
- package/dist/codegen/naming.d.ts +64 -0
- package/dist/codegen/naming.d.ts.map +1 -0
- package/dist/codegen/package.d.ts +64 -0
- package/dist/codegen/package.d.ts.map +1 -0
- package/dist/codegen/topo-sort.d.ts +13 -0
- package/dist/codegen/topo-sort.d.ts.map +1 -0
- package/dist/codegen/typecheck.d.ts +10 -0
- package/dist/codegen/typecheck.d.ts.map +1 -0
- package/dist/codegen/validate.d.ts +45 -0
- package/dist/codegen/validate.d.ts.map +1 -0
- package/dist/composite.d.ts +116 -0
- package/dist/composite.d.ts.map +1 -0
- package/dist/config.d.ts +78 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/declarable.d.ts +34 -0
- package/dist/declarable.d.ts.map +1 -0
- package/dist/detectLexicon.d.ts +10 -0
- package/dist/detectLexicon.d.ts.map +1 -0
- package/dist/discovery/cache.d.ts +36 -0
- package/dist/discovery/cache.d.ts.map +1 -0
- package/dist/discovery/collect.d.ts +17 -0
- package/dist/discovery/collect.d.ts.map +1 -0
- package/dist/discovery/cycles.d.ts +23 -0
- package/dist/discovery/cycles.d.ts.map +1 -0
- package/dist/discovery/files.d.ts +7 -0
- package/dist/discovery/files.d.ts.map +1 -0
- package/dist/discovery/graph.d.ts +8 -0
- package/dist/discovery/graph.d.ts.map +1 -0
- package/dist/discovery/import.d.ts +9 -0
- package/dist/discovery/import.d.ts.map +1 -0
- package/dist/discovery/index.d.ts +25 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/resolve.d.ts +10 -0
- package/dist/discovery/resolve.d.ts.map +1 -0
- package/dist/errors.d.ts +49 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/import/base-parser.d.ts +19 -0
- package/dist/import/base-parser.d.ts.map +1 -0
- package/dist/import/generator.d.ts +20 -0
- package/dist/import/generator.d.ts.map +1 -0
- package/dist/import/ir-utils.d.ts +25 -0
- package/dist/import/ir-utils.d.ts.map +1 -0
- package/dist/import/parser.d.ts +39 -0
- package/dist/import/parser.d.ts.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/intrinsic-interpolation.d.ts +24 -0
- package/dist/intrinsic-interpolation.d.ts.map +1 -0
- package/dist/intrinsic.d.ts +24 -0
- package/dist/intrinsic.d.ts.map +1 -0
- package/dist/lexicon-integrity.d.ts +25 -0
- package/dist/lexicon-integrity.d.ts.map +1 -0
- package/dist/lexicon-manifest.d.ts +9 -0
- package/dist/lexicon-manifest.d.ts.map +1 -0
- package/dist/lexicon-output.d.ts +66 -0
- package/dist/lexicon-output.d.ts.map +1 -0
- package/dist/lexicon-plugin-helpers.d.ts +59 -0
- package/dist/lexicon-plugin-helpers.d.ts.map +1 -0
- package/dist/lexicon-schema.d.ts +82 -0
- package/dist/lexicon-schema.d.ts.map +1 -0
- package/dist/lexicon.d.ts +383 -0
- package/dist/lexicon.d.ts.map +1 -0
- package/dist/lifecycle/affected.d.ts +57 -0
- package/dist/lifecycle/affected.d.ts.map +1 -0
- package/dist/lifecycle/change-set.d.ts +90 -0
- package/dist/lifecycle/change-set.d.ts.map +1 -0
- package/dist/lifecycle/digest.d.ts +21 -0
- package/dist/lifecycle/digest.d.ts.map +1 -0
- package/dist/lifecycle/git.d.ts +72 -0
- package/dist/lifecycle/git.d.ts.map +1 -0
- package/dist/lifecycle/index.d.ts +8 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/live-diff.d.ts +67 -0
- package/dist/lifecycle/live-diff.d.ts.map +1 -0
- package/dist/lifecycle/snapshot.d.ts +20 -0
- package/dist/lifecycle/snapshot.d.ts.map +1 -0
- package/dist/lifecycle/types.d.ts +61 -0
- package/dist/lifecycle/types.d.ts.map +1 -0
- package/dist/lint/config.d.ts +100 -0
- package/dist/lint/config.d.ts.map +1 -0
- package/dist/lint/declarative.d.ts +56 -0
- package/dist/lint/declarative.d.ts.map +1 -0
- package/dist/lint/discover.d.ts +35 -0
- package/dist/lint/discover.d.ts.map +1 -0
- package/dist/lint/engine.d.ts +21 -0
- package/dist/lint/engine.d.ts.map +1 -0
- package/dist/lint/named-checks.d.ts +19 -0
- package/dist/lint/named-checks.d.ts.map +1 -0
- package/dist/lint/parser.d.ts +9 -0
- package/dist/lint/parser.d.ts.map +1 -0
- package/dist/lint/policy.d.ts +22 -0
- package/dist/lint/policy.d.ts.map +1 -0
- package/dist/lint/post-synth.d.ts +69 -0
- package/dist/lint/post-synth.d.ts.map +1 -0
- package/dist/lint/presets/strict.json +19 -0
- package/dist/lint/rule-loader.d.ts +16 -0
- package/dist/lint/rule-loader.d.ts.map +1 -0
- package/dist/lint/rule-registry.d.ts +37 -0
- package/dist/lint/rule-registry.d.ts.map +1 -0
- package/dist/lint/rule.d.ts +82 -0
- package/dist/lint/rule.d.ts.map +1 -0
- package/dist/lint/rules/composite-scope.d.ts +18 -0
- package/dist/lint/rules/composite-scope.d.ts.map +1 -0
- package/dist/lint/rules/cor017-composite-name-match.d.ts +3 -0
- package/dist/lint/rules/cor017-composite-name-match.d.ts.map +1 -0
- package/dist/lint/rules/cor018-composite-prefer-lexicon-type.d.ts +3 -0
- package/dist/lint/rules/cor018-composite-prefer-lexicon-type.d.ts.map +1 -0
- package/dist/lint/rules/declarable-naming-convention.d.ts +3 -0
- package/dist/lint/rules/declarable-naming-convention.d.ts.map +1 -0
- package/dist/lint/rules/evl001-non-literal-expression.d.ts +3 -0
- package/dist/lint/rules/evl001-non-literal-expression.d.ts.map +1 -0
- package/dist/lint/rules/evl002-control-flow-resource.d.ts +3 -0
- package/dist/lint/rules/evl002-control-flow-resource.d.ts.map +1 -0
- package/dist/lint/rules/evl003-dynamic-property-access.d.ts +3 -0
- package/dist/lint/rules/evl003-dynamic-property-access.d.ts.map +1 -0
- package/dist/lint/rules/evl004-spread-non-const.d.ts +3 -0
- package/dist/lint/rules/evl004-spread-non-const.d.ts.map +1 -0
- package/dist/lint/rules/evl005-resource-block-body.d.ts +3 -0
- package/dist/lint/rules/evl005-resource-block-body.d.ts.map +1 -0
- package/dist/lint/rules/evl007-invalid-siblings.d.ts +3 -0
- package/dist/lint/rules/evl007-invalid-siblings.d.ts.map +1 -0
- package/dist/lint/rules/evl009-composite-no-constant.d.ts +3 -0
- package/dist/lint/rules/evl009-composite-no-constant.d.ts.map +1 -0
- package/dist/lint/rules/evl010-composite-no-transform.d.ts +3 -0
- package/dist/lint/rules/evl010-composite-no-transform.d.ts.map +1 -0
- package/dist/lint/rules/export-required.d.ts +3 -0
- package/dist/lint/rules/export-required.d.ts.map +1 -0
- package/dist/lint/rules/file-declarable-limit.d.ts +3 -0
- package/dist/lint/rules/file-declarable-limit.d.ts.map +1 -0
- package/dist/lint/rules/flat-declarations.d.ts +3 -0
- package/dist/lint/rules/flat-declarations.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +31 -0
- package/dist/lint/rules/index.d.ts.map +1 -0
- package/dist/lint/rules/no-cyclic-declarable-ref.d.ts +3 -0
- package/dist/lint/rules/no-cyclic-declarable-ref.d.ts.map +1 -0
- package/dist/lint/rules/no-redundant-type-import.d.ts +10 -0
- package/dist/lint/rules/no-redundant-type-import.d.ts.map +1 -0
- package/dist/lint/rules/no-redundant-value-cast.d.ts +3 -0
- package/dist/lint/rules/no-redundant-value-cast.d.ts.map +1 -0
- package/dist/lint/rules/no-string-ref.d.ts +3 -0
- package/dist/lint/rules/no-string-ref.d.ts.map +1 -0
- package/dist/lint/rules/no-unused-declarable-import.d.ts +3 -0
- package/dist/lint/rules/no-unused-declarable-import.d.ts.map +1 -0
- package/dist/lint/rules/no-unused-declarable.d.ts +3 -0
- package/dist/lint/rules/no-unused-declarable.d.ts.map +1 -0
- package/dist/lint/rules/single-concern-file.d.ts +3 -0
- package/dist/lint/rules/single-concern-file.d.ts.map +1 -0
- package/dist/lint/selectors.d.ts +21 -0
- package/dist/lint/selectors.d.ts.map +1 -0
- package/dist/lsp/lexicon-providers.d.ts +61 -0
- package/dist/lsp/lexicon-providers.d.ts.map +1 -0
- package/dist/lsp/types.d.ts +64 -0
- package/dist/lsp/types.d.ts.map +1 -0
- package/dist/mcp/types.d.ts +21 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/op/activity-registry.d.ts +57 -0
- package/dist/op/activity-registry.d.ts.map +1 -0
- package/dist/op/builders.d.ts +69 -0
- package/dist/op/builders.d.ts.map +1 -0
- package/dist/op/discover.d.ts +16 -0
- package/dist/op/discover.d.ts.map +1 -0
- package/dist/op/index.d.ts +11 -0
- package/dist/op/index.d.ts.map +1 -0
- package/dist/op/local-executor.d.ts +54 -0
- package/dist/op/local-executor.d.ts.map +1 -0
- package/dist/op/local-output.d.ts +16 -0
- package/dist/op/local-output.d.ts.map +1 -0
- package/dist/op/resource.d.ts +7 -0
- package/dist/op/resource.d.ts.map +1 -0
- package/dist/op/types.d.ts +71 -0
- package/dist/op/types.d.ts.map +1 -0
- package/dist/ownership.d.ts +75 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/project-validation.d.ts +28 -0
- package/dist/project-validation.d.ts.map +1 -0
- package/dist/provenance.d.ts +26 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/pseudo-parameter.d.ts +32 -0
- package/dist/pseudo-parameter.d.ts.map +1 -0
- package/dist/resource-attributes.d.ts +17 -0
- package/dist/resource-attributes.d.ts.map +1 -0
- package/dist/runtime-adapter.d.ts +41 -0
- package/dist/runtime-adapter.d.ts.map +1 -0
- package/dist/runtime.d.ts +23 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/serializer-walker.d.ts +21 -0
- package/dist/serializer-walker.d.ts.map +1 -0
- package/dist/serializer.d.ts +64 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/sort.d.ts +8 -0
- package/dist/sort.d.ts.map +1 -0
- package/dist/stack-output.d.ts +52 -0
- package/dist/stack-output.d.ts.map +1 -0
- package/dist/toml-emit.d.ts +22 -0
- package/dist/toml-emit.d.ts.map +1 -0
- package/dist/toml-parse.d.ts +14 -0
- package/dist/toml-parse.d.ts.map +1 -0
- package/dist/toml-utils.d.ts +20 -0
- package/dist/toml-utils.d.ts.map +1 -0
- package/dist/toml.d.ts +9 -0
- package/dist/toml.d.ts.map +1 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/validation.d.ts +42 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/yaml.d.ts +42 -0
- package/dist/yaml.d.ts.map +1 -0
- package/package.json +31 -6
- package/src/audit/bundle-decoupling.test.ts +56 -0
- package/src/audit/catalog.test.ts +16 -1
- package/src/audit/catalog.ts +244 -4
- package/src/audit/core.test.ts +15 -0
- package/src/audit/core.ts +0 -0
- package/src/audit/detect-bundle.test.ts +35 -0
- package/src/audit/discover.test.ts +72 -0
- package/src/audit/discover.ts +329 -0
- package/src/audit/edge-init-safety.test.ts +43 -0
- package/src/audit/fetch.test.ts +86 -55
- package/src/audit/fetch.ts +118 -87
- package/src/audit/remote-discovery.test.ts +80 -0
- package/src/audit/report-html.ts +14 -6
- package/src/audit/report-model.ts +13 -1
- package/src/audit/report.test.ts +3 -1
- package/src/audit/report.ts +13 -5
- package/src/cli/commands/__fixtures__/audit-mixed/.github/workflows/ci.yml +5 -0
- package/src/cli/commands/__fixtures__/audit-mixed/Dockerfile +2 -0
- package/src/cli/commands/__fixtures__/audit-mixed/cfn/template.json +1 -0
- package/src/cli/commands/__fixtures__/audit-mixed/k8s/deploy.yaml +12 -0
- package/src/cli/commands/audit.test.ts +27 -19
- package/src/cli/commands/audit.ts +28 -272
- package/src/codegen/bound-property-types.test.ts +57 -0
- package/src/codegen/bound-property-types.ts +110 -0
- package/src/codegen/generate-post-synth-barrel.test.ts +37 -0
- package/src/codegen/generate-post-synth-barrel.ts +75 -0
- package/src/codegen/post-synth-barrel-guards.test.ts +63 -0
- package/src/codegen/validate.ts +13 -1
- package/src/lint/discover.ts +1 -1
- package/src/meta/peer-deps.test.ts +29 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { describe, test, expect } from "vitest";
|
|
2
|
+
import { generatePostSynthBarrel, type BarrelEntry } from "./generate-post-synth-barrel";
|
|
3
|
+
|
|
4
|
+
describe("generatePostSynthBarrel", () => {
|
|
5
|
+
test("emits a DO NOT EDIT banner, static imports, and an id-sorted array", () => {
|
|
6
|
+
const entries: BarrelEntry[] = [
|
|
7
|
+
{ module: "./gha021", exportName: "gha021", id: "GHA021" },
|
|
8
|
+
{ module: "./apt-no-recommends", exportName: "dkrd010", id: "DKRD010" },
|
|
9
|
+
{ module: "./gha006", exportName: "gha006", id: "GHA006" },
|
|
10
|
+
];
|
|
11
|
+
const out = generatePostSynthBarrel(entries);
|
|
12
|
+
|
|
13
|
+
expect(out).toContain("// Code generated by chant generate. DO NOT EDIT.");
|
|
14
|
+
expect(out).toContain('import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";');
|
|
15
|
+
// Export name may differ from the module name (docker/helm/temporal).
|
|
16
|
+
expect(out).toContain('import { dkrd010 } from "./apt-no-recommends";');
|
|
17
|
+
// Array is ordered by id, not insertion order.
|
|
18
|
+
const arrayBody = out.slice(out.indexOf("postSynthChecks: PostSynthCheck[] = ["));
|
|
19
|
+
expect(arrayBody.indexOf("dkrd010")).toBeLessThan(arrayBody.indexOf("gha006"));
|
|
20
|
+
expect(arrayBody.indexOf("gha006")).toBeLessThan(arrayBody.indexOf("gha021"));
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
test("is deterministic regardless of input order", () => {
|
|
24
|
+
const a: BarrelEntry[] = [
|
|
25
|
+
{ module: "./b", exportName: "b", id: "X2" },
|
|
26
|
+
{ module: "./a", exportName: "a", id: "X1" },
|
|
27
|
+
];
|
|
28
|
+
const b = [...a].reverse();
|
|
29
|
+
expect(generatePostSynthBarrel(a)).toBe(generatePostSynthBarrel(b));
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test("empty input yields an empty array, still valid", () => {
|
|
33
|
+
const out = generatePostSynthBarrel([]);
|
|
34
|
+
expect(out).toContain("export const postSynthChecks: PostSynthCheck[] = [");
|
|
35
|
+
expect(out).toContain("];");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a static, importable barrel of a lexicon's post-synth checks.
|
|
3
|
+
*
|
|
4
|
+
* The runtime loader (`discoverPostSynthChecks`) readdir-globs the directory and
|
|
5
|
+
* `require()`s each file via tsx — fs- and tsx-coupled, so it can't run in a
|
|
6
|
+
* bundle or on an edge runtime (Cloudflare Workers). This generator produces a
|
|
7
|
+
* committed `lint/post-synth/index.ts` with explicit static imports + an exported
|
|
8
|
+
* `postSynthChecks` array, which bundlers can follow with no fs/tsx/require. See #409.
|
|
9
|
+
*
|
|
10
|
+
* Detection reuses the runtime's own `isPostSynthCheck`, so the barrel contains
|
|
11
|
+
* exactly the checks discovery would — including files whose export name differs
|
|
12
|
+
* from the filename (docker/helm/temporal) and excluding helper modules
|
|
13
|
+
* (cf-refs, arm-refs, …) that export no check.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { createRequire } from "module";
|
|
17
|
+
import { listRuleFiles } from "../lint/discover";
|
|
18
|
+
import { isPostSynthCheck } from "../lint/post-synth";
|
|
19
|
+
|
|
20
|
+
export interface BarrelEntry {
|
|
21
|
+
/** Module specifier relative to the barrel, e.g. "./gha021" or "./apt-no-recommends". */
|
|
22
|
+
module: string;
|
|
23
|
+
/** Exported binding holding the check, e.g. "gha021" or "dkrd010". */
|
|
24
|
+
exportName: string;
|
|
25
|
+
/** The check's id (e.g. "GHA021"), used for stable ordering. */
|
|
26
|
+
id: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Scan a post-synth directory and return one entry per exported check.
|
|
31
|
+
* Runs at codegen time on Node (tsx-powered require), never in the shipped path.
|
|
32
|
+
*/
|
|
33
|
+
export function scanPostSynthChecks(dir: string, importMetaUrl: string): BarrelEntry[] {
|
|
34
|
+
const require = createRequire(importMetaUrl);
|
|
35
|
+
const entries: BarrelEntry[] = [];
|
|
36
|
+
for (const file of listRuleFiles(dir)) {
|
|
37
|
+
const base = file.replace(/\.ts$/, "");
|
|
38
|
+
let mod: Record<string, unknown>;
|
|
39
|
+
try {
|
|
40
|
+
mod = require(`${dir}/${base}`) as Record<string, unknown>;
|
|
41
|
+
} catch {
|
|
42
|
+
continue; // a file that fails to load contributes nothing
|
|
43
|
+
}
|
|
44
|
+
for (const [exportName, value] of Object.entries(mod)) {
|
|
45
|
+
if (isPostSynthCheck(value)) {
|
|
46
|
+
entries.push({ module: `./${base}`, exportName, id: value.id });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return entries;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Render the barrel file content from scanned entries (pure — easy to unit test). */
|
|
54
|
+
export function generatePostSynthBarrel(entries: BarrelEntry[]): string {
|
|
55
|
+
const sorted = [...entries].sort((a, b) => a.id.localeCompare(b.id));
|
|
56
|
+
const lines: string[] = [];
|
|
57
|
+
lines.push("// Code generated by chant generate. DO NOT EDIT.");
|
|
58
|
+
lines.push('import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";');
|
|
59
|
+
for (const e of sorted) {
|
|
60
|
+
lines.push(`import { ${e.exportName} } from ${JSON.stringify(e.module)};`);
|
|
61
|
+
}
|
|
62
|
+
lines.push("");
|
|
63
|
+
lines.push("export const postSynthChecks: PostSynthCheck[] = [");
|
|
64
|
+
for (const e of sorted) {
|
|
65
|
+
lines.push(` ${e.exportName},`);
|
|
66
|
+
}
|
|
67
|
+
lines.push("];");
|
|
68
|
+
lines.push("");
|
|
69
|
+
return lines.join("\n");
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Scan a directory and render its barrel in one step. */
|
|
73
|
+
export function renderPostSynthBarrelForDir(dir: string, importMetaUrl: string): string {
|
|
74
|
+
return generatePostSynthBarrel(scanPostSynthChecks(dir, importMetaUrl));
|
|
75
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describe, test, expect } from "vitest";
|
|
2
|
+
import { build } from "esbuild";
|
|
3
|
+
import { readFileSync, readdirSync, existsSync } from "fs";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { join } from "path";
|
|
6
|
+
import { renderPostSynthBarrelForDir } from "./generate-post-synth-barrel";
|
|
7
|
+
|
|
8
|
+
const repoRoot = fileURLToPath(new URL("../../../../", import.meta.url));
|
|
9
|
+
const lexiconsDir = join(repoRoot, "lexicons");
|
|
10
|
+
const lexiconDirs = readdirSync(lexiconsDir).filter((name) =>
|
|
11
|
+
existsSync(join(lexiconsDir, name, "src", "lint", "post-synth", "index.ts")),
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
describe("post-synth barrel freshness", () => {
|
|
15
|
+
test.each(lexiconDirs)("%s barrel is up to date (run npm run generate)", (lexicon) => {
|
|
16
|
+
const dir = join(lexiconsDir, lexicon, "src", "lint", "post-synth");
|
|
17
|
+
const committed = readFileSync(join(dir, "index.ts"), "utf-8");
|
|
18
|
+
const regenerated = renderPostSynthBarrelForDir(dir, import.meta.url);
|
|
19
|
+
expect(committed, `${lexicon} barrel is stale — run \`npm run generate\``).toBe(regenerated);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe("post-synth barrel is exported", () => {
|
|
24
|
+
// A lexicon that ships a barrel must export it so consumers can import
|
|
25
|
+
// `@intentius/chant-lexicon-<lex>/lint/post-synth` without `/index` (#417).
|
|
26
|
+
test.each(lexiconDirs)("%s exports ./lint/post-synth", (lexicon) => {
|
|
27
|
+
const pkg = JSON.parse(readFileSync(join(lexiconsDir, lexicon, "package.json"), "utf-8"));
|
|
28
|
+
const entry = pkg.exports?.["./lint/post-synth"];
|
|
29
|
+
// Lexicons shipping .d.ts use a conditional export — `types` resolves to the
|
|
30
|
+
// emitted declaration for external consumers; `development`/`default` keep
|
|
31
|
+
// runtime resolution on source (in-repo and published alike). Lexicons not
|
|
32
|
+
// yet building dist keep the plain source string.
|
|
33
|
+
if (typeof entry === "string") {
|
|
34
|
+
expect(entry).toBe("./src/lint/post-synth/index.ts");
|
|
35
|
+
} else {
|
|
36
|
+
expect(entry?.development).toBe("./src/lint/post-synth/index.ts");
|
|
37
|
+
expect(entry?.types).toBe("./dist/lint/post-synth/index.d.ts");
|
|
38
|
+
expect(entry?.default).toBe("./src/lint/post-synth/index.ts");
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe("post-synth barrel is edge-bundle clean", () => {
|
|
44
|
+
// The barrel is the entry an edge/bundled deployment imports. It must not drag
|
|
45
|
+
// in the TypeScript compiler or the fs/tsx runtime loader (#409).
|
|
46
|
+
test("github barrel bundles without typescript or the fs loader", async () => {
|
|
47
|
+
const entry = join(lexiconsDir, "github", "src", "lint", "post-synth", "index.ts");
|
|
48
|
+
const result = await build({
|
|
49
|
+
entryPoints: [entry],
|
|
50
|
+
bundle: true,
|
|
51
|
+
format: "esm",
|
|
52
|
+
platform: "node",
|
|
53
|
+
metafile: true,
|
|
54
|
+
write: false,
|
|
55
|
+
outfile: "out.js",
|
|
56
|
+
logLevel: "silent",
|
|
57
|
+
});
|
|
58
|
+
const inputs = Object.keys(result.metafile.inputs);
|
|
59
|
+
expect(inputs.some((p) => p.includes("node_modules/typescript"))).toBe(false);
|
|
60
|
+
// The runtime fs+tsx loader must not be in the graph.
|
|
61
|
+
expect(inputs.some((p) => p.includes("lint/discover"))).toBe(false);
|
|
62
|
+
}, 30_000);
|
|
63
|
+
});
|
package/src/codegen/validate.ts
CHANGED
|
@@ -25,6 +25,14 @@ export interface LexiconValidationConfig {
|
|
|
25
25
|
lexiconJsonFilename: string;
|
|
26
26
|
/** Required backward-compatible export names to check in lexicon JSON */
|
|
27
27
|
requiredNames: string[];
|
|
28
|
+
/**
|
|
29
|
+
* When true, a required name is satisfied if it appears as a substring of any
|
|
30
|
+
* lexicon JSON key (not only as an exact key). Lexicons that bound their
|
|
31
|
+
* generated type expansion (e.g. azure, #438) emit shared types under
|
|
32
|
+
* resource-prefixed/variant names, so the bare curated name is present only
|
|
33
|
+
* as a substring. Defaults to false (exact-key match).
|
|
34
|
+
*/
|
|
35
|
+
requiredNamesMatchSubstring?: boolean;
|
|
28
36
|
/** Base path of the lexicon package */
|
|
29
37
|
basePath: string;
|
|
30
38
|
/** Path to the generated directory (defaults to basePath/src/generated) */
|
|
@@ -70,7 +78,11 @@ export async function validateLexiconArtifacts(config: LexiconValidationConfig):
|
|
|
70
78
|
|
|
71
79
|
// Check 3: Required backward-compatible names present in lexicon JSON
|
|
72
80
|
if (lexiconData && config.requiredNames.length > 0) {
|
|
73
|
-
const
|
|
81
|
+
const keys = Object.keys(lexiconData);
|
|
82
|
+
const present = config.requiredNamesMatchSubstring
|
|
83
|
+
? (name: string) => keys.some((k) => k.includes(name))
|
|
84
|
+
: (name: string) => name in lexiconData!;
|
|
85
|
+
const missing = config.requiredNames.filter((name) => !present(name));
|
|
74
86
|
if (missing.length > 0) {
|
|
75
87
|
checks.push({
|
|
76
88
|
name: "required-names",
|
package/src/lint/discover.ts
CHANGED
|
@@ -84,7 +84,7 @@ export function discoverPostSynthChecks(dir: string, importMetaUrl: string): Pos
|
|
|
84
84
|
/**
|
|
85
85
|
* List rule files in a directory (excluding tests, helpers, index).
|
|
86
86
|
*/
|
|
87
|
-
function listRuleFiles(dir: string): string[] {
|
|
87
|
+
export function listRuleFiles(dir: string): string[] {
|
|
88
88
|
try {
|
|
89
89
|
return readdirSync(dir).filter((f) => {
|
|
90
90
|
if (!f.endsWith(".ts")) return false;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, test, expect } from "vitest";
|
|
2
|
+
import { readFileSync, readdirSync, existsSync } from "fs";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The lexicon packages are published in lockstep with core, so their
|
|
8
|
+
* `@intentius/*` peerDependencies must track the current core version. They were
|
|
9
|
+
* once frozen at `^0.1.0` while shipping at 0.7.0, which made a clean
|
|
10
|
+
* `npm install` fail (#411). This locks the invariant so it can't drift again.
|
|
11
|
+
*/
|
|
12
|
+
const repoRoot = fileURLToPath(new URL("../../../../", import.meta.url));
|
|
13
|
+
const coreVersion = JSON.parse(readFileSync(join(repoRoot, "packages/core/package.json"), "utf-8")).version as string;
|
|
14
|
+
const expected = `^${coreVersion}`;
|
|
15
|
+
|
|
16
|
+
const lexiconsDir = join(repoRoot, "lexicons");
|
|
17
|
+
const lexicons = readdirSync(lexiconsDir).filter((name) => existsSync(join(lexiconsDir, name, "package.json")));
|
|
18
|
+
|
|
19
|
+
describe("lexicon peerDependencies track the core version", () => {
|
|
20
|
+
test.each(lexicons)("%s pins @intentius/* peers to the current version", (lexicon) => {
|
|
21
|
+
const pkg = JSON.parse(readFileSync(join(lexiconsDir, lexicon, "package.json"), "utf-8"));
|
|
22
|
+
const peers: Record<string, string> = pkg.peerDependencies ?? {};
|
|
23
|
+
for (const [dep, range] of Object.entries(peers)) {
|
|
24
|
+
if (dep.startsWith("@intentius/")) {
|
|
25
|
+
expect(range, `${lexicon}: peer ${dep} should be ${expected}`).toBe(expected);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|