@astrale-os/kernel-dsl 0.2.0-beta.3 → 0.2.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/upgrade/contract.d.ts +0 -1
- package/dist/upgrade/contract.js +0 -1
- package/dist/upgrade/index.d.ts +0 -1
- package/dist/upgrade/index.js +0 -1
- package/dist/v1/addressing/class-key.d.ts +12 -0
- package/dist/v1/addressing/class-key.js +39 -0
- package/dist/v1/addressing/definition-ref.d.ts +28 -0
- package/dist/v1/addressing/definition-ref.js +63 -0
- package/dist/v1/addressing/domain-dependency.d.ts +18 -0
- package/dist/v1/addressing/domain-dependency.js +6 -0
- package/dist/v1/addressing/index.d.ts +10 -4
- package/dist/v1/addressing/index.js +5 -3
- package/dist/v1/addressing/key.d.ts +14 -16
- package/dist/v1/addressing/key.js +24 -34
- package/dist/v1/addressing/method-address.d.ts +9 -0
- package/dist/v1/addressing/method-address.js +1 -0
- package/dist/v1/addressing/method-key.d.ts +15 -0
- package/dist/v1/addressing/method-key.js +60 -0
- package/dist/v1/addressing/ordering.d.ts +6 -0
- package/dist/v1/addressing/ordering.js +20 -0
- package/dist/v1/addressing/patterns.d.ts +12 -3
- package/dist/v1/addressing/patterns.js +11 -2
- package/dist/v1/addressing/property-key.d.ts +10 -15
- package/dist/v1/addressing/property-key.js +24 -15
- package/dist/v1/addressing/revision.d.ts +8 -0
- package/dist/v1/addressing/revision.js +8 -0
- package/dist/v1/builder/callable/authoring.d.ts +118 -0
- package/dist/v1/builder/{callable.js → callable/authoring.js} +28 -7
- package/dist/v1/builder/class/authoring.d.ts +380 -0
- package/dist/v1/builder/class/authoring.js +134 -0
- package/dist/v1/builder/class/property.d.ts +58 -0
- package/dist/v1/builder/class/property.js +57 -0
- package/dist/v1/builder/core/authoring.d.ts +42 -0
- package/dist/v1/builder/core/authoring.js +39 -0
- package/dist/v1/builder/index.d.ts +26 -22
- package/dist/v1/builder/index.js +11 -11
- package/dist/v1/builder/lowering/callable.d.ts +24 -0
- package/dist/v1/builder/{compiler → lowering}/callable.js +39 -38
- package/dist/v1/builder/lowering/class.d.ts +22 -0
- package/dist/v1/builder/lowering/class.js +134 -0
- package/dist/v1/builder/lowering/core-properties.d.ts +10 -0
- package/dist/v1/builder/{compiler/core.properties.js → lowering/core-properties.js} +14 -8
- package/dist/v1/builder/lowering/core.d.ts +22 -0
- package/dist/v1/builder/{compiler → lowering}/core.js +17 -11
- package/dist/v1/builder/lowering/policy.d.ts +16 -0
- package/dist/v1/builder/{compiler → lowering}/policy.js +20 -14
- package/dist/v1/builder/{compiler/schema.capture.d.ts → lowering/schema/capture.d.ts} +2 -3
- package/dist/v1/builder/lowering/schema/capture.js +75 -0
- package/dist/v1/builder/{compiler/schema.d.ts → lowering/schema/compile.d.ts} +4 -4
- package/dist/v1/builder/{compiler/schema.js → lowering/schema/compile.js} +34 -44
- package/dist/v1/builder/lowering/schema/context.d.ts +44 -0
- package/dist/v1/builder/{compiler/schema.context.js → lowering/schema/context.js} +102 -81
- package/dist/v1/builder/lowering/schema/ownership.d.ts +8 -0
- package/dist/v1/builder/{compiler/schema.ownership.js → lowering/schema/ownership.js} +3 -3
- package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
- package/dist/v1/builder/{compiler/value.js → lowering/value/compile.js} +44 -61
- package/dist/v1/builder/lowering/value/path.d.ts +3 -0
- package/dist/v1/builder/{compiler/value.path.js → lowering/value/path.js} +1 -2
- package/dist/v1/builder/{compiler/value.zod.d.ts → lowering/value/zod.d.ts} +8 -9
- package/dist/v1/builder/{compiler/value.zod.js → lowering/value/zod.js} +10 -11
- package/dist/v1/builder/lowering/view.d.ts +11 -0
- package/dist/v1/builder/{compiler → lowering}/view.js +7 -7
- package/dist/v1/builder/{policy.d.ts → policy/authoring.d.ts} +28 -17
- package/dist/v1/builder/policy/authoring.js +115 -0
- package/dist/v1/builder/schema/define.d.ts +11 -0
- package/dist/v1/builder/{schema.js → schema/define.js} +1 -2
- package/dist/v1/builder/schema/diagnostic.d.ts +16 -0
- package/dist/v1/builder/schema/diagnostic.js +31 -0
- package/dist/v1/builder/{internal/authoring.d.ts → schema/handle.d.ts} +1 -2
- package/dist/v1/builder/{internal/authoring.js → schema/handle.js} +0 -1
- package/dist/v1/builder/schema/input.d.ts +15 -0
- package/dist/v1/builder/schema/input.js +1 -0
- package/dist/v1/builder/{internal/authoring.lazy.d.ts → schema/lazy.d.ts} +0 -1
- package/dist/v1/builder/{internal/authoring.lazy.js → schema/lazy.js} +0 -1
- package/dist/v1/builder/schema/projection.d.ts +370 -0
- package/dist/v1/builder/schema/projection.js +1 -0
- package/dist/v1/builder/value/full-match.d.ts +4 -0
- package/dist/v1/builder/value/full-match.js +11 -0
- package/dist/v1/builder/value/path-metadata.d.ts +4 -0
- package/dist/v1/builder/{internal/path.metadata.js → value/path-metadata.js} +0 -1
- package/dist/v1/builder/value/path.d.ts +8 -0
- package/dist/v1/builder/{path.js → value/path.js} +4 -5
- package/dist/v1/builder/{value-schema.d.ts → value/schema.d.ts} +2 -3
- package/dist/v1/builder/{value-schema.js → value/schema.js} +0 -1
- package/dist/v1/builder/view/authoring.d.ts +17 -0
- package/dist/v1/builder/view/authoring.js +16 -0
- package/dist/v1/bundle/codec.d.ts +0 -1
- package/dist/v1/bundle/codec.js +36 -19
- package/dist/v1/bundle/create.d.ts +3 -0
- package/dist/v1/bundle/create.js +5 -0
- package/dist/v1/bundle/diagnostic.d.ts +10 -0
- package/dist/v1/bundle/diagnostic.js +17 -0
- package/dist/v1/bundle/index.d.ts +3 -2
- package/dist/v1/bundle/index.js +2 -2
- package/dist/v1/bundle/model.d.ts +1 -4
- package/dist/v1/bundle/model.js +0 -6
- package/dist/v1/bundle/structure.d.ts +1 -2
- package/dist/v1/bundle/structure.js +6 -6
- package/dist/v1/bundle/transport.d.ts +8 -0
- package/dist/v1/bundle/transport.js +7 -0
- package/dist/v1/compiled/admission/accept.d.ts +3 -0
- package/dist/v1/compiled/admission/accept.js +961 -0
- package/dist/v1/compiled/admission/revision.d.ts +4 -0
- package/dist/v1/compiled/admission/revision.js +73 -0
- package/dist/v1/compiled/admission/semantics.d.ts +7 -0
- package/dist/v1/compiled/admission/semantics.js +1167 -0
- package/dist/v1/compiled/codec/json.d.ts +3 -0
- package/dist/v1/compiled/codec/json.js +9 -0
- package/dist/v1/compiled/compiler/compile.d.ts +4 -0
- package/dist/v1/compiled/compiler/compile.js +113 -0
- package/dist/v1/compiled/diagnostic.d.ts +11 -0
- package/dist/v1/compiled/diagnostic.js +13 -0
- package/dist/v1/compiled/generated.d.ts +10 -0
- package/dist/v1/compiled/generated.js +15 -0
- package/dist/v1/compiled/index.d.ts +7 -0
- package/dist/v1/compiled/index.js +5 -0
- package/dist/v1/compiled/loader/index.d.ts +1 -0
- package/dist/v1/compiled/loader/index.js +1 -0
- package/dist/v1/compiled/loader/load.d.ts +9 -0
- package/dist/v1/compiled/loader/load.js +147 -0
- package/dist/v1/compiled/model/schema.d.ts +73 -0
- package/dist/v1/compiled/model/schema.js +1 -0
- package/dist/v1/domain/create.d.ts +8 -0
- package/dist/v1/domain/create.js +264 -0
- package/dist/v1/domain/index.d.ts +2 -0
- package/dist/v1/domain/index.js +1 -0
- package/dist/v1/domain/model/domain.d.ts +59 -0
- package/dist/v1/domain/model/domain.js +1 -0
- package/dist/v1/domain/model/input.d.ts +31 -0
- package/dist/v1/domain/model/input.js +1 -0
- package/dist/v1/domain/namespace/member-collection.d.ts +5 -0
- package/dist/v1/domain/namespace/member-collection.js +81 -0
- package/dist/v1/domain/projection/classes.d.ts +4 -0
- package/dist/v1/domain/projection/classes.js +181 -0
- package/dist/v1/domain/validation/create.d.ts +18 -0
- package/dist/v1/domain/validation/create.js +75 -0
- package/dist/v1/index.d.ts +14 -5
- package/dist/v1/index.js +6 -3
- package/dist/v1/language/callable/index.d.ts +2 -0
- package/dist/v1/language/callable/index.js +1 -0
- package/dist/v1/language/callable/model/callable.d.ts +33 -0
- package/dist/v1/language/callable/model/callable.js +1 -0
- package/dist/v1/language/callable/resolved.d.ts +68 -0
- package/dist/v1/language/callable/resolved.js +1 -0
- package/dist/v1/language/class/facets.d.ts +58 -0
- package/dist/v1/language/class/facets.js +1 -0
- package/dist/v1/language/class/index.d.ts +8 -0
- package/dist/v1/language/class/index.js +1 -0
- package/dist/v1/language/class/model/class.d.ts +37 -0
- package/dist/v1/language/class/model/class.js +1 -0
- package/dist/v1/{schema/definition → language/class/model}/data.d.ts +2 -3
- package/dist/v1/{schema/definition → language/class/model}/data.js +0 -1
- package/dist/v1/{schema/definition → language/class/model}/edge.d.ts +9 -6
- package/dist/v1/language/class/model/edge.js +1 -0
- package/dist/v1/language/class/model/property.d.ts +17 -0
- package/dist/v1/language/class/model/property.js +1 -0
- package/dist/v1/language/class/property-values.d.ts +15 -0
- package/dist/v1/language/class/property-values.js +30 -0
- package/dist/v1/language/class/resolved.d.ts +119 -0
- package/dist/v1/language/class/resolved.js +1 -0
- package/dist/v1/language/core/index.d.ts +2 -0
- package/dist/v1/language/core/index.js +1 -0
- package/dist/v1/language/core/model/core.d.ts +20 -0
- package/dist/v1/language/core/model/core.js +1 -0
- package/dist/v1/language/core/resolved.d.ts +21 -0
- package/dist/v1/language/core/resolved.js +1 -0
- package/dist/v1/{schema → language/definition}/metadata.d.ts +0 -1
- package/dist/v1/{schema → language/definition}/metadata.js +0 -1
- package/dist/v1/language/definition.d.ts +7 -0
- package/dist/v1/language/definition.js +1 -0
- package/dist/v1/language/index.d.ts +26 -0
- package/dist/v1/language/index.js +3 -0
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.d.ts +4 -5
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.js +43 -24
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/budgets.d.ts +1 -4
- package/dist/v1/language/policy/analysis/budgets.js +25 -0
- package/dist/v1/language/policy/index.d.ts +4 -0
- package/dist/v1/language/policy/index.js +2 -0
- package/dist/v1/language/policy/model/policy.d.ts +115 -0
- package/dist/v1/language/policy/model/policy.js +18 -0
- package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
- package/dist/v1/{schema/policy → language/policy/normalization}/normalize.js +65 -20
- package/dist/v1/language/policy/resolved.d.ts +9 -0
- package/dist/v1/language/policy/resolved.js +1 -0
- package/dist/v1/language/resolved.d.ts +10 -0
- package/dist/v1/language/resolved.js +1 -0
- package/dist/v1/language/state/index.d.ts +3 -0
- package/dist/v1/language/state/index.js +1 -0
- package/dist/v1/language/state/machine.d.ts +28 -0
- package/dist/v1/language/state/machine.js +40 -0
- package/dist/v1/language/state/topology.d.ts +14 -0
- package/dist/v1/language/state/topology.js +69 -0
- package/dist/v1/language/validation/diagnostic.d.ts +8 -0
- package/dist/v1/language/validation/diagnostic.js +3 -0
- package/dist/v1/language/value/compile/fields.d.ts +3 -0
- package/dist/v1/language/value/compile/fields.js +60 -0
- package/dist/v1/{schema/compiled/program.d.ts → language/value/compile/load.d.ts} +1 -2
- package/dist/v1/{schema/compiled/program.js → language/value/compile/load.js} +2 -3
- package/dist/v1/language/value/compile/model.d.ts +27 -0
- package/dist/v1/language/value/compile/model.js +1 -0
- package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.d.ts +0 -1
- package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.js +1 -2
- package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.d.ts +0 -1
- package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.js +3 -4
- package/dist/v1/{schema/value/instance → language/value/evaluate}/preparation.d.ts +2 -3
- package/dist/v1/{schema/value/instance → language/value/evaluate}/preparation.js +6 -8
- package/dist/v1/language/value/evaluate/program.d.ts +3 -0
- package/dist/v1/language/value/evaluate/program.js +16 -0
- package/dist/v1/{schema/value/instance → language/value/evaluate}/types.d.ts +4 -5
- package/dist/v1/{schema/value/instance → language/value/evaluate}/types.js +0 -1
- package/dist/v1/{schema/value/instance.validate.d.ts → language/value/evaluate/validate.d.ts} +4 -5
- package/dist/v1/{schema/value/instance.validate.js → language/value/evaluate/validate.js} +4 -5
- package/dist/v1/language/value/index.d.ts +11 -0
- package/dist/v1/language/value/index.js +8 -0
- package/dist/v1/{schema/value → language/value/model}/instant.d.ts +1 -1
- package/dist/v1/{schema/value → language/value/model}/instant.js +1 -1
- package/dist/v1/{schema/value → language/value/model}/object.d.ts +1 -1
- package/dist/v1/{schema/value → language/value/model}/object.js +0 -1
- package/dist/v1/{schema/value → language/value/model}/schema.d.ts +3 -4
- package/dist/v1/{schema/value → language/value/model}/schema.js +0 -2
- package/dist/v1/{schema → language}/value/ordering.d.ts +5 -3
- package/dist/v1/{schema → language}/value/ordering.js +15 -13
- package/dist/v1/{schema → language}/value/profile/canonicalize.d.ts +2 -3
- package/dist/v1/{schema → language}/value/profile/canonicalize.js +4 -7
- package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
- package/dist/v1/{schema → language}/value/profile/json.validate.js +1 -2
- package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.d.ts +0 -1
- package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.js +0 -1
- package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
- package/dist/v1/{schema → language}/value/profile/meta-schema.js +1 -2
- package/dist/v1/language/value/profile/rules.d.ts +3 -0
- package/dist/v1/{schema → language}/value/profile/rules.js +7 -50
- package/dist/v1/language/value/profile/validate.d.ts +4 -0
- package/dist/v1/{schema → language}/value/profile/validate.js +13 -21
- package/dist/v1/{schema → language}/value/profile/vocabulary.d.ts +0 -1
- package/dist/v1/{schema → language}/value/profile/vocabulary.js +0 -1
- package/dist/v1/language/value/reference/closure.d.ts +11 -0
- package/dist/v1/{schema/value/resources → language/value/reference}/closure.js +13 -21
- package/dist/v1/{schema/value/resources → language/value/reference}/recursion.d.ts +3 -4
- package/dist/v1/{schema/value/resources → language/value/reference}/recursion.js +5 -6
- package/dist/v1/language/value/reference/references.d.ts +17 -0
- package/dist/v1/language/value/reference/references.js +45 -0
- package/dist/v1/{schema/value → language/value/reference}/registry.d.ts +9 -7
- package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
- package/dist/v1/{schema/value/resources → language/value/reference}/registry.index.js +7 -45
- package/dist/v1/language/value/reference/registry.js +1 -0
- package/dist/v1/{schema → language}/value/regexp/ast.d.ts +0 -1
- package/dist/v1/{schema → language}/value/regexp/ast.js +0 -1
- package/dist/v1/{schema → language}/value/regexp/compile.d.ts +1 -2
- package/dist/v1/{schema → language}/value/regexp/compile.js +8 -12
- package/dist/v1/{schema → language}/value/regexp/lower.d.ts +1 -2
- package/dist/v1/{schema → language}/value/regexp/lower.js +2 -3
- package/dist/v1/{schema → language}/value/regexp/matcher.d.ts +1 -2
- package/dist/v1/{schema → language}/value/regexp/matcher.js +0 -1
- package/dist/v1/{schema → language}/value/regexp/pattern.d.ts +0 -1
- package/dist/v1/{schema → language}/value/regexp/pattern.js +0 -1
- package/dist/v1/{schema → language}/value/regexp/syntax.d.ts +0 -1
- package/dist/v1/{schema → language}/value/regexp/syntax.js +0 -1
- package/dist/v1/{schema/value → language/value/syntax}/full-match.d.ts +0 -1
- package/dist/v1/{schema/value → language/value/syntax}/full-match.js +5 -6
- package/dist/v1/{schema/value/location → language/value/syntax}/keywords.d.ts +0 -1
- package/dist/v1/{schema/value/location → language/value/syntax}/keywords.js +0 -1
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.d.ts +1 -2
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.js +2 -3
- package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/validate.js +16 -18
- package/dist/v1/{schema/value/location → language/value/syntax}/pointer.d.ts +0 -1
- package/dist/v1/{schema/value/location → language/value/syntax}/pointer.js +1 -2
- package/dist/v1/{schema/value/location → language/value/syntax}/walk.d.ts +1 -2
- package/dist/v1/{schema/value/location → language/value/syntax}/walk.js +1 -2
- package/dist/v1/language/view/index.d.ts +2 -0
- package/dist/v1/language/view/index.js +1 -0
- package/dist/v1/language/view/model/view.d.ts +11 -0
- package/dist/v1/language/view/model/view.js +1 -0
- package/dist/v1/language/view/resolved.d.ts +9 -0
- package/dist/v1/language/view/resolved.js +1 -0
- package/dist/v1/schema/admission/accept.d.ts +3 -0
- package/dist/v1/schema/{domain.accept.js → admission/accept.js} +8 -9
- package/dist/v1/schema/{definition/analysis.d.ts → analysis/class.d.ts} +17 -18
- package/dist/v1/schema/{definition/analysis.js → analysis/class.js} +21 -30
- package/dist/v1/schema/canonical/domain.d.ts +2 -2
- package/dist/v1/schema/canonical/domain.digest.d.ts +1 -2
- package/dist/v1/schema/canonical/domain.digest.js +2 -6
- package/dist/v1/schema/canonical/domain.js +3 -224
- package/dist/v1/schema/canonical/freeze.d.ts +0 -1
- package/dist/v1/schema/canonical/freeze.js +0 -1
- package/dist/v1/schema/{domain.revision.d.ts → canonical/revision.d.ts} +2 -3
- package/dist/v1/schema/{domain.revision.js → canonical/revision.js} +7 -5
- package/dist/v1/schema/codec/header.d.ts +17 -0
- package/dist/v1/schema/codec/header.js +26 -0
- package/dist/v1/schema/{domain.codec.d.ts → codec/schema.d.ts} +2 -3
- package/dist/v1/schema/{domain.codec.js → codec/schema.js} +4 -5
- package/dist/v1/schema/{dependency.meaning.d.ts → compatibility/meaning.d.ts} +4 -5
- package/dist/v1/schema/{dependency.meaning.js → compatibility/meaning.js} +121 -124
- package/dist/v1/schema/{domain.lookup.d.ts → dependency/lookup.d.ts} +3 -4
- package/dist/v1/schema/{domain.lookup.js → dependency/lookup.js} +1 -2
- package/dist/v1/schema/diagnostic.d.ts +7 -7
- package/dist/v1/schema/diagnostic.js +9 -9
- package/dist/v1/schema/index.d.ts +24 -40
- package/dist/v1/schema/index.js +11 -18
- package/dist/v1/schema/model/format.d.ts +2 -0
- package/dist/v1/schema/model/format.js +2 -0
- package/dist/v1/schema/model/schema.d.ts +30 -0
- package/dist/v1/schema/model/schema.js +4 -0
- package/dist/v1/schema/normalization/domain.d.ts +2 -0
- package/dist/v1/schema/normalization/domain.js +210 -0
- package/dist/v1/schema/resolution/closure.d.ts +3 -4
- package/dist/v1/schema/resolution/closure.js +6 -7
- package/dist/v1/schema/resolution/context.d.ts +11 -12
- package/dist/v1/schema/resolution/context.js +82 -50
- package/dist/v1/schema/resolution/definition.index.d.ts +13 -35
- package/dist/v1/schema/resolution/definition.index.js +8 -18
- package/dist/v1/schema/resolution/domain.d.ts +4 -0
- package/dist/v1/schema/resolution/domain.js +112 -0
- package/dist/v1/schema/resolution/origins.d.ts +11 -14
- package/dist/v1/schema/resolution/origins.js +55 -46
- package/dist/v1/schema/resolution/value.registry.d.ts +3 -4
- package/dist/v1/schema/resolution/value.registry.js +7 -14
- package/dist/v1/schema/revision.d.ts +1 -0
- package/dist/v1/schema/revision.js +1 -0
- package/dist/v1/schema/validation/class.d.ts +5 -0
- package/dist/v1/schema/validation/class.js +241 -0
- package/dist/v1/schema/validation/core.d.ts +5 -0
- package/dist/v1/schema/{core/validate.js → validation/core.js} +39 -30
- package/dist/v1/schema/validation/domain.d.ts +11 -0
- package/dist/v1/schema/{domain.validate.js → validation/domain.js} +12 -12
- package/dist/v1/schema/validation/domain.route.d.ts +1 -2
- package/dist/v1/schema/validation/domain.route.js +3 -4
- package/dist/v1/schema/validation/domain.structure.d.ts +3 -4
- package/dist/v1/schema/validation/domain.structure.js +218 -210
- package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/budgets.js +22 -35
- package/dist/v1/schema/validation/policy/context.d.ts +28 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/context.js +23 -33
- package/dist/v1/schema/validation/policy/objects.d.ts +4 -0
- package/dist/v1/schema/validation/policy/objects.js +70 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/references.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/references.js +32 -13
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.d.ts +4 -8
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.js +56 -69
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.js +36 -113
- package/dist/v1/schema/{policy/validation → validation/policy}/validate.d.ts +3 -4
- package/dist/v1/schema/{policy/validation → validation/policy}/validate.js +0 -1
- package/dist/v1/schema/{value/index.d.ts → validation/value-api.d.ts} +9 -10
- package/dist/v1/schema/{value/index.js → validation/value-api.js} +4 -5
- package/dist/v1/schema/validation/value.d.ts +4 -5
- package/dist/v1/schema/validation/value.js +4 -9
- package/dist/v1/schema/validation/view.d.ts +3 -0
- package/dist/v1/schema/{view/validate.js → validation/view.js} +11 -4
- package/dist/v1/value/full-match.d.ts +2 -0
- package/dist/v1/value/full-match.js +2 -0
- package/dist/v1.d.ts +1 -2
- package/dist/v1.js +1 -2
- package/dist/value/accept.d.ts +0 -1
- package/dist/value/accept.js +0 -1
- package/dist/value/canonical.d.ts +3 -1
- package/dist/value/canonical.js +11 -5
- package/dist/value/decode.d.ts +0 -1
- package/dist/value/decode.js +0 -1
- package/dist/value/equal.d.ts +0 -1
- package/dist/value/equal.js +0 -1
- package/dist/value/error.d.ts +0 -1
- package/dist/value/error.js +0 -1
- package/dist/value/index.d.ts +0 -1
- package/dist/value/index.js +0 -1
- package/dist/value/json.d.ts +1 -2
- package/dist/value/json.js +1 -2
- package/dist/value/limits.d.ts +0 -1
- package/dist/value/limits.js +0 -1
- package/dist/value/types.d.ts +0 -1
- package/dist/value/types.js +0 -1
- package/dist/value/unicode.d.ts +0 -1
- package/dist/value/unicode.js +0 -1
- package/dist/version/dispatch.d.ts +0 -1
- package/dist/version/dispatch.js +0 -1
- package/dist/version/index.d.ts +0 -1
- package/dist/version/index.js +0 -1
- package/package.json +53 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/upgrade/contract.d.ts.map +0 -1
- package/dist/upgrade/contract.js.map +0 -1
- package/dist/upgrade/index.d.ts.map +0 -1
- package/dist/upgrade/index.js.map +0 -1
- package/dist/v1/addressing/index.d.ts.map +0 -1
- package/dist/v1/addressing/index.js.map +0 -1
- package/dist/v1/addressing/key.d.ts.map +0 -1
- package/dist/v1/addressing/key.js.map +0 -1
- package/dist/v1/addressing/patterns.d.ts.map +0 -1
- package/dist/v1/addressing/patterns.js.map +0 -1
- package/dist/v1/addressing/property-key.d.ts.map +0 -1
- package/dist/v1/addressing/property-key.js.map +0 -1
- package/dist/v1/addressing/ref.d.ts +0 -35
- package/dist/v1/addressing/ref.d.ts.map +0 -1
- package/dist/v1/addressing/ref.js +0 -94
- package/dist/v1/addressing/ref.js.map +0 -1
- package/dist/v1/addressing/schema-ref.d.ts +0 -8
- package/dist/v1/addressing/schema-ref.d.ts.map +0 -1
- package/dist/v1/addressing/schema-ref.js +0 -2
- package/dist/v1/addressing/schema-ref.js.map +0 -1
- package/dist/v1/builder/callable.d.ts +0 -91
- package/dist/v1/builder/callable.d.ts.map +0 -1
- package/dist/v1/builder/callable.js.map +0 -1
- package/dist/v1/builder/compiler/callable.d.ts +0 -20
- package/dist/v1/builder/compiler/callable.d.ts.map +0 -1
- package/dist/v1/builder/compiler/callable.js.map +0 -1
- package/dist/v1/builder/compiler/core.d.ts +0 -6
- package/dist/v1/builder/compiler/core.d.ts.map +0 -1
- package/dist/v1/builder/compiler/core.js.map +0 -1
- package/dist/v1/builder/compiler/core.properties.d.ts +0 -6
- package/dist/v1/builder/compiler/core.properties.d.ts.map +0 -1
- package/dist/v1/builder/compiler/core.properties.js.map +0 -1
- package/dist/v1/builder/compiler/definition.d.ts +0 -32
- package/dist/v1/builder/compiler/definition.d.ts.map +0 -1
- package/dist/v1/builder/compiler/definition.js +0 -197
- package/dist/v1/builder/compiler/definition.js.map +0 -1
- package/dist/v1/builder/compiler/policy.d.ts +0 -17
- package/dist/v1/builder/compiler/policy.d.ts.map +0 -1
- package/dist/v1/builder/compiler/policy.js.map +0 -1
- package/dist/v1/builder/compiler/schema.capture.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.capture.js +0 -85
- package/dist/v1/builder/compiler/schema.capture.js.map +0 -1
- package/dist/v1/builder/compiler/schema.context.d.ts +0 -45
- package/dist/v1/builder/compiler/schema.context.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.context.js.map +0 -1
- package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.js.map +0 -1
- package/dist/v1/builder/compiler/schema.ownership.d.ts +0 -9
- package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.ownership.js.map +0 -1
- package/dist/v1/builder/compiler/value.d.ts +0 -26
- package/dist/v1/builder/compiler/value.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.js.map +0 -1
- package/dist/v1/builder/compiler/value.path.d.ts +0 -4
- package/dist/v1/builder/compiler/value.path.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.path.js.map +0 -1
- package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.zod.js.map +0 -1
- package/dist/v1/builder/compiler/view.d.ts +0 -12
- package/dist/v1/builder/compiler/view.d.ts.map +0 -1
- package/dist/v1/builder/compiler/view.js.map +0 -1
- package/dist/v1/builder/core.d.ts +0 -27
- package/dist/v1/builder/core.d.ts.map +0 -1
- package/dist/v1/builder/core.js +0 -21
- package/dist/v1/builder/core.js.map +0 -1
- package/dist/v1/builder/definition.d.ts +0 -155
- package/dist/v1/builder/definition.d.ts.map +0 -1
- package/dist/v1/builder/definition.js +0 -141
- package/dist/v1/builder/definition.js.map +0 -1
- package/dist/v1/builder/full-match.d.ts +0 -5
- package/dist/v1/builder/full-match.d.ts.map +0 -1
- package/dist/v1/builder/full-match.js +0 -12
- package/dist/v1/builder/full-match.js.map +0 -1
- package/dist/v1/builder/index.d.ts.map +0 -1
- package/dist/v1/builder/index.js.map +0 -1
- package/dist/v1/builder/internal/authoring.d.ts.map +0 -1
- package/dist/v1/builder/internal/authoring.js.map +0 -1
- package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
- package/dist/v1/builder/internal/authoring.lazy.js.map +0 -1
- package/dist/v1/builder/internal/diagnostic.d.ts +0 -4
- package/dist/v1/builder/internal/diagnostic.d.ts.map +0 -1
- package/dist/v1/builder/internal/diagnostic.js +0 -16
- package/dist/v1/builder/internal/diagnostic.js.map +0 -1
- package/dist/v1/builder/internal/path.metadata.d.ts +0 -5
- package/dist/v1/builder/internal/path.metadata.d.ts.map +0 -1
- package/dist/v1/builder/internal/path.metadata.js.map +0 -1
- package/dist/v1/builder/path.d.ts +0 -9
- package/dist/v1/builder/path.d.ts.map +0 -1
- package/dist/v1/builder/path.js.map +0 -1
- package/dist/v1/builder/policy.d.ts.map +0 -1
- package/dist/v1/builder/policy.js +0 -79
- package/dist/v1/builder/policy.js.map +0 -1
- package/dist/v1/builder/property.d.ts +0 -37
- package/dist/v1/builder/property.d.ts.map +0 -1
- package/dist/v1/builder/property.js +0 -36
- package/dist/v1/builder/property.js.map +0 -1
- package/dist/v1/builder/schema.d.ts +0 -6
- package/dist/v1/builder/schema.d.ts.map +0 -1
- package/dist/v1/builder/schema.input.d.ts +0 -19
- package/dist/v1/builder/schema.input.d.ts.map +0 -1
- package/dist/v1/builder/schema.input.js +0 -2
- package/dist/v1/builder/schema.input.js.map +0 -1
- package/dist/v1/builder/schema.js.map +0 -1
- package/dist/v1/builder/value-schema.d.ts.map +0 -1
- package/dist/v1/builder/value-schema.js.map +0 -1
- package/dist/v1/builder/view.d.ts +0 -19
- package/dist/v1/builder/view.d.ts.map +0 -1
- package/dist/v1/builder/view.js +0 -7
- package/dist/v1/builder/view.js.map +0 -1
- package/dist/v1/builder.d.ts +0 -3
- package/dist/v1/builder.d.ts.map +0 -1
- package/dist/v1/builder.js +0 -2
- package/dist/v1/builder.js.map +0 -1
- package/dist/v1/bundle/codec.d.ts.map +0 -1
- package/dist/v1/bundle/codec.js.map +0 -1
- package/dist/v1/bundle/index.d.ts.map +0 -1
- package/dist/v1/bundle/index.js.map +0 -1
- package/dist/v1/bundle/model.d.ts.map +0 -1
- package/dist/v1/bundle/model.js.map +0 -1
- package/dist/v1/bundle/structure.d.ts.map +0 -1
- package/dist/v1/bundle/structure.js.map +0 -1
- package/dist/v1/bundle.d.ts +0 -3
- package/dist/v1/bundle.d.ts.map +0 -1
- package/dist/v1/bundle.js +0 -3
- package/dist/v1/bundle.js.map +0 -1
- package/dist/v1/index.d.ts.map +0 -1
- package/dist/v1/index.js.map +0 -1
- package/dist/v1/schema/callable.d.ts +0 -29
- package/dist/v1/schema/callable.d.ts.map +0 -1
- package/dist/v1/schema/callable.js +0 -2
- package/dist/v1/schema/callable.js.map +0 -1
- package/dist/v1/schema/canonical/domain.d.ts.map +0 -1
- package/dist/v1/schema/canonical/domain.digest.d.ts.map +0 -1
- package/dist/v1/schema/canonical/domain.digest.js.map +0 -1
- package/dist/v1/schema/canonical/domain.js.map +0 -1
- package/dist/v1/schema/canonical/freeze.d.ts.map +0 -1
- package/dist/v1/schema/canonical/freeze.js.map +0 -1
- package/dist/v1/schema/compiled/admission.d.ts +0 -4
- package/dist/v1/schema/compiled/admission.d.ts.map +0 -1
- package/dist/v1/schema/compiled/admission.js +0 -217
- package/dist/v1/schema/compiled/admission.js.map +0 -1
- package/dist/v1/schema/compiled/authored-validator.d.ts +0 -5
- package/dist/v1/schema/compiled/authored-validator.d.ts.map +0 -1
- package/dist/v1/schema/compiled/authored-validator.js +0 -7
- package/dist/v1/schema/compiled/authored-validator.js.map +0 -1
- package/dist/v1/schema/compiled/compiler.d.ts +0 -5
- package/dist/v1/schema/compiled/compiler.d.ts.map +0 -1
- package/dist/v1/schema/compiled/compiler.js +0 -86
- package/dist/v1/schema/compiled/compiler.js.map +0 -1
- package/dist/v1/schema/compiled/model.d.ts +0 -61
- package/dist/v1/schema/compiled/model.d.ts.map +0 -1
- package/dist/v1/schema/compiled/model.js +0 -2
- package/dist/v1/schema/compiled/model.js.map +0 -1
- package/dist/v1/schema/compiled/program.d.ts.map +0 -1
- package/dist/v1/schema/compiled/program.js.map +0 -1
- package/dist/v1/schema/compiled/validator.d.ts +0 -23
- package/dist/v1/schema/compiled/validator.d.ts.map +0 -1
- package/dist/v1/schema/compiled/validator.js +0 -62
- package/dist/v1/schema/compiled/validator.js.map +0 -1
- package/dist/v1/schema/core/declaration.d.ts +0 -17
- package/dist/v1/schema/core/declaration.d.ts.map +0 -1
- package/dist/v1/schema/core/declaration.js +0 -2
- package/dist/v1/schema/core/declaration.js.map +0 -1
- package/dist/v1/schema/core/validate.d.ts +0 -6
- package/dist/v1/schema/core/validate.d.ts.map +0 -1
- package/dist/v1/schema/core/validate.js.map +0 -1
- package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
- package/dist/v1/schema/definition/analysis.js.map +0 -1
- package/dist/v1/schema/definition/class.d.ts +0 -28
- package/dist/v1/schema/definition/class.d.ts.map +0 -1
- package/dist/v1/schema/definition/class.js +0 -2
- package/dist/v1/schema/definition/class.js.map +0 -1
- package/dist/v1/schema/definition/data.d.ts.map +0 -1
- package/dist/v1/schema/definition/data.js.map +0 -1
- package/dist/v1/schema/definition/edge.d.ts.map +0 -1
- package/dist/v1/schema/definition/edge.js +0 -2
- package/dist/v1/schema/definition/edge.js.map +0 -1
- package/dist/v1/schema/definition/interface.d.ts +0 -22
- package/dist/v1/schema/definition/interface.d.ts.map +0 -1
- package/dist/v1/schema/definition/interface.js +0 -2
- package/dist/v1/schema/definition/interface.js.map +0 -1
- package/dist/v1/schema/definition/property.d.ts +0 -18
- package/dist/v1/schema/definition/property.d.ts.map +0 -1
- package/dist/v1/schema/definition/property.js +0 -2
- package/dist/v1/schema/definition/property.js.map +0 -1
- package/dist/v1/schema/definition/validate.d.ts +0 -5
- package/dist/v1/schema/definition/validate.d.ts.map +0 -1
- package/dist/v1/schema/definition/validate.js +0 -221
- package/dist/v1/schema/definition/validate.js.map +0 -1
- package/dist/v1/schema/dependency.meaning.d.ts.map +0 -1
- package/dist/v1/schema/dependency.meaning.js.map +0 -1
- package/dist/v1/schema/diagnostic.d.ts.map +0 -1
- package/dist/v1/schema/diagnostic.js.map +0 -1
- package/dist/v1/schema/domain.accept.d.ts +0 -4
- package/dist/v1/schema/domain.accept.d.ts.map +0 -1
- package/dist/v1/schema/domain.accept.js.map +0 -1
- package/dist/v1/schema/domain.codec.d.ts.map +0 -1
- package/dist/v1/schema/domain.codec.js.map +0 -1
- package/dist/v1/schema/domain.header.d.ts +0 -15
- package/dist/v1/schema/domain.header.d.ts.map +0 -1
- package/dist/v1/schema/domain.header.js +0 -21
- package/dist/v1/schema/domain.header.js.map +0 -1
- package/dist/v1/schema/domain.ir.d.ts +0 -40
- package/dist/v1/schema/domain.ir.d.ts.map +0 -1
- package/dist/v1/schema/domain.ir.js +0 -5
- package/dist/v1/schema/domain.ir.js.map +0 -1
- package/dist/v1/schema/domain.lookup.d.ts.map +0 -1
- package/dist/v1/schema/domain.lookup.js.map +0 -1
- package/dist/v1/schema/domain.resolve.d.ts +0 -26
- package/dist/v1/schema/domain.resolve.d.ts.map +0 -1
- package/dist/v1/schema/domain.resolve.js +0 -43
- package/dist/v1/schema/domain.resolve.js.map +0 -1
- package/dist/v1/schema/domain.revision.d.ts.map +0 -1
- package/dist/v1/schema/domain.revision.js.map +0 -1
- package/dist/v1/schema/domain.validate.d.ts +0 -12
- package/dist/v1/schema/domain.validate.d.ts.map +0 -1
- package/dist/v1/schema/domain.validate.js.map +0 -1
- package/dist/v1/schema/index.d.ts.map +0 -1
- package/dist/v1/schema/index.js.map +0 -1
- package/dist/v1/schema/metadata.d.ts.map +0 -1
- package/dist/v1/schema/metadata.js.map +0 -1
- package/dist/v1/schema/policy/ast.d.ts +0 -77
- package/dist/v1/schema/policy/ast.d.ts.map +0 -1
- package/dist/v1/schema/policy/ast.js +0 -2
- package/dist/v1/schema/policy/ast.js.map +0 -1
- package/dist/v1/schema/policy/normalize.d.ts +0 -5
- package/dist/v1/schema/policy/normalize.d.ts.map +0 -1
- package/dist/v1/schema/policy/normalize.js.map +0 -1
- package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/branches.js.map +0 -1
- package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/budgets.js.map +0 -1
- package/dist/v1/schema/policy/validation/context.d.ts +0 -28
- package/dist/v1/schema/policy/validation/context.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/context.js.map +0 -1
- package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/references.js.map +0 -1
- package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/typing.js.map +0 -1
- package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/uses.js.map +0 -1
- package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/validate.js.map +0 -1
- package/dist/v1/schema/reference.d.ts +0 -43
- package/dist/v1/schema/reference.d.ts.map +0 -1
- package/dist/v1/schema/reference.js +0 -31
- package/dist/v1/schema/reference.js.map +0 -1
- package/dist/v1/schema/resolution/closure.d.ts.map +0 -1
- package/dist/v1/schema/resolution/closure.js.map +0 -1
- package/dist/v1/schema/resolution/context.d.ts.map +0 -1
- package/dist/v1/schema/resolution/context.js.map +0 -1
- package/dist/v1/schema/resolution/definition.index.d.ts.map +0 -1
- package/dist/v1/schema/resolution/definition.index.js.map +0 -1
- package/dist/v1/schema/resolution/origins.d.ts.map +0 -1
- package/dist/v1/schema/resolution/origins.js.map +0 -1
- package/dist/v1/schema/resolution/value.registry.d.ts.map +0 -1
- package/dist/v1/schema/resolution/value.registry.js.map +0 -1
- package/dist/v1/schema/validation/domain.route.d.ts.map +0 -1
- package/dist/v1/schema/validation/domain.route.js.map +0 -1
- package/dist/v1/schema/validation/domain.structure.d.ts.map +0 -1
- package/dist/v1/schema/validation/domain.structure.js.map +0 -1
- package/dist/v1/schema/validation/value.d.ts.map +0 -1
- package/dist/v1/schema/validation/value.js.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/schema.d.ts.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/schema.js.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/validate.d.ts +0 -5
- package/dist/v1/schema/value/extensions/node-path/validate.d.ts.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/validate.js.map +0 -1
- package/dist/v1/schema/value/full-match.d.ts.map +0 -1
- package/dist/v1/schema/value/full-match.js.map +0 -1
- package/dist/v1/schema/value/index.d.ts.map +0 -1
- package/dist/v1/schema/value/index.js.map +0 -1
- package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/assertions.js.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
- package/dist/v1/schema/value/instance/preparation.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/preparation.js.map +0 -1
- package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/types.js.map +0 -1
- package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/instance.validate.js.map +0 -1
- package/dist/v1/schema/value/instant.d.ts.map +0 -1
- package/dist/v1/schema/value/instant.js.map +0 -1
- package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
- package/dist/v1/schema/value/location/keywords.js.map +0 -1
- package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
- package/dist/v1/schema/value/location/pointer.js.map +0 -1
- package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
- package/dist/v1/schema/value/location/walk.js.map +0 -1
- package/dist/v1/schema/value/object.d.ts.map +0 -1
- package/dist/v1/schema/value/object.js.map +0 -1
- package/dist/v1/schema/value/ordering.d.ts.map +0 -1
- package/dist/v1/schema/value/ordering.js.map +0 -1
- package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/canonicalize.js.map +0 -1
- package/dist/v1/schema/value/profile/dialect.d.ts +0 -5
- package/dist/v1/schema/value/profile/dialect.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/dialect.js +0 -36
- package/dist/v1/schema/value/profile/dialect.js.map +0 -1
- package/dist/v1/schema/value/profile/json.validate.d.ts +0 -3
- package/dist/v1/schema/value/profile/json.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/json.validate.js.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.d.ts +0 -5
- package/dist/v1/schema/value/profile/meta-schema.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.js.map +0 -1
- package/dist/v1/schema/value/profile/rules.d.ts +0 -5
- package/dist/v1/schema/value/profile/rules.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/rules.js.map +0 -1
- package/dist/v1/schema/value/profile/validate.d.ts +0 -5
- package/dist/v1/schema/value/profile/validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/validate.js.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.js.map +0 -1
- package/dist/v1/schema/value/regexp/ast.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/ast.js.map +0 -1
- package/dist/v1/schema/value/regexp/compile.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/compile.js.map +0 -1
- package/dist/v1/schema/value/regexp/linear.d.ts +0 -20
- package/dist/v1/schema/value/regexp/linear.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/linear.js +0 -24
- package/dist/v1/schema/value/regexp/linear.js.map +0 -1
- package/dist/v1/schema/value/regexp/lower.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/lower.js.map +0 -1
- package/dist/v1/schema/value/regexp/matcher.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/matcher.js.map +0 -1
- package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/pattern.js.map +0 -1
- package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
- package/dist/v1/schema/value/registry.d.ts.map +0 -1
- package/dist/v1/schema/value/registry.js +0 -2
- package/dist/v1/schema/value/registry.js.map +0 -1
- package/dist/v1/schema/value/resources/closure.d.ts +0 -12
- package/dist/v1/schema/value/resources/closure.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/closure.js.map +0 -1
- package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/recursion.js.map +0 -1
- package/dist/v1/schema/value/resources/references.d.ts +0 -25
- package/dist/v1/schema/value/resources/references.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/references.js +0 -93
- package/dist/v1/schema/value/resources/references.js.map +0 -1
- package/dist/v1/schema/value/resources/registry.index.d.ts +0 -22
- package/dist/v1/schema/value/resources/registry.index.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/registry.index.js.map +0 -1
- package/dist/v1/schema/value/schema.d.ts.map +0 -1
- package/dist/v1/schema/value/schema.js.map +0 -1
- package/dist/v1/schema/view/declaration.d.ts +0 -14
- package/dist/v1/schema/view/declaration.d.ts.map +0 -1
- package/dist/v1/schema/view/declaration.js +0 -2
- package/dist/v1/schema/view/declaration.js.map +0 -1
- package/dist/v1/schema/view/validate.d.ts +0 -4
- package/dist/v1/schema/view/validate.d.ts.map +0 -1
- package/dist/v1/schema/view/validate.js.map +0 -1
- package/dist/v1/schema.d.ts +0 -3
- package/dist/v1/schema.d.ts.map +0 -1
- package/dist/v1/schema.js +0 -3
- package/dist/v1/schema.js.map +0 -1
- package/dist/v1.d.ts.map +0 -1
- package/dist/v1.js.map +0 -1
- package/dist/value/accept.d.ts.map +0 -1
- package/dist/value/accept.js.map +0 -1
- package/dist/value/canonical.d.ts.map +0 -1
- package/dist/value/canonical.js.map +0 -1
- package/dist/value/decode.d.ts.map +0 -1
- package/dist/value/decode.js.map +0 -1
- package/dist/value/equal.d.ts.map +0 -1
- package/dist/value/equal.js.map +0 -1
- package/dist/value/error.d.ts.map +0 -1
- package/dist/value/error.js.map +0 -1
- package/dist/value/index.d.ts.map +0 -1
- package/dist/value/index.js.map +0 -1
- package/dist/value/json.d.ts.map +0 -1
- package/dist/value/json.js.map +0 -1
- package/dist/value/limits.d.ts.map +0 -1
- package/dist/value/limits.js.map +0 -1
- package/dist/value/types.d.ts.map +0 -1
- package/dist/value/types.js.map +0 -1
- package/dist/value/unicode.d.ts.map +0 -1
- package/dist/value/unicode.js.map +0 -1
- package/dist/version/dispatch.d.ts.map +0 -1
- package/dist/version/dispatch.js.map +0 -1
- package/dist/version/index.d.ts.map +0 -1
- package/dist/version/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DefinitionKey } from '../../addressing/index.js';
|
|
2
|
+
import type { PropertyValues } from '../class/property-values.js';
|
|
3
|
+
import type { ResolvedClass } from '../class/resolved.js';
|
|
4
|
+
import type { CoreDefinition } from './model/core.js';
|
|
5
|
+
export interface ResolvedCoreDefinition {
|
|
6
|
+
readonly ref: CoreDefinition['ref'];
|
|
7
|
+
readonly key: DefinitionKey<string, 'core'>;
|
|
8
|
+
readonly class: ResolvedClass<'node'>;
|
|
9
|
+
readonly properties: PropertyValues;
|
|
10
|
+
readonly definition: CoreDefinition;
|
|
11
|
+
}
|
|
12
|
+
export interface ResolvedDomainEndpoint {
|
|
13
|
+
readonly kind: 'domain';
|
|
14
|
+
readonly origin: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ResolvedCoreEdge {
|
|
17
|
+
readonly class: ResolvedClass<'edge'>;
|
|
18
|
+
readonly source: ResolvedCoreDefinition | ResolvedDomainEndpoint;
|
|
19
|
+
readonly target: ResolvedCoreDefinition | ResolvedDomainEndpoint;
|
|
20
|
+
readonly properties: PropertyValues;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FunctionDefinition } from './callable/model/callable.js';
|
|
2
|
+
import type { ClassDefinition } from './class/model/class.js';
|
|
3
|
+
import type { CoreDefinition } from './core/model/core.js';
|
|
4
|
+
import type { PolicyDefinition } from './policy/model/policy.js';
|
|
5
|
+
import type { ViewDefinition } from './view/model/view.js';
|
|
6
|
+
/** Every named V1 product Definition. Property and Method remain Class-owned members. */
|
|
7
|
+
export type Definition = ClassDefinition | FunctionDefinition | PolicyDefinition | ViewDefinition | CoreDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type { ClassRef, CoreRef, DefinitionBase, DefinitionKey, DefinitionRef, FunctionRef, MethodKey, PolicyRef, PropertyKey, ViewRef, } from '../addressing/index.js';
|
|
2
|
+
export type { Value as PropertyValue } from '@astrale-os/kernel-dsl/value';
|
|
3
|
+
export type { JsonSchema as ValueSchema, JsonSchemaObject as ValueSchemaObject, } from './value/model/schema.js';
|
|
4
|
+
export type { OrderingKind } from './value/ordering.js';
|
|
5
|
+
export { stateMachine } from './state/index.js';
|
|
6
|
+
export type { EventOf, StateMachine, StateOf, StateTopology } from './state/index.js';
|
|
7
|
+
export type * from './callable/model/callable.js';
|
|
8
|
+
export type * from './callable/resolved.js';
|
|
9
|
+
export type * from './class/model/class.js';
|
|
10
|
+
export type { DataDefinition, DataFacet, MediaType } from './class/model/data.js';
|
|
11
|
+
export type * from './class/model/edge.js';
|
|
12
|
+
export type * from './class/model/property.js';
|
|
13
|
+
export type * from './class/resolved.js';
|
|
14
|
+
export type * from './class/facets.js';
|
|
15
|
+
export { PropertyValues } from './class/property-values.js';
|
|
16
|
+
export type { PropertyValuesOperations } from './class/property-values.js';
|
|
17
|
+
export type * from './core/model/core.js';
|
|
18
|
+
export type * from './core/resolved.js';
|
|
19
|
+
export type { Definition } from './definition.js';
|
|
20
|
+
export type { ResolvedDefinition, ResolvedDefinitionOf } from './resolved.js';
|
|
21
|
+
export type { Diagnostic, DiagnosticCode } from './validation/diagnostic.js';
|
|
22
|
+
export type * from './policy/model/policy.js';
|
|
23
|
+
export { policyVariableClass, policyVariableSelector, policyObjectKey, policyObjectOrigin, } from './policy/model/policy.js';
|
|
24
|
+
export type * from './policy/resolved.js';
|
|
25
|
+
export type * from './view/model/view.js';
|
|
26
|
+
export type * from './view/resolved.js';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { PolicyEdgePattern, PolicyPatternExpression, PolicyPatternTerm } from '../ast.js';
|
|
1
|
+
import type { PolicyEdgePattern, PolicyPatternExpression, PolicyPatternTerm, PolicyVariableSelector } from '../model/policy.js';
|
|
3
2
|
export interface PatternBranch {
|
|
3
|
+
readonly terms: ReadonlyMap<string, PolicyPatternTerm>;
|
|
4
|
+
readonly equalities: readonly (readonly [string, string])[];
|
|
4
5
|
readonly edges: readonly PatternEdgeUse[];
|
|
5
|
-
readonly variables: ReadonlyMap<string,
|
|
6
|
+
readonly variables: ReadonlyMap<string, PolicyVariableSelector>;
|
|
6
7
|
readonly requiredVariables: ReadonlySet<string>;
|
|
7
8
|
readonly namespace: string;
|
|
8
9
|
}
|
|
@@ -15,7 +16,5 @@ export declare function branchesOf(pattern: PolicyPatternExpression, namespace:
|
|
|
15
16
|
export declare function branchProduct(children: readonly (readonly PatternBranch[])[]): readonly PatternBranch[];
|
|
16
17
|
export declare function capBranches(values: readonly PatternBranch[]): readonly PatternBranch[];
|
|
17
18
|
export declare function isConnected(branch: PatternBranch): boolean;
|
|
18
|
-
/** A normalized branch targets either one object or both authored Edge endpoints, never a mixture. */
|
|
19
19
|
export declare function targetMode(branch: PatternBranch): PolicyTargetMode | undefined;
|
|
20
20
|
export declare function termKey(term: PolicyPatternTerm, namespace: string): string;
|
|
21
|
-
//# sourceMappingURL=branches.d.ts.map
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { definitionRefIndex } from '../../../addressing/ordering.js';
|
|
2
|
+
import { policyObjectKey, policyVariableSelector } from '../model/policy.js';
|
|
1
3
|
import { BRANCH_OVERFLOW } from './budgets.js';
|
|
2
4
|
export function branchesOf(pattern, namespace) {
|
|
3
5
|
const variables = collectVariableClasses(pattern, namespace);
|
|
@@ -25,7 +27,7 @@ export function isConnected(branch) {
|
|
|
25
27
|
const mode = targetMode(branch);
|
|
26
28
|
if (mode === undefined)
|
|
27
29
|
return false;
|
|
28
|
-
const vertices = new Set(
|
|
30
|
+
const vertices = new Set(['subject', ...branch.terms.keys()]);
|
|
29
31
|
for (const variable of branch.requiredVariables)
|
|
30
32
|
vertices.add(variable);
|
|
31
33
|
const union = new UnionFind(vertices);
|
|
@@ -36,34 +38,39 @@ export function isConnected(branch) {
|
|
|
36
38
|
union.add(target);
|
|
37
39
|
union.join(source, target);
|
|
38
40
|
}
|
|
41
|
+
for (const [left, right] of branch.equalities)
|
|
42
|
+
union.join(left, right);
|
|
39
43
|
const root = union.find('subject');
|
|
40
44
|
return [...vertices].every((vertex) => union.find(vertex) === root);
|
|
41
45
|
}
|
|
42
|
-
/** A normalized branch targets either one object or both authored Edge endpoints, never a mixture. */
|
|
43
46
|
export function targetMode(branch) {
|
|
44
47
|
let object = false;
|
|
45
48
|
let source = false;
|
|
46
49
|
let target = false;
|
|
47
|
-
for (const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
target ||= term.kind === 'target';
|
|
52
|
-
}
|
|
50
|
+
for (const term of branch.terms.values()) {
|
|
51
|
+
object ||= term.kind === 'object';
|
|
52
|
+
source ||= term.kind === 'source';
|
|
53
|
+
target ||= term.kind === 'target';
|
|
53
54
|
}
|
|
54
55
|
if (object && !source && !target)
|
|
55
56
|
return 'object';
|
|
56
|
-
if (!object && source
|
|
57
|
+
if (!object && (source || target))
|
|
57
58
|
return 'edge';
|
|
58
59
|
return undefined;
|
|
59
60
|
}
|
|
60
61
|
export function termKey(term, namespace) {
|
|
61
|
-
return term.kind === 'variable'
|
|
62
|
+
return term.kind === 'variable'
|
|
63
|
+
? variableKey(namespace, term.id)
|
|
64
|
+
: term.kind === 'ref'
|
|
65
|
+
? `ref:${term.ref.kind === 'method' ? policyObjectKey(term.ref) : definitionRefIndex(term.ref)}`
|
|
66
|
+
: term.kind;
|
|
62
67
|
}
|
|
63
68
|
function branchesForNode(pattern, namespace, variables) {
|
|
64
|
-
if (
|
|
69
|
+
if ('source' in pattern) {
|
|
65
70
|
return [
|
|
66
71
|
{
|
|
72
|
+
terms: new Map([pattern.source, pattern.target].map((term) => [termKey(term, namespace), term])),
|
|
73
|
+
equalities: [],
|
|
67
74
|
edges: [{ pattern, namespace }],
|
|
68
75
|
variables,
|
|
69
76
|
requiredVariables: new Set(),
|
|
@@ -71,6 +78,24 @@ function branchesForNode(pattern, namespace, variables) {
|
|
|
71
78
|
},
|
|
72
79
|
];
|
|
73
80
|
}
|
|
81
|
+
if ('sameNode' in pattern) {
|
|
82
|
+
const terms = new Map([pattern.sameNode.left, pattern.sameNode.right].map((term) => [
|
|
83
|
+
termKey(term, namespace),
|
|
84
|
+
term,
|
|
85
|
+
]));
|
|
86
|
+
return [
|
|
87
|
+
{
|
|
88
|
+
terms,
|
|
89
|
+
equalities: [
|
|
90
|
+
[termKey(pattern.sameNode.left, namespace), termKey(pattern.sameNode.right, namespace)],
|
|
91
|
+
],
|
|
92
|
+
edges: [],
|
|
93
|
+
variables,
|
|
94
|
+
requiredVariables: new Set(),
|
|
95
|
+
namespace,
|
|
96
|
+
},
|
|
97
|
+
];
|
|
98
|
+
}
|
|
74
99
|
if ('exists' in pattern) {
|
|
75
100
|
const direct = new Set(pattern.exists.nodes.map((node) => variableKey(namespace, node.variable.id)));
|
|
76
101
|
return branchesForNode(pattern.exists.where, namespace, variables).map((branch) => ({
|
|
@@ -78,12 +103,13 @@ function branchesForNode(pattern, namespace, variables) {
|
|
|
78
103
|
requiredVariables: new Set([...branch.requiredVariables, ...direct]),
|
|
79
104
|
}));
|
|
80
105
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
return key === 'allOf' ? branchProduct(children) : capBranches(children.flat());
|
|
106
|
+
const children = ('allOf' in pattern ? pattern.allOf : pattern.anyOf).map((child) => branchesForNode(child, namespace, variables));
|
|
107
|
+
return 'allOf' in pattern ? branchProduct(children) : capBranches(children.flat());
|
|
84
108
|
}
|
|
85
109
|
function emptyBranch() {
|
|
86
110
|
return {
|
|
111
|
+
terms: new Map(),
|
|
112
|
+
equalities: [],
|
|
87
113
|
edges: [],
|
|
88
114
|
variables: new Map(),
|
|
89
115
|
requiredVariables: new Set(),
|
|
@@ -92,6 +118,8 @@ function emptyBranch() {
|
|
|
92
118
|
}
|
|
93
119
|
function mergeBranches(left, right) {
|
|
94
120
|
return {
|
|
121
|
+
terms: new Map([...left.terms, ...right.terms]),
|
|
122
|
+
equalities: [...left.equalities, ...right.equalities],
|
|
95
123
|
edges: [...left.edges, ...right.edges],
|
|
96
124
|
variables: new Map([...left.variables, ...right.variables]),
|
|
97
125
|
requiredVariables: new Set([...left.requiredVariables, ...right.requiredVariables]),
|
|
@@ -103,7 +131,7 @@ function collectVariableClasses(pattern, namespace) {
|
|
|
103
131
|
const visit = (node) => {
|
|
104
132
|
if ('exists' in node) {
|
|
105
133
|
for (const variable of node.exists.nodes) {
|
|
106
|
-
result.set(variableKey(namespace, variable.variable.id), variable
|
|
134
|
+
result.set(variableKey(namespace, variable.variable.id), policyVariableSelector(variable));
|
|
107
135
|
}
|
|
108
136
|
visit(node.exists.where);
|
|
109
137
|
}
|
|
@@ -118,14 +146,6 @@ function collectVariableClasses(pattern, namespace) {
|
|
|
118
146
|
function variableKey(namespace, id) {
|
|
119
147
|
return `variable:${namespace}:${id}`;
|
|
120
148
|
}
|
|
121
|
-
function patternOperands(value) {
|
|
122
|
-
return 'allOf' in value
|
|
123
|
-
? { key: 'allOf', values: value.allOf }
|
|
124
|
-
: { key: 'anyOf', values: value.anyOf };
|
|
125
|
-
}
|
|
126
|
-
function isEdge(value) {
|
|
127
|
-
return 'source' in value;
|
|
128
|
-
}
|
|
129
149
|
class UnionFind {
|
|
130
150
|
#parents = new Map();
|
|
131
151
|
constructor(values) {
|
|
@@ -152,4 +172,3 @@ class UnionFind {
|
|
|
152
172
|
this.#parents.set(b, a);
|
|
153
173
|
}
|
|
154
174
|
}
|
|
155
|
-
//# sourceMappingURL=branches.js.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { PolicyCheckExpression } from '../
|
|
2
|
-
import type { PolicyValidationContext } from './context.js';
|
|
1
|
+
import type { PolicyCheckExpression } from '../model/policy.js';
|
|
3
2
|
export declare const MAX_PATTERN_DEPTH = 4;
|
|
4
3
|
export declare const MAX_BRANCHES = 8;
|
|
5
4
|
export declare const MAX_VARIABLES = 4;
|
|
@@ -14,6 +13,4 @@ export interface CheckMeasure {
|
|
|
14
13
|
readonly branches: number;
|
|
15
14
|
readonly leaves: number;
|
|
16
15
|
}
|
|
17
|
-
export declare function validatePolicyBudgets(context: PolicyValidationContext): void;
|
|
18
16
|
export declare function measureChecks(expression: PolicyCheckExpression): CheckMeasure;
|
|
19
|
-
//# sourceMappingURL=budgets.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const MAX_PATTERN_DEPTH = 4;
|
|
2
|
+
export const MAX_BRANCHES = 8;
|
|
3
|
+
export const MAX_VARIABLES = 4;
|
|
4
|
+
export const MAX_EDGES = 6;
|
|
5
|
+
export const MAX_REPEAT = 3;
|
|
6
|
+
export const MAX_DOMAINS = 4;
|
|
7
|
+
export const MAX_CHECK_DEPTH = 4;
|
|
8
|
+
export const MAX_CHECK_LEAVES = 8;
|
|
9
|
+
export const BRANCH_OVERFLOW = MAX_BRANCHES + 1;
|
|
10
|
+
export function measureChecks(expression) {
|
|
11
|
+
if ('check' in expression || 'sameNode' in expression)
|
|
12
|
+
return { depth: 1, branches: 1, leaves: 1 };
|
|
13
|
+
const children = ('allOf' in expression ? expression.allOf : expression.anyOf).map(measureChecks);
|
|
14
|
+
const branches = 'allOf' in expression
|
|
15
|
+
? children.reduce((value, child) => saturatingProduct(value, child.branches), 1)
|
|
16
|
+
: children.reduce((value, child) => Math.min(BRANCH_OVERFLOW, value + child.branches), 0);
|
|
17
|
+
return {
|
|
18
|
+
depth: 1 + Math.max(0, ...children.map((child) => child.depth)),
|
|
19
|
+
branches,
|
|
20
|
+
leaves: children.reduce((value, child) => value + child.leaves, 0),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function saturatingProduct(left, right) {
|
|
24
|
+
return Math.min(BRANCH_OVERFLOW, left * right);
|
|
25
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { CoreRef, ClassRef, FunctionRef, PolicyRef, ViewRef, DefinitionBase, MethodAddress } from '../../../addressing/index.js';
|
|
2
|
+
export type PolicyPatternTerm = {
|
|
3
|
+
readonly kind: 'subject';
|
|
4
|
+
} | {
|
|
5
|
+
readonly kind: 'object';
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: 'source';
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: 'target';
|
|
10
|
+
} | {
|
|
11
|
+
readonly kind: 'variable';
|
|
12
|
+
readonly id: number;
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: 'ref';
|
|
15
|
+
readonly ref: PolicyObjectRef;
|
|
16
|
+
};
|
|
17
|
+
/** Identity equality; both terms must resolve to one valid Node. */
|
|
18
|
+
export interface PolicySameNode<Term> {
|
|
19
|
+
readonly sameNode: {
|
|
20
|
+
readonly left: Term;
|
|
21
|
+
readonly right: Term;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface ExactPolicyVariable {
|
|
25
|
+
readonly variable: {
|
|
26
|
+
readonly kind: 'variable';
|
|
27
|
+
readonly id: number;
|
|
28
|
+
};
|
|
29
|
+
readonly class: ClassRef;
|
|
30
|
+
}
|
|
31
|
+
export interface SelectedPolicyVariable {
|
|
32
|
+
readonly variable: {
|
|
33
|
+
readonly kind: 'variable';
|
|
34
|
+
readonly id: number;
|
|
35
|
+
};
|
|
36
|
+
readonly selector: {
|
|
37
|
+
readonly kind: 'any';
|
|
38
|
+
} | {
|
|
39
|
+
readonly kind: 'satisfies';
|
|
40
|
+
readonly class: ClassRef;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* An existential Node binding. The class-bearing legacy form is deliberately retained as the
|
|
45
|
+
* canonical exact selector so persisted V1 DomainSchema documents keep their original meaning.
|
|
46
|
+
*/
|
|
47
|
+
export type PolicyVariable = ExactPolicyVariable | SelectedPolicyVariable;
|
|
48
|
+
export type PolicyVariableSelector = {
|
|
49
|
+
readonly kind: 'exact';
|
|
50
|
+
readonly class: ClassRef;
|
|
51
|
+
} | SelectedPolicyVariable['selector'];
|
|
52
|
+
/** Resolve the semantic selector while preserving the legacy exact wire representation. */
|
|
53
|
+
export declare function policyVariableSelector(variable: PolicyVariable): PolicyVariableSelector;
|
|
54
|
+
/** Return the selector's referenced Class, when it has one. */
|
|
55
|
+
export declare function policyVariableClass(variable: PolicyVariable): ClassRef | undefined;
|
|
56
|
+
export interface PolicyRepeat {
|
|
57
|
+
readonly min: number;
|
|
58
|
+
readonly max: number;
|
|
59
|
+
}
|
|
60
|
+
export interface PolicyEdgePattern {
|
|
61
|
+
readonly source: PolicyPatternTerm;
|
|
62
|
+
readonly class: ClassRef;
|
|
63
|
+
readonly target: PolicyPatternTerm;
|
|
64
|
+
readonly repeat?: PolicyRepeat;
|
|
65
|
+
}
|
|
66
|
+
export type PolicyPatternExpression = PolicyEdgePattern | PolicySameNode<PolicyPatternTerm> | {
|
|
67
|
+
readonly exists: {
|
|
68
|
+
readonly nodes: readonly PolicyVariable[];
|
|
69
|
+
readonly where: PolicyPatternExpression;
|
|
70
|
+
};
|
|
71
|
+
} | {
|
|
72
|
+
readonly allOf: readonly PolicyPatternExpression[];
|
|
73
|
+
} | {
|
|
74
|
+
readonly anyOf: readonly PolicyPatternExpression[];
|
|
75
|
+
};
|
|
76
|
+
export type PolicyExpression = {
|
|
77
|
+
readonly match: PolicyPatternExpression;
|
|
78
|
+
} | {
|
|
79
|
+
readonly allOf: readonly PolicyRef[];
|
|
80
|
+
} | {
|
|
81
|
+
readonly anyOf: readonly PolicyRef[];
|
|
82
|
+
};
|
|
83
|
+
export interface PolicyDefinition extends DefinitionBase<PolicyRef> {
|
|
84
|
+
readonly expression: PolicyExpression;
|
|
85
|
+
readonly description?: string;
|
|
86
|
+
}
|
|
87
|
+
/** Local Domain members whose installed projection resolves through one exact member Path. */
|
|
88
|
+
export type PolicyObjectRef = ClassRef | FunctionRef | PolicyRef | ViewRef | CoreRef | MethodAddress;
|
|
89
|
+
/** Exact projected identity, including Class-owned Method declarations. */
|
|
90
|
+
export declare function policyObjectKey(ref: PolicyObjectRef): string;
|
|
91
|
+
export declare function policyObjectOrigin(ref: PolicyObjectRef): string;
|
|
92
|
+
export type PolicyCheckObject = {
|
|
93
|
+
readonly kind: 'self';
|
|
94
|
+
} | {
|
|
95
|
+
readonly kind: 'input';
|
|
96
|
+
readonly field: string;
|
|
97
|
+
} | {
|
|
98
|
+
readonly kind: 'ref';
|
|
99
|
+
readonly ref: PolicyObjectRef;
|
|
100
|
+
};
|
|
101
|
+
/** Versioned Policy-check grammar specialized by each lifecycle boundary. */
|
|
102
|
+
export type PolicyCheckExpression<Policy = PolicyRef, Object = PolicyCheckObject> = {
|
|
103
|
+
readonly check: Policy;
|
|
104
|
+
readonly object: Object;
|
|
105
|
+
} | PolicySameNode<Object> | {
|
|
106
|
+
readonly allOf: readonly [
|
|
107
|
+
PolicyCheckExpression<Policy, Object>,
|
|
108
|
+
...PolicyCheckExpression<Policy, Object>[]
|
|
109
|
+
];
|
|
110
|
+
} | {
|
|
111
|
+
readonly anyOf: readonly [
|
|
112
|
+
PolicyCheckExpression<Policy, Object>,
|
|
113
|
+
...PolicyCheckExpression<Policy, Object>[]
|
|
114
|
+
];
|
|
115
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Resolve the semantic selector while preserving the legacy exact wire representation. */
|
|
2
|
+
export function policyVariableSelector(variable) {
|
|
3
|
+
return 'class' in variable ? { kind: 'exact', class: variable.class } : variable.selector;
|
|
4
|
+
}
|
|
5
|
+
/** Return the selector's referenced Class, when it has one. */
|
|
6
|
+
export function policyVariableClass(variable) {
|
|
7
|
+
const selector = policyVariableSelector(variable);
|
|
8
|
+
return selector.kind === 'any' ? undefined : selector.class;
|
|
9
|
+
}
|
|
10
|
+
/** Exact projected identity, including Class-owned Method declarations. */
|
|
11
|
+
export function policyObjectKey(ref) {
|
|
12
|
+
return ref.kind === 'method'
|
|
13
|
+
? `${ref.owner.origin}:class.${ref.owner.name}.method.${ref.name}`
|
|
14
|
+
: `${ref.origin}:${ref.kind}.${ref.name}`;
|
|
15
|
+
}
|
|
16
|
+
export function policyObjectOrigin(ref) {
|
|
17
|
+
return ref.kind === 'method' ? ref.owner.origin : ref.origin;
|
|
18
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PolicyCheckExpression, PolicyExpression, PolicyPatternExpression } from '../model/policy.js';
|
|
2
|
+
export declare function normalizePolicyExpression(value: PolicyExpression): PolicyExpression;
|
|
3
|
+
export declare function normalizePolicyPattern(value: PolicyPatternExpression): PolicyPatternExpression;
|
|
4
|
+
export declare function normalizePolicyChecks(value: PolicyCheckExpression): PolicyCheckExpression;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { json } from '@astrale-os/kernel-dsl/value';
|
|
2
|
-
import {
|
|
2
|
+
import { definitionRefIndex, compareDefinitionRefs } from '../../../addressing/ordering.js';
|
|
3
|
+
import { policyObjectKey, policyVariableSelector } from '../model/policy.js';
|
|
3
4
|
const textEncoder = new TextEncoder();
|
|
4
|
-
export function
|
|
5
|
+
export function normalizePolicyExpression(value) {
|
|
5
6
|
if ('match' in value) {
|
|
6
|
-
return
|
|
7
|
+
return { match: normalizePolicyPattern(value.match) };
|
|
7
8
|
}
|
|
8
9
|
if ('allOf' in value) {
|
|
9
|
-
return
|
|
10
|
+
return { allOf: uniqueRefs(value.allOf) };
|
|
10
11
|
}
|
|
11
|
-
return
|
|
12
|
+
return { anyOf: uniqueRefs(value.anyOf) };
|
|
12
13
|
}
|
|
13
14
|
export function normalizePolicyPattern(value) {
|
|
14
15
|
const rewritten = rewriteVariables(value, canonicalVariableIds(value));
|
|
@@ -17,6 +18,8 @@ export function normalizePolicyPattern(value) {
|
|
|
17
18
|
export function normalizePolicyChecks(value) {
|
|
18
19
|
if ('check' in value)
|
|
19
20
|
return value;
|
|
21
|
+
if ('sameNode' in value)
|
|
22
|
+
return { sameNode: normalizeEquality(value.sameNode) };
|
|
20
23
|
if ('allOf' in value) {
|
|
21
24
|
const children = value.allOf.flatMap((child) => {
|
|
22
25
|
const normalized = normalizePolicyChecks(child);
|
|
@@ -36,6 +39,8 @@ function policyCheckComposition(values) {
|
|
|
36
39
|
return values;
|
|
37
40
|
}
|
|
38
41
|
function normalizePatternNode(value) {
|
|
42
|
+
if ('sameNode' in value)
|
|
43
|
+
return { sameNode: normalizeEquality(value.sameNode) };
|
|
39
44
|
if (isEdge(value)) {
|
|
40
45
|
const repeat = value.repeat;
|
|
41
46
|
if (repeat?.min === 1 && repeat.max === 1) {
|
|
@@ -101,7 +106,7 @@ function canonicalVariableIds(value) {
|
|
|
101
106
|
function collectDeclarations(value, result) {
|
|
102
107
|
if ('exists' in value) {
|
|
103
108
|
for (const node of value.exists.nodes) {
|
|
104
|
-
result.set(node.variable.id,
|
|
109
|
+
result.set(node.variable.id, selectorSignature(node));
|
|
105
110
|
}
|
|
106
111
|
collectDeclarations(value.exists.where, result);
|
|
107
112
|
return;
|
|
@@ -114,12 +119,20 @@ function collectDeclarations(value, result) {
|
|
|
114
119
|
collectDeclarations(child, result);
|
|
115
120
|
}
|
|
116
121
|
function collectUses(value, target, colors, result) {
|
|
122
|
+
if ('sameNode' in value) {
|
|
123
|
+
const { left, right } = value.sameNode;
|
|
124
|
+
if (left.kind === 'variable' && left.id === target)
|
|
125
|
+
result.push(`same:${termColor(right, colors)}`);
|
|
126
|
+
if (right.kind === 'variable' && right.id === target)
|
|
127
|
+
result.push(`same:${termColor(left, colors)}`);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
117
130
|
if (isEdge(value)) {
|
|
118
131
|
if (value.source.kind === 'variable' && value.source.id === target) {
|
|
119
|
-
result.push(`s:${
|
|
132
|
+
result.push(`s:${definitionRefIndex(value.class)}:${termColor(value.target, colors)}`);
|
|
120
133
|
}
|
|
121
134
|
if (value.target.kind === 'variable' && value.target.id === target) {
|
|
122
|
-
result.push(`t:${
|
|
135
|
+
result.push(`t:${definitionRefIndex(value.class)}:${termColor(value.source, colors)}`);
|
|
123
136
|
}
|
|
124
137
|
return;
|
|
125
138
|
}
|
|
@@ -132,16 +145,29 @@ function collectUses(value, target, colors, result) {
|
|
|
132
145
|
function termColor(term, colors) {
|
|
133
146
|
if (term.kind === 'variable')
|
|
134
147
|
return `variable:${colors.get(term.id) ?? '?'}`;
|
|
148
|
+
if (term.kind === 'ref')
|
|
149
|
+
return `ref:${term.ref.kind === 'method' ? policyObjectKey(term.ref) : definitionRefIndex(term.ref)}`;
|
|
135
150
|
return term.kind;
|
|
136
151
|
}
|
|
137
152
|
function collectFirstUseKeys(value, colors, result, prefix = '$') {
|
|
153
|
+
if ('sameNode' in value) {
|
|
154
|
+
for (const term of [value.sameNode.left, value.sameNode.right]) {
|
|
155
|
+
if (term.kind !== 'variable')
|
|
156
|
+
continue;
|
|
157
|
+
const key = `${prefix}:same`;
|
|
158
|
+
const current = result.get(term.id);
|
|
159
|
+
if (current === undefined || key < current)
|
|
160
|
+
result.set(term.id, key);
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
138
164
|
if (isEdge(value)) {
|
|
139
165
|
for (const [position, term] of [
|
|
140
166
|
['source', value.source],
|
|
141
167
|
['target', value.target],
|
|
142
168
|
]) {
|
|
143
169
|
if (term.kind === 'variable') {
|
|
144
|
-
const key = `${prefix}:${
|
|
170
|
+
const key = `${prefix}:${definitionRefIndex(value.class)}:${position}`;
|
|
145
171
|
const current = result.get(term.id);
|
|
146
172
|
if (current === undefined || key < current)
|
|
147
173
|
result.set(term.id, key);
|
|
@@ -159,8 +185,10 @@ function collectFirstUseKeys(value, colors, result, prefix = '$') {
|
|
|
159
185
|
children.forEach((child, index) => collectFirstUseKeys(child, colors, result, `${prefix}:${key}:${index}`));
|
|
160
186
|
}
|
|
161
187
|
function patternSignature(value, colors) {
|
|
188
|
+
if ('sameNode' in value)
|
|
189
|
+
return `same:${[termColor(value.sameNode.left, colors), termColor(value.sameNode.right, colors)].sort(compareUtf8Bytes).join(':')}`;
|
|
162
190
|
if (isEdge(value)) {
|
|
163
|
-
return `edge:${
|
|
191
|
+
return `edge:${definitionRefIndex(value.class)}:${termColor(value.source, colors)}:${termColor(value.target, colors)}:${value.repeat?.min ?? 1}:${value.repeat?.max ?? 1}`;
|
|
164
192
|
}
|
|
165
193
|
if ('exists' in value) {
|
|
166
194
|
return `exists:${value.exists.nodes
|
|
@@ -176,6 +204,13 @@ function patternSignature(value, colors) {
|
|
|
176
204
|
.join('|')}`;
|
|
177
205
|
}
|
|
178
206
|
function rewriteVariables(value, ids) {
|
|
207
|
+
if ('sameNode' in value)
|
|
208
|
+
return {
|
|
209
|
+
sameNode: {
|
|
210
|
+
left: rewriteTerm(value.sameNode.left, ids),
|
|
211
|
+
right: rewriteTerm(value.sameNode.right, ids),
|
|
212
|
+
},
|
|
213
|
+
};
|
|
179
214
|
if (isEdge(value)) {
|
|
180
215
|
return {
|
|
181
216
|
...value,
|
|
@@ -186,10 +221,15 @@ function rewriteVariables(value, ids) {
|
|
|
186
221
|
if ('exists' in value) {
|
|
187
222
|
return {
|
|
188
223
|
exists: {
|
|
189
|
-
nodes: value.exists.nodes.map((node) =>
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
224
|
+
nodes: value.exists.nodes.map((node) => {
|
|
225
|
+
const variable = {
|
|
226
|
+
kind: 'variable',
|
|
227
|
+
id: ids.get(node.variable.id) ?? node.variable.id,
|
|
228
|
+
};
|
|
229
|
+
return 'class' in node
|
|
230
|
+
? { variable, class: node.class }
|
|
231
|
+
: { variable, selector: node.selector };
|
|
232
|
+
}),
|
|
193
233
|
where: rewriteVariables(value.exists.where, ids),
|
|
194
234
|
},
|
|
195
235
|
};
|
|
@@ -198,12 +238,16 @@ function rewriteVariables(value, ids) {
|
|
|
198
238
|
return { allOf: value.allOf.map((child) => rewriteVariables(child, ids)) };
|
|
199
239
|
return { anyOf: value.anyOf.map((child) => rewriteVariables(child, ids)) };
|
|
200
240
|
}
|
|
241
|
+
function selectorSignature(node) {
|
|
242
|
+
const selector = policyVariableSelector(node);
|
|
243
|
+
return selector.kind === 'any' ? 'any' : `${selector.kind}:${definitionRefIndex(selector.class)}`;
|
|
244
|
+
}
|
|
201
245
|
function rewriteTerm(value, ids) {
|
|
202
246
|
return value.kind === 'variable' ? { kind: 'variable', id: ids.get(value.id) ?? value.id } : value;
|
|
203
247
|
}
|
|
204
248
|
function uniqueRefs(values) {
|
|
205
|
-
const byKey = new Map(values.map((value) => [
|
|
206
|
-
return [...byKey.values()].sort(
|
|
249
|
+
const byKey = new Map(values.map((value) => [definitionRefIndex(value), value]));
|
|
250
|
+
return [...byKey.values()].sort(compareDefinitionRefs);
|
|
207
251
|
}
|
|
208
252
|
function uniqueJson(values) {
|
|
209
253
|
const byEncoding = new Map(values.map((value) => [json.serialize(value), value]));
|
|
@@ -221,10 +265,11 @@ function compareUtf8Bytes(left, right) {
|
|
|
221
265
|
}
|
|
222
266
|
return a.length - b.length;
|
|
223
267
|
}
|
|
224
|
-
function withDescription(source, value) {
|
|
225
|
-
return source.description === undefined ? value : { description: source.description, ...value };
|
|
226
|
-
}
|
|
227
268
|
function isEdge(value) {
|
|
228
269
|
return 'source' in value;
|
|
229
270
|
}
|
|
230
|
-
|
|
271
|
+
function normalizeEquality(value) {
|
|
272
|
+
return compareUtf8Bytes(json.serialize(value.left), json.serialize(value.right)) <= 0
|
|
273
|
+
? value
|
|
274
|
+
: { left: value.right, right: value.left };
|
|
275
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DefinitionKey, PolicyRef } from '../../addressing/index.js';
|
|
2
|
+
import type { PolicyDefinition } from './model/policy.js';
|
|
3
|
+
export interface ResolvedPolicy {
|
|
4
|
+
readonly ref: PolicyRef;
|
|
5
|
+
readonly key: DefinitionKey<string, 'policy'>;
|
|
6
|
+
readonly expression: PolicyDefinition['expression'];
|
|
7
|
+
readonly description?: PolicyDefinition['description'];
|
|
8
|
+
readonly definition: PolicyDefinition;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DefinitionRef } from '../addressing/index.js';
|
|
2
|
+
import type { ResolvedFunction } from './callable/resolved.js';
|
|
3
|
+
import type { AnyResolvedClass } from './class/resolved.js';
|
|
4
|
+
import type { ResolvedCoreDefinition } from './core/resolved.js';
|
|
5
|
+
import type { ResolvedPolicy } from './policy/resolved.js';
|
|
6
|
+
import type { ResolvedView } from './view/resolved.js';
|
|
7
|
+
export type ResolvedDefinition = AnyResolvedClass | ResolvedFunction | ResolvedPolicy | ResolvedView | ResolvedCoreDefinition;
|
|
8
|
+
export type ResolvedDefinitionOf<Kind extends DefinitionRef['kind']> = Extract<ResolvedDefinition, {
|
|
9
|
+
readonly ref: DefinitionRef<Kind>;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|