@builder-builder/builder 0.0.6 → 0.0.8

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 (216) hide show
  1. package/dist/check.d.ts +2 -1
  2. package/dist/check.js +6 -2
  3. package/dist/entities/builder/builder.d.ts +494 -0
  4. package/dist/entities/builder/builder.js +84 -0
  5. package/dist/entities/builder/builders.d.ts +20 -0
  6. package/dist/entities/builder/builders.js +18 -0
  7. package/dist/entities/builder/expectation.d.ts +12 -0
  8. package/dist/entities/builder/index.d.ts +7 -0
  9. package/dist/entities/builder/index.js +3 -0
  10. package/dist/entities/builder/methods.d.ts +58 -0
  11. package/dist/entities/builder/methods.js +30 -0
  12. package/dist/entities/builder/parameter.d.ts +61 -0
  13. package/dist/entities/builder/parameter.js +18 -0
  14. package/dist/entities/builder/state.d.ts +26 -0
  15. package/dist/entities/builder/validate.d.ts +3 -0
  16. package/dist/entities/builder/validate.js +108 -0
  17. package/dist/entities/collection/collection.d.ts +37 -0
  18. package/dist/entities/collection/collection.js +42 -0
  19. package/dist/entities/collection/config.d.ts +1094 -0
  20. package/dist/entities/collection/config.js +23 -0
  21. package/dist/entities/collection/expectation.d.ts +7 -0
  22. package/dist/entities/collection/expectation.js +4 -0
  23. package/dist/entities/collection/index.d.ts +8 -0
  24. package/dist/entities/collection/index.js +4 -0
  25. package/dist/entities/collection/when.d.ts +9 -0
  26. package/dist/entities/collection/when.js +2 -0
  27. package/dist/entities/component/component.d.ts +403 -0
  28. package/dist/entities/component/component.js +24 -0
  29. package/dist/entities/component/details.d.ts +82 -0
  30. package/dist/entities/component/details.js +17 -0
  31. package/dist/entities/component/expectation.d.ts +8 -0
  32. package/dist/entities/component/expectation.js +7 -0
  33. package/dist/entities/component/index.d.ts +8 -0
  34. package/dist/entities/component/index.js +4 -0
  35. package/dist/entities/component/when.d.ts +11 -0
  36. package/dist/entities/component/when.js +20 -0
  37. package/dist/entities/errors.d.ts +21 -0
  38. package/dist/entities/expectation.d.ts +44 -0
  39. package/dist/entities/expectation.js +23 -0
  40. package/dist/entities/index.d.ts +18 -0
  41. package/dist/entities/index.js +9 -0
  42. package/dist/entities/option/expectation.d.ts +2 -0
  43. package/dist/entities/option/expectation.js +4 -0
  44. package/dist/entities/option/index.d.ts +11 -0
  45. package/dist/entities/option/index.js +6 -0
  46. package/dist/entities/option/option.d.ts +347 -0
  47. package/dist/entities/option/option.js +24 -0
  48. package/dist/entities/option/select.d.ts +49 -0
  49. package/dist/entities/option/select.js +40 -0
  50. package/dist/entities/option/toggle.d.ts +39 -0
  51. package/dist/entities/option/toggle.js +42 -0
  52. package/dist/entities/option/values.d.ts +63 -0
  53. package/dist/entities/option/values.js +8 -0
  54. package/dist/entities/option/when.d.ts +9 -0
  55. package/dist/entities/option/when.js +2 -0
  56. package/dist/entities/serialise.d.ts +3801 -0
  57. package/dist/entities/serialise.js +41 -0
  58. package/dist/entities/ui/describe.d.ts +100 -0
  59. package/dist/entities/ui/describe.js +22 -0
  60. package/dist/entities/ui/index.d.ts +14 -0
  61. package/dist/entities/ui/index.js +7 -0
  62. package/dist/entities/ui/label.d.ts +18 -0
  63. package/dist/entities/ui/label.js +12 -0
  64. package/dist/entities/ui/page.d.ts +96 -0
  65. package/dist/entities/ui/page.js +20 -0
  66. package/dist/entities/ui/pages.d.ts +431 -0
  67. package/dist/entities/ui/pages.js +29 -0
  68. package/dist/entities/ui/parameter.d.ts +7 -0
  69. package/dist/entities/ui/parameter.js +29 -0
  70. package/dist/entities/ui/ui.d.ts +1582 -0
  71. package/dist/entities/ui/ui.js +53 -0
  72. package/dist/entities/ui/uis.d.ts +10 -0
  73. package/dist/entities/ui/uis.js +20 -0
  74. package/dist/entities/ui/validate.d.ts +8 -0
  75. package/dist/entities/ui/validate.js +21 -0
  76. package/dist/entities/validate.d.ts +28 -0
  77. package/dist/entities/validate.js +1 -0
  78. package/dist/entities/when.d.ts +176 -0
  79. package/dist/entities/when.js +47 -0
  80. package/dist/exception.d.ts +8 -0
  81. package/dist/exception.js +7 -0
  82. package/dist/index.d.ts +37 -13
  83. package/dist/index.js +22 -5
  84. package/dist/mappers/assert/builder.d.ts +2 -0
  85. package/dist/mappers/assert/builder.js +46 -0
  86. package/dist/mappers/assert/expectation.d.ts +2 -0
  87. package/dist/mappers/assert/expectation.js +23 -0
  88. package/dist/mappers/assert/index.d.ts +6 -0
  89. package/dist/mappers/assert/index.js +4 -0
  90. package/dist/mappers/assert/model.d.ts +13 -0
  91. package/dist/mappers/assert/model.js +47 -0
  92. package/dist/mappers/assert/models.d.ts +33 -0
  93. package/dist/mappers/assert/models.js +74 -0
  94. package/dist/mappers/assert/ui.d.ts +2 -0
  95. package/dist/mappers/assert/ui.js +22 -0
  96. package/dist/mappers/index.d.ts +7 -0
  97. package/dist/mappers/index.js +4 -0
  98. package/dist/mappers/instance/index.d.ts +1 -0
  99. package/dist/mappers/instance/index.js +1 -0
  100. package/dist/mappers/instance/instance.d.ts +4 -0
  101. package/dist/mappers/instance/instance.js +33 -0
  102. package/dist/mappers/models/component-graph.d.ts +9 -0
  103. package/dist/{core/component/graph.js → mappers/models/component-graph.js} +3 -3
  104. package/dist/{core → mappers/models}/graph.d.ts +4 -1
  105. package/dist/mappers/models/graph.js +17 -0
  106. package/dist/mappers/models/index.d.ts +1 -0
  107. package/dist/mappers/models/index.js +1 -0
  108. package/dist/mappers/models/models.d.ts +3 -0
  109. package/dist/mappers/models/models.js +37 -0
  110. package/dist/mappers/models/option-graph.d.ts +9 -0
  111. package/dist/mappers/models/option-graph.js +77 -0
  112. package/dist/mappers/order/index.d.ts +2 -0
  113. package/dist/mappers/order/index.js +1 -0
  114. package/dist/mappers/order/order.d.ts +14 -0
  115. package/dist/mappers/order/order.js +31 -0
  116. package/dist/mappers/render/index.d.ts +4 -0
  117. package/dist/mappers/render/index.js +2 -0
  118. package/dist/mappers/render/ordinal.d.ts +1 -0
  119. package/dist/mappers/render/ordinal.js +20 -0
  120. package/dist/mappers/render/pages.d.ts +15 -0
  121. package/dist/mappers/render/pages.js +1 -0
  122. package/dist/mappers/render/render.d.ts +8 -0
  123. package/dist/mappers/render/render.js +124 -0
  124. package/dist/mappers/resolve.d.ts +9 -0
  125. package/dist/mappers/resolve.js +57 -0
  126. package/dist/model.d.ts +8 -8
  127. package/dist/paths.d.ts +5 -16
  128. package/dist/paths.js +3 -0
  129. package/dist/primitive.d.ts +5 -0
  130. package/dist/{schemas/primitives.js → primitive.js} +0 -2
  131. package/dist/references.d.ts +60 -0
  132. package/dist/references.js +26 -0
  133. package/dist/serialisable.d.ts +10 -0
  134. package/dist/serialisable.js +5 -0
  135. package/dist/walker/index.d.ts +2 -0
  136. package/dist/walker/index.js +1 -0
  137. package/dist/walker/walkable.d.ts +4 -0
  138. package/dist/walker/walkable.js +4 -0
  139. package/dist/walker/walker.d.ts +18 -0
  140. package/dist/walker/walker.js +103 -0
  141. package/dist/walker/walkers.d.ts +8 -0
  142. package/dist/walker/walkers.js +51 -0
  143. package/package.json +10 -4
  144. package/dist/core/builder.d.ts +0 -70
  145. package/dist/core/builder.js +0 -124
  146. package/dist/core/collection/collection.d.ts +0 -32
  147. package/dist/core/collection/collection.js +0 -37
  148. package/dist/core/collection/index.d.ts +0 -4
  149. package/dist/core/collection/index.js +0 -2
  150. package/dist/core/collection/method.d.ts +0 -30
  151. package/dist/core/collection/method.js +0 -11
  152. package/dist/core/component/component.d.ts +0 -9
  153. package/dist/core/component/component.js +0 -10
  154. package/dist/core/component/graph.d.ts +0 -9
  155. package/dist/core/component/index.d.ts +0 -4
  156. package/dist/core/component/index.js +0 -2
  157. package/dist/core/component/method.d.ts +0 -11
  158. package/dist/core/expectation.d.ts +0 -45
  159. package/dist/core/expectation.js +0 -22
  160. package/dist/core/graph.js +0 -3
  161. package/dist/core/index.d.ts +0 -12
  162. package/dist/core/index.js +0 -6
  163. package/dist/core/option/graph.d.ts +0 -10
  164. package/dist/core/option/graph.js +0 -78
  165. package/dist/core/option/index.d.ts +0 -9
  166. package/dist/core/option/index.js +0 -5
  167. package/dist/core/option/method.d.ts +0 -70
  168. package/dist/core/option/method.js +0 -13
  169. package/dist/core/option/option.d.ts +0 -30
  170. package/dist/core/option/option.js +0 -42
  171. package/dist/core/option/select.d.ts +0 -22
  172. package/dist/core/option/select.js +0 -34
  173. package/dist/core/option/toggle.d.ts +0 -14
  174. package/dist/core/option/toggle.js +0 -27
  175. package/dist/core/parameter.d.ts +0 -48
  176. package/dist/core/parameter.js +0 -31
  177. package/dist/core/when/config.d.ts +0 -20
  178. package/dist/core/when/config.js +0 -4
  179. package/dist/core/when/constrain.d.ts +0 -14
  180. package/dist/core/when/index.d.ts +0 -5
  181. package/dist/core/when/index.js +0 -2
  182. package/dist/core/when/nullability.d.ts +0 -18
  183. package/dist/core/when/resolve.d.ts +0 -18
  184. package/dist/core/when/resolve.js +0 -22
  185. package/dist/resolve/index.d.ts +0 -9
  186. package/dist/resolve/index.js +0 -5
  187. package/dist/resolve/instance.d.ts +0 -3
  188. package/dist/resolve/instance.js +0 -26
  189. package/dist/resolve/models.d.ts +0 -3
  190. package/dist/resolve/models.js +0 -10
  191. package/dist/resolve/order.d.ts +0 -19
  192. package/dist/resolve/order.js +0 -24
  193. package/dist/resolve/render.d.ts +0 -21
  194. package/dist/resolve/render.js +0 -171
  195. package/dist/resolve/validate.d.ts +0 -33
  196. package/dist/resolve/validate.js +0 -51
  197. package/dist/schemas/description.d.ts +0 -5
  198. package/dist/schemas/description.js +0 -3
  199. package/dist/schemas/index.d.ts +0 -6
  200. package/dist/schemas/index.js +0 -3
  201. package/dist/schemas/primitives.d.ts +0 -9
  202. package/dist/schemas/ui.d.ts +0 -96
  203. package/dist/schemas/ui.js +0 -23
  204. package/dist/serialise/deserialise.d.ts +0 -9
  205. package/dist/serialise/deserialise.js +0 -113
  206. package/dist/serialise/index.d.ts +0 -4
  207. package/dist/serialise/index.js +0 -3
  208. package/dist/serialise/schemas.d.ts +0 -1885
  209. package/dist/serialise/schemas.js +0 -141
  210. package/dist/serialise/serialise.d.ts +0 -10
  211. package/dist/serialise/serialise.js +0 -140
  212. package/dist/ui.d.ts +0 -18
  213. package/dist/ui.js +0 -53
  214. /package/dist/{core/component/method.js → entities/builder/expectation.js} +0 -0
  215. /package/dist/{core/when/constrain.js → entities/builder/state.js} +0 -0
  216. /package/dist/{core/when/nullability.js → entities/errors.js} +0 -0
@@ -1,70 +0,0 @@
1
- import type { Prettify } from '../prettify';
2
- import type { BuilderCollectionEntries, BuilderCollectionMethod } from './collection/index';
3
- import type { BuilderComponentEntries, BuilderComponentMethod } from './component/index';
4
- import type { BuilderOptionEntries, BuilderOptionMethod } from './option/index';
5
- import type { BuilderBindings, BuilderBoundState } from './parameter';
6
- import type { BuilderExpectationEntries, BuilderExpectations, ComponentAssert, ModelAssert } from './expectation';
7
- import { BuilderComponentGraph } from './component/index.js';
8
- import { BuilderOptionGraph } from './option/index.js';
9
- export type BuilderState = {
10
- readonly model: unknown;
11
- readonly options: BuilderOptionEntries;
12
- readonly components: BuilderComponentEntries;
13
- readonly collections: BuilderCollectionEntries;
14
- readonly expectations: BuilderExpectationEntries;
15
- };
16
- export type BuilderStateEmpty = {
17
- readonly model: unknown;
18
- readonly options: [];
19
- readonly components: [];
20
- readonly collections: [];
21
- readonly expectations: [];
22
- };
23
- export type BuilderStateMerge<State extends BuilderState, Patch extends Partial<BuilderState>> = {
24
- model: Prettify<'model' extends keyof Patch ? Patch['model'] : State['model']>;
25
- options: Extract<'options' extends keyof Patch ? Patch['options'] : State['options'], BuilderOptionEntries>;
26
- components: Extract<'components' extends keyof Patch ? Patch['components'] : State['components'], BuilderComponentEntries>;
27
- collections: Extract<'collections' extends keyof Patch ? Patch['collections'] : State['collections'], BuilderCollectionEntries>;
28
- expectations: Extract<'expectations' extends keyof Patch ? Patch['expectations'] : State['expectations'], BuilderExpectationEntries>;
29
- };
30
- export type BuilderMerge<State extends BuilderState, Patch extends Partial<BuilderState>> = Builder<BuilderStateMerge<State, Patch>>;
31
- export type BuilderGeneric = Builder<any>;
32
- export type Builders = ReadonlyArray<BuilderGeneric>;
33
- export type BuilderStateOf<Input extends BuilderGeneric> = Input extends Builder<infer State extends BuilderState> ? State : BuilderStateEmpty;
34
- export type BuilderModelOf<Input extends BuilderGeneric> = Input extends Builder<infer State extends BuilderState> ? Prettify<State['model']> : never;
35
- export declare class Builder<State extends BuilderState = BuilderStateEmpty> {
36
- #private;
37
- readonly _options: State['options'];
38
- readonly _components: State['components'];
39
- readonly _collections: State['collections'];
40
- readonly _expectations: State['expectations'];
41
- readonly options: BuilderOptionEntries;
42
- readonly components: BuilderComponentEntries;
43
- readonly collections: BuilderCollectionEntries;
44
- readonly expectations: BuilderExpectationEntries;
45
- constructor(options?: BuilderOptionEntries, collections?: BuilderCollectionEntries, components?: BuilderComponentEntries, expectations?: BuilderExpectationEntries);
46
- get optionGraph(): BuilderOptionGraph;
47
- get componentGraph(): BuilderComponentGraph;
48
- get option(): BuilderOptionMethod<State>;
49
- get component(): BuilderComponentMethod<State>;
50
- get collection(): BuilderCollectionMethod<State>;
51
- expect<const Expectations extends BuilderExpectations>(...expectations: Expectations): BuilderMerge<State, {
52
- model: ModelAssert<Builder<State>, Expectations>;
53
- components: ComponentAssert<Builder<State>, Expectations>;
54
- expectations: [...State['expectations'], ...Expectations];
55
- }>;
56
- bind<const Bindings extends BuilderBindings<State>>(bindings: Bindings): Builder<BuilderBoundState<State, Bindings>>;
57
- }
58
- export declare function builder<const BuildersToMerge extends Builders>(...buildersToMerge: BuildersToMerge): Builder<MergedPartsState<BuildersToMerge>>;
59
- type MergedPartsState<Parts extends ReadonlyArray<BuilderGeneric>> = Parts extends readonly [
60
- infer Head extends BuilderGeneric,
61
- ...infer Tail extends ReadonlyArray<BuilderGeneric>
62
- ] ? MergedStates<BuilderStateOf<Head>, MergedPartsState<Tail>> : BuilderStateEmpty;
63
- type MergedStates<Left extends BuilderState, Right extends BuilderState> = {
64
- model: Left['model'] & Right['model'];
65
- options: [...Left['options'], ...Right['options']];
66
- components: [...Left['components'], ...Right['components']];
67
- collections: [...Left['collections'], ...Right['collections']];
68
- expectations: [...Left['expectations'], ...Right['expectations']];
69
- };
70
- export {};
@@ -1,124 +0,0 @@
1
- import * as v from 'valibot';
2
- import { BuilderExpectation } from './expectation.js';
3
- import { check } from '../check.js';
4
- import { BuilderCollection, resolveCollectionNames } from './collection/index.js';
5
- import { BuilderComponent, BuilderComponentGraph } from './component/index.js';
6
- import { BuilderOption, BuilderOptionGraph } from './option/index.js';
7
- import { BuilderParameter, bindOptions, extractValues } from './parameter.js';
8
- export class Builder {
9
- options;
10
- components;
11
- collections;
12
- expectations;
13
- #optionGraph = null;
14
- #componentGraph = null;
15
- constructor(options = [], collections = [], components = [], expectations = []) {
16
- this.options = options;
17
- this.collections = collections;
18
- this.components = components;
19
- this.expectations = expectations;
20
- }
21
- get optionGraph() {
22
- if (this.#optionGraph === null) {
23
- this.#optionGraph = this.options.reduce((graph, option) => graph.add(option), new BuilderOptionGraph());
24
- }
25
- return this.#optionGraph;
26
- }
27
- get componentGraph() {
28
- if (this.#componentGraph === null) {
29
- const graphs = [
30
- this.components.reduce((graph, component) => graph.add(component, this.optionGraph), new BuilderComponentGraph()),
31
- ...this.collections.map((collection) => collection.builder.componentGraph)
32
- ];
33
- this.#componentGraph = new BuilderComponentGraph(graphs.flatMap((graph) => graph.paths));
34
- }
35
- return this.#componentGraph;
36
- }
37
- get option() {
38
- const existingNames = new Set(this.options.map((entry) => entry.name));
39
- const addOption = (name, values) => {
40
- check.falsy(existingNames.has(name), `Duplicate option name '${name}'! ❌`);
41
- const entry = new BuilderOption(name, values);
42
- return this.#next([...this.options, entry], this.collections, this.components);
43
- };
44
- const addConditionalOption = (gatePaths, name, config) => {
45
- check.falsy(existingNames.has(name), `Duplicate option name '${name}'! ❌`);
46
- if (v.is(v.instance(BuilderParameter), config)) {
47
- const entry = new BuilderOption(name, config, gatePaths, null);
48
- return this.#next([...this.options, entry], this.collections, this.components);
49
- }
50
- const entry = new BuilderOption(name, extractValues(config), gatePaths, config);
51
- return this.#next([...this.options, entry], this.collections, this.components);
52
- };
53
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- bridges loose implementation to strict overloaded type
54
- return Object.assign(addOption, { when: addConditionalOption });
55
- }
56
- get component() {
57
- const existingNames = new Set(this.components.map((component) => component.name));
58
- const addComponent = (name, paths) => {
59
- check.falsy(existingNames.has(name), `Duplicate component name '${name}'! ❌`);
60
- const entry = new BuilderComponent(name, paths);
61
- return this.#next(this.options, this.collections, [...this.components, entry]);
62
- };
63
- const addConditionalComponent = (dependencies, name, paths) => {
64
- check.falsy(existingNames.has(name), `Duplicate component name '${name}'! ❌`);
65
- const entry = new BuilderComponent(name, paths, dependencies);
66
- return this.#next(this.options, this.collections, [...this.components, entry]);
67
- };
68
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- bridges loose implementation to strict overloaded type
69
- return Object.assign(addComponent, { when: addConditionalComponent });
70
- }
71
- get collection() {
72
- const addCollection = (name, collectionRecipe, min = 0, max = Infinity) => {
73
- const existing = resolveCollectionNames(this.collections);
74
- check.falsy(existing.has(name), `Duplicate collection name '${name}'! ❌`);
75
- check.assert(v.instance(Builder), collectionRecipe);
76
- const entry = new BuilderCollection(name, collectionRecipe, min, max);
77
- return this.#next(this.options, [...this.collections, entry], this.components);
78
- };
79
- const addConditionalCollection = (gatePaths, name, config) => {
80
- const existing = resolveCollectionNames(this.collections);
81
- check.falsy(existing.has(name), `Duplicate collection name '${name}'! ❌`);
82
- const defaultEntry = config.type === 'match'
83
- ? Object.values(config.selectMap).find((value) => value !== null)
84
- : config;
85
- const entry = new BuilderCollection(name, defaultEntry.builder, defaultEntry.min, defaultEntry.max, gatePaths, config);
86
- return this.#next(this.options, [...this.collections, entry], this.components);
87
- };
88
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- bridges loose implementation to strict overloaded type
89
- return Object.assign(addCollection, { when: addConditionalCollection });
90
- }
91
- expect(...expectations) {
92
- return new Builder(this.options, this.collections, this.components, [
93
- ...this.expectations,
94
- ...expectations
95
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- type narrowing cast, validated at merge time
96
- ]);
97
- }
98
- bind(bindings) {
99
- const boundOptions = bindOptions(this.options, bindings);
100
- return new Builder(boundOptions, this.collections, this.components, this.expectations);
101
- }
102
- #next(options, collections, components) {
103
- return new Builder(options, collections, components, this.expectations);
104
- }
105
- }
106
- export function builder(...buildersToMerge) {
107
- const merged = new Builder(buildersToMerge.flatMap((builder) => builder.options), buildersToMerge.flatMap((builder) => builder.collections), buildersToMerge.flatMap((builder) => builder.components));
108
- buildersToMerge
109
- .flatMap((builder) => builder.expectations)
110
- .forEach((expectation) => {
111
- if (v.is(v.instance(BuilderExpectation), expectation)) {
112
- if (expectation.kind === 'option') {
113
- expectation.validate(merged.options);
114
- }
115
- else if (expectation.kind === 'component') {
116
- expectation.validate(merged.components);
117
- }
118
- else if (expectation.kind === 'collection') {
119
- expectation.validate(merged.collections);
120
- }
121
- }
122
- });
123
- return merged;
124
- }
@@ -1,32 +0,0 @@
1
- import type { BuilderModel, BuilderModels } from '../../model';
2
- import type { BuilderPaths } from '../../paths';
3
- import type { BuilderGeneric, BuilderModelOf, BuilderStateOf } from '../builder';
4
- import type { BuilderCollectionWhenConfig } from './method';
5
- export type BuilderCollectionConfig<CollectionRecipe = any, Min extends number = number, Max extends number = number> = {
6
- readonly builder: CollectionRecipe;
7
- readonly min: Min;
8
- readonly max: Max;
9
- };
10
- export type BuilderCollectionEntries = ReadonlyArray<BuilderCollection>;
11
- export type TupleOf<Item, Length extends number, Result extends ReadonlyArray<Item> = []> = Result['length'] extends Length ? Result : TupleOf<Item, Length, [...Result, Item]>;
12
- export type CollectionShape<Item, Min extends number, Max extends number> = number extends Min ? ReadonlyArray<Item> : number extends Max ? ReadonlyArray<Item> : Min extends Max ? TupleOf<Item, Min> : ReadonlyArray<Item>;
13
- export type BuilderCollectionOf<Builder extends BuilderGeneric, Name extends string> = CollectionOf<BuilderStateOf<Builder>['collections'], Name>;
14
- export type BuilderCollectionNamesOf<Builder extends BuilderGeneric | null> = [Builder] extends [
15
- BuilderGeneric
16
- ] ? CollectionNamesOf<BuilderStateOf<Builder>['collections']> : never;
17
- export type BuilderCollectionModelOf<CollectionRecipe extends BuilderGeneric, Min extends number, Max extends number> = CollectionShape<BuilderModelOf<CollectionRecipe>, Min, Max>;
18
- export declare class BuilderCollection<const Name extends string = string, const CollectionRecipe = any, const Min extends number = number, const Max extends number = number> implements BuilderCollectionConfig<CollectionRecipe, Min, Max> {
19
- readonly name: Name;
20
- readonly builder: CollectionRecipe;
21
- readonly min: Min;
22
- readonly max: Max;
23
- readonly gatePaths: BuilderPaths;
24
- readonly config: BuilderCollectionWhenConfig | null;
25
- constructor(name: Name, builder: CollectionRecipe, min?: Min, max?: Max, gatePaths?: BuilderPaths, config?: BuilderCollectionWhenConfig | null);
26
- resolve(model: unknown): BuilderCollection<Name> | null;
27
- }
28
- export declare function resolveCollectionNames(collections: BuilderCollectionEntries): Set<string>;
29
- export declare function resolveCollectionModels(model: BuilderModel, collectionName: string): BuilderModels;
30
- type CollectionOf<Config extends BuilderCollectionEntries, Name extends string> = Config extends readonly [infer Head, ...infer Tail extends BuilderCollectionEntries] ? Extract<Head, BuilderCollection<Name, any, any, any>> extends never ? CollectionOf<Tail, Name> : Extract<Head, BuilderCollection<Name, any, any, any>> : Extract<Config[number], BuilderCollection<Name, any, any, any>>;
31
- type CollectionNamesOf<Entries extends BuilderCollectionEntries> = Entries[number]['name'];
32
- export {};
@@ -1,37 +0,0 @@
1
- import { check } from '../../check.js';
2
- import { resolve } from '../when/index.js';
3
- export class BuilderCollection {
4
- name;
5
- builder;
6
- min;
7
- max;
8
- gatePaths;
9
- config;
10
- constructor(name, builder, min = 0, max = Infinity, gatePaths = [], config = null) {
11
- check.truthy(min >= 0, `Collection '${name}': min must be >= 0, got ${min}! ❌`);
12
- check.truthy(max > 0, `Collection '${name}': max must be > 0, got ${max}! ❌`);
13
- check.truthy(max >= min, `Collection '${name}': max must be >= min, got min=${min}, max=${max}! ❌`);
14
- this.name = name;
15
- this.builder = builder;
16
- this.min = min;
17
- this.max = max;
18
- this.gatePaths = gatePaths;
19
- this.config = config;
20
- }
21
- resolve(model) {
22
- return resolve(this, model, (selectMap, matchValue) => {
23
- const entry = selectMap[matchValue];
24
- return entry ? new BuilderCollection(this.name, entry.builder, entry.min, entry.max) : null;
25
- });
26
- }
27
- }
28
- export function resolveCollectionNames(collections) {
29
- return new Set(collections.map((collection) => collection.name));
30
- }
31
- export function resolveCollectionModels(model, collectionName) {
32
- const value = model[collectionName];
33
- if (!Array.isArray(value)) {
34
- throw new Error(`Expected array for collection '${collectionName}', got ${typeof value}! ❌`);
35
- }
36
- return value;
37
- }
@@ -1,4 +0,0 @@
1
- export type { BuilderCollectionConfig, BuilderCollectionEntries, BuilderCollectionModelOf, BuilderCollectionNamesOf, BuilderCollectionOf, TupleOf, CollectionShape } from './collection';
2
- export type { BuilderCollectionEnableConfig, BuilderCollectionMatchConfig, BuilderCollectionMethod, BuilderCollectionUnlessConfig, BuilderCollectionWhenConfig } from './method';
3
- export { BuilderCollection, resolveCollectionModels, resolveCollectionNames } from './collection.js';
4
- export { collection } from './method.js';
@@ -1,2 +0,0 @@
1
- export { BuilderCollection, resolveCollectionModels, resolveCollectionNames } from './collection.js';
2
- export { collection } from './method.js';
@@ -1,30 +0,0 @@
1
- import type { BuilderPrimitive } from '../../model';
2
- import type { BuilderPath, BuilderValidPaths } from '../../paths';
3
- import type { BuilderGeneric, BuilderMerge, BuilderState } from '../builder';
4
- import type { BuilderWhenEnableConfig, BuilderWhenMatchConfig, BuilderWhenUnlessConfig, WhenConfigConstrained, WhenNullability } from '../when/index';
5
- import type { BuilderCollection, BuilderCollectionConfig, BuilderCollectionModelOf } from './collection';
6
- export type BuilderCollectionEnableConfig<CollectionRecipe = any, Min extends number = number, Max extends number = number> = BuilderWhenEnableConfig<BuilderCollectionConfig<CollectionRecipe, Min, Max>>;
7
- export type BuilderCollectionMatchConfig<SelectMap extends Record<string, BuilderCollectionConfig | null> = Record<string, BuilderCollectionConfig | null>, MatchPath extends BuilderPath = BuilderPath> = BuilderWhenMatchConfig<SelectMap, MatchPath>;
8
- export type BuilderCollectionUnlessConfig<CollectionRecipe = any, Min extends number = number, Max extends number = number, UnlessPath extends BuilderPath = BuilderPath> = BuilderWhenUnlessConfig<BuilderCollectionConfig<CollectionRecipe, Min, Max>, UnlessPath>;
9
- export type BuilderCollectionWhenConfig = BuilderCollectionEnableConfig | BuilderCollectionMatchConfig | BuilderCollectionUnlessConfig;
10
- export type BuilderCollectionMethod<State extends BuilderState> = {
11
- <const Name extends string, const CollectionRecipe extends BuilderGeneric, const Min extends number, const Max extends number>(name: Name, collectionRecipe: CollectionRecipe, min?: Min, max?: Max): BuilderMerge<State, {
12
- model: State['model'] & Record<Name, BuilderCollectionModelOf<CollectionRecipe, Min, Max>>;
13
- collections: [...State['collections'], BuilderCollection<Name, CollectionRecipe, Min, Max>];
14
- }>;
15
- when: <const GatePaths extends BuilderValidPaths<State['model']>, const Name extends string, const Config extends BuilderCollectionWhenConfig>(gatePaths: GatePaths, name: Name, config: Config & WhenConfigConstrained<State['model'], Config>) => BuilderMerge<State, {
16
- model: State['model'] & Record<Name, CollectionWhenConfigModel<Config> | WhenNullability<State['model'], GatePaths, Config>>;
17
- collections: [...State['collections'], CollectionWhenConfigResolver<Name, Config>];
18
- }>;
19
- };
20
- export declare const collection: {
21
- enable: <const CollectionRecipe extends BuilderGeneric, const Min extends number, const Max extends number>(builder: CollectionRecipe, min: Min, max: Max) => BuilderCollectionEnableConfig<CollectionRecipe, Min, Max>;
22
- match: <const MatchPath extends BuilderPath, const SelectMap extends Record<string, BuilderCollectionConfig | null>>(matchPath: MatchPath, selectMap: SelectMap) => BuilderCollectionMatchConfig<SelectMap, MatchPath>;
23
- unless: <const CollectionRecipe extends BuilderGeneric, const Min extends number, const Max extends number, const UnlessPath extends BuilderPath>(unlessPath: UnlessPath, disabledValues: ReadonlyArray<BuilderPrimitive>, builder: CollectionRecipe, min: Min, max: Max) => BuilderCollectionUnlessConfig<CollectionRecipe, Min, Max, UnlessPath>;
24
- };
25
- type SelectMapEntryOf<SelectMap> = NonNullable<SelectMap[keyof SelectMap]> & BuilderCollectionConfig;
26
- type CollectionModelOfConfig<Config extends BuilderCollectionConfig> = BuilderCollectionModelOf<Config['builder'], Config['min'], Config['max']>;
27
- type CollectionOfConfig<Name extends string, Config extends BuilderCollectionConfig> = BuilderCollection<Name, Config['builder'], Config['min'], Config['max']>;
28
- type CollectionWhenConfigModel<Config extends BuilderCollectionWhenConfig> = Config extends BuilderCollectionEnableConfig<infer BuilderInput extends BuilderGeneric, infer Min extends number, infer Max extends number> ? BuilderCollectionModelOf<BuilderInput, Min, Max> : Config extends BuilderCollectionUnlessConfig<infer BuilderInput extends BuilderGeneric, infer Min extends number, infer Max extends number> ? BuilderCollectionModelOf<BuilderInput, Min, Max> : Config extends BuilderCollectionMatchConfig<infer SelectMapType> ? CollectionModelOfConfig<SelectMapEntryOf<SelectMapType>> : never;
29
- type CollectionWhenConfigResolver<Name extends string, Config extends BuilderCollectionWhenConfig> = Config extends BuilderCollectionEnableConfig<infer BuilderInput, infer Min extends number, infer Max extends number> ? BuilderCollection<Name, BuilderInput, Min, Max> : Config extends BuilderCollectionUnlessConfig<infer BuilderInput, infer Min extends number, infer Max extends number> ? BuilderCollection<Name, BuilderInput, Min, Max> : Config extends BuilderCollectionMatchConfig<infer SelectMapType> ? CollectionOfConfig<Name, SelectMapEntryOf<SelectMapType>> : never;
30
- export {};
@@ -1,11 +0,0 @@
1
- export const collection = {
2
- enable: (builder, min, max) => {
3
- return { type: 'enable', builder, min, max };
4
- },
5
- match: (matchPath, selectMap) => {
6
- return { type: 'match', matchPath, selectMap };
7
- },
8
- unless: (unlessPath, disabledValues, builder, min, max) => {
9
- return { type: 'unless', unlessPath, disabledValues, builder, min, max };
10
- }
11
- };
@@ -1,9 +0,0 @@
1
- import type { BuilderPaths } from '../../paths';
2
- export type BuilderComponentEntries = ReadonlyArray<BuilderComponent>;
3
- export type BuilderComponentNamesOf<Components extends BuilderComponentEntries> = Components[number]['name'];
4
- export declare class BuilderComponent<const Name extends string = string> {
5
- readonly name: Name;
6
- readonly paths: BuilderPaths;
7
- readonly dependencies: ReadonlyArray<string>;
8
- constructor(name: Name, paths: BuilderPaths, dependencies?: ReadonlyArray<string>);
9
- }
@@ -1,10 +0,0 @@
1
- export class BuilderComponent {
2
- name;
3
- paths;
4
- dependencies;
5
- constructor(name, paths, dependencies = []) {
6
- this.name = name;
7
- this.paths = paths;
8
- this.dependencies = dependencies;
9
- }
10
- }
@@ -1,9 +0,0 @@
1
- import type { GraphPaths } from '../graph';
2
- import type { BuilderOptionGraph } from '../option/index';
3
- import { BuilderComponent } from './component.js';
4
- export declare class BuilderComponentGraph {
5
- #private;
6
- readonly paths: GraphPaths;
7
- constructor(paths?: GraphPaths);
8
- add(component: BuilderComponent, options: BuilderOptionGraph): BuilderComponentGraph;
9
- }
@@ -1,4 +0,0 @@
1
- export type { BuilderComponentEntries, BuilderComponentNamesOf } from './component';
2
- export type { BuilderComponentMethod } from './method';
3
- export { BuilderComponent } from './component.js';
4
- export { BuilderComponentGraph } from './graph.js';
@@ -1,2 +0,0 @@
1
- export { BuilderComponent } from './component.js';
2
- export { BuilderComponentGraph } from './graph.js';
@@ -1,11 +0,0 @@
1
- import type { BuilderValidPaths } from '../../paths';
2
- import type { BuilderMerge, BuilderState } from '../builder';
3
- import type { BuilderComponent, BuilderComponentNamesOf } from './component';
4
- export type BuilderComponentMethod<State extends BuilderState> = {
5
- <const Name extends string>(name: Name, paths: BuilderValidPaths<State['model']>): BuilderMerge<State, {
6
- components: [...State['components'], BuilderComponent<Name>];
7
- }>;
8
- when: <const Name extends string>(dependencies: ReadonlyArray<BuilderComponentNamesOf<State['components']>>, name: Name, paths: BuilderValidPaths<State['model']>) => BuilderMerge<State, {
9
- components: [...State['components'], BuilderComponent<Name>];
10
- }>;
11
- };
@@ -1,45 +0,0 @@
1
- import type { BuilderGeneric, BuilderMerge, BuilderStateOf } from './builder';
2
- import type { Prettify } from '../prettify';
3
- import { BuilderCollection } from './collection/index.js';
4
- import { BuilderComponent } from './component/index.js';
5
- export type BuilderExpectationKind = 'option' | 'component' | 'collection';
6
- export type BuilderExpectationEntries = ReadonlyArray<BuilderExpectation>;
7
- export type BuilderExpectations = readonly [
8
- BuilderExpectation,
9
- ...ReadonlyArray<BuilderExpectation>
10
- ];
11
- export type BuilderModelAsserted<BuilderInput extends BuilderGeneric | null, Expectations extends BuilderExpectations, Resolved extends BuilderGeneric = [BuilderInput] extends [BuilderGeneric] ? BuilderInput : BuilderGeneric> = BuilderMerge<BuilderStateOf<Resolved>, {
12
- model: ModelAssert<Resolved, Expectations>;
13
- components: ComponentAssert<Resolved, Expectations>;
14
- collections: CollectionAssert<Resolved, Expectations>;
15
- }>;
16
- export type ModelAssert<BuilderInput extends BuilderGeneric, Items extends BuilderExpectations, Current extends BuilderStateOf<BuilderInput> = BuilderStateOf<BuilderInput>, Asserted extends ExpectedModel<Items> = ExpectedModel<Items>> = unknown extends Current['model'] ? Prettify<Asserted> : Prettify<Current['model'] & Asserted>;
17
- export type ComponentAssert<BuilderInput extends BuilderGeneric, Items extends BuilderExpectations, Current extends BuilderStateOf<BuilderInput> = BuilderStateOf<BuilderInput>, Asserted extends ExpectedComponents<Items> = ExpectedComponents<Items>> = Current['components'] extends [] ? ExpectedComponents<Items> : number extends Asserted['length'] ? Asserted : [...Current['components'], ...Asserted];
18
- export type CollectionAssert<BuilderInput extends BuilderGeneric, Items extends BuilderExpectations, Current extends BuilderStateOf<BuilderInput> = BuilderStateOf<BuilderInput>, Asserted extends ExpectedCollections<Items> = ExpectedCollections<Items>> = Current['collections'] extends [] ? ExpectedCollections<Items> : number extends Asserted['length'] ? Asserted : [...Current['collections'], ...Asserted];
19
- export declare class BuilderExpectation<Name extends string = string, Value = unknown, Kind extends BuilderExpectationKind = BuilderExpectationKind> {
20
- readonly name: Name;
21
- readonly kind: Kind;
22
- constructor(name: Name, kind: Kind);
23
- optional(): BuilderExpectation<Name, Value | null, Kind>;
24
- validate(entries: ReadonlyArray<{
25
- readonly name: string;
26
- }>): void;
27
- }
28
- export declare const has: {
29
- option: <const Name extends string>(name: Name) => BuilderExpectation<Name, string, "option">;
30
- component: <const Name extends string>(name: Name) => BuilderExpectation<Name, never, "component">;
31
- collection: <const Name extends string>(name: Name) => BuilderExpectation<Name, unknown, "collection">;
32
- };
33
- type ExpectedModel<Items extends ReadonlyArray<BuilderExpectation>> = Items extends readonly [
34
- infer Head,
35
- ...infer Tail extends ReadonlyArray<BuilderExpectation>
36
- ] ? (Head extends BuilderExpectation<infer Name, infer Value, 'option'> ? Record<Name, Value> : unknown) & ExpectedModel<Tail> : unknown;
37
- type ExpectedComponents<Items extends ReadonlyArray<BuilderExpectation>> = Items extends readonly [
38
- infer Head,
39
- ...infer Tail extends ReadonlyArray<BuilderExpectation>
40
- ] ? Head extends BuilderExpectation<infer Name, any, 'component'> ? [BuilderComponent<Name>, ...ExpectedComponents<Tail>] : ExpectedComponents<Tail> : [];
41
- type ExpectedCollections<Items extends ReadonlyArray<BuilderExpectation>> = Items extends readonly [
42
- infer Head,
43
- ...infer Tail extends ReadonlyArray<BuilderExpectation>
44
- ] ? Head extends BuilderExpectation<infer Name, any, 'collection'> ? [BuilderCollection<Name>, ...ExpectedCollections<Tail>] : ExpectedCollections<Tail> : [];
45
- export {};
@@ -1,22 +0,0 @@
1
- import { BuilderCollection } from './collection/index.js';
2
- import { BuilderComponent } from './component/index.js';
3
- import { check } from '../check.js';
4
- export class BuilderExpectation {
5
- name;
6
- kind;
7
- constructor(name, kind) {
8
- this.name = name;
9
- this.kind = kind;
10
- }
11
- optional() {
12
- return new BuilderExpectation(this.name, this.kind);
13
- }
14
- validate(entries) {
15
- check.truthy(entries.some((entry) => entry.name === this.name), `assert: no \`${this.kind}\` named '${this.name}' exists in the builder config! ❌`);
16
- }
17
- }
18
- export const has = {
19
- option: (name) => new BuilderExpectation(name, 'option'),
20
- component: (name) => new BuilderExpectation(name, 'component'),
21
- collection: (name) => new BuilderExpectation(name, 'collection')
22
- };
@@ -1,3 +0,0 @@
1
- export function crossProduct(left, right) {
2
- return left.flatMap((leftModel) => right.map((rightModel) => ({ ...leftModel, ...rightModel })));
3
- }
@@ -1,12 +0,0 @@
1
- export type { BuilderCollectionConfig, BuilderCollectionEnableConfig, BuilderCollectionEntries, BuilderCollectionMatchConfig, BuilderCollectionMethod, BuilderCollectionModelOf, BuilderCollectionNamesOf, BuilderCollectionOf, BuilderCollectionUnlessConfig, BuilderCollectionWhenConfig } from './collection/index';
2
- export type { BuilderComponentEntries, BuilderComponentMethod, BuilderComponentNamesOf } from './component/index';
3
- export type { BuilderExpectationEntries, BuilderExpectations, BuilderModelAsserted } from './expectation';
4
- export type { BuilderOptionEnableConfig, BuilderOptionEntries, BuilderOptionMatchConfig, BuilderOptionMethod, BuilderOptionUnlessConfig, BuilderOptionValues, BuilderOptionValuesMap, BuilderOptionWhenConfig, BuilderSelectTypeLabels, BuilderSelectTypeValues } from './option/index';
5
- export type { BuilderWhenEnableConfig, BuilderWhenMatchConfig, BuilderWhenUnlessConfig } from './when/index';
6
- export type { BuilderMerge, BuilderGeneric, BuilderModelOf, Builders, BuilderState, BuilderStateEmpty, BuilderStateOf } from './builder';
7
- export { Builder, builder } from './builder.js';
8
- export { BuilderCollection, collection, resolveCollectionModels, resolveCollectionNames } from './collection/index.js';
9
- export { BuilderComponent, BuilderComponentGraph } from './component/index.js';
10
- export { BuilderExpectation, has } from './expectation.js';
11
- export { BuilderOption, BuilderOptionGraph, select, BuilderSelectType, BuilderToggleType, toggleBoolean, toggleNumber, toggleString, enable, match, unless } from './option/index.js';
12
- export { BuilderParameter, BuilderParameterSchema } from './parameter.js';
@@ -1,6 +0,0 @@
1
- export { Builder, builder } from './builder.js';
2
- export { BuilderCollection, collection, resolveCollectionModels, resolveCollectionNames } from './collection/index.js';
3
- export { BuilderComponent, BuilderComponentGraph } from './component/index.js';
4
- export { BuilderExpectation, has } from './expectation.js';
5
- export { BuilderOption, BuilderOptionGraph, select, BuilderSelectType, BuilderToggleType, toggleBoolean, toggleNumber, toggleString, enable, match, unless } from './option/index.js';
6
- export { BuilderParameter, BuilderParameterSchema } from './parameter.js';
@@ -1,10 +0,0 @@
1
- import type { GraphPath, GraphPaths } from '../graph';
2
- import { BuilderOption } from './option.js';
3
- export type BuilderOptionGraphs = ReadonlyArray<BuilderOptionGraph>;
4
- export declare class BuilderOptionGraph {
5
- #private;
6
- readonly paths: GraphPaths;
7
- constructor(paths?: GraphPaths);
8
- get(name: string): GraphPath;
9
- add(option: BuilderOption): BuilderOptionGraph;
10
- }
@@ -1,78 +0,0 @@
1
- import { crossProduct } from '../graph.js';
2
- import * as v from 'valibot';
3
- import { check } from '../../check.js';
4
- import { BuilderOption, BuilderOptionValuesSchema } from './option.js';
5
- import { BuilderSelectType } from './select.js';
6
- export class BuilderOptionGraph {
7
- paths;
8
- constructor(paths = []) {
9
- this.paths = paths;
10
- }
11
- get(name) {
12
- const graphPath = this.paths.find((graphPath) => graphPath.name === name);
13
- check.truthy(graphPath, `Option '${name}' not found in graph! ❌`);
14
- return graphPath;
15
- }
16
- add(option) {
17
- check.falsy(this.#has(option.name), `Duplicate option name '${option.name}'! ❌`);
18
- const dependencyKeys = option.dependencyKeys();
19
- if (dependencyKeys.length === 0) {
20
- const values = optionValues(option);
21
- return new BuilderOptionGraph([
22
- ...this.paths,
23
- {
24
- name: option.name,
25
- keys: new Set(),
26
- models: values.map((value) => ({ [option.name]: value }))
27
- }
28
- ]);
29
- }
30
- const merged = mergePaths(new Set(dependencyKeys), this.paths);
31
- const finalModels = [];
32
- merged.models.forEach((model) => {
33
- const result = option.resolve(model);
34
- if (result) {
35
- optionValues(result).forEach((value) => {
36
- finalModels.push({ ...model, [result.name]: value });
37
- });
38
- }
39
- else {
40
- finalModels.push({ ...model });
41
- }
42
- });
43
- return new BuilderOptionGraph([
44
- ...this.paths,
45
- { name: option.name, keys: merged.keys, models: finalModels }
46
- ]);
47
- }
48
- #has(name) {
49
- return this.paths.some((graphPath) => graphPath.name === name);
50
- }
51
- }
52
- function mergePaths(dependencyKeys, graphPaths) {
53
- const dependencyPaths = Array.from(dependencyKeys).map((dependencyKey) => {
54
- const dependencyPath = graphPaths.find((graphPath) => graphPath.name === dependencyKey);
55
- check.truthy(dependencyPath, `Option dependency '${dependencyKey}' not found in graph! ❌`);
56
- return dependencyPath;
57
- });
58
- const [first, ...rest] = dependencyPaths;
59
- return rest.reduce((merged, next) => {
60
- const keys = new Set([...merged.keys, ...next.keys, next.name]);
61
- const models = crossProduct(next.models, merged.models);
62
- return { keys, models };
63
- }, { keys: new Set([...first.keys, first.name]), models: first.models });
64
- }
65
- function optionValues(option) {
66
- const values = option.values;
67
- check.assert(BuilderOptionValuesSchema, values);
68
- if (v.is(v.instance(BuilderSelectType), values)) {
69
- return [...values.options];
70
- }
71
- if (values.valueSchema.expects.includes('boolean')) {
72
- return values.isOptional ? [true, false, null] : [true, false];
73
- }
74
- if (values.valueSchema.expects.includes('string')) {
75
- return values.isOptional ? [option.name, null] : [option.name];
76
- }
77
- return values.isOptional ? [1, null] : [1];
78
- }
@@ -1,9 +0,0 @@
1
- export type { BuilderOptionEnableConfig, BuilderOptionMatchConfig, BuilderOptionMethod, BuilderOptionUnlessConfig, BuilderOptionWhenConfig } from './method';
2
- export type { BuilderOptionGraphs } from './graph';
3
- export type { BuilderOptionEntries, BuilderOptionValues, BuilderOptionValuesMap, BuilderSelectTypeGeneric, BuilderToggleTypeGeneric, BuilderOptionValueSchema } from './option';
4
- export type { BuilderSelectTypeLabels, BuilderSelectTypeValues } from './select';
5
- export { enable, match, unless } from './method.js';
6
- export { BuilderOptionGraph } from './graph.js';
7
- export { BuilderOption } from './option.js';
8
- export { select, BuilderSelectType } from './select.js';
9
- export { BuilderToggleType, toggleBoolean, toggleNumber, toggleString } from './toggle.js';
@@ -1,5 +0,0 @@
1
- export { enable, match, unless } from './method.js';
2
- export { BuilderOptionGraph } from './graph.js';
3
- export { BuilderOption } from './option.js';
4
- export { select, BuilderSelectType } from './select.js';
5
- export { BuilderToggleType, toggleBoolean, toggleNumber, toggleString } from './toggle.js';