@fougere/schema 0.8.2-alpha.0 → 0.8.4-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/dist/Schema.d.ts +3 -6
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +9 -17
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaDefinition.d.ts +24 -6
- package/dist/SchemaDefinition.d.ts.map +1 -1
- package/dist/SchemaDefinition.js +76 -44
- package/dist/SchemaDefinition.js.map +1 -1
- package/dist/SchemaView.d.ts +1 -1
- package/dist/SchemaView.d.ts.map +1 -1
- package/dist/axis/Axis.d.ts +1 -1
- package/dist/axis/Axis.d.ts.map +1 -1
- package/dist/axis/boundary/Boundaries.d.ts +5 -0
- package/dist/axis/boundary/Boundaries.d.ts.map +1 -1
- package/dist/axis/boundary/Boundaries.js.map +1 -1
- package/dist/axis/boundary/Boundary.d.ts +5 -4
- package/dist/axis/boundary/Boundary.d.ts.map +1 -1
- package/dist/axis/boundary/Boundary.js +4 -5
- package/dist/axis/boundary/Boundary.js.map +1 -1
- package/dist/axis/boundary/BoundaryAxis.js +2 -2
- package/dist/axis/boundary/BoundaryAxis.js.map +1 -1
- package/dist/axis/lifecycle/Lifecycle.d.ts +5 -3
- package/dist/axis/lifecycle/Lifecycle.d.ts.map +1 -1
- package/dist/axis/lifecycle/Lifecycle.js +5 -1
- package/dist/axis/lifecycle/Lifecycle.js.map +1 -1
- package/dist/axis/lifecycle/LifecycleAxis.js +6 -6
- package/dist/axis/lifecycle/LifecycleAxis.js.map +1 -1
- package/dist/axis/lifecycle/apply.d.ts +6 -6
- package/dist/axis/lifecycle/apply.d.ts.map +1 -1
- package/dist/axis/lifecycle/apply.js +10 -9
- package/dist/axis/lifecycle/apply.js.map +1 -1
- package/dist/axis/role/Role.d.ts +8 -5
- package/dist/axis/role/Role.d.ts.map +1 -1
- package/dist/axis/role/Role.js +7 -0
- package/dist/axis/role/Role.js.map +1 -1
- package/dist/axis/role/RoleAxis.js +9 -9
- package/dist/axis/role/RoleAxis.js.map +1 -1
- package/dist/axis/shape/Shape.d.ts +14 -0
- package/dist/axis/shape/Shape.d.ts.map +1 -1
- package/dist/axis/shape/Shape.js +43 -34
- package/dist/axis/shape/Shape.js.map +1 -1
- package/dist/entity/EntityAdapterSet.d.ts +2 -2
- package/dist/entity/EntityAdapterSet.d.ts.map +1 -1
- package/dist/entity/EntityAdapterSet.js +2 -2
- package/dist/entity/EntityAdapterSet.js.map +1 -1
- package/dist/entity.d.ts +2 -2
- package/dist/entity.js +2 -2
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +2 -1
- package/dist/field/Field.js.map +1 -1
- package/dist/field/FieldSet.d.ts +4 -7
- package/dist/field/FieldSet.d.ts.map +1 -1
- package/dist/field/FieldSet.js +4 -15
- package/dist/field/FieldSet.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/validation.d.ts +32 -0
- package/dist/lib/validation.d.ts.map +1 -0
- package/dist/lib/validation.js +6 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/projection/Cases.d.ts +1 -1
- package/dist/projection/Cases.d.ts.map +1 -1
- package/dist/projection/Cases.js +11 -7
- package/dist/projection/Cases.js.map +1 -1
- package/dist/projection/Visibility.js +1 -1
- package/dist/projection/Visibility.js.map +1 -1
- package/dist/projection/card/Bundle.d.ts.map +1 -1
- package/dist/projection/card/Bundle.js +1 -4
- package/dist/projection/card/Bundle.js.map +1 -1
- package/dist/projection/card/Card.d.ts +7 -1
- package/dist/projection/card/Card.d.ts.map +1 -1
- package/dist/projection/card/Card.js +25 -133
- package/dist/projection/card/Card.js.map +1 -1
- package/dist/projection/card/Descriptor.d.ts +2 -2
- package/dist/projection/card/Descriptor.d.ts.map +1 -1
- package/dist/projection/card/admission.d.ts +12 -11
- package/dist/projection/card/admission.d.ts.map +1 -1
- package/dist/projection/card/admission.js +13 -11
- package/dist/projection/card/admission.js.map +1 -1
- package/dist/projection/card/diff.d.ts +7 -1
- package/dist/projection/card/diff.d.ts.map +1 -1
- package/dist/projection/card/diff.js +111 -1
- package/dist/projection/card/diff.js.map +1 -1
- package/dist/validator/FieldDeclarationValidator.d.ts +1 -1
- package/dist/validator/FieldDeclarationValidator.d.ts.map +1 -1
- package/dist/validator/FieldDeclarationValidator.js +4 -4
- package/dist/validator/FieldDeclarationValidator.js.map +1 -1
- package/dist/validator/FieldValueValidator.d.ts +6 -1
- package/dist/validator/FieldValueValidator.d.ts.map +1 -1
- package/dist/validator/FieldValueValidator.js +36 -7
- package/dist/validator/FieldValueValidator.js.map +1 -1
- package/dist/validator/InputValidator.d.ts +1 -1
- package/dist/validator/InputValidator.d.ts.map +1 -1
- package/dist/validator/InputValidator.js +8 -18
- package/dist/validator/InputValidator.js.map +1 -1
- package/dist/vocabulary/preset/created.d.ts +0 -5
- package/dist/vocabulary/preset/created.d.ts.map +1 -1
- package/dist/vocabulary/preset/created.js +0 -5
- package/dist/vocabulary/preset/created.js.map +1 -1
- package/dist/vocabulary/preset/email.d.ts +0 -5
- package/dist/vocabulary/preset/email.d.ts.map +1 -1
- package/dist/vocabulary/preset/email.js +0 -5
- package/dist/vocabulary/preset/email.js.map +1 -1
- package/dist/vocabulary/preset/updated.d.ts +0 -5
- package/dist/vocabulary/preset/updated.d.ts.map +1 -1
- package/dist/vocabulary/preset/updated.js +0 -5
- package/dist/vocabulary/preset/updated.js.map +1 -1
- package/dist/vocabulary/preset/url.d.ts +0 -5
- package/dist/vocabulary/preset/url.d.ts.map +1 -1
- package/dist/vocabulary/preset/url.js +0 -5
- package/dist/vocabulary/preset/url.js.map +1 -1
- package/dist/vocabulary/primitive/bool.d.ts +0 -5
- package/dist/vocabulary/primitive/bool.d.ts.map +1 -1
- package/dist/vocabulary/primitive/bool.js +0 -5
- package/dist/vocabulary/primitive/bool.js.map +1 -1
- package/dist/vocabulary/primitive/date.d.ts +3 -3
- package/dist/vocabulary/primitive/date.js +3 -3
- package/dist/vocabulary/primitive/json.js +3 -3
- package/dist/vocabulary/primitive/list.d.ts +3 -3
- package/dist/vocabulary/primitive/list.js +3 -3
- package/dist/vocabulary/primitive/many.d.ts +3 -3
- package/dist/vocabulary/primitive/many.js +3 -3
- package/dist/vocabulary/primitive/number.d.ts +0 -5
- package/dist/vocabulary/primitive/number.d.ts.map +1 -1
- package/dist/vocabulary/primitive/number.js +0 -5
- package/dist/vocabulary/primitive/number.js.map +1 -1
- package/dist/vocabulary/primitive/oneOf.js +3 -3
- package/dist/vocabulary/primitive/primary.js +3 -3
- package/dist/vocabulary/primitive/ref.d.ts +0 -5
- package/dist/vocabulary/primitive/ref.d.ts.map +1 -1
- package/dist/vocabulary/primitive/ref.js +0 -5
- package/dist/vocabulary/primitive/ref.js.map +1 -1
- package/dist/vocabulary/primitive/text.d.ts +0 -5
- package/dist/vocabulary/primitive/text.d.ts.map +1 -1
- package/dist/vocabulary/primitive/text.js +0 -5
- package/dist/vocabulary/primitive/text.js.map +1 -1
- package/dist/vocabulary/rule/immutable.d.ts +0 -5
- package/dist/vocabulary/rule/immutable.d.ts.map +1 -1
- package/dist/vocabulary/rule/immutable.js +0 -5
- package/dist/vocabulary/rule/immutable.js.map +1 -1
- package/dist/vocabulary/rule/indexed.d.ts +0 -5
- package/dist/vocabulary/rule/indexed.d.ts.map +1 -1
- package/dist/vocabulary/rule/indexed.js +0 -5
- package/dist/vocabulary/rule/indexed.js.map +1 -1
- package/dist/vocabulary/rule/nullable.d.ts +3 -3
- package/dist/vocabulary/rule/nullable.js +3 -3
- package/dist/vocabulary/rule/optional.d.ts +3 -3
- package/dist/vocabulary/rule/optional.js +3 -3
- package/dist/vocabulary/rule/readOnly.d.ts +3 -3
- package/dist/vocabulary/rule/readOnly.js +4 -4
- package/dist/vocabulary/rule/readOnly.js.map +1 -1
- package/dist/vocabulary/rule/unique.d.ts +0 -5
- package/dist/vocabulary/rule/unique.d.ts.map +1 -1
- package/dist/vocabulary/rule/unique.js +0 -5
- package/dist/vocabulary/rule/unique.js.map +1 -1
- package/dist/vocabulary/rule/writeOnly.d.ts +2 -2
- package/dist/vocabulary/rule/writeOnly.js +3 -3
- package/dist/vocabulary/rule/writeOnly.js.map +1 -1
- package/dist/vocabulary/vocabulary.d.ts +2 -2
- package/dist/vocabulary/vocabulary.js +5 -5
- package/package.json +1 -1
- package/src/Schema.ts +14 -20
- package/src/SchemaDefinition.ts +74 -48
- package/src/SchemaView.ts +1 -1
- package/src/axis/Axis.ts +1 -1
- package/src/axis/boundary/Boundaries.ts +5 -0
- package/src/axis/boundary/Boundary.ts +7 -9
- package/src/axis/boundary/BoundaryAxis.ts +2 -2
- package/src/axis/lifecycle/Lifecycle.ts +9 -4
- package/src/axis/lifecycle/LifecycleAxis.ts +7 -7
- package/src/axis/lifecycle/apply.ts +10 -9
- package/src/axis/role/Role.ts +14 -5
- package/src/axis/role/RoleAxis.ts +10 -10
- package/src/axis/shape/Shape.ts +61 -37
- package/src/entity/EntityAdapterSet.ts +2 -2
- package/src/entity.ts +2 -2
- package/src/field/Field.ts +2 -1
- package/src/field/FieldSet.ts +6 -20
- package/src/index.ts +2 -2
- package/src/lib/validation.ts +25 -0
- package/src/projection/Cases.ts +13 -8
- package/src/projection/Visibility.ts +1 -1
- package/src/projection/card/Bundle.ts +1 -4
- package/src/projection/card/Card.ts +26 -159
- package/src/projection/card/Descriptor.ts +2 -10
- package/src/projection/card/admission.ts +14 -12
- package/src/projection/card/diff.ts +142 -1
- package/src/validator/FieldDeclarationValidator.ts +5 -5
- package/src/validator/FieldValueValidator.ts +45 -12
- package/src/validator/InputValidator.ts +8 -18
- package/src/vocabulary/preset/created.ts +0 -5
- package/src/vocabulary/preset/email.ts +0 -5
- package/src/vocabulary/preset/updated.ts +0 -5
- package/src/vocabulary/preset/url.ts +0 -5
- package/src/vocabulary/primitive/bool.ts +0 -5
- package/src/vocabulary/primitive/date.ts +3 -3
- package/src/vocabulary/primitive/json.ts +3 -3
- package/src/vocabulary/primitive/list.ts +3 -3
- package/src/vocabulary/primitive/many.ts +3 -3
- package/src/vocabulary/primitive/number.ts +0 -5
- package/src/vocabulary/primitive/oneOf.ts +3 -3
- package/src/vocabulary/primitive/primary.ts +3 -3
- package/src/vocabulary/primitive/ref.ts +0 -5
- package/src/vocabulary/primitive/text.ts +0 -5
- package/src/vocabulary/rule/immutable.ts +0 -5
- package/src/vocabulary/rule/indexed.ts +0 -5
- package/src/vocabulary/rule/nullable.ts +3 -3
- package/src/vocabulary/rule/optional.ts +3 -3
- package/src/vocabulary/rule/readOnly.ts +4 -4
- package/src/vocabulary/rule/unique.ts +0 -5
- package/src/vocabulary/rule/writeOnly.ts +3 -3
- package/src/vocabulary/vocabulary.ts +5 -5
- package/dist/validation.d.ts +0 -17
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -2
- package/dist/validation.js.map +0 -1
- package/src/validation.ts +0 -10
package/dist/Schema.d.ts
CHANGED
|
@@ -26,20 +26,17 @@ export interface SchemaConstructor<TFields extends Fields> extends SchemaView<TF
|
|
|
26
26
|
export declare class Schema {
|
|
27
27
|
/** The one place a schema holds what it is. The readings below are its projections. */
|
|
28
28
|
static definition: SchemaDefinition;
|
|
29
|
-
static get fields(): Fields;
|
|
30
|
-
/** An entry survives every derivation that kept its field: `Post.pick('body').adapters`. */
|
|
31
|
-
static get adapters(): EntityAdapters<Fields>;
|
|
32
|
-
static get opts(): ValidateOptions;
|
|
33
29
|
static get derivation(): SchemaDerivation | undefined;
|
|
34
30
|
static get previous(): PreviousNames<Fields> | undefined;
|
|
35
31
|
/** An anchor holds rows of its own; a derivation borrows them. */
|
|
36
32
|
static get anchored(): boolean;
|
|
37
33
|
constructor(data?: Record<string, unknown>);
|
|
38
34
|
static getFields(): Fields;
|
|
39
|
-
|
|
35
|
+
/** An entry survives every derivation that kept its field: `Post.pick('body').getAdapters()`. */
|
|
36
|
+
static getAdapters(): EntityAdapters<Fields>;
|
|
40
37
|
static getUnique(): CompositeUnique<Fields> | undefined;
|
|
41
38
|
static getOpts(): ValidateOptions;
|
|
42
|
-
static validate(input: unknown): import("./
|
|
39
|
+
static validate(input: unknown): import("./index.js").ValidationResult<Record<string, unknown>>;
|
|
43
40
|
static from(data: Record<string, unknown>): Record<string, unknown>;
|
|
44
41
|
static get ['~standard'](): StandardSchemaV1.Props<Record<string, unknown>>;
|
|
45
42
|
static pick(...keys: string[]): SchemaConstructor<Fields>;
|
package/dist/Schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IACpF,KAAK,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,OAAO,EACnC,GAAG,IAAI,EAAE,CAAC,EAAE,GACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,OAAO,EACnC,GAAG,IAAI,EAAE,CAAC,EAAE,GACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CACJ,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,GACvD,iBAAiB,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,qBAAa,MAAM;IACjB,uFAAuF;IACvF,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAuC;IAE1E,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,MAAM,WAAW,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;IACpF,KAAK,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,OAAO,EACnC,GAAG,IAAI,EAAE,CAAC,EAAE,GACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,OAAO,EACnC,GAAG,IAAI,EAAE,CAAC,EAAE,GACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACnE,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChF,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CACJ,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,GACvD,iBAAiB,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,qBAAa,MAAM;IACjB,uFAAuF;IACvF,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAuC;IAE1E,MAAM,KAAK,UAAU,IAAI,gBAAgB,GAAG,SAAS,CAEpD;IACD,MAAM,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAEvD;IACD,kEAAkE;IAClE,MAAM,KAAK,QAAQ,IAAI,OAAO,CAE7B;IAED,YAAY,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAUzC;IAED,MAAM,CAAC,SAAS,IAAI,MAAM,CAEzB;IACD,iGAAiG;IACjG,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC,MAAM,CAAC,CAE3C;IACD,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAEtD;IACD,MAAM,CAAC,OAAO,IAAI,eAAe,CAEhC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,kEAI7B;IAED,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2BAaxC;IAED,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiB1E;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,6BAE5B;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,6BAE5B;IAED,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,6BAE5C;IAED,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,6BAEvD;IAED,MAAM,CAAC,MAAM,8BAEZ;IAED,MAAM,CAAC,OAAO,8BAEb;IAED,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,6BAE1B;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,iBAWxB;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAIlF;IAED,MAAM,CAAC,EAAE,CAAC,OAAO,SAAS,MAAM,EAAE,WAAW,EAAE;QAC7C,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;QAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,iBAAiB,CAAC;KACjC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAI7B;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ;CASxB;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACjF,CAAC,EAAE,MAAM,CAAC,KACP,IAAI,GACL,CAAC,GACD,KAAK,CAAC;AACV,KAAK,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,mBAAmB,CACvD,CAAC,CAAC,MAAM,CAAC,SAAS;IAAE,SAAS,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,MAAM,CACxD,GACC,MAAM,CAAC"}
|
package/dist/Schema.js
CHANGED
|
@@ -5,16 +5,6 @@ export const ANONYMOUS_SCHEMA_NAME = 'Schema';
|
|
|
5
5
|
export class Schema {
|
|
6
6
|
/** The one place a schema holds what it is. The readings below are its projections. */
|
|
7
7
|
static definition = SchemaDefinition.of({ fields: {} });
|
|
8
|
-
static get fields() {
|
|
9
|
-
return this.definition.fields;
|
|
10
|
-
}
|
|
11
|
-
/** An entry survives every derivation that kept its field: `Post.pick('body').adapters`. */
|
|
12
|
-
static get adapters() {
|
|
13
|
-
return this.definition.adapterSet.adapters;
|
|
14
|
-
}
|
|
15
|
-
static get opts() {
|
|
16
|
-
return this.definition.opts;
|
|
17
|
-
}
|
|
18
8
|
static get derivation() {
|
|
19
9
|
return this.definition.derivation;
|
|
20
10
|
}
|
|
@@ -38,23 +28,25 @@ export class Schema {
|
|
|
38
28
|
}
|
|
39
29
|
}
|
|
40
30
|
static getFields() {
|
|
41
|
-
return this.fields;
|
|
31
|
+
return this.definition.fields;
|
|
42
32
|
}
|
|
33
|
+
/** An entry survives every derivation that kept its field: `Post.pick('body').getAdapters()`. */
|
|
43
34
|
static getAdapters() {
|
|
44
|
-
return this.adapters;
|
|
35
|
+
return this.definition.adapterSet.adapters;
|
|
45
36
|
}
|
|
46
37
|
static getUnique() {
|
|
47
38
|
return this.definition.constraints.unique;
|
|
48
39
|
}
|
|
49
40
|
static getOpts() {
|
|
50
|
-
return this.opts;
|
|
41
|
+
return this.definition.opts;
|
|
51
42
|
}
|
|
52
43
|
static validate(input) {
|
|
53
|
-
|
|
44
|
+
const { fields, opts } = this.definition;
|
|
45
|
+
return InputValidator.of(fields, opts).validate(input);
|
|
54
46
|
}
|
|
55
47
|
static from(data) {
|
|
56
48
|
const row = {};
|
|
57
|
-
for (const [key, field] of Object.entries(this.fields)) {
|
|
49
|
+
for (const [key, field] of Object.entries(this.definition.fields)) {
|
|
58
50
|
if (!Object.hasOwn(data, key))
|
|
59
51
|
continue;
|
|
60
52
|
const value = data[key];
|
|
@@ -68,7 +60,7 @@ export class Schema {
|
|
|
68
60
|
return row;
|
|
69
61
|
}
|
|
70
62
|
static get ['~standard']() {
|
|
71
|
-
const { fields, opts } = this;
|
|
63
|
+
const { fields, opts } = this.definition;
|
|
72
64
|
return {
|
|
73
65
|
version: 1,
|
|
74
66
|
vendor: 'fougere',
|
|
@@ -79,7 +71,7 @@ export class Schema {
|
|
|
79
71
|
return {
|
|
80
72
|
issues: verdict.errors.map((e) => ({
|
|
81
73
|
message: e.message,
|
|
82
|
-
path: e.path
|
|
74
|
+
path: e.path.length > 0 ? e.path.map((key) => ({ key })) : undefined,
|
|
83
75
|
})),
|
|
84
76
|
};
|
|
85
77
|
},
|
package/dist/Schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAQvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAA0B,MAAM,uBAAuB,CAAC;AAKjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAyB9C,MAAM,OAAO,MAAM;IACjB,uFAAuF;IACvF,MAAM,CAAC,UAAU,GAAqB,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAE1E,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../src/Schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Fields } from './field/Field.js';
|
|
1
|
+
import { type FieldName, type Fields } from './field/Field.js';
|
|
2
2
|
import { type CompositeUnique, type EntityDeclarations, type PreviousNames } from './entity/EntityDeclarations.js';
|
|
3
3
|
import { type EntityAdapters } from './entity/EntityAdapters.js';
|
|
4
4
|
import { EntityAdapterSet } from './entity/EntityAdapterSet.js';
|
|
@@ -12,8 +12,18 @@ import type { SchemaView } from './SchemaView.js';
|
|
|
12
12
|
* and `opts` because the next rule spanning two fields — a check, an exclusion — is a
|
|
13
13
|
* member here, not an eighth positional argument in a list that has already lost one.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export declare class SchemaConstraints<TFields extends Fields = Fields> {
|
|
16
16
|
readonly unique?: CompositeUnique<TFields>;
|
|
17
|
+
private constructor();
|
|
18
|
+
static readonly none: SchemaConstraints<Fields>;
|
|
19
|
+
/**
|
|
20
|
+
* The order is part of a group, so `['a','b']` and `['b','a']` are two constraints.
|
|
21
|
+
* FR : l'ordre fait partie du groupe : `['a','b']` et `['b','a']` sont deux contraintes.
|
|
22
|
+
* `SchemaConstraints.of([['a','b'], ['a','b']])` → `unique` holds one group
|
|
23
|
+
*/
|
|
24
|
+
static of<TFields extends Fields>(groups: readonly (readonly FieldName<TFields>[])[]): SchemaConstraints<TFields>;
|
|
25
|
+
/** One member gone and the group is gone: it constrained a pair that no longer exists. */
|
|
26
|
+
renamed(transform: (key: string) => string | undefined): SchemaConstraints;
|
|
17
27
|
}
|
|
18
28
|
/**
|
|
19
29
|
* Everything a schema IS, apart from being a class whose instances are rows.
|
|
@@ -35,6 +45,16 @@ export declare class SchemaDefinition {
|
|
|
35
45
|
readonly anchored: boolean;
|
|
36
46
|
readonly constraints: SchemaConstraints;
|
|
37
47
|
private constructor();
|
|
48
|
+
/**
|
|
49
|
+
* A schema cut from another one: it carries no previous names and holds no rows of its
|
|
50
|
+
* own, whatever else it keeps. `pick`, `partial`, `extend` and `compose` all land here.
|
|
51
|
+
*/
|
|
52
|
+
private static derived;
|
|
53
|
+
/**
|
|
54
|
+
* The same schema, one member restated — `declares` and `anchor`, which cut nothing.
|
|
55
|
+
* What they do not name is kept, and that is the whole difference with `derived`.
|
|
56
|
+
*/
|
|
57
|
+
private restated;
|
|
38
58
|
/** Built complete or not at all — no static assigned on the side. */
|
|
39
59
|
static of(declaration: {
|
|
40
60
|
fields: Fields;
|
|
@@ -55,16 +75,14 @@ export declare class SchemaDefinition {
|
|
|
55
75
|
* fields it keeps and everything else addressed by field name are both read from it.
|
|
56
76
|
*/
|
|
57
77
|
private renaming;
|
|
58
|
-
/** One member gone and the group is gone: it constrained a pair that no longer exists. */
|
|
59
|
-
private constraintsRenamed;
|
|
60
78
|
patched(root: SchemaView): SchemaDefinition;
|
|
61
79
|
/** An added field does not pretend to come from the root, which never declared it. */
|
|
62
80
|
extended(extra: Fields, root: SchemaView): SchemaDefinition;
|
|
63
81
|
/** Several schemas fold into one, which has no single origin to point at. */
|
|
64
82
|
static merged(views: readonly SchemaView[]): SchemaDefinition;
|
|
65
83
|
/**
|
|
66
|
-
*
|
|
67
|
-
* FR :
|
|
84
|
+
* Refuses a gesture naming a field the schema does not carry, and lists what it does.
|
|
85
|
+
* FR : refuse un geste nommant un champ absent, et énumère ceux qui existent.
|
|
68
86
|
* `pick('titel')` → `pick(): unknown field \`titel\`. This schema carries id, title, body.`
|
|
69
87
|
*/
|
|
70
88
|
private assertKnown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaDefinition.d.ts","sourceRoot":"","sources":["../src/SchemaDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/
|
|
1
|
+
{"version":3,"file":"SchemaDefinition.d.ts","sourceRoot":"","sources":["../src/SchemaDefinition.ts"],"names":[],"mappings":"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"}
|
package/dist/SchemaDefinition.js
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
|
-
import { FieldSet
|
|
1
|
+
import { FieldSet } from './field/FieldSet.js';
|
|
2
2
|
import { EntityAdapterSet } from './entity/EntityAdapterSet.js';
|
|
3
3
|
import { SchemaDerivation } from './SchemaDerivation.js';
|
|
4
|
+
/**
|
|
5
|
+
* What a schema constrains beyond any single field.
|
|
6
|
+
*
|
|
7
|
+
* `unique` is the one member today. It sits under an owner rather than beside `fields`
|
|
8
|
+
* and `opts` because the next rule spanning two fields — a check, an exclusion — is a
|
|
9
|
+
* member here, not an eighth positional argument in a list that has already lost one.
|
|
10
|
+
*/
|
|
11
|
+
export class SchemaConstraints {
|
|
12
|
+
unique;
|
|
13
|
+
constructor(unique) {
|
|
14
|
+
if (unique)
|
|
15
|
+
this.unique = unique;
|
|
16
|
+
}
|
|
17
|
+
static none = new SchemaConstraints();
|
|
18
|
+
/**
|
|
19
|
+
* The order is part of a group, so `['a','b']` and `['b','a']` are two constraints.
|
|
20
|
+
* FR : l'ordre fait partie du groupe : `['a','b']` et `['b','a']` sont deux contraintes.
|
|
21
|
+
* `SchemaConstraints.of([['a','b'], ['a','b']])` → `unique` holds one group
|
|
22
|
+
*/
|
|
23
|
+
static of(groups) {
|
|
24
|
+
const seen = new Map();
|
|
25
|
+
for (const group of groups)
|
|
26
|
+
seen.set(JSON.stringify(group), group);
|
|
27
|
+
return new SchemaConstraints(seen.size ? [...seen.values()] : undefined);
|
|
28
|
+
}
|
|
29
|
+
/** One member gone and the group is gone: it constrained a pair that no longer exists. */
|
|
30
|
+
renamed(transform) {
|
|
31
|
+
if (!this.unique)
|
|
32
|
+
return SchemaConstraints.none;
|
|
33
|
+
const kept = [];
|
|
34
|
+
for (const group of this.unique) {
|
|
35
|
+
const renamed = group.map(transform);
|
|
36
|
+
if (renamed.every((key) => key !== undefined))
|
|
37
|
+
kept.push(renamed);
|
|
38
|
+
}
|
|
39
|
+
return SchemaConstraints.of(kept);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
4
42
|
/**
|
|
5
43
|
* Everything a schema IS, apart from being a class whose instances are rows.
|
|
6
44
|
*
|
|
@@ -29,6 +67,29 @@ export class SchemaDefinition {
|
|
|
29
67
|
this.anchored = state.anchored;
|
|
30
68
|
this.constraints = state.constraints;
|
|
31
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* A schema cut from another one: it carries no previous names and holds no rows of its
|
|
72
|
+
* own, whatever else it keeps. `pick`, `partial`, `extend` and `compose` all land here.
|
|
73
|
+
*/
|
|
74
|
+
static derived(state) {
|
|
75
|
+
return new SchemaDefinition({ ...state, previous: undefined, anchored: false });
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The same schema, one member restated — `declares` and `anchor`, which cut nothing.
|
|
79
|
+
* What they do not name is kept, and that is the whole difference with `derived`.
|
|
80
|
+
*/
|
|
81
|
+
restated(state) {
|
|
82
|
+
return new SchemaDefinition({
|
|
83
|
+
fields: this.fields,
|
|
84
|
+
adapterSet: this.adapterSet,
|
|
85
|
+
opts: this.opts,
|
|
86
|
+
previous: this.previous,
|
|
87
|
+
derivation: this.derivation,
|
|
88
|
+
anchored: this.anchored,
|
|
89
|
+
constraints: this.constraints,
|
|
90
|
+
...state,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
32
93
|
/** Built complete or not at all — no static assigned on the side. */
|
|
33
94
|
static of(declaration) {
|
|
34
95
|
return new SchemaDefinition({
|
|
@@ -38,7 +99,7 @@ export class SchemaDefinition {
|
|
|
38
99
|
previous: declaration.previous,
|
|
39
100
|
derivation: declaration.derivation,
|
|
40
101
|
anchored: declaration.anchored ?? false,
|
|
41
|
-
constraints: declaration.constraints ??
|
|
102
|
+
constraints: declaration.constraints ?? SchemaConstraints.none,
|
|
42
103
|
});
|
|
43
104
|
}
|
|
44
105
|
declaring(declarations) {
|
|
@@ -48,29 +109,20 @@ export class SchemaDefinition {
|
|
|
48
109
|
...Object.keys(declarations.previous ?? {}),
|
|
49
110
|
]);
|
|
50
111
|
const declared = FieldSet.declaring(this.fields, declarations.unique);
|
|
51
|
-
return
|
|
112
|
+
return this.restated({
|
|
52
113
|
fields: declared.fields,
|
|
53
114
|
adapterSet: EntityAdapterSet.merged([
|
|
54
115
|
this.adapterSet,
|
|
55
116
|
EntityAdapterSet.of(declarations.adapters),
|
|
56
117
|
]),
|
|
57
|
-
opts: this.opts,
|
|
58
118
|
previous: declarations.previous ?? this.previous,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
119
|
+
constraints: declarations.unique === undefined
|
|
120
|
+
? this.constraints
|
|
121
|
+
: SchemaConstraints.of(declared.groups),
|
|
62
122
|
});
|
|
63
123
|
}
|
|
64
124
|
anchoring() {
|
|
65
|
-
return
|
|
66
|
-
fields: this.fields,
|
|
67
|
-
adapterSet: this.adapterSet,
|
|
68
|
-
opts: this.opts,
|
|
69
|
-
previous: this.previous,
|
|
70
|
-
derivation: this.derivation,
|
|
71
|
-
anchored: true,
|
|
72
|
-
constraints: this.constraints,
|
|
73
|
-
});
|
|
125
|
+
return this.restated({ anchored: true });
|
|
74
126
|
}
|
|
75
127
|
pick(keys, root) {
|
|
76
128
|
this.assertKnown('pick', keys);
|
|
@@ -98,48 +150,30 @@ export class SchemaDefinition {
|
|
|
98
150
|
fields[to] = field;
|
|
99
151
|
}
|
|
100
152
|
const nameOf = (key) => kept.get(key);
|
|
101
|
-
return
|
|
153
|
+
return SchemaDefinition.derived({
|
|
102
154
|
fields,
|
|
103
155
|
adapterSet: this.adapterSet.rename(nameOf),
|
|
104
156
|
opts: this.opts,
|
|
105
|
-
previous: undefined,
|
|
106
157
|
derivation: this.origin(root).rename(nameOf),
|
|
107
|
-
|
|
108
|
-
constraints: this.constraintsRenamed(nameOf),
|
|
158
|
+
constraints: this.constraints.renamed(nameOf),
|
|
109
159
|
});
|
|
110
160
|
}
|
|
111
|
-
/** One member gone and the group is gone: it constrained a pair that no longer exists. */
|
|
112
|
-
constraintsRenamed(transform) {
|
|
113
|
-
if (!this.constraints.unique)
|
|
114
|
-
return this.constraints;
|
|
115
|
-
const kept = [];
|
|
116
|
-
for (const group of this.constraints.unique) {
|
|
117
|
-
const renamed = group.map(transform);
|
|
118
|
-
if (renamed.every((key) => key !== undefined))
|
|
119
|
-
kept.push(renamed);
|
|
120
|
-
}
|
|
121
|
-
return { unique: deduplicated(kept) };
|
|
122
|
-
}
|
|
123
161
|
patched(root) {
|
|
124
|
-
return
|
|
162
|
+
return SchemaDefinition.derived({
|
|
125
163
|
fields: { ...this.fields },
|
|
126
164
|
adapterSet: this.adapterSet,
|
|
127
165
|
opts: { ...this.opts, patch: true },
|
|
128
|
-
previous: undefined,
|
|
129
166
|
derivation: this.origin(root),
|
|
130
|
-
anchored: false,
|
|
131
167
|
constraints: this.constraints,
|
|
132
168
|
});
|
|
133
169
|
}
|
|
134
170
|
/** An added field does not pretend to come from the root, which never declared it. */
|
|
135
171
|
extended(extra, root) {
|
|
136
|
-
return
|
|
172
|
+
return SchemaDefinition.derived({
|
|
137
173
|
fields: { ...this.fields, ...extra },
|
|
138
174
|
adapterSet: this.adapterSet,
|
|
139
175
|
opts: this.opts,
|
|
140
|
-
previous: undefined,
|
|
141
176
|
derivation: this.origin(root),
|
|
142
|
-
anchored: false,
|
|
143
177
|
constraints: this.constraints,
|
|
144
178
|
});
|
|
145
179
|
}
|
|
@@ -153,19 +187,17 @@ export class SchemaDefinition {
|
|
|
153
187
|
opts = { ...opts, ...view.getOpts() };
|
|
154
188
|
groups.push(...(view.getUnique() ?? []));
|
|
155
189
|
}
|
|
156
|
-
return
|
|
190
|
+
return SchemaDefinition.derived({
|
|
157
191
|
fields,
|
|
158
192
|
adapterSet: EntityAdapterSet.merged(views.map((view) => EntityAdapterSet.of(view.getAdapters()))),
|
|
159
193
|
opts,
|
|
160
|
-
previous: undefined,
|
|
161
194
|
derivation: undefined,
|
|
162
|
-
|
|
163
|
-
constraints: { unique: deduplicated(groups) },
|
|
195
|
+
constraints: SchemaConstraints.of(groups),
|
|
164
196
|
});
|
|
165
197
|
}
|
|
166
198
|
/**
|
|
167
|
-
*
|
|
168
|
-
* FR :
|
|
199
|
+
* Refuses a gesture naming a field the schema does not carry, and lists what it does.
|
|
200
|
+
* FR : refuse un geste nommant un champ absent, et énumère ceux qui existent.
|
|
169
201
|
* `pick('titel')` → `pick(): unknown field \`titel\`. This schema carries id, title, body.`
|
|
170
202
|
*/
|
|
171
203
|
assertKnown(operation, keys) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaDefinition.js","sourceRoot":"","sources":["../src/SchemaDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemaDefinition.js","sourceRoot":"","sources":["../src/SchemaDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACnB,MAAM,CAA4B;IAE3C,YAAoB,MAAiC;QACnD,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,MAAM,CAAU,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,MAAM,CAAC,EAAE,CACP,MAAkD;QAElD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC9D,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAEnE,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3E,CAAC;IAED,0FAA0F;IAC1F,OAAO,CAAC,SAA8C;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAsBD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAClB,MAAM,CAAS;IACf,UAAU,CAAmB;IAC7B,IAAI,CAAkB;IACtB,QAAQ,CAAoC;IAC5C,UAAU,CAA+B;IACzC,QAAQ,CAAU;IAClB,WAAW,CAAoB;IAExC,YAAoB,KAAkB;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,OAAO,CAAC,KAAiD;QACtE,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,KAA2B;QAC1C,OAAO,IAAI,gBAAgB,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,MAAM,CAAC,EAAE,CAAC,WAQT;QACC,OAAO,IAAI,gBAAgB,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,UAAU,EAAE,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC;YACrD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;YAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,KAAK;YACvC,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,YAAwC;QAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YAC3B,GAAG,SAAS;YACZ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC;gBAClC,IAAI,CAAC,UAAU;gBACf,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;aAC3C,CAAC;YACF,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YAChD,WAAW,EACT,YAAY,CAAC,MAAM,KAAK,SAAS;gBAC/B,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,IAAuB,EAAE,IAAgB;QAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,IAAuB,EAAE,IAAgB;QAC5C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3E,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,OAA+B,EAAE,IAAgB;QACtD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAU,CAAC,CAAC;QAExF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,IAAc,EAAE,IAAgB;QAC/C,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK;gBAAE,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAC9B,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAgB;QACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAC9B,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YACnC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,QAAQ,CAAC,KAAa,EAAE,IAAgB;QACtC,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAC9B,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,MAAM,CAAC,MAAM,CAAC,KAA4B;QACxC,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAoB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACxC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,gBAAgB,CAAC,OAAO,CAAC;YAC9B,MAAM;YACN,UAAU,EAAE,gBAAgB,CAAC,MAAM,CACjC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAC7D;YACD,IAAI;YACJ,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,SAAiB,EAAE,IAAuB;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,qBAAqB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC9E,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChE,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,IAAgB;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAE9D,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;CACF"}
|
package/dist/SchemaView.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Field, Fields } from './field/Field.js';
|
|
2
2
|
import type { CompositeUnique, PreviousNames } from './entity/EntityDeclarations.js';
|
|
3
3
|
import type { EntityAdapters } from './entity/EntityAdapters.js';
|
|
4
|
-
import type { ValidationResult } from './validation.js';
|
|
4
|
+
import type { ValidationResult } from './lib/validation.js';
|
|
5
5
|
import type { ValidateOptions } from './validator/InputValidator.js';
|
|
6
6
|
import type { SchemaDerivation } from './SchemaDerivation.js';
|
|
7
7
|
export type Values<TFields extends Fields> = {
|
package/dist/SchemaView.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaView.d.ts","sourceRoot":"","sources":["../src/SchemaView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SchemaView.d.ts","sourceRoot":"","sources":["../src/SchemaView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,MAAM,CAAC,OAAO,SAAS,MAAM,IAAI;KAC1C,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACpE,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7E,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,IAAI,OAAO,CAAC;IACrB,WAAW,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,OAAO,IAAI,eAAe,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D"}
|
package/dist/axis/Axis.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ValidationError } from '../validation.js';
|
|
1
|
+
import type { ValidationError } from '../lib/validation.js';
|
|
2
2
|
export interface Axis<Declared = unknown, Wire = unknown> {
|
|
3
3
|
readonly slot: 'role' | 'lifecycle' | 'boundary';
|
|
4
4
|
validator(value: unknown, errors: ValidationError[]): void;
|
package/dist/axis/Axis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Axis.d.ts","sourceRoot":"","sources":["../../src/axis/Axis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Axis.d.ts","sourceRoot":"","sources":["../../src/axis/Axis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAEjD,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAE3D,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACvD;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;AAElG,eAAO,MAAM,cAAc,EAAE,SAAS,IAAI,EAIzC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,eAAe,uCAA0C,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { BoundaryRules } from './Boundary.js';
|
|
2
2
|
import { Registry } from '../../lib/Registry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wire to domain, and it must ANSWER a value it already produced: two doors decode — the
|
|
5
|
+
* client one on what arrives, `StorageGuard` on what a handler writes — so a decoder that
|
|
6
|
+
* halves cents halves them twice and stores a hundredth.
|
|
7
|
+
*/
|
|
3
8
|
export type Decoder = (value: unknown) => {
|
|
4
9
|
value: unknown;
|
|
5
10
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boundaries.d.ts","sourceRoot":"","sources":["../../../src/axis/boundary/Boundaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;IACrB,QAAQ;IAIR,QAAQ;IAIR,OAAO;CACR,CAAC"}
|
|
1
|
+
{"version":3,"file":"Boundaries.d.ts","sourceRoot":"","sources":["../../../src/axis/boundary/Boundaries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACjF,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;IACrB,QAAQ;IAIR,QAAQ;IAIR,OAAO;CACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boundaries.js","sourceRoot":"","sources":["../../../src/axis/boundary/Boundaries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Boundaries.js","sourceRoot":"","sources":["../../../src/axis/boundary/Boundaries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,IAAI,QAAQ,CACpB,kBAAkB,EAClB,6CAA6C,CAC9C;IACD,QAAQ,EAAE,IAAI,QAAQ,CACpB,kBAAkB,EAClB,6CAA6C,CAC9C;IACD,OAAO,EAAE,IAAI,QAAQ,CAAgB,gBAAgB,CAAC;CACvD,CAAC;AAEF,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;IAChD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtC,CAAC,CAAC,CAAC;AACH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAChD,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CACpD,CAAC;AACF,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC"}
|
|
@@ -10,9 +10,9 @@ export interface BoundaryRules {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
export type BoundaryRef = 'isoDate' | (string & {}) | BoundaryRules;
|
|
13
|
-
export declare class Boundary
|
|
14
|
-
readonly in
|
|
15
|
-
readonly out
|
|
13
|
+
export declare class Boundary {
|
|
14
|
+
private readonly in?;
|
|
15
|
+
private readonly out?;
|
|
16
16
|
readonly decode: Decoder;
|
|
17
17
|
readonly encode: Encoder;
|
|
18
18
|
private constructor();
|
|
@@ -21,7 +21,8 @@ export declare class Boundary implements BoundaryRules {
|
|
|
21
21
|
static of(field: Field): Boundary;
|
|
22
22
|
/** `date-time` means a `Date` on both sides, without a word in the entity. */
|
|
23
23
|
static forShape(shape: Shape | undefined): Boundary;
|
|
24
|
-
|
|
24
|
+
/** The dual of `declared`: what `readOnly()` writes back on the field, not a judge. */
|
|
25
|
+
declaring(overrides: BoundaryRules): BoundaryRules;
|
|
25
26
|
get readOnly(): boolean;
|
|
26
27
|
get writeOnly(): boolean;
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boundary.d.ts","sourceRoot":"","sources":["../../../src/axis/boundary/Boundary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,CAAC,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC;AAKpE,qBAAa,
|
|
1
|
+
{"version":3,"file":"Boundary.d.ts","sourceRoot":"","sources":["../../../src/axis/boundary/Boundary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,CAAC,EAAE,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrC;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC;AAKpE,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAuB;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,OAAO,eAQN;IAED,mCAAmC;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAQtC;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,CAiBhC;IAED,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAGlD;IAED,uFAAuF;IACvF,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAEjD;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
|
|
@@ -43,14 +43,13 @@ export class Boundary {
|
|
|
43
43
|
}
|
|
44
44
|
/** `date-time` means a `Date` on both sides, without a word in the entity. */
|
|
45
45
|
static forShape(shape) {
|
|
46
|
-
|
|
47
|
-
if (base?.type === 'string' && base.format === 'date-time') {
|
|
46
|
+
if (Shapes.typeOf(shape) === 'date')
|
|
48
47
|
return new Boundary(Boundaries.aliases.find('isoDate'));
|
|
49
|
-
}
|
|
50
48
|
return new Boundary();
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
/** The dual of `declared`: what `readOnly()` writes back on the field, not a judge. */
|
|
51
|
+
declaring(overrides) {
|
|
52
|
+
return { in: overrides.in ?? this.in, out: overrides.out ?? this.out };
|
|
54
53
|
}
|
|
55
54
|
get readOnly() {
|
|
56
55
|
return this.in === 'closed';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boundary.js","sourceRoot":"","sources":["../../../src/axis/boundary/Boundary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AASvD,MAAM,eAAe,GAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,MAAM,eAAe,GAAY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAElD,MAAM,OAAO,QAAQ;
|
|
1
|
+
{"version":3,"file":"Boundary.js","sourceRoot":"","sources":["../../../src/axis/boundary/Boundary.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export const boundaryAxis = {
|
|
|
7
7
|
return;
|
|
8
8
|
if (!isObject(value)) {
|
|
9
9
|
errors.push({
|
|
10
|
-
path: 'boundary',
|
|
10
|
+
path: ['boundary'],
|
|
11
11
|
message: `Expected an alias name or { in, out } — got ${shown(value)}`,
|
|
12
12
|
});
|
|
13
13
|
return;
|
|
@@ -17,7 +17,7 @@ export const boundaryAxis = {
|
|
|
17
17
|
if (rule === undefined || rule === 'closed')
|
|
18
18
|
continue;
|
|
19
19
|
if (!isObject(rule) || typeof rule[verb] !== 'string') {
|
|
20
|
-
errors.push({ path:
|
|
20
|
+
errors.push({ path: ['boundary', side], message: `Expected 'closed' or { ${verb}: <name> }` });
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundaryAxis.js","sourceRoot":"","sources":["../../../src/axis/boundary/BoundaryAxis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,IAAI,EAAE,UAAU;IAEhB,SAAS,CAAC,KAAK,EAAE,MAAM;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"BoundaryAxis.js","sourceRoot":"","sources":["../../../src/axis/boundary/BoundaryAxis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,IAAI,EAAE,UAAU;IAEhB,SAAS,CAAC,KAAK,EAAE,MAAM;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,OAAO,EAAE,+CAA+C,KAAK,CAAC,KAAK,CAAC,EAAE;aACvE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAU,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QACpB,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC"}
|
|
@@ -9,14 +9,16 @@ export interface LifecycleRules {
|
|
|
9
9
|
} | (typeof CREATE_TOKENS)[number];
|
|
10
10
|
update?: (typeof UPDATE_TOKENS)[number];
|
|
11
11
|
}
|
|
12
|
-
export declare class Lifecycle
|
|
13
|
-
readonly create
|
|
14
|
-
readonly update
|
|
12
|
+
export declare class Lifecycle {
|
|
13
|
+
private readonly create?;
|
|
14
|
+
private readonly update?;
|
|
15
15
|
private constructor();
|
|
16
16
|
static of(field: {
|
|
17
17
|
lifecycle?: LifecycleRules;
|
|
18
18
|
}): Lifecycle;
|
|
19
19
|
get requiredAtCreate(): boolean;
|
|
20
|
+
/** The server fills it at create, so a client form never carries it. */
|
|
21
|
+
get stampedAtCreate(): boolean;
|
|
20
22
|
get stampedOnce(): boolean;
|
|
21
23
|
get immutable(): boolean;
|
|
22
24
|
get stampedOnUpdate(): boolean;
|