@astrale-os/kernel-dsl 0.2.0-beta.2 → 0.2.0-beta.21
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 +247 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ClassRef, CoreRef, DefinitionBase } from '../../../addressing/index.js';
|
|
2
|
+
import type { PropertyValues } from '../../class/property-values.js';
|
|
3
|
+
export interface DomainEndpointRef {
|
|
4
|
+
readonly kind: 'domain';
|
|
5
|
+
}
|
|
6
|
+
export type CoreEndpointRef = CoreRef | DomainEndpointRef;
|
|
7
|
+
export interface CoreDefinition extends DefinitionBase<CoreRef> {
|
|
8
|
+
readonly class: ClassRef;
|
|
9
|
+
readonly properties: PropertyValues;
|
|
10
|
+
}
|
|
11
|
+
export interface CoreEdge {
|
|
12
|
+
readonly class: ClassRef;
|
|
13
|
+
readonly source: CoreEndpointRef;
|
|
14
|
+
readonly target: CoreEndpointRef;
|
|
15
|
+
readonly properties: PropertyValues;
|
|
16
|
+
}
|
|
17
|
+
export interface CoreContent {
|
|
18
|
+
readonly nodes: Readonly<Record<string, CoreDefinition>>;
|
|
19
|
+
readonly edges: readonly CoreEdge[];
|
|
20
|
+
}
|
|
@@ -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,25 @@
|
|
|
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 type * from './policy/resolved.js';
|
|
24
|
+
export type * from './view/model/view.js';
|
|
25
|
+
export type * from './view/resolved.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ClassRef } from '
|
|
2
|
-
import type { PolicyEdgePattern, PolicyPatternExpression, PolicyPatternTerm } from '../
|
|
1
|
+
import type { ClassRef } from '../../../addressing/index.js';
|
|
2
|
+
import type { PolicyEdgePattern, PolicyPatternExpression, PolicyPatternTerm } from '../model/policy.js';
|
|
3
3
|
export interface PatternBranch {
|
|
4
4
|
readonly edges: readonly PatternEdgeUse[];
|
|
5
5
|
readonly variables: ReadonlyMap<string, ClassRef>;
|
|
@@ -15,7 +15,5 @@ export declare function branchesOf(pattern: PolicyPatternExpression, namespace:
|
|
|
15
15
|
export declare function branchProduct(children: readonly (readonly PatternBranch[])[]): readonly PatternBranch[];
|
|
16
16
|
export declare function capBranches(values: readonly PatternBranch[]): readonly PatternBranch[];
|
|
17
17
|
export declare function isConnected(branch: PatternBranch): boolean;
|
|
18
|
-
/** A normalized branch targets either one object or both authored Edge endpoints, never a mixture. */
|
|
19
18
|
export declare function targetMode(branch: PatternBranch): PolicyTargetMode | undefined;
|
|
20
19
|
export declare function termKey(term: PolicyPatternTerm, namespace: string): string;
|
|
21
|
-
//# sourceMappingURL=branches.d.ts.map
|
|
@@ -25,7 +25,14 @@ export function isConnected(branch) {
|
|
|
25
25
|
const mode = targetMode(branch);
|
|
26
26
|
if (mode === undefined)
|
|
27
27
|
return false;
|
|
28
|
-
const vertices = new Set(
|
|
28
|
+
const vertices = new Set(['subject']);
|
|
29
|
+
for (const edge of branch.edges) {
|
|
30
|
+
for (const term of [edge.pattern.source, edge.pattern.target]) {
|
|
31
|
+
if (term.kind === 'object' || term.kind === 'source' || term.kind === 'target') {
|
|
32
|
+
vertices.add(term.kind);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
29
36
|
for (const variable of branch.requiredVariables)
|
|
30
37
|
vertices.add(variable);
|
|
31
38
|
const union = new UnionFind(vertices);
|
|
@@ -39,7 +46,6 @@ export function isConnected(branch) {
|
|
|
39
46
|
const root = union.find('subject');
|
|
40
47
|
return [...vertices].every((vertex) => union.find(vertex) === root);
|
|
41
48
|
}
|
|
42
|
-
/** A normalized branch targets either one object or both authored Edge endpoints, never a mixture. */
|
|
43
49
|
export function targetMode(branch) {
|
|
44
50
|
let object = false;
|
|
45
51
|
let source = false;
|
|
@@ -53,7 +59,7 @@ export function targetMode(branch) {
|
|
|
53
59
|
}
|
|
54
60
|
if (object && !source && !target)
|
|
55
61
|
return 'object';
|
|
56
|
-
if (!object && source
|
|
62
|
+
if (!object && (source || target))
|
|
57
63
|
return 'edge';
|
|
58
64
|
return undefined;
|
|
59
65
|
}
|
|
@@ -61,15 +67,8 @@ export function termKey(term, namespace) {
|
|
|
61
67
|
return term.kind === 'variable' ? variableKey(namespace, term.id) : term.kind;
|
|
62
68
|
}
|
|
63
69
|
function branchesForNode(pattern, namespace, variables) {
|
|
64
|
-
if (
|
|
65
|
-
return [
|
|
66
|
-
{
|
|
67
|
-
edges: [{ pattern, namespace }],
|
|
68
|
-
variables,
|
|
69
|
-
requiredVariables: new Set(),
|
|
70
|
-
namespace,
|
|
71
|
-
},
|
|
72
|
-
];
|
|
70
|
+
if ('source' in pattern) {
|
|
71
|
+
return [{ edges: [{ pattern, namespace }], variables, requiredVariables: new Set(), namespace }];
|
|
73
72
|
}
|
|
74
73
|
if ('exists' in pattern) {
|
|
75
74
|
const direct = new Set(pattern.exists.nodes.map((node) => variableKey(namespace, node.variable.id)));
|
|
@@ -78,17 +77,11 @@ function branchesForNode(pattern, namespace, variables) {
|
|
|
78
77
|
requiredVariables: new Set([...branch.requiredVariables, ...direct]),
|
|
79
78
|
}));
|
|
80
79
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
return key === 'allOf' ? branchProduct(children) : capBranches(children.flat());
|
|
80
|
+
const children = ('allOf' in pattern ? pattern.allOf : pattern.anyOf).map((child) => branchesForNode(child, namespace, variables));
|
|
81
|
+
return 'allOf' in pattern ? branchProduct(children) : capBranches(children.flat());
|
|
84
82
|
}
|
|
85
83
|
function emptyBranch() {
|
|
86
|
-
return {
|
|
87
|
-
edges: [],
|
|
88
|
-
variables: new Map(),
|
|
89
|
-
requiredVariables: new Set(),
|
|
90
|
-
namespace: '$',
|
|
91
|
-
};
|
|
84
|
+
return { edges: [], variables: new Map(), requiredVariables: new Set(), namespace: '$' };
|
|
92
85
|
}
|
|
93
86
|
function mergeBranches(left, right) {
|
|
94
87
|
return {
|
|
@@ -118,14 +111,6 @@ function collectVariableClasses(pattern, namespace) {
|
|
|
118
111
|
function variableKey(namespace, id) {
|
|
119
112
|
return `variable:${namespace}:${id}`;
|
|
120
113
|
}
|
|
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
114
|
class UnionFind {
|
|
130
115
|
#parents = new Map();
|
|
131
116
|
constructor(values) {
|
|
@@ -152,4 +137,3 @@ class UnionFind {
|
|
|
152
137
|
this.#parents.set(b, a);
|
|
153
138
|
}
|
|
154
139
|
}
|
|
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)
|
|
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 @@
|
|
|
1
|
+
export * from './normalization/normalize.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CoreRef, ClassRef,
|
|
1
|
+
import type { CoreRef, ClassRef, FunctionRef, PolicyRef, ViewRef, DefinitionBase } from '../../../addressing/index.js';
|
|
2
2
|
export type PolicyPatternTerm = {
|
|
3
3
|
readonly kind: 'subject';
|
|
4
4
|
} | {
|
|
@@ -38,18 +38,19 @@ export type PolicyPatternExpression = PolicyEdgePattern | {
|
|
|
38
38
|
} | {
|
|
39
39
|
readonly anyOf: readonly PolicyPatternExpression[];
|
|
40
40
|
};
|
|
41
|
-
export type
|
|
42
|
-
readonly description?: string;
|
|
41
|
+
export type PolicyExpression = {
|
|
43
42
|
readonly match: PolicyPatternExpression;
|
|
44
43
|
} | {
|
|
45
|
-
readonly description?: string;
|
|
46
44
|
readonly allOf: readonly PolicyRef[];
|
|
47
45
|
} | {
|
|
48
|
-
readonly description?: string;
|
|
49
46
|
readonly anyOf: readonly PolicyRef[];
|
|
50
47
|
};
|
|
48
|
+
export interface PolicyDefinition extends DefinitionBase<PolicyRef> {
|
|
49
|
+
readonly expression: PolicyExpression;
|
|
50
|
+
readonly description?: string;
|
|
51
|
+
}
|
|
51
52
|
/** Local Domain members whose installed projection resolves through one exact member Path. */
|
|
52
|
-
export type PolicyObjectRef =
|
|
53
|
+
export type PolicyObjectRef = ClassRef | FunctionRef | PolicyRef | ViewRef | CoreRef;
|
|
53
54
|
export type PolicyCheckObject = {
|
|
54
55
|
readonly kind: 'self';
|
|
55
56
|
} | {
|
|
@@ -74,4 +75,3 @@ export type PolicyCheckExpression<Policy = PolicyRef, Object = PolicyCheckObject
|
|
|
74
75
|
...PolicyCheckExpression<Policy, Object>[]
|
|
75
76
|
];
|
|
76
77
|
};
|
|
77
|
-
//# sourceMappingURL=ast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,14 @@
|
|
|
1
1
|
import { json } from '@astrale-os/kernel-dsl/value';
|
|
2
|
-
import {
|
|
2
|
+
import { definitionRefIndex, compareDefinitionRefs } from '../../../addressing/ordering.js';
|
|
3
3
|
const textEncoder = new TextEncoder();
|
|
4
|
-
export function
|
|
4
|
+
export function normalizePolicyExpression(value) {
|
|
5
5
|
if ('match' in value) {
|
|
6
|
-
return
|
|
6
|
+
return { match: normalizePolicyPattern(value.match) };
|
|
7
7
|
}
|
|
8
8
|
if ('allOf' in value) {
|
|
9
|
-
return
|
|
9
|
+
return { allOf: uniqueRefs(value.allOf) };
|
|
10
10
|
}
|
|
11
|
-
return
|
|
11
|
+
return { anyOf: uniqueRefs(value.anyOf) };
|
|
12
12
|
}
|
|
13
13
|
export function normalizePolicyPattern(value) {
|
|
14
14
|
const rewritten = rewriteVariables(value, canonicalVariableIds(value));
|
|
@@ -101,7 +101,7 @@ function canonicalVariableIds(value) {
|
|
|
101
101
|
function collectDeclarations(value, result) {
|
|
102
102
|
if ('exists' in value) {
|
|
103
103
|
for (const node of value.exists.nodes) {
|
|
104
|
-
result.set(node.variable.id,
|
|
104
|
+
result.set(node.variable.id, definitionRefIndex(node.class));
|
|
105
105
|
}
|
|
106
106
|
collectDeclarations(value.exists.where, result);
|
|
107
107
|
return;
|
|
@@ -116,10 +116,10 @@ function collectDeclarations(value, result) {
|
|
|
116
116
|
function collectUses(value, target, colors, result) {
|
|
117
117
|
if (isEdge(value)) {
|
|
118
118
|
if (value.source.kind === 'variable' && value.source.id === target) {
|
|
119
|
-
result.push(`s:${
|
|
119
|
+
result.push(`s:${definitionRefIndex(value.class)}:${termColor(value.target, colors)}`);
|
|
120
120
|
}
|
|
121
121
|
if (value.target.kind === 'variable' && value.target.id === target) {
|
|
122
|
-
result.push(`t:${
|
|
122
|
+
result.push(`t:${definitionRefIndex(value.class)}:${termColor(value.source, colors)}`);
|
|
123
123
|
}
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
@@ -141,7 +141,7 @@ function collectFirstUseKeys(value, colors, result, prefix = '$') {
|
|
|
141
141
|
['target', value.target],
|
|
142
142
|
]) {
|
|
143
143
|
if (term.kind === 'variable') {
|
|
144
|
-
const key = `${prefix}:${
|
|
144
|
+
const key = `${prefix}:${definitionRefIndex(value.class)}:${position}`;
|
|
145
145
|
const current = result.get(term.id);
|
|
146
146
|
if (current === undefined || key < current)
|
|
147
147
|
result.set(term.id, key);
|
|
@@ -160,7 +160,7 @@ function collectFirstUseKeys(value, colors, result, prefix = '$') {
|
|
|
160
160
|
}
|
|
161
161
|
function patternSignature(value, colors) {
|
|
162
162
|
if (isEdge(value)) {
|
|
163
|
-
return `edge:${
|
|
163
|
+
return `edge:${definitionRefIndex(value.class)}:${termColor(value.source, colors)}:${termColor(value.target, colors)}:${value.repeat?.min ?? 1}:${value.repeat?.max ?? 1}`;
|
|
164
164
|
}
|
|
165
165
|
if ('exists' in value) {
|
|
166
166
|
return `exists:${value.exists.nodes
|
|
@@ -202,8 +202,8 @@ function rewriteTerm(value, ids) {
|
|
|
202
202
|
return value.kind === 'variable' ? { kind: 'variable', id: ids.get(value.id) ?? value.id } : value;
|
|
203
203
|
}
|
|
204
204
|
function uniqueRefs(values) {
|
|
205
|
-
const byKey = new Map(values.map((value) => [
|
|
206
|
-
return [...byKey.values()].sort(
|
|
205
|
+
const byKey = new Map(values.map((value) => [definitionRefIndex(value), value]));
|
|
206
|
+
return [...byKey.values()].sort(compareDefinitionRefs);
|
|
207
207
|
}
|
|
208
208
|
function uniqueJson(values) {
|
|
209
209
|
const byEncoding = new Map(values.map((value) => [json.serialize(value), value]));
|
|
@@ -221,10 +221,6 @@ function compareUtf8Bytes(left, right) {
|
|
|
221
221
|
}
|
|
222
222
|
return a.length - b.length;
|
|
223
223
|
}
|
|
224
|
-
function withDescription(source, value) {
|
|
225
|
-
return source.description === undefined ? value : { description: source.description, ...value };
|
|
226
|
-
}
|
|
227
224
|
function isEdge(value) {
|
|
228
225
|
return 'source' in value;
|
|
229
226
|
}
|
|
230
|
-
//# sourceMappingURL=normalize.js.map
|
|
@@ -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 {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { stateMachine } from './machine.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ZodType } from 'zod';
|
|
2
|
+
import type { EventName, StateName, StateTopology, TransitionRelation, ValidTransitionRelation } from './topology.js';
|
|
3
|
+
export interface StateMachine<Transitions extends TransitionRelation = any, Initial extends StateName<Transitions> = StateName<Transitions>> extends StateTopology<Transitions, Initial> {
|
|
4
|
+
readonly stateSchema: ZodType<StateName<Transitions>>;
|
|
5
|
+
readonly eventSchema: ZodType<EventName<Transitions>>;
|
|
6
|
+
eventsFrom<State extends StateName<Transitions>>(state: State): readonly EventName<Transitions, State>[];
|
|
7
|
+
decide<State extends StateName<Transitions>, Event extends EventName<Transitions>>(state: State, event: Event): TransitionDecision<Transitions, State, Event>;
|
|
8
|
+
}
|
|
9
|
+
export type StateOf<Machine extends StateMachine> = StateName<Machine['transitions']>;
|
|
10
|
+
export type EventOf<Machine extends StateMachine, State extends StateOf<Machine> = StateOf<Machine>> = EventName<Machine['transitions'], State>;
|
|
11
|
+
type TransitionDecision<Transitions extends TransitionRelation, State extends StateName<Transitions>, Event extends EventName<Transitions>> = State extends StateName<Transitions> ? Event extends EventName<Transitions> ? Event extends keyof Transitions[State] ? Readonly<{
|
|
12
|
+
kind: 'allowed';
|
|
13
|
+
transition: Readonly<{
|
|
14
|
+
from: State;
|
|
15
|
+
event: Event;
|
|
16
|
+
to: Transitions[State][Event];
|
|
17
|
+
}>;
|
|
18
|
+
}> : Readonly<{
|
|
19
|
+
kind: 'rejected';
|
|
20
|
+
code: 'STATE_TRANSITION_ILLEGAL';
|
|
21
|
+
from: State;
|
|
22
|
+
event: Event;
|
|
23
|
+
}> : never : never;
|
|
24
|
+
export declare function stateMachine<const Transitions extends TransitionRelation, const Initial extends StateName<Transitions>>(input: Readonly<{
|
|
25
|
+
initial: Initial;
|
|
26
|
+
transitions: Transitions & ValidTransitionRelation<Transitions>;
|
|
27
|
+
}>): StateMachine<Transitions, Initial>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { enum as enumeration } from 'zod';
|
|
2
|
+
import { compareUnicode } from '../../addressing/ordering.js';
|
|
3
|
+
import { admitStateTopology } from './topology.js';
|
|
4
|
+
export function stateMachine(input) {
|
|
5
|
+
const topology = admitStateTopology(input);
|
|
6
|
+
const states = Object.keys(topology.transitions);
|
|
7
|
+
const events = [
|
|
8
|
+
...new Set(states.flatMap((state) => Object.keys(topology.transitions[state]))),
|
|
9
|
+
].sort(compareUnicode);
|
|
10
|
+
const stateSet = new Set(states);
|
|
11
|
+
const eventSet = new Set(events);
|
|
12
|
+
return Object.freeze({
|
|
13
|
+
...topology,
|
|
14
|
+
stateSchema: enumeration(states),
|
|
15
|
+
eventSchema: enumeration(events),
|
|
16
|
+
eventsFrom(state) {
|
|
17
|
+
admitState(state, stateSet);
|
|
18
|
+
return Object.freeze(Object.keys(topology.transitions[state]));
|
|
19
|
+
},
|
|
20
|
+
decide(state, event) {
|
|
21
|
+
admitState(state, stateSet);
|
|
22
|
+
admitEvent(event, eventSet);
|
|
23
|
+
const target = topology.transitions[state][event];
|
|
24
|
+
return target === undefined
|
|
25
|
+
? Object.freeze({ kind: 'rejected', code: 'STATE_TRANSITION_ILLEGAL', from: state, event })
|
|
26
|
+
: Object.freeze({
|
|
27
|
+
kind: 'allowed',
|
|
28
|
+
transition: Object.freeze({ from: state, event, to: target }),
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function admitState(state, states) {
|
|
34
|
+
if (!states.has(state))
|
|
35
|
+
throw new TypeError(`State machine does not declare state "${state}".`);
|
|
36
|
+
}
|
|
37
|
+
function admitEvent(event, events) {
|
|
38
|
+
if (!events.has(event))
|
|
39
|
+
throw new TypeError(`State machine does not declare event "${event}".`);
|
|
40
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type TransitionRelation = Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
2
|
+
export type StateName<Transitions extends TransitionRelation> = Extract<keyof Transitions, string>;
|
|
3
|
+
export type EventName<Transitions extends TransitionRelation, State extends StateName<Transitions> = StateName<Transitions>> = State extends StateName<Transitions> ? Extract<keyof Transitions[State], string> : never;
|
|
4
|
+
export type ValidTransitionRelation<Transitions extends TransitionRelation> = Readonly<{
|
|
5
|
+
[State in StateName<Transitions>]: Readonly<{
|
|
6
|
+
[Event in keyof Transitions[State]]: string extends StateName<Transitions> ? string : Exclude<StateName<Transitions>, State>;
|
|
7
|
+
}>;
|
|
8
|
+
}>;
|
|
9
|
+
export interface StateTopology<Transitions extends TransitionRelation = TransitionRelation, Initial extends StateName<Transitions> = StateName<Transitions>> {
|
|
10
|
+
readonly initial: Initial;
|
|
11
|
+
readonly transitions: Transitions;
|
|
12
|
+
}
|
|
13
|
+
export type StateTopologyOf<Value> = Value extends StateTopology<infer Transitions, infer Initial> ? StateTopology<Transitions, Initial> : undefined;
|
|
14
|
+
export declare function admitStateTopology(input: unknown): StateTopology;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { compareUnicode } from '../../addressing/ordering.js';
|
|
2
|
+
export function admitStateTopology(input) {
|
|
3
|
+
if (!isRecord(input) || !exactKeys(input, ['initial', 'transitions']))
|
|
4
|
+
invalidInput();
|
|
5
|
+
const initial = input.initial;
|
|
6
|
+
const authored = input.transitions;
|
|
7
|
+
if (typeof initial !== 'string' || initial.length === 0 || !isRecord(authored))
|
|
8
|
+
invalidInput();
|
|
9
|
+
const states = Object.keys(authored);
|
|
10
|
+
if (states.length === 0)
|
|
11
|
+
throw new TypeError('State topology requires at least one state.');
|
|
12
|
+
if (states.includes(''))
|
|
13
|
+
throw new TypeError('State topology has an empty state name.');
|
|
14
|
+
if (!states.includes(initial)) {
|
|
15
|
+
throw new TypeError(`State topology initial state "${initial}" is not declared.`);
|
|
16
|
+
}
|
|
17
|
+
const declared = new Set(states);
|
|
18
|
+
const transitions = Object.create(null);
|
|
19
|
+
let transitionCount = 0;
|
|
20
|
+
for (const state of states.sort(compareUnicode)) {
|
|
21
|
+
const outgoing = authored[state];
|
|
22
|
+
if (!isRecord(outgoing))
|
|
23
|
+
throw new TypeError(`State "${state}" transitions must be an object.`);
|
|
24
|
+
const accepted = Object.create(null);
|
|
25
|
+
for (const event of Object.keys(outgoing).sort(compareUnicode)) {
|
|
26
|
+
const target = outgoing[event];
|
|
27
|
+
if (event.length === 0)
|
|
28
|
+
throw new TypeError(`State "${state}" has an empty event name.`);
|
|
29
|
+
if (typeof target !== 'string' || !declared.has(target)) {
|
|
30
|
+
throw new TypeError(`State "${state}" event "${event}" targets undeclared state "${String(target)}".`);
|
|
31
|
+
}
|
|
32
|
+
if (target === state) {
|
|
33
|
+
throw new TypeError(`State "${state}" event "${event}" is a self-transition.`);
|
|
34
|
+
}
|
|
35
|
+
accepted[event] = target;
|
|
36
|
+
transitionCount += 1;
|
|
37
|
+
}
|
|
38
|
+
transitions[state] = Object.freeze(accepted);
|
|
39
|
+
}
|
|
40
|
+
if (transitionCount === 0)
|
|
41
|
+
throw new TypeError('State topology requires at least one transition.');
|
|
42
|
+
const reachable = new Set([initial]);
|
|
43
|
+
const pending = [initial];
|
|
44
|
+
while (pending.length > 0) {
|
|
45
|
+
const state = pending.shift();
|
|
46
|
+
for (const target of Object.values(transitions[state])) {
|
|
47
|
+
if (reachable.has(target))
|
|
48
|
+
continue;
|
|
49
|
+
reachable.add(target);
|
|
50
|
+
pending.push(target);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (const state of states) {
|
|
54
|
+
if (!reachable.has(state)) {
|
|
55
|
+
throw new TypeError(`State "${state}" is unreachable from initial "${initial}".`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return Object.freeze({ initial, transitions: Object.freeze(transitions) });
|
|
59
|
+
}
|
|
60
|
+
function invalidInput() {
|
|
61
|
+
throw new TypeError('State topology must contain exactly initial and transitions.');
|
|
62
|
+
}
|
|
63
|
+
function isRecord(input) {
|
|
64
|
+
return input !== null && typeof input === 'object' && !Array.isArray(input);
|
|
65
|
+
}
|
|
66
|
+
function exactKeys(input, expected) {
|
|
67
|
+
const keys = Reflect.ownKeys(input);
|
|
68
|
+
return keys.length === expected.length && keys.every((key) => expected.includes(String(key)));
|
|
69
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type DiagnosticCode = 'CALLABLE_INPUT_FIELD_UNKNOWN' | 'DOMAIN_CLASS_ABSTRACT' | 'DOMAIN_PROPERTY_INPUT_INVALID' | 'DOMAIN_PROPERTY_REQUIRED' | 'DOMAIN_PROPERTY_UNKNOWN' | 'DOMAIN_VALIDATION_TARGET_UNKNOWN' | 'VALUE_SCHEMA_INSTANCE_INVALID' | 'VS_DIALECT' | 'VS_DYNAMIC_FORBIDDEN' | 'VS_KEYWORD_CLOSED' | 'VS_META_SCHEMA' | 'VS_NUMBER_DOMAIN' | 'VS_PATH_EXTENSION' | 'VS_RECURSION_PRODUCTIVE' | 'VS_REFERENCE_FORM' | 'VS_REFERENCE_RESOLUTION' | 'VS_REGEX_PORTABLE' | 'VS_RESOURCE_ID' | 'VS_VALUE_KIND';
|
|
2
|
+
export interface Diagnostic<out Code extends DiagnosticCode = DiagnosticCode> {
|
|
3
|
+
readonly code: Code;
|
|
4
|
+
readonly pointer: string;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
readonly ref?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function diagnostic<const Code extends DiagnosticCode>(code: Code, pointer: string, message: string, ref?: string): Diagnostic<Code>;
|