@builder-builder/builder 0.0.9 → 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 -0
  6. package/dist/entities/builder/builder.d.ts +17 -490
  7. package/dist/entities/builder/builder.js +19 -76
  8. package/dist/entities/builder/factory.d.ts +7 -0
  9. package/dist/entities/builder/factory.js +4 -0
  10. package/dist/entities/builder/index.d.ts +3 -6
  11. package/dist/entities/builder/index.js +1 -2
  12. package/dist/entities/collection/collection.d.ts +71 -20
  13. package/dist/entities/collection/collection.js +10 -27
  14. package/dist/entities/collection/config.d.ts +40 -1049
  15. package/dist/entities/collection/config.js +11 -11
  16. package/dist/entities/collection/expectation.d.ts +8 -4
  17. package/dist/entities/collection/index.d.ts +3 -3
  18. package/dist/entities/collection/index.js +1 -1
  19. package/dist/entities/collection/when.d.ts +6 -5
  20. package/dist/entities/component/component.d.ts +272 -300
  21. package/dist/entities/component/component.js +9 -8
  22. package/dist/entities/component/details.d.ts +35 -60
  23. package/dist/entities/component/details.js +9 -9
  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 +5 -3
  29. package/dist/entities/component/index.js +3 -2
  30. package/dist/entities/component/when.d.ts +5 -5
  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 +21 -16
  36. package/dist/entities/index.js +10 -8
  37. package/dist/entities/kind.d.ts +9 -0
  38. package/dist/entities/kind.js +5 -0
  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 +2 -2
  51. package/dist/entities/option/index.js +2 -2
  52. package/dist/entities/option/option.d.ts +216 -214
  53. package/dist/entities/option/option.js +9 -8
  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 +4 -24
  59. package/dist/entities/option/values.js +10 -4
  60. package/dist/entities/option/when.d.ts +6 -5
  61. package/dist/entities/refs.d.ts +6 -0
  62. package/dist/entities/refs.js +1 -0
  63. package/dist/entities/serialise.d.ts +393 -3568
  64. package/dist/entities/serialise.js +160 -31
  65. package/dist/entities/ui/describe.d.ts +23 -57
  66. package/dist/entities/ui/describe.js +4 -5
  67. package/dist/entities/ui/index.d.ts +4 -9
  68. package/dist/entities/ui/index.js +2 -4
  69. package/dist/entities/ui/page.d.ts +23 -57
  70. package/dist/entities/ui/page.js +4 -5
  71. package/dist/entities/ui/pages.d.ts +18 -403
  72. package/dist/entities/ui/pages.js +7 -7
  73. package/dist/entities/ui/ui.d.ts +22 -1575
  74. package/dist/entities/ui/ui.js +15 -28
  75. package/dist/entities/ui/uis.d.ts +5 -9
  76. package/dist/entities/ui/uis.js +12 -19
  77. package/dist/entities/validated.d.ts +35 -0
  78. package/dist/entities/validated.js +1 -0
  79. package/dist/entities/when.d.ts +79 -70
  80. package/dist/entities/when.js +11 -7
  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 -24
  86. package/dist/index.js +5 -10
  87. package/dist/instance.d.ts +56 -0
  88. package/dist/instance.js +10 -0
  89. package/dist/mappers/index.d.ts +7 -5
  90. package/dist/mappers/index.js +5 -3
  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 +27 -36
  109. package/dist/references.js +19 -12
  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 +12 -9
  133. package/dist/entities/builder/builders.d.ts +0 -20
  134. package/dist/entities/builder/builders.js +0 -18
  135. package/dist/entities/builder/expectation.d.ts +0 -12
  136. package/dist/entities/builder/methods.d.ts +0 -58
  137. package/dist/entities/builder/parameter.d.ts +0 -62
  138. package/dist/entities/builder/parameter.js +0 -18
  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/label.d.ts +0 -18
  143. package/dist/entities/ui/label.js +0 -12
  144. package/dist/entities/ui/parameter.d.ts +0 -7
  145. package/dist/entities/ui/parameter.js +0 -29
  146. package/dist/entities/ui/validate.d.ts +0 -8
  147. package/dist/entities/ui/validate.js +0 -21
  148. package/dist/entities/validate.d.ts +0 -28
  149. package/dist/mappers/assert/builder.d.ts +0 -2
  150. package/dist/mappers/assert/builder.js +0 -46
  151. package/dist/mappers/assert/expectation.d.ts +0 -2
  152. package/dist/mappers/assert/expectation.js +0 -23
  153. package/dist/mappers/assert/index.d.ts +0 -6
  154. package/dist/mappers/assert/index.js +0 -4
  155. package/dist/mappers/assert/model.d.ts +0 -13
  156. package/dist/mappers/assert/model.js +0 -47
  157. package/dist/mappers/assert/models.d.ts +0 -33
  158. package/dist/mappers/assert/models.js +0 -74
  159. package/dist/mappers/assert/ui.d.ts +0 -2
  160. package/dist/mappers/assert/ui.js +0 -22
  161. package/dist/mappers/instance/index.d.ts +0 -1
  162. package/dist/mappers/instance/index.js +0 -1
  163. package/dist/mappers/instance/instance.d.ts +0 -4
  164. package/dist/mappers/instance/instance.js +0 -33
  165. package/dist/mappers/models/component-graph.d.ts +0 -9
  166. package/dist/mappers/models/component-graph.js +0 -51
  167. package/dist/mappers/models/graph.d.ts +0 -12
  168. package/dist/mappers/models/graph.js +0 -17
  169. package/dist/mappers/models/index.d.ts +0 -1
  170. package/dist/mappers/models/index.js +0 -1
  171. package/dist/mappers/models/models.d.ts +0 -3
  172. package/dist/mappers/models/models.js +0 -37
  173. package/dist/mappers/models/option-graph.d.ts +0 -9
  174. package/dist/mappers/order/index.d.ts +0 -2
  175. package/dist/mappers/order/index.js +0 -1
  176. package/dist/mappers/order/order.d.ts +0 -14
  177. package/dist/mappers/order/order.js +0 -31
  178. package/dist/model.d.ts +0 -14
  179. package/dist/walker/index.d.ts +0 -2
  180. package/dist/walker/index.js +0 -1
  181. package/dist/walker/walkable.d.ts +0 -4
  182. package/dist/walker/walkable.js +0 -4
  183. package/dist/walker/walker.d.ts +0 -18
  184. package/dist/walker/walker.js +0 -103
  185. package/dist/walker/walkers.d.ts +0 -8
  186. package/dist/walker/walkers.js +0 -51
  187. /package/dist/entities/builder/{expectation.js → bind.js} +0 -0
  188. /package/dist/entities/{builder/state.js → entry.js} +0 -0
  189. /package/dist/entities/{errors.js → model/bind.js} +0 -0
  190. /package/dist/entities/{validate.js → model/expectation.js} +0 -0
  191. /package/dist/{model.js → entities/model/state.js} +0 -0
@@ -22,18 +22,11 @@ export declare const BuilderToggleTypeSerialisedSchema: v.SchemaWithPipe<readonl
22
22
  readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
23
23
  readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
24
24
  readonly isOptional: v.BooleanSchema<undefined>;
25
- }, undefined>, v.MetadataAction<{
26
- type: "toggle";
27
- valueType: "string" | "number" | "boolean";
28
- defaultValue: string | number | boolean | null;
29
- isOptional: boolean;
30
- }, {
31
- readonly serialisable: typeof BuilderToggleType;
32
- readonly instance: v.InstanceSchema<typeof BuilderToggleType, undefined>;
33
- }>, v.ReadonlyAction<{
25
+ }, undefined>, v.ReadonlyAction<{
34
26
  type: "toggle";
35
27
  valueType: "string" | "number" | "boolean";
36
28
  defaultValue: string | number | boolean | null;
37
29
  isOptional: boolean;
38
30
  }>]>;
39
31
  export type BuilderToggleTypeSerialised = v.InferOutput<typeof BuilderToggleTypeSerialisedSchema>;
32
+ export declare function toggleValueSchema(valueType: BuilderToggleValueType, optional: boolean): v.GenericSchema;
@@ -9,7 +9,7 @@ export class BuilderToggleType {
9
9
  isOptional;
10
10
  constructor(valueType, defaultValue, optional) {
11
11
  this.valueType = valueType;
12
- this.valueSchema = deriveToggleValueSchema(valueType, optional || false);
12
+ this.valueSchema = toggleValueSchema(valueType, optional || false);
13
13
  this.defaultValue = defaultValue;
14
14
  this.isOptional = optional || false;
15
15
  }
@@ -30,13 +30,13 @@ export function toggleNumber() {
30
30
  return new BuilderToggleType('number', 0);
31
31
  }
32
32
  export const BuilderToggleTypeSchema = v.instance(BuilderToggleType);
33
- export const BuilderToggleTypeSerialisedSchema = serialisable(BuilderToggleType, v.object({
33
+ export const BuilderToggleTypeSerialisedSchema = serialisable(v.object({
34
34
  type: v.literal('toggle'),
35
35
  valueType: BuilderToggleValueTypeSchema,
36
36
  defaultValue: v.nullable(v.union([v.boolean(), v.string(), v.number()])),
37
37
  isOptional: v.boolean()
38
38
  }));
39
- function deriveToggleValueSchema(valueType, optional) {
39
+ export function toggleValueSchema(valueType, optional) {
40
40
  const baseSchema = valueType === 'string' ? v.string() : valueType === 'boolean' ? v.boolean() : v.number();
41
41
  return optional ? v.nullable(baseSchema) : baseSchema;
42
42
  }
@@ -1,7 +1,5 @@
1
1
  import * as v from 'valibot';
2
- import { BuilderSelectType } from './select.js';
3
- import { BuilderToggleType } from './toggle.js';
4
- export declare const BuilderOptionValuesSchema: v.UnionSchema<[v.InstanceSchema<typeof BuilderSelectType, undefined>, v.InstanceSchema<typeof BuilderToggleType, undefined>], undefined>;
2
+ export declare const BuilderOptionValuesSchema: v.UnionSchema<[v.InstanceSchema<typeof import("./select.js").BuilderSelectType, undefined>, v.InstanceSchema<typeof import("./toggle.js").BuilderToggleType, undefined>], undefined>;
5
3
  export type BuilderOptionValues = v.InferOutput<typeof BuilderOptionValuesSchema>;
6
4
  export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<readonly [v.VariantSchema<"type", [v.SchemaWithPipe<readonly [v.ObjectSchema<{
7
5
  readonly type: v.LiteralSchema<"select", undefined>;
@@ -9,18 +7,7 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
9
7
  readonly defaultValue: v.NullableSchema<v.StringSchema<undefined>, undefined>;
10
8
  readonly isOptional: v.BooleanSchema<undefined>;
11
9
  readonly optionLabels: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
12
- }, undefined>, v.MetadataAction<{
13
- type: "select";
14
- readonly options: readonly [string, ...string[]];
15
- defaultValue: string | null;
16
- isOptional: boolean;
17
- optionLabels: {
18
- [x: string]: string;
19
- };
20
- }, {
21
- readonly serialisable: typeof BuilderSelectType;
22
- readonly instance: v.InstanceSchema<typeof BuilderSelectType, undefined>;
23
- }>, v.ReadonlyAction<{
10
+ }, undefined>, v.ReadonlyAction<{
24
11
  type: "select";
25
12
  readonly options: readonly [string, ...string[]];
26
13
  defaultValue: string | null;
@@ -33,15 +20,7 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
33
20
  readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
34
21
  readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
35
22
  readonly isOptional: v.BooleanSchema<undefined>;
36
- }, undefined>, v.MetadataAction<{
37
- type: "toggle";
38
- valueType: "string" | "number" | "boolean";
39
- defaultValue: string | number | boolean | null;
40
- isOptional: boolean;
41
- }, {
42
- readonly serialisable: typeof BuilderToggleType;
43
- readonly instance: v.InstanceSchema<typeof BuilderToggleType, undefined>;
44
- }>, v.ReadonlyAction<{
23
+ }, undefined>, v.ReadonlyAction<{
45
24
  type: "toggle";
46
25
  valueType: "string" | "number" | "boolean";
47
26
  defaultValue: string | number | boolean | null;
@@ -61,3 +40,4 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
61
40
  isOptional: boolean;
62
41
  }>>]>;
63
42
  export type BuilderOptionValuesSerialised = v.InferOutput<typeof BuilderOptionValuesSerialisedSchema>;
43
+ export declare function optionValueSchema(payload: BuilderOptionValuesSerialised): v.GenericSchema;
@@ -1,8 +1,14 @@
1
1
  import * as v from 'valibot';
2
- import { BuilderSelectType, BuilderSelectTypeSerialisedSchema } from './select.js';
3
- import { BuilderToggleType, BuilderToggleTypeSerialisedSchema } from './toggle.js';
2
+ import { BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, selectValueSchema } from './select.js';
3
+ import { BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, toggleValueSchema } from './toggle.js';
4
4
  export const BuilderOptionValuesSchema = v.union([
5
- v.instance(BuilderSelectType),
6
- v.instance(BuilderToggleType)
5
+ BuilderSelectTypeSchema,
6
+ BuilderToggleTypeSchema
7
7
  ]);
8
8
  export const BuilderOptionValuesSerialisedSchema = v.pipe(v.variant('type', [BuilderSelectTypeSerialisedSchema, BuilderToggleTypeSerialisedSchema]), v.readonly());
9
+ export function optionValueSchema(payload) {
10
+ if (payload.type === 'select') {
11
+ return selectValueSchema(payload.options, payload.isOptional);
12
+ }
13
+ return toggleValueSchema(payload.valueType, payload.isOptional);
14
+ }
@@ -1,9 +1,10 @@
1
- import type { Refable } from '../../references';
1
+ import type { BuilderPath } from '../../paths';
2
+ import type { Paramable } from '../../references';
2
3
  import type { BuilderWhen } from '../when';
3
4
  import type { BuilderOptionValues } from './values';
4
- export type BuilderOptionWhen = BuilderWhen<Refable<BuilderOptionValues>>;
5
+ export type BuilderOptionWhen = BuilderWhen<Paramable<BuilderOptionValues>, Paramable<BuilderPath>, Paramable<Record<string, Paramable<BuilderOptionValues> | null>>, Paramable<BuilderPath>>;
5
6
  export declare const optionWhen: {
6
- enable: <const Values extends Refable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>(values: Values) => import("../when").BuilderEnableConfig<Values>;
7
- match: <const MatchPayload extends Refable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const MatchPath extends Refable<import("../..").BuilderPath>, const SelectMap extends Refable<import("../when").BuilderMatchSelectMap<Refable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import("../when").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
8
- unless: <const Values extends Refable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const UnlessPath extends Refable<import("../..").BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("../..").BuilderPrimitives, values: Values) => import("../when").BuilderUnlessConfig<Values, UnlessPath>;
7
+ enable: <const Values extends Paramable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>(values: Values) => import("..").BuilderEnableConfig<Values>;
8
+ match: <const MatchPayload extends Paramable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const MatchPath extends Paramable<BuilderPath>, const SelectMap extends Paramable<import("..").BuilderMatchSelectMap<Paramable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import("..").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
9
+ unless: <const Values extends Paramable<import("./select").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("./toggle").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const UnlessPath extends Paramable<BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("../..").BuilderPrimitives, values: Values) => import("..").BuilderUnlessConfig<Values, UnlessPath>;
9
10
  };
@@ -0,0 +1,6 @@
1
+ import type { BuilderEntitySerialised } from './kind.js';
2
+ export type BuilderRefEntity = {
3
+ readonly id: string;
4
+ readonly serialised: BuilderEntitySerialised;
5
+ };
6
+ export type BuilderRefEntities = ReadonlyArray<BuilderRefEntity>;
@@ -0,0 +1 @@
1
+ export {};