@zxyycom/vibe-check 0.0.1 → 0.0.2
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 +47 -74
- package/dist/esm/cache/cache-json-by-key.mjs +189 -0
- package/dist/esm/cache/cache-json-by-key.mjs.map +1 -0
- package/dist/esm/check/check.mjs.map +1 -1
- package/dist/esm/check/finding-presentation.mjs +40 -0
- package/dist/esm/check/finding-presentation.mjs.map +1 -0
- package/dist/esm/check/inherited-collection.mjs +1 -1
- package/dist/esm/check/inherited-collection.mjs.map +1 -1
- package/dist/esm/check-settlement/fact-validation.mjs +17 -23
- package/dist/esm/check-settlement/fact-validation.mjs.map +1 -1
- package/dist/esm/check-settlement/outcome-normalization.mjs +9 -19
- package/dist/esm/check-settlement/outcome-normalization.mjs.map +1 -1
- package/dist/esm/check-settlement/reason-shape.mjs +12 -0
- package/dist/esm/check-settlement/reason-shape.mjs.map +1 -0
- package/dist/esm/check-settlement/record-store.mjs +14 -17
- package/dist/esm/check-settlement/record-store.mjs.map +1 -1
- package/dist/esm/check-settlement/session.mjs +8 -2
- package/dist/esm/check-settlement/session.mjs.map +1 -1
- package/dist/esm/data-boundary/closed-values.mjs +16 -0
- package/dist/esm/data-boundary/closed-values.mjs.map +1 -1
- package/dist/esm/data-boundary/value-shapes.mjs +9 -0
- package/dist/esm/data-boundary/value-shapes.mjs.map +1 -1
- package/dist/esm/index.mjs +9 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs +56 -0
- package/dist/esm/learned-critical-path/duration-model/bounded-history.mjs.map +1 -0
- package/dist/esm/learned-critical-path/duration-model/prediction.mjs +122 -0
- package/dist/esm/learned-critical-path/duration-model/prediction.mjs.map +1 -0
- package/dist/esm/learned-critical-path/duration-model/preparation.mjs +41 -0
- package/dist/esm/learned-critical-path/duration-model/preparation.mjs.map +1 -0
- package/dist/esm/learned-critical-path/duration-model/recording.mjs +109 -0
- package/dist/esm/learned-critical-path/duration-model/recording.mjs.map +1 -0
- package/dist/esm/learned-critical-path/duration-model/storage.mjs +187 -0
- package/dist/esm/learned-critical-path/duration-model/storage.mjs.map +1 -0
- package/dist/esm/learned-critical-path/selection-layers.mjs +28 -0
- package/dist/esm/learned-critical-path/selection-layers.mjs.map +1 -0
- package/dist/esm/learned-critical-path/static-decision.mjs +55 -0
- package/dist/esm/learned-critical-path/static-decision.mjs.map +1 -0
- package/dist/esm/learned-critical-path/strategy.mjs +179 -0
- package/dist/esm/learned-critical-path/strategy.mjs.map +1 -0
- package/dist/esm/machine-output/v4/atomic-publication.mjs +1 -15
- package/dist/esm/machine-output/v4/atomic-publication.mjs.map +1 -1
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs +40 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-authoring.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs +48 -0
- package/dist/esm/package-checks/code-quality-findings/finding-waiver-evidence.mjs.map +1 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs +20 -0
- package/dist/esm/package-checks/code-quality-findings/policy.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs +15 -7
- package/dist/esm/package-checks/duplicate-detection/area-policy.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/cache/identity.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/execution.mjs +44 -18
- package/dist/esm/package-checks/duplicate-detection/execution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs +59 -0
- package/dist/esm/package-checks/duplicate-detection/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs +55 -0
- package/dist/esm/package-checks/duplicate-detection/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/availability.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/command-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs +15 -5
- package/dist/esm/package-checks/duplicate-detection/jscpd/json-report.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs +5 -4
- package/dist/esm/package-checks/duplicate-detection/jscpd/scanner.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs +22 -47
- package/dist/esm/package-checks/duplicate-detection/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs +20 -25
- package/dist/esm/package-checks/duplicate-detection/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/options.mjs.map +1 -1
- package/dist/esm/package-checks/duplicate-detection/records.mjs +27 -6
- package/dist/esm/package-checks/duplicate-detection/records.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/execution.mjs +10 -17
- package/dist/esm/package-checks/file-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs +22 -0
- package/dist/esm/package-checks/file-metrics/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs +11 -43
- package/dist/esm/package-checks/file-metrics/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/options-validation.mjs +15 -25
- package/dist/esm/package-checks/file-metrics/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/records.mjs +2 -9
- package/dist/esm/package-checks/file-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs +1 -1
- package/dist/esm/package-checks/file-metrics/scc/availability.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs +4 -4
- package/dist/esm/package-checks/file-metrics/scc/parser.mjs.map +1 -1
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs +2 -2
- package/dist/esm/package-checks/file-metrics/scc/scanner.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analysis.mjs +56 -15
- package/dist/esm/package-checks/function-metrics/analysis.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs +550 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-context.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs +332 -0
- package/dist/esm/package-checks/function-metrics/analyzer/analysis-model.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs +7 -0
- package/dist/esm/package-checks/function-metrics/analyzer/contracts.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs +24 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs +113 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/lizardnd.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs +180 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/protocol.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs +121 -0
- package/dist/esm/package-checks/function-metrics/analyzer/extensions/registry.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs +217 -0
- package/dist/esm/package-checks/function-metrics/analyzer/pipeline.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs +96 -0
- package/dist/esm/package-checks/function-metrics/analyzer/port-facade.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs +76 -0
- package/dist/esm/package-checks/function-metrics/analyzer/reader-registry.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs +88 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/csharp.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs +466 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/erlang.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs +289 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/fortran.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs +38 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/gdscript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs +44 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/go.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs +113 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java-body-states.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs +247 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/java.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs +16 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/javascript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs +103 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/kotlin.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs +55 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/lua.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs +100 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/objc.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs +367 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/perl.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs +260 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php-states.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs +53 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/php.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs +306 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/plsql.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs +402 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/python.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs +214 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/r.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ruby.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs +32 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/rust.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs +47 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/scala.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs +22 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/solidity.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs +142 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/st.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs +94 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/swift.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs +149 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/tsx.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs +79 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/ttcn.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs +606 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/typescript.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs +31 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/vue.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs +23 -0
- package/dist/esm/package-checks/function-metrics/analyzer/readers/zig.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs +492 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/clike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs +542 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/code-reader.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs +141 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/golike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs +62 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/js-style-regex.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs +154 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/rubylike.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs +36 -0
- package/dist/esm/package-checks/function-metrics/analyzer/shared/script-language.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs +56 -0
- package/dist/esm/package-checks/function-metrics/analyzer-adapter.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs +2 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-contract.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs +108 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker-port.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs +24 -0
- package/dist/esm/package-checks/function-metrics/analyzer-worker.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/constructor.mjs +2 -2
- package/dist/esm/package-checks/function-metrics/constructor.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/execution.mjs +51 -33
- package/dist/esm/package-checks/function-metrics/execution.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs +75 -0
- package/dist/esm/package-checks/function-metrics/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs +28 -0
- package/dist/esm/package-checks/function-metrics/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/function-metrics/measurement-model.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/measurement.mjs +161 -26
- package/dist/esm/package-checks/function-metrics/measurement.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs +30 -63
- package/dist/esm/package-checks/function-metrics/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options-validation.mjs +27 -32
- package/dist/esm/package-checks/function-metrics/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/options.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/records.mjs +31 -1
- package/dist/esm/package-checks/function-metrics/records.mjs.map +1 -1
- package/dist/esm/package-checks/function-metrics/target-files.mjs +6 -67
- package/dist/esm/package-checks/function-metrics/target-files.mjs.map +1 -1
- package/dist/esm/package-checks/{file-metrics/scc → host-environment}/csv.mjs +1 -0
- package/dist/esm/package-checks/host-environment/csv.mjs.map +1 -0
- package/dist/esm/package-checks/host-environment/git.mjs +1 -1
- package/dist/esm/package-checks/host-environment/git.mjs.map +1 -1
- package/dist/esm/package-checks/host-environment/process.mjs +5 -0
- package/dist/esm/package-checks/host-environment/process.mjs.map +1 -0
- package/dist/esm/package-checks/json-schema-validation/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs +15 -17
- package/dist/esm/package-checks/json-schema-validation/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/json-schema-validation/options.mjs.map +1 -1
- package/dist/esm/package-checks/json-validation/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/json-validation/options-validation.mjs +4 -10
- package/dist/esm/package-checks/json-validation/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/maintenance-reminders/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs +9 -3
- package/dist/esm/package-checks/markdown-link-validation/default-check.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs +27 -24
- package/dist/esm/package-checks/markdown-link-validation/execution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs +82 -53
- package/dist/esm/package-checks/markdown-link-validation/filesystem-probes.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/final-data.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs +36 -0
- package/dist/esm/package-checks/markdown-link-validation/finding-messages.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/local-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs +2 -2
- package/dist/esm/package-checks/markdown-link-validation/local-resolver.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs +26 -4
- package/dist/esm/package-checks/markdown-link-validation/options-resolution.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs +24 -11
- package/dist/esm/package-checks/markdown-link-validation/options-validation.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/options.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs +185 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache-payload.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs +131 -0
- package/dist/esm/package-checks/markdown-link-validation/parse-facts-cache.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs +58 -57
- package/dist/esm/package-checks/markdown-link-validation/resolver-engine.mjs.map +1 -1
- package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs +54 -0
- package/dist/esm/package-checks/markdown-link-validation/source-reader.mjs.map +1 -0
- package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs +16 -0
- package/dist/esm/package-checks/markdown-link-validation/unavailable-reasons.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/collection.mjs +1 -1
- package/dist/esm/package-checks/project-files/collection.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/configuration.mjs +2 -10
- package/dist/esm/package-checks/project-files/configuration.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs +1 -1
- package/dist/esm/package-checks/project-files/gitlink-revision.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs +1 -1
- package/dist/esm/package-checks/project-files/gitlink-worktree.mjs.map +1 -1
- package/dist/esm/package-checks/project-files/public-collection.mjs +56 -0
- package/dist/esm/package-checks/project-files/public-collection.mjs.map +1 -0
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs +1 -1
- package/dist/esm/package-checks/project-files/revision-worktree-files.mjs.map +1 -1
- package/dist/esm/package-checks/secret-detection/classification.mjs +15 -0
- package/dist/esm/package-checks/secret-detection/classification.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/default-check.mjs +39 -0
- package/dist/esm/package-checks/secret-detection/default-check.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/execution.mjs +172 -0
- package/dist/esm/package-checks/secret-detection/execution.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/final-data.mjs +33 -0
- package/dist/esm/package-checks/secret-detection/final-data.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs +30 -0
- package/dist/esm/package-checks/secret-detection/finding-waiver-identity.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs +153 -0
- package/dist/esm/package-checks/secret-detection/input-preparation.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options-resolution.mjs +40 -0
- package/dist/esm/package-checks/secret-detection/options-resolution.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options-validation.mjs +22 -0
- package/dist/esm/package-checks/secret-detection/options-validation.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/options.mjs +2 -0
- package/dist/esm/package-checks/secret-detection/options.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/records.mjs +31 -0
- package/dist/esm/package-checks/secret-detection/records.mjs.map +1 -0
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs +85 -0
- package/dist/esm/package-checks/secret-detection/secretlint/adapter.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/authoring.mjs +12 -172
- package/dist/esm/project-definition/check-tree/authoring.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs +171 -0
- package/dist/esm/project-definition/check-tree/check-fields-authoring.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/collection-authoring.mjs +16 -0
- package/dist/esm/project-definition/check-tree/collection-authoring.mjs.map +1 -0
- package/dist/esm/project-definition/check-tree/materialization.mjs +9 -1
- package/dist/esm/project-definition/check-tree/materialization.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/resolution.mjs +45 -13
- package/dist/esm/project-definition/check-tree/resolution.mjs.map +1 -1
- package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs +73 -0
- package/dist/esm/project-definition/check-tree/scheduling-authoring.mjs.map +1 -0
- package/dist/esm/project-definition/declarative-snapshot.mjs +73 -0
- package/dist/esm/project-definition/declarative-snapshot.mjs.map +1 -0
- package/dist/esm/project-definition/output-defaults.mjs +18 -1
- package/dist/esm/project-definition/output-defaults.mjs.map +1 -1
- package/dist/esm/project-definition/output-validation.mjs +15 -15
- package/dist/esm/project-definition/output-validation.mjs.map +1 -1
- package/dist/esm/project-definition/progress-rendering-output.mjs +52 -0
- package/dist/esm/project-definition/progress-rendering-output.mjs.map +1 -0
- package/dist/esm/project-definition/project-definition-validation.mjs +100 -16
- package/dist/esm/project-definition/project-definition-validation.mjs.map +1 -1
- package/dist/esm/project-definition/project-definition.mjs +52 -47
- package/dist/esm/project-definition/project-definition.mjs.map +1 -1
- package/dist/esm/project-definition/resource-unit-mapping.mjs +21 -0
- package/dist/esm/project-definition/resource-unit-mapping.mjs.map +1 -0
- package/dist/esm/project-definition/scheduler-policy.mjs +2 -0
- package/dist/esm/project-definition/scheduler-policy.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs +54 -0
- package/dist/esm/project-run/admission-strategy-provider/custom-strategy-preparation.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs +2 -0
- package/dist/esm/project-run/admission-strategy-provider/prepared-admission-strategy.mjs.map +1 -0
- package/dist/esm/project-run/admission-strategy-provider/provider.mjs +23 -0
- package/dist/esm/project-run/admission-strategy-provider/provider.mjs.map +1 -0
- package/dist/esm/project-run/aggregation.mjs +7 -5
- package/dist/esm/project-run/aggregation.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/callback.mjs +35 -8
- package/dist/esm/project-run/check-execution/callback.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/console-capture.mjs +220 -0
- package/dist/esm/project-run/check-execution/console-capture.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/dependencies.mjs +21 -3
- package/dist/esm/project-run/check-execution/dependencies.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-finalization.mjs +54 -13
- package/dist/esm/project-run/check-execution/execution-finalization.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/execution-settlement.mjs +13 -9
- package/dist/esm/project-run/check-execution/execution-settlement.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/flag-controls.mjs +87 -0
- package/dist/esm/project-run/check-execution/flag-controls.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/lifecycle.mjs +2 -0
- package/dist/esm/project-run/check-execution/lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/check-execution/messages.mjs +5 -0
- package/dist/esm/project-run/check-execution/messages.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/plan.mjs +9 -5
- package/dist/esm/project-run/check-execution/plan.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/preflight.mjs +18 -32
- package/dist/esm/project-run/check-execution/preflight.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/resolved-checks.mjs +100 -58
- package/dist/esm/project-run/check-execution/resolved-checks.mjs.map +1 -1
- package/dist/esm/project-run/check-execution/resolved-execution-result.mjs +2 -0
- package/dist/esm/project-run/check-execution/resolved-execution-result.mjs.map +1 -0
- package/dist/esm/project-run/{completion.mjs → completion/completion.mjs} +16 -38
- package/dist/esm/project-run/completion/completion.mjs.map +1 -0
- package/dist/esm/project-run/{machine-publication.mjs → completion/machine-publication.mjs} +1 -1
- package/dist/esm/project-run/completion/machine-publication.mjs.map +1 -0
- package/dist/esm/project-run/completion/result-resolver.mjs +36 -0
- package/dist/esm/project-run/completion/result-resolver.mjs.map +1 -0
- package/dist/esm/project-run/controls/contract.mjs.map +1 -1
- package/dist/esm/project-run/controls/outputs-override-validation.mjs +67 -47
- package/dist/esm/project-run/controls/outputs-override-validation.mjs.map +1 -1
- package/dist/esm/project-run/controls/validation-result.mjs.map +1 -1
- package/dist/esm/project-run/controls/validation.mjs +75 -11
- package/dist/esm/project-run/controls/validation.mjs.map +1 -1
- package/dist/esm/project-run/diagnostic-logging/logger.mjs +100 -161
- package/dist/esm/project-run/diagnostic-logging/logger.mjs.map +1 -1
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs +159 -0
- package/dist/esm/project-run/diagnostic-logging/observation-rendering.mjs.map +1 -0
- package/dist/esm/project-run/invocation/candidate.mjs +61 -0
- package/dist/esm/project-run/invocation/candidate.mjs.map +1 -0
- package/dist/esm/project-run/invocation/creation.mjs +79 -0
- package/dist/esm/project-run/invocation/creation.mjs.map +1 -0
- package/dist/esm/project-run/invocation/paths.mjs +77 -0
- package/dist/esm/project-run/invocation/paths.mjs.map +1 -0
- package/dist/esm/project-run/invocation/progress.mjs +30 -0
- package/dist/esm/project-run/invocation/progress.mjs.map +1 -0
- package/dist/esm/project-run/{invocation.mjs → invocation/run.mjs} +78 -92
- package/dist/esm/project-run/invocation/run.mjs.map +1 -0
- package/dist/esm/project-run/invocation/scheduler.mjs +57 -0
- package/dist/esm/project-run/invocation/scheduler.mjs.map +1 -0
- package/dist/esm/project-run/{output-configuration.mjs → outputs/configuration.mjs} +3 -2
- package/dist/esm/project-run/outputs/configuration.mjs.map +1 -0
- package/dist/esm/project-run/outputs/status.mjs +105 -0
- package/dist/esm/project-run/outputs/status.mjs.map +1 -0
- package/dist/esm/project-run/progress-rendering/presentation.mjs +112 -18
- package/dist/esm/project-run/progress-rendering/presentation.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs +108 -19
- package/dist/esm/project-run/progress-rendering/renderer-formatting.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs +30 -4
- package/dist/esm/project-run/progress-rendering/renderer-lifecycle.mjs.map +1 -1
- package/dist/esm/project-run/progress-rendering/renderer.mjs +5 -2
- package/dist/esm/project-run/progress-rendering/renderer.mjs.map +1 -1
- package/dist/esm/project-run/project-context.mjs +1 -1
- package/dist/esm/project-run/project-context.mjs.map +1 -1
- package/dist/esm/project-run/result.mjs +2 -0
- package/dist/esm/project-run/result.mjs.map +1 -1
- package/dist/esm/project-run/run.mjs +1 -1
- package/dist/esm/project-run/run.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs +166 -0
- package/dist/esm/project-run/task-scheduler/admission-core/compiled-graph.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/core.mjs +163 -0
- package/dist/esm/project-run/task-scheduler/admission-core/core.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/input.mjs +119 -0
- package/dist/esm/project-run/task-scheduler/admission-core/input.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs +124 -0
- package/dist/esm/project-run/task-scheduler/admission-core/projection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs +99 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-index.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs +198 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-query.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs +151 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-seed.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs +121 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection-transition.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs +65 -0
- package/dist/esm/project-run/task-scheduler/admission-core/selection.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs +25 -0
- package/dist/esm/project-run/task-scheduler/admission-scope-layers.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs +55 -0
- package/dist/esm/project-run/task-scheduler/admission-selection-policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs +46 -0
- package/dist/esm/project-run/task-scheduler/critical-path-ranking.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs +110 -0
- package/dist/esm/project-run/task-scheduler/custom-admission-policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/execution-state.mjs +34 -5
- package/dist/esm/project-run/task-scheduler/execution-state.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs +46 -0
- package/dist/esm/project-run/task-scheduler/forced-block-effect-replay.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs +54 -26
- package/dist/esm/project-run/task-scheduler/graph-validation.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/graph.mjs +79 -3
- package/dist/esm/project-run/task-scheduler/graph.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs +207 -0
- package/dist/esm/project-run/task-scheduler/measurement/diagnostics.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs +116 -0
- package/dist/esm/project-run/task-scheduler/measurement/integrals.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/policy.mjs +67 -0
- package/dist/esm/project-run/task-scheduler/measurement/policy.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/summary.mjs +123 -0
- package/dist/esm/project-run/task-scheduler/measurement/summary.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs +158 -0
- package/dist/esm/project-run/task-scheduler/measurement/timing.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs +90 -62
- package/dist/esm/project-run/task-scheduler/scheduler-admission-decision.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs +20 -6
- package/dist/esm/project-run/task-scheduler/scheduler-blocker-summary.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs +5 -105
- package/dist/esm/project-run/task-scheduler/scheduler-decision-inspection.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs +0 -9
- package/dist/esm/project-run/task-scheduler/scheduler-decision-model.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs +48 -28
- package/dist/esm/project-run/task-scheduler/scheduler-decision.mjs.map +1 -1
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs +89 -0
- package/dist/esm/project-run/task-scheduler/scheduler-observation.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs +94 -0
- package/dist/esm/project-run/task-scheduler/scheduler-task-lifecycle.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs +66 -0
- package/dist/esm/project-run/task-scheduler/scheduler-terminal-measurement.mjs.map +1 -0
- package/dist/esm/project-run/task-scheduler/scheduler.mjs +171 -114
- package/dist/esm/project-run/task-scheduler/scheduler.mjs.map +1 -1
- package/docs/api-mechanics.md +64 -137
- package/docs/changelog.md +157 -0
- package/docs/checks/duplicate-detection.md +111 -59
- package/docs/checks/file-metrics.md +46 -43
- package/docs/checks/function-metrics.md +100 -163
- package/docs/checks/json-schema-validation.md +43 -36
- package/docs/checks/json-validation.md +38 -25
- package/docs/checks/maintenance-reminders.md +41 -29
- package/docs/checks/markdown-link-validation.md +82 -54
- package/docs/checks/secret-detection.md +129 -0
- package/docs/examples/artifacts/mixed-outcomes/definition.ts +5 -5
- package/docs/guides/cache-results.md +63 -0
- package/docs/guides/callbacks.md +34 -0
- package/docs/guides/check-dependencies.md +121 -0
- package/docs/guides/collecting-project-files.md +59 -0
- package/docs/guides/extending-check-lifecycle.md +112 -0
- package/docs/guides/finding-waivers.md +45 -0
- package/docs/guides/learned-scheduling.md +83 -0
- package/docs/guides/presenting-findings.md +54 -0
- package/docs/guides/run-outputs.md +145 -0
- package/docs/guides/scheduling.md +208 -0
- package/docs/guides/simulating-admission.md +55 -0
- package/docs/output.md +11 -20
- package/licenses/Lizard-1.24.0-MIT.txt +30 -0
- package/{third-party-licenses/momoa-3.3.12-LICENSE → licenses/Lizard-1.24.0-lizard.py-Apache-2.0.txt} +1 -0
- package/licenses/Pygments-2.18.0-BSD-2-Clause.txt +25 -0
- package/licenses/analyzer-translations-NOTICE.md +24 -0
- package/licenses/lizard-1.24.0-provenance.json +957 -0
- package/package.json +18 -6
- package/src/cache/cache-json-by-key.ts +304 -0
- package/src/check/check.ts +67 -17
- package/src/check/finding-presentation.ts +67 -0
- package/src/check/inherited-collection.ts +1 -1
- package/src/check-settlement/fact-validation.ts +29 -39
- package/src/check-settlement/outcome-normalization.ts +17 -35
- package/src/check-settlement/reason-shape.ts +20 -0
- package/src/check-settlement/record-store.ts +18 -15
- package/src/check-settlement/session.ts +12 -3
- package/src/data-boundary/closed-values.ts +29 -0
- package/src/data-boundary/value-shapes.ts +12 -0
- package/src/index.ts +70 -2
- package/src/learned-critical-path/duration-model/bounded-history.ts +108 -0
- package/src/learned-critical-path/duration-model/prediction.ts +181 -0
- package/src/learned-critical-path/duration-model/preparation.ts +77 -0
- package/src/learned-critical-path/duration-model/recording.ts +208 -0
- package/src/learned-critical-path/duration-model/storage.ts +252 -0
- package/src/learned-critical-path/selection-layers.ts +72 -0
- package/src/learned-critical-path/static-decision.ts +105 -0
- package/src/learned-critical-path/strategy.ts +299 -0
- package/src/machine-output/v4/atomic-publication.ts +1 -16
- package/src/package-checks/code-quality-findings/finding-waiver-authoring.ts +46 -0
- package/src/package-checks/code-quality-findings/finding-waiver-evidence.ts +95 -0
- package/src/package-checks/code-quality-findings/policy.ts +23 -0
- package/src/package-checks/duplicate-detection/area-policy.ts +24 -13
- package/src/package-checks/duplicate-detection/cache/identity.ts +1 -1
- package/src/package-checks/duplicate-detection/default-check.ts +1 -1
- package/src/package-checks/duplicate-detection/execution.ts +82 -22
- package/src/package-checks/duplicate-detection/finding-messages.ts +75 -0
- package/src/package-checks/duplicate-detection/finding-waiver-identity.ts +68 -0
- package/src/package-checks/duplicate-detection/jscpd/availability.ts +1 -1
- package/src/package-checks/duplicate-detection/jscpd/command-resolution.ts +1 -1
- package/src/package-checks/duplicate-detection/jscpd/json-report.ts +24 -5
- package/src/package-checks/duplicate-detection/jscpd/scanner.ts +6 -7
- package/src/package-checks/duplicate-detection/options-resolution.ts +32 -57
- package/src/package-checks/duplicate-detection/options-validation.ts +23 -31
- package/src/package-checks/duplicate-detection/options.ts +21 -1
- package/src/package-checks/duplicate-detection/records.ts +65 -12
- package/src/package-checks/file-metrics/execution.ts +16 -17
- package/src/package-checks/file-metrics/finding-messages.ts +29 -0
- package/src/package-checks/file-metrics/options-resolution.ts +19 -52
- package/src/package-checks/file-metrics/options-validation.ts +23 -32
- package/src/package-checks/file-metrics/records.ts +11 -23
- package/src/package-checks/file-metrics/scc/availability.ts +1 -1
- package/src/package-checks/file-metrics/scc/parser.ts +4 -4
- package/src/package-checks/file-metrics/scc/scanner.ts +2 -2
- package/src/package-checks/function-metrics/analysis.ts +76 -21
- package/src/package-checks/function-metrics/analyzer/analysis-context.ts +749 -0
- package/src/package-checks/function-metrics/analyzer/analysis-model.ts +421 -0
- package/src/package-checks/function-metrics/analyzer/contracts.ts +54 -0
- package/src/package-checks/function-metrics/analyzer/extension-output.ts +261 -0
- package/src/package-checks/function-metrics/analyzer/extensions/extension-base.ts +33 -0
- package/src/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.ts +27 -0
- package/src/package-checks/function-metrics/analyzer/extensions/lizardnd.ts +144 -0
- package/src/package-checks/function-metrics/analyzer/extensions/protocol.ts +345 -0
- package/src/package-checks/function-metrics/analyzer/extensions/registry.ts +157 -0
- package/src/package-checks/function-metrics/analyzer/pipeline.ts +311 -0
- package/src/package-checks/function-metrics/analyzer/port-facade.ts +142 -0
- package/src/package-checks/function-metrics/analyzer/reader-registry.ts +84 -0
- package/src/package-checks/function-metrics/analyzer/readers/csharp.ts +110 -0
- package/src/package-checks/function-metrics/analyzer/readers/erlang.ts +501 -0
- package/src/package-checks/function-metrics/analyzer/readers/fortran.ts +294 -0
- package/src/package-checks/function-metrics/analyzer/readers/gdscript.ts +42 -0
- package/src/package-checks/function-metrics/analyzer/readers/go.ts +53 -0
- package/src/package-checks/function-metrics/analyzer/readers/java-body-states.ts +141 -0
- package/src/package-checks/function-metrics/analyzer/readers/java.ts +270 -0
- package/src/package-checks/function-metrics/analyzer/readers/javascript.ts +19 -0
- package/src/package-checks/function-metrics/analyzer/readers/kotlin.ts +120 -0
- package/src/package-checks/function-metrics/analyzer/readers/lua.ts +68 -0
- package/src/package-checks/function-metrics/analyzer/readers/objc.ts +107 -0
- package/src/package-checks/function-metrics/analyzer/readers/perl.ts +340 -0
- package/src/package-checks/function-metrics/analyzer/readers/php-states.ts +246 -0
- package/src/package-checks/function-metrics/analyzer/readers/php.ts +63 -0
- package/src/package-checks/function-metrics/analyzer/readers/plsql.ts +306 -0
- package/src/package-checks/function-metrics/analyzer/readers/python.ts +431 -0
- package/src/package-checks/function-metrics/analyzer/readers/r.ts +234 -0
- package/src/package-checks/function-metrics/analyzer/readers/ruby.ts +88 -0
- package/src/package-checks/function-metrics/analyzer/readers/rust.ts +47 -0
- package/src/package-checks/function-metrics/analyzer/readers/scala.ts +60 -0
- package/src/package-checks/function-metrics/analyzer/readers/solidity.ts +32 -0
- package/src/package-checks/function-metrics/analyzer/readers/st.ts +161 -0
- package/src/package-checks/function-metrics/analyzer/readers/swift.ts +116 -0
- package/src/package-checks/function-metrics/analyzer/readers/tsx.ts +165 -0
- package/src/package-checks/function-metrics/analyzer/readers/ttcn.ts +90 -0
- package/src/package-checks/function-metrics/analyzer/readers/typescript.ts +593 -0
- package/src/package-checks/function-metrics/analyzer/readers/vue.ts +43 -0
- package/src/package-checks/function-metrics/analyzer/readers/zig.ts +35 -0
- package/src/package-checks/function-metrics/analyzer/shared/clike.ts +541 -0
- package/src/package-checks/function-metrics/analyzer/shared/code-reader.ts +682 -0
- package/src/package-checks/function-metrics/analyzer/shared/golike.ts +143 -0
- package/src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts +75 -0
- package/src/package-checks/function-metrics/analyzer/shared/rubylike.ts +161 -0
- package/src/package-checks/function-metrics/analyzer/shared/script-language.ts +50 -0
- package/src/package-checks/function-metrics/analyzer-adapter.ts +84 -0
- package/src/package-checks/function-metrics/analyzer-worker-contract.ts +10 -0
- package/src/package-checks/function-metrics/analyzer-worker-port.ts +150 -0
- package/src/package-checks/function-metrics/analyzer-worker.ts +31 -0
- package/src/package-checks/function-metrics/constructor.ts +2 -2
- package/src/package-checks/function-metrics/execution.ts +94 -39
- package/src/package-checks/function-metrics/finding-messages.ts +95 -0
- package/src/package-checks/function-metrics/finding-waiver-identity.ts +36 -0
- package/src/package-checks/function-metrics/measurement-model.ts +15 -1
- package/src/package-checks/function-metrics/measurement.ts +221 -36
- package/src/package-checks/function-metrics/options-resolution.ts +39 -75
- package/src/package-checks/function-metrics/options-validation.ts +30 -39
- package/src/package-checks/function-metrics/options.ts +27 -11
- package/src/package-checks/function-metrics/records.ts +73 -7
- package/src/package-checks/function-metrics/target-files.ts +10 -70
- package/src/package-checks/{file-metrics/scc → host-environment}/csv.ts +1 -2
- package/src/package-checks/host-environment/git.ts +2 -2
- package/src/package-checks/host-environment/process.ts +10 -0
- package/src/package-checks/json-schema-validation/final-data.ts +8 -0
- package/src/package-checks/json-schema-validation/options-validation.ts +16 -23
- package/src/package-checks/json-schema-validation/options.ts +23 -0
- package/src/package-checks/json-validation/final-data.ts +5 -0
- package/src/package-checks/json-validation/options-validation.ts +4 -18
- package/src/package-checks/maintenance-reminders/final-data.ts +18 -0
- package/src/package-checks/markdown-link-validation/default-check.ts +9 -3
- package/src/package-checks/markdown-link-validation/execution.ts +51 -57
- package/src/package-checks/markdown-link-validation/filesystem-probes.ts +108 -51
- package/src/package-checks/markdown-link-validation/final-data.ts +5 -0
- package/src/package-checks/markdown-link-validation/finding-messages.ts +48 -0
- package/src/package-checks/markdown-link-validation/local-resolution.ts +17 -9
- package/src/package-checks/markdown-link-validation/local-resolver.ts +5 -2
- package/src/package-checks/markdown-link-validation/options-resolution.ts +31 -3
- package/src/package-checks/markdown-link-validation/options-validation.ts +27 -19
- package/src/package-checks/markdown-link-validation/options.ts +15 -0
- package/src/package-checks/markdown-link-validation/parse-facts-cache-payload.ts +246 -0
- package/src/package-checks/markdown-link-validation/parse-facts-cache.ts +154 -0
- package/src/package-checks/markdown-link-validation/resolver-engine.ts +75 -65
- package/src/package-checks/markdown-link-validation/source-reader.ts +86 -0
- package/src/package-checks/markdown-link-validation/unavailable-reasons.ts +42 -0
- package/src/package-checks/project-files/collection.ts +1 -1
- package/src/package-checks/project-files/configuration.ts +3 -14
- package/src/package-checks/project-files/gitlink-revision.ts +1 -1
- package/src/package-checks/project-files/gitlink-worktree.ts +1 -1
- package/src/package-checks/project-files/public-collection.ts +92 -0
- package/src/package-checks/project-files/revision-worktree-files.ts +1 -1
- package/src/package-checks/secret-detection/classification.ts +30 -0
- package/src/package-checks/secret-detection/default-check.ts +50 -0
- package/src/package-checks/secret-detection/execution.ts +247 -0
- package/src/package-checks/secret-detection/final-data.ts +57 -0
- package/src/package-checks/secret-detection/finding-waiver-identity.ts +37 -0
- package/src/package-checks/secret-detection/input-preparation.ts +233 -0
- package/src/package-checks/secret-detection/options-resolution.ts +65 -0
- package/src/package-checks/secret-detection/options-validation.ts +27 -0
- package/src/package-checks/secret-detection/options.ts +36 -0
- package/src/package-checks/secret-detection/records.ts +77 -0
- package/src/package-checks/secret-detection/secretlint/adapter.ts +123 -0
- package/src/project-definition/check-tree/authoring.ts +29 -230
- package/src/project-definition/check-tree/check-fields-authoring.ts +227 -0
- package/src/project-definition/check-tree/collection-authoring.ts +13 -0
- package/src/project-definition/check-tree/materialization.ts +9 -1
- package/src/project-definition/check-tree/resolution.ts +80 -22
- package/src/project-definition/check-tree/scheduling-authoring.ts +114 -0
- package/src/project-definition/declarative-snapshot.ts +87 -0
- package/src/project-definition/output-defaults.ts +32 -1
- package/src/project-definition/output-validation.ts +15 -15
- package/src/project-definition/progress-rendering-output.ts +121 -0
- package/src/project-definition/project-definition-validation.ts +117 -18
- package/src/project-definition/project-definition.ts +198 -61
- package/src/project-definition/resource-unit-mapping.ts +25 -0
- package/src/project-definition/scheduler-policy.ts +553 -0
- package/src/project-run/admission-strategy-provider/custom-strategy-preparation.ts +80 -0
- package/src/project-run/admission-strategy-provider/prepared-admission-strategy.ts +27 -0
- package/src/project-run/admission-strategy-provider/provider.ts +45 -0
- package/src/project-run/aggregation.ts +10 -5
- package/src/project-run/check-execution/callback.ts +50 -8
- package/src/project-run/check-execution/console-capture.ts +262 -0
- package/src/project-run/check-execution/dependencies.ts +43 -6
- package/src/project-run/check-execution/execution-finalization.ts +99 -25
- package/src/project-run/check-execution/execution-settlement.ts +19 -11
- package/src/project-run/check-execution/flag-controls.ts +132 -0
- package/src/project-run/check-execution/lifecycle.ts +21 -0
- package/src/project-run/check-execution/messages.ts +8 -0
- package/src/project-run/check-execution/plan.ts +12 -8
- package/src/project-run/check-execution/preflight.ts +23 -43
- package/src/project-run/check-execution/resolved-checks.ts +165 -126
- package/src/project-run/check-execution/resolved-execution-result.ts +22 -0
- package/src/project-run/{completion.ts → completion/completion.ts} +17 -57
- package/src/project-run/{machine-publication.ts → completion/machine-publication.ts} +4 -4
- package/src/project-run/completion/result-resolver.ts +60 -0
- package/src/project-run/controls/contract.ts +25 -2
- package/src/project-run/controls/outputs-override-validation.ts +83 -60
- package/src/project-run/controls/validation-result.ts +17 -6
- package/src/project-run/controls/validation.ts +107 -12
- package/src/project-run/diagnostic-logging/logger.ts +132 -207
- package/src/project-run/diagnostic-logging/observation-rendering.ts +203 -0
- package/src/project-run/invocation/candidate.ts +86 -0
- package/src/project-run/invocation/creation.ts +116 -0
- package/src/project-run/invocation/paths.ts +154 -0
- package/src/project-run/invocation/progress.ts +38 -0
- package/src/project-run/{invocation.ts → invocation/run.ts} +125 -120
- package/src/project-run/invocation/scheduler.ts +75 -0
- package/src/project-run/{output-configuration.ts → outputs/configuration.ts} +6 -5
- package/src/project-run/outputs/status.ts +161 -0
- package/src/project-run/progress-rendering/presentation.ts +118 -26
- package/src/project-run/progress-rendering/renderer-formatting.ts +166 -19
- package/src/project-run/progress-rendering/renderer-lifecycle.ts +38 -3
- package/src/project-run/progress-rendering/renderer.ts +13 -2
- package/src/project-run/project-context.ts +3 -2
- package/src/project-run/result.ts +49 -3
- package/src/project-run/run.ts +7 -6
- package/src/project-run/task-scheduler/admission-core/compiled-graph.ts +316 -0
- package/src/project-run/task-scheduler/admission-core/core.ts +278 -0
- package/src/project-run/task-scheduler/admission-core/input.ts +138 -0
- package/src/project-run/task-scheduler/admission-core/projection.ts +164 -0
- package/src/project-run/task-scheduler/admission-core/selection-index.ts +165 -0
- package/src/project-run/task-scheduler/admission-core/selection-query.ts +295 -0
- package/src/project-run/task-scheduler/admission-core/selection-seed.ts +252 -0
- package/src/project-run/task-scheduler/admission-core/selection-transition.ts +236 -0
- package/src/project-run/task-scheduler/admission-core/selection.ts +140 -0
- package/src/project-run/task-scheduler/admission-core/trace.ts +177 -0
- package/src/project-run/task-scheduler/admission-scope-layers.ts +44 -0
- package/src/project-run/task-scheduler/admission-selection-policy.ts +116 -0
- package/src/project-run/task-scheduler/critical-path-ranking.ts +76 -0
- package/src/project-run/task-scheduler/custom-admission-policy.ts +128 -0
- package/src/project-run/task-scheduler/execution-state.ts +97 -6
- package/src/project-run/task-scheduler/forced-block-effect-replay.ts +68 -0
- package/src/project-run/task-scheduler/graph-validation.ts +77 -31
- package/src/project-run/task-scheduler/graph.ts +111 -3
- package/src/project-run/task-scheduler/measurement/diagnostics.ts +261 -0
- package/src/project-run/task-scheduler/measurement/integrals.ts +177 -0
- package/src/project-run/task-scheduler/measurement/policy.ts +105 -0
- package/src/project-run/task-scheduler/measurement/summary.ts +175 -0
- package/src/project-run/task-scheduler/measurement/timing.ts +190 -0
- package/src/project-run/task-scheduler/scheduler-admission-decision.ts +143 -134
- package/src/project-run/task-scheduler/scheduler-blocker-summary.ts +34 -9
- package/src/project-run/task-scheduler/scheduler-decision-inspection.ts +28 -170
- package/src/project-run/task-scheduler/scheduler-decision-model.ts +36 -40
- package/src/project-run/task-scheduler/scheduler-decision.ts +68 -36
- package/src/project-run/task-scheduler/scheduler-observation.ts +124 -0
- package/src/project-run/task-scheduler/scheduler-task-lifecycle.ts +150 -0
- package/src/project-run/task-scheduler/scheduler-terminal-measurement.ts +95 -0
- package/src/project-run/task-scheduler/scheduler.ts +216 -171
- package/types/cache/cache-json-by-key.d.ts +53 -0
- package/types/check/check.d.ts +62 -17
- package/types/check/finding-presentation.d.ts +25 -0
- package/types/check/inherited-collection.d.ts +1 -1
- package/types/check-settlement/reason-shape.d.ts +5 -0
- package/types/check-settlement/record-store.d.ts +2 -2
- package/types/check-settlement/session.d.ts +3 -1
- package/types/data-boundary/closed-values.d.ts +8 -0
- package/types/data-boundary/value-shapes.d.ts +3 -0
- package/types/index.d.ts +22 -7
- package/types/learned-critical-path/duration-model/bounded-history.d.ts +34 -0
- package/types/learned-critical-path/duration-model/prediction.d.ts +32 -0
- package/types/learned-critical-path/duration-model/preparation.d.ts +28 -0
- package/types/learned-critical-path/duration-model/recording.d.ts +28 -0
- package/types/learned-critical-path/duration-model/storage.d.ts +12 -0
- package/types/learned-critical-path/selection-layers.d.ts +14 -0
- package/types/learned-critical-path/static-decision.d.ts +3 -0
- package/types/learned-critical-path/strategy.d.ts +35 -0
- package/types/package-checks/code-quality-findings/finding-waiver-authoring.d.ts +7 -0
- package/types/package-checks/code-quality-findings/finding-waiver-evidence.d.ts +34 -0
- package/types/package-checks/code-quality-findings/policy.d.ts +4 -0
- package/types/package-checks/duplicate-detection/area-policy.d.ts +1 -1
- package/types/package-checks/duplicate-detection/finding-messages.d.ts +7 -0
- package/types/package-checks/duplicate-detection/finding-waiver-identity.d.ts +3 -0
- package/types/package-checks/duplicate-detection/jscpd/command-resolution.d.ts +1 -1
- package/types/package-checks/duplicate-detection/options.d.ts +18 -1
- package/types/package-checks/duplicate-detection/records.d.ts +20 -3
- package/types/package-checks/file-metrics/finding-messages.d.ts +4 -0
- package/types/package-checks/file-metrics/records.d.ts +5 -10
- package/types/package-checks/file-metrics/scc/parser.d.ts +4 -4
- package/types/package-checks/function-metrics/analysis.d.ts +1 -1
- package/types/package-checks/function-metrics/analyzer/analysis-context.d.ts +174 -0
- package/types/package-checks/function-metrics/analyzer/analysis-model.d.ts +135 -0
- package/types/package-checks/function-metrics/analyzer/contracts.d.ts +48 -0
- package/types/package-checks/function-metrics/analyzer/extensions/lizardcomplextags.d.ts +13 -0
- package/types/package-checks/function-metrics/analyzer/extensions/lizardnd.d.ts +28 -0
- package/types/package-checks/function-metrics/analyzer/extensions/protocol.d.ts +99 -0
- package/types/package-checks/function-metrics/analyzer/extensions/registry.d.ts +34 -0
- package/types/package-checks/function-metrics/analyzer/pipeline.d.ts +67 -0
- package/types/package-checks/function-metrics/analyzer/port-facade.d.ts +38 -0
- package/types/package-checks/function-metrics/analyzer/reader-registry.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/csharp.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/erlang.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/fortran.d.ts +29 -0
- package/types/package-checks/function-metrics/analyzer/readers/gdscript.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/go.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/java-body-states.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/java.d.ts +44 -0
- package/types/package-checks/function-metrics/analyzer/readers/javascript.d.ts +14 -0
- package/types/package-checks/function-metrics/analyzer/readers/kotlin.d.ts +23 -0
- package/types/package-checks/function-metrics/analyzer/readers/lua.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/readers/objc.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/perl.d.ts +28 -0
- package/types/package-checks/function-metrics/analyzer/readers/php-states.d.ts +41 -0
- package/types/package-checks/function-metrics/analyzer/readers/php.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/plsql.d.ts +24 -0
- package/types/package-checks/function-metrics/analyzer/readers/python.d.ts +50 -0
- package/types/package-checks/function-metrics/analyzer/readers/r.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/ruby.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/readers/rust.d.ts +20 -0
- package/types/package-checks/function-metrics/analyzer/readers/scala.d.ts +20 -0
- package/types/package-checks/function-metrics/analyzer/readers/solidity.d.ts +19 -0
- package/types/package-checks/function-metrics/analyzer/readers/st.d.ts +37 -0
- package/types/package-checks/function-metrics/analyzer/readers/swift.d.ts +30 -0
- package/types/package-checks/function-metrics/analyzer/readers/tsx.d.ts +15 -0
- package/types/package-checks/function-metrics/analyzer/readers/ttcn.d.ts +22 -0
- package/types/package-checks/function-metrics/analyzer/readers/typescript.d.ts +35 -0
- package/types/package-checks/function-metrics/analyzer/readers/vue.d.ts +18 -0
- package/types/package-checks/function-metrics/analyzer/readers/zig.d.ts +19 -0
- package/types/package-checks/function-metrics/analyzer/shared/clike.d.ts +101 -0
- package/types/package-checks/function-metrics/analyzer/shared/code-reader.d.ts +176 -0
- package/types/package-checks/function-metrics/analyzer/shared/golike.d.ts +39 -0
- package/types/package-checks/function-metrics/analyzer/shared/js-style-regex.d.ts +16 -0
- package/types/package-checks/function-metrics/analyzer/shared/rubylike.d.ts +40 -0
- package/types/package-checks/function-metrics/analyzer/shared/script-language.d.ts +17 -0
- package/types/package-checks/function-metrics/analyzer-adapter.d.ts +26 -0
- package/types/package-checks/function-metrics/analyzer-worker-contract.d.ts +5 -0
- package/types/package-checks/function-metrics/analyzer-worker-port.d.ts +24 -0
- package/types/package-checks/function-metrics/analyzer-worker.d.ts +1 -0
- package/types/package-checks/function-metrics/constructor.d.ts +1 -1
- package/types/package-checks/function-metrics/execution.d.ts +5 -2
- package/types/package-checks/function-metrics/finding-messages.d.ts +9 -0
- package/types/package-checks/function-metrics/finding-waiver-identity.d.ts +2 -0
- package/types/package-checks/function-metrics/measurement-model.d.ts +13 -1
- package/types/package-checks/function-metrics/measurement.d.ts +22 -7
- package/types/package-checks/function-metrics/options.d.ts +23 -10
- package/types/package-checks/function-metrics/records.d.ts +24 -5
- package/types/package-checks/function-metrics/target-files.d.ts +4 -3
- package/types/package-checks/host-environment/csv.d.ts +2 -0
- package/types/package-checks/host-environment/git.d.ts +1 -1
- package/types/package-checks/host-environment/process.d.ts +5 -0
- package/types/package-checks/json-schema-validation/final-data.d.ts +8 -0
- package/types/package-checks/json-schema-validation/options.d.ts +31 -3
- package/types/package-checks/json-validation/final-data.d.ts +5 -0
- package/types/package-checks/maintenance-reminders/final-data.d.ts +18 -0
- package/types/package-checks/markdown-link-validation/default-check.d.ts +9 -3
- package/types/package-checks/markdown-link-validation/execution.d.ts +1 -3
- package/types/package-checks/markdown-link-validation/final-data.d.ts +5 -0
- package/types/package-checks/markdown-link-validation/finding-messages.d.ts +4 -0
- package/types/package-checks/markdown-link-validation/local-resolution.d.ts +12 -6
- package/types/package-checks/markdown-link-validation/local-resolver.d.ts +2 -1
- package/types/package-checks/markdown-link-validation/options.d.ts +15 -0
- package/types/package-checks/markdown-link-validation/parse-facts-cache-payload.d.ts +24 -0
- package/types/package-checks/markdown-link-validation/parse-facts-cache.d.ts +13 -0
- package/types/package-checks/markdown-link-validation/resolver-engine.d.ts +6 -4
- package/types/package-checks/markdown-link-validation/source-reader.d.ts +11 -0
- package/types/package-checks/markdown-link-validation/unavailable-reasons.d.ts +4 -0
- package/types/package-checks/project-files/public-collection.d.ts +16 -0
- package/types/package-checks/secret-detection/classification.d.ts +12 -0
- package/types/package-checks/secret-detection/default-check.d.ts +11 -0
- package/types/package-checks/secret-detection/execution.d.ts +14 -0
- package/types/package-checks/secret-detection/final-data.d.ts +15 -0
- package/types/package-checks/secret-detection/finding-waiver-identity.d.ts +5 -0
- package/types/package-checks/secret-detection/input-preparation.d.ts +24 -0
- package/types/package-checks/secret-detection/options-resolution.d.ts +6 -0
- package/types/package-checks/secret-detection/options-validation.d.ts +3 -0
- package/types/package-checks/secret-detection/options.d.ts +32 -0
- package/types/package-checks/secret-detection/records.d.ts +35 -0
- package/types/package-checks/secret-detection/secretlint/adapter.d.ts +28 -0
- package/types/project-definition/check-tree/authoring.d.ts +11 -14
- package/types/project-definition/check-tree/check-fields-authoring.d.ts +25 -0
- package/types/project-definition/check-tree/collection-authoring.d.ts +2 -0
- package/types/project-definition/check-tree/resolution.d.ts +8 -3
- package/types/project-definition/check-tree/scheduling-authoring.d.ts +19 -0
- package/types/project-definition/declarative-snapshot.d.ts +7 -0
- package/types/project-definition/output-defaults.d.ts +7 -0
- package/types/project-definition/output-validation.d.ts +2 -1
- package/types/project-definition/progress-rendering-output.d.ts +41 -0
- package/types/project-definition/project-definition.d.ts +61 -16
- package/types/project-definition/resource-unit-mapping.d.ts +4 -0
- package/types/project-definition/scheduler-policy.d.ts +497 -0
- package/types/project-run/admission-strategy-provider/custom-strategy-preparation.d.ts +9 -0
- package/types/project-run/admission-strategy-provider/prepared-admission-strategy.d.ts +23 -0
- package/types/project-run/admission-strategy-provider/provider.d.ts +13 -0
- package/types/project-run/aggregation.d.ts +1 -1
- package/types/project-run/check-execution/callback.d.ts +5 -1
- package/types/project-run/check-execution/console-capture.d.ts +18 -0
- package/types/project-run/check-execution/dependencies.d.ts +1 -1
- package/types/project-run/check-execution/execution-finalization.d.ts +17 -7
- package/types/project-run/check-execution/execution-settlement.d.ts +5 -2
- package/types/project-run/check-execution/flag-controls.d.ts +27 -0
- package/types/project-run/check-execution/lifecycle.d.ts +20 -0
- package/types/project-run/check-execution/messages.d.ts +2 -0
- package/types/project-run/check-execution/plan.d.ts +2 -3
- package/types/project-run/check-execution/preflight.d.ts +6 -5
- package/types/project-run/check-execution/resolved-checks.d.ts +32 -38
- package/types/project-run/check-execution/resolved-execution-result.d.ts +21 -0
- package/types/project-run/{completion.d.ts → completion/completion.d.ts} +4 -4
- package/types/project-run/{machine-publication.d.ts → completion/machine-publication.d.ts} +3 -3
- package/types/project-run/completion/result-resolver.d.ts +4 -0
- package/types/project-run/controls/contract.d.ts +25 -2
- package/types/project-run/controls/outputs-override-validation.d.ts +2 -1
- package/types/project-run/controls/validation-result.d.ts +12 -4
- package/types/project-run/diagnostic-logging/logger.d.ts +34 -4
- package/types/project-run/diagnostic-logging/observation-rendering.d.ts +7 -0
- package/types/project-run/invocation/candidate.d.ts +12 -0
- package/types/project-run/{invocation-creation.d.ts → invocation/creation.d.ts} +3 -3
- package/types/project-run/invocation/paths.d.ts +40 -0
- package/types/project-run/invocation/progress.d.ts +11 -0
- package/types/project-run/invocation/run.d.ts +43 -0
- package/types/project-run/invocation/scheduler.d.ts +16 -0
- package/types/project-run/outputs/configuration.d.ts +3 -0
- package/types/project-run/outputs/status.d.ts +48 -0
- package/types/project-run/progress-rendering/presentation.d.ts +9 -5
- package/types/project-run/progress-rendering/renderer-formatting.d.ts +8 -0
- package/types/project-run/progress-rendering/renderer-lifecycle.d.ts +6 -1
- package/types/project-run/progress-rendering/renderer.d.ts +7 -1
- package/types/project-run/project-context.d.ts +2 -1
- package/types/project-run/result.d.ts +37 -3
- package/types/project-run/run.d.ts +6 -5
- package/types/project-run/task-scheduler/admission-core/compiled-graph.d.ts +31 -0
- package/types/project-run/task-scheduler/admission-core/core.d.ts +57 -0
- package/types/project-run/task-scheduler/admission-core/input.d.ts +4 -0
- package/types/project-run/task-scheduler/admission-core/projection.d.ts +22 -0
- package/types/project-run/task-scheduler/admission-core/selection-index.d.ts +61 -0
- package/types/project-run/task-scheduler/admission-core/selection-query.d.ts +28 -0
- package/types/project-run/task-scheduler/admission-core/selection-seed.d.ts +9 -0
- package/types/project-run/task-scheduler/admission-core/selection-transition.d.ts +4 -0
- package/types/project-run/task-scheduler/admission-core/selection.d.ts +20 -0
- package/types/project-run/task-scheduler/admission-scope-layers.d.ts +8 -0
- package/types/project-run/task-scheduler/admission-selection-policy.d.ts +31 -0
- package/types/project-run/task-scheduler/critical-path-ranking.d.ts +19 -0
- package/types/project-run/task-scheduler/custom-admission-policy.d.ts +6 -0
- package/types/project-run/task-scheduler/execution-state.d.ts +43 -1
- package/types/project-run/task-scheduler/forced-block-effect-replay.d.ts +9 -0
- package/types/project-run/task-scheduler/graph-validation.d.ts +3 -2
- package/types/project-run/task-scheduler/graph.d.ts +15 -0
- package/types/project-run/task-scheduler/measurement/diagnostics.d.ts +47 -0
- package/types/project-run/task-scheduler/measurement/integrals.d.ts +27 -0
- package/types/project-run/task-scheduler/measurement/policy.d.ts +10 -0
- package/types/project-run/task-scheduler/measurement/summary.d.ts +3 -0
- package/types/project-run/task-scheduler/measurement/timing.d.ts +33 -0
- package/types/project-run/task-scheduler/scheduler-admission-decision.d.ts +13 -1
- package/types/project-run/task-scheduler/scheduler-decision-inspection.d.ts +20 -19
- package/types/project-run/task-scheduler/scheduler-decision-model.d.ts +38 -22
- package/types/project-run/task-scheduler/scheduler-decision.d.ts +4 -1
- package/types/project-run/task-scheduler/scheduler-observation.d.ts +14 -0
- package/types/project-run/task-scheduler/scheduler-task-lifecycle.d.ts +18 -0
- package/types/project-run/task-scheduler/scheduler-terminal-measurement.d.ts +9 -0
- package/dist/esm/package-checks/file-metrics/scc/csv.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs +0 -64
- package/dist/esm/package-checks/function-metrics/lizard/availability.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs +0 -17
- package/dist/esm/package-checks/function-metrics/lizard/csv.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs +0 -138
- package/dist/esm/package-checks/function-metrics/lizard/parser.mjs.map +0 -1
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs +0 -35
- package/dist/esm/package-checks/function-metrics/lizard/scanner.mjs.map +0 -1
- package/dist/esm/package-checks/host-environment/process/command.mjs +0 -13
- package/dist/esm/package-checks/host-environment/process/command.mjs.map +0 -1
- package/dist/esm/project-run/completion.mjs.map +0 -1
- package/dist/esm/project-run/invocation-creation.mjs +0 -111
- package/dist/esm/project-run/invocation-creation.mjs.map +0 -1
- package/dist/esm/project-run/invocation.mjs.map +0 -1
- package/dist/esm/project-run/machine-publication.mjs.map +0 -1
- package/dist/esm/project-run/output-configuration.mjs.map +0 -1
- package/dist/esm/project-run/output-status.mjs +0 -43
- package/dist/esm/project-run/output-status.mjs.map +0 -1
- package/src/package-checks/function-metrics/lizard/availability.ts +0 -90
- package/src/package-checks/function-metrics/lizard/csv.ts +0 -20
- package/src/package-checks/function-metrics/lizard/parser.ts +0 -179
- package/src/package-checks/function-metrics/lizard/scanner.ts +0 -62
- package/src/package-checks/host-environment/process/command.ts +0 -21
- package/src/project-run/invocation-creation.ts +0 -160
- package/src/project-run/output-status.ts +0 -69
- package/types/package-checks/file-metrics/scc/csv.d.ts +0 -1
- package/types/package-checks/function-metrics/lizard/availability.d.ts +0 -11
- package/types/package-checks/function-metrics/lizard/csv.d.ts +0 -1
- package/types/package-checks/function-metrics/lizard/parser.d.ts +0 -17
- package/types/package-checks/function-metrics/lizard/scanner.d.ts +0 -15
- package/types/package-checks/host-environment/process/command.d.ts +0 -7
- package/types/project-run/invocation.d.ts +0 -34
- package/types/project-run/output-configuration.d.ts +0 -3
- package/types/project-run/output-status.d.ts +0 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-reader.mjs","sourceRoot":"","sources":["../../../../../../src/package-checks/function-metrics/analyzer/shared/code-reader.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Derived from terryyin/lizard 1.24.0.\n * Source: lizard_languages/code_reader.py.\n * Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.\n * SPDX-License-Identifier: MIT\n * Modified: translated to TypeScript while retaining the tokenizer and\n * state-machine sequencing used by concrete Lizard language readers.\n */\n\nimport type { AnalyzerReader, TokenStream } from \"../contracts.ts\";\nimport type { FileInfoBuilder } from \"../analysis-context.ts\";\n\n/** A regex match passed to language-specific token factories. */\nexport class TokenMatch {\n public readonly text: string;\n public readonly startOffset: number;\n\n public constructor(text: string, startOffset: number) {\n this.text = text;\n this.startOffset = startOffset;\n }\n\n /** Python's re.Match.group(0), retained for direct reader translations. */\n public group(index = 0): string | undefined {\n return index === 0 ? this.text : undefined;\n }\n\n /** Python's re.Match.start(), retained for direct reader translations. */\n public start(): number {\n return this.startOffset;\n }\n}\n\n/** Converts one tokenizer match into the token stream representation. */\nexport type TokenFactory = (match: TokenMatch) => string;\n\nexport type StateHandler = (this: CodeStateMachine, token: string) => boolean | void;\nexport type UntilStateHandler = (\n this: CodeStateMachine,\n token: string,\n savedTokens: readonly string[]\n) => boolean | void;\nexport type State = CodeStateMachine | StateHandler;\nexport type SourceStateHandler = (state: CodeStateMachine, token: string) => boolean | void;\nexport type SourceUntilStateHandler = (\n state: CodeStateMachine,\n token: string,\n savedTokens: string[]\n) => boolean | void;\n\nconst PYTHON_UNICODE_WHITESPACE = /^\\p{White_Space}$/u;\nconst C0_INFORMATION_SEPARATOR_FIRST = 0x1c;\nconst C0_INFORMATION_SEPARATOR_LAST = 0x1f;\nconst C0_LINE_SEPARATOR_LAST = 0x1e;\nconst C0_INFORMATION_SEPARATOR_PATTERN =\n `${String.fromCodePoint(C0_INFORMATION_SEPARATOR_FIRST)}-` +\n String.fromCodePoint(C0_INFORMATION_SEPARATOR_LAST);\n\nexport interface ReaderDefinition {\n readonly controlFlowKeywords: ReadonlySet<string>;\n readonly logicalOperators: ReadonlySet<string>;\n readonly caseKeywords: ReadonlySet<string>;\n readonly ternaryOperators: ReadonlySet<string>;\n buildConditions(): Set<string>;\n}\n\n/** Python str.isspace(), including its four extra C0 information separators. */\nexport function isPythonWhitespace(value: string): boolean {\n return (\n value.length > 0 &&\n Array.from(value).every(\n (character) =>\n PYTHON_UNICODE_WHITESPACE.test(character) || isC0InformationSeparator(character)\n )\n );\n}\n\n/** Python str.splitlines() without retaining source line-boundary characters. */\nexport function splitPythonLines(value: string): string[] {\n if (value.length === 0) return [];\n\n const lines: string[] = [];\n let lineStart = 0;\n let index = 0;\n while (index < value.length) {\n const boundaryLength = pythonLineBoundaryLengthAt(value, index);\n if (boundaryLength === 0) {\n index += 1;\n continue;\n }\n lines.push(value.slice(lineStart, index));\n index += boundaryLength;\n lineStart = index;\n }\n if (lineStart < value.length) lines.push(value.slice(lineStart));\n return lines;\n}\n\n/**\n * The small state-machine foundation used by source-aligned language readers.\n * It deliberately preserves upstream's one saved sub-state and callback slot.\n */\nexport class CodeStateMachine {\n public context: FileInfoBuilder;\n public lastToken: string | undefined;\n protected state: State;\n protected savedState: State;\n protected toExit = false;\n public callback: (() => void) | undefined;\n protected readUntilTokens: string[] = [];\n protected bracketCount = 0;\n protected readonly stateMachineConstructor: typeof CodeStateMachine;\n protected readonly globalState: StateHandler = (token) => this._state_global(token);\n\n public constructor(context: FileInfoBuilder) {\n this.stateMachineConstructor = new.target;\n this.context = context;\n this.state = this.globalState;\n this.savedState = this.globalState;\n }\n\n /** Source field aliases retain one state slot for translated state machines. */\n public get saved_state(): State {\n return this.savedState;\n }\n\n public set saved_state(value: State) {\n this.savedState = value;\n }\n\n public get _state(): State {\n return this.state;\n }\n\n public set _state(value: State) {\n this.state = value;\n }\n\n public get last_token(): string | undefined {\n return this.lastToken;\n }\n\n public set last_token(value: string | undefined) {\n this.lastToken = value;\n }\n\n public get to_exit(): boolean {\n return this.toExit;\n }\n\n public set to_exit(value: boolean) {\n this.toExit = value;\n }\n\n public get rut_tokens(): string[] {\n return this.readUntilTokens;\n }\n\n public set rut_tokens(value: string[]) {\n this.readUntilTokens = value;\n }\n\n public get br_count(): number {\n return this.bracketCount;\n }\n\n public set br_count(value: number) {\n this.bracketCount = value;\n }\n\n /** TS-facing alias for the source clone hook. */\n public cloneState(): CodeStateMachine {\n return this.statemachine_clone();\n }\n\n /** Equivalent to Python's statemachine_clone. */\n public statemachine_clone(): CodeStateMachine {\n return new this.stateMachineConstructor(this.context);\n }\n\n public next(state: State, token?: string): boolean | void {\n this.state = state;\n if (token !== undefined) return this.consume(token);\n }\n\n public nextIf(state: State, token: string, expected: string): boolean | void {\n if (token === expected) return this.next(state, token);\n }\n\n public next_if(state: State, token: string, expected: string): boolean | void {\n return this.nextIf(state, token, expected);\n }\n\n public returnFromState(): void {\n this.toExit = true;\n this.statemachine_before_return();\n }\n\n public statemachine_return(): void {\n this.returnFromState();\n }\n\n public subState(state: State, callback?: () => void, token?: string): boolean | void {\n this.savedState = this.state;\n this.callback = callback;\n return this.next(state, token);\n }\n\n public sub_state(state: State, callback?: () => void, token?: string): boolean | void {\n return this.subState(state, callback, token);\n }\n\n /** Feed one token through the current state. */\n public consume(token: string): boolean {\n const completed = this.invokeCurrentState(token);\n if (completed) {\n this.next(this.savedState);\n // Keep the source ordering: a callback installed by this callback is\n // still cleared afterwards, because CodeStateMachine has one callback\n // slot rather than a callback stack.\n this.callback?.();\n this.callback = undefined;\n }\n this.lastToken = token;\n return this.toExit;\n }\n\n /** Invoke only the current state; ExtensionBase retains this upstream seam. */\n protected invokeCurrentState(token: string): boolean {\n return this.state instanceof CodeStateMachine\n ? this.state.consume(token)\n : Boolean(this.state.call(this, token));\n }\n\n /** TS-facing state hook used by existing translated reader subclasses. */\n protected stateGlobal(_token: string): void {}\n\n /** Source readers/extensions may retain this source-spelled state hook. */\n public _state_global(token: string): void {\n this.stateGlobal(token);\n }\n\n /** Source readers/extensions may retain this source-spelled return hook. */\n public statemachine_before_return(): void {}\n\n /** TS-facing alias for the source pre-return hook. */\n public beforeReturn(): void {\n this.statemachine_before_return();\n }\n\n /** Source decorator factory retained for translated reader/extension state methods. */\n public static read_inside_brackets_then(\n brackets: string,\n endState?: string\n ): (action: SourceStateHandler) => StateHandler {\n return (action) =>\n function readUntilMatchingBrackets(this: CodeStateMachine, token: string): void {\n const [openingBracket, closingBracket] = brackets;\n if (token === openingBracket) this.br_count += 1;\n else if (token === closingBracket) this.br_count -= 1;\n\n if (this.br_count === 0 || endState !== undefined) action(this, token);\n if (this.br_count === 0 && endState !== undefined) {\n this.next(readSourceState(this, endState));\n }\n };\n }\n\n /** Source decorator factory retained for translated reader/extension state methods. */\n public static read_until_then(tokens: string): (action: SourceUntilStateHandler) => StateHandler {\n return (action) =>\n function readUntilThenToken(this: CodeStateMachine, token: string): void {\n if (tokens.includes(token)) {\n action(this, token, this.rut_tokens);\n this.rut_tokens = [];\n return;\n }\n this.rut_tokens.push(token);\n };\n }\n\n /**\n * Source-aligned replacement for read_inside_brackets_then. Call from a\n * reader state for the token currently being consumed.\n */\n protected readInsideBracketsThen(\n brackets: string,\n token: string,\n action: StateHandler,\n endState?: State\n ): void {\n const [openingBracket, closingBracket] = brackets;\n if (token === openingBracket) this.bracketCount += 1;\n else if (token === closingBracket) this.bracketCount -= 1;\n\n if (this.bracketCount === 0 || endState !== undefined) {\n action.call(this, token);\n }\n if (this.bracketCount === 0 && endState !== undefined) this.next(endState);\n }\n\n /** Source-aligned replacement for read_until_then. */\n protected readUntilThen(stopTokens: string, token: string, action: UntilStateHandler): void {\n if (stopTokens.includes(token)) {\n const savedTokens = this.readUntilTokens;\n action.call(this, token, savedTokens);\n this.readUntilTokens = [];\n return;\n }\n this.readUntilTokens.push(token);\n }\n}\n\nfunction readSourceState(stateMachine: CodeStateMachine, name: string): State {\n const state: unknown = Reflect.get(stateMachine, name);\n if (state instanceof CodeStateMachine || isStateHandler(state)) return state;\n throw new TypeError(`CodeStateMachine source state '${name}' is not callable.`);\n}\n\nfunction isStateHandler(value: unknown): value is StateHandler {\n return typeof value === \"function\";\n}\n\n/** Base tokenizer and state fan-out used by all translated concrete readers. */\nexport class CodeReader implements AnalyzerReader {\n public static ext: readonly string[] = [];\n public static languages: unknown = undefined;\n public static languageNames: readonly string[] = [];\n\n /** Source `language_names` shares storage with the TS-facing class field. */\n public static get language_names(): readonly string[] {\n return this.languageNames;\n }\n\n public static set language_names(value: readonly string[]) {\n this.languageNames = value;\n }\n\n public static extraSubclasses = new Set<typeof CodeReader>();\n\n /** Source `extra_subclasses` shares storage with the TS-facing class field. */\n public static get extra_subclasses(): Set<typeof CodeReader> {\n return this.extraSubclasses;\n }\n\n public static set extra_subclasses(value: Set<typeof CodeReader>) {\n this.extraSubclasses = value;\n }\n\n public static controlFlowKeywords: ReadonlySet<string> = new Set([\"if\", \"for\", \"while\", \"catch\"]);\n public static logicalOperators: ReadonlySet<string> = new Set([\"&&\", \"||\"]);\n public static caseKeywords: ReadonlySet<string> = new Set([\"case\"]);\n public static ternaryOperators: ReadonlySet<string> = new Set([\"?\"]);\n\n /** Source class-level condition categories retain their source spellings. */\n public static get _control_flow_keywords(): ReadonlySet<string> {\n return this.controlFlowKeywords;\n }\n\n public static set _control_flow_keywords(value: ReadonlySet<string>) {\n this.controlFlowKeywords = value;\n }\n\n public static get _logical_operators(): ReadonlySet<string> {\n return this.logicalOperators;\n }\n\n public static set _logical_operators(value: ReadonlySet<string>) {\n this.logicalOperators = value;\n }\n\n public static get _case_keywords(): ReadonlySet<string> {\n return this.caseKeywords;\n }\n\n public static set _case_keywords(value: ReadonlySet<string>) {\n this.caseKeywords = value;\n }\n\n public static get _ternary_operators(): ReadonlySet<string> {\n return this.ternaryOperators;\n }\n\n public static set _ternary_operators(value: ReadonlySet<string>) {\n this.ternaryOperators = value;\n }\n\n public conditions: Set<string>;\n public controlFlowKeywords: Set<string>;\n public logicalOperators: Set<string>;\n public caseKeywords: Set<string>;\n public ternaryOperators: Set<string>;\n public parallelStates: CodeStateMachine[] = [];\n public context: FileInfoBuilder;\n private readonly readerClass: typeof CodeReader;\n\n public constructor(context: FileInfoBuilder, readerDefinition?: ReaderDefinition) {\n this.readerClass = new.target;\n this.context = context;\n const definition = readerDefinition ?? this.readerClass;\n this.conditions = new Set(definition.buildConditions());\n this.controlFlowKeywords = new Set(definition.controlFlowKeywords);\n this.logicalOperators = new Set(definition.logicalOperators);\n this.caseKeywords = new Set(definition.caseKeywords);\n this.ternaryOperators = new Set(definition.ternaryOperators);\n }\n\n /** Source `parallel_states` shares the mutable per-reader state list. */\n public get parallel_states(): CodeStateMachine[] {\n return this.parallelStates;\n }\n\n public set parallel_states(value: CodeStateMachine[]) {\n this.parallelStates = value;\n }\n\n /** Python class attributes are visible through each reader instance. */\n public get languages(): unknown {\n return this.readerClass.languages;\n }\n\n public get extraSubclasses(): Set<typeof CodeReader> {\n return this.readerClass.extraSubclasses;\n }\n\n public get extra_subclasses(): Set<typeof CodeReader> {\n return this.extraSubclasses;\n }\n\n public get control_flow_keywords(): Set<string> {\n return this.controlFlowKeywords;\n }\n\n public set control_flow_keywords(value: Set<string>) {\n this.controlFlowKeywords = value;\n }\n\n public get logical_operators(): Set<string> {\n return this.logicalOperators;\n }\n\n public set logical_operators(value: Set<string>) {\n this.logicalOperators = value;\n }\n\n public get case_keywords(): Set<string> {\n return this.caseKeywords;\n }\n\n public set case_keywords(value: Set<string>) {\n this.caseKeywords = value;\n }\n\n public get ternary_operators(): Set<string> {\n return this.ternaryOperators;\n }\n\n public set ternary_operators(value: Set<string>) {\n this.ternaryOperators = value;\n }\n\n /** Python exposes the concrete class's ext through each reader instance. */\n public get ext(): readonly string[] {\n return this.readerClass.ext;\n }\n\n /** Python exposes the concrete class's language_names through each reader instance. */\n public get languageNames(): readonly string[] {\n return this.readerClass.languageNames;\n }\n\n /** Source `language_names` instance accessor, aliased to `languageNames`. */\n public get language_names(): readonly string[] {\n return this.languageNames;\n }\n\n public static buildConditions(this: typeof CodeReader): Set<string> {\n return new Set([\n ...this.controlFlowKeywords,\n ...this.logicalOperators,\n ...this.caseKeywords,\n ...this.ternaryOperators\n ]);\n }\n\n public static _build_conditions(this: typeof CodeReader): Set<string> {\n return this.buildConditions();\n }\n\n public static matchFilename(this: typeof CodeReader, filename: string): boolean {\n return new RegExp(`.*\\\\.(${this.ext.join(\"|\")})$`, \"iu\").test(filename);\n }\n\n public static match_filename(this: typeof CodeReader, filename: string): boolean {\n return this.matchFilename(filename);\n }\n\n /** The shared source-aligned tokenizer used by all language readers. */\n public static *generateTokens(\n sourceCode: string,\n addition = \"\",\n tokenFactory: TokenFactory = (match) => match.text\n ): Generator<string> {\n const { cleanedAddition, flags } = tokenizerFlags(addition);\n const untilEnd = String.raw`(?:\\\\\\n|[^\\n])*`;\n // Python's `[^\\\\S\\\\n]+` source fragment groups whitespace other than a\n // line-feed. Keep `\\\\n` as its own token even when it is adjacent to\n // horizontal/other Python whitespace; the C0 separators are recognised by\n // Python's `\\\\s` but not JavaScript's Unicode White_Space property.\n const pythonWhitespaceExceptLineFeed = `(?:(?!\\\\n)(?:\\\\p{White_Space}|[${C0_INFORMATION_SEPARATOR_PATTERN}]))`;\n const combinedSymbols = [\n \"<<=\",\n \">>=\",\n \"||\",\n \"&&\",\n \"===\",\n \"!==\",\n \"==\",\n \"!=\",\n \"<=\",\n \">=\",\n \"->\",\n \"=>\",\n \"++\",\n \"--\",\n \"+=\",\n \"-=\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"*=\",\n \"/=\",\n \"^=\",\n \"&=\",\n \"|=\",\n \"...\"\n ];\n const tokenPattern = new RegExp(\n \"(?:\" +\n String.raw`\\/\\*.*?\\*\\/` +\n cleanedAddition +\n String.raw`|(?:\\d+')+\\d+` +\n String.raw`|0x(?:[0-9A-Fa-f]+')+[0-9A-Fa-f]+` +\n String.raw`|0b(?:[01]+')+[01]+` +\n String.raw`|[\\p{L}\\p{N}_]+` +\n String.raw`|\"(?:\\\\.|[^\"\\\\])*\"` +\n String.raw`|'(?:\\\\.|[^'\\\\])*?'` +\n String.raw`|\\/\\/` +\n untilEnd +\n String.raw`|#` +\n String.raw`|:=|::|\\*\\*` +\n String.raw`|<(?=(?:[^<>?]*\\?)+[^<>]*>)(?:[\\w\\s,.?]|(?:extends))+>` +\n `|${combinedSymbols.map(escapeRegex).join(\"|\")}` +\n String.raw`|\\\\\\n|\\n|` +\n `${pythonWhitespaceExceptLineFeed}+` +\n String.raw`|.)`,\n flags\n );\n\n let macro = \"\";\n for (const match of sourceCode.matchAll(tokenPattern)) {\n const token = tokenFactory(new TokenMatch(match[0], match.index));\n if (macro) {\n if (token.includes(\"\\\\\\n\") || !token.includes(\"\\n\")) {\n macro += token;\n } else {\n yield macro;\n yield token;\n macro = \"\";\n }\n } else if (token === \"#\") {\n macro = token;\n } else {\n yield token;\n }\n }\n if (macro) yield macro;\n }\n\n public static generate_tokens(\n sourceCode: string,\n addition = \"\",\n tokenFactory: TokenFactory = (match) => match.text\n ): TokenStream {\n return this.generateTokens(sourceCode, addition, tokenFactory);\n }\n\n /** Source `CodeReader.__call__` updates context before draining the reader pipeline. */\n public __call__(tokens: TokenStream, reader: AnalyzerReader): TokenStream {\n this.context = reader.context;\n return this.process(tokens);\n }\n\n public *process(tokens: TokenStream): Generator<string> {\n for (const token of tokens) {\n if (this.process_token(token)) {\n for (const state of this.parallelStates) state.consume(token);\n yield token;\n continue;\n }\n\n for (const state of this.parallelStates) state.consume(token);\n yield token;\n }\n for (const state of this.parallelStates) state.statemachine_before_return();\n this.eof();\n }\n\n public get_comment_from_token(_token: string): string | undefined {\n return undefined;\n }\n\n /** TS-facing analyzer interface alias for the source reader hook. */\n public getCommentFromToken(token: string): string | undefined {\n return this.get_comment_from_token(token);\n }\n\n public eof(): void {}\n\n /** Return true only when a reader intentionally bypasses normal state work. */\n public process_token(_token: string): boolean {\n return false;\n }\n\n /** TS-facing alias retained for the AnalyzerReader host interface. */\n public processToken(token: string): boolean {\n return this.process_token(token);\n }\n}\n\nfunction tokenizerFlags(addition: string): {\n readonly cleanedAddition: string;\n readonly flags: string;\n} {\n const inlineFlagPattern = /\\(\\?[aiLmsux]+\\)/gu;\n const inlineFlags = Array.from(addition.matchAll(inlineFlagPattern)).flatMap((match) =>\n (match[0] ?? \"\").slice(2, -1).split(\"\")\n );\n const supportedFlags = new Set([\"g\", \"m\", \"s\", \"u\"]);\n if (inlineFlags.includes(\"i\")) supportedFlags.add(\"i\");\n return {\n cleanedAddition: normalizePythonRegex(addition.replace(inlineFlagPattern, \"\")),\n flags: Array.from(supportedFlags).join(\"\")\n };\n}\n\nfunction isC0InformationSeparator(character: string): boolean {\n const codePoint = character.codePointAt(0);\n return (\n codePoint !== undefined &&\n codePoint >= C0_INFORMATION_SEPARATOR_FIRST &&\n codePoint <= C0_INFORMATION_SEPARATOR_LAST\n );\n}\n\nfunction pythonLineBoundaryLengthAt(value: string, index: number): number {\n const codePoint = value.codePointAt(index);\n if (codePoint === 0x0d) return value.codePointAt(index + 1) === 0x0a ? 2 : 1;\n if (codePoint === 0x0a || codePoint === 0x0b || codePoint === 0x0c) return 1;\n if (\n codePoint !== undefined &&\n codePoint >= C0_INFORMATION_SEPARATOR_FIRST &&\n codePoint <= C0_LINE_SEPARATOR_LAST\n ) {\n return 1;\n }\n return codePoint === 0x85 || codePoint === 0x2028 || codePoint === 0x2029 ? 1 : 0;\n}\n\n/**\n * Lizard's language additions are Python regex fragments. Python accepts a\n * backslash before punctuation such as `!`, while a JavaScript Unicode regex\n * rejects that identity escape; those escapes are literals in both engines.\n */\nfunction normalizePythonRegex(pattern: string): string {\n return pattern.replace(/\\\\([^\\\\^$.*+?()[\\]{}|/bBdDsSwWpPxucfnrtv0-9])/gu, \"$1\");\n}\n\nfunction escapeRegex(value: string): string {\n return value.replace(/[|\\\\{}()[\\]^$+*?.]/gu, \"\\\\$&\");\n}\n"]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived from terryyin/lizard 1.24.0.
|
|
3
|
+
* Source: lizard_languages/golike.py.
|
|
4
|
+
* Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
* Modified: translated to TypeScript while retaining Go-like function and
|
|
7
|
+
* nested-block state transitions.
|
|
8
|
+
*/
|
|
9
|
+
import { CodeStateMachine } from "./code-reader.mjs";
|
|
10
|
+
/**
|
|
11
|
+
* Shared state machine for Go-like readers.
|
|
12
|
+
*
|
|
13
|
+
* Function transition methods deliberately remain prototype methods: source
|
|
14
|
+
* subclasses use `super` and the state machine invokes stored methods with its
|
|
15
|
+
* owning receiver. This preserves both override dispatch and state identity.
|
|
16
|
+
*/
|
|
17
|
+
/* oxlint-disable typescript/unbound-method */
|
|
18
|
+
export class GoLikeStates extends CodeStateMachine {
|
|
19
|
+
static FUNC_KEYWORD = "func";
|
|
20
|
+
_type_param_open;
|
|
21
|
+
_type_param_close;
|
|
22
|
+
_state_global(token) {
|
|
23
|
+
if (token === this.getFunctionKeyword()) {
|
|
24
|
+
this.next(this._function_name);
|
|
25
|
+
this.context.pushNewFunction("");
|
|
26
|
+
}
|
|
27
|
+
else if (token === "type") {
|
|
28
|
+
this.next(this._type_definition);
|
|
29
|
+
}
|
|
30
|
+
else if (token === "{") {
|
|
31
|
+
this.subState(this.cloneState());
|
|
32
|
+
}
|
|
33
|
+
else if (token === "}") {
|
|
34
|
+
this.returnFromState();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
_type_definition = (_token) => {
|
|
38
|
+
this.next(this._after_type_name);
|
|
39
|
+
};
|
|
40
|
+
_after_type_name = (token) => {
|
|
41
|
+
if (token === "struct") {
|
|
42
|
+
this.next(this._struct_definition);
|
|
43
|
+
}
|
|
44
|
+
else if (token === "interface") {
|
|
45
|
+
this.next(this._interface_definition);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.next(this.globalState);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
_struct_definition = (token) => {
|
|
52
|
+
this.readInsideBracketsThen("{}", token, this.ignoreToken, this.globalState);
|
|
53
|
+
};
|
|
54
|
+
_interface_definition = (token) => {
|
|
55
|
+
this.readInsideBracketsThen("{}", token, this.ignoreToken, this.globalState);
|
|
56
|
+
};
|
|
57
|
+
/** Source `_function_name` virtual seam used by Kotlin. */
|
|
58
|
+
_function_name(token) {
|
|
59
|
+
if (token === "`")
|
|
60
|
+
return;
|
|
61
|
+
if (token === "(") {
|
|
62
|
+
const parentFunction = this.context.stackedFunctions.at(-1);
|
|
63
|
+
if (parentFunction?.name !== "*global*") {
|
|
64
|
+
this.next(this._function_dec, token);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.next(this._member_function, token);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (token === "{") {
|
|
71
|
+
this.next(this._expect_function_impl, token);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.context.addToFunctionName(token);
|
|
75
|
+
this.next(this._expect_function_dec);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
_expect_function_dec = (token) => {
|
|
79
|
+
if (token === "(") {
|
|
80
|
+
this.next(this._function_dec, token);
|
|
81
|
+
}
|
|
82
|
+
else if (token === "<" || token === "[") {
|
|
83
|
+
this.next(this._skip_type_parameters, token);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.next(this.globalState);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
_skip_type_parameters = (token) => {
|
|
90
|
+
if (this.br_count === 0) {
|
|
91
|
+
this._type_param_open = token;
|
|
92
|
+
this._type_param_close = token === "<" ? ">" : "]";
|
|
93
|
+
}
|
|
94
|
+
let typeParameterDelta = 0;
|
|
95
|
+
if (token === this._type_param_open)
|
|
96
|
+
typeParameterDelta = 1;
|
|
97
|
+
else if (token === this._type_param_close)
|
|
98
|
+
typeParameterDelta = -1;
|
|
99
|
+
this.br_count += typeParameterDelta;
|
|
100
|
+
if (this.br_count === 0)
|
|
101
|
+
this.next(this._expect_function_dec);
|
|
102
|
+
};
|
|
103
|
+
_member_function = (token) => {
|
|
104
|
+
this.readInsideBracketsThen("()", token, this.addMemberFunctionToken, this._function_name);
|
|
105
|
+
};
|
|
106
|
+
addMemberFunctionToken = (token) => {
|
|
107
|
+
this.context.addToLongFunctionName(token);
|
|
108
|
+
};
|
|
109
|
+
_function_dec = (token) => {
|
|
110
|
+
this.readInsideBracketsThen("()", token, this.addFunctionParameter, this._expect_function_impl);
|
|
111
|
+
};
|
|
112
|
+
addFunctionParameter = (token) => {
|
|
113
|
+
if (!"()".includes(token))
|
|
114
|
+
this.context.parameter(token);
|
|
115
|
+
};
|
|
116
|
+
/** Source `_expect_function_impl` virtual seam used by Scala and Kotlin. */
|
|
117
|
+
_expect_function_impl(token) {
|
|
118
|
+
if (token === "{" && this.lastToken !== "interface") {
|
|
119
|
+
this.next(this._function_impl, token);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
_function_impl = (_token) => {
|
|
123
|
+
this.subState(this.cloneState(), () => {
|
|
124
|
+
this.next(this.globalState);
|
|
125
|
+
this.context.endOfFunction();
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
ignoreToken = (_token) => { };
|
|
129
|
+
getFunctionKeyword() {
|
|
130
|
+
const StateMachine = this.stateMachineConstructor;
|
|
131
|
+
if (!hasFunctionKeyword(StateMachine))
|
|
132
|
+
return GoLikeStates.FUNC_KEYWORD;
|
|
133
|
+
const keyword = StateMachine.FUNC_KEYWORD;
|
|
134
|
+
return typeof keyword === "string" ? keyword : GoLikeStates.FUNC_KEYWORD;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/* oxlint-enable typescript/unbound-method */
|
|
138
|
+
function hasFunctionKeyword(value) {
|
|
139
|
+
return "FUNC_KEYWORD" in value;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=golike.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"golike.mjs","sourceRoot":"","sources":["../../../../../../src/package-checks/function-metrics/analyzer/shared/golike.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Derived from terryyin/lizard 1.24.0.\n * Source: lizard_languages/golike.py.\n * Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.\n * SPDX-License-Identifier: MIT\n * Modified: translated to TypeScript while retaining Go-like function and\n * nested-block state transitions.\n */\n\nimport { CodeStateMachine } from \"./code-reader.ts\";\n\n/**\n * Shared state machine for Go-like readers.\n *\n * Function transition methods deliberately remain prototype methods: source\n * subclasses use `super` and the state machine invokes stored methods with its\n * owning receiver. This preserves both override dispatch and state identity.\n */\n/* oxlint-disable typescript/unbound-method */\nexport class GoLikeStates extends CodeStateMachine {\n protected static readonly FUNC_KEYWORD: string = \"func\";\n private _type_param_open: string | undefined;\n private _type_param_close: string | undefined;\n\n public override _state_global(token: string): void {\n if (token === this.getFunctionKeyword()) {\n this.next(this._function_name);\n this.context.pushNewFunction(\"\");\n } else if (token === \"type\") {\n this.next(this._type_definition);\n } else if (token === \"{\") {\n this.subState(this.cloneState());\n } else if (token === \"}\") {\n this.returnFromState();\n }\n }\n\n protected readonly _type_definition = (_token: string): void => {\n this.next(this._after_type_name);\n };\n\n private readonly _after_type_name = (token: string): void => {\n if (token === \"struct\") {\n this.next(this._struct_definition);\n } else if (token === \"interface\") {\n this.next(this._interface_definition);\n } else {\n this.next(this.globalState);\n }\n };\n\n private readonly _struct_definition = (token: string): void => {\n this.readInsideBracketsThen(\"{}\", token, this.ignoreToken, this.globalState);\n };\n\n private readonly _interface_definition = (token: string): void => {\n this.readInsideBracketsThen(\"{}\", token, this.ignoreToken, this.globalState);\n };\n\n /** Source `_function_name` virtual seam used by Kotlin. */\n protected _function_name(token: string): void {\n if (token === \"`\") return;\n if (token === \"(\") {\n const parentFunction = this.context.stackedFunctions.at(-1);\n if (parentFunction?.name !== \"*global*\") {\n this.next(this._function_dec, token);\n } else {\n this.next(this._member_function, token);\n }\n } else if (token === \"{\") {\n this.next(this._expect_function_impl, token);\n } else {\n this.context.addToFunctionName(token);\n this.next(this._expect_function_dec);\n }\n }\n\n private readonly _expect_function_dec = (token: string): void => {\n if (token === \"(\") {\n this.next(this._function_dec, token);\n } else if (token === \"<\" || token === \"[\") {\n this.next(this._skip_type_parameters, token);\n } else {\n this.next(this.globalState);\n }\n };\n\n private readonly _skip_type_parameters = (token: string): void => {\n if (this.br_count === 0) {\n this._type_param_open = token;\n this._type_param_close = token === \"<\" ? \">\" : \"]\";\n }\n let typeParameterDelta = 0;\n if (token === this._type_param_open) typeParameterDelta = 1;\n else if (token === this._type_param_close) typeParameterDelta = -1;\n this.br_count += typeParameterDelta;\n if (this.br_count === 0) this.next(this._expect_function_dec);\n };\n\n private readonly _member_function = (token: string): void => {\n this.readInsideBracketsThen(\"()\", token, this.addMemberFunctionToken, this._function_name);\n };\n\n private readonly addMemberFunctionToken = (token: string): void => {\n this.context.addToLongFunctionName(token);\n };\n\n private readonly _function_dec = (token: string): void => {\n this.readInsideBracketsThen(\"()\", token, this.addFunctionParameter, this._expect_function_impl);\n };\n\n private readonly addFunctionParameter = (token: string): void => {\n if (!\"()\".includes(token)) this.context.parameter(token);\n };\n\n /** Source `_expect_function_impl` virtual seam used by Scala and Kotlin. */\n protected _expect_function_impl(token: string): void {\n if (token === \"{\" && this.lastToken !== \"interface\") {\n this.next(this._function_impl, token);\n }\n }\n\n protected readonly _function_impl = (_token: string): void => {\n this.subState(this.cloneState(), () => {\n this.next(this.globalState);\n this.context.endOfFunction();\n });\n };\n\n private readonly ignoreToken = (_token: string): void => {};\n\n private getFunctionKeyword(): string {\n const StateMachine = this.stateMachineConstructor;\n if (!hasFunctionKeyword(StateMachine)) return GoLikeStates.FUNC_KEYWORD;\n const keyword = StateMachine.FUNC_KEYWORD;\n return typeof keyword === \"string\" ? keyword : GoLikeStates.FUNC_KEYWORD;\n }\n}\n/* oxlint-enable typescript/unbound-method */\n\nfunction hasFunctionKeyword(value: object): value is { readonly FUNC_KEYWORD?: unknown } {\n return \"FUNC_KEYWORD\" in value;\n}\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived from terryyin/lizard 1.24.0.
|
|
3
|
+
* Source: lizard_languages/js_style_regex_expression.py.
|
|
4
|
+
* Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
* Modified: translated to a TypeScript tokenizer wrapper while preserving the
|
|
7
|
+
* upstream eager regex-token combination order.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Wrap a tokenizer with Lizard's JavaScript-style regular-expression joining.
|
|
11
|
+
* The final index advance intentionally mirrors the upstream implementation.
|
|
12
|
+
*/
|
|
13
|
+
export function js_style_regex_expression(generator) {
|
|
14
|
+
return function* generateTokensWithRegex(sourceCode, addition = "", tokenFactory) {
|
|
15
|
+
const regexPattern = /\/(\S*?[^\s\\]\/)+?(igm)*/u;
|
|
16
|
+
const tokens = Array.from(generator(sourceCode, addition, tokenFactory));
|
|
17
|
+
const result = [];
|
|
18
|
+
let index = 0;
|
|
19
|
+
while (index < tokens.length) {
|
|
20
|
+
const token = tokens[index];
|
|
21
|
+
if (token === "/") {
|
|
22
|
+
const previousToken = tokens[index - 1]?.trim();
|
|
23
|
+
const isRegex = index === 0 ||
|
|
24
|
+
(previousToken !== undefined &&
|
|
25
|
+
previousToken.length > 0 &&
|
|
26
|
+
"=,({[?:!&|;".includes(previousToken.at(-1) ?? ""));
|
|
27
|
+
if (isRegex) {
|
|
28
|
+
const regexTokens = [token];
|
|
29
|
+
index += 1;
|
|
30
|
+
while (index < tokens.length && !tokens[index].endsWith("/")) {
|
|
31
|
+
regexTokens.push(tokens[index]);
|
|
32
|
+
index += 1;
|
|
33
|
+
}
|
|
34
|
+
if (index < tokens.length) {
|
|
35
|
+
regexTokens.push(tokens[index]);
|
|
36
|
+
index += 1;
|
|
37
|
+
if (/^[igm]+$/u.test(tokens[index] ?? "")) {
|
|
38
|
+
regexTokens.push(tokens[index]);
|
|
39
|
+
index += 1;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const combined = regexTokens.join("");
|
|
43
|
+
if (regexPattern.exec(combined)?.index === 0) {
|
|
44
|
+
result.push(combined);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
result.push(...regexTokens);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
result.push(token);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (token !== undefined) {
|
|
55
|
+
result.push(token);
|
|
56
|
+
}
|
|
57
|
+
index += 1;
|
|
58
|
+
}
|
|
59
|
+
yield* result;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=js-style-regex.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-style-regex.mjs","sourceRoot":"","sources":["../../../../../../src/package-checks/function-metrics/analyzer/shared/js-style-regex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAyB;IACjE,OAAO,QAAQ,CAAC,CAAC,uBAAuB,CACtC,UAAkB,EAClB,QAAQ,GAAG,EAAE,EACb,YAA2B;QAE3B,MAAM,YAAY,GAAG,4BAA4B,CAAC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAChD,MAAM,OAAO,GACX,KAAK,KAAK,CAAC;oBACX,CAAC,aAAa,KAAK,SAAS;wBAC1B,aAAa,CAAC,MAAM,GAAG,CAAC;wBACxB,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxD,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5B,KAAK,IAAI,CAAC,CAAC;oBACX,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7D,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAChC,KAAK,IAAI,CAAC,CAAC;oBACb,CAAC;oBACD,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;wBAC1B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAChC,KAAK,IAAI,CAAC,CAAC;wBACX,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;4BAC1C,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;4BAChC,KAAK,IAAI,CAAC,CAAC;wBACb,CAAC;oBACH,CAAC;oBACD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtC,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;wBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,KAAK,CAAC,CAAC,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Derived from terryyin/lizard 1.24.0.\n * Source: lizard_languages/js_style_regex_expression.py.\n * Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.\n * SPDX-License-Identifier: MIT\n * Modified: translated to a TypeScript tokenizer wrapper while preserving the\n * upstream eager regex-token combination order.\n */\n\nimport type { TokenFactory } from \"./code-reader.ts\";\n\n/** A static reader tokenizer shape accepted by the JavaScript regex wrapper. */\nexport type TokenGenerator = (\n sourceCode: string,\n addition?: string,\n tokenFactory?: TokenFactory\n) => Generator<string>;\n\n/**\n * Wrap a tokenizer with Lizard's JavaScript-style regular-expression joining.\n * The final index advance intentionally mirrors the upstream implementation.\n */\nexport function js_style_regex_expression(generator: TokenGenerator): TokenGenerator {\n return function* generateTokensWithRegex(\n sourceCode: string,\n addition = \"\",\n tokenFactory?: TokenFactory\n ): Generator<string> {\n const regexPattern = /\\/(\\S*?[^\\s\\\\]\\/)+?(igm)*/u;\n const tokens = Array.from(generator(sourceCode, addition, tokenFactory));\n const result: string[] = [];\n let index = 0;\n\n while (index < tokens.length) {\n const token = tokens[index];\n if (token === \"/\") {\n const previousToken = tokens[index - 1]?.trim();\n const isRegex =\n index === 0 ||\n (previousToken !== undefined &&\n previousToken.length > 0 &&\n \"=,({[?:!&|;\".includes(previousToken.at(-1) ?? \"\"));\n if (isRegex) {\n const regexTokens = [token];\n index += 1;\n while (index < tokens.length && !tokens[index].endsWith(\"/\")) {\n regexTokens.push(tokens[index]);\n index += 1;\n }\n if (index < tokens.length) {\n regexTokens.push(tokens[index]);\n index += 1;\n if (/^[igm]+$/u.test(tokens[index] ?? \"\")) {\n regexTokens.push(tokens[index]);\n index += 1;\n }\n }\n const combined = regexTokens.join(\"\");\n if (regexPattern.exec(combined)?.index === 0) {\n result.push(combined);\n } else {\n result.push(...regexTokens);\n }\n } else {\n result.push(token);\n }\n } else if (token !== undefined) {\n result.push(token);\n }\n index += 1;\n }\n\n yield* result;\n };\n}\n"]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived from terryyin/lizard 1.24.0.
|
|
3
|
+
* Source: lizard_languages/rubylike.py.
|
|
4
|
+
* Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
* Modified: translated to TypeScript with source-aligned nested-state and
|
|
7
|
+
* callback sequencing for Ruby-like readers.
|
|
8
|
+
*/
|
|
9
|
+
import { CodeReader, CodeStateMachine } from "./code-reader.mjs";
|
|
10
|
+
import { ScriptLanguageMixIn } from "./script-language.mjs";
|
|
11
|
+
/** The embedded-document substate from the upstream module. */
|
|
12
|
+
export function state_embedded_doc(token) {
|
|
13
|
+
return token === "=end";
|
|
14
|
+
}
|
|
15
|
+
/** Shared function/block state machine for Ruby-like languages. */
|
|
16
|
+
export class RubylikeStateMachine extends CodeStateMachine {
|
|
17
|
+
static FUNC_KEYWORD = "def";
|
|
18
|
+
constructor(context) {
|
|
19
|
+
super(context);
|
|
20
|
+
}
|
|
21
|
+
_state_global(token) {
|
|
22
|
+
if (token === "end" || token === "}") {
|
|
23
|
+
this.returnFromState();
|
|
24
|
+
}
|
|
25
|
+
else if (token === this.getFunctionKeyword()) {
|
|
26
|
+
this.next(this._def);
|
|
27
|
+
}
|
|
28
|
+
else if (token === "it") {
|
|
29
|
+
this.next(this._it);
|
|
30
|
+
}
|
|
31
|
+
else if (["begin", "do", "class", "module", "{", "${"].includes(token) &&
|
|
32
|
+
this.lastToken !== ".") {
|
|
33
|
+
this.subState(this.cloneState());
|
|
34
|
+
}
|
|
35
|
+
else if (["while", "for"].includes(token)) {
|
|
36
|
+
if (this.is_newline())
|
|
37
|
+
this.next(this._for_while);
|
|
38
|
+
}
|
|
39
|
+
else if (["if", "unless"].includes(token)) {
|
|
40
|
+
if (this.is_newline()) {
|
|
41
|
+
this.subState(this.cloneState());
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.next(this._if);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (token === "=begin") {
|
|
48
|
+
this.subState(state_embedded_doc);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
is_newline() {
|
|
52
|
+
return this.context.newline || this.lastToken === ";";
|
|
53
|
+
}
|
|
54
|
+
getFunctionKeyword() {
|
|
55
|
+
const StateMachine = this.stateMachineConstructor;
|
|
56
|
+
if (!hasFunctionKeyword(StateMachine))
|
|
57
|
+
return RubylikeStateMachine.FUNC_KEYWORD;
|
|
58
|
+
const keyword = StateMachine.FUNC_KEYWORD;
|
|
59
|
+
return typeof keyword === "string" ? keyword : RubylikeStateMachine.FUNC_KEYWORD;
|
|
60
|
+
}
|
|
61
|
+
/** Source `_def` seam used by Lua's `_anonymous_def` transition. */
|
|
62
|
+
_def = (token) => {
|
|
63
|
+
if (token === "(") {
|
|
64
|
+
this.context.pushNewFunction("(anonymous)");
|
|
65
|
+
this.next(this._def_parameters);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.context.pushNewFunction(token);
|
|
69
|
+
this.next(this._def_continue);
|
|
70
|
+
};
|
|
71
|
+
_it = (token) => {
|
|
72
|
+
if (token === "do" || token === "{") {
|
|
73
|
+
this.context.pushNewFunction(this.lastToken ?? "");
|
|
74
|
+
this.next(this._def_continue);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
/** Source `_def_continue` seam used by Lua _defs. */
|
|
78
|
+
_def_continue = (token) => {
|
|
79
|
+
const finishDefinition = () => {
|
|
80
|
+
this.context.endOfFunction();
|
|
81
|
+
this.next(this.globalState);
|
|
82
|
+
};
|
|
83
|
+
if (token === ".") {
|
|
84
|
+
this.context.addToFunctionName(token);
|
|
85
|
+
this.next(this._def_class_method);
|
|
86
|
+
}
|
|
87
|
+
else if (token === "(") {
|
|
88
|
+
this.next(this._def_parameters);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.subState(this.cloneState(), finishDefinition, token);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
/** Source `_def_class_method` seam used by Lua _defs. */
|
|
95
|
+
_def_class_method = (token) => {
|
|
96
|
+
this.context.addToFunctionName(token);
|
|
97
|
+
this.next(this._def_continue);
|
|
98
|
+
};
|
|
99
|
+
/** Source `_def_parameters` seam used by Lua's `_anonymous_def` transition. */
|
|
100
|
+
_def_parameters = (token) => {
|
|
101
|
+
if (token === ")") {
|
|
102
|
+
this.next(this._def_continue);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.context.parameter(token);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.context.addToLongFunctionName(` ${token}`);
|
|
109
|
+
};
|
|
110
|
+
_if = (token) => {
|
|
111
|
+
if (this.is_newline()) {
|
|
112
|
+
this.next(this.globalState, token);
|
|
113
|
+
}
|
|
114
|
+
else if (token === "then") {
|
|
115
|
+
this.next(this.globalState);
|
|
116
|
+
this.subState(this.cloneState());
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
_for_while = (token) => {
|
|
120
|
+
if (this.is_newline() || token === "do") {
|
|
121
|
+
this.next(this.globalState);
|
|
122
|
+
if (token !== "end")
|
|
123
|
+
this.subState(this.cloneState());
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** Shared reader configuration for Ruby-like languages. */
|
|
128
|
+
export class RubylikeReader extends CodeReader {
|
|
129
|
+
static controlFlowKeywords = new Set([
|
|
130
|
+
"if",
|
|
131
|
+
"elsif",
|
|
132
|
+
"elseif",
|
|
133
|
+
"until",
|
|
134
|
+
"for",
|
|
135
|
+
"while",
|
|
136
|
+
"rescue",
|
|
137
|
+
"ensure",
|
|
138
|
+
"when"
|
|
139
|
+
]);
|
|
140
|
+
static logicalOperators = new Set(["and", "or", "||", "&&"]);
|
|
141
|
+
static caseKeywords = new Set();
|
|
142
|
+
static ternaryOperators = new Set(["?"]);
|
|
143
|
+
constructor(context) {
|
|
144
|
+
super(context);
|
|
145
|
+
this.parallelStates = [new RubylikeStateMachine(context)];
|
|
146
|
+
}
|
|
147
|
+
get_comment_from_token(token) {
|
|
148
|
+
return ScriptLanguageMixIn.get_comment_from_token(token);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function hasFunctionKeyword(value) {
|
|
152
|
+
return "FUNC_KEYWORD" in value;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=rubylike.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rubylike.mjs","sourceRoot":"","sources":["../../../../../../src/package-checks/function-metrics/analyzer/shared/rubylike.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Derived from terryyin/lizard 1.24.0.\n * Source: lizard_languages/rubylike.py.\n * Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.\n * SPDX-License-Identifier: MIT\n * Modified: translated to TypeScript with source-aligned nested-state and\n * callback sequencing for Ruby-like readers.\n */\n\nimport type { FileInfoBuilder } from \"../analysis-context.ts\";\nimport { CodeReader, CodeStateMachine } from \"./code-reader.ts\";\nimport { ScriptLanguageMixIn } from \"./script-language.ts\";\n\n/** The embedded-document substate from the upstream module. */\nexport function state_embedded_doc(token: string): boolean {\n return token === \"=end\";\n}\n\n/** Shared function/block state machine for Ruby-like languages. */\nexport class RubylikeStateMachine extends CodeStateMachine {\n protected static readonly FUNC_KEYWORD: string = \"def\";\n\n public constructor(context: FileInfoBuilder) {\n super(context);\n }\n\n public override _state_global(token: string): void {\n if (token === \"end\" || token === \"}\") {\n this.returnFromState();\n } else if (token === this.getFunctionKeyword()) {\n this.next(this._def);\n } else if (token === \"it\") {\n this.next(this._it);\n } else if (\n [\"begin\", \"do\", \"class\", \"module\", \"{\", \"${\"].includes(token) &&\n this.lastToken !== \".\"\n ) {\n this.subState(this.cloneState());\n } else if ([\"while\", \"for\"].includes(token)) {\n if (this.is_newline()) this.next(this._for_while);\n } else if ([\"if\", \"unless\"].includes(token)) {\n if (this.is_newline()) {\n this.subState(this.cloneState());\n } else {\n this.next(this._if);\n }\n } else if (token === \"=begin\") {\n this.subState(state_embedded_doc);\n }\n }\n\n public is_newline(): boolean {\n return this.context.newline || this.lastToken === \";\";\n }\n\n private getFunctionKeyword(): string {\n const StateMachine = this.stateMachineConstructor;\n if (!hasFunctionKeyword(StateMachine)) return RubylikeStateMachine.FUNC_KEYWORD;\n const keyword = StateMachine.FUNC_KEYWORD;\n return typeof keyword === \"string\" ? keyword : RubylikeStateMachine.FUNC_KEYWORD;\n }\n\n /** Source `_def` seam used by Lua's `_anonymous_def` transition. */\n protected readonly _def = (token: string): void => {\n if (token === \"(\") {\n this.context.pushNewFunction(\"(anonymous)\");\n this.next(this._def_parameters);\n return;\n }\n this.context.pushNewFunction(token);\n this.next(this._def_continue);\n };\n\n private readonly _it = (token: string): void => {\n if (token === \"do\" || token === \"{\") {\n this.context.pushNewFunction(this.lastToken ?? \"\");\n this.next(this._def_continue);\n }\n };\n\n /** Source `_def_continue` seam used by Lua _defs. */\n protected readonly _def_continue = (token: string): void => {\n const finishDefinition = (): void => {\n this.context.endOfFunction();\n this.next(this.globalState);\n };\n\n if (token === \".\") {\n this.context.addToFunctionName(token);\n this.next(this._def_class_method);\n } else if (token === \"(\") {\n this.next(this._def_parameters);\n } else {\n this.subState(this.cloneState(), finishDefinition, token);\n }\n };\n\n /** Source `_def_class_method` seam used by Lua _defs. */\n protected readonly _def_class_method = (token: string): void => {\n this.context.addToFunctionName(token);\n this.next(this._def_continue);\n };\n\n /** Source `_def_parameters` seam used by Lua's `_anonymous_def` transition. */\n protected readonly _def_parameters = (token: string): void => {\n if (token === \")\") {\n this.next(this._def_continue);\n } else {\n this.context.parameter(token);\n return;\n }\n this.context.addToLongFunctionName(` ${token}`);\n };\n\n private readonly _if = (token: string): void => {\n if (this.is_newline()) {\n this.next(this.globalState, token);\n } else if (token === \"then\") {\n this.next(this.globalState);\n this.subState(this.cloneState());\n }\n };\n\n private readonly _for_while = (token: string): void => {\n if (this.is_newline() || token === \"do\") {\n this.next(this.globalState);\n if (token !== \"end\") this.subState(this.cloneState());\n }\n };\n}\n\n/** Shared reader configuration for Ruby-like languages. */\nexport class RubylikeReader extends CodeReader {\n public static override controlFlowKeywords: ReadonlySet<string> = new Set([\n \"if\",\n \"elsif\",\n \"elseif\",\n \"until\",\n \"for\",\n \"while\",\n \"rescue\",\n \"ensure\",\n \"when\"\n ]);\n public static override logicalOperators: ReadonlySet<string> = new Set([\"and\", \"or\", \"||\", \"&&\"]);\n public static override caseKeywords: ReadonlySet<string> = new Set();\n public static override ternaryOperators: ReadonlySet<string> = new Set([\"?\"]);\n\n public constructor(context: FileInfoBuilder) {\n super(context);\n this.parallelStates = [new RubylikeStateMachine(context)];\n }\n\n public override get_comment_from_token(token: string): string | undefined {\n return ScriptLanguageMixIn.get_comment_from_token(token);\n }\n}\n\nfunction hasFunctionKeyword(value: object): value is { readonly FUNC_KEYWORD?: unknown } {\n return \"FUNC_KEYWORD\" in value;\n}\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived from terryyin/lizard 1.24.0.
|
|
3
|
+
* Source: lizard_languages/script_language.py.
|
|
4
|
+
* Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
* Modified: translated to TypeScript while retaining the source mixin's
|
|
7
|
+
* static comment and tokenizer members.
|
|
8
|
+
*/
|
|
9
|
+
import { CodeReader } from "./code-reader.mjs";
|
|
10
|
+
/** Common comment extraction and tokenization used by script-language readers. */
|
|
11
|
+
export class ScriptLanguageMixIn {
|
|
12
|
+
static get_comment_from_token(token) {
|
|
13
|
+
if (!token.startsWith("#"))
|
|
14
|
+
return undefined;
|
|
15
|
+
const stripped = token.replace(/^#+/u, "").trim();
|
|
16
|
+
if (stripped.startsWith("lizard forgive global") ||
|
|
17
|
+
stripped.startsWith("#lizard forgive global")) {
|
|
18
|
+
return "#lizard forgive global";
|
|
19
|
+
}
|
|
20
|
+
if (stripped.startsWith("lizard forgive") || stripped.startsWith("#lizard forgive")) {
|
|
21
|
+
return "#lizard forgive";
|
|
22
|
+
}
|
|
23
|
+
return stripped;
|
|
24
|
+
}
|
|
25
|
+
static generate_common_tokens(sourceCode, addition, tokenFactory) {
|
|
26
|
+
return CodeReader.generateTokens(sourceCode, String.raw `|#[^\n]*${addition}`, tokenFactory);
|
|
27
|
+
}
|
|
28
|
+
/** TS-facing call sites share the source methods' implementations. */
|
|
29
|
+
static getCommentFromToken(token) {
|
|
30
|
+
return this.get_comment_from_token(token);
|
|
31
|
+
}
|
|
32
|
+
static generateCommonTokens(sourceCode, addition, tokenFactory) {
|
|
33
|
+
return this.generate_common_tokens(sourceCode, addition, tokenFactory);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=script-language.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-language.mjs","sourceRoot":"","sources":["../../../../../../src/package-checks/function-metrics/analyzer/shared/script-language.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AAEjE,kFAAkF;AAClF,MAAM,OAAO,mBAAmB;IACvB,MAAM,CAAC,sBAAsB,CAAC,KAAa;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QAE7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IACE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;YAC5C,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAC7C,CAAC;YACD,OAAO,wBAAwB,CAAC;QAClC,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpF,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAClC,UAAkB,EAClB,QAAgB,EAChB,YAA2B;QAE3B,OAAO,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAA,WAAW,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IAC9F,CAAC;IAED,sEAAsE;IAC/D,MAAM,CAAC,mBAAmB,CAAC,KAAa;QAC7C,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAChC,UAAkB,EAClB,QAAgB,EAChB,YAA2B;QAE3B,OAAO,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC;CACF","sourcesContent":["/**\n * Derived from terryyin/lizard 1.24.0.\n * Source: lizard_languages/script_language.py.\n * Upstream revision: 308b1c3efd8c1c69bcc3eb82deeaec64fd3662ec.\n * SPDX-License-Identifier: MIT\n * Modified: translated to TypeScript while retaining the source mixin's\n * static comment and tokenizer members.\n */\n\nimport { CodeReader, type TokenFactory } from \"./code-reader.ts\";\n\n/** Common comment extraction and tokenization used by script-language readers. */\nexport class ScriptLanguageMixIn {\n public static get_comment_from_token(token: string): string | undefined {\n if (!token.startsWith(\"#\")) return undefined;\n\n const stripped = token.replace(/^#+/u, \"\").trim();\n if (\n stripped.startsWith(\"lizard forgive global\") ||\n stripped.startsWith(\"#lizard forgive global\")\n ) {\n return \"#lizard forgive global\";\n }\n if (stripped.startsWith(\"lizard forgive\") || stripped.startsWith(\"#lizard forgive\")) {\n return \"#lizard forgive\";\n }\n return stripped;\n }\n\n public static generate_common_tokens(\n sourceCode: string,\n addition: string,\n tokenFactory?: TokenFactory\n ): Generator<string> {\n return CodeReader.generateTokens(sourceCode, String.raw`|#[^\\n]*${addition}`, tokenFactory);\n }\n\n /** TS-facing call sites share the source methods' implementations. */\n public static getCommentFromToken(token: string): string | undefined {\n return this.get_comment_from_token(token);\n }\n\n public static generateCommonTokens(\n sourceCode: string,\n addition: string,\n tokenFactory?: TokenFactory\n ): Generator<string> {\n return this.generate_common_tokens(sourceCode, addition, tokenFactory);\n }\n}\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { analyzeLizardSource, isLizardSourceSupported, lizardSourceExtensions } from "./analyzer/port-facade.mjs";
|
|
2
|
+
/** The translated port's fixed suffix capability, presented for functionMetrics selection. */
|
|
3
|
+
export const FUNCTION_METRICS_SUPPORTED_FILE_EXTENSIONS = Object.freeze([
|
|
4
|
+
...lizardSourceExtensions()
|
|
5
|
+
]);
|
|
6
|
+
/** Whether a Product-selected path is supported by the translated Lizard port. */
|
|
7
|
+
export function isFunctionMetricsAnalyzerSourceSupported(filePath) {
|
|
8
|
+
return isLizardSourceSupported(filePath);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Maps complete Lizard-domain analyses into the Product's function metrics.
|
|
12
|
+
* An unsupported source or analyzer exception discards every collected metric.
|
|
13
|
+
*/
|
|
14
|
+
export function analyzeFunctionMetricsSources(input) {
|
|
15
|
+
try {
|
|
16
|
+
const metrics = [];
|
|
17
|
+
for (const sourceFile of input.files) {
|
|
18
|
+
const analysis = analyzeLizardSource({
|
|
19
|
+
filename: sourceFile.path,
|
|
20
|
+
sourceCode: sourceFile.source
|
|
21
|
+
});
|
|
22
|
+
if (analysis === undefined)
|
|
23
|
+
return analysisFailed();
|
|
24
|
+
for (const functionInfo of analysis.function_list) {
|
|
25
|
+
metrics.push(toFunctionMetric(sourceFile.path, functionInfo));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return Object.freeze({ kind: "complete", metrics: Object.freeze(metrics) });
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return analysisFailed();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function analysisFailed() {
|
|
35
|
+
return Object.freeze({ kind: "analysis-failed" });
|
|
36
|
+
}
|
|
37
|
+
function toFunctionMetric(filePath, functionInfo) {
|
|
38
|
+
return Object.freeze({
|
|
39
|
+
complexityContributors: Object.freeze(functionInfo.complex_tags.map(([token, line]) => Object.freeze({ line, token }))),
|
|
40
|
+
cyclomaticComplexity: Object.freeze({
|
|
41
|
+
source: "typescript-analyzer",
|
|
42
|
+
value: functionInfo.cyclomatic_complexity
|
|
43
|
+
}),
|
|
44
|
+
endLine: functionInfo.end_line,
|
|
45
|
+
file: filePath,
|
|
46
|
+
lines: functionInfo.nloc,
|
|
47
|
+
name: functionInfo.name,
|
|
48
|
+
nestingDepth: Object.freeze({
|
|
49
|
+
source: "typescript-analyzer",
|
|
50
|
+
value: functionInfo.max_nesting_depth
|
|
51
|
+
}),
|
|
52
|
+
parameterCount: functionInfo.parameter_count,
|
|
53
|
+
startLine: functionInfo.start_line
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=analyzer-adapter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer-adapter.mjs","sourceRoot":"","sources":["../../../../src/package-checks/function-metrics/analyzer-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EAEvB,MAAM,2BAA2B,CAAC;AAmBnC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,0CAA0C,GAAG,MAAM,CAAC,MAAM,CAAC;IACtE,GAAG,sBAAsB,EAAE;CAC5B,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,UAAU,wCAAwC,CAAC,QAAgB;IACvE,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;gBACnC,QAAQ,EAAE,UAAU,CAAC,IAAI;gBACzB,UAAU,EAAE,UAAU,CAAC,MAAM;aAC9B,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,cAAc,EAAE,CAAC;YACpD,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,YAAgC;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,sBAAsB,EAAE,MAAM,CAAC,MAAM,CACnC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CACjF;QACD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC;YAClC,MAAM,EAAE,qBAA8B;YACtC,KAAK,EAAE,YAAY,CAAC,qBAAqB;SAC1C,CAAC;QACF,OAAO,EAAE,YAAY,CAAC,QAAQ;QAC9B,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,YAAY,CAAC,IAAI;QACxB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YAC1B,MAAM,EAAE,qBAA8B;YACtC,KAAK,EAAE,YAAY,CAAC,iBAAiB;SACtC,CAAC;QACF,cAAc,EAAE,YAAY,CAAC,eAAe;QAC5C,SAAS,EAAE,YAAY,CAAC,UAAU;KACnC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n analyzeLizardSource,\n isLizardSourceSupported,\n lizardSourceExtensions,\n type LizardFunctionInfo\n} from \"./analyzer/port-facade.ts\";\nimport type { FunctionMetric } from \"./measurement-model.ts\";\n\n/** One parent-admitted source passed through the Product adapter to the Lizard port. */\nexport interface FunctionMetricsAnalyzerSource {\n readonly path: string;\n readonly source: string;\n}\n\n/** The complete in-memory source batch that one Worker asks the adapter to analyze. */\nexport interface FunctionMetricsAnalyzerInput {\n readonly files: readonly FunctionMetricsAnalyzerSource[];\n}\n\n/** Product-facing result of a complete adapter analysis; failures never carry a prefix. */\nexport type FunctionMetricsAnalyzerResult =\n | Readonly<{ readonly kind: \"analysis-failed\" }>\n | Readonly<{ readonly kind: \"complete\"; readonly metrics: readonly FunctionMetric[] }>;\n\n/** The translated port's fixed suffix capability, presented for functionMetrics selection. */\nexport const FUNCTION_METRICS_SUPPORTED_FILE_EXTENSIONS = Object.freeze([\n ...lizardSourceExtensions()\n]);\n\n/** Whether a Product-selected path is supported by the translated Lizard port. */\nexport function isFunctionMetricsAnalyzerSourceSupported(filePath: string): boolean {\n return isLizardSourceSupported(filePath);\n}\n\n/**\n * Maps complete Lizard-domain analyses into the Product's function metrics.\n * An unsupported source or analyzer exception discards every collected metric.\n */\nexport function analyzeFunctionMetricsSources(\n input: FunctionMetricsAnalyzerInput\n): FunctionMetricsAnalyzerResult {\n try {\n const metrics: FunctionMetric[] = [];\n for (const sourceFile of input.files) {\n const analysis = analyzeLizardSource({\n filename: sourceFile.path,\n sourceCode: sourceFile.source\n });\n if (analysis === undefined) return analysisFailed();\n for (const functionInfo of analysis.function_list) {\n metrics.push(toFunctionMetric(sourceFile.path, functionInfo));\n }\n }\n return Object.freeze({ kind: \"complete\", metrics: Object.freeze(metrics) });\n } catch {\n return analysisFailed();\n }\n}\n\nfunction analysisFailed(): FunctionMetricsAnalyzerResult {\n return Object.freeze({ kind: \"analysis-failed\" });\n}\n\nfunction toFunctionMetric(filePath: string, functionInfo: LizardFunctionInfo): FunctionMetric {\n return Object.freeze({\n complexityContributors: Object.freeze(\n functionInfo.complex_tags.map(([token, line]) => Object.freeze({ line, token }))\n ),\n cyclomaticComplexity: Object.freeze({\n source: \"typescript-analyzer\" as const,\n value: functionInfo.cyclomatic_complexity\n }),\n endLine: functionInfo.end_line,\n file: filePath,\n lines: functionInfo.nloc,\n name: functionInfo.name,\n nestingDepth: Object.freeze({\n source: \"typescript-analyzer\" as const,\n value: functionInfo.max_nesting_depth\n }),\n parameterCount: functionInfo.parameter_count,\n startLine: functionInfo.start_line\n });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer-worker-contract.mjs","sourceRoot":"","sources":["../../../../src/package-checks/function-metrics/analyzer-worker-contract.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n FunctionMetricsAnalyzerInput,\n FunctionMetricsAnalyzerResult\n} from \"./analyzer-adapter.ts\";\n\n/** Exact, already-admitted source texts passed from one functionMetrics Check to its Worker. */\nexport type FunctionMetricsAnalysisWorkerRequest = FunctionMetricsAnalyzerInput;\n\n/** The one-shot Worker response; errors never carry partial measurements. */\nexport type FunctionMetricsAnalysisWorkerResponse = FunctionMetricsAnalyzerResult;\n"]}
|