@fougere/schema 0.17.4-alpha.0 → 0.19.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.
Files changed (91) hide show
  1. package/README.md +1 -1
  2. package/dist/SchemaConstraints.d.ts +4 -4
  3. package/dist/SchemaConstraints.d.ts.map +1 -1
  4. package/dist/SchemaConstraints.js +1 -7
  5. package/dist/SchemaConstraints.js.map +1 -1
  6. package/dist/SchemaConstructor.d.ts +0 -5
  7. package/dist/SchemaConstructor.d.ts.map +1 -1
  8. package/dist/SchemaDefinition.d.ts.map +1 -1
  9. package/dist/SchemaDefinition.js.map +1 -1
  10. package/dist/axis/Resolver.d.ts +2 -1
  11. package/dist/axis/Resolver.d.ts.map +1 -1
  12. package/dist/axis/boundary/Boundary.d.ts.map +1 -1
  13. package/dist/axis/boundary/Boundary.js +3 -5
  14. package/dist/axis/boundary/Boundary.js.map +1 -1
  15. package/dist/axis/role/Relation.d.ts +5 -8
  16. package/dist/axis/role/Relation.d.ts.map +1 -1
  17. package/dist/axis/role/Relation.js.map +1 -1
  18. package/dist/axis/role/Role.d.ts +3 -3
  19. package/dist/axis/role/Role.d.ts.map +1 -1
  20. package/dist/axis/role/Role.js.map +1 -1
  21. package/dist/axis/shape/Shape.d.ts +6 -11
  22. package/dist/axis/shape/Shape.d.ts.map +1 -1
  23. package/dist/axis/shape/Shape.js.map +1 -1
  24. package/dist/entity/Entity.d.ts +4 -0
  25. package/dist/entity/Entity.d.ts.map +1 -0
  26. package/dist/entity/Entity.js +2 -0
  27. package/dist/entity/Entity.js.map +1 -0
  28. package/dist/field/FieldSet.d.ts +4 -7
  29. package/dist/field/FieldSet.d.ts.map +1 -1
  30. package/dist/field/FieldSet.js +2 -1
  31. package/dist/field/FieldSet.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/projection/card/Bundle.d.ts.map +1 -1
  36. package/dist/projection/card/Bundle.js +2 -2
  37. package/dist/projection/card/Bundle.js.map +1 -1
  38. package/dist/projection/card/Card.d.ts.map +1 -1
  39. package/dist/projection/card/Card.js +4 -4
  40. package/dist/projection/card/Card.js.map +1 -1
  41. package/dist/projection/card/Change.d.ts +10 -21
  42. package/dist/projection/card/Change.d.ts.map +1 -1
  43. package/dist/projection/card/Envelope.d.ts +7 -0
  44. package/dist/projection/card/Envelope.d.ts.map +1 -0
  45. package/dist/projection/card/Envelope.js +3 -0
  46. package/dist/projection/card/Envelope.js.map +1 -0
  47. package/dist/projection/card/FieldDescriptor.d.ts +0 -1
  48. package/dist/projection/card/FieldDescriptor.d.ts.map +1 -1
  49. package/dist/projection/card/FieldExtension.d.ts +9 -8
  50. package/dist/projection/card/FieldExtension.d.ts.map +1 -1
  51. package/dist/projection/card/RoleDescriptor.js.map +1 -1
  52. package/dist/projection/card/SchemaBundle.d.ts +2 -3
  53. package/dist/projection/card/SchemaBundle.d.ts.map +1 -1
  54. package/dist/projection/card/SchemaDescriptor.d.ts +2 -3
  55. package/dist/projection/card/SchemaDescriptor.d.ts.map +1 -1
  56. package/dist/vocabulary/primitive/json.d.ts +2 -2
  57. package/dist/vocabulary/primitive/json.d.ts.map +1 -1
  58. package/dist/vocabulary/primitive/json.js.map +1 -1
  59. package/dist/vocabulary/primitive/many.d.ts +2 -2
  60. package/dist/vocabulary/primitive/many.d.ts.map +1 -1
  61. package/dist/vocabulary/primitive/ref.d.ts +2 -2
  62. package/dist/vocabulary/primitive/ref.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/src/SchemaConstraints.ts +6 -1
  65. package/src/SchemaConstructor.ts +0 -5
  66. package/src/SchemaDefinition.ts +6 -11
  67. package/src/axis/Resolver.ts +3 -1
  68. package/src/axis/boundary/Boundary.ts +3 -5
  69. package/src/axis/role/Relation.ts +6 -9
  70. package/src/axis/role/Role.ts +3 -3
  71. package/src/axis/shape/Shape.ts +5 -6
  72. package/src/entity/Entity.ts +5 -0
  73. package/src/field/FieldSet.ts +6 -4
  74. package/src/index.ts +1 -1
  75. package/src/projection/card/Bundle.ts +5 -5
  76. package/src/projection/card/Card.ts +6 -5
  77. package/src/projection/card/Change.ts +9 -6
  78. package/src/projection/card/Envelope.ts +4 -0
  79. package/src/projection/card/FieldDescriptor.ts +0 -1
  80. package/src/projection/card/FieldExtension.ts +8 -10
  81. package/src/projection/card/RoleDescriptor.ts +2 -2
  82. package/src/projection/card/SchemaBundle.ts +2 -3
  83. package/src/projection/card/SchemaDescriptor.ts +2 -3
  84. package/src/vocabulary/primitive/json.ts +2 -2
  85. package/src/vocabulary/primitive/many.ts +2 -2
  86. package/src/vocabulary/primitive/ref.ts +2 -2
  87. package/dist/axis/role/EntityConstructor.d.ts +0 -2
  88. package/dist/axis/role/EntityConstructor.d.ts.map +0 -1
  89. package/dist/axis/role/EntityConstructor.js +0 -2
  90. package/dist/axis/role/EntityConstructor.js.map +0 -1
  91. package/src/axis/role/EntityConstructor.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/projection/card/Card.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import type { BoundaryRef } from '../../axis/boundary/Boundary.js';
2
- import type { LifecycleRules } from '../../axis/lifecycle/Lifecycle.js';
1
+ import type { FougereFieldAxes } from '../../FougereFieldAxes.js';
3
2
  import type { FieldDescriptor } from './FieldDescriptor.js';
4
- import type { RoleDescriptor } from './RoleDescriptor.js';
3
+ import type { FieldExtension } from './FieldExtension.js';
5
4
  import type { TypeSet } from './TypeSet.js';
6
5
  /** One named difference, at one place. Each kind exists because a reader asks for it. */
7
6
  export type Change =
@@ -49,22 +48,12 @@ export type Change =
49
48
  }
50
49
  /** An axis other than shape was restated. */
51
50
  | {
52
- kind: 'restated';
53
- field: string;
54
- axis: 'role';
55
- from?: RoleDescriptor;
56
- to?: RoleDescriptor;
57
- } | {
58
- kind: 'restated';
59
- field: string;
60
- axis: 'lifecycle';
61
- from?: LifecycleRules;
62
- to?: LifecycleRules;
63
- } | {
64
- kind: 'restated';
65
- field: string;
66
- axis: 'boundary';
67
- from?: BoundaryRef;
68
- to?: BoundaryRef;
69
- };
51
+ [Axis in keyof FougereFieldAxes]-?: {
52
+ kind: 'restated';
53
+ field: string;
54
+ axis: Axis;
55
+ from?: FieldExtension[Axis];
56
+ to?: FieldExtension[Axis];
57
+ };
58
+ }[keyof FougereFieldAxes];
70
59
  //# sourceMappingURL=Change.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Change.d.ts","sourceRoot":"","sources":["../../../src/projection/card/Change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,yFAAyF;AACzF,MAAM,MAAM,MAAM;AAChB,6FAA6F;AAC3F;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC1E,uFAAuF;GACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC9E,4FAA4F;GAC1F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE;AACvE,kEAAkE;GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE;AAChE,0FAA0F;GACxF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,eAAe,CAAA;CAAE;AACjF,wFAAwF;GACtF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE;AACjE,6CAA6C;GAC3C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,EAAE,CAAC,EAAE,cAAc,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAAC,EAAE,CAAC,EAAE,cAAc,CAAA;CAAE,GAClG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,EAAE,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"Change.d.ts","sourceRoot":"","sources":["../../../src/projection/card/Change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,yFAAyF;AACzF,MAAM,MAAM,MAAM;AAChB,6FAA6F;AAC3F;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC1E,uFAAuF;GACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAC9E,4FAA4F;GAC1F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE;AACvE,kEAAkE;GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE;AAChE,0FAA0F;GACxF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,eAAe,CAAA;CAAE;AACjF,wFAAwF;GACtF;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE;AACjE,6CAA6C;GAC3C;KAAG,IAAI,IAAI,MAAM,gBAAgB,CAAC,CAAC,GAAG;QACtC,IAAI,EAAE,UAAU,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5B,EAAE,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;KAC3B;CAAE,CAAC,MAAM,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** What every card document carries: the format it speaks, and who wrote it. */
2
+ export declare const ENVELOPE: {
3
+ readonly 'x-fougere-version': 1;
4
+ readonly 'x-fougere-vendor': 'fougere';
5
+ };
6
+ export type Envelope = typeof ENVELOPE;
7
+ //# sourceMappingURL=Envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Envelope.d.ts","sourceRoot":"","sources":["../../../src/projection/card/Envelope.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,QAAQ;aAAK,mBAAmB,EAAE,CAAC;aAAE,kBAAkB,EAAE,SAAS;CAAW,CAAC;AAE3F,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** What every card document carries: the format it speaks, and who wrote it. */
2
+ export const ENVELOPE = { 'x-fougere-version': 1, 'x-fougere-vendor': 'fougere' };
3
+ //# sourceMappingURL=Envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Envelope.js","sourceRoot":"","sources":["../../../src/projection/card/Envelope.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,mBAAmB,EAAE,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAW,CAAC"}
@@ -5,7 +5,6 @@ export type FieldDescriptor = ShapeKeywords & {
5
5
  type?: JSONSchema7TypeName | JSONSchema7TypeName[];
6
6
  items?: FieldDescriptor;
7
7
  properties?: Record<string, FieldDescriptor>;
8
- description?: string;
9
8
  'x-fougere'?: FieldExtension;
10
9
  };
11
10
  //# sourceMappingURL=FieldDescriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDescriptor.d.ts","sourceRoot":"","sources":["../../../src/projection/card/FieldDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IACnD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"FieldDescriptor.d.ts","sourceRoot":"","sources":["../../../src/projection/card/FieldDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IACnD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B,CAAC"}
@@ -1,11 +1,12 @@
1
- import type { BoundaryRef } from '../../axis/boundary/Boundary.js';
2
- import type { LifecycleRules } from '../../axis/lifecycle/Lifecycle.js';
1
+ import type { FougereFieldAxes } from '../../FougereFieldAxes.js';
3
2
  import type { RoleDescriptor } from './RoleDescriptor.js';
4
- export interface FieldExtension {
5
- role?: RoleDescriptor;
6
- lifecycle?: LifecycleRules;
7
- boundary?: BoundaryRef;
8
- /** An axis registered from outside writes here, under its own name. */
3
+ /**
4
+ * What each axis writes on a card — its declaration as it stands, except `role`, whose target
5
+ * travels as a name. An axis registered from outside writes here too, under its own name.
6
+ */
7
+ export type FieldExtension = {
8
+ [Axis in keyof FougereFieldAxes]?: Axis extends 'role' ? RoleDescriptor : FougereFieldAxes[Axis];
9
+ } & {
9
10
  [axis: string]: unknown;
10
- }
11
+ };
11
12
  //# sourceMappingURL=FieldExtension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldExtension.d.ts","sourceRoot":"","sources":["../../../src/projection/card/FieldExtension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB,uEAAuE;IACvE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"FieldExtension.d.ts","sourceRoot":"","sources":["../../../src/projection/card/FieldExtension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;KAC1B,IAAI,IAAI,MAAM,gBAAgB,CAAC,CAAC,EAAE,IAAI,SAAS,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC;CACjG,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RoleDescriptor.js","sourceRoot":"","sources":["../../../src/projection/card/RoleDescriptor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,QAAQ,CAAC,IAAI,EAAE,GAAG;QAChB,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,OAAO;YAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAuB,CAAC;YACvD,UAAU,CAAC,QAAQ,GAAG;gBACpB,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,IAAI,EAAE,OAAkB;QAClC,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1E,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,QAAQ,GAAG;gBACf,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,EAAc,CAAsB;gBACzE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"RoleDescriptor.js","sourceRoot":"","sources":["../../../src/projection/card/RoleDescriptor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkBhD,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,QAAQ,CAAC,IAAI,EAAE,GAAG;QAChB,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,OAAO;YAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK;YAAE,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAuB,CAAC;YACvD,UAAU,CAAC,QAAQ,GAAG;gBACpB,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,IAAI,EAAE,OAAkB;QAClC,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAC1E,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACxE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,QAAQ,GAAG;gBACf,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAK,EAAE,IAAI,EAAc,CAAW;gBAC9D,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { SchemaDescriptor } from './SchemaDescriptor.js';
2
- export interface SchemaBundle {
2
+ import type { Envelope } from './Envelope.js';
3
+ export interface SchemaBundle extends Envelope {
3
4
  $defs: Record<string, SchemaDescriptor>;
4
- 'x-fougere-version': 1;
5
- 'x-fougere-vendor': 'fougere';
6
5
  }
7
6
  //# sourceMappingURL=SchemaBundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBundle.d.ts","sourceRoot":"","sources":["../../../src/projection/card/SchemaBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxC,mBAAmB,EAAE,CAAC,CAAC;IACvB,kBAAkB,EAAE,SAAS,CAAC;CAC/B"}
1
+ {"version":3,"file":"SchemaBundle.d.ts","sourceRoot":"","sources":["../../../src/projection/card/SchemaBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACzC"}
@@ -1,12 +1,11 @@
1
1
  import type { FieldDescriptor } from './FieldDescriptor.js';
2
2
  import type { DerivedFrom } from './DerivedFrom.js';
3
- export interface SchemaDescriptor {
3
+ import type { Envelope } from './Envelope.js';
4
+ export interface SchemaDescriptor extends Envelope {
4
5
  title?: string;
5
6
  type: 'object';
6
7
  properties: Record<string, FieldDescriptor>;
7
8
  required?: string[];
8
9
  'x-fougere-derived'?: DerivedFrom;
9
- 'x-fougere-version': 1;
10
- 'x-fougere-vendor': 'fougere';
11
10
  }
12
11
  //# sourceMappingURL=SchemaDescriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaDescriptor.d.ts","sourceRoot":"","sources":["../../../src/projection/card/SchemaDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,mBAAmB,EAAE,CAAC,CAAC;IACvB,kBAAkB,EAAE,SAAS,CAAC;CAC/B"}
1
+ {"version":3,"file":"SchemaDescriptor.d.ts","sourceRoot":"","sources":["../../../src/projection/card/SchemaDescriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,CAAC,EAAE,WAAW,CAAC;CACnC"}
@@ -1,5 +1,5 @@
1
1
  import { Field, type Shared } from '../../field/Field.js';
2
- import type { SchemaView } from '../../SchemaView.js';
2
+ import type { Entity } from '../../entity/Entity.js';
3
3
  export declare function json<T = unknown>(opts?: Shared<T>): Field<T>;
4
- export declare function json<E extends SchemaView & (new (...args: any[]) => any)>(of: E, opts?: Shared<InstanceType<E>>): Field<InstanceType<E>>;
4
+ export declare function json<E extends Entity>(of: E, opts?: Shared<InstanceType<E>>): Field<InstanceType<E>>;
5
5
  //# sourceMappingURL=json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,wBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,wBAAgB,IAAI,CAAC,CAAC,SAAS,UAAU,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EACvE,EAAE,EAAE,CAAC,EACL,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKrD,wBAAgB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,EAAE,EAAE,CAAC,EACL,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC7B,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/vocabulary/primitive/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUnD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,EAA6B,EAC7B,IAAsB;IAEtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAEjF,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;QAClD,MAAM,IAAI,WAAW,CACnB,gFAAgF,CACjF,CAAC;IAEJ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAE9B,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,KAAK,CAAC;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KAChF,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/vocabulary/primitive/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAe,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,EAA6B,EAC7B,IAAsB;IAEtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAEjF,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;QAClD,MAAM,IAAI,WAAW,CACnB,gFAAgF,CACjF,CAAC;IAEJ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAE9B,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,KAAK,CAAC;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KAChF,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type EntityConstructor } from '../../axis/role/EntityConstructor.js';
1
+ import type { Entity } from '../../entity/Entity.js';
2
2
  import { Field, type Described } from '../../field/Field.js';
3
3
  /**
4
4
  * `many(() => Post)` → `{ type: 'array' }` with `role.relation.kind` `'many'`
5
5
  */
6
- export declare function many<E extends EntityConstructor>(target: E | (() => E), opts?: Described): Field<InstanceType<E>[]>;
6
+ export declare function many<E extends Entity>(target: E | (() => E), opts?: Described): Field<InstanceType<E>[]>;
7
7
  //# sourceMappingURL=many.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"many.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/many.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,iBAAiB,EAC9C,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,SAAS,GACf,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAK1B"}
1
+ {"version":3,"file":"many.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/many.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EACnC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,SAAS,GACf,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAK1B"}
@@ -1,8 +1,8 @@
1
- import { type EntityConstructor } from '../../axis/role/EntityConstructor.js';
1
+ import type { Entity } from '../../entity/Entity.js';
2
2
  import { type OnDelete } from '../../axis/role/Relation.js';
3
3
  import { Field, type Shared } from '../../field/Field.js';
4
4
  export interface RefOptions extends Shared<string> {
5
5
  onDelete?: OnDelete;
6
6
  }
7
- export declare function ref<E extends EntityConstructor>(target: E | (() => E), opts?: RefOptions): Field<string>;
7
+ export declare function ref<E extends Entity>(target: E | (() => E), opts?: RefOptions): Field<string>;
8
8
  //# sourceMappingURL=ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAC7C,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,UAAU,GAChB,KAAK,CAAC,MAAM,CAAC,CAKf"}
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../../src/vocabulary/primitive/ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,EAClC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACrB,IAAI,CAAC,EAAE,UAAU,GAChB,KAAK,CAAC,MAAM,CAAC,CAKf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/schema",
3
- "version": "0.17.4-alpha.0",
3
+ "version": "0.19.0-alpha.0",
4
4
  "description": "The entity and its 4 axes — shape, role, lifecycle, boundary. Subject-owned judgments, edge-safe.",
5
5
  "keywords": [
6
6
  "fougere",
@@ -1,6 +1,7 @@
1
1
  import { type FieldName } from './field/FieldName.js';
2
2
  import { type Fields } from './field/Fields.js';
3
3
  import { type FieldGroups } from './entity/FieldGroups.js';
4
+ import type { EntityDeclarations } from './entity/EntityDeclarations.js';
4
5
 
5
6
  /**
6
7
  * What a schema states beyond any single field: groups of names. `unique` constrains the
@@ -9,7 +10,11 @@ import { type FieldGroups } from './entity/FieldGroups.js';
9
10
  * spanning two fields — a check, an exclusion — is a member here, not an eighth positional
10
11
  * argument in a list that has already lost one.
11
12
  */
13
+ export type ConstraintKind = (typeof SchemaConstraints.kinds)[number];
14
+
12
15
  export class SchemaConstraints<TFields extends Fields = Fields> {
16
+ static readonly kinds = ['unique', 'index'] as const;
17
+
13
18
  private constructor(
14
19
  readonly unique: FieldGroups<TFields>,
15
20
  readonly index: FieldGroups<TFields>,
@@ -23,7 +28,7 @@ export class SchemaConstraints<TFields extends Fields = Fields> {
23
28
  * `SchemaConstraints.of([['a','b'], ['a','b']])` → `unique` holds one group
24
29
  */
25
30
  static of<TFields extends Fields>(
26
- groups: { unique?: FieldGroups<TFields>; index?: FieldGroups<TFields> },
31
+ groups: Pick<EntityDeclarations<TFields>, ConstraintKind>,
27
32
  ): SchemaConstraints<TFields> {
28
33
  return new SchemaConstraints(deduped(groups.unique), deduped(groups.index));
29
34
  }
@@ -3,17 +3,12 @@ import type { StandardSchemaV1 } from '@standard-schema/spec';
3
3
  import { type Fields } from './field/Fields.js';
4
4
 
5
5
  import { type EntityDeclarations } from './entity/EntityDeclarations.js';
6
- import { type PreviousNames } from './entity/PreviousNames.js';
7
- import { SchemaDerivation } from './SchemaDerivation.js';
8
6
  import type { SchemaView } from './SchemaView.js';
9
7
  import type { Values } from './field/Values.js';
10
8
 
11
9
  export interface SchemaConstructor<TFields extends Fields> extends SchemaView<TFields> {
12
10
  new (data: Partial<Values<TFields>>): Values<TFields>;
13
11
  readonly '~standard': StandardSchemaV1.Props<Record<string, unknown>, Values<TFields>>;
14
- readonly derivation?: SchemaDerivation;
15
- readonly previous?: PreviousNames<TFields>;
16
- readonly anchored?: boolean;
17
12
  from(data: Record<string, unknown>): Values<TFields>;
18
13
  pick<K extends string & keyof TFields>(
19
14
  ...keys: K[]
@@ -9,6 +9,7 @@ import { type ValidateOptions } from './validator/ValidateOptions.js';
9
9
  import type { SchemaView } from './SchemaView.js';
10
10
  import { SchemaConstraints } from './SchemaConstraints.js';
11
11
  import { SchemaError } from './SchemaError.js';
12
+ import type { ConstraintKind } from './SchemaConstraints.js';
12
13
 
13
14
  /**
14
15
  * Everything a definition is made of, every member required.
@@ -17,15 +18,10 @@ import { SchemaError } from './SchemaError.js';
17
18
  * `anchored: false` are the two a derivation decides, and positionally they were an
18
19
  * `undefined` and a `false` a reader had to count arguments to name.
19
20
  */
20
- interface SchemaState {
21
- fields: Fields;
22
- adapterSet: EntityAdapterSet;
23
- opts: ValidateOptions;
24
- previous: PreviousNames<Fields> | undefined;
25
- derivation: SchemaDerivation | undefined;
26
- anchored: boolean;
27
- constraints: SchemaConstraints;
28
- }
21
+ type SchemaState = Pick<
22
+ SchemaDefinition,
23
+ 'fields' | 'adapterSet' | 'opts' | 'previous' | 'derivation' | 'anchored' | 'constraints'
24
+ >;
29
25
 
30
26
  /** What a schema is built from; the rest is stated by `declares` or inherited by a derivation. */
31
27
  export interface SchemaDeclaration<TFields extends Fields> {
@@ -183,8 +179,7 @@ export class SchemaDefinition {
183
179
  static merged(views: readonly SchemaView[]): SchemaDefinition {
184
180
  const fields: Fields = {};
185
181
  let opts: ValidateOptions = {};
186
- const groups: { unique: (readonly string[])[]; index: (readonly string[])[] } =
187
- { unique: [], index: [] };
182
+ const groups: Record<ConstraintKind, (readonly string[])[]> = { unique: [], index: [] };
188
183
  for (const view of views) {
189
184
  Object.assign(fields, view.getFields());
190
185
  opts = { ...opts, ...view.getOpts() };
@@ -1 +1,3 @@
1
- export type Resolver = (name: string) => (abstract new (...args: never[]) => unknown) | undefined;
1
+ import type { Entity } from '../entity/Entity.js';
2
+
3
+ export type Resolver = (name: string) => Entity | undefined;
@@ -67,11 +67,9 @@ export class Boundary {
67
67
 
68
68
  return new Boundary(rules, {
69
69
  decode:
70
- rules.in === 'closed'
71
- ? identityDecoder
72
- : typeof declared.rules.in === 'object'
73
- ? Boundaries.decoders.resolve(declared.rules.in.decode)
74
- : derived.decode,
70
+ typeof declared.rules.in === 'object'
71
+ ? Boundaries.decoders.resolve(declared.rules.in.decode)
72
+ : derived.decode,
75
73
  encode:
76
74
  rules.out === 'closed'
77
75
  ? identityEncoder
@@ -1,4 +1,5 @@
1
- import type { EntityConstructor } from './EntityConstructor.js';
1
+ import type { Entity } from '../../entity/Entity.js';
2
+ import type { RoleRules } from './Role.js';
2
3
 
3
4
  export const RELATION_KINDS = ['one', 'many'] as const;
4
5
 
@@ -7,11 +8,7 @@ export const ON_DELETE = ['cascade', 'restrict', 'set null'] as const;
7
8
  /** What becomes of the rows that name a deleted one. */
8
9
  export type OnDelete = (typeof ON_DELETE)[number];
9
10
 
10
- export interface Relation {
11
- to: () => EntityConstructor;
12
- kind: (typeof RELATION_KINDS)[number];
13
- onDelete?: OnDelete;
14
- }
11
+ export type Relation = NonNullable<RoleRules['relation']>;
15
12
 
16
13
  /**
17
14
  * How a relation is built — the one place a target becomes `() => Entity`.
@@ -22,15 +19,15 @@ export interface Relation {
22
19
  */
23
20
  export const Relation = {
24
21
  /** `() => Post` so two entities can point at each other. */
25
- one(target: EntityConstructor | (() => EntityConstructor), onDelete?: OnDelete): Relation {
22
+ one(target: Entity | (() => Entity), onDelete?: OnDelete): Relation {
26
23
  return { to: normalizeTarget(target), kind: 'one', ...(onDelete ? { onDelete } : {}) };
27
24
  },
28
25
 
29
- many(target: EntityConstructor | (() => EntityConstructor)): Relation {
26
+ many(target: Entity | (() => Entity)): Relation {
30
27
  return { to: normalizeTarget(target), kind: 'many' };
31
28
  },
32
29
  };
33
30
 
34
- function normalizeTarget<E extends EntityConstructor>(target: E | (() => E)): () => E {
31
+ function normalizeTarget<E extends Entity>(target: E | (() => E)): () => E {
35
32
  return 'getFields' in target ? () => target as E : (target as () => E);
36
33
  }
@@ -1,5 +1,5 @@
1
1
  import type { Relation } from './Relation.js';
2
- import type { EntityConstructor } from './EntityConstructor.js';
2
+ import type { Entity } from '../../entity/Entity.js';
3
3
  import { isObject } from '../../lib/utils.js';
4
4
  import { Shapes, type Shape } from '../shape/Shape.js';
5
5
  import type { ValidationError } from '../../lib/ValidationError.js';
@@ -14,7 +14,7 @@ export class Role {
14
14
  .key(
15
15
  'relation',
16
16
  Format.of()
17
- .key('to', Format.anything.as<() => EntityConstructor>())
17
+ .key('to', Format.anything.as<() => Entity>())
18
18
  .key('kind', Format.tokens(RELATION_KINDS))
19
19
  .key('onDelete', Format.tokens(ON_DELETE))
20
20
  .needs('to', 'kind')
@@ -86,7 +86,7 @@ export class Role {
86
86
  }
87
87
 
88
88
  /** Calls `() => Post` so no caller has to. */
89
- get target(): EntityConstructor | undefined {
89
+ get target(): Entity | undefined {
90
90
  return this.rules.relation?.to();
91
91
  }
92
92
 
@@ -52,12 +52,11 @@ export const SHAPE_TYPES = [
52
52
  'object',
53
53
  ] as const;
54
54
 
55
- type BaseShape =
56
- | ({ type: 'string' } & StringConstraints)
57
- | ({ type: 'number' | 'integer' } & NumericConstraints)
58
- | ({ type: 'boolean' } & Documented)
59
- | ({ type: 'array' } & ArrayConstraints)
60
- | ({ type: 'object' } & ObjectConstraints);
55
+
56
+ /** A shape with `null` taken out of its type — what `Shapes` splits a nullable one into. */
57
+ type BaseShape = Shape extends infer Each
58
+ ? Each extends { type: infer Type } ? Omit<Each, 'type'> & { type: Type extends readonly [infer One, 'null'] ? One : Type } : never
59
+ : never;
61
60
 
62
61
  interface ShapeParts {
63
62
  base?: BaseShape;
@@ -0,0 +1,5 @@
1
+ import type { SchemaView } from '../SchemaView.js';
2
+
3
+ /** An entity class, whichever its fields — what a relation, a prefab or `json()` is handed. */
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- a row of any shape
5
+ export type Entity = SchemaView & (abstract new (...args: any[]) => any);
@@ -4,6 +4,8 @@ import { Field } from './Field.js';
4
4
  import { type FieldName } from './FieldName.js';
5
5
  import { type Fields } from './Fields.js';
6
6
  import { SchemaError } from '../SchemaError.js';
7
+ import { SchemaConstraints, type ConstraintKind } from '../SchemaConstraints.js';
8
+ import type { EntityDeclarations } from '../entity/EntityDeclarations.js';
7
9
 
8
10
  export class FieldSet<TFields extends Fields = Fields> {
9
11
  private constructor(private readonly fields: TFields) {}
@@ -24,15 +26,15 @@ export class FieldSet<TFields extends Fields = Fields> {
24
26
  */
25
27
  static declaring<TFields extends Fields>(
26
28
  declared: TFields,
27
- groups: { unique?: FieldGroups<TFields>; index?: FieldGroups<TFields> } = {},
28
- ): { fields: TFields; unique: FieldGroups<TFields>; index: FieldGroups<TFields> } {
29
+ groups: Pick<EntityDeclarations<TFields>, ConstraintKind> = {},
30
+ ): { fields: TFields } & Record<ConstraintKind, FieldGroups<TFields>> {
29
31
  const fields: Fields = {};
30
32
  for (const [key, field] of Object.entries(declared))
31
33
  fields[key] = new Field(field, key);
32
34
 
33
- const composite = { unique: [] as FieldName<TFields>[][], index: [] as FieldName<TFields>[][] };
35
+ const composite: Record<ConstraintKind, FieldName<TFields>[][]> = { unique: [], index: [] };
34
36
 
35
- for (const kind of ['unique', 'index'] as const) {
37
+ for (const kind of SchemaConstraints.kinds) {
36
38
  for (const group of groups[kind] ?? []) {
37
39
  const missing = group.filter((key) => !Object.hasOwn(fields, key));
38
40
  if (missing.length)
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from './vocabulary/index.js';
4
4
 
5
5
  export { ANONYMOUS_SCHEMA_NAME, Schema } from './Schema.js';
6
6
  export { type SchemaConstructor } from './SchemaConstructor.js';
7
+ export { type Entity } from './entity/Entity.js';
7
8
  export { type SchemaView } from './SchemaView.js';
8
9
  export { Field } from './field/Field.js';
9
10
  export { type Fields } from './field/Fields.js';
@@ -13,7 +14,6 @@ export { type ShapeType } from './axis/shape/ShapeType.js';
13
14
  export { Shapes } from './axis/shape/Shape.js';
14
15
  export { Role } from './axis/role/Role.js';
15
16
  export { ON_DELETE, type OnDelete } from './axis/role/Relation.js';
16
- export { type EntityConstructor } from './axis/role/EntityConstructor.js';
17
17
  export { Lifecycle } from './axis/lifecycle/Lifecycle.js';
18
18
  export { Boundary } from './axis/boundary/Boundary.js';
19
19
  export { applyCreate, applyUpdate } from './axis/lifecycle/apply.js';
@@ -1,5 +1,5 @@
1
1
  import type { Resolver } from '../../axis/Resolver.js';
2
- import type { EntityConstructor } from '../../axis/role/EntityConstructor.js';
2
+ import type { Entity } from '../../entity/Entity.js';
3
3
  import { lowerFirst } from '../../lib/utils.js';
4
4
  import type { SchemaView } from '../../SchemaView.js';
5
5
  import { Card } from './Card.js';
@@ -9,6 +9,7 @@ import type { Diff } from './Diff.js';
9
9
  import type { SetDiff } from './SetDiff.js';
10
10
  import type { SetDiffOptions } from './SetDiffOptions.js';
11
11
  import { SchemaError } from '../../SchemaError.js';
12
+ import { ENVELOPE } from './Envelope.js';
12
13
 
13
14
  type SchemaSet = Record<string, SchemaView> | SchemaView[];
14
15
 
@@ -38,8 +39,7 @@ export class Bundle {
38
39
 
39
40
  return new Bundle({
40
41
  $defs: definitions,
41
- 'x-fougere-version': 1,
42
- 'x-fougere-vendor': 'fougere',
42
+ ...ENVELOPE,
43
43
  });
44
44
  }
45
45
 
@@ -48,12 +48,12 @@ export class Bundle {
48
48
  }
49
49
 
50
50
  toSchemas(): Record<string, SchemaView> {
51
- const byName: Record<string, EntityConstructor> = {};
51
+ const byName: Record<string, Entity> = {};
52
52
  const resolve: Resolver = (name) => byName[name.toLowerCase()];
53
53
  const schemas: Record<string, SchemaView> = {};
54
54
  for (const [name, descriptor] of Object.entries(this.descriptor.$defs)) {
55
55
  const schema = Card.fromDescriptor(descriptor).toSchema(resolve, name);
56
- byName[name.toLowerCase()] = schema as unknown as EntityConstructor;
56
+ byName[name.toLowerCase()] = schema;
57
57
  schemas[name] = schema;
58
58
  }
59
59
 
@@ -19,6 +19,8 @@ import type { SchemaDescriptor } from './SchemaDescriptor.js';
19
19
  import { compare, type Diff } from './Diff.js';
20
20
  import { type DiffOptions } from './DiffOptions.js';
21
21
  import { SchemaError } from '../../SchemaError.js';
22
+ import type { ConstraintKind } from '../../SchemaConstraints.js';
23
+ import { ENVELOPE } from './Envelope.js';
22
24
 
23
25
  type FieldsOf<T> = { [K in keyof T]-?: Field<T[K]> };
24
26
 
@@ -42,15 +44,14 @@ export class Card<T = Values<Fields>> {
42
44
  properties[key] = describeField(field, key);
43
45
  if (validator.requires(field)) required.push(key);
44
46
  }
45
- for (const kind of ['unique', 'index'] as const)
47
+ for (const kind of SchemaConstraints.kinds)
46
48
  for (const group of kind === 'unique' ? schema.getUnique() : schema.getIndex())
47
49
  for (const member of group) carryGroup(properties[member], kind, group);
48
50
 
49
51
  const descriptor: SchemaDescriptor = {
50
52
  type: 'object',
51
53
  properties,
52
- 'x-fougere-version': 1,
53
- 'x-fougere-vendor': 'fougere',
54
+ ...ENVELOPE,
54
55
  };
55
56
  const title = name ?? Card.titleOf(schema);
56
57
  if (title) descriptor.title = title;
@@ -98,7 +99,7 @@ export class Card<T = Values<Fields>> {
98
99
  }
99
100
 
100
101
  const fields: Fields = {};
101
- const groups: { unique: string[][]; index: string[][] } = { unique: [], index: [] };
102
+ const groups: Record<ConstraintKind, string[][]> = { unique: [], index: [] };
102
103
  for (const [key, property] of Object.entries(descriptor.properties)) {
103
104
  if (!isObject(property)) {
104
105
  refuse(
@@ -107,7 +108,7 @@ export class Card<T = Values<Fields>> {
107
108
  );
108
109
  }
109
110
  fields[key] = reconstructField(property, key, resolve);
110
- for (const kind of ['unique', 'index'] as const)
111
+ for (const kind of SchemaConstraints.kinds)
111
112
  for (const group of property['x-fougere']?.role?.[kind] ?? [])
112
113
  if (group.length > 1) groups[kind].push([...group]);
113
114
  }