@fougere/schema 0.6.0-alpha.0 → 0.7.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/{schema/Schema.d.ts → Schema.d.ts} +17 -27
- package/dist/Schema.d.ts.map +1 -0
- package/dist/{schema/Schema.js → Schema.js} +21 -61
- package/dist/Schema.js.map +1 -0
- package/dist/SchemaDefinition.d.ts +73 -0
- package/dist/SchemaDefinition.d.ts.map +1 -0
- package/dist/SchemaDefinition.js +184 -0
- package/dist/SchemaDefinition.js.map +1 -0
- package/dist/SchemaDerivation.d.ts +16 -0
- package/dist/SchemaDerivation.d.ts.map +1 -0
- package/dist/SchemaDerivation.js +31 -0
- package/dist/SchemaDerivation.js.map +1 -0
- package/dist/{schema/SchemaView.d.ts → SchemaView.d.ts} +9 -9
- package/dist/SchemaView.d.ts.map +1 -0
- package/dist/{schema/SchemaView.js.map → SchemaView.js.map} +1 -1
- package/dist/{schema/axis → axis}/Axis.d.ts +2 -2
- package/dist/axis/Axis.d.ts.map +1 -0
- package/dist/axis/Axis.js.map +1 -0
- package/dist/axis/Meta.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/Meta.js.map +1 -1
- package/dist/axis/boundary/Boundaries.d.ts +21 -0
- package/dist/axis/boundary/Boundaries.d.ts.map +1 -0
- package/dist/axis/boundary/Boundaries.js +25 -0
- package/dist/axis/boundary/Boundaries.js.map +1 -0
- package/dist/{schema/axis → axis}/boundary/Boundary.d.ts +3 -1
- package/dist/axis/boundary/Boundary.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/boundary/Boundary.js +8 -6
- package/dist/axis/boundary/Boundary.js.map +1 -0
- package/dist/axis/boundary/BoundaryAxis.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/boundary/BoundaryAxis.js +4 -4
- package/dist/axis/boundary/BoundaryAxis.js.map +1 -0
- package/dist/{schema/axis → axis}/lifecycle/Clock.d.ts +1 -1
- package/dist/axis/lifecycle/Clock.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/lifecycle/Clock.js +1 -1
- package/dist/axis/lifecycle/Clock.js.map +1 -0
- package/dist/axis/lifecycle/Generators.d.ts +10 -0
- package/dist/axis/lifecycle/Generators.d.ts.map +1 -0
- package/dist/axis/lifecycle/Generators.js +20 -0
- package/dist/axis/lifecycle/Generators.js.map +1 -0
- package/dist/axis/lifecycle/Lifecycle.d.ts.map +1 -0
- package/dist/axis/lifecycle/Lifecycle.js.map +1 -0
- package/dist/axis/lifecycle/LifecycleAxis.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/lifecycle/LifecycleAxis.js +11 -6
- package/dist/axis/lifecycle/LifecycleAxis.js.map +1 -0
- package/dist/axis/lifecycle/apply.d.ts +15 -0
- package/dist/axis/lifecycle/apply.d.ts.map +1 -0
- package/dist/axis/lifecycle/apply.js +50 -0
- package/dist/axis/lifecycle/apply.js.map +1 -0
- package/dist/{schema/axis → axis}/role/Relation.d.ts +3 -2
- package/dist/axis/role/Relation.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/role/Relation.js +6 -5
- package/dist/axis/role/Relation.js.map +1 -0
- package/dist/{schema/axis → axis}/role/Role.d.ts +6 -6
- package/dist/axis/role/Role.d.ts.map +1 -0
- package/dist/axis/role/Role.js +36 -0
- package/dist/axis/role/Role.js.map +1 -0
- package/dist/{schema/axis → axis}/role/RoleAxis.d.ts +1 -1
- package/dist/axis/role/RoleAxis.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/role/RoleAxis.js +28 -36
- package/dist/axis/role/RoleAxis.js.map +1 -0
- package/dist/axis/shape/Formats.d.ts +11 -0
- package/dist/axis/shape/Formats.d.ts.map +1 -0
- package/dist/axis/shape/Formats.js +9 -0
- package/dist/axis/shape/Formats.js.map +1 -0
- package/dist/{schema/axis → axis}/shape/Shape.d.ts +5 -3
- package/dist/axis/shape/Shape.d.ts.map +1 -0
- package/dist/{schema/axis → axis}/shape/Shape.js +13 -13
- package/dist/axis/shape/Shape.js.map +1 -0
- package/dist/entity/EntityAdapterSet.d.ts +22 -0
- package/dist/entity/EntityAdapterSet.d.ts.map +1 -0
- package/dist/entity/EntityAdapterSet.js +63 -0
- package/dist/entity/EntityAdapterSet.js.map +1 -0
- package/dist/entity/EntityAdapters.d.ts +1 -24
- package/dist/entity/EntityAdapters.d.ts.map +1 -1
- package/dist/entity/EntityAdapters.js +1 -74
- package/dist/entity/EntityAdapters.js.map +1 -1
- package/dist/entity/EntityDeclarations.d.ts +1 -1
- package/dist/entity/EntityDeclarations.d.ts.map +1 -1
- package/dist/entity.d.ts +7 -2
- package/dist/entity.d.ts.map +1 -1
- package/dist/entity.js +6 -1
- package/dist/entity.js.map +1 -1
- package/dist/{schema/fields → field}/Field.d.ts +2 -3
- package/dist/field/Field.d.ts.map +1 -0
- package/dist/field/Field.js +35 -0
- package/dist/field/Field.js.map +1 -0
- package/dist/field/FieldSet.d.ts +22 -0
- package/dist/field/FieldSet.d.ts.map +1 -0
- package/dist/field/FieldSet.js +58 -0
- package/dist/field/FieldSet.js.map +1 -0
- package/dist/index.d.ts +27 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -23
- package/dist/index.js.map +1 -1
- package/dist/lib/Registry.d.ts +12 -0
- package/dist/lib/Registry.d.ts.map +1 -0
- package/dist/lib/Registry.js +29 -0
- package/dist/lib/Registry.js.map +1 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/projection/Cases.d.ts +9 -20
- package/dist/projection/Cases.d.ts.map +1 -1
- package/dist/projection/Cases.js +44 -39
- package/dist/projection/Cases.js.map +1 -1
- package/dist/projection/Visibility.d.ts +2 -1
- package/dist/projection/Visibility.d.ts.map +1 -1
- package/dist/projection/Visibility.js +4 -3
- package/dist/projection/Visibility.js.map +1 -1
- package/dist/projection/card/Bundle.d.ts +1 -1
- package/dist/projection/card/Bundle.d.ts.map +1 -1
- package/dist/projection/card/Bundle.js +7 -7
- package/dist/projection/card/Bundle.js.map +1 -1
- package/dist/projection/card/Card.d.ts +7 -13
- package/dist/projection/card/Card.d.ts.map +1 -1
- package/dist/projection/card/Card.js +96 -69
- package/dist/projection/card/Card.js.map +1 -1
- package/dist/projection/card/Descriptor.d.ts +7 -7
- package/dist/projection/card/Descriptor.d.ts.map +1 -1
- package/dist/projection/card/admission.d.ts +15 -5
- package/dist/projection/card/admission.d.ts.map +1 -1
- package/dist/projection/card/admission.js +15 -5
- package/dist/projection/card/admission.js.map +1 -1
- package/dist/projection/card/diff.d.ts +2 -2
- package/dist/projection/card/diff.d.ts.map +1 -1
- package/dist/{judge/result.d.ts → validation.d.ts} +1 -1
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +2 -0
- package/dist/validation.js.map +1 -0
- package/dist/validator/AdapterFieldValidator.d.ts +14 -0
- package/dist/validator/AdapterFieldValidator.d.ts.map +1 -0
- package/dist/validator/AdapterFieldValidator.js +36 -0
- package/dist/validator/AdapterFieldValidator.js.map +1 -0
- package/dist/validator/FieldDeclarationValidator.d.ts +9 -0
- package/dist/validator/FieldDeclarationValidator.d.ts.map +1 -0
- package/dist/{judge/FieldJudge.js → validator/FieldDeclarationValidator.js} +8 -8
- package/dist/validator/FieldDeclarationValidator.js.map +1 -0
- package/dist/validator/FieldValueValidator.d.ts +13 -0
- package/dist/validator/FieldValueValidator.d.ts.map +1 -0
- package/dist/{judge/ValueJudge.js → validator/FieldValueValidator.js} +12 -11
- package/dist/validator/FieldValueValidator.js.map +1 -0
- package/dist/{judge/RowRefusal.d.ts → validator/InputRefusal.d.ts} +3 -4
- package/dist/validator/InputRefusal.d.ts.map +1 -0
- package/dist/{judge/RowRefusal.js → validator/InputRefusal.js} +3 -3
- package/dist/validator/InputRefusal.js.map +1 -0
- package/dist/validator/InputValidator.d.ts +15 -0
- package/dist/validator/InputValidator.d.ts.map +1 -0
- package/dist/{judge/RowJudge.js → validator/InputValidator.js} +24 -20
- package/dist/validator/InputValidator.js.map +1 -0
- package/dist/vocabulary/bool.d.ts +6 -1
- package/dist/vocabulary/bool.d.ts.map +1 -1
- package/dist/vocabulary/bool.js +6 -1
- package/dist/vocabulary/bool.js.map +1 -1
- package/dist/vocabulary/created.d.ts +6 -1
- package/dist/vocabulary/created.d.ts.map +1 -1
- package/dist/vocabulary/created.js +5 -0
- package/dist/vocabulary/created.js.map +1 -1
- package/dist/vocabulary/date.d.ts +6 -1
- package/dist/vocabulary/date.d.ts.map +1 -1
- package/dist/vocabulary/date.js +6 -1
- package/dist/vocabulary/date.js.map +1 -1
- package/dist/vocabulary/email.d.ts +6 -1
- package/dist/vocabulary/email.d.ts.map +1 -1
- package/dist/vocabulary/email.js +5 -0
- package/dist/vocabulary/email.js.map +1 -1
- package/dist/vocabulary/immutable.d.ts +6 -1
- package/dist/vocabulary/immutable.d.ts.map +1 -1
- package/dist/vocabulary/immutable.js +5 -0
- package/dist/vocabulary/immutable.js.map +1 -1
- package/dist/vocabulary/indexed.d.ts +6 -1
- package/dist/vocabulary/indexed.d.ts.map +1 -1
- package/dist/vocabulary/indexed.js +5 -0
- package/dist/vocabulary/indexed.js.map +1 -1
- package/dist/vocabulary/json.d.ts +2 -2
- package/dist/vocabulary/json.d.ts.map +1 -1
- package/dist/vocabulary/json.js +9 -4
- package/dist/vocabulary/json.js.map +1 -1
- package/dist/vocabulary/list.d.ts +6 -1
- package/dist/vocabulary/list.d.ts.map +1 -1
- package/dist/vocabulary/list.js +6 -1
- package/dist/vocabulary/list.js.map +1 -1
- package/dist/vocabulary/many.d.ts +7 -2
- package/dist/vocabulary/many.d.ts.map +1 -1
- package/dist/vocabulary/many.js +7 -2
- package/dist/vocabulary/many.js.map +1 -1
- package/dist/vocabulary/nullable.d.ts +6 -1
- package/dist/vocabulary/nullable.d.ts.map +1 -1
- package/dist/vocabulary/nullable.js +7 -2
- package/dist/vocabulary/nullable.js.map +1 -1
- package/dist/vocabulary/number.d.ts +6 -1
- package/dist/vocabulary/number.d.ts.map +1 -1
- package/dist/vocabulary/number.js +6 -1
- package/dist/vocabulary/number.js.map +1 -1
- package/dist/vocabulary/oneOf.d.ts +1 -1
- package/dist/vocabulary/oneOf.d.ts.map +1 -1
- package/dist/vocabulary/oneOf.js +6 -1
- package/dist/vocabulary/oneOf.js.map +1 -1
- package/dist/vocabulary/optional.d.ts +6 -1
- package/dist/vocabulary/optional.d.ts.map +1 -1
- package/dist/vocabulary/optional.js +7 -2
- package/dist/vocabulary/optional.js.map +1 -1
- package/dist/vocabulary/primary.d.ts +2 -2
- package/dist/vocabulary/primary.d.ts.map +1 -1
- package/dist/vocabulary/primary.js +7 -2
- package/dist/vocabulary/primary.js.map +1 -1
- package/dist/vocabulary/readOnly.d.ts +6 -1
- package/dist/vocabulary/readOnly.d.ts.map +1 -1
- package/dist/vocabulary/readOnly.js +6 -1
- package/dist/vocabulary/readOnly.js.map +1 -1
- package/dist/vocabulary/ref.d.ts +7 -2
- package/dist/vocabulary/ref.d.ts.map +1 -1
- package/dist/vocabulary/ref.js +7 -2
- package/dist/vocabulary/ref.js.map +1 -1
- package/dist/vocabulary/text.d.ts +7 -2
- package/dist/vocabulary/text.d.ts.map +1 -1
- package/dist/vocabulary/text.js +6 -1
- package/dist/vocabulary/text.js.map +1 -1
- package/dist/vocabulary/unique.d.ts +6 -1
- package/dist/vocabulary/unique.d.ts.map +1 -1
- package/dist/vocabulary/unique.js +7 -3
- package/dist/vocabulary/unique.js.map +1 -1
- package/dist/vocabulary/updated.d.ts +6 -1
- package/dist/vocabulary/updated.d.ts.map +1 -1
- package/dist/vocabulary/updated.js +5 -0
- package/dist/vocabulary/updated.js.map +1 -1
- package/dist/vocabulary/url.d.ts +6 -1
- package/dist/vocabulary/url.d.ts.map +1 -1
- package/dist/vocabulary/url.js +5 -0
- package/dist/vocabulary/url.js.map +1 -1
- package/dist/vocabulary/vocabulary.d.ts +6 -1
- package/dist/vocabulary/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary/vocabulary.js +22 -12
- package/dist/vocabulary/vocabulary.js.map +1 -1
- package/dist/vocabulary/writeOnly.d.ts +6 -1
- package/dist/vocabulary/writeOnly.d.ts.map +1 -1
- package/dist/vocabulary/writeOnly.js +6 -1
- package/dist/vocabulary/writeOnly.js.map +1 -1
- package/package.json +1 -1
- package/src/{schema/Schema.ts → Schema.ts} +31 -74
- package/src/SchemaDefinition.ts +257 -0
- package/src/SchemaDerivation.ts +44 -0
- package/src/{schema/SchemaView.ts → SchemaView.ts} +9 -9
- package/src/{schema/axis → axis}/Axis.ts +2 -2
- package/src/axis/boundary/Boundaries.ts +37 -0
- package/src/{schema/axis → axis}/boundary/Boundary.ts +9 -7
- package/src/{schema/axis → axis}/boundary/BoundaryAxis.ts +4 -4
- package/src/{schema/axis → axis}/lifecycle/Clock.ts +1 -1
- package/src/axis/lifecycle/Generators.ts +29 -0
- package/src/{schema/axis → axis}/lifecycle/LifecycleAxis.ts +12 -7
- package/src/axis/lifecycle/apply.ts +53 -0
- package/src/{schema/axis → axis}/role/Relation.ts +6 -5
- package/src/axis/role/Role.ts +52 -0
- package/src/{schema/axis → axis}/role/RoleAxis.ts +28 -40
- package/src/axis/shape/Formats.ts +20 -0
- package/src/{schema/axis → axis}/shape/Shape.ts +18 -18
- package/src/entity/EntityAdapterSet.ts +81 -0
- package/src/entity/EntityAdapters.ts +4 -96
- package/src/entity/EntityDeclarations.ts +1 -1
- package/src/entity.ts +7 -2
- package/src/{schema/fields → field}/Field.ts +8 -26
- package/src/field/FieldSet.ts +75 -0
- package/src/index.ts +29 -44
- package/src/lib/Registry.ts +37 -0
- package/src/projection/Cases.ts +56 -55
- package/src/projection/Visibility.ts +5 -4
- package/src/projection/card/Bundle.ts +9 -9
- package/src/projection/card/Card.ts +101 -74
- package/src/projection/card/Descriptor.ts +7 -7
- package/src/projection/card/admission.ts +16 -6
- package/src/projection/card/diff.ts +2 -2
- package/src/validator/AdapterFieldValidator.ts +40 -0
- package/src/{judge/FieldJudge.ts → validator/FieldDeclarationValidator.ts} +10 -10
- package/src/{judge/ValueJudge.ts → validator/FieldValueValidator.ts} +14 -13
- package/src/{judge/RowRefusal.ts → validator/InputRefusal.ts} +2 -4
- package/src/{judge/RowJudge.ts → validator/InputValidator.ts} +30 -23
- package/src/vocabulary/bool.ts +6 -1
- package/src/vocabulary/created.ts +6 -1
- package/src/vocabulary/date.ts +6 -1
- package/src/vocabulary/email.ts +6 -1
- package/src/vocabulary/immutable.ts +6 -1
- package/src/vocabulary/indexed.ts +6 -1
- package/src/vocabulary/json.ts +10 -5
- package/src/vocabulary/list.ts +6 -1
- package/src/vocabulary/many.ts +7 -2
- package/src/vocabulary/nullable.ts +8 -3
- package/src/vocabulary/number.ts +6 -1
- package/src/vocabulary/oneOf.ts +6 -1
- package/src/vocabulary/optional.ts +8 -3
- package/src/vocabulary/primary.ts +7 -2
- package/src/vocabulary/readOnly.ts +7 -2
- package/src/vocabulary/ref.ts +7 -2
- package/src/vocabulary/text.ts +7 -2
- package/src/vocabulary/unique.ts +8 -4
- package/src/vocabulary/updated.ts +6 -1
- package/src/vocabulary/url.ts +6 -1
- package/src/vocabulary/vocabulary.ts +22 -12
- package/src/vocabulary/writeOnly.ts +7 -2
- package/dist/judge/FieldJudge.d.ts +0 -9
- package/dist/judge/FieldJudge.d.ts.map +0 -1
- package/dist/judge/FieldJudge.js.map +0 -1
- package/dist/judge/RowJudge.d.ts +0 -12
- package/dist/judge/RowJudge.d.ts.map +0 -1
- package/dist/judge/RowJudge.js.map +0 -1
- package/dist/judge/RowRefusal.d.ts.map +0 -1
- package/dist/judge/RowRefusal.js.map +0 -1
- package/dist/judge/ValueJudge.d.ts +0 -12
- package/dist/judge/ValueJudge.d.ts.map +0 -1
- package/dist/judge/ValueJudge.js.map +0 -1
- package/dist/judge/options.d.ts +0 -4
- package/dist/judge/options.d.ts.map +0 -1
- package/dist/judge/options.js +0 -2
- package/dist/judge/options.js.map +0 -1
- package/dist/judge/result.d.ts.map +0 -1
- package/dist/judge/result.js +0 -2
- package/dist/judge/result.js.map +0 -1
- package/dist/projection/SchemaOrCard.d.ts +0 -7
- package/dist/projection/SchemaOrCard.d.ts.map +0 -1
- package/dist/projection/SchemaOrCard.js +0 -11
- package/dist/projection/SchemaOrCard.js.map +0 -1
- package/dist/projection/card/EntityTypeSource.d.ts +0 -12
- package/dist/projection/card/EntityTypeSource.d.ts.map +0 -1
- package/dist/projection/card/EntityTypeSource.js +0 -78
- package/dist/projection/card/EntityTypeSource.js.map +0 -1
- package/dist/projection/card/FacadeTypeSource.d.ts +0 -19
- package/dist/projection/card/FacadeTypeSource.d.ts.map +0 -1
- package/dist/projection/card/FacadeTypeSource.js +0 -40
- package/dist/projection/card/FacadeTypeSource.js.map +0 -1
- package/dist/schema/Schema.d.ts.map +0 -1
- package/dist/schema/Schema.js.map +0 -1
- package/dist/schema/SchemaDefinition.d.ts +0 -60
- package/dist/schema/SchemaDefinition.d.ts.map +0 -1
- package/dist/schema/SchemaDefinition.js +0 -85
- package/dist/schema/SchemaDefinition.js.map +0 -1
- package/dist/schema/SchemaDerivation.d.ts +0 -34
- package/dist/schema/SchemaDerivation.d.ts.map +0 -1
- package/dist/schema/SchemaDerivation.js +0 -51
- package/dist/schema/SchemaDerivation.js.map +0 -1
- package/dist/schema/SchemaView.d.ts.map +0 -1
- package/dist/schema/axis/Axis.d.ts.map +0 -1
- package/dist/schema/axis/Axis.js.map +0 -1
- package/dist/schema/axis/Meta.d.ts.map +0 -1
- package/dist/schema/axis/boundary/Boundaries.d.ts +0 -20
- package/dist/schema/axis/boundary/Boundaries.d.ts.map +0 -1
- package/dist/schema/axis/boundary/Boundaries.js +0 -31
- package/dist/schema/axis/boundary/Boundaries.js.map +0 -1
- package/dist/schema/axis/boundary/Boundary.d.ts.map +0 -1
- package/dist/schema/axis/boundary/Boundary.js.map +0 -1
- package/dist/schema/axis/boundary/BoundaryAxis.d.ts.map +0 -1
- package/dist/schema/axis/boundary/BoundaryAxis.js.map +0 -1
- package/dist/schema/axis/lifecycle/Clock.d.ts.map +0 -1
- package/dist/schema/axis/lifecycle/Clock.js.map +0 -1
- package/dist/schema/axis/lifecycle/Generators.d.ts +0 -18
- package/dist/schema/axis/lifecycle/Generators.d.ts.map +0 -1
- package/dist/schema/axis/lifecycle/Generators.js +0 -38
- package/dist/schema/axis/lifecycle/Generators.js.map +0 -1
- package/dist/schema/axis/lifecycle/Lifecycle.d.ts.map +0 -1
- package/dist/schema/axis/lifecycle/Lifecycle.js.map +0 -1
- package/dist/schema/axis/lifecycle/LifecycleAxis.d.ts.map +0 -1
- package/dist/schema/axis/lifecycle/LifecycleAxis.js.map +0 -1
- package/dist/schema/axis/lifecycle/apply.d.ts +0 -6
- package/dist/schema/axis/lifecycle/apply.d.ts.map +0 -1
- package/dist/schema/axis/lifecycle/apply.js +0 -34
- package/dist/schema/axis/lifecycle/apply.js.map +0 -1
- package/dist/schema/axis/role/Relation.d.ts.map +0 -1
- package/dist/schema/axis/role/Relation.js.map +0 -1
- package/dist/schema/axis/role/Role.d.ts.map +0 -1
- package/dist/schema/axis/role/Role.js +0 -40
- package/dist/schema/axis/role/Role.js.map +0 -1
- package/dist/schema/axis/role/RoleAxis.d.ts.map +0 -1
- package/dist/schema/axis/role/RoleAxis.js.map +0 -1
- package/dist/schema/axis/shape/Formats.d.ts +0 -8
- package/dist/schema/axis/shape/Formats.d.ts.map +0 -1
- package/dist/schema/axis/shape/Formats.js +0 -10
- package/dist/schema/axis/shape/Formats.js.map +0 -1
- package/dist/schema/axis/shape/Shape.d.ts.map +0 -1
- package/dist/schema/axis/shape/Shape.js.map +0 -1
- package/dist/schema/fields/Field.d.ts.map +0 -1
- package/dist/schema/fields/Field.js +0 -52
- package/dist/schema/fields/Field.js.map +0 -1
- package/dist/schema/fields/FieldSet.d.ts +0 -28
- package/dist/schema/fields/FieldSet.d.ts.map +0 -1
- package/dist/schema/fields/FieldSet.js +0 -55
- package/dist/schema/fields/FieldSet.js.map +0 -1
- package/dist/schema/fields/constraint/FieldGroup.d.ts +0 -21
- package/dist/schema/fields/constraint/FieldGroup.d.ts.map +0 -1
- package/dist/schema/fields/constraint/FieldGroup.js +0 -65
- package/dist/schema/fields/constraint/FieldGroup.js.map +0 -1
- package/dist/schema/fields/constraint/Unique.d.ts +0 -4
- package/dist/schema/fields/constraint/Unique.d.ts.map +0 -1
- package/dist/schema/fields/constraint/Unique.js +0 -4
- package/dist/schema/fields/constraint/Unique.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
- package/src/judge/options.ts +0 -3
- package/src/projection/SchemaOrCard.ts +0 -18
- package/src/projection/card/EntityTypeSource.ts +0 -90
- package/src/projection/card/FacadeTypeSource.ts +0 -55
- package/src/schema/SchemaDefinition.ts +0 -150
- package/src/schema/SchemaDerivation.ts +0 -65
- package/src/schema/axis/boundary/Boundaries.ts +0 -44
- package/src/schema/axis/lifecycle/Generators.ts +0 -46
- package/src/schema/axis/lifecycle/apply.ts +0 -39
- package/src/schema/axis/role/Role.ts +0 -56
- package/src/schema/axis/shape/Formats.ts +0 -22
- package/src/schema/fields/FieldSet.ts +0 -63
- package/src/schema/fields/constraint/FieldGroup.ts +0 -84
- package/src/schema/fields/constraint/Unique.ts +0 -3
- /package/dist/{schema/SchemaView.js → SchemaView.js} +0 -0
- /package/dist/{schema/axis → axis}/Axis.js +0 -0
- /package/dist/{schema/axis → axis}/Meta.d.ts +0 -0
- /package/dist/{schema/axis → axis}/Meta.js +0 -0
- /package/dist/{schema/axis → axis}/boundary/BoundaryAxis.d.ts +0 -0
- /package/dist/{schema/axis → axis}/lifecycle/Lifecycle.d.ts +0 -0
- /package/dist/{schema/axis → axis}/lifecycle/Lifecycle.js +0 -0
- /package/dist/{schema/axis → axis}/lifecycle/LifecycleAxis.d.ts +0 -0
- /package/dist/{utils.d.ts → lib/utils.d.ts} +0 -0
- /package/dist/{utils.js → lib/utils.js} +0 -0
- /package/src/{schema/axis → axis}/Meta.ts +0 -0
- /package/src/{schema/axis → axis}/lifecycle/Lifecycle.ts +0 -0
- /package/src/{utils.ts → lib/utils.ts} +0 -0
- /package/src/{judge/result.ts → validation.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldSet.d.ts","sourceRoot":"","sources":["../../src/field/FieldSet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAS,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,QAAQ,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO,eAAiD;IAExD,MAAM,CAAC,EAAE,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAEpE;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,SAAS,MAAM,EACrC,QAAQ,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GAChC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;KAAE,CA0BnE;IAED,0FAA0F;IAC1F,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAa5C;CAEF;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GACrC,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAK5C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Role } from '../axis/role/Role.js';
|
|
2
|
+
import { Field } from './Field.js';
|
|
3
|
+
export class FieldSet {
|
|
4
|
+
fields;
|
|
5
|
+
constructor(fields) {
|
|
6
|
+
this.fields = fields;
|
|
7
|
+
}
|
|
8
|
+
static of(fields) {
|
|
9
|
+
return new FieldSet(fields);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* So a declared unique lands where it belongs: on the field, or on the schema.
|
|
13
|
+
* FR : pour qu'une unicité déclarée atterrisse sur le champ ou sur le schéma.
|
|
14
|
+
* `declaring(fields, [['email'], ['listId', 'docId']])`
|
|
15
|
+
* → `email` carries `role.unique`, the pair becomes a schema constraint
|
|
16
|
+
*/
|
|
17
|
+
static declaring(declared, unique) {
|
|
18
|
+
const fields = {};
|
|
19
|
+
for (const [key, field] of Object.entries(declared))
|
|
20
|
+
fields[key] = new Field(field, key);
|
|
21
|
+
const composite = [];
|
|
22
|
+
for (const group of unique ?? []) {
|
|
23
|
+
const missing = group.filter((key) => !(key in fields));
|
|
24
|
+
if (missing.length)
|
|
25
|
+
throw new Error(`unique: [${group.join(', ')}] names ` +
|
|
26
|
+
`${missing.map((key) => `'${key}'`).join(', ')}, which the entity does not declare.`);
|
|
27
|
+
if (group.length === 1) {
|
|
28
|
+
const key = group[0];
|
|
29
|
+
fields[key] = fields[key].with({ role: { ...fields[key].role, unique: true } });
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
composite.push([...group]);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
fields: fields,
|
|
36
|
+
unique: deduplicated(composite),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** A second `primary` is refused, naming both, rather than the first winning silently. */
|
|
40
|
+
get primary() {
|
|
41
|
+
const primaries = Object.entries(this.fields)
|
|
42
|
+
.filter(([, field]) => Role.of(field).isPrimary)
|
|
43
|
+
.map(([name]) => name);
|
|
44
|
+
if (primaries.length > 1) {
|
|
45
|
+
throw new Error(`FieldSet.primary: ${primaries.map((name) => JSON.stringify(name)).join(', ')} all declare ` +
|
|
46
|
+
'`primary`; a field set can have only one primary field.');
|
|
47
|
+
}
|
|
48
|
+
return primaries[0];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** The order is part of a group: `['a','b']` and `['b','a']` are two constraints. */
|
|
52
|
+
export function deduplicated(groups) {
|
|
53
|
+
const seen = new Map();
|
|
54
|
+
for (const group of groups)
|
|
55
|
+
seen.set(JSON.stringify(group), group);
|
|
56
|
+
return seen.size ? [...seen.values()] : undefined;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=FieldSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldSet.js","sourceRoot":"","sources":["../../src/field/FieldSet.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
export { Field, type Fields } from './
|
|
2
|
-
export { FieldSet } from './
|
|
3
|
-
export { type Shape,
|
|
4
|
-
export { type StringFormat, type FormatPredicate, Formats, } from './
|
|
5
|
-
export { Role, type RoleRules } from './
|
|
6
|
-
export { type Relation, type EntityConstructor } from './
|
|
7
|
-
export { Lifecycle, type LifecycleRules } from './
|
|
8
|
-
export { type GeneratorRef, Generators } from './
|
|
9
|
-
export { Clock } from './
|
|
10
|
-
export { Boundary, type BoundaryRules, type BoundaryRef, } from './
|
|
11
|
-
export { type Decoder, type Encoder, Boundaries } from './
|
|
12
|
-
export { type Meta } from './
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export { type SchemaView, type Row, type PartialRow } from './schema/SchemaView.js';
|
|
20
|
-
export { type FougereEntityAdapters, type EntityAdapters } from './entity/EntityAdapters.js';
|
|
1
|
+
export { Field, type Fields } from './field/Field.js';
|
|
2
|
+
export { FieldSet } from './field/FieldSet.js';
|
|
3
|
+
export { type Shape, Shapes } from './axis/shape/Shape.js';
|
|
4
|
+
export { type StringFormat, type FormatPredicate, Formats, } from './axis/shape/Formats.js';
|
|
5
|
+
export { Role, type RoleRules } from './axis/role/Role.js';
|
|
6
|
+
export { type Relation, type EntityConstructor } from './axis/role/Relation.js';
|
|
7
|
+
export { Lifecycle, type LifecycleRules } from './axis/lifecycle/Lifecycle.js';
|
|
8
|
+
export { type GeneratorRef, Generators } from './axis/lifecycle/Generators.js';
|
|
9
|
+
export { Clock } from './axis/lifecycle/Clock.js';
|
|
10
|
+
export { Boundary, type BoundaryRules, type BoundaryRef, } from './axis/boundary/Boundary.js';
|
|
11
|
+
export { type Decoder, type Encoder, Boundaries } from './axis/boundary/Boundaries.js';
|
|
12
|
+
export { type Meta } from './axis/Meta.js';
|
|
13
|
+
export { Schema, ANONYMOUS_SCHEMA_NAME, type SchemaConstructor } from './Schema.js';
|
|
14
|
+
export { SchemaDerivation } from './SchemaDerivation.js';
|
|
15
|
+
export { Cases, type ValidationCase } from './projection/Cases.js';
|
|
16
|
+
export { InputRefusal } from './validator/InputRefusal.js';
|
|
17
|
+
export { type SchemaView, type Values, type PartialValues } from './SchemaView.js';
|
|
18
|
+
export { type FougereEntityAdapters, type EntityAdapters, } from './entity/EntityAdapters.js';
|
|
21
19
|
export { type EntityDeclarations, type CompositeUnique, type PreviousNames, } from './entity/EntityDeclarations.js';
|
|
22
|
-
export { lowerFirst, upperFirst, isObject } from './utils.js';
|
|
20
|
+
export { lowerFirst, upperFirst, isObject } from './lib/utils.js';
|
|
23
21
|
export { primary } from './vocabulary/primary.js';
|
|
24
22
|
export { text } from './vocabulary/text.js';
|
|
25
23
|
export { email } from './vocabulary/email.js';
|
|
@@ -41,20 +39,19 @@ export { indexed } from './vocabulary/indexed.js';
|
|
|
41
39
|
export { readOnly } from './vocabulary/readOnly.js';
|
|
42
40
|
export { writeOnly } from './vocabulary/writeOnly.js';
|
|
43
41
|
export { json } from './vocabulary/json.js';
|
|
44
|
-
export { applyCreate, applyUpdate } from './
|
|
42
|
+
export { applyCreate, applyUpdate } from './axis/lifecycle/apply.js';
|
|
45
43
|
export { Visibility } from './projection/Visibility.js';
|
|
46
44
|
export { Card } from './projection/card/Card.js';
|
|
47
45
|
export { Bundle } from './projection/card/Bundle.js';
|
|
48
46
|
export type { Change, Diff, DiffOptions, SetDiff, SetDiffOptions, RenameCandidate, TypeSet, } from './projection/card/diff.js';
|
|
49
|
-
export { EntityTypeSource, type EntityTypeSourceOptions, } from './projection/card/EntityTypeSource.js';
|
|
50
|
-
export { FacadeTypeSource, type FacadeTypeSourceOptions, type OpDescriptor, } from './projection/card/FacadeTypeSource.js';
|
|
51
47
|
export { type SchemaBundle, type SchemaDescriptor, type FieldDescriptor, type FieldExtension, type RoleDescriptor, type RelationDescriptor, } from './projection/card/Descriptor.js';
|
|
52
|
-
export { type SchemaOrCard, schemaOf, fieldsOf } from './projection/SchemaOrCard.js';
|
|
53
48
|
export type { StandardSchemaV1 } from './projection/standard.js';
|
|
54
49
|
export { entity } from './entity.js';
|
|
55
|
-
export {
|
|
56
|
-
export {
|
|
57
|
-
export {
|
|
58
|
-
export {
|
|
59
|
-
export {
|
|
50
|
+
export { FieldDeclarationValidator } from './validator/FieldDeclarationValidator.js';
|
|
51
|
+
export { FieldValueValidator } from './validator/FieldValueValidator.js';
|
|
52
|
+
export { InputValidator } from './validator/InputValidator.js';
|
|
53
|
+
export { AdapterFieldValidator } from './validator/AdapterFieldValidator.js';
|
|
54
|
+
export { Registry } from './lib/Registry.js';
|
|
55
|
+
export { type ValidateOptions } from './validator/InputValidator.js';
|
|
56
|
+
export { type ValidationError, type ValidationResult, type Checked } from './validation.js';
|
|
60
57
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
export { Field } from './
|
|
2
|
-
export { FieldSet } from './
|
|
3
|
-
export {
|
|
4
|
-
export { Formats, } from './
|
|
5
|
-
export { Role } from './
|
|
6
|
-
export { Lifecycle } from './
|
|
7
|
-
export { Generators } from './
|
|
8
|
-
export { Clock } from './
|
|
9
|
-
export { Boundary, } from './
|
|
10
|
-
export { Boundaries } from './
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export { Schema, ANONYMOUS_SCHEMA_NAME, } from './schema/Schema.js';
|
|
14
|
-
export { SchemaDerivation } from './schema/SchemaDerivation.js';
|
|
1
|
+
export { Field } from './field/Field.js';
|
|
2
|
+
export { FieldSet } from './field/FieldSet.js';
|
|
3
|
+
export { Shapes } from './axis/shape/Shape.js';
|
|
4
|
+
export { Formats, } from './axis/shape/Formats.js';
|
|
5
|
+
export { Role } from './axis/role/Role.js';
|
|
6
|
+
export { Lifecycle } from './axis/lifecycle/Lifecycle.js';
|
|
7
|
+
export { Generators } from './axis/lifecycle/Generators.js';
|
|
8
|
+
export { Clock } from './axis/lifecycle/Clock.js';
|
|
9
|
+
export { Boundary, } from './axis/boundary/Boundary.js';
|
|
10
|
+
export { Boundaries } from './axis/boundary/Boundaries.js';
|
|
11
|
+
export { Schema, ANONYMOUS_SCHEMA_NAME } from './Schema.js';
|
|
12
|
+
export { SchemaDerivation } from './SchemaDerivation.js';
|
|
15
13
|
export { Cases } from './projection/Cases.js';
|
|
16
|
-
export {
|
|
17
|
-
export { lowerFirst, upperFirst, isObject } from './utils.js';
|
|
14
|
+
export { InputRefusal } from './validator/InputRefusal.js';
|
|
15
|
+
export { lowerFirst, upperFirst, isObject } from './lib/utils.js';
|
|
18
16
|
export { primary } from './vocabulary/primary.js';
|
|
19
17
|
export { text } from './vocabulary/text.js';
|
|
20
18
|
export { email } from './vocabulary/email.js';
|
|
@@ -36,15 +34,14 @@ export { indexed } from './vocabulary/indexed.js';
|
|
|
36
34
|
export { readOnly } from './vocabulary/readOnly.js';
|
|
37
35
|
export { writeOnly } from './vocabulary/writeOnly.js';
|
|
38
36
|
export { json } from './vocabulary/json.js';
|
|
39
|
-
export { applyCreate, applyUpdate } from './
|
|
37
|
+
export { applyCreate, applyUpdate } from './axis/lifecycle/apply.js';
|
|
40
38
|
export { Visibility } from './projection/Visibility.js';
|
|
41
39
|
export { Card } from './projection/card/Card.js';
|
|
42
40
|
export { Bundle } from './projection/card/Bundle.js';
|
|
43
|
-
export { EntityTypeSource, } from './projection/card/EntityTypeSource.js';
|
|
44
|
-
export { FacadeTypeSource, } from './projection/card/FacadeTypeSource.js';
|
|
45
|
-
export { schemaOf, fieldsOf } from './projection/SchemaOrCard.js';
|
|
46
41
|
export { entity } from './entity.js';
|
|
47
|
-
export {
|
|
48
|
-
export {
|
|
49
|
-
export {
|
|
42
|
+
export { FieldDeclarationValidator } from './validator/FieldDeclarationValidator.js';
|
|
43
|
+
export { FieldValueValidator } from './validator/FieldValueValidator.js';
|
|
44
|
+
export { InputValidator } from './validator/InputValidator.js';
|
|
45
|
+
export { AdapterFieldValidator } from './validator/AdapterFieldValidator.js';
|
|
46
|
+
export { Registry } from './lib/Registry.js';
|
|
50
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class Registry<T> {
|
|
2
|
+
private readonly label;
|
|
3
|
+
private readonly hint?;
|
|
4
|
+
private readonly entries;
|
|
5
|
+
/** `Unknown boundary decoder 'celsius' — call Boundaries.decoders.register(name, fn).` */
|
|
6
|
+
constructor(label: string, hint?: string | undefined, builtins?: Iterable<readonly [string, T]>);
|
|
7
|
+
register(name: string, value: T): T;
|
|
8
|
+
find(name: string): T | undefined;
|
|
9
|
+
resolve(name: string, path?: string): T;
|
|
10
|
+
private get names();
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=Registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ,CAAC,CAAC;IAKnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IALxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAEzC,0FAA0F;IAC1F,YACmB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,YAAA,EAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAG1C;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIlC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAEhC;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAStC;IAED,OAAO,KAAK,KAAK,GAEhB;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class Registry {
|
|
2
|
+
label;
|
|
3
|
+
hint;
|
|
4
|
+
entries;
|
|
5
|
+
/** `Unknown boundary decoder 'celsius' — call Boundaries.decoders.register(name, fn).` */
|
|
6
|
+
constructor(label, hint, builtins) {
|
|
7
|
+
this.label = label;
|
|
8
|
+
this.hint = hint;
|
|
9
|
+
this.entries = new Map(builtins);
|
|
10
|
+
}
|
|
11
|
+
register(name, value) {
|
|
12
|
+
this.entries.set(name, value);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
find(name) {
|
|
16
|
+
return this.entries.get(name);
|
|
17
|
+
}
|
|
18
|
+
resolve(name, path) {
|
|
19
|
+
const found = this.find(name);
|
|
20
|
+
if (found !== undefined)
|
|
21
|
+
return found;
|
|
22
|
+
throw new Error(`${path ? `${path}: ` : ''}Unknown ${this.label} '${name}'${this.hint ? ` — ${this.hint}` : ''}. ` +
|
|
23
|
+
`This process answers ${this.names.join(', ') || 'nothing yet'}.`);
|
|
24
|
+
}
|
|
25
|
+
get names() {
|
|
26
|
+
return [...this.entries.keys()];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/lib/Registry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAKA,KAAK;IACL,IAAI;IALN,OAAO,CAAiB;IAEzC,0FAA0F;IAC1F,YACmB,KAAa,EACb,IAAa,EAC9B,QAAyC;qBAFxB,KAAK;oBACL,IAAI;QAGrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAQ;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;YAChG,wBAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,GAAG,CACpE,CAAC;IACJ,CAAC;IAED,IAAY,KAAK;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAIlE;AAED,eAAO,MAAM,QAAQ,UAAW,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,KAAK,CAAoC,GAAM;IAC7D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
import type { SchemaView } from '../
|
|
1
|
+
import type { SchemaView } from '../SchemaView.js';
|
|
2
2
|
/**
|
|
3
|
-
* One input, and what the
|
|
3
|
+
* One input, and what the validator must answer.
|
|
4
4
|
*
|
|
5
5
|
* `expect` carries the PATH of the field at fault and never the message. We know which
|
|
6
6
|
* field must be refused because we are the ones who broke it; naming the message would
|
|
7
|
-
* make this list a second
|
|
7
|
+
* make this list a second validator, and the two would then have to be kept in step by hand —
|
|
8
8
|
* which is the duplication the whole thing exists to remove.
|
|
9
9
|
*/
|
|
10
|
-
export interface
|
|
10
|
+
export interface ValidationCase {
|
|
11
11
|
/** What this input does, in one clause — carried into the assertion so a failure reads. */
|
|
12
12
|
why: string;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Judged as an update rather than a creation. The two modes refuse different things:
|
|
16
|
-
* an absence is `Required` on create and legal on patch, an immutable field is legal
|
|
17
|
-
* on create and refused on patch.
|
|
18
|
-
*/
|
|
13
|
+
input: unknown;
|
|
14
|
+
/** Judged as an update rather than a creation. */
|
|
19
15
|
patch: boolean;
|
|
20
16
|
expect: 'accept' | {
|
|
21
17
|
reject: string;
|
|
@@ -28,23 +24,16 @@ export interface Case {
|
|
|
28
24
|
* supplies a valid row; generating data belongs to the testing package.
|
|
29
25
|
*/
|
|
30
26
|
export declare class Cases {
|
|
31
|
-
readonly all: readonly
|
|
27
|
+
readonly all: readonly ValidationCase[];
|
|
32
28
|
private constructor();
|
|
33
29
|
static of(entity: SchemaView, valid: Record<string, unknown>): Cases;
|
|
34
|
-
|
|
35
|
-
* Whether a verdict is the one a case expected.
|
|
36
|
-
*
|
|
37
|
-
* Takes the RESULT rather than the input so the same reader serves the local judge, the
|
|
38
|
-
* façade and a door — the three that have to agree.
|
|
39
|
-
*/
|
|
40
|
-
static holds(expected: Case['expect'], result: {
|
|
30
|
+
static holds(expected: ValidationCase['expect'], result: {
|
|
41
31
|
success: boolean;
|
|
42
32
|
errors?: {
|
|
43
33
|
path: string;
|
|
44
34
|
}[];
|
|
45
35
|
}): boolean;
|
|
46
|
-
/** Every way a row is refused for its structure — the closed set this table must cover. */
|
|
47
36
|
static get refusals(): string[];
|
|
48
|
-
[Symbol.iterator](): Iterator<
|
|
37
|
+
[Symbol.iterator](): Iterator<ValidationCase>;
|
|
49
38
|
}
|
|
50
39
|
//# sourceMappingURL=Cases.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cases.d.ts","sourceRoot":"","sources":["../../src/projection/Cases.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Cases.d.ts","sourceRoot":"","sources":["../../src/projection/Cases.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAiDD;;;;;GAKG;AACH,qBAAa,KAAK;IACI,QAAQ,CAAC,GAAG,EAAE,SAAS,cAAc,EAAE;IAA3D,OAAO,eAAwD;IAE/D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAEnE;IAED,MAAM,CAAC,KAAK,CACV,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,EAClC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,GACxD,OAAO,CAIT;IAED,MAAM,KAAK,QAAQ,IAAI,MAAM,EAAE,CAE9B;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAE5C;CACF"}
|
package/dist/projection/Cases.js
CHANGED
|
@@ -1,46 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Boundary } from '../
|
|
3
|
-
import { Lifecycle } from '../
|
|
4
|
-
import { Role } from '../
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
/**
|
|
1
|
+
import { Shapes } from '../axis/shape/Shape.js';
|
|
2
|
+
import { Boundary } from '../axis/boundary/Boundary.js';
|
|
3
|
+
import { Lifecycle } from '../axis/lifecycle/Lifecycle.js';
|
|
4
|
+
import { Role } from '../axis/role/Role.js';
|
|
5
|
+
import { InputValidator } from '../validator/InputValidator.js';
|
|
6
|
+
import { InputRefusal } from '../validator/InputRefusal.js';
|
|
7
|
+
/**
|
|
8
|
+
* So every field has at least one case, whatever else it declares.
|
|
9
|
+
* FR : pour que chaque champ ait un cas, quoi qu'il déclare par ailleurs.
|
|
10
|
+
* `text()` → `42`; `number()` → `'not-a-value-of-this-shape'`
|
|
11
|
+
*/
|
|
8
12
|
function wrongTypeFor(field) {
|
|
9
13
|
const declared = field.shape.type;
|
|
10
14
|
const names = Array.isArray(declared) ? declared : [declared];
|
|
11
15
|
return names.includes('string') ? 42 : 'not-a-value-of-this-shape';
|
|
12
16
|
}
|
|
13
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* So a bound stated in a shape produces the case that breaks it, and none is invented.
|
|
19
|
+
* FR : pour qu'une borne énoncée produise le cas qui la casse, et aucun autre.
|
|
20
|
+
* `text({ maxLength: 3 })` → one case with `'xxxx'`; `text()` → no case
|
|
21
|
+
*/
|
|
14
22
|
function outOfBoundsFor(field) {
|
|
15
|
-
// Through `
|
|
23
|
+
// Through `Shapes`, not a cast: the cast admitted any keyword, and it declared
|
|
16
24
|
// `maxItems` — which no branch below ever produced. In the one function whose job is
|
|
17
25
|
// to be exhaustive, a bound the type does not carry is a case nobody notices missing.
|
|
18
|
-
const shape =
|
|
19
|
-
const
|
|
26
|
+
const shape = Shapes.of(field.shape).base;
|
|
27
|
+
const cases = [];
|
|
20
28
|
if (shape?.type === 'string') {
|
|
21
29
|
if (typeof shape.minLength === 'number' && shape.minLength > 0)
|
|
22
|
-
|
|
30
|
+
cases.push({ why: 'shorter than min', value: 'x'.repeat(shape.minLength - 1) });
|
|
23
31
|
if (typeof shape.maxLength === 'number')
|
|
24
|
-
|
|
32
|
+
cases.push({ why: 'longer than max', value: 'x'.repeat(shape.maxLength + 1) });
|
|
25
33
|
if (shape.enum)
|
|
26
|
-
|
|
34
|
+
cases.push({ why: 'outside the stated set', value: '__not-in-enum__' });
|
|
27
35
|
}
|
|
28
36
|
if (shape?.type === 'number' || shape?.type === 'integer') {
|
|
29
37
|
if (typeof shape.minimum === 'number')
|
|
30
|
-
|
|
38
|
+
cases.push({ why: 'below minimum', value: shape.minimum - 1 });
|
|
31
39
|
if (typeof shape.maximum === 'number')
|
|
32
|
-
|
|
40
|
+
cases.push({ why: 'above maximum', value: shape.maximum + 1 });
|
|
33
41
|
}
|
|
34
42
|
if (shape?.type === 'array') {
|
|
35
43
|
if (typeof shape.minItems === 'number' && shape.minItems > 0)
|
|
36
|
-
|
|
44
|
+
cases.push({ why: 'fewer items than min', value: [] });
|
|
37
45
|
if (typeof shape.maxItems === 'number')
|
|
38
|
-
|
|
46
|
+
cases.push({
|
|
39
47
|
why: 'more items than max',
|
|
40
48
|
value: Array.from({ length: shape.maxItems + 1 }, () => null),
|
|
41
49
|
});
|
|
42
50
|
}
|
|
43
|
-
return
|
|
51
|
+
return cases;
|
|
44
52
|
}
|
|
45
53
|
/**
|
|
46
54
|
* The decision table, enumerated on the entity's own fields.
|
|
@@ -56,12 +64,6 @@ export class Cases {
|
|
|
56
64
|
static of(entity, valid) {
|
|
57
65
|
return new Cases(enumerate(entity, valid));
|
|
58
66
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Whether a verdict is the one a case expected.
|
|
61
|
-
*
|
|
62
|
-
* Takes the RESULT rather than the input so the same reader serves the local judge, the
|
|
63
|
-
* façade and a door — the three that have to agree.
|
|
64
|
-
*/
|
|
65
67
|
static holds(expected, result) {
|
|
66
68
|
if (expected === 'accept')
|
|
67
69
|
return result.success;
|
|
@@ -69,29 +71,32 @@ export class Cases {
|
|
|
69
71
|
return false;
|
|
70
72
|
return (result.errors ?? []).some((error) => error.path === expected.reject);
|
|
71
73
|
}
|
|
72
|
-
/** Every way a row is refused for its structure — the closed set this table must cover. */
|
|
73
74
|
static get refusals() {
|
|
74
|
-
return Object.values(
|
|
75
|
+
return Object.values(InputRefusal);
|
|
75
76
|
}
|
|
76
77
|
[Symbol.iterator]() {
|
|
77
78
|
return this.all[Symbol.iterator]();
|
|
78
79
|
}
|
|
79
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* So the four axes decide which cases exist, and no list of them is maintained by hand.
|
|
83
|
+
* FR : pour que les axes décident des cas, sans liste tenue à la main.
|
|
84
|
+
*/
|
|
80
85
|
function enumerate(entity, valid) {
|
|
81
86
|
const fields = entity.getFields();
|
|
82
|
-
const
|
|
87
|
+
const validator = InputValidator.of(fields);
|
|
83
88
|
const cases = [];
|
|
84
89
|
const withField = (name, value) => ({ ...valid, [name]: value });
|
|
85
|
-
cases.push({ why: 'a valid
|
|
90
|
+
cases.push({ why: 'a valid input', input: valid, patch: false, expect: 'accept' });
|
|
86
91
|
cases.push({
|
|
87
92
|
why: 'a key outside the contract',
|
|
88
|
-
|
|
93
|
+
input: { ...valid, __unknown__: 'x' },
|
|
89
94
|
patch: false,
|
|
90
95
|
expect: { reject: '__unknown__' },
|
|
91
96
|
});
|
|
92
97
|
cases.push({
|
|
93
98
|
why: 'not an object at all',
|
|
94
|
-
|
|
99
|
+
input: 'a string',
|
|
95
100
|
patch: false,
|
|
96
101
|
expect: { reject: '.' },
|
|
97
102
|
});
|
|
@@ -99,15 +104,15 @@ function enumerate(entity, valid) {
|
|
|
99
104
|
// A reference names a row that must exist; the caller supplied its id and we do not
|
|
100
105
|
// get to invent a second one, so the only case we can state about it is the bound one.
|
|
101
106
|
const isRef = Role.of(field).isReference;
|
|
102
|
-
if (
|
|
103
|
-
const
|
|
104
|
-
delete
|
|
105
|
-
cases.push({ why: `${name} absent`,
|
|
107
|
+
if (validator.onAbsent(field) === null && name in valid) {
|
|
108
|
+
const input = { ...valid };
|
|
109
|
+
delete input[name];
|
|
110
|
+
cases.push({ why: `${name} absent`, input, patch: false, expect: { reject: name } });
|
|
106
111
|
}
|
|
107
112
|
if (Boundary.of(field).readOnly) {
|
|
108
113
|
cases.push({
|
|
109
114
|
why: `${name} supplied although read-only`,
|
|
110
|
-
|
|
115
|
+
input: withField(name, wrongTypeFor(field)),
|
|
111
116
|
patch: false,
|
|
112
117
|
expect: { reject: name },
|
|
113
118
|
});
|
|
@@ -115,7 +120,7 @@ function enumerate(entity, valid) {
|
|
|
115
120
|
if (Lifecycle.of(field).immutable && !Role.of(field).isPrimary) {
|
|
116
121
|
cases.push({
|
|
117
122
|
why: `${name} supplied on an update`,
|
|
118
|
-
|
|
123
|
+
input: { [name]: valid[name] ?? wrongTypeFor(field) },
|
|
119
124
|
patch: true,
|
|
120
125
|
expect: { reject: name },
|
|
121
126
|
});
|
|
@@ -123,14 +128,14 @@ function enumerate(entity, valid) {
|
|
|
123
128
|
if (name in valid && !isRef) {
|
|
124
129
|
cases.push({
|
|
125
130
|
why: `${name} of the wrong type`,
|
|
126
|
-
|
|
131
|
+
input: withField(name, wrongTypeFor(field)),
|
|
127
132
|
patch: false,
|
|
128
133
|
expect: { reject: name },
|
|
129
134
|
});
|
|
130
135
|
for (const { why, value } of outOfBoundsFor(field))
|
|
131
136
|
cases.push({
|
|
132
137
|
why: `${name} ${why}`,
|
|
133
|
-
|
|
138
|
+
input: withField(name, value),
|
|
134
139
|
patch: false,
|
|
135
140
|
expect: { reject: name },
|
|
136
141
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cases.js","sourceRoot":"","sources":["../../src/projection/Cases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Cases.js","sourceRoot":"","sources":["../../src/projection/Cases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Fields } from '../
|
|
1
|
+
import type { Fields } from '../field/Field.js';
|
|
2
2
|
export declare class Visibility {
|
|
3
3
|
private readonly fields;
|
|
4
4
|
private constructor();
|
|
5
5
|
static of(fields: Fields): Visibility;
|
|
6
|
+
/** A write-only secret is absent from the type, not just from the value. */
|
|
6
7
|
get input(): Fields;
|
|
7
8
|
get output(): Fields;
|
|
8
9
|
encode(record: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Visibility.d.ts","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Visibility.d.ts","sourceRoot":"","sources":["../../src/projection/Visibility.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,UAAU;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA3C,OAAO,eAAgD;IAEvD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAEpC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,MAAM,CAWlB;IAED,IAAI,MAAM,IAAI,MAAM,CAOnB;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc/D;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Boundary } from '../
|
|
2
|
-
import { Lifecycle } from '../
|
|
3
|
-
import { Role } from '../
|
|
1
|
+
import { Boundary } from '../axis/boundary/Boundary.js';
|
|
2
|
+
import { Lifecycle } from '../axis/lifecycle/Lifecycle.js';
|
|
3
|
+
import { Role } from '../axis/role/Role.js';
|
|
4
4
|
export class Visibility {
|
|
5
5
|
fields;
|
|
6
6
|
constructor(fields) {
|
|
@@ -9,6 +9,7 @@ export class Visibility {
|
|
|
9
9
|
static of(fields) {
|
|
10
10
|
return new Visibility(fields);
|
|
11
11
|
}
|
|
12
|
+
/** A write-only secret is absent from the type, not just from the value. */
|
|
12
13
|
get input() {
|
|
13
14
|
const result = {};
|
|
14
15
|
for (const [name, field] of Object.entries(this.fields)) {
|