@astrale-os/kernel-dsl 0.2.0-beta.2 → 0.2.0-beta.20
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 +240 -0
- 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 +117 -0
- package/dist/v1/builder/{callable.js → callable/authoring.js} +28 -7
- package/dist/v1/builder/class/authoring.d.ts +378 -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 +11 -14
- 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 +19 -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 +70 -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} +66 -74
- package/dist/v1/builder/{compiler/schema.ownership.d.ts → lowering/schema/ownership.d.ts} +1 -2
- package/dist/v1/builder/{compiler/schema.ownership.js → lowering/schema/ownership.js} +1 -2
- 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} +19 -17
- package/dist/v1/builder/{policy.js → policy/authoring.js} +23 -12
- 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 +910 -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 +1114 -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 +198 -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 +126 -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 +25 -0
- package/dist/v1/language/index.js +2 -0
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.d.ts +2 -4
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.js +14 -30
- 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 +3 -0
- package/dist/v1/language/policy/index.js +1 -0
- package/dist/v1/{schema/policy/ast.d.ts → language/policy/model/policy.d.ts} +7 -7
- package/dist/v1/language/policy/model/policy.js +1 -0
- package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
- package/dist/v1/{schema/policy → language/policy/normalization}/normalize.js +12 -16
- 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/language/value/compile/load.d.ts +4 -0
- package/dist/v1/language/value/compile/load.js +41 -0
- 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 +6 -18
- package/dist/v1/{schema/value/instance/compiler.d.ts → language/value/evaluate/preparation.d.ts} +4 -4
- package/dist/v1/language/value/evaluate/preparation.js +135 -0
- 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 +8 -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} +5 -6
- 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 +16 -14
- 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 +1 -2
- package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
- package/dist/v1/{schema/value/profile/meta-schema.validate.js → language/value/profile/meta-schema.js} +2 -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 +14 -22
- 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/language/value/regexp/ast.d.ts +21 -0
- package/dist/v1/language/value/regexp/ast.js +326 -0
- package/dist/v1/language/value/regexp/compile.d.ts +3 -0
- package/dist/v1/language/value/regexp/compile.js +96 -0
- 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/language/value/regexp/matcher.d.ts +7 -0
- package/dist/v1/language/value/regexp/matcher.js +50 -0
- 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/language/value/regexp/syntax.d.ts +2 -0
- package/dist/v1/language/value/regexp/syntax.js +5 -0
- package/dist/v1/language/value/syntax/full-match.d.ts +6 -0
- package/dist/v1/language/value/syntax/full-match.js +20 -0
- 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} +3 -4
- 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 -34
- package/dist/v1/schema/index.js +11 -14
- 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 +31 -44
- 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 +257 -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 +203 -207
- package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/budgets.js +2 -32
- 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/{policy/validation → validation/policy}/references.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/references.js +18 -11
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.d.ts +4 -8
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.js +25 -67
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.js +27 -63
- 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 +0 -1
- package/dist/value/canonical.js +0 -1
- 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 +0 -1
- package/dist/value/json.js +0 -1
- 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 +69 -13
- 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 -92
- 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.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 -12
- package/dist/v1/builder/full-match.d.ts.map +0 -1
- package/dist/v1/builder/full-match.js +0 -21
- 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.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/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.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/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/compiler.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/compiler.js +0 -69
- package/dist/v1/schema/value/instance/compiler.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/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.validate.d.ts +0 -4
- package/dist/v1/schema/value/profile/meta-schema.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.validate.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/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/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 +0 -3
- package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/syntax.js +0 -217
- 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
|
@@ -1,37 +1,42 @@
|
|
|
1
|
+
import { Key } from '../../../addressing/index.js';
|
|
2
|
+
import { definitionRefIndex } from '../../../addressing/ordering.js';
|
|
1
3
|
import { diagnostic } from '../../diagnostic.js';
|
|
2
|
-
|
|
4
|
+
const formatDefinitionRef = Key.of;
|
|
3
5
|
export class PolicyValidationContext {
|
|
4
6
|
environment;
|
|
5
7
|
analysis;
|
|
6
8
|
diagnostics = [];
|
|
7
9
|
normalized = new Map();
|
|
8
10
|
allNodeClasses;
|
|
11
|
+
concreteNodeClasses;
|
|
9
12
|
#invalidPolicyRefs = new Set();
|
|
10
13
|
constructor(environment, analysis) {
|
|
11
14
|
this.environment = environment;
|
|
12
15
|
this.analysis = analysis;
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
const nodeClasses = [...environment.definitions.values()].filter((value) => value.ref.kind === 'class' && value.kind === 'node');
|
|
17
|
+
this.allNodeClasses = nodeClasses.map((value) => value.ref);
|
|
18
|
+
this.concreteNodeClasses = nodeClasses
|
|
19
|
+
.filter((value) => !value.declaration.abstract)
|
|
15
20
|
.map((value) => value.ref);
|
|
16
21
|
}
|
|
17
22
|
resolveNodeClass(ref, pointer) {
|
|
18
23
|
const resolved = this.environment.resolve(ref);
|
|
19
|
-
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.
|
|
20
|
-
this.add('PL_REF', pointer, `${
|
|
24
|
+
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.kind !== 'node') {
|
|
25
|
+
this.add('PL_REF', pointer, `${formatDefinitionRef(ref)} does not resolve to an owning/direct-dependency Node Class.`, formatDefinitionRef(ref));
|
|
21
26
|
return undefined;
|
|
22
27
|
}
|
|
23
28
|
return resolved;
|
|
24
29
|
}
|
|
25
30
|
resolveEdge(ref, pointer) {
|
|
26
31
|
const resolved = this.environment.resolve(ref);
|
|
27
|
-
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.
|
|
28
|
-
this.add('PL_REF', pointer, `${
|
|
32
|
+
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.kind !== 'edge') {
|
|
33
|
+
this.add('PL_REF', pointer, `${formatDefinitionRef(ref)} does not resolve to an owning/direct-dependency Edge Class.`, formatDefinitionRef(ref));
|
|
29
34
|
return undefined;
|
|
30
35
|
}
|
|
31
36
|
return resolved;
|
|
32
37
|
}
|
|
33
38
|
resolvePolicy(ref, pointer) {
|
|
34
|
-
const key = `${pointer}\u0000${
|
|
39
|
+
const key = `${pointer}\u0000${definitionRefIndex(ref)}`;
|
|
35
40
|
if (this.#invalidPolicyRefs.has(key))
|
|
36
41
|
return false;
|
|
37
42
|
const declaration = this.environment.resolvePolicy(ref);
|
|
@@ -39,7 +44,7 @@ export class PolicyValidationContext {
|
|
|
39
44
|
ref.kind !== 'policy' ||
|
|
40
45
|
declaration === undefined) {
|
|
41
46
|
this.#invalidPolicyRefs.add(key);
|
|
42
|
-
this.add('PL_REF', pointer, `${
|
|
47
|
+
this.add('PL_REF', pointer, `${formatDefinitionRef(ref)} is not an exact local named Policy ref.`, formatDefinitionRef(ref));
|
|
43
48
|
return false;
|
|
44
49
|
}
|
|
45
50
|
return true;
|
|
@@ -51,41 +56,27 @@ export class PolicyValidationContext {
|
|
|
51
56
|
}
|
|
52
57
|
edgeDeclaration(ref) {
|
|
53
58
|
const resolved = this.environment.resolve(ref);
|
|
54
|
-
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.
|
|
59
|
+
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.kind !== 'edge') {
|
|
55
60
|
return undefined;
|
|
56
61
|
}
|
|
57
|
-
|
|
58
|
-
return declaration.family === 'edge' ? declaration : undefined;
|
|
62
|
+
return resolved.declaration;
|
|
59
63
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if (
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
const declaration = resolved.declaration;
|
|
66
|
-
if (declaration.family !== 'node')
|
|
67
|
-
return false;
|
|
68
|
-
return declaration.implements.some((parent) => this.interfaceExtends(parent, required));
|
|
69
|
-
}
|
|
70
|
-
interfaceExtends(candidate, required) {
|
|
71
|
-
if (schemaRefIndex(candidate) === schemaRefIndex(required))
|
|
64
|
+
/** Return true when candidate is the required Class or a same-kind descendant. */
|
|
65
|
+
classExtends(candidate, required) {
|
|
66
|
+
if (definitionRefIndex(candidate) === definitionRefIndex(required))
|
|
72
67
|
return true;
|
|
73
68
|
const visited = new Set();
|
|
74
69
|
const visit = (ref) => {
|
|
75
|
-
const key =
|
|
76
|
-
if (key ===
|
|
70
|
+
const key = definitionRefIndex(ref);
|
|
71
|
+
if (key === definitionRefIndex(required))
|
|
77
72
|
return true;
|
|
78
73
|
if (visited.has(key))
|
|
79
74
|
return false;
|
|
80
75
|
visited.add(key);
|
|
81
76
|
const resolved = this.environment.resolveAny(ref);
|
|
82
|
-
if (resolved === undefined ||
|
|
83
|
-
resolved.ref.kind !== 'interface' ||
|
|
84
|
-
(resolved.family !== 'node' && resolved.family !== 'both')) {
|
|
77
|
+
if (resolved === undefined || resolved.ref.kind !== 'class')
|
|
85
78
|
return false;
|
|
86
|
-
|
|
87
|
-
const declaration = resolved.declaration;
|
|
88
|
-
return declaration.extends.some(visit);
|
|
79
|
+
return resolved.declaration.extends.some(visit);
|
|
89
80
|
};
|
|
90
81
|
return visit(candidate);
|
|
91
82
|
}
|
|
@@ -96,4 +87,3 @@ export class PolicyValidationContext {
|
|
|
96
87
|
export function escapePointer(value) {
|
|
97
88
|
return value.replaceAll('~', '~0').replaceAll('/', '~1');
|
|
98
89
|
}
|
|
99
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { branchesOf, isConnected, targetMode } from '../../../language/policy/analysis/branches.js';
|
|
2
|
+
import { normalizePolicyExpression, normalizePolicyPattern, } from '../../../language/policy/normalization/normalize.js';
|
|
3
3
|
import { MAX_REPEAT, MAX_VARIABLES } from './budgets.js';
|
|
4
4
|
import { escapePointer } from './context.js';
|
|
5
5
|
export function validatePolicyReferences(context) {
|
|
6
6
|
for (const [name, declaration] of Object.entries(context.environment.candidate.policies)) {
|
|
7
7
|
const pointer = `/policies/${escapePointer(name)}`;
|
|
8
|
-
context.
|
|
9
|
-
if (
|
|
10
|
-
|
|
8
|
+
const expected = { origin: context.environment.candidate.origin, kind: 'policy', name };
|
|
9
|
+
if (declaration.ref.origin !== expected.origin ||
|
|
10
|
+
declaration.ref.kind !== expected.kind ||
|
|
11
|
+
declaration.ref.name !== expected.name) {
|
|
12
|
+
context.add('DV_REF_RESOLVES', `${pointer}/ref`, `Policy ref must be exactly ${expected.origin}:policy.${expected.name}.`);
|
|
13
|
+
}
|
|
14
|
+
const expression = declaration.expression;
|
|
15
|
+
context.normalized.set(name, normalizePolicyExpression(expression));
|
|
16
|
+
if ('match' in expression)
|
|
17
|
+
validateMatch(context, name, expression.match, pointer);
|
|
11
18
|
else
|
|
12
|
-
validateComposition(context,
|
|
19
|
+
validateComposition(context, expression, pointer);
|
|
13
20
|
}
|
|
14
21
|
validateCycles(context);
|
|
15
22
|
}
|
|
@@ -27,11 +34,11 @@ function validateMatch(context, name, pattern, pointer) {
|
|
|
27
34
|
for (const [index, branch] of branches.entries()) {
|
|
28
35
|
const mode = targetMode(branch);
|
|
29
36
|
if (mode === undefined) {
|
|
30
|
-
context.add('PL_TARGET', `${pointer}/match`, `Normalized branch ${index} must use object or
|
|
37
|
+
context.add('PL_TARGET', `${pointer}/match`, `Normalized branch ${index} must use object or at least one of source and target, without mixing target modes.`);
|
|
31
38
|
continue;
|
|
32
39
|
}
|
|
33
40
|
if (!isConnected(branch)) {
|
|
34
|
-
context.add('PL_CONNECTIVITY', `${pointer}/match`, `Normalized ${mode} branch ${index} does not connect subject,
|
|
41
|
+
context.add('PL_CONNECTIVITY', `${pointer}/match`, `Normalized ${mode} branch ${index} does not connect subject, every referenced protected term, and every scoped term.`);
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
44
|
}
|
|
@@ -111,8 +118,9 @@ function validateCycles(context) {
|
|
|
111
118
|
return;
|
|
112
119
|
visiting.add(name);
|
|
113
120
|
const declaration = context.environment.candidate.policies[name];
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
const expression = declaration?.expression;
|
|
122
|
+
if (expression !== undefined && !('match' in expression)) {
|
|
123
|
+
const refs = 'allOf' in expression ? expression.allOf : expression.anyOf;
|
|
116
124
|
for (const ref of refs) {
|
|
117
125
|
if (ref.origin === context.environment.candidate.origin && ref.kind === 'policy') {
|
|
118
126
|
visit(ref.name, [...stack, name]);
|
|
@@ -133,4 +141,3 @@ function patternOperands(value) {
|
|
|
133
141
|
function isEdge(value) {
|
|
134
142
|
return 'source' in value;
|
|
135
143
|
}
|
|
136
|
-
//# sourceMappingURL=references.js.map
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
+
import type { ClassRef } from '../../../addressing/index.js';
|
|
1
2
|
import type { PolicyValidationContext } from './context.js';
|
|
2
|
-
import { type ClassRef, type DefinitionRef, type InterfaceRef } from '../../reference.js';
|
|
3
3
|
export type ObjectContract = {
|
|
4
4
|
readonly kind: 'default';
|
|
5
5
|
} | {
|
|
6
6
|
readonly kind: 'exact';
|
|
7
7
|
readonly ref: ClassRef;
|
|
8
|
-
} | {
|
|
9
|
-
readonly kind: 'universal-interface';
|
|
10
|
-
readonly ref: InterfaceRef;
|
|
11
8
|
};
|
|
12
9
|
export declare class PolicyTyping {
|
|
13
10
|
#private;
|
|
@@ -16,8 +13,7 @@ export declare class PolicyTyping {
|
|
|
16
13
|
validatePolicies(): void;
|
|
17
14
|
policyAccepts(name: string, object: ObjectContract): boolean;
|
|
18
15
|
policyAcceptsEdge(name: string, source: ObjectContract, target: ObjectContract): boolean;
|
|
19
|
-
concreteEndpointClasses(accepts: readonly
|
|
20
|
-
endpointsOverlap(left: readonly
|
|
16
|
+
concreteEndpointClasses(accepts: readonly ClassRef[]): readonly ClassRef[];
|
|
17
|
+
endpointsOverlap(left: readonly ClassRef[], right: readonly ClassRef[]): boolean;
|
|
21
18
|
}
|
|
22
|
-
export declare function contractOfNodeDefinition(ref:
|
|
23
|
-
//# sourceMappingURL=typing.d.ts.map
|
|
19
|
+
export declare function contractOfNodeDefinition(ref: ClassRef): ObjectContract;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { branchesOf, branchProduct, capBranches, targetMode, termKey, } from '
|
|
1
|
+
import { definitionRefIndex } from '../../../addressing/ordering.js';
|
|
2
|
+
import { branchesOf, branchProduct, capBranches, targetMode, termKey, } from '../../../language/policy/analysis/branches.js';
|
|
3
3
|
import { MAX_REPEAT } from './budgets.js';
|
|
4
4
|
import { escapePointer } from './context.js';
|
|
5
|
-
const IDENTITY_REF = {
|
|
6
|
-
origin: 'kernel.astrale.ai',
|
|
7
|
-
kind: 'interface',
|
|
8
|
-
name: 'Identity',
|
|
9
|
-
};
|
|
10
5
|
export class PolicyTyping {
|
|
11
6
|
context;
|
|
12
7
|
constructor(context) {
|
|
@@ -20,8 +15,8 @@ export class PolicyTyping {
|
|
|
20
15
|
for (const [index, branch] of branches.entries()) {
|
|
21
16
|
const mode = targetMode(branch);
|
|
22
17
|
if (mode === undefined) {
|
|
23
|
-
if (!('match' in this.context.environment.candidate.policies[name])) {
|
|
24
|
-
this.context.add('PL_TARGET', `/policies/${escapePointer(name)}`, `Expanded normalized branch ${index} must use object or
|
|
18
|
+
if (!('match' in this.context.environment.candidate.policies[name].expression)) {
|
|
19
|
+
this.context.add('PL_TARGET', `/policies/${escapePointer(name)}`, `Expanded normalized branch ${index} must use object or at least one of source and target, without mixing target modes.`);
|
|
25
20
|
}
|
|
26
21
|
continue;
|
|
27
22
|
}
|
|
@@ -49,7 +44,7 @@ export class PolicyTyping {
|
|
|
49
44
|
return branches !== undefined && branches.every((branch) => this.#branchIsTyped(branch, use));
|
|
50
45
|
}
|
|
51
46
|
concreteEndpointClasses(accepts) {
|
|
52
|
-
return this.context.
|
|
47
|
+
return this.context.concreteNodeClasses.filter((candidate) => this.#classSatisfiesEndpoint(candidate, accepts));
|
|
53
48
|
}
|
|
54
49
|
endpointsOverlap(left, right) {
|
|
55
50
|
const seed = [{ kind: 'open', requirements: [] }];
|
|
@@ -115,15 +110,6 @@ export class PolicyTyping {
|
|
|
115
110
|
}
|
|
116
111
|
for (const [root, members] of groups) {
|
|
117
112
|
const endpointConstraints = constraints.get(root) ?? [];
|
|
118
|
-
const universal = members
|
|
119
|
-
.map((member) => ({ member, contract: targetContract(member, use) }))
|
|
120
|
-
.find((entry) => entry.contract?.kind === 'universal-interface');
|
|
121
|
-
if (universal !== undefined) {
|
|
122
|
-
if (!this.#universalGroupIsSatisfiable(members, endpointConstraints, universal.member, universal.contract.ref, branch)) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
113
|
let candidates = [{ kind: 'open', requirements: [] }];
|
|
128
114
|
for (const member of members) {
|
|
129
115
|
candidates = this.#applyInitial(candidates, member, branch, use);
|
|
@@ -138,24 +124,9 @@ export class PolicyTyping {
|
|
|
138
124
|
}
|
|
139
125
|
return true;
|
|
140
126
|
}
|
|
141
|
-
#universalGroupIsSatisfiable(members, endpoints, target, contract, branch) {
|
|
142
|
-
for (const member of members) {
|
|
143
|
-
if (member === target)
|
|
144
|
-
continue;
|
|
145
|
-
if (member === 'subject') {
|
|
146
|
-
if (!this.context.interfaceExtends(contract, IDENTITY_REF))
|
|
147
|
-
return false;
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
const exact = this.#exactInitial(member, branch);
|
|
151
|
-
if (exact !== undefined)
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
|
-
return endpoints.every((accepts) => accepts.some((accept) => accept.kind === 'interface' && this.context.interfaceExtends(contract, accept)));
|
|
155
|
-
}
|
|
156
127
|
#applyInitial(candidates, term, branch, use) {
|
|
157
128
|
if (term === 'subject')
|
|
158
|
-
return this.#
|
|
129
|
+
return this.#applyAnyNodeClass(candidates);
|
|
159
130
|
const contract = targetContract(term, use);
|
|
160
131
|
if (contract !== undefined) {
|
|
161
132
|
if (contract.kind === 'exact')
|
|
@@ -175,27 +146,21 @@ export class PolicyTyping {
|
|
|
175
146
|
const result = [];
|
|
176
147
|
for (const candidate of candidates) {
|
|
177
148
|
if (candidate.kind === 'exact') {
|
|
178
|
-
if (
|
|
149
|
+
if (definitionRefIndex(candidate.ref) === definitionRefIndex(exact))
|
|
179
150
|
result.push(candidate);
|
|
180
151
|
}
|
|
181
|
-
else if (candidate.requirements.every((required) => this.context.
|
|
152
|
+
else if (candidate.requirements.every((required) => this.context.classExtends(exact, required))) {
|
|
182
153
|
result.push({ kind: 'exact', ref: exact });
|
|
183
154
|
}
|
|
184
155
|
}
|
|
185
156
|
return uniqueCandidates(result);
|
|
186
157
|
}
|
|
187
|
-
#
|
|
188
|
-
return uniqueCandidates(candidates.flatMap((candidate) =>
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
{
|
|
194
|
-
kind: 'open',
|
|
195
|
-
requirements: uniqueInterfaces([...candidate.requirements, required]),
|
|
196
|
-
},
|
|
197
|
-
];
|
|
198
|
-
}));
|
|
158
|
+
#applyAnyNodeClass(candidates) {
|
|
159
|
+
return uniqueCandidates(candidates.flatMap((candidate) => candidate.kind === 'exact'
|
|
160
|
+
? [candidate]
|
|
161
|
+
: this.context.allNodeClasses
|
|
162
|
+
.filter((ref) => candidate.requirements.every((required) => this.context.classExtends(ref, required)))
|
|
163
|
+
.map((ref) => ({ kind: 'exact', ref }))));
|
|
199
164
|
}
|
|
200
165
|
#applyEndpoint(candidates, accepts) {
|
|
201
166
|
const result = [];
|
|
@@ -206,22 +171,16 @@ export class PolicyTyping {
|
|
|
206
171
|
continue;
|
|
207
172
|
}
|
|
208
173
|
for (const accept of accepts) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
else if (candidate.requirements.every((required) => this.context.classImplements(accept, required))) {
|
|
216
|
-
result.push({ kind: 'exact', ref: accept });
|
|
217
|
-
}
|
|
174
|
+
result.push({
|
|
175
|
+
kind: 'open',
|
|
176
|
+
requirements: uniqueClasses([...candidate.requirements, accept]),
|
|
177
|
+
});
|
|
218
178
|
}
|
|
219
179
|
}
|
|
220
180
|
return uniqueCandidates(result);
|
|
221
181
|
}
|
|
222
182
|
#classSatisfiesEndpoint(candidate, accepts) {
|
|
223
|
-
return accepts.some((accept) => (
|
|
224
|
-
(accept.kind === 'interface' && this.context.classImplements(candidate, accept)));
|
|
183
|
+
return accepts.some((accept) => this.context.classExtends(candidate, accept));
|
|
225
184
|
}
|
|
226
185
|
}
|
|
227
186
|
function targetContract(term, use) {
|
|
@@ -234,7 +193,7 @@ function targetContract(term, use) {
|
|
|
234
193
|
return undefined;
|
|
235
194
|
}
|
|
236
195
|
export function contractOfNodeDefinition(ref) {
|
|
237
|
-
return
|
|
196
|
+
return { kind: 'exact', ref };
|
|
238
197
|
}
|
|
239
198
|
function edgeAlternatives(edges, typing) {
|
|
240
199
|
let result = [[]];
|
|
@@ -312,7 +271,7 @@ function uniqueEdgeVariants(values) {
|
|
|
312
271
|
const result = new Map();
|
|
313
272
|
for (const value of values) {
|
|
314
273
|
const key = `${value.constraints
|
|
315
|
-
.map(([term, accepts]) => `${term}:${accepts.map(
|
|
274
|
+
.map(([term, accepts]) => `${term}:${accepts.map(definitionRefIndex).sort().join(',')}`)
|
|
316
275
|
.join('|')}=${value.equalities.map(([left, right]) => `${left}:${right}`).join('|')}`;
|
|
317
276
|
result.set(key, value);
|
|
318
277
|
}
|
|
@@ -322,14 +281,14 @@ function uniqueCandidates(values) {
|
|
|
322
281
|
const result = new Map();
|
|
323
282
|
for (const value of values) {
|
|
324
283
|
const key = value.kind === 'exact'
|
|
325
|
-
? `exact:${
|
|
326
|
-
: `open:${value.requirements.map(
|
|
284
|
+
? `exact:${definitionRefIndex(value.ref)}`
|
|
285
|
+
: `open:${value.requirements.map(definitionRefIndex).sort().join('|')}`;
|
|
327
286
|
result.set(key, value);
|
|
328
287
|
}
|
|
329
288
|
return [...result.values()];
|
|
330
289
|
}
|
|
331
|
-
function
|
|
332
|
-
return [...new Map(values.map((value) => [
|
|
290
|
+
function uniqueClasses(values) {
|
|
291
|
+
return [...new Map(values.map((value) => [definitionRefIndex(value), value])).values()];
|
|
333
292
|
}
|
|
334
293
|
class UnionFind {
|
|
335
294
|
#parents = new Map();
|
|
@@ -357,4 +316,3 @@ class UnionFind {
|
|
|
357
316
|
this.#parents.set(b, a);
|
|
358
317
|
}
|
|
359
318
|
}
|
|
360
|
-
//# sourceMappingURL=typing.js.map
|
|
@@ -3,4 +3,3 @@ import { type PolicyTyping } from './typing.js';
|
|
|
3
3
|
export declare function validateReadUses(context: PolicyValidationContext, typing: PolicyTyping): void;
|
|
4
4
|
export declare function validateTraverseUses(context: PolicyValidationContext, typing: PolicyTyping): void;
|
|
5
5
|
export declare function validateCallableUses(context: PolicyValidationContext, typing: PolicyTyping): void;
|
|
6
|
-
//# sourceMappingURL=uses.d.ts.map
|
|
@@ -1,49 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { normalizePolicyChecks } from '
|
|
1
|
+
import { Key } from '../../../addressing/index.js';
|
|
2
|
+
import { definitionRefIndex } from '../../../addressing/ordering.js';
|
|
3
|
+
import { normalizePolicyChecks } from '../../../language/policy/normalization/normalize.js';
|
|
4
|
+
import { GRAPH_NODE_PATH_SCHEMA_ID } from '../../../language/value/syntax/node-path/schema.js';
|
|
4
5
|
import { MAX_BRANCHES, MAX_CHECK_DEPTH, MAX_CHECK_LEAVES, measureChecks } from './budgets.js';
|
|
5
6
|
import { escapePointer } from './context.js';
|
|
6
7
|
import { contractOfNodeDefinition } from './typing.js';
|
|
8
|
+
const formatDefinitionRef = Key.of;
|
|
7
9
|
const KERNEL_ORIGIN = 'kernel.astrale.ai';
|
|
8
10
|
const PROJECTION_CLASS = nodeClassRef('Class');
|
|
9
11
|
const PROJECTION_FUNCTION = nodeClassRef('Function');
|
|
10
|
-
const PROJECTION_INTERFACE = nodeClassRef('Interface');
|
|
11
12
|
const PROJECTION_POLICY = nodeClassRef('Policy');
|
|
12
13
|
const PROJECTION_VIEW = nodeClassRef('View');
|
|
13
14
|
export function validateReadUses(context, typing) {
|
|
14
|
-
|
|
15
|
-
if (declaration.family !== 'node' || declaration.policies.read === undefined) {
|
|
16
|
-
continue;
|
|
17
|
-
}
|
|
18
|
-
const pointer = `/classes/${escapePointer(name)}/policies/read`;
|
|
19
|
-
const ref = declaration.policies.read;
|
|
20
|
-
if (!context.resolvePolicy(ref, pointer))
|
|
21
|
-
continue;
|
|
22
|
-
const object = {
|
|
23
|
-
kind: 'exact',
|
|
24
|
-
ref: { origin: context.environment.candidate.origin, kind: 'class', name },
|
|
25
|
-
};
|
|
26
|
-
if (!typing.policyAccepts(ref.name, object)) {
|
|
27
|
-
context.add('PL_USE', pointer, `${formatSchemaRef(ref)} is not valid for every normalized branch of protected Class ${name}.`, formatSchemaRef(ref));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
15
|
+
validateClassPolicyUses(context, typing, 'read');
|
|
30
16
|
}
|
|
31
17
|
export function validateTraverseUses(context, typing) {
|
|
18
|
+
validateClassPolicyUses(context, typing, 'traverse');
|
|
19
|
+
}
|
|
20
|
+
function validateClassPolicyUses(context, typing, operation) {
|
|
32
21
|
for (const [name, declaration] of Object.entries(context.environment.candidate.classes)) {
|
|
33
|
-
const ref = declaration.policies
|
|
22
|
+
const ref = declaration.policies[operation];
|
|
34
23
|
if (ref === undefined)
|
|
35
24
|
continue;
|
|
36
|
-
const pointer = `/classes/${escapePointer(name)}/policies
|
|
25
|
+
const pointer = `/classes/${escapePointer(name)}/policies/${operation}`;
|
|
37
26
|
if (!context.resolvePolicy(ref, pointer))
|
|
38
27
|
continue;
|
|
39
|
-
if (declaration.
|
|
28
|
+
if (declaration.kind === 'node') {
|
|
40
29
|
const object = {
|
|
41
30
|
kind: 'exact',
|
|
42
31
|
ref: { origin: context.environment.candidate.origin, kind: 'class', name },
|
|
43
32
|
};
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
}
|
|
33
|
+
if (typing.policyAccepts(ref.name, object))
|
|
34
|
+
continue;
|
|
35
|
+
context.add('PL_USE', pointer, `${formatDefinitionRef(ref)} is not valid for every normalized branch of ${operation} Node Class ${name}.`, formatDefinitionRef(ref));
|
|
47
36
|
continue;
|
|
48
37
|
}
|
|
49
38
|
const endpoints = declaration.orientation === 'directed'
|
|
@@ -51,19 +40,9 @@ export function validateTraverseUses(context, typing) {
|
|
|
51
40
|
: declaration.endpoints;
|
|
52
41
|
const sources = typing.concreteEndpointClasses(endpoints[0].accepts);
|
|
53
42
|
const targets = typing.concreteEndpointClasses(endpoints[1].accepts);
|
|
54
|
-
|
|
55
|
-
for (const source of sources) {
|
|
56
|
-
for (const target of targets) {
|
|
57
|
-
if (!typing.policyAcceptsEdge(ref.name, { kind: 'exact', ref: source }, { kind: 'exact', ref: target })) {
|
|
58
|
-
accepted = false;
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (!accepted)
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
43
|
+
const accepted = sources.every((source) => targets.every((target) => typing.policyAcceptsEdge(ref.name, { kind: 'exact', ref: source }, { kind: 'exact', ref: target })));
|
|
65
44
|
if (!accepted) {
|
|
66
|
-
context.add('PL_USE', pointer, `${
|
|
45
|
+
context.add('PL_USE', pointer, `${formatDefinitionRef(ref)} is not valid for every concrete source/target pair of ${operation} Edge Class ${name}.`, formatDefinitionRef(ref));
|
|
67
46
|
}
|
|
68
47
|
}
|
|
69
48
|
}
|
|
@@ -77,17 +56,8 @@ export function validateCallableUses(context, typing) {
|
|
|
77
56
|
instanceMethod: false,
|
|
78
57
|
});
|
|
79
58
|
}
|
|
80
|
-
for (const [name, declaration] of Object.entries(context.environment.candidate.interfaces)) {
|
|
81
|
-
if (declaration.family !== 'node')
|
|
82
|
-
continue;
|
|
83
|
-
validateDeclaredMethods(context, typing, 'interfaces', name, declaration.methods, {
|
|
84
|
-
origin: context.environment.candidate.origin,
|
|
85
|
-
kind: 'interface',
|
|
86
|
-
name,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
59
|
for (const [name, declaration] of Object.entries(context.environment.candidate.classes)) {
|
|
90
|
-
if (declaration.
|
|
60
|
+
if (declaration.kind !== 'node')
|
|
91
61
|
continue;
|
|
92
62
|
validateDeclaredMethods(context, typing, 'classes', name, declaration.methods, {
|
|
93
63
|
origin: context.environment.candidate.origin,
|
|
@@ -97,7 +67,7 @@ export function validateCallableUses(context, typing) {
|
|
|
97
67
|
}
|
|
98
68
|
}
|
|
99
69
|
function validateDeclaredMethods(context, typing, namespace, name, methods, receiver) {
|
|
100
|
-
const ownerAnalysis = context.analysis.definitions.get(
|
|
70
|
+
const ownerAnalysis = context.analysis.definitions.get(definitionRefIndex(receiver));
|
|
101
71
|
for (const [methodName, method] of Object.entries(methods)) {
|
|
102
72
|
if (method.policy === undefined)
|
|
103
73
|
continue;
|
|
@@ -138,7 +108,7 @@ function visitChecks(validation, typing, expression, context, pointer) {
|
|
|
138
108
|
return;
|
|
139
109
|
for (const contract of contracts) {
|
|
140
110
|
if (!typing.policyAccepts(expression.check.name, contract)) {
|
|
141
|
-
validation.add('PL_USE', pointer, `${
|
|
111
|
+
validation.add('PL_USE', pointer, `${formatDefinitionRef(expression.check)} is incompatible with the callable object contract.`, formatDefinitionRef(expression.check));
|
|
142
112
|
break;
|
|
143
113
|
}
|
|
144
114
|
}
|
|
@@ -155,12 +125,6 @@ function referenceContracts(validation, ref, pointer) {
|
|
|
155
125
|
if (ref.origin !== candidate.origin)
|
|
156
126
|
return invalidPolicyObjectRef(validation, ref, pointer);
|
|
157
127
|
switch (ref.kind) {
|
|
158
|
-
case 'interface': {
|
|
159
|
-
const resolved = validation.environment.resolve(ref);
|
|
160
|
-
return resolved?.ref.kind === ref.kind
|
|
161
|
-
? [{ kind: 'exact', ref: PROJECTION_INTERFACE }]
|
|
162
|
-
: invalidPolicyObjectRef(validation, ref, pointer);
|
|
163
|
-
}
|
|
164
128
|
case 'class': {
|
|
165
129
|
const resolved = validation.environment.resolve(ref);
|
|
166
130
|
return resolved?.ref.kind === ref.kind
|
|
@@ -184,21 +148,22 @@ function referenceContracts(validation, ref, pointer) {
|
|
|
184
148
|
if (node === undefined)
|
|
185
149
|
return invalidPolicyObjectRef(validation, ref, pointer);
|
|
186
150
|
const resolved = validation.environment.resolve(node.class);
|
|
187
|
-
const analyzed = validation.analysis.definitions.get(
|
|
151
|
+
const analyzed = validation.analysis.definitions.get(definitionRefIndex(node.class));
|
|
188
152
|
// Core validation owns invalid Core Class diagnostics. Avoid adding Policy noise for
|
|
189
153
|
// a Node that cannot materialize in the first place.
|
|
190
154
|
if (node.class.origin !== candidate.origin ||
|
|
191
155
|
resolved?.ref.kind !== 'class' ||
|
|
192
|
-
resolved.
|
|
156
|
+
resolved.kind !== 'node' ||
|
|
193
157
|
analyzed === undefined) {
|
|
194
158
|
return undefined;
|
|
195
159
|
}
|
|
196
160
|
return [contractOfNodeDefinition(node.class)];
|
|
197
161
|
}
|
|
198
162
|
}
|
|
163
|
+
return invalidPolicyObjectRef(validation, ref, pointer);
|
|
199
164
|
}
|
|
200
165
|
function invalidPolicyObjectRef(validation, ref, pointer) {
|
|
201
|
-
validation.add('PL_REF', `${pointer}/ref`, `${
|
|
166
|
+
validation.add('PL_REF', `${pointer}/ref`, `${formatDefinitionRef(ref)} is not an exact local projected Policy object.`, formatDefinitionRef(ref));
|
|
202
167
|
return undefined;
|
|
203
168
|
}
|
|
204
169
|
function selfContracts(validation, context, pointer) {
|
|
@@ -238,8 +203,8 @@ function inputContracts(validation, context, field, pointer) {
|
|
|
238
203
|
return undefined;
|
|
239
204
|
}
|
|
240
205
|
const resolved = validation.environment.resolve(ref);
|
|
241
|
-
if (resolved === undefined || resolved.
|
|
242
|
-
validation.add('PL_USE', pointer, `input.${field} ref ${
|
|
206
|
+
if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.kind !== 'node') {
|
|
207
|
+
validation.add('PL_USE', pointer, `input.${field} ref ${formatDefinitionRef(ref)} does not resolve as an allowed Node Definition.`, formatDefinitionRef(ref));
|
|
243
208
|
return undefined;
|
|
244
209
|
}
|
|
245
210
|
contracts.push(contractOfNodeDefinition(ref));
|
|
@@ -258,7 +223,7 @@ function isDefinitionRef(value) {
|
|
|
258
223
|
const record = asRecord(value);
|
|
259
224
|
return (record !== undefined &&
|
|
260
225
|
typeof record.origin === 'string' &&
|
|
261
|
-
|
|
226
|
+
record.kind === 'class' &&
|
|
262
227
|
typeof record.name === 'string');
|
|
263
228
|
}
|
|
264
229
|
function checkOperands(value) {
|
|
@@ -269,4 +234,3 @@ function checkOperands(value) {
|
|
|
269
234
|
function nodeClassRef(name) {
|
|
270
235
|
return { origin: KERNEL_ORIGIN, kind: 'class', name };
|
|
271
236
|
}
|
|
272
|
-
//# sourceMappingURL=uses.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DefinitionAnalysisResult } from '../../
|
|
2
|
-
import type {
|
|
1
|
+
import type { DefinitionAnalysisResult } from '../../analysis/class.js';
|
|
2
|
+
import type { SchemaDiagnostic } from '../../diagnostic.js';
|
|
3
3
|
import type { DomainResolutionContext } from '../../resolution/context.js';
|
|
4
4
|
/**
|
|
5
5
|
* Validates the closed V1 Policy language after structural parsing.
|
|
@@ -8,5 +8,4 @@ import type { DomainResolutionContext } from '../../resolution/context.js';
|
|
|
8
8
|
* failure. Environment and definition diagnostics are owned by their respective
|
|
9
9
|
* validators and are therefore not repeated here.
|
|
10
10
|
*/
|
|
11
|
-
export declare function validatePolicies(environment: DomainResolutionContext, analysis: DefinitionAnalysisResult): readonly
|
|
12
|
-
//# sourceMappingURL=validate.d.ts.map
|
|
11
|
+
export declare function validatePolicies(environment: DomainResolutionContext, analysis: DefinitionAnalysisResult): readonly SchemaDiagnostic[];
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/** The exact V1 value-schema grammar embedded in DomainSchema declarations. */
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { OrderingKind } from '
|
|
5
|
-
import type {
|
|
6
|
-
export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY } from '
|
|
7
|
-
export type { JsonSchema as Schema, JsonSchemaObject as SchemaObject, PathAnnotation, PropertyObjectSchema as PropertySchema, ValueSchemaContext as Context, } from '
|
|
8
|
-
export { instant } from '
|
|
9
|
-
export type { OrderingKind } from '
|
|
2
|
+
import type { Diagnostic } from '../../language/validation/diagnostic.js';
|
|
3
|
+
import type { JsonSchema } from '../../language/value/model/schema.js';
|
|
4
|
+
import type { OrderingKind } from '../../language/value/ordering.js';
|
|
5
|
+
import type { DomainSchema } from '../model/schema.js';
|
|
6
|
+
export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY, } from '../../language/value/model/schema.js';
|
|
7
|
+
export type { JsonSchema as Schema, JsonSchemaObject as SchemaObject, PathAnnotation, PropertyObjectSchema as PropertySchema, ValueSchemaContext as Context, } from '../../language/value/model/schema.js';
|
|
8
|
+
export { instant } from '../../language/value/model/instant.js';
|
|
9
|
+
export type { OrderingKind } from '../../language/value/ordering.js';
|
|
10
10
|
/** Validate one complete JSON value under the exact accepted schema that owns the contract. */
|
|
11
|
-
export declare function validate(owner: DomainSchema, contract: JsonSchema, input: unknown, pointer?: string): readonly
|
|
11
|
+
export declare function validate(owner: DomainSchema, contract: JsonSchema, input: unknown, pointer?: string): readonly Diagnostic[];
|
|
12
12
|
/** Return the one portable scalar ordering domain admitted by a property schema, if any. */
|
|
13
13
|
export declare function classifyOrdering(owner: DomainSchema, contract: JsonSchema): OrderingKind | undefined;
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|