@aster-cloud/aster-lang-ts 1.5.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/scripts/aster.js +5 -12
- package/dist/scripts/aster.js.map +1 -1
- package/dist/scripts/emit-classfiles.js +3 -1
- package/dist/scripts/emit-classfiles.js.map +1 -1
- package/dist/scripts/generate-core-ir-types.d.ts +16 -0
- package/dist/scripts/generate-core-ir-types.d.ts.map +1 -0
- package/dist/scripts/generate-core-ir-types.js +116 -0
- package/dist/scripts/generate-core-ir-types.js.map +1 -0
- package/dist/scripts/golden.js +1 -1
- package/dist/scripts/golden.js.map +1 -1
- package/dist/src/ast/ast_visitor.d.ts +27 -27
- package/dist/src/ast/ast_visitor.d.ts.map +1 -1
- package/dist/src/ast/ast_visitor.js.map +1 -1
- package/dist/src/browser.d.ts +7 -0
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +6 -1
- package/dist/src/browser.js.map +1 -1
- package/dist/src/cli/policy-converter.js +6 -10
- package/dist/src/cli/policy-converter.js.map +1 -1
- package/dist/src/cli/utils/core-ir-file.d.ts +8 -0
- package/dist/src/cli/utils/core-ir-file.d.ts.map +1 -0
- package/dist/src/cli/utils/core-ir-file.js +29 -0
- package/dist/src/cli/utils/core-ir-file.js.map +1 -0
- package/dist/src/cnl-printer.d.ts.map +1 -1
- package/dist/src/cnl-printer.js +13 -3
- package/dist/src/cnl-printer.js.map +1 -1
- package/dist/src/compile-pipeline.js +1 -1
- package/dist/src/compile-pipeline.js.map +1 -1
- package/dist/src/config/lexicons/diagnostic-overlays.generated.d.ts.map +1 -1
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js +18 -6
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js.map +1 -1
- package/dist/src/core/canonical-decimal.d.ts +3 -0
- package/dist/src/core/canonical-decimal.d.ts.map +1 -0
- package/dist/src/core/canonical-decimal.js +19 -0
- package/dist/src/core/canonical-decimal.js.map +1 -0
- package/dist/src/core/canonical-json.d.ts +59 -0
- package/dist/src/core/canonical-json.d.ts.map +1 -0
- package/dist/src/core/canonical-json.js +250 -0
- package/dist/src/core/canonical-json.js.map +1 -0
- package/dist/src/core/core-ir-v2.generated.d.ts +807 -0
- package/dist/src/core/core-ir-v2.generated.d.ts.map +1 -0
- package/dist/src/core/core-ir-v2.generated.js +6 -0
- package/dist/src/core/core-ir-v2.generated.js.map +1 -0
- package/dist/src/core/core-ir-v2.schema.generated.d.ts +6 -0
- package/dist/src/core/core-ir-v2.schema.generated.d.ts.map +1 -0
- package/dist/src/core/core-ir-v2.schema.generated.js +2636 -0
- package/dist/src/core/core-ir-v2.schema.generated.js.map +1 -0
- package/dist/src/core/core_ir.d.ts +27 -11
- package/dist/src/core/core_ir.d.ts.map +1 -1
- package/dist/src/core/core_ir.js +118 -63
- package/dist/src/core/core_ir.js.map +1 -1
- package/dist/src/core/index.d.ts +4 -3
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +3 -2
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/inferred_fields.d.ts +9 -11
- package/dist/src/core/inferred_fields.d.ts.map +1 -1
- package/dist/src/core/inferred_fields.js +7 -28
- package/dist/src/core/inferred_fields.js.map +1 -1
- package/dist/src/core/interpreter.js +16 -35
- package/dist/src/core/interpreter.js.map +1 -1
- package/dist/src/core/pretty_core.d.ts.map +1 -1
- package/dist/src/core/pretty_core.js +6 -10
- package/dist/src/core/pretty_core.js.map +1 -1
- package/dist/src/core/read-core-ir.d.ts +15 -0
- package/dist/src/core/read-core-ir.d.ts.map +1 -0
- package/dist/src/core/read-core-ir.js +69 -0
- package/dist/src/core/read-core-ir.js.map +1 -0
- package/dist/src/core/resolution-mark.d.ts +3 -4
- package/dist/src/core/resolution-mark.d.ts.map +1 -1
- package/dist/src/core/resolution-mark.js +2 -3
- package/dist/src/core/resolution-mark.js.map +1 -1
- package/dist/src/core/resolve-typed-references.d.ts.map +1 -1
- package/dist/src/core/resolve-typed-references.js +11 -27
- package/dist/src/core/resolve-typed-references.js.map +1 -1
- package/dist/src/core/serialize-core-ir.d.ts +13 -0
- package/dist/src/core/serialize-core-ir.d.ts.map +1 -0
- package/dist/src/core/serialize-core-ir.js +125 -0
- package/dist/src/core/serialize-core-ir.js.map +1 -0
- package/dist/src/core/visitor.d.ts.map +1 -1
- package/dist/src/core/visitor.js +4 -1
- package/dist/src/core/visitor.js.map +1 -1
- package/dist/src/diagnostics/error_codes.d.ts +2 -0
- package/dist/src/diagnostics/error_codes.d.ts.map +1 -1
- package/dist/src/diagnostics/error_codes.js +16 -0
- package/dist/src/diagnostics/error_codes.js.map +1 -1
- package/dist/src/effects/declared-effects.d.ts +17 -0
- package/dist/src/effects/declared-effects.d.ts.map +1 -0
- package/dist/src/effects/declared-effects.js +27 -0
- package/dist/src/effects/declared-effects.js.map +1 -0
- package/dist/src/effects/effect_inference.d.ts.map +1 -1
- package/dist/src/effects/effect_inference.js +14 -10
- package/dist/src/effects/effect_inference.js.map +1 -1
- package/dist/src/effects/effect_inference_browser.d.ts.map +1 -1
- package/dist/src/effects/effect_inference_browser.js +14 -9
- package/dist/src/effects/effect_inference_browser.js.map +1 -1
- package/dist/src/frontend/keyword-translator.d.ts.map +1 -1
- package/dist/src/frontend/keyword-translator.js +3 -0
- package/dist/src/frontend/keyword-translator.js.map +1 -1
- package/dist/src/frontend/lexer.d.ts.map +1 -1
- package/dist/src/frontend/lexer.js +7 -3
- package/dist/src/frontend/lexer.js.map +1 -1
- package/dist/src/frontend/resolve-declarations.d.ts.map +1 -1
- package/dist/src/frontend/resolve-declarations.js +3 -23
- package/dist/src/frontend/resolve-declarations.js.map +1 -1
- package/dist/src/governance/controls-registry.data.js +2 -2
- package/dist/src/governance/controls-registry.data.js.map +1 -1
- package/dist/src/governance/input-refs.js +5 -8
- package/dist/src/governance/input-refs.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jvm/emitter.d.ts.map +1 -1
- package/dist/src/jvm/emitter.js +20 -29
- package/dist/src/jvm/emitter.js.map +1 -1
- package/dist/src/lower_to_core.d.ts +2 -1
- package/dist/src/lower_to_core.d.ts.map +1 -1
- package/dist/src/lower_to_core.js +150 -300
- package/dist/src/lower_to_core.js.map +1 -1
- package/dist/src/lsp/pii_diagnostics.d.ts.map +1 -1
- package/dist/src/lsp/pii_diagnostics.js +3 -8
- package/dist/src/lsp/pii_diagnostics.js.map +1 -1
- package/dist/src/mapping/mapping-ir.d.ts +3 -3
- package/dist/src/mapping/mapping-ir.js +3 -3
- package/dist/src/nodeid/node-id-map.d.ts +6 -15
- package/dist/src/nodeid/node-id-map.d.ts.map +1 -1
- package/dist/src/nodeid/node-id-map.js +6 -15
- package/dist/src/nodeid/node-id-map.js.map +1 -1
- package/dist/src/parser/constraint-parser.js +25 -6
- package/dist/src/parser/constraint-parser.js.map +1 -1
- package/dist/src/parser/decl-parser.d.ts.map +1 -1
- package/dist/src/parser/decl-parser.js +30 -59
- package/dist/src/parser/decl-parser.js.map +1 -1
- package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
- package/dist/src/parser/expr-stmt-parser.js +3 -2
- package/dist/src/parser/expr-stmt-parser.js.map +1 -1
- package/dist/src/parser/field-variant-parser.d.ts.map +1 -1
- package/dist/src/parser/field-variant-parser.js +6 -0
- package/dist/src/parser/field-variant-parser.js.map +1 -1
- package/dist/src/parser/parse-issue.d.ts +2 -0
- package/dist/src/parser/parse-issue.d.ts.map +1 -1
- package/dist/src/parser/parse-issue.js +2 -0
- package/dist/src/parser/parse-issue.js.map +1 -1
- package/dist/src/parser/type-parser.d.ts +1 -1
- package/dist/src/parser/type-parser.d.ts.map +1 -1
- package/dist/src/parser/type-parser.js +19 -2
- package/dist/src/parser/type-parser.js.map +1 -1
- package/dist/src/stability/stability_gate.d.ts +1 -1
- package/dist/src/stability/stability_gate.d.ts.map +1 -1
- package/dist/src/stability/stability_gate.js +2 -26
- package/dist/src/stability/stability_gate.js.map +1 -1
- package/dist/src/typecheck/async.d.ts.map +1 -1
- package/dist/src/typecheck/async.js +4 -1
- package/dist/src/typecheck/async.js.map +1 -1
- package/dist/src/typecheck/browser.d.ts.map +1 -1
- package/dist/src/typecheck/browser.js +4 -3
- package/dist/src/typecheck/browser.js.map +1 -1
- package/dist/src/typecheck/capabilities.d.ts.map +1 -1
- package/dist/src/typecheck/capabilities.js +3 -2
- package/dist/src/typecheck/capabilities.js.map +1 -1
- package/dist/src/typecheck/context.d.ts +5 -5
- package/dist/src/typecheck/context.d.ts.map +1 -1
- package/dist/src/typecheck/context.js.map +1 -1
- package/dist/src/typecheck/diagnostics.d.ts +2 -2
- package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
- package/dist/src/typecheck/diagnostics.js.map +1 -1
- package/dist/src/typecheck/effects.js +7 -7
- package/dist/src/typecheck/effects.js.map +1 -1
- package/dist/src/typecheck/expression.d.ts +4 -4
- package/dist/src/typecheck/expression.d.ts.map +1 -1
- package/dist/src/typecheck/expression.js +1 -1
- package/dist/src/typecheck/expression.js.map +1 -1
- package/dist/src/typecheck/generics.d.ts +2 -2
- package/dist/src/typecheck/generics.d.ts.map +1 -1
- package/dist/src/typecheck/generics.js +23 -12
- package/dist/src/typecheck/generics.js.map +1 -1
- package/dist/src/typecheck/governance.d.ts +1 -1
- package/dist/src/typecheck/governance.d.ts.map +1 -1
- package/dist/src/typecheck/governance.js +1 -1
- package/dist/src/typecheck/governance.js.map +1 -1
- package/dist/src/typecheck/module.d.ts.map +1 -1
- package/dist/src/typecheck/module.js +7 -6
- package/dist/src/typecheck/module.js.map +1 -1
- package/dist/src/typecheck/pattern.d.ts +2 -2
- package/dist/src/typecheck/pattern.d.ts.map +1 -1
- package/dist/src/typecheck/pattern.js +12 -46
- package/dist/src/typecheck/pattern.js.map +1 -1
- package/dist/src/typecheck/pure.d.ts +19 -19
- package/dist/src/typecheck/pure.d.ts.map +1 -1
- package/dist/src/typecheck/pure.js.map +1 -1
- package/dist/src/typecheck/statement.d.ts +6 -6
- package/dist/src/typecheck/statement.d.ts.map +1 -1
- package/dist/src/typecheck/statement.js +17 -20
- package/dist/src/typecheck/statement.js.map +1 -1
- package/dist/src/typecheck/symbol_table.d.ts +2 -2
- package/dist/src/typecheck/symbol_table.d.ts.map +1 -1
- package/dist/src/typecheck/symbol_table.js.map +1 -1
- package/dist/src/typecheck/type_system.d.ts +4 -4
- package/dist/src/typecheck/type_system.d.ts.map +1 -1
- package/dist/src/typecheck/type_system.js +1 -1
- package/dist/src/typecheck/type_system.js.map +1 -1
- package/dist/src/typecheck/workflow.d.ts +3 -3
- package/dist/src/typecheck/workflow.d.ts.map +1 -1
- package/dist/src/typecheck/workflow.js.map +1 -1
- package/dist/src/typecheck-pii.d.ts.map +1 -1
- package/dist/src/typecheck-pii.js +2 -13
- package/dist/src/typecheck-pii.js.map +1 -1
- package/dist/src/types.d.ts +160 -172
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/version.d.ts +3 -3
- package/dist/src/version.js +3 -3
- package/dist/test/helpers/core-ir-v2.d.ts +5 -0
- package/dist/test/helpers/core-ir-v2.d.ts.map +1 -0
- package/dist/test/helpers/core-ir-v2.js +123 -0
- package/dist/test/helpers/core-ir-v2.js.map +1 -0
- package/dist/test/helpers/locales-core-ir.d.ts +7 -0
- package/dist/test/helpers/locales-core-ir.d.ts.map +1 -0
- package/dist/test/helpers/locales-core-ir.js +15 -0
- package/dist/test/helpers/locales-core-ir.js.map +1 -0
- package/dist/test/helpers/test-factories.d.ts +5 -5
- package/dist/test/helpers/test-factories.d.ts.map +1 -1
- package/dist/test/helpers/test-factories.js +9 -8
- package/dist/test/helpers/test-factories.js.map +1 -1
- package/dist/test/integration/pipeline/pipeline.test.js +1 -1
- package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
- package/dist/test/integration/vocabulary-resolution.test.js +1 -1
- package/dist/test/integration/vocabulary-resolution.test.js.map +1 -1
- package/dist/test/regression/type-checker-golden.test.js +1 -1
- package/dist/test/regression/type-checker-golden.test.js.map +1 -1
- package/dist/test/type-checker/pii-propagation.test.js +7 -6
- package/dist/test/type-checker/pii-propagation.test.js.map +1 -1
- package/dist/test/types/core-ir-v2.test-d.d.ts +28 -0
- package/dist/test/types/core-ir-v2.test-d.d.ts.map +1 -0
- package/dist/test/types/core-ir-v2.test-d.js +5 -0
- package/dist/test/types/core-ir-v2.test-d.js.map +1 -0
- package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js +4 -3
- package/dist/test/unit/browser/typecheck-browser-pii-failure.test.js.map +1 -1
- package/dist/test/unit/canonicalizer/article-declaration-names.test.js +1 -1
- package/dist/test/unit/canonicalizer/article-declaration-names.test.js.map +1 -1
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js +2 -1
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js.map +1 -1
- package/dist/test/unit/core/canonical-json.test.d.ts +2 -0
- package/dist/test/unit/core/canonical-json.test.d.ts.map +1 -0
- package/dist/test/unit/core/canonical-json.test.js +38 -0
- package/dist/test/unit/core/canonical-json.test.js.map +1 -0
- package/dist/test/unit/core/caseless-pattern-name.test.js +6 -8
- package/dist/test/unit/core/caseless-pattern-name.test.js.map +1 -1
- package/dist/test/unit/core/core-ir-conformance.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-conformance.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-conformance.test.js +39 -0
- package/dist/test/unit/core/core-ir-conformance.test.js.map +1 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.js +25 -0
- package/dist/test/unit/core/core-ir-schema-parity.test.js.map +1 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts +2 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.d.ts.map +1 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.js +128 -0
- package/dist/test/unit/core/core-ir-v2-outputs.test.js.map +1 -0
- package/dist/test/unit/core/read-core-ir.test.d.ts +2 -0
- package/dist/test/unit/core/read-core-ir.test.d.ts.map +1 -0
- package/dist/test/unit/core/read-core-ir.test.js +129 -0
- package/dist/test/unit/core/read-core-ir.test.js.map +1 -0
- package/dist/test/unit/core/resolve-typed-references.test.js +19 -16
- package/dist/test/unit/core/resolve-typed-references.test.js.map +1 -1
- package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js +5 -5
- package/dist/test/unit/diagnostics/lowering-diagnostics-parity.test.js.map +1 -1
- package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js +3 -2
- package/dist/test/unit/diagnostics/parse-diagnostics-parity.test.js.map +1 -1
- package/dist/test/unit/effect/effect-inference.test.js +17 -13
- package/dist/test/unit/effect/effect-inference.test.js.map +1 -1
- package/dist/test/unit/emitter/emitter.test.js +47 -46
- package/dist/test/unit/emitter/emitter.test.js.map +1 -1
- package/dist/test/unit/formatter-corpus-roundtrip.test.js +5 -1
- package/dist/test/unit/formatter-corpus-roundtrip.test.js.map +1 -1
- package/dist/test/unit/formatter-roundtrip.test.js +5 -4
- package/dist/test/unit/formatter-roundtrip.test.js.map +1 -1
- package/dist/test/unit/frontend/resolve-declarations.test.js +13 -14
- package/dist/test/unit/frontend/resolve-declarations.test.js.map +1 -1
- package/dist/test/unit/governance/governance-check.test.js +1 -1
- package/dist/test/unit/governance/governance-check.test.js.map +1 -1
- package/dist/test/unit/governance/input-refs-parity.test.js +1 -1
- package/dist/test/unit/governance/input-refs-parity.test.js.map +1 -1
- package/dist/test/unit/governance/input-refs.test.js +2 -2
- package/dist/test/unit/governance/input-refs.test.js.map +1 -1
- package/dist/test/unit/governance/no-profile-ir-unchanged.test.js +6 -6
- package/dist/test/unit/governance/no-profile-ir-unchanged.test.js.map +1 -1
- package/dist/test/unit/governance/profile-check.test.js +14 -6
- package/dist/test/unit/governance/profile-check.test.js.map +1 -1
- package/dist/test/unit/interpreter/interpreter.test.js +23 -21
- package/dist/test/unit/interpreter/interpreter.test.js.map +1 -1
- package/dist/test/unit/interpreter/scope-writeback.test.js +28 -27
- package/dist/test/unit/interpreter/scope-writeback.test.js.map +1 -1
- package/dist/test/unit/keyword-aliases.test.js +1 -1
- package/dist/test/unit/lowering/core-ir-v2.test.d.ts +2 -0
- package/dist/test/unit/lowering/core-ir-v2.test.d.ts.map +1 -0
- package/dist/test/unit/lowering/core-ir-v2.test.js +253 -0
- package/dist/test/unit/lowering/core-ir-v2.test.js.map +1 -0
- package/dist/test/unit/lowering/lowering.test.js +19 -14
- package/dist/test/unit/lowering/lowering.test.js.map +1 -1
- package/dist/test/unit/lsp/pii-diagnostics.test.js +33 -30
- package/dist/test/unit/lsp/pii-diagnostics.test.js.map +1 -1
- package/dist/test/unit/lsp/utils.test.js +5 -4
- package/dist/test/unit/lsp/utils.test.js.map +1 -1
- package/dist/test/unit/parser/effect-unknown-name.test.js +7 -7
- package/dist/test/unit/parser/effect-unknown-name.test.js.map +1 -1
- package/dist/test/unit/parser/entry-annotations.test.js +2 -1
- package/dist/test/unit/parser/entry-annotations.test.js.map +1 -1
- package/dist/test/unit/parser/func-type.test.js +3 -3
- package/dist/test/unit/parser/func-type.test.js.map +1 -1
- package/dist/test/unit/parser/governance-sugar.test.js +4 -4
- package/dist/test/unit/parser/governance-sugar.test.js.map +1 -1
- package/dist/test/unit/parser/parser.test.js +5 -4
- package/dist/test/unit/parser/parser.test.js.map +1 -1
- package/dist/test/unit/rule-call-checks.test.js +2 -1
- package/dist/test/unit/rule-call-checks.test.js.map +1 -1
- package/dist/test/unit/typecheck/async-discipline-extended.test.js +11 -10
- package/dist/test/unit/typecheck/async-discipline-extended.test.js.map +1 -1
- package/dist/test/unit/typecheck/effect-prefix-injection.test.js +3 -2
- package/dist/test/unit/typecheck/effect-prefix-injection.test.js.map +1 -1
- package/dist/test/unit/typecheck/function-return-inference.test.js +33 -32
- package/dist/test/unit/typecheck/function-return-inference.test.js.map +1 -1
- package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js +5 -4
- package/dist/test/unit/typecheck/pii-cross-runtime-conformance.test.js.map +1 -1
- package/dist/test/unit/typecheck/regression-fixes.test.js +110 -112
- package/dist/test/unit/typecheck/regression-fixes.test.js.map +1 -1
- package/dist/test/unit/typecheck/symbol-table.test.js +3 -2
- package/dist/test/unit/typecheck/symbol-table.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-system-extended.test.js +6 -5
- package/dist/test/unit/typecheck/type-system-extended.test.js.map +1 -1
- package/dist/test/unit/typecheck/type-system.test.js +20 -19
- package/dist/test/unit/typecheck/type-system.test.js.map +1 -1
- package/dist/test/unit/typecheck/typecheck-advanced.test.js +19 -18
- package/dist/test/unit/typecheck/typecheck-advanced.test.js.map +1 -1
- package/dist/test/unit/typecheck/untyped-field-dynamic.test.js +6 -4
- package/dist/test/unit/typecheck/untyped-field-dynamic.test.js.map +1 -1
- package/dist/test/unit/version.test.js +3 -3
- package/package.json +4 -3
- package/dist/src/core/core_ir_json.d.ts +0 -62
- package/dist/src/core/core_ir_json.d.ts.map +0 -1
- package/dist/src/core/core_ir_json.js +0 -81
- package/dist/src/core/core_ir_json.js.map +0 -1
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts +0 -2
- package/dist/test/unit/core_ir_json/core_ir_json.test.d.ts.map +0 -1
- package/dist/test/unit/core_ir_json/core_ir_json.test.js +0 -218
- package/dist/test/unit/core_ir_json/core_ir_json.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic-overlays.generated.js","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-overlays.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diagnostic-overlays.generated.js","sourceRoot":"","sources":["../../../../src/config/lexicons/diagnostic-overlays.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-decimal.d.ts","sourceRoot":"","sources":["../../../src/core/canonical-decimal.ts"],"names":[],"mappings":"AAUA,qDAAqD;AACrD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO/D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 源码数值字面量 → 规范十进制串(ADR 0055 §5),用于 `Double.value` 与 `Range.min/max`。
|
|
3
|
+
*
|
|
4
|
+
* 规则:无指数、无前导零、无尾随零,小数部分全零时省略小数点,`-0` 归一为 `"0"`。
|
|
5
|
+
* 结果满足 schema `$defs/CanonicalDecimal` 的 pattern。值取自字面量**原文**,经 decimal.js
|
|
6
|
+
* 任意精度十进制求出,不经二进制浮点:`123456789012345678901.5` 原样保留,经 double 则会变成
|
|
7
|
+
* `123456789012345680000`。与 Java 侧 `BigDecimal.stripTrailingZeros().toPlainString()` 对应。
|
|
8
|
+
*/
|
|
9
|
+
import Decimal from 'decimal.js';
|
|
10
|
+
/** 把字面量原文(可带符号与指数,如 `-0.0`、`1e-7`、`1E3`)转成规范十进制串。 */
|
|
11
|
+
export function canonicalDecimalFromLiteral(raw) {
|
|
12
|
+
const value = new Decimal(raw);
|
|
13
|
+
if (!value.isFinite()) {
|
|
14
|
+
throw new RangeError(`数值字面量不是有限值:${raw}`);
|
|
15
|
+
}
|
|
16
|
+
// decimal.js 的 toFixed() 不带参数时按普通记数法输出全部有效位且不舍入,已去尾随零。
|
|
17
|
+
return value.isZero() ? '0' : value.toFixed();
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=canonical-decimal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-decimal.js","sourceRoot":"","sources":["../../../src/core/canonical-decimal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,qDAAqD;AACrD,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,uDAAuD;IACvD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical JSON 序列化(ADR 0030 附录 A.2;Core IR v2 规范字节,ADR 0055 §5)。
|
|
3
|
+
*
|
|
4
|
+
* 从 aster-cloud `src/lib/canonical-json.ts` 移植,与 core `aster.core.canonical.CanonicalJson`
|
|
5
|
+
* 字节一致,由 test/unit/core/canonical-json.test.ts 用 core `CanonicalJsonParityTest` 的同一份
|
|
6
|
+
* golden 夹具守护。与 cloud 原件的唯一差别:不含 `canonicalHash`(它依赖 `node:crypto`,
|
|
7
|
+
* 本模块要进浏览器入口);需要哈希的调用方按 `sha256(CANONICALIZATION_VERSION + "\n" + canonicalJson(v))` 自行计算。
|
|
8
|
+
*
|
|
9
|
+
* 以下为 cloud 原件的说明——
|
|
10
|
+
*
|
|
11
|
+
* 决策级持久层的 `canonicalInputHash` / `canonicalOutputHash` / `traceHash` 都基于本模块:
|
|
12
|
+
* 只有在**确定性的** canonical 形式下逐字节比对才有意义(否则 key 顺序 / Decimal 表示 /
|
|
13
|
+
* null 处理的差异会污染 old↔new toolchain 的漂移判定,把无害差异误报成 regression)。
|
|
14
|
+
*
|
|
15
|
+
* 设计铁律(ADR 附录 A.2):
|
|
16
|
+
* - object key 按 Unicode code point 升序;array 保序。
|
|
17
|
+
* - `null` 显式输出;**missing ≠ null**;不丢空对象 / 空数组 / false / 0 / ""。
|
|
18
|
+
* - string 原值不做 trim / case-fold。
|
|
19
|
+
* - number 须 finite;NaN / Infinity 拒绝(NON_CANONICAL_NUMBER)。
|
|
20
|
+
* - Decimal **类型感知**:仅当 typeCtx 声明某路径为 Decimal 时才做 decimal canonical
|
|
21
|
+
* (无 exponent / 无前导 + / 无无意义前导零 / 无 trailing zero / `-0`→`0` / 整数无 `.0`)。
|
|
22
|
+
* - JSON `1` ≠ string `"1"`(不全局转换数字字符串)。
|
|
23
|
+
*
|
|
24
|
+
* 纯模块:无 Node-only API 依赖,无 DB / 网络 / 环境读取。
|
|
25
|
+
*/
|
|
26
|
+
/** 当前 canonical 算法版本,写进 hash 前缀 + Execution.canonicalizationVersion。变更算法必 bump。 */
|
|
27
|
+
export declare const CANONICALIZATION_VERSION = "aster-canonical-json/v1";
|
|
28
|
+
/** canonical 化失败原因(对齐 Execution.replayabilityReasons 的 NON_REPLAYABLE 语义)。 */
|
|
29
|
+
export type CanonicalErrorReason = 'NON_CANONICAL_NUMBER' | 'NON_INTEGER_NUMBER' | 'UNSUPPORTED_VALUE' | 'DECIMAL_TOO_LARGE';
|
|
30
|
+
export declare class CanonicalJsonError extends Error {
|
|
31
|
+
readonly reason: CanonicalErrorReason;
|
|
32
|
+
/** 出错值所在的 JSON 路径(如 `input.amount`),便于诊断。 */
|
|
33
|
+
readonly path: string;
|
|
34
|
+
constructor(reason: CanonicalErrorReason, message: string,
|
|
35
|
+
/** 出错值所在的 JSON 路径(如 `input.amount`),便于诊断。 */
|
|
36
|
+
path: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 类型上下文:声明哪些字段路径是 Decimal,须做 decimal canonical。
|
|
40
|
+
*
|
|
41
|
+
* 路径用点号连接(array 元素用 `[]` 通配,如 `applicants[].income`)。M1 只支持
|
|
42
|
+
* 精确路径 + `[]` 通配;无 typeCtx 时所有 number 按 JSON number 处理(IEEE-754 规范化)。
|
|
43
|
+
* Decimal 值在 JSON 里应以 **string** 承载(避免 IEEE-754 精度损失),typeCtx 标注后
|
|
44
|
+
* 按 decimal 规范化;若声明为 Decimal 的路径出现 number,也接受并规范化其字符串形式。
|
|
45
|
+
*/
|
|
46
|
+
export interface CanonicalTypeContext {
|
|
47
|
+
/** 声明为 Decimal 的字段路径集合(`[]` 表示任意 array 下标)。 */
|
|
48
|
+
decimalPaths: ReadonlySet<string>;
|
|
49
|
+
}
|
|
50
|
+
/** 按 Unicode code point 比较(正确处理代理对,避免 code unit 序在补充平面字符上的偏差)。 */
|
|
51
|
+
export declare function compareByCodePoint(a: string, b: string): number;
|
|
52
|
+
/**
|
|
53
|
+
* 把任意 JSON 值序列化为 canonical 字符串(确定性、跨实现可复现)。
|
|
54
|
+
* @throws CanonicalJsonError 遇到 NaN/Infinity/非法 Decimal/非 JSON 值。
|
|
55
|
+
*/
|
|
56
|
+
export declare function canonicalJson(value: unknown, ctx?: CanonicalTypeContext): string;
|
|
57
|
+
/** 便捷构造 typeCtx(从 Decimal 路径数组)。 */
|
|
58
|
+
export declare function decimalTypeContext(decimalPaths: readonly string[]): CanonicalTypeContext;
|
|
59
|
+
//# sourceMappingURL=canonical-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.d.ts","sourceRoot":"","sources":["../../../src/core/canonical-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAElE,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAC5B,sBAAsB,GACtB,oBAAoB,GACpB,mBAAmB,GACnB,mBAAmB,CAAC;AASxB,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,MAAM,EAAE,oBAAoB;IAE5C,6CAA6C;aAC7B,IAAI,EAAE,MAAM;gBAHZ,MAAM,EAAE,oBAAoB,EAC5C,OAAO,EAAE,MAAM;IACf,6CAA6C;IAC7B,IAAI,EAAE,MAAM;CAK/B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC;AAuND,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEhF;AAED,oCAAoC;AACpC,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAExF"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical JSON 序列化(ADR 0030 附录 A.2;Core IR v2 规范字节,ADR 0055 §5)。
|
|
3
|
+
*
|
|
4
|
+
* 从 aster-cloud `src/lib/canonical-json.ts` 移植,与 core `aster.core.canonical.CanonicalJson`
|
|
5
|
+
* 字节一致,由 test/unit/core/canonical-json.test.ts 用 core `CanonicalJsonParityTest` 的同一份
|
|
6
|
+
* golden 夹具守护。与 cloud 原件的唯一差别:不含 `canonicalHash`(它依赖 `node:crypto`,
|
|
7
|
+
* 本模块要进浏览器入口);需要哈希的调用方按 `sha256(CANONICALIZATION_VERSION + "\n" + canonicalJson(v))` 自行计算。
|
|
8
|
+
*
|
|
9
|
+
* 以下为 cloud 原件的说明——
|
|
10
|
+
*
|
|
11
|
+
* 决策级持久层的 `canonicalInputHash` / `canonicalOutputHash` / `traceHash` 都基于本模块:
|
|
12
|
+
* 只有在**确定性的** canonical 形式下逐字节比对才有意义(否则 key 顺序 / Decimal 表示 /
|
|
13
|
+
* null 处理的差异会污染 old↔new toolchain 的漂移判定,把无害差异误报成 regression)。
|
|
14
|
+
*
|
|
15
|
+
* 设计铁律(ADR 附录 A.2):
|
|
16
|
+
* - object key 按 Unicode code point 升序;array 保序。
|
|
17
|
+
* - `null` 显式输出;**missing ≠ null**;不丢空对象 / 空数组 / false / 0 / ""。
|
|
18
|
+
* - string 原值不做 trim / case-fold。
|
|
19
|
+
* - number 须 finite;NaN / Infinity 拒绝(NON_CANONICAL_NUMBER)。
|
|
20
|
+
* - Decimal **类型感知**:仅当 typeCtx 声明某路径为 Decimal 时才做 decimal canonical
|
|
21
|
+
* (无 exponent / 无前导 + / 无无意义前导零 / 无 trailing zero / `-0`→`0` / 整数无 `.0`)。
|
|
22
|
+
* - JSON `1` ≠ string `"1"`(不全局转换数字字符串)。
|
|
23
|
+
*
|
|
24
|
+
* 纯模块:无 Node-only API 依赖,无 DB / 网络 / 环境读取。
|
|
25
|
+
*/
|
|
26
|
+
/** 当前 canonical 算法版本,写进 hash 前缀 + Execution.canonicalizationVersion。变更算法必 bump。 */
|
|
27
|
+
export const CANONICALIZATION_VERSION = 'aster-canonical-json/v1';
|
|
28
|
+
/**
|
|
29
|
+
* Decimal 展开的资源上限(防大指数 DoS / RangeError)。金融金额远在此范围内,
|
|
30
|
+
* 超限统一报 DECIMAL_TOO_LARGE 而非非受控异常(Codex 审查 L1#3)。
|
|
31
|
+
*/
|
|
32
|
+
const MAX_DECIMAL_DIGITS = 4096;
|
|
33
|
+
const MAX_DECIMAL_EXPONENT = 4096;
|
|
34
|
+
export class CanonicalJsonError extends Error {
|
|
35
|
+
reason;
|
|
36
|
+
path;
|
|
37
|
+
constructor(reason, message,
|
|
38
|
+
/** 出错值所在的 JSON 路径(如 `input.amount`),便于诊断。 */
|
|
39
|
+
path) {
|
|
40
|
+
super(`${reason} at ${path}: ${message}`);
|
|
41
|
+
this.reason = reason;
|
|
42
|
+
this.path = path;
|
|
43
|
+
this.name = 'CanonicalJsonError';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** 把具体 array 下标路径归一为 `[]` 通配,用于 typeCtx 匹配。 */
|
|
47
|
+
function normalizePathForMatch(path) {
|
|
48
|
+
return path.replace(/\[\d+\]/g, '[]');
|
|
49
|
+
}
|
|
50
|
+
function isDecimalPath(path, ctx) {
|
|
51
|
+
if (!ctx)
|
|
52
|
+
return false;
|
|
53
|
+
return ctx.decimalPaths.has(normalizePathForMatch(path));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 规范化 JSON string(TS 侧用 JSON.stringify 转义;code point 保序,不做业务变换)。
|
|
57
|
+
*
|
|
58
|
+
* ★Java parity 注意(Codex L1#2):本实现的转义策略 = JS `JSON.stringify`(短转义 \n\t 等 /
|
|
59
|
+
* U+0000..001F / 不转义 `/` / 不转义 U+2028 U+2029 / lone surrogate 输出 \udxxx)。Java 权威
|
|
60
|
+
* 侧**不能**依赖 Jackson/Gson 默认转义自动对齐——须实现逐 code point 的 canonical string writer
|
|
61
|
+
* 复刻此策略,并由 TS↔Java golden fixture 固化(发布前 parity gate,见 ADR 0030 附录 A)。
|
|
62
|
+
* 此处不声明「已跨实现保证」,只声明「TS 侧策略确定」。
|
|
63
|
+
*/
|
|
64
|
+
function canonicalString(value) {
|
|
65
|
+
return JSON.stringify(value);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 规范化普通 JSON number(非 Decimal 路径)——★双引擎地基铁律:**只允许 safe integer**。
|
|
69
|
+
*
|
|
70
|
+
* 原因(Codex 审查 L1#1/L4):JS `Number#toString()` 与 Java `Double.toString()` 对同一
|
|
71
|
+
* IEEE-754 浮点(如 `1e21`/`0.1`/`1e-7`)产生**不同字符串表示** → 双引擎 hash 不一致,
|
|
72
|
+
* 直接打穿「回放不误报漂移」的地基。金融决策里所有小数/金额本就应走 Decimal(string 承载 +
|
|
73
|
+
* typeCtx),用 IEEE-754 float 表示金额是错误姿势。故非 Decimal number 强制 safe integer,
|
|
74
|
+
* 小数一律要求走 Decimal 路径(否则报 NON_INTEGER_NUMBER,调用方须补 typeCtx 声明)。
|
|
75
|
+
*/
|
|
76
|
+
function canonicalNumber(value, path) {
|
|
77
|
+
if (!Number.isFinite(value)) {
|
|
78
|
+
throw new CanonicalJsonError('NON_CANONICAL_NUMBER', `number 非 finite: ${value}`, path);
|
|
79
|
+
}
|
|
80
|
+
// -0 归一为 0(ADR:-0→0)。safe integer 范围内 -0 === 0,toString 即 "0"。
|
|
81
|
+
const normalized = value === 0 ? 0 : value;
|
|
82
|
+
if (!Number.isSafeInteger(normalized)) {
|
|
83
|
+
throw new CanonicalJsonError('NON_INTEGER_NUMBER', `非 Decimal number 只允许 safe integer(小数/超范围须走 Decimal string + typeCtx 声明): ${value}`, path);
|
|
84
|
+
}
|
|
85
|
+
// safe integer 的 toString 跨引擎一致(十进制整数无表示歧义)。
|
|
86
|
+
return normalized.toString();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 规范化 Decimal 值(decimal canonical form):
|
|
90
|
+
* 无 exponent / 无前导 `+` / 无无意义前导零 / 无 trailing zero / `-0`→`0` / 整数无 `.0`。
|
|
91
|
+
* 接受 string(推荐,避免精度损失)或 number(会先转 string)。
|
|
92
|
+
*/
|
|
93
|
+
function canonicalDecimal(raw, path) {
|
|
94
|
+
// Decimal number 入参先转其整数字符串(number 已受 safe-integer 约束时才可能到这;
|
|
95
|
+
// 但 Decimal 路径的 number 允许非整数——用 JS 表示转字符串后再规范化)。
|
|
96
|
+
// string 入参:★不 trim(与「string 不 trim」铁律一致,Codex L1#4)——含空白即非法。
|
|
97
|
+
let s;
|
|
98
|
+
if (typeof raw === 'number') {
|
|
99
|
+
// ★Decimal 路径也只接受 safe integer number(Codex 复审 #1 闭环):非整数 JS number
|
|
100
|
+
// 走 Number#toString() 会重新引入跨引擎表示/精度隐患。精确 Decimal 必须以 string 承载。
|
|
101
|
+
if (!Number.isFinite(raw)) {
|
|
102
|
+
throw new CanonicalJsonError('NON_CANONICAL_NUMBER', `Decimal number 非 finite: ${raw}`, path);
|
|
103
|
+
}
|
|
104
|
+
if (!Number.isSafeInteger(raw === 0 ? 0 : raw)) {
|
|
105
|
+
throw new CanonicalJsonError('NON_INTEGER_NUMBER', `Decimal 路径的 number 只允许 safe integer;精确小数须以 string 承载(避免 IEEE-754 精度损失): ${raw}`, path);
|
|
106
|
+
}
|
|
107
|
+
s = (raw === 0 ? 0 : raw).toString();
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
s = raw;
|
|
111
|
+
}
|
|
112
|
+
// 允许可选符号 + 整数部分 + 可选小数部分 + 可选指数(无前后空白)。
|
|
113
|
+
const m = /^([+-]?)(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(s);
|
|
114
|
+
if (!m) {
|
|
115
|
+
throw new CanonicalJsonError('NON_CANONICAL_NUMBER', `Decimal 格式非法: ${JSON.stringify(raw)}`, path);
|
|
116
|
+
}
|
|
117
|
+
const sign = m[1] === '-' ? '-' : '';
|
|
118
|
+
let intPart = m[2] ?? '0';
|
|
119
|
+
let fracPart = m[3] ?? '';
|
|
120
|
+
const expStr = m[4] ?? '0';
|
|
121
|
+
// 资源上限:拒绝大指数 / 超长数字串(防 DoS / RangeError,Codex L1#3)。
|
|
122
|
+
if (expStr.length > 10) {
|
|
123
|
+
throw new CanonicalJsonError('DECIMAL_TOO_LARGE', `Decimal 指数过大: ${expStr}`, path);
|
|
124
|
+
}
|
|
125
|
+
const exp = parseInt(expStr, 10);
|
|
126
|
+
if (Math.abs(exp) > MAX_DECIMAL_EXPONENT) {
|
|
127
|
+
throw new CanonicalJsonError('DECIMAL_TOO_LARGE', `Decimal 指数超限(${exp} > ±${MAX_DECIMAL_EXPONENT})`, path);
|
|
128
|
+
}
|
|
129
|
+
// 展开指数:把 int.frac 视为无小数点的数字串,用 exp 决定小数点位置。
|
|
130
|
+
let digits = intPart + fracPart;
|
|
131
|
+
let pointPos = intPart.length + exp; // 小数点在 digits 中的位置(从左数)。
|
|
132
|
+
// 展开后总位数上限(防 1e4096 类构造出超长串)。
|
|
133
|
+
const expandedLen = pointPos <= 0
|
|
134
|
+
? (1 - pointPos) + digits.length
|
|
135
|
+
: Math.max(pointPos, digits.length);
|
|
136
|
+
if (expandedLen > MAX_DECIMAL_DIGITS) {
|
|
137
|
+
throw new CanonicalJsonError('DECIMAL_TOO_LARGE', `Decimal 展开位数超限(${expandedLen} > ${MAX_DECIMAL_DIGITS})`, path);
|
|
138
|
+
}
|
|
139
|
+
if (pointPos <= 0) {
|
|
140
|
+
digits = '0'.repeat(1 - pointPos) + digits;
|
|
141
|
+
pointPos = 1;
|
|
142
|
+
}
|
|
143
|
+
if (pointPos >= digits.length) {
|
|
144
|
+
digits = digits + '0'.repeat(pointPos - digits.length);
|
|
145
|
+
}
|
|
146
|
+
intPart = digits.slice(0, pointPos);
|
|
147
|
+
fracPart = digits.slice(pointPos);
|
|
148
|
+
// 去无意义前导零(保留至少一位)。
|
|
149
|
+
intPart = intPart.replace(/^0+(?=\d)/, '');
|
|
150
|
+
// 去 trailing zero。
|
|
151
|
+
fracPart = fracPart.replace(/0+$/, '');
|
|
152
|
+
const body = fracPart.length > 0 ? `${intPart}.${fracPart}` : intPart;
|
|
153
|
+
// -0 归一为 0。
|
|
154
|
+
if (sign === '-' && /^0(?:\.0*)?$/.test(body)) {
|
|
155
|
+
return intPart; // "0"
|
|
156
|
+
}
|
|
157
|
+
return sign + body;
|
|
158
|
+
}
|
|
159
|
+
function canonicalizeValue(value, path, ctx) {
|
|
160
|
+
if (value === null)
|
|
161
|
+
return 'null';
|
|
162
|
+
const t = typeof value;
|
|
163
|
+
if (t === 'boolean')
|
|
164
|
+
return value ? 'true' : 'false';
|
|
165
|
+
if (t === 'number') {
|
|
166
|
+
if (isDecimalPath(path, ctx)) {
|
|
167
|
+
return canonicalDecimal(value, path);
|
|
168
|
+
}
|
|
169
|
+
return canonicalNumber(value, path);
|
|
170
|
+
}
|
|
171
|
+
if (t === 'string') {
|
|
172
|
+
if (isDecimalPath(path, ctx)) {
|
|
173
|
+
// Decimal 路径上的 string 承载精确值 → decimal canonical。
|
|
174
|
+
return canonicalDecimal(value, path);
|
|
175
|
+
}
|
|
176
|
+
return canonicalString(value);
|
|
177
|
+
}
|
|
178
|
+
if (Array.isArray(value)) {
|
|
179
|
+
// array 保序;元素路径用 `[i]`(typeCtx 匹配时归一为 `[]`)。
|
|
180
|
+
// ★拒绝 sparse array holes(Codex L2):map 会跳过 hole 产生非法/歧义 canonical,
|
|
181
|
+
// 用显式 `i in value` 检测,hole 直接 UNSUPPORTED_VALUE。
|
|
182
|
+
const parts = [];
|
|
183
|
+
for (let i = 0; i < value.length; i++) {
|
|
184
|
+
// own-property 检测(非 `i in value`,后者会把原型链索引当存在,Codex 复审 #3)。
|
|
185
|
+
if (!Object.prototype.hasOwnProperty.call(value, i)) {
|
|
186
|
+
throw new CanonicalJsonError('UNSUPPORTED_VALUE', `sparse array hole at index ${i}`, `${path}[${i}]`);
|
|
187
|
+
}
|
|
188
|
+
parts.push(canonicalizeValue(value[i], `${path}[${i}]`, ctx));
|
|
189
|
+
}
|
|
190
|
+
return `[${parts.join(',')}]`;
|
|
191
|
+
}
|
|
192
|
+
if (t === 'object') {
|
|
193
|
+
// ★只接受 plain object(Codex L2):Date/Map/Set/RegExp 等 typeof 也是 object,
|
|
194
|
+
// Object.keys 为空会被静默 canonical 成 `{}`,吞掉语义差异 → 显式拒绝非 plain object。
|
|
195
|
+
if (!isPlainObject(value)) {
|
|
196
|
+
throw new CanonicalJsonError('UNSUPPORTED_VALUE', `非 plain object(Date/Map/Set/RegExp/class 实例等不支持,须先转纯 JSON): ${Object.prototype.toString.call(value)}`, path);
|
|
197
|
+
}
|
|
198
|
+
// object key 按 Unicode code point 升序(含代理对,见 compareByCodePoint)。
|
|
199
|
+
const obj = value;
|
|
200
|
+
const keys = Object.keys(obj).sort(compareByCodePoint);
|
|
201
|
+
const parts = keys.map((k) => {
|
|
202
|
+
// 路径用 `.` 连接(与 typeCtx decimalPaths 写法一致,如 `applicants[].income`)。
|
|
203
|
+
// ★已知限制(Codex L3):JSON key 含 `.` 或 `[` 时路径会与 typeCtx 语法歧义。
|
|
204
|
+
// M1 缓解:Decimal 字段路径应从 schema/typed 模型自动导出(非手写散落),金融 input
|
|
205
|
+
// 字段名不含 `.`/`[`。含特殊字符 key 的子孙退化为普通处理——普通 number 走 safe-integer
|
|
206
|
+
// 铁律、string 保原值,不会静默精度漂移。M2 改 tokenized path array 彻底消歧义。
|
|
207
|
+
const childPath = path === '' ? k : `${path}.${k}`;
|
|
208
|
+
// value 显式输出(missing≠null:只有实际存在的 key 才输出)。
|
|
209
|
+
return `${canonicalString(k)}:${canonicalizeValue(obj[k], childPath, ctx)}`;
|
|
210
|
+
});
|
|
211
|
+
return `{${parts.join(',')}}`;
|
|
212
|
+
}
|
|
213
|
+
// undefined / function / symbol / bigint 等非 JSON 值。
|
|
214
|
+
throw new CanonicalJsonError('UNSUPPORTED_VALUE', `不支持的值类型: ${t}`, path);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 判断是否 plain object(对象字面量 / `Object.create(null)`),排除 Date/Map/Set/RegExp/
|
|
218
|
+
* class 实例等——它们 typeof 也是 'object' 但非纯 JSON 容器(Codex L2)。
|
|
219
|
+
*/
|
|
220
|
+
function isPlainObject(value) {
|
|
221
|
+
if (value === null || typeof value !== 'object')
|
|
222
|
+
return false;
|
|
223
|
+
const proto = Object.getPrototypeOf(value);
|
|
224
|
+
return proto === Object.prototype || proto === null;
|
|
225
|
+
}
|
|
226
|
+
/** 按 Unicode code point 比较(正确处理代理对,避免 code unit 序在补充平面字符上的偏差)。 */
|
|
227
|
+
export function compareByCodePoint(a, b) {
|
|
228
|
+
const ai = Array.from(a);
|
|
229
|
+
const bi = Array.from(b);
|
|
230
|
+
const n = Math.min(ai.length, bi.length);
|
|
231
|
+
for (let i = 0; i < n; i++) {
|
|
232
|
+
const ca = ai[i].codePointAt(0);
|
|
233
|
+
const cb = bi[i].codePointAt(0);
|
|
234
|
+
if (ca !== cb)
|
|
235
|
+
return ca - cb;
|
|
236
|
+
}
|
|
237
|
+
return ai.length - bi.length;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* 把任意 JSON 值序列化为 canonical 字符串(确定性、跨实现可复现)。
|
|
241
|
+
* @throws CanonicalJsonError 遇到 NaN/Infinity/非法 Decimal/非 JSON 值。
|
|
242
|
+
*/
|
|
243
|
+
export function canonicalJson(value, ctx) {
|
|
244
|
+
return canonicalizeValue(value, '', ctx);
|
|
245
|
+
}
|
|
246
|
+
/** 便捷构造 typeCtx(从 Decimal 路径数组)。 */
|
|
247
|
+
export function decimalTypeContext(decimalPaths) {
|
|
248
|
+
return { decimalPaths: new Set(decimalPaths.map(normalizePathForMatch)) };
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=canonical-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../../../src/core/canonical-json.ts"],"names":[],"mappings":"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"}
|