@builder-builder/builder 0.0.10 → 0.0.11

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 (191) hide show
  1. package/dist/bb.d.ts +28 -0
  2. package/dist/bb.js +49 -0
  3. package/dist/check.d.ts +1 -1
  4. package/dist/check.js +4 -2
  5. package/dist/entities/builder/bind.d.ts +4 -85
  6. package/dist/entities/builder/bind.js +1 -9
  7. package/dist/entities/builder/builder.d.ts +17 -509
  8. package/dist/entities/builder/builder.js +19 -79
  9. package/dist/entities/builder/factory.d.ts +7 -0
  10. package/dist/entities/builder/factory.js +4 -0
  11. package/dist/entities/builder/index.d.ts +3 -6
  12. package/dist/entities/builder/index.js +1 -2
  13. package/dist/entities/collection/collection.d.ts +69 -19
  14. package/dist/entities/collection/collection.js +7 -25
  15. package/dist/entities/collection/config.d.ts +38 -1095
  16. package/dist/entities/collection/config.js +8 -8
  17. package/dist/entities/collection/expectation.d.ts +8 -4
  18. package/dist/entities/collection/index.d.ts +2 -2
  19. package/dist/entities/collection/when.d.ts +5 -4
  20. package/dist/entities/component/component.d.ts +264 -293
  21. package/dist/entities/component/component.js +5 -5
  22. package/dist/entities/component/details.d.ts +32 -57
  23. package/dist/entities/component/details.js +8 -8
  24. package/dist/entities/component/expectation.d.ts +7 -4
  25. package/dist/entities/component/expectation.js +0 -3
  26. package/dist/entities/component/field.d.ts +50 -0
  27. package/dist/entities/component/field.js +41 -0
  28. package/dist/entities/component/index.d.ts +4 -2
  29. package/dist/entities/component/index.js +2 -1
  30. package/dist/entities/component/when.d.ts +1 -1
  31. package/dist/entities/component/when.js +2 -2
  32. package/dist/entities/entry.d.ts +4 -0
  33. package/dist/entities/expectation.d.ts +10 -22
  34. package/dist/entities/expectation.js +2 -7
  35. package/dist/entities/index.d.ts +20 -17
  36. package/dist/entities/index.js +9 -8
  37. package/dist/entities/kind.d.ts +8 -5
  38. package/dist/entities/kind.js +3 -4
  39. package/dist/entities/model/bind.d.ts +83 -0
  40. package/dist/entities/model/expectation.d.ts +16 -0
  41. package/dist/entities/model/index.d.ts +7 -0
  42. package/dist/entities/model/index.js +2 -0
  43. package/dist/entities/model/methods.d.ts +57 -0
  44. package/dist/entities/{builder → model}/methods.js +8 -8
  45. package/dist/entities/model/model.d.ts +39 -0
  46. package/dist/entities/model/model.js +73 -0
  47. package/dist/entities/model/models.d.ts +39 -0
  48. package/dist/entities/model/models.js +14 -0
  49. package/dist/entities/{builder → model}/state.d.ts +10 -10
  50. package/dist/entities/option/index.d.ts +1 -1
  51. package/dist/entities/option/index.js +1 -1
  52. package/dist/entities/option/option.d.ts +210 -209
  53. package/dist/entities/option/option.js +5 -5
  54. package/dist/entities/option/select.d.ts +2 -12
  55. package/dist/entities/option/select.js +6 -3
  56. package/dist/entities/option/toggle.d.ts +2 -9
  57. package/dist/entities/option/toggle.js +3 -3
  58. package/dist/entities/option/values.d.ts +3 -21
  59. package/dist/entities/option/values.js +8 -2
  60. package/dist/entities/option/when.d.ts +5 -4
  61. package/dist/entities/refs.d.ts +6 -0
  62. package/dist/entities/refs.js +1 -0
  63. package/dist/entities/serialise.d.ts +388 -2919
  64. package/dist/entities/serialise.js +116 -17
  65. package/dist/entities/ui/describe.d.ts +22 -31
  66. package/dist/entities/ui/describe.js +1 -1
  67. package/dist/entities/ui/index.d.ts +2 -5
  68. package/dist/entities/ui/index.js +1 -2
  69. package/dist/entities/ui/page.d.ts +22 -31
  70. package/dist/entities/ui/page.js +1 -1
  71. package/dist/entities/ui/pages.d.ts +11 -8
  72. package/dist/entities/ui/pages.js +1 -1
  73. package/dist/entities/ui/ui.d.ts +22 -1194
  74. package/dist/entities/ui/ui.js +16 -28
  75. package/dist/entities/ui/uis.d.ts +5 -15
  76. package/dist/entities/ui/uis.js +12 -18
  77. package/dist/entities/validated.d.ts +35 -0
  78. package/dist/entities/validated.js +1 -0
  79. package/dist/entities/when.d.ts +64 -56
  80. package/dist/entities/when.js +1 -0
  81. package/dist/environment.d.ts +5 -0
  82. package/dist/environment.js +2 -0
  83. package/dist/exception.d.ts +8 -3
  84. package/dist/exception.js +3 -0
  85. package/dist/index.d.ts +21 -28
  86. package/dist/index.js +5 -13
  87. package/dist/instance.d.ts +56 -0
  88. package/dist/instance.js +10 -0
  89. package/dist/mappers/index.d.ts +7 -7
  90. package/dist/mappers/index.js +5 -4
  91. package/dist/mappers/instance.d.ts +3 -0
  92. package/dist/mappers/instance.js +35 -0
  93. package/dist/mappers/order.d.ts +6 -0
  94. package/dist/mappers/order.js +22 -0
  95. package/dist/mappers/render/pages.d.ts +4 -4
  96. package/dist/mappers/render/render.d.ts +2 -3
  97. package/dist/mappers/render/render.js +83 -78
  98. package/dist/mappers/resolve.d.ts +5 -9
  99. package/dist/mappers/resolve.js +25 -33
  100. package/dist/mappers/variants/index.d.ts +1 -0
  101. package/dist/mappers/variants/index.js +1 -0
  102. package/dist/mappers/variants/option-graph.d.ts +19 -0
  103. package/dist/mappers/{models → variants}/option-graph.js +33 -22
  104. package/dist/mappers/variants/variants.d.ts +3 -0
  105. package/dist/mappers/variants/variants.js +57 -0
  106. package/dist/private.d.ts +4 -0
  107. package/dist/private.js +4 -0
  108. package/dist/references.d.ts +13 -48
  109. package/dist/references.js +6 -14
  110. package/dist/serialisable.d.ts +1 -9
  111. package/dist/serialisable.js +2 -3
  112. package/dist/validate/brand.d.ts +14 -0
  113. package/dist/validate/brand.js +17 -0
  114. package/dist/validate/builder.d.ts +4 -0
  115. package/dist/validate/builder.js +27 -0
  116. package/dist/validate/expectations.d.ts +10 -0
  117. package/dist/validate/expectations.js +12 -0
  118. package/dist/validate/index.d.ts +18 -0
  119. package/dist/validate/index.js +9 -0
  120. package/dist/validate/instance.d.ts +19 -0
  121. package/dist/validate/instance.js +46 -0
  122. package/dist/validate/model.d.ts +36 -0
  123. package/dist/validate/model.js +196 -0
  124. package/dist/validate/resolve.d.ts +16 -0
  125. package/dist/validate/resolve.js +91 -0
  126. package/dist/validate/result.d.ts +8 -0
  127. package/dist/validate/result.js +4 -0
  128. package/dist/validate/ui.d.ts +8 -0
  129. package/dist/validate/ui.js +77 -0
  130. package/dist/validate/variants.d.ts +59 -0
  131. package/dist/validate/variants.js +102 -0
  132. package/package.json +5 -4
  133. package/dist/entities/bind.d.ts +0 -4
  134. package/dist/entities/bind.js +0 -44
  135. package/dist/entities/builder/builders.d.ts +0 -35
  136. package/dist/entities/builder/builders.js +0 -19
  137. package/dist/entities/builder/expectation.d.ts +0 -12
  138. package/dist/entities/builder/methods.d.ts +0 -58
  139. package/dist/entities/builder/validate.d.ts +0 -3
  140. package/dist/entities/builder/validate.js +0 -108
  141. package/dist/entities/errors.d.ts +0 -21
  142. package/dist/entities/ui/bind.d.ts +0 -10
  143. package/dist/entities/ui/bind.js +0 -9
  144. package/dist/entities/ui/validate.d.ts +0 -8
  145. package/dist/entities/ui/validate.js +0 -21
  146. package/dist/entities/validate.d.ts +0 -28
  147. package/dist/mappers/assert/builder.d.ts +0 -2
  148. package/dist/mappers/assert/builder.js +0 -46
  149. package/dist/mappers/assert/expectation.d.ts +0 -2
  150. package/dist/mappers/assert/expectation.js +0 -23
  151. package/dist/mappers/assert/index.d.ts +0 -6
  152. package/dist/mappers/assert/index.js +0 -4
  153. package/dist/mappers/assert/model.d.ts +0 -13
  154. package/dist/mappers/assert/model.js +0 -47
  155. package/dist/mappers/assert/models.d.ts +0 -33
  156. package/dist/mappers/assert/models.js +0 -74
  157. package/dist/mappers/assert/ui.d.ts +0 -2
  158. package/dist/mappers/assert/ui.js +0 -22
  159. package/dist/mappers/instance/index.d.ts +0 -1
  160. package/dist/mappers/instance/index.js +0 -1
  161. package/dist/mappers/instance/instance.d.ts +0 -4
  162. package/dist/mappers/instance/instance.js +0 -33
  163. package/dist/mappers/models/component-graph.d.ts +0 -9
  164. package/dist/mappers/models/component-graph.js +0 -51
  165. package/dist/mappers/models/graph.d.ts +0 -12
  166. package/dist/mappers/models/graph.js +0 -17
  167. package/dist/mappers/models/index.d.ts +0 -1
  168. package/dist/mappers/models/index.js +0 -1
  169. package/dist/mappers/models/models.d.ts +0 -3
  170. package/dist/mappers/models/models.js +0 -37
  171. package/dist/mappers/models/option-graph.d.ts +0 -9
  172. package/dist/mappers/order/index.d.ts +0 -2
  173. package/dist/mappers/order/index.js +0 -1
  174. package/dist/mappers/order/order.d.ts +0 -14
  175. package/dist/mappers/order/order.js +0 -31
  176. package/dist/mappers/refs.d.ts +0 -12
  177. package/dist/mappers/refs.js +0 -36
  178. package/dist/model.d.ts +0 -35
  179. package/dist/model.js +0 -9
  180. package/dist/walker/index.d.ts +0 -2
  181. package/dist/walker/index.js +0 -1
  182. package/dist/walker/walkable.d.ts +0 -4
  183. package/dist/walker/walkable.js +0 -4
  184. package/dist/walker/walker.d.ts +0 -26
  185. package/dist/walker/walker.js +0 -115
  186. package/dist/walker/walkers.d.ts +0 -9
  187. package/dist/walker/walkers.js +0 -55
  188. /package/dist/entities/{builder/expectation.js → entry.js} +0 -0
  189. /package/dist/entities/{builder/state.js → model/bind.js} +0 -0
  190. /package/dist/entities/{errors.js → model/expectation.js} +0 -0
  191. /package/dist/entities/{validate.js → model/state.js} +0 -0
@@ -7,19 +7,19 @@ import { BuilderComponentDetailsSerialisedSchema } from './details.js';
7
7
  export class BuilderComponent {
8
8
  name;
9
9
  payload;
10
- gatePaths;
11
- constructor(name, payload, gatePaths) {
10
+ paths;
11
+ constructor(name, payload, paths) {
12
12
  this.name = name;
13
13
  this.payload = payload;
14
- this.gatePaths = gatePaths;
14
+ this.paths = paths;
15
15
  }
16
16
  }
17
17
  export const BuilderComponentSchema = v.instance(BuilderComponent);
18
18
  export const BuilderComponentWhenSerialisedSchema = createWhenSerialisedSchema(BuilderComponentDetailsSerialisedSchema);
19
19
  export const BuilderComponentSelectMapSerialisedSchema = createSelectMapSerialisedSchema(BuilderComponentDetailsSerialisedSchema);
20
- export const BuilderComponentSerialisedSchema = serialisable(BuilderComponent, v.object({
20
+ export const BuilderComponentSerialisedSchema = serialisable(v.object({
21
21
  name: v.string(),
22
22
  payload: paramable(v.union([BuilderComponentDetailsSerialisedSchema, BuilderComponentWhenSerialisedSchema])),
23
- gatePaths: v.optional(paramable(BuilderPathsSchema))
23
+ paths: v.optional(paramable(BuilderPathsSchema))
24
24
  }));
25
25
  export const BuilderComponentsSerialisedSchema = v.pipe(v.array(BuilderComponentSerialisedSchema), v.readonly());
@@ -1,14 +1,14 @@
1
1
  import type { Paramable } from '../../references';
2
- import type { BuilderExpectations } from '../expectation';
2
+ import type { BuilderComponentFields } from './field';
3
3
  import * as v from 'valibot';
4
- export declare class BuilderComponentDetails<Expectations extends Paramable<BuilderExpectations> = Paramable<BuilderExpectations>> {
4
+ export declare class BuilderComponentDetails<const Fields extends Paramable<BuilderComponentFields> = Paramable<BuilderComponentFields>> {
5
5
  readonly type: 'component-details';
6
- expectations: Expectations;
7
- constructor(expectations: Expectations);
6
+ fields: Fields;
7
+ constructor(fields: Fields);
8
8
  }
9
9
  export declare const BuilderComponentDetailsSchema: v.InstanceSchema<typeof BuilderComponentDetails, undefined>;
10
10
  export declare const BuilderComponentDetailsSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
11
- readonly expectations: v.SchemaWithPipe<readonly [v.UnionSchema<[v.SchemaWithPipe<readonly [v.ObjectSchema<{
11
+ readonly fields: v.UnionSchema<[v.SchemaWithPipe<readonly [v.ObjectSchema<{
12
12
  readonly type: v.LiteralSchema<"parameter", undefined>;
13
13
  readonly id: v.StringSchema<undefined>;
14
14
  readonly name: v.StringSchema<undefined>;
@@ -16,67 +16,42 @@ export declare const BuilderComponentDetailsSerialisedSchema: v.SchemaWithPipe<r
16
16
  type: "parameter";
17
17
  id: string;
18
18
  name: string;
19
- }>]>, v.InstanceSchema<typeof import("../..").BuilderParameter, undefined>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
19
+ }>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
20
+ readonly type: v.LiteralSchema<"ref", undefined>;
21
+ readonly id: v.StringSchema<undefined>;
22
+ }, undefined>, v.ReadonlyAction<{
23
+ type: "ref";
24
+ id: string;
25
+ }>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
26
+ readonly type: v.LiteralSchema<"component-field", undefined>;
20
27
  readonly name: v.StringSchema<undefined>;
21
- readonly kind: v.PicklistSchema<["option", "component", "collection", "detail"], undefined>;
22
- }, undefined>, v.MetadataAction<{
23
- name: string;
24
- kind: "option" | "component" | "collection" | "detail";
25
- }, {
26
- readonly serialisable: typeof import("..").BuilderExpectation;
27
- readonly instance: v.InstanceSchema<typeof import("..").BuilderExpectation, undefined>;
28
- }>, v.ReadonlyAction<{
28
+ readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
29
+ readonly isOptional: v.BooleanSchema<undefined>;
30
+ }, undefined>, v.ReadonlyAction<{
31
+ type: "component-field";
29
32
  name: string;
30
- kind: "option" | "component" | "collection" | "detail";
33
+ valueType: "string" | "number" | "boolean";
34
+ isOptional: boolean;
31
35
  }>]>, undefined>, v.ReadonlyAction<Readonly<{
36
+ type: "component-field";
32
37
  name: string;
33
- kind: "option" | "component" | "collection" | "detail";
34
- }>[]>]>], undefined>, v.MetadataAction<Readonly<{
38
+ valueType: "string" | "number" | "boolean";
39
+ isOptional: boolean;
40
+ }>[]>]>], undefined>;
41
+ }, undefined>, v.ReadonlyAction<{
42
+ fields: Readonly<{
35
43
  type: "parameter";
36
44
  id: string;
37
45
  name: string;
38
- }> | import("../..").BuilderParameter<string> | readonly Readonly<{
39
- name: string;
40
- kind: "option" | "component" | "collection" | "detail";
41
- }>[], {
42
- readonly paramable: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
43
- readonly name: v.StringSchema<undefined>;
44
- readonly kind: v.PicklistSchema<["option", "component", "collection", "detail"], undefined>;
45
- }, undefined>, v.MetadataAction<{
46
- name: string;
47
- kind: "option" | "component" | "collection" | "detail";
48
- }, {
49
- readonly serialisable: typeof import("..").BuilderExpectation;
50
- readonly instance: v.InstanceSchema<typeof import("..").BuilderExpectation, undefined>;
51
- }>, v.ReadonlyAction<{
52
- name: string;
53
- kind: "option" | "component" | "collection" | "detail";
54
- }>]>, undefined>, v.ReadonlyAction<Readonly<{
55
- name: string;
56
- kind: "option" | "component" | "collection" | "detail";
57
- }>[]>]>;
58
- }>]>;
59
- }, undefined>, v.MetadataAction<{
60
- expectations: Readonly<{
61
- type: "parameter";
46
+ }> | Readonly<{
47
+ type: "ref";
62
48
  id: string;
49
+ }> | readonly Readonly<{
50
+ type: "component-field";
63
51
  name: string;
64
- }> | import("../..").BuilderParameter<string> | readonly Readonly<{
65
- name: string;
66
- kind: "option" | "component" | "collection" | "detail";
67
- }>[];
68
- }, {
69
- readonly serialisable: typeof BuilderComponentDetails;
70
- readonly instance: v.InstanceSchema<typeof BuilderComponentDetails, undefined>;
71
- }>, v.ReadonlyAction<{
72
- expectations: Readonly<{
73
- type: "parameter";
74
- id: string;
75
- name: string;
76
- }> | import("../..").BuilderParameter<string> | readonly Readonly<{
77
- name: string;
78
- kind: "option" | "component" | "collection" | "detail";
52
+ valueType: "string" | "number" | "boolean";
53
+ isOptional: boolean;
79
54
  }>[];
80
55
  }>]>;
81
56
  export type BuilderComponentDetailsSerialised = v.InferOutput<typeof BuilderComponentDetailsSerialisedSchema>;
82
- export declare function componentDetails<const Expectations extends Paramable<BuilderExpectations> = Paramable<BuilderExpectations>>(expectations?: Expectations): BuilderComponentDetails;
57
+ export declare function componentDetails<const Fields extends BuilderComponentFields>(...fields: Fields): BuilderComponentDetails<Fields>;
@@ -1,17 +1,17 @@
1
1
  import * as v from 'valibot';
2
- import { BuilderExpectationsSerialisedSchema } from '../expectation.js';
3
2
  import { paramable } from '../../references.js';
4
3
  import { serialisable } from '../../serialisable.js';
4
+ import { BuilderComponentFieldsSerialisedSchema } from './field.js';
5
5
  export class BuilderComponentDetails {
6
- expectations;
7
- constructor(expectations) {
8
- this.expectations = expectations;
6
+ fields;
7
+ constructor(fields) {
8
+ this.fields = fields;
9
9
  }
10
10
  }
11
11
  export const BuilderComponentDetailsSchema = v.instance(BuilderComponentDetails);
12
- export const BuilderComponentDetailsSerialisedSchema = serialisable(BuilderComponentDetails, v.object({
13
- expectations: paramable(BuilderExpectationsSerialisedSchema)
12
+ export const BuilderComponentDetailsSerialisedSchema = serialisable(v.object({
13
+ fields: paramable(BuilderComponentFieldsSerialisedSchema)
14
14
  }));
15
- export function componentDetails(expectations) {
16
- return new BuilderComponentDetails((expectations ?? []));
15
+ export function componentDetails(...fields) {
16
+ return new BuilderComponentDetails(fields);
17
17
  }
@@ -1,8 +1,11 @@
1
- import type { BuilderState } from '../builder/index';
1
+ import type { BuilderModelState } from '../model/index';
2
2
  import type { BuilderExpectations } from '../expectation';
3
3
  import type { BuilderComponent } from './component';
4
4
  import { BuilderExpectation } from '../expectation.js';
5
5
  export declare function componentExpectation<const Name extends string>(name: Name): BuilderExpectation<Name, never, "component">;
6
- export declare function detailExpectation<const Name extends string>(name: Name): BuilderExpectation<Name, string, "detail">;
7
- export type ComponentsExpected<Expectations extends BuilderExpectations> = Expectations extends readonly [infer Head, ...infer Tail extends BuilderExpectations] ? Head extends BuilderExpectation<infer Name, any, 'component'> ? [BuilderComponent<Name>, ...ComponentsExpected<Tail>] : ComponentsExpected<Tail> : [];
8
- export type ComponentAsserted<State extends BuilderState, Expectations extends BuilderExpectations, Current extends State['components'] = State['components'], Asserted extends ComponentsExpected<Expectations> = ComponentsExpected<Expectations>> = Current extends [] ? ComponentsExpected<Expectations> : number extends Asserted['length'] ? Asserted : [...Current, ...Asserted];
6
+ export type ComponentAsserted<State extends BuilderModelState, Expectations extends BuilderExpectations, Current extends State['components'] = State['components'], Asserted extends ComponentsExpected<Expectations> = ComponentsExpected<Expectations>> = Current extends [] ? ComponentsExpected<Expectations> : number extends Asserted['length'] ? Asserted : [...Current, ...Asserted];
7
+ type ComponentsExpected<Expectations extends BuilderExpectations> = Expectations extends readonly [
8
+ infer Head,
9
+ ...infer Tail extends BuilderExpectations
10
+ ] ? Head extends BuilderExpectation<infer Name, any, 'component'> ? [BuilderComponent<Name>, ...ComponentsExpected<Tail>] : ComponentsExpected<Tail> : [];
11
+ export {};
@@ -2,6 +2,3 @@ import { BuilderExpectation } from '../expectation.js';
2
2
  export function componentExpectation(name) {
3
3
  return new BuilderExpectation(name, 'component');
4
4
  }
5
- export function detailExpectation(name) {
6
- return new BuilderExpectation(name, 'detail');
7
- }
@@ -0,0 +1,50 @@
1
+ import type { BuilderPrimitive } from '../../primitive';
2
+ import * as v from 'valibot';
3
+ export declare const BuilderComponentFieldValueTypeSchema: v.PicklistSchema<["string", "boolean", "number"], undefined>;
4
+ export type BuilderComponentFieldValueType = v.InferOutput<typeof BuilderComponentFieldValueTypeSchema>;
5
+ export declare class BuilderComponentField<const Name extends string = string, const ValueSchema extends v.GenericSchema<BuilderPrimitive> = v.GenericSchema<BuilderPrimitive>> {
6
+ readonly value: v.InferOutput<ValueSchema>;
7
+ readonly type: "component-field";
8
+ readonly name: Name;
9
+ readonly valueType: BuilderComponentFieldValueType;
10
+ readonly valueSchema: ValueSchema;
11
+ readonly isOptional: boolean;
12
+ constructor(name: Name, valueType: BuilderComponentFieldValueType, optional?: boolean);
13
+ optional(): BuilderComponentField<Name, v.NullableSchema<ValueSchema, undefined>>;
14
+ }
15
+ export declare function detailString<const Name extends string>(name: Name): BuilderComponentField<Name, v.StringSchema<undefined>>;
16
+ export declare function detailNumber<const Name extends string>(name: Name): BuilderComponentField<Name, v.NumberSchema<undefined>>;
17
+ export declare function detailBoolean<const Name extends string>(name: Name): BuilderComponentField<Name, v.BooleanSchema<undefined>>;
18
+ export declare const BuilderComponentFieldSchema: v.InstanceSchema<typeof BuilderComponentField, undefined>;
19
+ export declare const BuilderComponentFieldsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.InstanceSchema<typeof BuilderComponentField, undefined>, undefined>, v.ReadonlyAction<BuilderComponentField<string, v.GenericSchema<string | number | boolean | null>>[]>]>;
20
+ export type BuilderComponentFields = v.InferOutput<typeof BuilderComponentFieldsSchema>;
21
+ export declare const BuilderComponentFieldSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
22
+ readonly type: v.LiteralSchema<"component-field", undefined>;
23
+ readonly name: v.StringSchema<undefined>;
24
+ readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
25
+ readonly isOptional: v.BooleanSchema<undefined>;
26
+ }, undefined>, v.ReadonlyAction<{
27
+ type: "component-field";
28
+ name: string;
29
+ valueType: "string" | "number" | "boolean";
30
+ isOptional: boolean;
31
+ }>]>;
32
+ export type BuilderComponentFieldSerialised = v.InferOutput<typeof BuilderComponentFieldSerialisedSchema>;
33
+ export declare const BuilderComponentFieldsSerialisedSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
34
+ readonly type: v.LiteralSchema<"component-field", undefined>;
35
+ readonly name: v.StringSchema<undefined>;
36
+ readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
37
+ readonly isOptional: v.BooleanSchema<undefined>;
38
+ }, undefined>, v.ReadonlyAction<{
39
+ type: "component-field";
40
+ name: string;
41
+ valueType: "string" | "number" | "boolean";
42
+ isOptional: boolean;
43
+ }>]>, undefined>, v.ReadonlyAction<Readonly<{
44
+ type: "component-field";
45
+ name: string;
46
+ valueType: "string" | "number" | "boolean";
47
+ isOptional: boolean;
48
+ }>[]>]>;
49
+ export type BuilderComponentFieldsSerialised = v.InferOutput<typeof BuilderComponentFieldsSerialisedSchema>;
50
+ export declare function detailValueSchema(valueType: BuilderComponentFieldValueType, optional: boolean): v.GenericSchema<BuilderPrimitive>;
@@ -0,0 +1,41 @@
1
+ import * as v from 'valibot';
2
+ import { serialisable } from '../../serialisable.js';
3
+ export const BuilderComponentFieldValueTypeSchema = v.picklist(['string', 'boolean', 'number']);
4
+ export class BuilderComponentField {
5
+ type = 'component-field';
6
+ name;
7
+ valueType;
8
+ valueSchema;
9
+ isOptional;
10
+ constructor(name, valueType, optional = false) {
11
+ this.name = name;
12
+ this.valueType = valueType;
13
+ this.valueSchema = detailValueSchema(valueType, optional);
14
+ this.isOptional = optional;
15
+ }
16
+ optional() {
17
+ return new BuilderComponentField(this.name, this.valueType, true);
18
+ }
19
+ }
20
+ export function detailString(name) {
21
+ return new BuilderComponentField(name, 'string');
22
+ }
23
+ export function detailNumber(name) {
24
+ return new BuilderComponentField(name, 'number');
25
+ }
26
+ export function detailBoolean(name) {
27
+ return new BuilderComponentField(name, 'boolean');
28
+ }
29
+ export const BuilderComponentFieldSchema = v.instance(BuilderComponentField);
30
+ export const BuilderComponentFieldsSchema = v.pipe(v.array(BuilderComponentFieldSchema), v.readonly());
31
+ export const BuilderComponentFieldSerialisedSchema = serialisable(v.object({
32
+ type: v.literal('component-field'),
33
+ name: v.string(),
34
+ valueType: BuilderComponentFieldValueTypeSchema,
35
+ isOptional: v.boolean()
36
+ }));
37
+ export const BuilderComponentFieldsSerialisedSchema = v.pipe(v.array(BuilderComponentFieldSerialisedSchema), v.readonly());
38
+ export function detailValueSchema(valueType, optional) {
39
+ const baseSchema = valueType === 'string' ? v.string() : valueType === 'boolean' ? v.boolean() : v.number();
40
+ return optional ? v.nullable(baseSchema) : baseSchema;
41
+ }
@@ -1,8 +1,10 @@
1
1
  export type { BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhenSerialised } from './component';
2
2
  export type { BuilderComponentDetailsSerialised } from './details';
3
- export type { ComponentAsserted, ComponentsExpected } from './expectation';
3
+ export type { ComponentAsserted } from './expectation';
4
+ export type { BuilderComponentFields, BuilderComponentFieldsSerialised, BuilderComponentFieldSerialised, BuilderComponentFieldValueType } from './field';
4
5
  export type { BuilderComponentWhen } from './when';
5
6
  export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema } from './component.js';
6
7
  export { BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, componentDetails } from './details.js';
7
- export { componentExpectation, detailExpectation } from './expectation.js';
8
+ export { componentExpectation } from './expectation.js';
9
+ export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
8
10
  export { componentWhen } from './when.js';
@@ -1,4 +1,5 @@
1
1
  export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema } from './component.js';
2
2
  export { BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, componentDetails } from './details.js';
3
- export { componentExpectation, detailExpectation } from './expectation.js';
3
+ export { componentExpectation } from './expectation.js';
4
+ export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
4
5
  export { componentWhen } from './when.js';
@@ -3,7 +3,7 @@ import type { BuilderPrimitives } from '../../primitive';
3
3
  import type { Paramable } from '../../references';
4
4
  import type { BuilderEnableConfig, BuilderMatchConfig, BuilderMatchSelectMap, BuilderUnlessConfig, BuilderWhen } from '../when';
5
5
  import type { BuilderComponentDetails } from './details';
6
- export type BuilderComponentWhen = BuilderWhen<Paramable<BuilderComponentDetails>>;
6
+ export type BuilderComponentWhen = BuilderWhen<Paramable<BuilderComponentDetails>, Paramable<BuilderPath>, Paramable<Record<string, Paramable<BuilderComponentDetails> | null>>, Paramable<BuilderPath>>;
7
7
  export declare const componentWhen: {
8
8
  enable: <const Payload extends Paramable<BuilderComponentDetails>>(payload?: Payload) => BuilderEnableConfig<Payload>;
9
9
  match: <const Payload extends Paramable<BuilderComponentDetails>, const MatchPath extends Paramable<BuilderPath>, const SelectMap extends Paramable<BuilderMatchSelectMap<Paramable<BuilderComponentDetails>>>>(matchPath: MatchPath, selectMap: SelectMap) => BuilderMatchConfig<Payload, MatchPath, SelectMap>;
@@ -5,7 +5,7 @@ export const componentWhen = {
5
5
  enable: (payload) => {
6
6
  return {
7
7
  type: 'enable',
8
- payload: (payload ?? componentDetails([]))
8
+ payload: (payload ?? componentDetails())
9
9
  };
10
10
  },
11
11
  match: baseFactories.match,
@@ -14,7 +14,7 @@ export const componentWhen = {
14
14
  type: 'unless',
15
15
  unlessPath,
16
16
  disabledValues,
17
- payload: (payload ?? componentDetails([]))
17
+ payload: (payload ?? componentDetails())
18
18
  };
19
19
  }
20
20
  };
@@ -0,0 +1,4 @@
1
+ import type { BuilderCollectionSerialised } from './collection/index';
2
+ import type { BuilderComponentSerialised } from './component/index';
3
+ import type { BuilderOptionSerialised } from './option/index';
4
+ export type BuilderModelEntrySerialised = BuilderOptionSerialised | BuilderComponentSerialised | BuilderCollectionSerialised;
@@ -1,44 +1,32 @@
1
1
  import * as v from 'valibot';
2
- export declare const BuilderExpectationKindSchema: v.PicklistSchema<["option", "component", "collection", "detail"], undefined>;
2
+ export declare const BuilderExpectationKindSchema: v.PicklistSchema<["option", "component", "collection"], undefined>;
3
3
  export type BuilderExpectationKind = v.InferOutput<typeof BuilderExpectationKindSchema>;
4
4
  export declare class BuilderExpectation<Name extends string = string, Value = unknown, Kind extends BuilderExpectationKind = BuilderExpectationKind> {
5
5
  readonly type: 'expectation';
6
- readonly _value: Value;
6
+ readonly value: Value;
7
7
  readonly name: Name;
8
8
  readonly kind: Kind;
9
9
  constructor(name: Name, kind: Kind);
10
10
  }
11
11
  export declare const BuilderExpectationSchema: v.InstanceSchema<typeof BuilderExpectation, undefined>;
12
- export declare const BuilderExpectationsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.InstanceSchema<typeof BuilderExpectation, undefined>, undefined>, v.ReadonlyAction<BuilderExpectation<string, unknown, "option" | "component" | "collection" | "detail">[]>]>;
12
+ export declare const BuilderExpectationsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.InstanceSchema<typeof BuilderExpectation, undefined>, undefined>, v.ReadonlyAction<BuilderExpectation<string, unknown, "option" | "component" | "collection">[]>]>;
13
13
  export type BuilderExpectations = v.InferOutput<typeof BuilderExpectationsSchema>;
14
14
  export declare const BuilderExpectationSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
15
15
  readonly name: v.StringSchema<undefined>;
16
- readonly kind: v.PicklistSchema<["option", "component", "collection", "detail"], undefined>;
17
- }, undefined>, v.MetadataAction<{
16
+ readonly kind: v.PicklistSchema<["option", "component", "collection"], undefined>;
17
+ }, undefined>, v.ReadonlyAction<{
18
18
  name: string;
19
- kind: "option" | "component" | "collection" | "detail";
20
- }, {
21
- readonly serialisable: typeof BuilderExpectation;
22
- readonly instance: v.InstanceSchema<typeof BuilderExpectation, undefined>;
23
- }>, v.ReadonlyAction<{
24
- name: string;
25
- kind: "option" | "component" | "collection" | "detail";
19
+ kind: "option" | "component" | "collection";
26
20
  }>]>;
27
21
  export type BuilderExpectationSerialised = v.InferOutput<typeof BuilderExpectationSerialisedSchema>;
28
22
  export declare const BuilderExpectationsSerialisedSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
29
23
  readonly name: v.StringSchema<undefined>;
30
- readonly kind: v.PicklistSchema<["option", "component", "collection", "detail"], undefined>;
31
- }, undefined>, v.MetadataAction<{
32
- name: string;
33
- kind: "option" | "component" | "collection" | "detail";
34
- }, {
35
- readonly serialisable: typeof BuilderExpectation;
36
- readonly instance: v.InstanceSchema<typeof BuilderExpectation, undefined>;
37
- }>, v.ReadonlyAction<{
24
+ readonly kind: v.PicklistSchema<["option", "component", "collection"], undefined>;
25
+ }, undefined>, v.ReadonlyAction<{
38
26
  name: string;
39
- kind: "option" | "component" | "collection" | "detail";
27
+ kind: "option" | "component" | "collection";
40
28
  }>]>, undefined>, v.ReadonlyAction<Readonly<{
41
29
  name: string;
42
- kind: "option" | "component" | "collection" | "detail";
30
+ kind: "option" | "component" | "collection";
43
31
  }>[]>]>;
44
32
  export type BuilderExpectationsSerialised = v.InferOutput<typeof BuilderExpectationsSerialisedSchema>;
@@ -1,11 +1,6 @@
1
1
  import * as v from 'valibot';
2
2
  import { serialisable } from '../serialisable.js';
3
- export const BuilderExpectationKindSchema = v.picklist([
4
- 'option',
5
- 'component',
6
- 'collection',
7
- 'detail'
8
- ]);
3
+ export const BuilderExpectationKindSchema = v.picklist(['option', 'component', 'collection']);
9
4
  export class BuilderExpectation {
10
5
  name;
11
6
  kind;
@@ -16,7 +11,7 @@ export class BuilderExpectation {
16
11
  }
17
12
  export const BuilderExpectationSchema = v.instance(BuilderExpectation);
18
13
  export const BuilderExpectationsSchema = v.pipe(v.array(BuilderExpectationSchema), v.readonly());
19
- export const BuilderExpectationSerialisedSchema = serialisable(BuilderExpectation, v.object({
14
+ export const BuilderExpectationSerialisedSchema = serialisable(v.object({
20
15
  name: v.string(),
21
16
  kind: BuilderExpectationKindSchema
22
17
  }));
@@ -1,20 +1,23 @@
1
- export type { BuilderGeneric, BuilderInstanceOf, BuilderPart, BuilderParts, BuilderSerialised, BuilderState, BuilderStateAppend, BuilderStateEmpty, BuilderStateOf } from './builder/index';
2
- export type { BuilderCollectionConfigSerialised, BuilderCollectionPayload, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, BuilderErrorInvalidCollectionBounds, CollectionNamesOf, CollectionShape } from './collection/index';
3
- export type { BuilderComponentDetailsSerialised, BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhen, BuilderComponentWhenSerialised } from './component/index';
4
- export type { BuilderErrorDuplicateName, BuilderErrorInvalidGatePath, BuilderErrorUnboundParameter, BuilderErrorUnmetExpectation } from './errors';
5
- export type { BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionValues, BuilderOptionValuesSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderSelectTypeLabels, BuilderSelectTypeSerialised, BuilderSelectTypeValues, BuilderToggleTypeSerialised, BuilderToggleValueType } from './option/index';
6
- export type { BuilderDescription, BuilderDescriptionItem, BuilderErrorPagesUnknownCollection, BuilderUIDescribeSerialised, BuilderUIGeneric, BuilderUIItem, BuilderUIItems, BuilderUIItemSerialised, BuilderUIItemsSerialised, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIPart, BuilderUIParts, BuilderUISerialised } from './ui/index';
1
+ export type { BuilderBindings, BuilderBindingsSerialised, BuilderSerialised } from './builder/index';
2
+ export type { BuilderCollectionConfigSerialised, BuilderCollectionPayload, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, CollectionNamesOf, CollectionShape } from './collection/index';
3
+ export type { BuilderComponentDetailsSerialised, BuilderComponentFields, BuilderComponentFieldSerialised, BuilderComponentFieldsSerialised, BuilderComponentFieldValueType, BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhen, BuilderComponentWhenSerialised } from './component/index';
7
4
  export type { BuilderExpectationKind, BuilderExpectations, BuilderExpectationSerialised, BuilderExpectationsSerialised } from './expectation';
8
- export type { BuilderWhen, BuilderWhenConfig, WhenSerialised } from './when';
9
- export type { BuilderCollectionConfigValidated, BuilderCollectionsValidated, BuilderCollectionValidated, BuilderComponentDetailsValidated, BuilderComponentsValidated, BuilderComponentValidated, BuilderOptionsValidated, BuilderOptionValidated, BuilderUIItemsValidated, BuilderUIItemValidated, BuilderUIValidated, BuilderValidated, Strip, StripTuple } from './validate';
10
- export { Builder, builders, BuilderSchema, BuilderSerialisedSchema, mergeBuilderParts } from './builder/index.js';
5
+ export type { BuilderEntityKind, BuilderEntitySerialised } from './kind.js';
6
+ export type { BuilderModelEntrySerialised } from './entry';
7
+ export type { BuilderInstanceOf, BuilderModelGeneric, BuilderModels, BuilderModelSerialised, BuilderModelState, BuilderModelStateEmpty, BuilderModelStateOf } from './model/index';
8
+ export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
9
+ export type { BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionValues, BuilderOptionValuesSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderSelectTypeLabels, BuilderSelectTypeSerialised, BuilderSelectTypeValues, BuilderToggleTypeSerialised, BuilderToggleValueType } from './option/index';
10
+ export type { BuilderRefEntities, BuilderRefEntity } from './refs.js';
11
+ export type { BuilderDescription, BuilderDescriptionItem, BuilderUIDescribeSerialised, BuilderUIItem, BuilderUIItems, BuilderUIItemSerialised, BuilderUIItemsSerialised, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIs, BuilderUIsSerialised, BuilderUISerialised } from './ui/index';
12
+ export type { BuilderCollectionConfigValidated, BuilderCollectionsValidated, BuilderCollectionValidated, BuilderComponentsValidated, BuilderComponentValidated, BuilderComponentVariantsValidated, BuilderInstancesValidated, BuilderInstanceValidated, BuilderModelValidated, BuilderOptionsValidated, BuilderOptionValidated, BuilderUIDescribeValidated, BuilderUIItemsValidated, BuilderUIPageValidated, BuilderUIValidated, BuilderValidated } from './validated';
13
+ export type { BuilderEnableConfig, BuilderMatchConfig, BuilderMatchSelectMap, BuilderUnlessConfig, BuilderWhen, BuilderWhenConfig, BuilderWhenSerialised } from './when';
14
+ export { Builder, builder, BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
11
15
  export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen } from './collection/index.js';
12
- export { BuilderComponent, BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentDetails, componentExpectation, componentWhen, detailExpectation } from './component/index.js';
13
- export type { BuilderEntity, BuilderEntityKind } from './kind.js';
14
- export { BuilderEntityKindSchema, BuilderEntitySchema } from './kind.js';
15
- export { deserialise, entitiesByKind, serialise } from './serialise.js';
16
- export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
17
- export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema } from './expectation.js';
16
+ export { BuilderComponent, BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentDetails, componentExpectation, componentWhen, detailBoolean, detailNumber, detailString, detailValueSchema } from './component/index.js';
18
17
  export { parameter, ref } from '../references.js';
19
- export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
20
- export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPages, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, mergeUIParts, uis } from './ui/index.js';
18
+ export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema } from './expectation.js';
19
+ export { BuilderEntityKindSchema, BuilderEntitySerialisedSchema } from './kind.js';
20
+ export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
21
+ export { serialise } from './serialise.js';
22
+ export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, uis } from './ui/index.js';
23
+ export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
@@ -1,10 +1,11 @@
1
- export { Builder, builders, BuilderSchema, BuilderSerialisedSchema, mergeBuilderParts } from './builder/index.js';
1
+ export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
2
+ export { Builder, builder, BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
2
3
  export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen } from './collection/index.js';
3
- export { BuilderComponent, BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentDetails, componentExpectation, componentWhen, detailExpectation } from './component/index.js';
4
- export { BuilderEntityKindSchema, BuilderEntitySchema } from './kind.js';
5
- export { deserialise, entitiesByKind, serialise } from './serialise.js';
6
- export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
7
- export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema } from './expectation.js';
4
+ export { BuilderComponent, BuilderComponentDetails, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentDetails, componentExpectation, componentWhen, detailBoolean, detailNumber, detailString, detailValueSchema } from './component/index.js';
8
5
  export { parameter, ref } from '../references.js';
9
- export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
10
- export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPages, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, mergeUIParts, uis } from './ui/index.js';
6
+ export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema } from './expectation.js';
7
+ export { BuilderEntityKindSchema, BuilderEntitySerialisedSchema } from './kind.js';
8
+ export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
9
+ export { serialise } from './serialise.js';
10
+ export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, uis } from './ui/index.js';
11
+ export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
@@ -1,6 +1,9 @@
1
+ import type { EntitiesMap } from './serialise';
1
2
  import * as v from 'valibot';
2
- import { entitiesByKind } from './serialise.js';
3
- export type BuilderEntityKind = keyof typeof entitiesByKind;
4
- export declare const BuilderEntityKindSchema: v.PicklistSchema<readonly ("string" | "number" | "boolean" | "select" | "toggle" | "builder" | "expectations" | "paths" | "ui" | "uiPage" | "uiDescribe" | "uiPages" | "componentDetails" | "collectionConfig" | "uiItems" | "optionWhen" | "componentWhen" | "collectionWhen" | "optionSelectMap" | "componentSelectMap" | "collectionSelectMap" | "path")[], undefined>;
5
- export declare const BuilderEntitySchema: v.UnionSchema<v.GenericSchema[], undefined>;
6
- export type BuilderEntity = v.InferOutput<typeof BuilderEntitySchema>;
3
+ import { entitiesMap } from './serialise.js';
4
+ export type BuilderEntityKind = keyof typeof entitiesMap;
5
+ export declare const BuilderEntityKindSchema: v.PicklistSchema<readonly ("string" | "number" | "boolean" | "builder" | "model" | "ui" | "select" | "toggle" | "paths" | "expectations" | "uiPage" | "uiDescribe" | "uiPages" | "componentDetails" | "collectionConfig" | "uiItems" | "optionWhen" | "componentWhen" | "collectionWhen" | "optionSelectMap" | "componentSelectMap" | "collectionSelectMap" | "path")[], undefined>;
6
+ export type BuilderEntitySerialised = {
7
+ [Kind in keyof EntitiesMap]: v.InferOutput<EntitiesMap[Kind]['serialised']>;
8
+ }[keyof EntitiesMap];
9
+ export declare const BuilderEntitySerialisedSchema: v.GenericSchema<BuilderEntitySerialised>;
@@ -1,6 +1,5 @@
1
1
  import * as v from 'valibot';
2
- import { entitiesByKind } from './serialise.js';
3
- const builderEntityKinds = Object.keys(entitiesByKind);
2
+ import { entitiesMap } from './serialise.js';
3
+ const builderEntityKinds = Object.keys(entitiesMap);
4
4
  export const BuilderEntityKindSchema = v.picklist(builderEntityKinds);
5
- const builderEntitySchemasByKind = Object.fromEntries(builderEntityKinds.map((kind) => [kind, entitiesByKind[kind].serialised]));
6
- export const BuilderEntitySchema = v.union(builderEntityKinds.map((kind) => builderEntitySchemasByKind[kind]));
5
+ export const BuilderEntitySerialisedSchema = v.union(builderEntityKinds.map((kind) => entitiesMap[kind].serialised));