@builder-builder/builder 0.0.19 → 0.0.21

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 (139) hide show
  1. package/dist/bb.d.ts +12 -14
  2. package/dist/bb.js +32 -6
  3. package/dist/entities/builder/bind.d.ts +1 -1
  4. package/dist/entities/builder/builder.d.ts +2 -4
  5. package/dist/entities/builder/builder.js +1 -1
  6. package/dist/entities/collection/collection.d.ts +689 -1
  7. package/dist/entities/collection/collection.js +5 -2
  8. package/dist/entities/collection/config.d.ts +290 -0
  9. package/dist/entities/collection/config.js +13 -2
  10. package/dist/entities/collection/expectation.d.ts +1 -1
  11. package/dist/entities/collection/index.d.ts +3 -3
  12. package/dist/entities/collection/index.js +2 -2
  13. package/dist/entities/collection/when.d.ts +1 -1
  14. package/dist/entities/component/component.d.ts +64 -10
  15. package/dist/entities/component/component.js +9 -6
  16. package/dist/entities/component/config.d.ts +145 -0
  17. package/dist/entities/component/config.js +42 -0
  18. package/dist/entities/component/field.js +1 -1
  19. package/dist/entities/component/index.d.ts +3 -3
  20. package/dist/entities/component/index.js +2 -2
  21. package/dist/entities/component/when.d.ts +6 -6
  22. package/dist/entities/component/when.js +3 -3
  23. package/dist/entities/expectation.d.ts +4 -0
  24. package/dist/entities/expectation.js +3 -1
  25. package/dist/entities/index.d.ts +18 -17
  26. package/dist/entities/index.js +11 -10
  27. package/dist/entities/kind.d.ts +10 -7
  28. package/dist/entities/kind.js +39 -5
  29. package/dist/entities/model/bind.d.ts +1 -1
  30. package/dist/entities/model/index.d.ts +1 -1
  31. package/dist/entities/model/methods.d.ts +12 -12
  32. package/dist/entities/model/methods.js +2 -2
  33. package/dist/entities/model/model.js +1 -1
  34. package/dist/entities/model/models.d.ts +1 -1
  35. package/dist/entities/option/config.d.ts +109 -0
  36. package/dist/entities/option/config.js +15 -0
  37. package/dist/entities/option/index.d.ts +7 -7
  38. package/dist/entities/option/index.js +4 -4
  39. package/dist/entities/option/option.d.ts +88 -10
  40. package/dist/entities/option/option.js +9 -6
  41. package/dist/entities/option/select.d.ts +24 -14
  42. package/dist/entities/option/select.js +17 -6
  43. package/dist/entities/option/toggle.d.ts +17 -10
  44. package/dist/entities/option/toggle.js +19 -8
  45. package/dist/entities/option/when.d.ts +6 -6
  46. package/dist/{paths.d.ts → entities/paths.d.ts} +2 -0
  47. package/dist/{paths.js → entities/paths.js} +3 -0
  48. package/dist/entities/pricing/index.d.ts +1 -1
  49. package/dist/entities/pricing/index.js +1 -1
  50. package/dist/entities/pricing/pricing.js +1 -1
  51. package/dist/entities/pricing/rates.d.ts +5 -0
  52. package/dist/entities/pricing/rates.js +3 -1
  53. package/dist/entities/references.d.ts +723 -0
  54. package/dist/entities/references.js +7 -0
  55. package/dist/entities/serialise.d.ts +49 -43
  56. package/dist/entities/serialise.js +19 -13
  57. package/dist/entities/ui/describe.d.ts +15 -0
  58. package/dist/entities/ui/describe.js +11 -2
  59. package/dist/entities/ui/index.d.ts +4 -4
  60. package/dist/entities/ui/index.js +4 -4
  61. package/dist/entities/ui/input.d.ts +12 -3
  62. package/dist/entities/ui/input.js +4 -2
  63. package/dist/entities/ui/page.d.ts +15 -0
  64. package/dist/entities/ui/page.js +11 -2
  65. package/dist/entities/ui/pages.d.ts +132 -0
  66. package/dist/entities/ui/pages.js +12 -2
  67. package/dist/entities/ui/ui.d.ts +2 -3
  68. package/dist/entities/ui/ui.js +2 -2
  69. package/dist/entities/ui/uis.d.ts +1 -1
  70. package/dist/entities/ui/uis.js +2 -2
  71. package/dist/entities/validated.d.ts +26 -18
  72. package/dist/entities/when.d.ts +4 -3
  73. package/dist/entities/when.js +22 -2
  74. package/dist/environment.d.ts +2 -2
  75. package/dist/{validate → errors}/errors.d.ts +57 -35
  76. package/dist/{validate → errors}/errors.js +40 -5
  77. package/dist/errors/exception.d.ts +5 -0
  78. package/dist/{exception.js → errors/exception.js} +0 -3
  79. package/dist/errors/index.d.ts +4 -0
  80. package/dist/errors/index.js +3 -0
  81. package/dist/index.d.ts +19 -18
  82. package/dist/index.js +5 -4
  83. package/dist/instance.d.ts +7 -7
  84. package/dist/instance.js +4 -4
  85. package/dist/mappers/index.d.ts +2 -4
  86. package/dist/mappers/index.js +1 -2
  87. package/dist/mappers/instance.d.ts +2 -2
  88. package/dist/mappers/instance.js +7 -7
  89. package/dist/mappers/order.d.ts +4 -4
  90. package/dist/mappers/order.js +5 -5
  91. package/dist/mappers/price.js +18 -18
  92. package/dist/mappers/render/pages.d.ts +2 -2
  93. package/dist/mappers/render/render.d.ts +2 -2
  94. package/dist/mappers/render/render.js +12 -12
  95. package/dist/mappers/resolve.d.ts +11 -12
  96. package/dist/mappers/resolve.js +29 -46
  97. package/dist/mappers/variants/option-graph.d.ts +2 -3
  98. package/dist/mappers/variants/option-graph.js +2 -3
  99. package/dist/mappers/variants/variants.d.ts +2 -2
  100. package/dist/mappers/variants/variants.js +1 -1
  101. package/dist/private.d.ts +1 -2
  102. package/dist/private.js +1 -2
  103. package/dist/references.js +1 -1
  104. package/dist/validate/brand.js +1 -2
  105. package/dist/validate/builder.d.ts +3 -4
  106. package/dist/validate/builder.js +2 -3
  107. package/dist/validate/expectations.d.ts +1 -1
  108. package/dist/validate/index.d.ts +5 -2
  109. package/dist/validate/index.js +1 -0
  110. package/dist/validate/instance.d.ts +2 -3
  111. package/dist/validate/instance.js +1 -2
  112. package/dist/validate/model.d.ts +3 -4
  113. package/dist/validate/model.js +39 -44
  114. package/dist/validate/paths.d.ts +2 -3
  115. package/dist/validate/paths.js +1 -1
  116. package/dist/validate/pricing.d.ts +3 -4
  117. package/dist/validate/pricing.js +2 -3
  118. package/dist/validate/resolve.d.ts +3 -3
  119. package/dist/validate/resolve.js +1 -1
  120. package/dist/validate/ui.d.ts +3 -4
  121. package/dist/validate/ui.js +14 -5
  122. package/dist/validate/variants.d.ts +4 -5
  123. package/dist/validate/variants.js +6 -7
  124. package/package.json +7 -2
  125. package/dist/entities/component/details.d.ts +0 -66
  126. package/dist/entities/component/details.js +0 -24
  127. package/dist/entities/entry.d.ts +0 -4
  128. package/dist/entities/entry.js +0 -1
  129. package/dist/entities/option/values.d.ts +0 -49
  130. package/dist/entities/option/values.js +0 -14
  131. package/dist/entities/refs.d.ts +0 -6
  132. package/dist/entities/refs.js +0 -1
  133. package/dist/exception.d.ts +0 -13
  134. package/dist/validate/result.d.ts +0 -2
  135. package/dist/validate/result.js +0 -1
  136. /package/dist/{serialisable.d.ts → entities/serialisable.d.ts} +0 -0
  137. /package/dist/{serialisable.js → entities/serialisable.js} +0 -0
  138. /package/dist/{check.d.ts → errors/check.d.ts} +0 -0
  139. /package/dist/{check.js → errors/check.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,26 +1,27 @@
1
- export type { BB, BBOptions } from './bb';
2
- export type { Builder, BuilderBindings, BuilderBindingsSerialised, BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSerialised, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, BuilderComponent, BuilderComponentDetails, BuilderComponentDetailsSerialised, BuilderComponentField, BuilderComponentFields, BuilderComponentFieldSerialised, BuilderComponentFieldsSerialised, BuilderComponentFieldValueType, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentVariantsValidated, BuilderComponentWhen, BuilderComponentWhenSerialised, BuilderDescription, BuilderDescriptionItem, BuilderEnableConfig, BuilderEntityKind, BuilderEntitySerialised, BuilderExpectation, BuilderExpectationKind, BuilderExpectations, BuilderExpectationSerialised, BuilderExpectationsSerialised, BuilderInstanceOf, BuilderInstanceValidated, BuilderMatchConfig, BuilderMatchSelectMap, BuilderModel, BuilderModels, BuilderModelSerialised, BuilderModelValidated, BuilderOption, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionValues, BuilderOptionValuesSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderPricing, BuilderPricingExpression, BuilderPricingLookupKey, BuilderPricingReduce, BuilderPricingSerialised, BuilderRefEntities, BuilderRefEntity, BuilderSelectType, BuilderSelectTypeLabels, BuilderSelectTypeSerialised, BuilderSelectTypeValues, BuilderSerialised, BuilderTags, BuilderToggleType, BuilderToggleTypeSerialised, BuilderToggleValueType, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSerialised, BuilderUIInput, BuilderUIInputMetadata, BuilderUIInputMetadataSerialised, BuilderUIInputs, BuilderUIInputSerialised, BuilderUIInputsSerialised, BuilderUIItem, BuilderUIItems, BuilderUIItemsSerialised, BuilderUIPage, BuilderUIPages, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIs, BuilderUISerialised, BuilderUIsSerialised, BuilderUIValidated, BuilderUnlessConfig, BuilderValidated, BuilderWhen, BuilderWhenConfig, BuilderWhenSerialised } from './entities/index';
1
+ export type { BB, BBOptions, BuilderEntityValidators } from './bb';
2
+ export type { Builder, BuilderBindings, BuilderBindingsSerialised, BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSerialised, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, BuilderComponent, BuilderComponentConfig, BuilderComponentConfigSerialised, BuilderComponentField, BuilderComponentFields, BuilderComponentFieldSerialised, BuilderComponentFieldsSerialised, BuilderComponentFieldValueType, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhen, BuilderComponentWhenSerialised, BuilderDescription, BuilderDescriptionItem, BuilderEnableConfig, BuilderEntityKind, BuilderEntitySerialised, BuilderExpectation, BuilderExpectationKind, BuilderExpectations, BuilderExpectationSerialised, BuilderExpectationsSerialised, BuilderInstanceOf, BuilderInstanceValidated, BuilderMatchConfig, BuilderMatchSelectMap, BuilderModel, BuilderModels, BuilderModelSerialised, BuilderModelValidated, BuilderOption, BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderPath, BuilderPaths, BuilderPricing, BuilderPricingExpression, BuilderPricingLookupKey, BuilderPricingReduce, BuilderPricingSerialised, BuilderReference, BuilderReferences, BuilderSelectConfig, BuilderSelectConfigLabels, BuilderSelectConfigSerialised, BuilderSelectConfigValues, BuilderSerialised, BuilderTags, BuilderToggleConfig, BuilderToggleConfigSerialised, BuilderToggleValueType, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSerialised, BuilderUIInput, BuilderUIInputMetadata, BuilderUIInputMetadataSerialised, BuilderUIInputs, BuilderUIInputSerialised, BuilderUIInputsSerialised, BuilderUIItem, BuilderUIItems, BuilderUIItemsSerialised, BuilderUIPage, BuilderUIPages, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIs, BuilderUISerialised, BuilderUIsSerialised, BuilderUIValidated, BuilderUnlessConfig, BuilderValidated, BuilderVariantsValidated, BuilderWhen, BuilderWhenConfig, BuilderWhenSerialised } from './entities/index';
3
3
  export type { BuilderEnvironment } from './environment';
4
- export type { BuilderError, BuilderErrorBase, BuilderErrorLocation, BuilderErrors } from './exception';
5
- export type { BuilderComponentVariants, BuilderInstance, BuilderInstanceInput, BuilderInstances, BuilderVariant, BuilderVariants } from './instance';
6
- export type { BuilderComponentVariantsValidationResult, BuilderErrorDuplicateName, BuilderErrorInvalidCollection, BuilderErrorInvalidCollectionBounds, BuilderErrorInvalidDetail, BuilderErrorInvalidInput, BuilderErrorInvalidOption, BuilderErrorInvalidPath, BuilderErrorInvalidPathReason, BuilderErrorInvalidPricing, BuilderErrorInvalidSelectMapKey, BuilderErrorInvalidPricingReason, BuilderErrorInvalidVariant, BuilderErrorMissingComponent, BuilderErrorMissingDetail, BuilderErrorMissingRate, BuilderErrorMissingReference, BuilderErrorMissingVariant, BuilderErrorUnboundParameter, BuilderErrorUnexpectedComponent, BuilderErrorUnexpectedDetail, BuilderErrorUnmetExpectation, BuilderErrorUnvalidated, BuilderInstanceValidationResult, BuilderModelValidationResult, BuilderOrder, BuilderRenderMetadata, BuilderRenderOption, BuilderRenderOptions, BuilderRenderPage, BuilderRenderPages, BuilderRenderResult, BuilderRenderUpdate, BuilderUIValidationResult, BuilderValidationResult, BuilderVariantsValidationOptions } from './mappers/index';
7
- export type { BuilderPath, BuilderPaths } from './paths';
4
+ export type { BuilderError, BuilderErrorLocation, BuilderErrors } from './errors/index';
5
+ export type { BuilderComponentVariant, BuilderComponentVariants, BuilderInstance, BuilderInstanceInput, BuilderInstances, BuilderVariants } from './instance';
6
+ export type { BuilderOrder, BuilderRenderMetadata, BuilderRenderOption, BuilderRenderOptions, BuilderRenderPage, BuilderRenderPages, BuilderRenderResult, BuilderRenderUpdate } from './mappers/index';
8
7
  export type { BuilderPrimitive, BuilderPrimitives } from './primitive';
9
8
  export type { BuilderParameter, BuilderParameterSerialised, BuilderRef, Paramable, ParamableSerialised } from './references';
9
+ export type { BuilderErrorKind, BuilderInstanceValidationResult, BuilderModelValidationResult, BuilderPricingValidationResult, BuilderUIValidationResult, BuilderValidationResult, BuilderVariantsValidationOptions, BuilderVariantsValidationResult } from './validate/index';
10
+ import { collectionConfig, collectionExpectation, componentConfig, componentExpectation, optionExpectation, uis } from './entities/index.js';
10
11
  export { bb } from './bb.js';
11
- export { builder, detailBoolean, detailNumber, detailString, input, model, parameter, pricing, ref, select, serialise, toggleBoolean, toggleNumber, toggleString } from './entities/index.js';
12
- export { BuilderException } from './exception.js';
12
+ export { builder, detailBoolean, detailNumber, detailString, input, model, pricing, select, serialise, toggleBoolean, toggleNumber, toggleString } from './entities/index.js';
13
+ export { BuilderException } from './errors/index.js';
14
+ export { parameter, ref } from './references.js';
13
15
  export { ordinal } from './mappers/index.js';
14
- import { collectionConfig, collectionExpectation, componentDetails, componentExpectation, optionExpectation, uis } from './entities/index.js';
15
16
  export declare const collection: typeof collectionConfig & {
16
17
  enable: <const Values extends import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>>(values: Values) => import(".").BuilderEnableConfig<Values>;
17
- match: <const MatchPayload extends import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>, const MatchPath extends import("./references").Paramable<import("./paths").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
18
- unless: <const Values extends import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>, const UnlessPath extends import("./references").Paramable<import("./paths").BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, values: Values) => import(".").BuilderUnlessConfig<Values, UnlessPath>;
18
+ match: <const MatchPayload extends import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>, const MatchPath extends import("./references").Paramable<import(".").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
19
+ unless: <const Values extends import("./references").Paramable<import(".").BuilderCollectionConfig<import("./references").Paramable<import("./entities/model").BuilderModelGeneric>, import("./references").Paramable<number>, import("./references").Paramable<number>>>, const UnlessPath extends import("./references").Paramable<import(".").BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, values: Values) => import(".").BuilderUnlessConfig<Values, UnlessPath>;
19
20
  };
20
- export declare const component: typeof componentDetails & {
21
- enable: <const Payload extends import("./references").Paramable<import(".").BuilderComponentDetails>>(payload?: Payload) => import(".").BuilderEnableConfig<Payload>;
22
- match: <const Payload extends import("./references").Paramable<import(".").BuilderComponentDetails>, const MatchPath extends import("./references").Paramable<import("./paths").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderComponentDetails>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<Payload, MatchPath, SelectMap>;
23
- unless: <const UnlessPath extends import("./references").Paramable<import("./paths").BuilderPath>, const Payload extends import("./references").Paramable<import(".").BuilderComponentDetails>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, payload?: Payload) => import(".").BuilderUnlessConfig<Payload, UnlessPath>;
21
+ export declare const component: typeof componentConfig & {
22
+ enable: <const Payload extends import("./references").Paramable<import(".").BuilderComponentConfig>>(payload?: Payload) => import(".").BuilderEnableConfig<Payload>;
23
+ match: <const Payload extends import("./references").Paramable<import(".").BuilderComponentConfig>, const MatchPath extends import("./references").Paramable<import(".").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderComponentConfig>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<Payload, MatchPath, SelectMap>;
24
+ unless: <const UnlessPath extends import("./references").Paramable<import(".").BuilderPath>, const Payload extends import("./references").Paramable<import(".").BuilderComponentConfig>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, payload?: Payload) => import(".").BuilderUnlessConfig<Payload, UnlessPath>;
24
25
  };
25
26
  export declare const has: {
26
27
  collection: typeof collectionExpectation;
@@ -28,8 +29,8 @@ export declare const has: {
28
29
  option: typeof optionExpectation;
29
30
  };
30
31
  export declare const option: {
31
- enable: <const Values extends import("./references").Paramable<import(".").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>(values: Values) => import(".").BuilderEnableConfig<Values>;
32
- match: <const MatchPayload extends import("./references").Paramable<import(".").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const MatchPath extends import("./references").Paramable<import("./paths").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
33
- unless: <const Values extends import("./references").Paramable<import(".").BuilderSelectType<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleType<import("valibot").GenericSchema<string | number | boolean | null>>>, const UnlessPath extends import("./references").Paramable<import("./paths").BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, values: Values) => import(".").BuilderUnlessConfig<Values, UnlessPath>;
32
+ enable: <const Values extends import("./references").Paramable<import(".").BuilderSelectConfig<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleConfig<import("valibot").GenericSchema<string | number | boolean | null>>>>(values: Values) => import(".").BuilderEnableConfig<Values>;
33
+ match: <const MatchPayload extends import("./references").Paramable<import(".").BuilderSelectConfig<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleConfig<import("valibot").GenericSchema<string | number | boolean | null>>>, const MatchPath extends import("./references").Paramable<import(".").BuilderPath>, const SelectMap extends import("./references").Paramable<import(".").BuilderMatchSelectMap<import("./references").Paramable<import(".").BuilderSelectConfig<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleConfig<import("valibot").GenericSchema<string | number | boolean | null>>>>>>(matchPath: MatchPath, selectMap: SelectMap) => import(".").BuilderMatchConfig<MatchPayload, MatchPath, SelectMap>;
34
+ unless: <const Values extends import("./references").Paramable<import(".").BuilderSelectConfig<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import(".").BuilderToggleConfig<import("valibot").GenericSchema<string | number | boolean | null>>>, const UnlessPath extends import("./references").Paramable<import(".").BuilderPath>>(unlessPath: UnlessPath, disabledValues: import("./primitive").BuilderPrimitives, values: Values) => import(".").BuilderUnlessConfig<Values, UnlessPath>;
34
35
  };
35
36
  export declare const ui: typeof uis;
package/dist/index.js CHANGED
@@ -1,12 +1,13 @@
1
+ import { collectionConfig, collectionExpectation, collectionWhen, componentConfig, componentExpectation, componentWhen, optionExpectation, optionWhen, uis } from './entities/index.js';
1
2
  export { bb } from './bb.js';
2
- export { builder, detailBoolean, detailNumber, detailString, input, model, parameter, pricing, ref, select, serialise, toggleBoolean, toggleNumber, toggleString } from './entities/index.js';
3
- export { BuilderException } from './exception.js';
3
+ export { builder, detailBoolean, detailNumber, detailString, input, model, pricing, select, serialise, toggleBoolean, toggleNumber, toggleString } from './entities/index.js';
4
+ export { BuilderException } from './errors/index.js';
5
+ export { parameter, ref } from './references.js';
4
6
  export { ordinal } from './mappers/index.js';
5
- import { collectionConfig, collectionExpectation, collectionWhen, componentDetails, componentExpectation, componentWhen, optionExpectation, optionWhen, uis } from './entities/index.js';
6
7
  export const collection = Object.assign(collectionConfig, {
7
8
  ...collectionWhen
8
9
  });
9
- export const component = Object.assign(componentDetails, {
10
+ export const component = Object.assign(componentConfig, {
10
11
  ...componentWhen
11
12
  });
12
13
  export const has = {
@@ -1,5 +1,5 @@
1
+ import type { BuilderPrimitive } from './primitive';
1
2
  import * as v from 'valibot';
2
- import { type BuilderPrimitive } from './primitive.js';
3
3
  export type BuilderInstance = {
4
4
  readonly [key: string]: BuilderPrimitive | BuilderInstances;
5
5
  };
@@ -7,7 +7,7 @@ export declare const BuilderInstanceSchema: v.GenericSchema<BuilderInstance>;
7
7
  export declare const BuilderInstancesSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.GenericSchema<BuilderInstance>, undefined>, v.ReadonlyAction<BuilderInstance[]>]>;
8
8
  export type BuilderInstances = v.InferOutput<typeof BuilderInstancesSchema>;
9
9
  export type BuilderInstanceInput = Readonly<Record<string, unknown>>;
10
- export declare const BuilderVariantSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
+ export declare const BuilderComponentVariantSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
11
11
  readonly instance: v.GenericSchema<BuilderInstance>;
12
12
  readonly details: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.NullableSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
13
13
  readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
@@ -18,8 +18,8 @@ export declare const BuilderVariantSchema: v.SchemaWithPipe<readonly [v.ObjectSc
18
18
  } | undefined;
19
19
  tags?: readonly string[] | undefined;
20
20
  }>]>;
21
- export type BuilderVariant = v.InferOutput<typeof BuilderVariantSchema>;
22
- export declare const BuilderVariantsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
21
+ export type BuilderComponentVariant = v.InferOutput<typeof BuilderComponentVariantSchema>;
22
+ export declare const BuilderComponentVariantsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
23
23
  readonly instance: v.GenericSchema<BuilderInstance>;
24
24
  readonly details: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.NullableSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
25
25
  readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
@@ -36,8 +36,8 @@ export declare const BuilderVariantsSchema: v.SchemaWithPipe<readonly [v.ArraySc
36
36
  } | undefined;
37
37
  tags?: readonly string[] | undefined;
38
38
  }>[]>]>;
39
- export type BuilderVariants = v.InferOutput<typeof BuilderVariantsSchema>;
40
- export declare const BuilderComponentVariantsSchema: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
39
+ export type BuilderComponentVariants = v.InferOutput<typeof BuilderComponentVariantsSchema>;
40
+ export declare const BuilderVariantsSchema: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
41
41
  readonly instance: v.GenericSchema<BuilderInstance>;
42
42
  readonly details: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.NullableSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
43
43
  readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
@@ -62,4 +62,4 @@ export declare const BuilderComponentVariantsSchema: v.SchemaWithPipe<readonly [
62
62
  tags?: readonly string[] | undefined;
63
63
  }>[];
64
64
  }>]>;
65
- export type BuilderComponentVariants = v.InferOutput<typeof BuilderComponentVariantsSchema>;
65
+ export type BuilderVariants = v.InferOutput<typeof BuilderVariantsSchema>;
package/dist/instance.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as v from 'valibot';
2
+ import { BuilderTagsSchema } from './entities/index.js';
2
3
  import { BuilderPrimitiveSchema } from './primitive.js';
3
- import { BuilderTagsSchema } from './entities/tags.js';
4
4
  export const BuilderInstanceSchema = v.pipe(v.record(v.string(), v.union([BuilderPrimitiveSchema, v.lazy(() => BuilderInstancesSchema)])), v.readonly());
5
5
  export const BuilderInstancesSchema = v.pipe(v.array(BuilderInstanceSchema), v.readonly());
6
- export const BuilderVariantSchema = v.pipe(v.object({
6
+ export const BuilderComponentVariantSchema = v.pipe(v.object({
7
7
  instance: BuilderInstanceSchema,
8
8
  details: v.optional(v.record(v.string(), BuilderPrimitiveSchema)),
9
9
  tags: v.optional(BuilderTagsSchema)
10
10
  }), v.readonly());
11
- export const BuilderVariantsSchema = v.pipe(v.array(BuilderVariantSchema), v.readonly());
12
- export const BuilderComponentVariantsSchema = v.pipe(v.record(v.string(), BuilderVariantsSchema), v.readonly());
11
+ export const BuilderComponentVariantsSchema = v.pipe(v.array(BuilderComponentVariantSchema), v.readonly());
12
+ export const BuilderVariantsSchema = v.pipe(v.record(v.string(), BuilderComponentVariantsSchema), v.readonly());
@@ -1,11 +1,9 @@
1
- export type { BuilderComponentVariantsValidationResult, BuilderErrorDuplicateName, BuilderErrorInvalidCollection, BuilderErrorInvalidCollectionBounds, BuilderErrorInvalidDetail, BuilderErrorInvalidInput, BuilderErrorInvalidOption, BuilderErrorInvalidPath, BuilderErrorInvalidPathReason, BuilderErrorInvalidPricing, BuilderErrorInvalidSelectMapKey, BuilderErrorInvalidPricingReason, BuilderErrorInvalidVariant, BuilderErrorMissingComponent, BuilderErrorMissingDetail, BuilderErrorMissingRate, BuilderErrorMissingReference, BuilderErrorMissingVariant, BuilderErrorUnboundParameter, BuilderErrorUnexpectedComponent, BuilderErrorUnexpectedDetail, BuilderErrorUnmetExpectation, BuilderErrorUnvalidated, BuilderInstanceValidationResult, BuilderModelValidationResult, BuilderPricingValidationResult, BuilderUIValidationResult, BuilderValidationResult, BuilderVariantsValidationOptions } from '../validate/index';
2
1
  export type { BuilderOrder } from './order';
3
2
  export type { BuilderRenderMetadata, BuilderRenderOption, BuilderRenderOptions, BuilderRenderPage, BuilderRenderPages, BuilderRenderResult, BuilderRenderUpdate } from './render/index';
4
- export { assertValidated, validateBuilder, validateInstance, validateModel, validatePricing, validateUI, validateVariants } from '../validate/index.js';
5
- export type { BuilderOptionGraph } from './variants/index.js';
3
+ export type { BuilderOptionGraph } from './variants/index';
6
4
  export { createInstance } from './instance.js';
7
- export { createVariants, optionGraph, variantsFor } from './variants/index.js';
8
5
  export { order } from './order.js';
9
6
  export { price } from './price.js';
10
7
  export { ordinal, render } from './render/index.js';
11
8
  export { resolveCollection, resolveCollections, resolveComponent, resolveComponents, resolveOption, resolveOptions } from './resolve.js';
9
+ export { createVariants, optionGraph, variantsFor } from './variants/index.js';
@@ -1,7 +1,6 @@
1
- export { assertValidated, validateBuilder, validateInstance, validateModel, validatePricing, validateUI, validateVariants } from '../validate/index.js';
2
1
  export { createInstance } from './instance.js';
3
- export { createVariants, optionGraph, variantsFor } from './variants/index.js';
4
2
  export { order } from './order.js';
5
3
  export { price } from './price.js';
6
4
  export { ordinal, render } from './render/index.js';
7
5
  export { resolveCollection, resolveCollections, resolveComponent, resolveComponents, resolveOption, resolveOptions } from './resolve.js';
6
+ export { createVariants, optionGraph, variantsFor } from './variants/index.js';
@@ -1,3 +1,3 @@
1
- import type { BuilderModelValidated, BuilderRefEntities, BuilderValidated } from '../entities/index';
1
+ import type { BuilderModelValidated, BuilderReferences, BuilderValidated } from '../entities/index';
2
2
  import type { BuilderInstance, BuilderInstanceInput } from '../instance';
3
- export declare function createInstance(entity: BuilderValidated | BuilderModelValidated, partial?: BuilderInstanceInput, refs?: BuilderRefEntities): BuilderInstance;
3
+ export declare function createInstance(entity: BuilderValidated | BuilderModelValidated, partial?: BuilderInstanceInput, references?: BuilderReferences): BuilderInstance;
@@ -1,19 +1,19 @@
1
- import { check } from '../check.js';
2
1
  import { modelsMerge, optionValueSchema } from '../entities/index.js';
2
+ import { check } from '../errors/index.js';
3
3
  import { BuilderInstanceSchema, BuilderInstancesSchema } from '../instance.js';
4
4
  import { resolveCollection, resolveOption } from './resolve.js';
5
- export function createInstance(entity, partial = {}, refs = []) {
5
+ export function createInstance(entity, partial = {}, references = []) {
6
6
  const model = 'model' in entity ? entity.model : entity;
7
- const instance = buildInstance(model, partial, refs);
7
+ const instance = buildInstance(model, partial, references);
8
8
  check.assert(BuilderInstanceSchema, instance);
9
9
  return instance;
10
10
  }
11
- function buildInstance(model, partial, refs) {
11
+ function buildInstance(model, partial, references) {
12
12
  const merged = modelsMerge(model);
13
13
  let instance = { ...partial };
14
14
  merged.options.forEach((option) => {
15
15
  const { name } = option;
16
- const payload = resolveOption(option, model, instance, refs);
16
+ const payload = resolveOption(option, model, instance, references);
17
17
  if (payload == null) {
18
18
  return;
19
19
  }
@@ -24,7 +24,7 @@ function buildInstance(model, partial, refs) {
24
24
  });
25
25
  merged.collections.forEach((collection) => {
26
26
  const { name } = collection;
27
- const payload = resolveCollection(collection, model, instance, refs);
27
+ const payload = resolveCollection(collection, model, instance, references);
28
28
  if (payload == null) {
29
29
  return;
30
30
  }
@@ -33,7 +33,7 @@ function buildInstance(model, partial, refs) {
33
33
  ? existing
34
34
  : [];
35
35
  const count = Math.max(existingItems.length, payload.min);
36
- const items = Array.from({ length: count }, (_, index) => buildInstance(payload.model, existingItems[index] ?? {}, refs));
36
+ const items = Array.from({ length: count }, (_, index) => buildInstance(payload.model, existingItems[index] ?? {}, references));
37
37
  instance = { ...instance, [name]: items };
38
38
  });
39
39
  return instance;
@@ -1,6 +1,6 @@
1
- import type { BuilderComponentVariantsValidated, BuilderInstanceValidated, BuilderModelValidated, BuilderRefEntities } from '../entities/index';
2
- import type { BuilderVariant } from '../instance';
1
+ import type { BuilderInstanceValidated, BuilderModelValidated, BuilderReferences, BuilderVariantsValidated } from '../entities/index';
2
+ import type { BuilderComponentVariant } from '../instance';
3
3
  export interface BuilderOrder {
4
- readonly [key: string]: BuilderVariant | BuilderOrder | ReadonlyArray<BuilderOrder> | null;
4
+ readonly [key: string]: BuilderComponentVariant | BuilderOrder | ReadonlyArray<BuilderOrder> | null;
5
5
  }
6
- export declare function order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants: BuilderComponentVariantsValidated, refs?: BuilderRefEntities): BuilderOrder;
6
+ export declare function order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants: BuilderVariantsValidated, references?: BuilderReferences): BuilderOrder;
@@ -1,10 +1,10 @@
1
- import { check } from '../check.js';
1
+ import { check } from '../errors/index.js';
2
2
  import { BuilderInstancesSchema } from '../instance.js';
3
3
  import { resolveCollection, resolveComponent } from './resolve.js';
4
- export function order(model, instance, variants, refs = []) {
4
+ export function order(model, instance, variants, references = []) {
5
5
  const result = {};
6
6
  model.components.forEach((component) => {
7
- if (resolveComponent(component, model, instance, refs) == null) {
7
+ if (resolveComponent(component, model, instance, references) == null) {
8
8
  return;
9
9
  }
10
10
  const componentVariants = variants[component.name] ?? [];
@@ -13,13 +13,13 @@ export function order(model, instance, variants, refs = []) {
13
13
  });
14
14
  model.collections.forEach((collection) => {
15
15
  const { name } = collection;
16
- const payload = resolveCollection(collection, model, instance, refs);
16
+ const payload = resolveCollection(collection, model, instance, references);
17
17
  if (payload == null) {
18
18
  return;
19
19
  }
20
20
  const itemInstances = instance[name];
21
21
  check.assert(BuilderInstancesSchema, itemInstances);
22
- result[name] = itemInstances.map((itemInstance) => order(payload.model, itemInstance, variants, refs));
22
+ result[name] = itemInstances.map((itemInstance) => order(payload.model, itemInstance, variants, references));
23
23
  });
24
24
  return result;
25
25
  }
@@ -1,7 +1,7 @@
1
1
  import * as v from 'valibot';
2
- import { check } from '../check.js';
3
2
  import { BuilderPricingExpressionSchema } from '../entities/index.js';
4
- import { BuilderVariantSchema } from '../instance.js';
3
+ import { check } from '../errors/index.js';
4
+ import { BuilderComponentVariantSchema } from '../instance.js';
5
5
  const NumberSchema = v.number();
6
6
  export function price(pricingInput, order) {
7
7
  const { rates, formula } = pricingInput;
@@ -10,31 +10,31 @@ export function price(pricingInput, order) {
10
10
  }
11
11
  const variants = collectVariants(order);
12
12
  return evaluate(formula);
13
- function evaluate(expression, currentVariant = null) {
13
+ function evaluate(expression, variant = null) {
14
14
  check.assert(BuilderPricingExpressionSchema, expression);
15
15
  if (check.is(NumberSchema, expression)) {
16
16
  return expression;
17
17
  }
18
18
  switch (expression.kind) {
19
19
  case 'variantPrice':
20
- return variantPrice(currentVariant);
20
+ return variantPrice(variant);
21
21
  case 'lookup':
22
- return evaluateLookup(expression, currentVariant);
22
+ return evaluateLookup(expression, variant);
23
23
  case 'variants':
24
24
  return evaluateVariants(expression);
25
25
  case 'add':
26
- return combine(expression.left, expression.right, currentVariant, (l, r) => l + r);
26
+ return combine(expression.left, expression.right, variant, (l, r) => l + r);
27
27
  case 'sub':
28
- return combine(expression.left, expression.right, currentVariant, (l, r) => l - r);
28
+ return combine(expression.left, expression.right, variant, (l, r) => l - r);
29
29
  case 'mul':
30
- return combine(expression.left, expression.right, currentVariant, (l, r) => l * r);
30
+ return combine(expression.left, expression.right, variant, (l, r) => l * r);
31
31
  case 'div':
32
- return combine(expression.left, expression.right, currentVariant, (l, r) => l / r);
32
+ return combine(expression.left, expression.right, variant, (l, r) => l / r);
33
33
  }
34
34
  }
35
- function combine(left, right, currentVariant, operation) {
36
- const leftValue = evaluate(left, currentVariant);
37
- const rightValue = evaluate(right, currentVariant);
35
+ function combine(left, right, variant, operation) {
36
+ const leftValue = evaluate(left, variant);
37
+ const rightValue = evaluate(right, variant);
38
38
  if (leftValue == null || rightValue == null) {
39
39
  return null;
40
40
  }
@@ -54,8 +54,8 @@ export function price(pricingInput, order) {
54
54
  const candidate = variant?.details?.price;
55
55
  return check.is(NumberSchema, candidate) ? candidate : null;
56
56
  }
57
- function evaluateLookup(expression, currentVariant) {
58
- const keys = resolveKey(expression.key, currentVariant);
57
+ function evaluateLookup(expression, variant) {
58
+ const keys = resolveKey(expression.key, variant);
59
59
  const matches = keys
60
60
  .map((key) => lookupRate(expression.rate, key))
61
61
  .filter((value) => value != null);
@@ -73,12 +73,12 @@ export function price(pricingInput, order) {
73
73
  }
74
74
  return reduceValues(results, expression.reduce ?? 'sum');
75
75
  }
76
- function resolveKey(key, currentVariant) {
76
+ function resolveKey(key, variant) {
77
77
  switch (key.kind) {
78
78
  case 'variantTags':
79
- return currentVariant?.tags ?? [];
79
+ return variant?.tags ?? [];
80
80
  case 'option': {
81
- const value = currentVariant?.instance?.[key.name];
81
+ const value = variant?.instance?.[key.name];
82
82
  return value == null ? [] : [String(value)];
83
83
  }
84
84
  }
@@ -100,7 +100,7 @@ function collectVariants(order) {
100
100
  if (value == null) {
101
101
  return [];
102
102
  }
103
- if (check.is(BuilderVariantSchema, value)) {
103
+ if (check.is(BuilderComponentVariantSchema, value)) {
104
104
  return [value];
105
105
  }
106
106
  if (Array.isArray(value)) {
@@ -1,4 +1,4 @@
1
- import type { BuilderOptionValuesSerialised } from '../../entities/index';
1
+ import type { BuilderOptionConfigSerialised } from '../../entities/index';
2
2
  import type { BuilderPrimitive } from '../../primitive';
3
3
  import type { BuilderInstance } from '../../instance';
4
4
  import * as v from 'valibot';
@@ -11,7 +11,7 @@ export type BuilderRenderOption = Readonly<{
11
11
  name: string;
12
12
  value: BuilderPrimitive;
13
13
  update: BuilderRenderUpdate;
14
- option: BuilderOptionValuesSerialised;
14
+ option: BuilderOptionConfigSerialised;
15
15
  displayName?: string;
16
16
  kind?: string;
17
17
  metadata?: BuilderRenderMetadata;
@@ -1,7 +1,7 @@
1
- import type { BuilderDescription, BuilderInstanceValidated, BuilderRefEntities, BuilderValidated } from '../../entities/index';
1
+ import type { BuilderDescription, BuilderInstanceValidated, BuilderReferences, BuilderValidated } from '../../entities/index';
2
2
  import type { BuilderRenderPages } from './pages';
3
3
  export type BuilderRenderResult = Readonly<{
4
4
  layout: BuilderRenderPages;
5
5
  description: BuilderDescription;
6
6
  }>;
7
- export declare function render(builder: BuilderValidated, instance: BuilderInstanceValidated, refs?: BuilderRefEntities): BuilderRenderResult;
7
+ export declare function render(builder: BuilderValidated, instance: BuilderInstanceValidated, references?: BuilderReferences): BuilderRenderResult;
@@ -1,12 +1,12 @@
1
- import { BuilderRenderMetadataSchema } from './pages.js';
2
1
  import * as v from 'valibot';
3
- import { check } from '../../check.js';
2
+ import { check } from '../../errors/index.js';
4
3
  import { BuilderInstancesSchema } from '../../instance.js';
5
4
  import { BuilderPrimitiveSchema } from '../../primitive.js';
6
5
  import { createInstance } from '../instance.js';
7
- import { resolveCollection, resolvePath, resolveRef } from '../resolve.js';
6
+ import { resolveCollection, resolvePath, resolveReference } from '../resolve.js';
8
7
  import { ordinal } from './ordinal.js';
9
- export function render(builder, instance, refs = []) {
8
+ import { BuilderRenderMetadataSchema } from './pages.js';
9
+ export function render(builder, instance, references = []) {
10
10
  const layout = [];
11
11
  const description = [];
12
12
  walkTree(builder.ui);
@@ -40,7 +40,7 @@ export function render(builder, instance, refs = []) {
40
40
  function emitPage(page, model, collectionPath, labelContext, currentInstance) {
41
41
  const options = page.inputs.flatMap((input) => {
42
42
  const { path } = input;
43
- const found = resolvePath(model, currentInstance, path, refs);
43
+ const found = resolvePath(model, currentInstance, path, references);
44
44
  if (found == null) {
45
45
  return [];
46
46
  }
@@ -51,7 +51,7 @@ export function render(builder, instance, refs = []) {
51
51
  name: found.name,
52
52
  option: found.payload,
53
53
  value: found.value,
54
- update: (updateInstance, updateValue) => createInstance(builder, setPath(updateInstance, fullPath, updateValue), refs),
54
+ update: (updateInstance, updateValue) => createInstance(builder, setPath(updateInstance, fullPath, updateValue), references),
55
55
  displayName: input.displayName && composeString(input.displayName, 'displayName'),
56
56
  kind: input.kind && composeString(input.kind, 'kind'),
57
57
  metadata: input.metadata && composeMetadata(input.metadata)
@@ -67,7 +67,7 @@ export function render(builder, instance, refs = []) {
67
67
  const composedLabel = composeLabel(describe.label, labelContext);
68
68
  const values = describe.inputs.flatMap((input) => {
69
69
  const { path } = input;
70
- const found = resolvePath(model, currentInstance, path, refs);
70
+ const found = resolvePath(model, currentInstance, path, references);
71
71
  if (found?.value == null) {
72
72
  return [];
73
73
  }
@@ -80,7 +80,7 @@ export function render(builder, instance, refs = []) {
80
80
  description.push([composedLabel, values.join(' ')]);
81
81
  }
82
82
  function composeLabel(label, labelContext = []) {
83
- const resolved = resolveRef(label, refs);
83
+ const resolved = resolveReference(label, references);
84
84
  check.assert(v.string(), resolved, 'Label did not resolve to a string! ❌');
85
85
  if (labelContext.length === 0) {
86
86
  return resolved;
@@ -91,18 +91,18 @@ export function render(builder, instance, refs = []) {
91
91
  return `${labelContext.join(', ')}, ${resolved}`;
92
92
  }
93
93
  function composeString(value, fieldLabel) {
94
- const resolved = resolveRef(value, refs);
94
+ const resolved = resolveReference(value, references);
95
95
  check.assert(v.string(), resolved, `Input ${fieldLabel} did not resolve to a string! ❌`);
96
96
  return resolved;
97
97
  }
98
98
  function composeMetadata(value) {
99
- const resolved = resolveRef(value, refs);
99
+ const resolved = resolveReference(value, references);
100
100
  check.assert(BuilderRenderMetadataSchema, resolved, 'Input metadata did not resolve to an object! ❌');
101
- return Object.fromEntries(Object.entries(resolved).map(([key, entry]) => [key, resolveRef(entry, refs)]));
101
+ return Object.fromEntries(Object.entries(resolved).map(([key, entry]) => [key, resolveReference(entry, references)]));
102
102
  }
103
103
  function findCollection(model, instance, collectionName) {
104
104
  const entry = model.collections.find((candidate) => candidate.name === collectionName);
105
- return entry == null ? null : resolveCollection(entry, model, instance, refs);
105
+ return entry == null ? null : resolveCollection(entry, model, instance, references);
106
106
  }
107
107
  }
108
108
  function setPath(container, path, value) {
@@ -1,17 +1,16 @@
1
- import type { BuilderCollectionConfigSerialised, BuilderCollectionConfigValidated, BuilderCollectionSerialised, BuilderCollectionValidated, BuilderComponentDetailsSerialised, BuilderComponentDetailsValidated, BuilderComponentSerialised, BuilderComponentValidated, BuilderModelValidated, BuilderOptionSerialised, BuilderOptionValidated, BuilderOptionValuesSerialised, BuilderOptionValuesValidated, BuilderRefEntities } from '../entities/index';
1
+ import type { BuilderCollectionConfigsSerialised, BuilderCollectionConfigValidated, BuilderCollectionSerialised, BuilderCollectionValidated, BuilderComponentConfigsSerialised, BuilderComponentConfigValidated, BuilderComponentSerialised, BuilderComponentValidated, BuilderModelValidated, BuilderOptionConfigsSerialised, BuilderOptionConfigValidated, BuilderOptionSerialised, BuilderOptionValidated, BuilderPath, BuilderReferences } from '../entities/index';
2
2
  import type { BuilderInstance } from '../instance';
3
- import type { BuilderPath } from '../paths';
4
- export declare function resolveOption(option: BuilderOptionValidated, model: BuilderModelValidated, instance: unknown, refs?: BuilderRefEntities): BuilderOptionValuesValidated | null;
5
- export declare function resolveOptions(option: BuilderOptionSerialised, refs?: BuilderRefEntities): ReadonlyArray<BuilderOptionValuesSerialised>;
6
- export declare function resolveComponent(component: BuilderComponentValidated, model: BuilderModelValidated, instance: unknown, refs?: BuilderRefEntities): BuilderComponentDetailsValidated | null;
7
- export declare function resolveComponents(component: BuilderComponentSerialised, refs?: BuilderRefEntities): ReadonlyArray<BuilderComponentDetailsSerialised>;
8
- export declare function resolveCollection(collection: BuilderCollectionValidated, model: BuilderModelValidated, instance: unknown, refs?: BuilderRefEntities): BuilderCollectionConfigValidated | null;
9
- export declare function resolveCollections(collection: BuilderCollectionSerialised, refs?: BuilderRefEntities): ReadonlyArray<BuilderCollectionConfigSerialised>;
10
- export declare function resolveRef(value: unknown, refs: BuilderRefEntities): unknown;
3
+ export declare function resolveOption(option: BuilderOptionValidated, model: BuilderModelValidated, instance: unknown, references?: BuilderReferences): BuilderOptionConfigValidated | null;
4
+ export declare function resolveOptions(option: BuilderOptionSerialised, references?: BuilderReferences): BuilderOptionConfigsSerialised;
5
+ export declare function resolveComponent(component: BuilderComponentValidated, model: BuilderModelValidated, instance: unknown, references?: BuilderReferences): BuilderComponentConfigValidated | null;
6
+ export declare function resolveComponents(component: BuilderComponentSerialised, references?: BuilderReferences): BuilderComponentConfigsSerialised;
7
+ export declare function resolveCollection(collection: BuilderCollectionValidated, model: BuilderModelValidated, instance: unknown, references?: BuilderReferences): BuilderCollectionConfigValidated | null;
8
+ export declare function resolveCollections(collection: BuilderCollectionSerialised, references?: BuilderReferences): BuilderCollectionConfigsSerialised;
9
+ export declare function resolveReference(value: unknown, references: BuilderReferences): unknown;
11
10
  export type ResolvedPath = {
12
11
  readonly name: string;
13
- readonly payload: BuilderOptionValuesValidated;
12
+ readonly payload: BuilderOptionConfigValidated;
14
13
  readonly value: unknown;
15
14
  };
16
- export declare function resolvePath(model: BuilderModelValidated, instance: unknown, path: BuilderPath, refs?: BuilderRefEntities): ResolvedPath | null;
17
- export declare function resolveItems(model: BuilderModelValidated, instance: unknown, pairs: ReadonlyArray<string | number>, refs?: BuilderRefEntities): readonly [BuilderModelValidated, BuilderInstance] | null;
15
+ export declare function resolvePath(model: BuilderModelValidated, instance: unknown, path: BuilderPath, references?: BuilderReferences): ResolvedPath | null;
16
+ export declare function resolveItems(model: BuilderModelValidated, instance: unknown, pairs: ReadonlyArray<string | number>, references?: BuilderReferences): readonly [BuilderModelValidated, BuilderInstance] | null;