@builder-builder/builder 0.0.20 → 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 (118) hide show
  1. package/dist/bb.d.ts +10 -11
  2. package/dist/bb.js +25 -2
  3. package/dist/entities/builder/bind.d.ts +1 -1
  4. package/dist/entities/builder/builder.js +1 -1
  5. package/dist/entities/collection/collection.d.ts +689 -1
  6. package/dist/entities/collection/collection.js +5 -2
  7. package/dist/entities/collection/config.d.ts +189 -0
  8. package/dist/entities/collection/config.js +12 -2
  9. package/dist/entities/collection/expectation.d.ts +1 -1
  10. package/dist/entities/collection/index.d.ts +2 -2
  11. package/dist/entities/collection/index.js +2 -2
  12. package/dist/entities/collection/when.d.ts +1 -1
  13. package/dist/entities/component/component.d.ts +61 -7
  14. package/dist/entities/component/component.js +5 -2
  15. package/dist/entities/component/config.d.ts +10 -0
  16. package/dist/entities/component/config.js +19 -2
  17. package/dist/entities/component/field.js +1 -1
  18. package/dist/entities/component/index.d.ts +2 -2
  19. package/dist/entities/component/index.js +2 -2
  20. package/dist/entities/component/when.d.ts +1 -1
  21. package/dist/entities/expectation.d.ts +4 -0
  22. package/dist/entities/expectation.js +3 -1
  23. package/dist/entities/index.d.ts +15 -13
  24. package/dist/entities/index.js +11 -10
  25. package/dist/entities/kind.d.ts +10 -7
  26. package/dist/entities/kind.js +39 -5
  27. package/dist/entities/model/bind.d.ts +1 -1
  28. package/dist/entities/model/methods.d.ts +4 -4
  29. package/dist/entities/model/model.js +1 -1
  30. package/dist/entities/option/index.d.ts +3 -3
  31. package/dist/entities/option/index.js +3 -3
  32. package/dist/entities/option/option.d.ts +85 -7
  33. package/dist/entities/option/option.js +5 -2
  34. package/dist/entities/option/select.d.ts +10 -0
  35. package/dist/entities/option/select.js +12 -1
  36. package/dist/entities/option/toggle.d.ts +7 -0
  37. package/dist/entities/option/toggle.js +12 -1
  38. package/dist/entities/option/when.d.ts +1 -1
  39. package/dist/{paths.d.ts → entities/paths.d.ts} +2 -0
  40. package/dist/{paths.js → entities/paths.js} +3 -0
  41. package/dist/entities/pricing/index.d.ts +1 -1
  42. package/dist/entities/pricing/index.js +1 -1
  43. package/dist/entities/pricing/pricing.js +1 -1
  44. package/dist/entities/pricing/rates.d.ts +5 -0
  45. package/dist/entities/pricing/rates.js +3 -1
  46. package/dist/entities/references.d.ts +723 -6
  47. package/dist/entities/references.js +7 -1
  48. package/dist/entities/serialise.d.ts +48 -42
  49. package/dist/entities/serialise.js +9 -3
  50. package/dist/entities/ui/describe.d.ts +15 -0
  51. package/dist/entities/ui/describe.js +11 -2
  52. package/dist/entities/ui/index.d.ts +4 -4
  53. package/dist/entities/ui/index.js +4 -4
  54. package/dist/entities/ui/input.d.ts +11 -1
  55. package/dist/entities/ui/input.js +4 -2
  56. package/dist/entities/ui/page.d.ts +15 -0
  57. package/dist/entities/ui/page.js +11 -2
  58. package/dist/entities/ui/pages.d.ts +132 -0
  59. package/dist/entities/ui/pages.js +12 -2
  60. package/dist/entities/ui/ui.d.ts +1 -1
  61. package/dist/entities/ui/ui.js +2 -2
  62. package/dist/entities/ui/uis.js +1 -1
  63. package/dist/entities/validated.d.ts +26 -18
  64. package/dist/entities/when.d.ts +4 -3
  65. package/dist/entities/when.js +22 -2
  66. package/dist/environment.d.ts +2 -2
  67. package/dist/{validate → errors}/errors.d.ts +57 -35
  68. package/dist/{validate → errors}/errors.js +40 -5
  69. package/dist/errors/exception.d.ts +5 -0
  70. package/dist/{exception.js → errors/exception.js} +0 -3
  71. package/dist/errors/index.d.ts +4 -0
  72. package/dist/errors/index.js +3 -0
  73. package/dist/index.d.ts +14 -14
  74. package/dist/index.js +3 -2
  75. package/dist/instance.d.ts +7 -7
  76. package/dist/instance.js +4 -4
  77. package/dist/mappers/instance.js +1 -1
  78. package/dist/mappers/order.d.ts +4 -4
  79. package/dist/mappers/order.js +1 -1
  80. package/dist/mappers/price.js +18 -18
  81. package/dist/mappers/render/render.js +1 -1
  82. package/dist/mappers/resolve.d.ts +1 -2
  83. package/dist/mappers/resolve.js +3 -20
  84. package/dist/mappers/variants/option-graph.d.ts +1 -2
  85. package/dist/mappers/variants/option-graph.js +2 -3
  86. package/dist/mappers/variants/variants.d.ts +2 -2
  87. package/dist/mappers/variants/variants.js +1 -1
  88. package/dist/private.d.ts +1 -2
  89. package/dist/private.js +1 -2
  90. package/dist/references.js +1 -1
  91. package/dist/validate/brand.js +1 -2
  92. package/dist/validate/builder.d.ts +2 -3
  93. package/dist/validate/builder.js +2 -3
  94. package/dist/validate/expectations.d.ts +1 -1
  95. package/dist/validate/index.d.ts +4 -2
  96. package/dist/validate/index.js +1 -0
  97. package/dist/validate/instance.d.ts +2 -3
  98. package/dist/validate/instance.js +1 -2
  99. package/dist/validate/model.d.ts +2 -3
  100. package/dist/validate/model.js +39 -44
  101. package/dist/validate/paths.d.ts +2 -3
  102. package/dist/validate/paths.js +1 -1
  103. package/dist/validate/pricing.d.ts +2 -3
  104. package/dist/validate/pricing.js +2 -3
  105. package/dist/validate/resolve.d.ts +1 -1
  106. package/dist/validate/resolve.js +1 -1
  107. package/dist/validate/ui.d.ts +2 -3
  108. package/dist/validate/ui.js +13 -4
  109. package/dist/validate/variants.d.ts +4 -5
  110. package/dist/validate/variants.js +4 -5
  111. package/package.json +7 -2
  112. package/dist/exception.d.ts +0 -13
  113. package/dist/validate/result.d.ts +0 -2
  114. package/dist/validate/result.js +0 -1
  115. /package/dist/{serialisable.d.ts → entities/serialisable.d.ts} +0 -0
  116. /package/dist/{serialisable.js → entities/serialisable.js} +0 -0
  117. /package/dist/{check.d.ts → errors/check.d.ts} +0 -0
  118. /package/dist/{check.js → errors/check.js} +0 -0
package/dist/bb.d.ts CHANGED
@@ -1,25 +1,24 @@
1
- import type { BuilderComponentVariantsValidated, BuilderInstanceValidated, BuilderModelValidated, BuilderPricingValidated, BuilderReferences, BuilderUIValidated, BuilderValidated } from './entities/index';
1
+ import type { BuilderEntityKind, BuilderInstanceValidated, BuilderModelValidated, BuilderReferences, BuilderValidated, BuilderValidatedMap, BuilderVariantsValidated } from './entities/index';
2
2
  import type { BuilderEnvironment, BuilderEnvironmentResult } from './environment';
3
- import type { BuilderComponentVariants, BuilderInstance, BuilderInstanceInput } from './instance';
3
+ import type { BuilderInstance, BuilderInstanceInput, BuilderVariants } from './instance';
4
4
  import type { BuilderOrder, BuilderRenderResult } from './mappers/index';
5
5
  import type { BuilderVariantsValidationOptions } from './validate/index';
6
6
  export type BBOptions = {
7
7
  readonly references?: BuilderReferences;
8
8
  };
9
+ export type BuilderEntityValidators<Env extends BuilderEnvironment> = {
10
+ readonly [Kind in BuilderEntityKind]: (input: unknown) => BuilderEnvironmentResult<BuilderValidatedMap[Kind], Env>;
11
+ };
9
12
  export type BB<Env extends BuilderEnvironment = 'production'> = {
10
- readonly validate: {
11
- builder(input: unknown): BuilderEnvironmentResult<BuilderValidated, Env>;
12
- model(input: unknown): BuilderEnvironmentResult<BuilderModelValidated, Env>;
13
- pricing(input: unknown): BuilderEnvironmentResult<BuilderPricingValidated, Env>;
14
- ui(input: unknown): BuilderEnvironmentResult<BuilderUIValidated, Env>;
13
+ readonly validate: BuilderEntityValidators<Env> & {
15
14
  instance(model: BuilderModelValidated, instance: BuilderInstance): BuilderEnvironmentResult<BuilderInstanceValidated, Env>;
16
- variants(model: BuilderModelValidated, input: unknown, options?: BuilderVariantsValidationOptions): BuilderEnvironmentResult<BuilderComponentVariantsValidated, Env>;
15
+ variants(model: BuilderModelValidated, input: unknown, options?: BuilderVariantsValidationOptions): BuilderEnvironmentResult<BuilderVariantsValidated, Env>;
17
16
  };
18
17
  instance(entity: BuilderValidated | BuilderModelValidated, partial?: BuilderInstanceInput): BuilderInstance;
19
18
  render(builder: BuilderValidated, instance: BuilderInstanceValidated): BuilderRenderResult;
20
- order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants: BuilderComponentVariantsValidated): BuilderOrder;
21
- price(pricing: BuilderPricingValidated, order: BuilderOrder): number | null;
22
- variants(entity: BuilderValidated | BuilderModelValidated): BuilderComponentVariants;
19
+ order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants: BuilderVariantsValidated): BuilderOrder;
20
+ price(pricing: BuilderValidatedMap['pricing'], order: BuilderOrder): number | null;
21
+ variants(entity: BuilderValidated | BuilderModelValidated): BuilderVariants;
23
22
  };
24
23
  export declare const bb: typeof bbProduction & {
25
24
  development: typeof bbDevelopment;
package/dist/bb.js CHANGED
@@ -1,4 +1,5 @@
1
- import { BuilderException } from './exception.js';
1
+ import { validateBoolean, validateCollectionConfig, validateCollectionSelectMap, validateCollectionWhen, validateComponentConfig, validateComponentSelectMap, validateComponentWhen, validateExpectations, validateNumber, validateOptionSelectMap, validateOptionWhen, validatePath, validatePaths, validatePricingRates, validateSelect, validateString, validateToggle, validateUIDescribe, validateUIInput, validateUIItems, validateUIPage, validateUIPages } from './entities/index.js';
2
+ import { BuilderException } from './errors/index.js';
2
3
  import { createInstance, createVariants, order, price, render } from './mappers/index.js';
3
4
  import { assertValidated, validateBuilder, validateInstance, validateModel, validatePricing, validateUI, validateVariants } from './validate/index.js';
4
5
  export const bb = Object.assign(bbProduction, {
@@ -17,8 +18,30 @@ function bbFactory(environment, references = []) {
17
18
  validate: {
18
19
  builder: (input) => throwInProd(validateBuilder(input, references)),
19
20
  model: (input) => throwInProd(validateModel(input, references)),
20
- pricing: (input) => throwInProd(validatePricing(input, references)),
21
+ select: (input) => throwInProd(validateSelect(input, references)),
22
+ toggle: (input) => throwInProd(validateToggle(input, references)),
23
+ optionSelectMap: (input) => throwInProd(validateOptionSelectMap(input, references)),
24
+ optionWhen: (input) => throwInProd(validateOptionWhen(input, references)),
25
+ componentConfig: (input) => throwInProd(validateComponentConfig(input, references)),
26
+ componentSelectMap: (input) => throwInProd(validateComponentSelectMap(input, references)),
27
+ componentWhen: (input) => throwInProd(validateComponentWhen(input, references)),
28
+ collectionConfig: (input) => throwInProd(validateCollectionConfig(input, references)),
29
+ collectionSelectMap: (input) => throwInProd(validateCollectionSelectMap(input, references)),
30
+ collectionWhen: (input) => throwInProd(validateCollectionWhen(input, references)),
21
31
  ui: (input) => throwInProd(validateUI(input, references)),
32
+ uiDescribe: (input) => throwInProd(validateUIDescribe(input, references)),
33
+ uiItems: (input) => throwInProd(validateUIItems(input, references)),
34
+ uiPage: (input) => throwInProd(validateUIPage(input, references)),
35
+ uiPages: (input) => throwInProd(validateUIPages(input, references)),
36
+ uiInput: (input) => throwInProd(validateUIInput(input, references)),
37
+ pricing: (input) => throwInProd(validatePricing(input, references)),
38
+ pricingRates: (input) => throwInProd(validatePricingRates(input, references)),
39
+ expectations: (input) => throwInProd(validateExpectations(input, references)),
40
+ paths: (input) => throwInProd(validatePaths(input, references)),
41
+ path: (input) => throwInProd(validatePath(input, references)),
42
+ number: (input) => throwInProd(validateNumber(input, references)),
43
+ string: (input) => throwInProd(validateString(input, references)),
44
+ boolean: (input) => throwInProd(validateBoolean(input, references)),
22
45
  instance: (model, instance) => throwInProd(validateInstance(model, instance)),
23
46
  variants: (model, input, variantOptions) => throwInProd(validateVariants(model, input, variantOptions))
24
47
  },
@@ -1,4 +1,4 @@
1
- import type { BuilderEntitySerialised } from '../kind';
2
1
  import type { BuilderRefSerialised } from '../../references';
2
+ import type { BuilderEntitySerialised } from '../kind';
3
3
  export type BuilderBindings = Readonly<Record<string, unknown>>;
4
4
  export type BuilderBindingsSerialised = Readonly<Record<string, BuilderEntitySerialised | BuilderRefSerialised>>;
@@ -1,8 +1,8 @@
1
1
  import * as v from 'valibot';
2
2
  import { BuilderRefSerialisedSchema } from '../../references.js';
3
- import { serialisable } from '../../serialisable.js';
4
3
  import { BuilderModel, BuilderModelSerialisedSchema } from '../model/index.js';
5
4
  import { BuilderPricing, BuilderPricingSerialisedSchema } from '../pricing/index.js';
5
+ import { serialisable } from '../serialisable.js';
6
6
  import { BuilderTagsSchema } from '../tags.js';
7
7
  import { BuilderUI, BuilderUISerialisedSchema } from '../ui/index.js';
8
8
  export class Builder {