@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
@@ -1,7 +1,4 @@
1
- export type { BuilderGeneric, BuilderInstanceOf, BuilderPart, BuilderParts, BuilderSerialised, BuilderStateOf } from './builder';
2
- export type { BuilderStateAsserted, ModelAsserted, ModelExpected } from './expectation';
3
- export type { BindingModelType, BuilderBindings, BuilderBoundState } from './bind';
4
- export type { BuilderState, BuilderStateAppend, BuilderStateEmpty } from './state';
1
+ export type { BuilderBindings, BuilderBindingsSerialised } from './bind';
2
+ export type { BuilderSerialised } from './builder';
5
3
  export { Builder, BuilderSchema, BuilderSerialisedSchema } from './builder.js';
6
- export { builders, mergeBuilderParts } from './builders.js';
7
- export { bindBuilder } from './bind.js';
4
+ export { builder } from './factory.js';
@@ -1,3 +1,2 @@
1
1
  export { Builder, BuilderSchema, BuilderSerialisedSchema } from './builder.js';
2
- export { builders, mergeBuilderParts } from './builders.js';
3
- export { bindBuilder } from './bind.js';
2
+ export { builder } from './factory.js';
@@ -1,38 +1,88 @@
1
1
  import type { BuilderPaths } from '../../paths';
2
2
  import type { Paramable, ParamableSerialised } from '../../references';
3
- import type { BuilderState } from '../builder/index';
4
- import type { BuilderWhen, WhenSerialised } from '../when';
5
- import type { BuilderCollectionConfigSerialised } from './config';
3
+ import type { BuilderModelState } from '../model/index';
4
+ import type { BuilderWhenSerialised } from '../when';
5
+ import type { BuilderCollectionConfig, BuilderCollectionConfigSerialised } from './config';
6
+ import type { BuilderCollectionWhen } from './when';
6
7
  import * as v from 'valibot';
7
- import { BuilderCollectionConfig } from './config.js';
8
- export type BuilderErrorInvalidCollectionBounds = {
9
- readonly kind: 'invalid-collection-bounds';
10
- readonly name: string;
11
- readonly min: number;
12
- readonly max: number;
13
- };
14
- export type BuilderCollectionPayload = BuilderCollectionConfig | BuilderWhen<Paramable<BuilderCollectionConfig>>;
15
- export declare class BuilderCollection<const Name extends string = string, const Payload extends Paramable<BuilderCollectionPayload> = Paramable<BuilderCollectionPayload>, const GatePaths extends Paramable<BuilderPaths> = Paramable<BuilderPaths>> {
8
+ export type BuilderCollectionPayload = BuilderCollectionConfig | BuilderCollectionWhen;
9
+ export declare class BuilderCollection<const Name extends string = string, const Payload extends Paramable<BuilderCollectionPayload> = Paramable<BuilderCollectionPayload>, const Paths extends Paramable<BuilderPaths> = Paramable<BuilderPaths>> {
16
10
  readonly type: 'collection';
17
11
  readonly name: Name;
18
12
  readonly payload: Payload;
19
- readonly gatePaths?: GatePaths;
20
- constructor(name: Name, payload: Payload, gatePaths?: GatePaths);
13
+ readonly paths?: Paths;
14
+ constructor(name: Name, payload: Payload, paths?: Paths);
21
15
  }
22
16
  export declare const BuilderCollectionSchema: v.InstanceSchema<typeof BuilderCollection, undefined>;
23
17
  export type BuilderCollections = ReadonlyArray<BuilderCollection>;
24
- export declare const BuilderCollectionWhenSerialisedSchema: v.GenericSchema;
25
- export type BuilderCollectionWhenSerialised = WhenSerialised<BuilderCollectionConfigSerialised>;
26
- export declare const BuilderCollectionSelectMapSerialisedSchema: v.GenericSchema;
18
+ export declare const BuilderCollectionWhenSerialisedSchema: v.GenericSchema<BuilderWhenSerialised<Readonly<{
19
+ model: Readonly<{
20
+ type: "parameter";
21
+ id: string;
22
+ name: string;
23
+ }> | Readonly<{
24
+ type: "ref";
25
+ id: string;
26
+ }> | import("..").BuilderModelSerialised;
27
+ min: number | Readonly<{
28
+ type: "parameter";
29
+ id: string;
30
+ name: string;
31
+ }> | Readonly<{
32
+ type: "ref";
33
+ id: string;
34
+ }>;
35
+ max: number | Readonly<{
36
+ type: "parameter";
37
+ id: string;
38
+ name: string;
39
+ }> | Readonly<{
40
+ type: "ref";
41
+ id: string;
42
+ }>;
43
+ }>>>;
44
+ export type BuilderCollectionWhenSerialised = BuilderWhenSerialised<BuilderCollectionConfigSerialised>;
45
+ export declare const BuilderCollectionSelectMapSerialisedSchema: v.GenericSchema<import("..").BuilderMatchSelectMap<Readonly<{
46
+ type: "parameter";
47
+ id: string;
48
+ name: string;
49
+ }> | Readonly<{
50
+ model: Readonly<{
51
+ type: "parameter";
52
+ id: string;
53
+ name: string;
54
+ }> | Readonly<{
55
+ type: "ref";
56
+ id: string;
57
+ }> | import("..").BuilderModelSerialised;
58
+ min: number | Readonly<{
59
+ type: "parameter";
60
+ id: string;
61
+ name: string;
62
+ }> | Readonly<{
63
+ type: "ref";
64
+ id: string;
65
+ }>;
66
+ max: number | Readonly<{
67
+ type: "parameter";
68
+ id: string;
69
+ name: string;
70
+ }> | Readonly<{
71
+ type: "ref";
72
+ id: string;
73
+ }>;
74
+ }>>>;
27
75
  export type BuilderCollectionSerialised = {
28
76
  readonly name: string;
29
- readonly gatePaths?: ParamableSerialised<BuilderPaths>;
77
+ readonly paths?: ParamableSerialised<BuilderPaths>;
30
78
  readonly payload: ParamableSerialised<BuilderCollectionConfigSerialised | BuilderCollectionWhenSerialised>;
31
79
  };
32
80
  export declare const BuilderCollectionSerialisedSchema: v.GenericSchema<BuilderCollectionSerialised>;
33
81
  export declare const BuilderCollectionsSerialisedSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.GenericSchema<BuilderCollectionSerialised>, undefined>, v.ReadonlyAction<BuilderCollectionSerialised[]>]>;
34
82
  export type BuilderCollectionsSerialised = ReadonlyArray<BuilderCollectionSerialised>;
35
- export type CollectionNamesOf<State extends BuilderState | null> = [State] extends [BuilderState] ? State['collections'][number]['name'] : never;
83
+ export type CollectionNamesOf<State extends BuilderModelState | null> = [State] extends [
84
+ BuilderModelState
85
+ ] ? State['collections'][number]['name'] : never;
36
86
  export type CollectionShape<Collection extends BuilderCollection, Item> = Collection['payload'] extends BuilderCollectionConfig ? Collection['payload']['min'] extends number ? Collection['payload']['max'] extends number ? number extends Collection['payload']['min'] ? ReadonlyArray<Item> : number extends Collection['payload']['max'] ? ReadonlyArray<Item> : Collection['payload']['min'] extends Collection['payload']['max'] ? CollectionTuple<Item, Collection['payload']['min']> : ReadonlyArray<Item> : ReadonlyArray<Item> : ReadonlyArray<Item> : ReadonlyArray<Item>;
37
87
  type CollectionTuple<Item, Length extends number, Result extends ReadonlyArray<Item> = []> = Result['length'] extends Length ? Result : CollectionTuple<Item, Length, [...Result, Item]>;
38
88
  export {};
@@ -1,43 +1,25 @@
1
1
  import * as v from 'valibot';
2
- import { BuilderException } from '../../exception.js';
3
2
  import { BuilderPathsSchema } from '../../paths.js';
4
- import { isParameter, paramable } from '../../references.js';
3
+ import { paramable } from '../../references.js';
5
4
  import { serialisable } from '../../serialisable.js';
6
5
  import { createSelectMapSerialisedSchema, createWhenSerialisedSchema } from '../when.js';
7
- import { BuilderCollectionConfig, BuilderCollectionConfigSerialisedSchema } from './config.js';
6
+ import { BuilderCollectionConfigSerialisedSchema } from './config.js';
8
7
  export class BuilderCollection {
9
8
  name;
10
9
  payload;
11
- gatePaths;
12
- constructor(name, payload, gatePaths) {
10
+ paths;
11
+ constructor(name, payload, paths) {
13
12
  this.name = name;
14
13
  this.payload = payload;
15
- this.gatePaths = gatePaths;
16
- validateCollectionBounds(name, payload);
17
- }
18
- }
19
- function validateCollectionBounds(name, payload) {
20
- if (!(payload instanceof BuilderCollectionConfig)) {
21
- return;
22
- }
23
- const { min, max } = payload;
24
- if (isParameter(min) || isParameter(max)) {
25
- return;
26
- }
27
- const minValue = min;
28
- const maxValue = max;
29
- if (minValue < 0 || maxValue <= 0 || maxValue < minValue) {
30
- throw new BuilderException([
31
- { kind: 'invalid-collection-bounds', name, min: minValue, max: maxValue }
32
- ]);
14
+ this.paths = paths;
33
15
  }
34
16
  }
35
17
  export const BuilderCollectionSchema = v.instance(BuilderCollection);
36
18
  export const BuilderCollectionWhenSerialisedSchema = createWhenSerialisedSchema(BuilderCollectionConfigSerialisedSchema);
37
19
  export const BuilderCollectionSelectMapSerialisedSchema = createSelectMapSerialisedSchema(BuilderCollectionConfigSerialisedSchema);
38
- export const BuilderCollectionSerialisedSchema = serialisable(BuilderCollection, v.object({
20
+ export const BuilderCollectionSerialisedSchema = serialisable(v.object({
39
21
  name: v.string(),
40
22
  payload: paramable(v.union([BuilderCollectionConfigSerialisedSchema, BuilderCollectionWhenSerialisedSchema])),
41
- gatePaths: v.optional(paramable(BuilderPathsSchema))
23
+ paths: v.optional(paramable(BuilderPathsSchema))
42
24
  }));
43
25
  export const BuilderCollectionsSerialisedSchema = v.pipe(v.array(BuilderCollectionSerialisedSchema), v.readonly());