@builder-builder/builder 0.0.27 → 0.0.28

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 (98) hide show
  1. package/dist/bb.js +4 -4
  2. package/dist/client/client.d.ts +2 -1
  3. package/dist/client/client.js +4 -1
  4. package/dist/client/public.d.ts +2 -2
  5. package/dist/client/public.js +1 -1
  6. package/dist/client/schema.d.ts +79 -18
  7. package/dist/client/schema.js +6 -1
  8. package/dist/components/BuilderRender.svelte.d.ts +2 -2
  9. package/dist/components/index.js +4377 -4303
  10. package/dist/components/index.min.js +3 -0
  11. package/dist/entities/collection/collection.d.ts +66 -66
  12. package/dist/entities/collection/config.d.ts +17 -17
  13. package/dist/entities/collection/when.d.ts +1 -1
  14. package/dist/entities/component/component.d.ts +64 -64
  15. package/dist/entities/component/config.d.ts +33 -33
  16. package/dist/entities/component/config.js +18 -16
  17. package/dist/entities/component/detail.d.ts +61 -0
  18. package/dist/entities/component/detail.js +71 -0
  19. package/dist/entities/component/index.d.ts +2 -2
  20. package/dist/entities/component/index.js +1 -1
  21. package/dist/entities/component/when.d.ts +2 -2
  22. package/dist/entities/expectation.d.ts +1 -1
  23. package/dist/entities/index.d.ts +4 -4
  24. package/dist/entities/index.js +1 -1
  25. package/dist/entities/kind.d.ts +3 -3
  26. package/dist/entities/kind.js +20 -20
  27. package/dist/entities/model/methods.d.ts +1 -1
  28. package/dist/entities/option/config.d.ts +7 -7
  29. package/dist/entities/option/config.js +1 -1
  30. package/dist/entities/option/index.d.ts +4 -4
  31. package/dist/entities/option/index.js +2 -2
  32. package/dist/entities/option/option.d.ts +22 -22
  33. package/dist/entities/option/select.d.ts +1 -1
  34. package/dist/entities/option/toggle.d.ts +9 -9
  35. package/dist/entities/option/toggle.js +15 -10
  36. package/dist/entities/option/when.d.ts +1 -1
  37. package/dist/entities/paths.d.ts +2 -2
  38. package/dist/entities/pricing/expression.d.ts +16 -39
  39. package/dist/entities/pricing/expression.js +1 -16
  40. package/dist/entities/pricing/index.d.ts +1 -1
  41. package/dist/entities/pricing/rates.d.ts +1 -1
  42. package/dist/entities/references.d.ts +24 -24
  43. package/dist/entities/serialise.d.ts +31 -32
  44. package/dist/entities/serialise.js +7 -7
  45. package/dist/entities/ui/describe.d.ts +1 -1
  46. package/dist/entities/ui/input.d.ts +1 -1
  47. package/dist/entities/ui/page.d.ts +1 -1
  48. package/dist/entities/ui/pages.d.ts +2 -2
  49. package/dist/entities/validated.d.ts +2 -2
  50. package/dist/entities/when.d.ts +5 -5
  51. package/dist/environment.d.ts +2 -2
  52. package/dist/errors/errors.d.ts +86 -55
  53. package/dist/errors/errors.js +36 -5
  54. package/dist/errors/exception.d.ts +3 -3
  55. package/dist/errors/index.d.ts +1 -1
  56. package/dist/errors/index.js +1 -1
  57. package/dist/errors/public.d.ts +1 -1
  58. package/dist/index.d.ts +1 -1
  59. package/dist/index.js +1 -1
  60. package/dist/instance.d.ts +53 -9
  61. package/dist/instance.js +6 -2
  62. package/dist/mappers/dependencies.d.ts +3 -0
  63. package/dist/mappers/dependencies.js +44 -0
  64. package/dist/mappers/index.d.ts +2 -2
  65. package/dist/mappers/index.js +2 -1
  66. package/dist/mappers/instance.js +26 -21
  67. package/dist/mappers/price.js +6 -4
  68. package/dist/mappers/variants/index.d.ts +1 -2
  69. package/dist/mappers/variants/index.js +1 -2
  70. package/dist/mappers/variants/option-graph.d.ts +1 -2
  71. package/dist/mappers/variants/option-graph.js +3 -17
  72. package/dist/mappers/variants/variants.d.ts +3 -6
  73. package/dist/mappers/variants/variants.js +34 -11
  74. package/dist/primitive.d.ts +3 -0
  75. package/dist/primitive.js +2 -0
  76. package/dist/public.d.ts +8 -8
  77. package/dist/public.js +1 -1
  78. package/dist/validate/builder.d.ts +2 -2
  79. package/dist/validate/builder.js +15 -15
  80. package/dist/validate/expectations.d.ts +2 -2
  81. package/dist/validate/expectations.js +3 -3
  82. package/dist/validate/instance.d.ts +2 -2
  83. package/dist/validate/instance.js +31 -13
  84. package/dist/validate/model.d.ts +4 -4
  85. package/dist/validate/model.js +51 -42
  86. package/dist/validate/paths.d.ts +2 -2
  87. package/dist/validate/paths.js +19 -14
  88. package/dist/validate/pricing.d.ts +4 -4
  89. package/dist/validate/pricing.js +31 -31
  90. package/dist/validate/resolve.d.ts +2 -2
  91. package/dist/validate/resolve.js +18 -18
  92. package/dist/validate/ui.d.ts +4 -4
  93. package/dist/validate/ui.js +38 -38
  94. package/dist/validate/variants.d.ts +3 -3
  95. package/dist/validate/variants.js +32 -31
  96. package/package.json +4 -2
  97. package/dist/entities/component/field.d.ts +0 -59
  98. package/dist/entities/component/field.js +0 -52
@@ -0,0 +1,61 @@
1
+ import type { BuilderPrimitive } from '../../primitive';
2
+ import type { BuilderTags } from '../tags';
3
+ import * as v from 'valibot';
4
+ export declare const BuilderComponentDetailKindSchema: v.PicklistSchema<["string", "boolean", "number", "price", "image"], undefined>;
5
+ export type BuilderComponentDetailKind = v.InferOutput<typeof BuilderComponentDetailKindSchema>;
6
+ export declare class BuilderComponentDetail<const Name extends string = string, const ValueSchema extends v.GenericSchema<BuilderPrimitive> = v.GenericSchema<BuilderPrimitive>> {
7
+ #private;
8
+ readonly value: v.InferOutput<ValueSchema>;
9
+ readonly type: "component-detail";
10
+ readonly name: Name;
11
+ readonly kind: BuilderComponentDetailKind;
12
+ readonly valueSchema: ValueSchema;
13
+ readonly isOptional: boolean;
14
+ readonly tags?: BuilderTags;
15
+ constructor(name: Name, kind: BuilderComponentDetailKind, optional?: boolean, tags?: BuilderTags);
16
+ optional(): BuilderComponentDetail<Name, v.NullableSchema<ValueSchema, undefined>>;
17
+ tag(...tags: Array<string>): BuilderComponentDetail<Name, ValueSchema>;
18
+ }
19
+ export declare function detailString<const Name extends string>(name: Name): BuilderComponentDetail<Name, v.StringSchema<undefined>>;
20
+ export declare function detailNumber<const Name extends string>(name: Name): BuilderComponentDetail<Name, v.NumberSchema<undefined>>;
21
+ export declare function detailBoolean<const Name extends string>(name: Name): BuilderComponentDetail<Name, v.BooleanSchema<undefined>>;
22
+ export declare function detailPrice<const Name extends string>(name: Name): BuilderComponentDetail<Name, v.NumberSchema<undefined>>;
23
+ export declare function detailImage<const Name extends string>(name: Name): BuilderComponentDetail<Name, v.StringSchema<undefined>>;
24
+ export declare const BuilderComponentDetailSchema: v.InstanceSchema<typeof BuilderComponentDetail, undefined>;
25
+ export declare const BuilderComponentDetailsSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.InstanceSchema<typeof BuilderComponentDetail, undefined>, undefined>, v.ReadonlyAction<BuilderComponentDetail<string, v.GenericSchema<string | number | boolean | null>>[]>]>;
26
+ export type BuilderComponentDetails = v.InferOutput<typeof BuilderComponentDetailsSchema>;
27
+ export declare const BuilderComponentDetailSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
28
+ readonly type: v.LiteralSchema<"component-detail", undefined>;
29
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
30
+ readonly kind: v.PicklistSchema<["string", "boolean", "number", "price", "image"], undefined>;
31
+ readonly isOptional: v.BooleanSchema<undefined>;
32
+ readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
33
+ }, undefined>, v.ReadonlyAction<{
34
+ type: "component-detail";
35
+ name: string;
36
+ kind: "string" | "number" | "boolean" | "price" | "image";
37
+ isOptional: boolean;
38
+ tags?: readonly string[] | undefined;
39
+ }>]>;
40
+ export type BuilderComponentDetailSerialised = v.InferOutput<typeof BuilderComponentDetailSerialisedSchema>;
41
+ export declare const BuilderComponentDetailsSerialisedSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
42
+ readonly type: v.LiteralSchema<"component-detail", undefined>;
43
+ readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
44
+ readonly kind: v.PicklistSchema<["string", "boolean", "number", "price", "image"], undefined>;
45
+ readonly isOptional: v.BooleanSchema<undefined>;
46
+ readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
47
+ }, undefined>, v.ReadonlyAction<{
48
+ type: "component-detail";
49
+ name: string;
50
+ kind: "string" | "number" | "boolean" | "price" | "image";
51
+ isOptional: boolean;
52
+ tags?: readonly string[] | undefined;
53
+ }>]>, undefined>, v.ReadonlyAction<Readonly<{
54
+ type: "component-detail";
55
+ name: string;
56
+ kind: "string" | "number" | "boolean" | "price" | "image";
57
+ isOptional: boolean;
58
+ tags?: readonly string[] | undefined;
59
+ }>[]>]>;
60
+ export type BuilderComponentDetailsSerialised = v.InferOutput<typeof BuilderComponentDetailsSerialisedSchema>;
61
+ export declare function detailValueSchema(kind: BuilderComponentDetailKind, optional: boolean): v.GenericSchema<BuilderPrimitive>;
@@ -0,0 +1,71 @@
1
+ import * as v from 'valibot';
2
+ import { BooleanSchema, NameSchema, NumberSchema, StringSchema, UrlSchema } from '../../primitive.js';
3
+ import { serialisable } from '../serialisable.js';
4
+ import { BuilderTagsSchema } from '../tags.js';
5
+ export const BuilderComponentDetailKindSchema = v.picklist([
6
+ 'string',
7
+ 'boolean',
8
+ 'number',
9
+ 'price',
10
+ 'image'
11
+ ]);
12
+ export class BuilderComponentDetail {
13
+ type = 'component-detail';
14
+ name;
15
+ kind;
16
+ valueSchema;
17
+ isOptional;
18
+ tags;
19
+ constructor(name, kind, optional = false, tags) {
20
+ this.name = name;
21
+ this.kind = kind;
22
+ this.valueSchema = detailValueSchema(kind, optional);
23
+ this.isOptional = optional;
24
+ this.tags = tags;
25
+ }
26
+ #next(patch) {
27
+ return new BuilderComponentDetail(this.name, this.kind, patch.optional ?? this.isOptional, patch.tags ?? this.tags);
28
+ }
29
+ optional() {
30
+ return this.#next({ optional: true });
31
+ }
32
+ tag(...tags) {
33
+ return this.#next({ tags });
34
+ }
35
+ }
36
+ export function detailString(name) {
37
+ return new BuilderComponentDetail(name, 'string');
38
+ }
39
+ export function detailNumber(name) {
40
+ return new BuilderComponentDetail(name, 'number');
41
+ }
42
+ export function detailBoolean(name) {
43
+ return new BuilderComponentDetail(name, 'boolean');
44
+ }
45
+ export function detailPrice(name) {
46
+ return new BuilderComponentDetail(name, 'price');
47
+ }
48
+ export function detailImage(name) {
49
+ return new BuilderComponentDetail(name, 'image');
50
+ }
51
+ export const BuilderComponentDetailSchema = v.instance(BuilderComponentDetail);
52
+ export const BuilderComponentDetailsSchema = v.pipe(v.array(BuilderComponentDetailSchema), v.readonly());
53
+ export const BuilderComponentDetailSerialisedSchema = serialisable(v.object({
54
+ type: v.literal('component-detail'),
55
+ name: NameSchema,
56
+ kind: BuilderComponentDetailKindSchema,
57
+ isOptional: BooleanSchema,
58
+ tags: v.optional(BuilderTagsSchema)
59
+ }));
60
+ export const BuilderComponentDetailsSerialisedSchema = v.pipe(v.array(BuilderComponentDetailSerialisedSchema), v.readonly());
61
+ export function detailValueSchema(kind, optional) {
62
+ const kindSchemas = {
63
+ string: StringSchema,
64
+ number: NumberSchema,
65
+ boolean: BooleanSchema,
66
+ price: NumberSchema,
67
+ image: UrlSchema
68
+ };
69
+ const baseSchema = kindSchemas[kind];
70
+ return optional ? v.nullable(baseSchema) : baseSchema;
71
+ }
@@ -1,10 +1,10 @@
1
1
  export type { BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhenSerialised } from './component';
2
2
  export type { BuilderComponentConfigSerialised, BuilderComponentConfigsSerialised } from './config';
3
3
  export type { ComponentAsserted } from './expectation';
4
- export type { BuilderComponentFields, BuilderComponentFieldsSerialised, BuilderComponentFieldSerialised, BuilderComponentFieldValueType } from './field';
4
+ export type { BuilderComponentDetailKind, BuilderComponentDetails, BuilderComponentDetailSerialised, BuilderComponentDetailsSerialised } from './detail';
5
5
  export type { BuilderComponentWhen } from './when';
6
6
  export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, validateComponentSelectMap, validateComponentWhen } from './component.js';
7
7
  export { BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, componentConfig, validateComponentConfig } from './config.js';
8
8
  export { componentExpectation } from './expectation.js';
9
- export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
9
+ export { BuilderComponentDetail, BuilderComponentDetailKindSchema, BuilderComponentDetailSchema, BuilderComponentDetailSerialisedSchema, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, detailBoolean, detailImage, detailNumber, detailPrice, detailString, detailValueSchema } from './detail.js';
10
10
  export { componentWhen } from './when.js';
@@ -1,5 +1,5 @@
1
1
  export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, validateComponentSelectMap, validateComponentWhen } from './component.js';
2
2
  export { BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, componentConfig, validateComponentConfig } from './config.js';
3
3
  export { componentExpectation } from './expectation.js';
4
- export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
4
+ export { BuilderComponentDetail, BuilderComponentDetailKindSchema, BuilderComponentDetailSchema, BuilderComponentDetailSerialisedSchema, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, detailBoolean, detailImage, detailNumber, detailPrice, detailString, detailValueSchema } from './detail.js';
5
5
  export { componentWhen } from './when.js';
@@ -1,4 +1,4 @@
1
- import type { BuilderPrimitives } from '../../primitive';
1
+ import type { BuilderPrimitivesNonEmpty } from '../../primitive';
2
2
  import type { Paramable } from '../../references';
3
3
  import type { BuilderPath } from '../paths';
4
4
  import type { BuilderEnableConfig, BuilderMatchConfig, BuilderMatchSelectMap, BuilderUnlessConfig, BuilderWhen } from '../when';
@@ -7,5 +7,5 @@ export type BuilderComponentWhen = BuilderWhen<Paramable<BuilderComponentConfig>
7
7
  export declare const componentWhen: {
8
8
  enable: <const Payload extends Paramable<BuilderComponentConfig>>(payload?: Payload) => BuilderEnableConfig<Payload>;
9
9
  match: <const Payload extends Paramable<BuilderComponentConfig>, const MatchPath extends Paramable<BuilderPath>, const SelectMap extends Paramable<BuilderMatchSelectMap<Paramable<BuilderComponentConfig>>>>(matchPath: MatchPath, selectMap: SelectMap) => BuilderMatchConfig<Payload, MatchPath, SelectMap>;
10
- unless: <const UnlessPath extends Paramable<BuilderPath>, const Payload extends Paramable<BuilderComponentConfig>>(unlessPath: UnlessPath, disabledValues: BuilderPrimitives, payload?: Payload) => BuilderUnlessConfig<Payload, UnlessPath>;
10
+ unless: <const UnlessPath extends Paramable<BuilderPath>, const Payload extends Paramable<BuilderComponentConfig>>(unlessPath: UnlessPath, disabledValues: BuilderPrimitivesNonEmpty, payload?: Payload) => BuilderUnlessConfig<Payload, UnlessPath>;
11
11
  };
@@ -30,7 +30,7 @@ export declare const BuilderExpectationsSerialisedSchema: v.SchemaWithPipe<reado
30
30
  kind: "option" | "component" | "collection";
31
31
  }>[]>]>;
32
32
  export type BuilderExpectationsSerialised = v.InferOutput<typeof BuilderExpectationsSerialisedSchema>;
33
- export declare const validateExpectations: (input: unknown, references?: import("./references.js").BuilderReferences, errors?: import("../errors/errors.js").BuilderErrorsScope) => import("./validated.js").ValidationResult<readonly ({
33
+ export declare const validateExpectations: (input: unknown, references?: import("./references.js").BuilderReferences, issues?: import("../errors/errors.js").BuilderIssuesScope) => import("./validated.js").ValidationResult<readonly ({
34
34
  readonly name: string;
35
35
  readonly kind: "option" | "component" | "collection";
36
36
  } & import("../validate/brand.js").BuilderValidatedBrand)[]>;
@@ -1,13 +1,13 @@
1
1
  export type { BuilderBindings, BuilderBindingsSerialised, BuilderSerialised } from './builder/index';
2
2
  export type { BuilderCollectionConfigSerialised, BuilderCollectionConfigsSerialised, BuilderCollectionPayload, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, CollectionNamesOf, CollectionShape } from './collection/index';
3
- export type { BuilderComponentConfigSerialised, BuilderComponentConfigsSerialised, BuilderComponentFields, BuilderComponentFieldSerialised, BuilderComponentFieldsSerialised, BuilderComponentFieldValueType, BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhen, BuilderComponentWhenSerialised } from './component/index';
3
+ export type { BuilderComponentConfigSerialised, BuilderComponentConfigsSerialised, BuilderComponentDetailKind, BuilderComponentDetails, BuilderComponentDetailSerialised, BuilderComponentDetailsSerialised, BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhen, BuilderComponentWhenSerialised } from './component/index';
4
4
  export type { BuilderExpectationKind, BuilderExpectations, BuilderExpectationSerialised, BuilderExpectationsSerialised } from './expectation';
5
5
  export type { BuilderEntityKind, BuilderEntitySerialised } from './kind.js';
6
6
  export type { BuilderInstanceOf, BuilderModelGeneric, BuilderModels, BuilderModelSerialised, BuilderModelState, BuilderModelStateEmpty, BuilderModelStateOf } from './model/index';
7
7
  export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
8
- export type { BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptionConfigsSerialised, BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderSelectConfigLabels, BuilderSelectConfigSerialised, BuilderSelectConfigValues, BuilderToggleConfigSerialised, BuilderToggleValueType } from './option/index';
8
+ export type { BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptionConfigsSerialised, BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderSelectConfigLabels, BuilderSelectConfigSerialised, BuilderSelectConfigValues, BuilderToggleConfigSerialised, BuilderToggleKind } from './option/index';
9
9
  export type { BuilderPath, BuilderPaths } from './paths.js';
10
- export type { BuilderPricingExpression, BuilderPricingLookupKey, BuilderPricingReduce, BuilderPricingSerialised, BuilderRates } from './pricing/index';
10
+ export type { BuilderPricingExpression, BuilderPricingLookup, BuilderPricingLookupKey, BuilderPricingReduce, BuilderPricingSerialised, BuilderPricingVariants, BuilderRates } from './pricing/index';
11
11
  export type { BuilderReference, BuilderReferences } from './references.js';
12
12
  export type { BuilderTags } from './tags';
13
13
  export type { BuilderDescription, BuilderDescriptionItem, BuilderUIDescribeSerialised, BuilderUIInputMetadata, BuilderUIInputMetadataSerialised, BuilderUIInputs, BuilderUIInputSerialised, BuilderUIInputsSerialised, BuilderUIItem, BuilderUIItems, BuilderUIItemSerialised, BuilderUIItemsSerialised, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIs, BuilderUISerialised, BuilderUIsSerialised } from './ui/index';
@@ -15,7 +15,7 @@ export type { BuilderCollectionConfigValidated, BuilderCollectionsValidated, Bui
15
15
  export type { BuilderEnableConfig, BuilderMatchConfig, BuilderMatchSelectMap, BuilderUnlessConfig, BuilderWhen, BuilderWhenConfig, BuilderWhenSerialised } from './when';
16
16
  export { Builder, builder, BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
17
17
  export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionConfigsSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen, validateCollectionConfig, validateCollectionSelectMap, validateCollectionWhen } from './collection/index.js';
18
- export { BuilderComponent, BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentConfig, componentExpectation, componentWhen, detailBoolean, detailNumber, detailString, detailValueSchema, validateComponentConfig, validateComponentSelectMap, validateComponentWhen } from './component/index.js';
18
+ export { BuilderComponent, BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, BuilderComponentDetail, BuilderComponentDetailKindSchema, BuilderComponentDetailSchema, BuilderComponentDetailSerialisedSchema, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentConfig, componentExpectation, componentWhen, detailBoolean, detailImage, detailNumber, detailPrice, detailString, detailValueSchema, validateComponentConfig, validateComponentSelectMap, validateComponentWhen } from './component/index.js';
19
19
  export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema, validateExpectations } from './expectation.js';
20
20
  export { createEntityValidator } from './kind.js';
21
21
  export { BuilderOption, BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectConfig, BuilderSelectConfigSchema, BuilderSelectConfigSerialisedSchema, BuilderToggleConfig, BuilderToggleConfigSchema, BuilderToggleConfigSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString, validateOptionSelectMap, validateOptionWhen, validateSelect, validateToggle } from './option/index.js';
@@ -1,7 +1,7 @@
1
1
  export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
2
2
  export { Builder, builder, BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
3
3
  export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionConfigsSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen, validateCollectionConfig, validateCollectionSelectMap, validateCollectionWhen } from './collection/index.js';
4
- export { BuilderComponent, BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentConfig, componentExpectation, componentWhen, detailBoolean, detailNumber, detailString, detailValueSchema, validateComponentConfig, validateComponentSelectMap, validateComponentWhen } from './component/index.js';
4
+ export { BuilderComponent, BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, BuilderComponentDetail, BuilderComponentDetailKindSchema, BuilderComponentDetailSchema, BuilderComponentDetailSerialisedSchema, BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, componentConfig, componentExpectation, componentWhen, detailBoolean, detailImage, detailNumber, detailPrice, detailString, detailValueSchema, validateComponentConfig, validateComponentSelectMap, validateComponentWhen } from './component/index.js';
5
5
  export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema, validateExpectations } from './expectation.js';
6
6
  export { createEntityValidator } from './kind.js';
7
7
  export { BuilderOption, BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectConfig, BuilderSelectConfigSchema, BuilderSelectConfigSerialisedSchema, BuilderToggleConfig, BuilderToggleConfigSchema, BuilderToggleConfigSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString, validateOptionSelectMap, validateOptionWhen, validateSelect, validateToggle } from './option/index.js';
@@ -2,11 +2,11 @@ import type { BuilderReferences } from './references';
2
2
  import type { EntitiesMap } from './serialise';
3
3
  import type { BuilderValidatedMap, ValidationResult } from './validated';
4
4
  import * as v from 'valibot';
5
- import { BuilderErrorsScope } from '../errors/index.js';
5
+ import { BuilderIssuesScope } from '../errors/index.js';
6
6
  export declare const builderEntityKinds: readonly ["builder", "model", "select", "toggle", "optionSelectMap", "optionWhen", "componentConfig", "componentSelectMap", "componentWhen", "collectionConfig", "collectionSelectMap", "collectionWhen", "ui", "uiDescribe", "uiItems", "uiPage", "uiPages", "uiInput", "pricing", "pricingRates", "expectations", "paths", "path", "number", "string", "boolean"];
7
7
  export type BuilderEntityKind = (typeof builderEntityKinds)[number];
8
8
  export type BuilderEntitySerialised = {
9
9
  [Kind in BuilderEntityKind]: v.InferOutput<EntitiesMap[Kind]['serialised']>;
10
10
  }[BuilderEntityKind];
11
- export type EntityValidate<Kind extends BuilderEntityKind> = (input: BuilderValidatedMap[Kind], errors: BuilderErrorsScope, references: BuilderReferences) => void;
12
- export declare function createEntityValidator<Kind extends BuilderEntityKind>(kind: Kind, schema: v.GenericSchema, validate?: EntityValidate<Kind>): (input: unknown, references?: BuilderReferences, errors?: BuilderErrorsScope) => ValidationResult<BuilderValidatedMap[Kind]>;
11
+ export type EntityValidate<Kind extends BuilderEntityKind> = (input: BuilderValidatedMap[Kind], issues: BuilderIssuesScope, references: BuilderReferences) => void;
12
+ export declare function createEntityValidator<Kind extends BuilderEntityKind>(kind: Kind, schema: v.GenericSchema, validate?: EntityValidate<Kind>): (input: unknown, references?: BuilderReferences, issues?: BuilderIssuesScope) => ValidationResult<BuilderValidatedMap[Kind]>;
@@ -1,5 +1,5 @@
1
1
  import * as v from 'valibot';
2
- import { BuilderErrorsScope } from '../errors/index.js';
2
+ import { BuilderIssuesScope } from '../errors/index.js';
3
3
  export const builderEntityKinds = [
4
4
  'builder',
5
5
  'model',
@@ -29,51 +29,51 @@ export const builderEntityKinds = [
29
29
  'boolean'
30
30
  ];
31
31
  export function createEntityValidator(kind, schema, validate) {
32
- return (input, references = [], errors = new BuilderErrorsScope(input)) => {
32
+ return (input, references = [], issues = new BuilderIssuesScope(input)) => {
33
33
  const result = v.safeParse(schema, input);
34
34
  if (!result.success) {
35
- if (!toEmptyErrors(result.issues, errors)) {
36
- errors.entityInvalid(kind);
35
+ if (!toEmptyErrors(result.issues, issues)) {
36
+ issues.entityInvalid(kind);
37
37
  }
38
- return [input, errors.errors];
38
+ return [input, issues.errors, issues.warnings];
39
39
  }
40
- validate?.(input, errors, references);
41
- return [input, errors.errors];
40
+ validate?.(input, issues, references);
41
+ return [input, issues.errors, issues.warnings];
42
42
  };
43
43
  }
44
- function toEmptyErrors(issues, errors) {
45
- if (issues.length === 0) {
44
+ function toEmptyErrors(schemaIssues, issues) {
45
+ if (schemaIssues.length === 0) {
46
46
  return false;
47
47
  }
48
- return issues.map((issue) => toEmptyError(issue, errors)).every(Boolean);
48
+ return schemaIssues.map((schemaIssue) => toEmptyError(schemaIssue, issues)).every(Boolean);
49
49
  }
50
- function toEmptyError(issue, errors) {
51
- const [firstSegment] = issue.path ?? [];
52
- if (firstSegment == null || !hasMinLengthFailure(issue)) {
50
+ function toEmptyError(schemaIssue, issues) {
51
+ const [firstSegment] = schemaIssue.path ?? [];
52
+ if (firstSegment == null || !hasMinLengthFailure(schemaIssue)) {
53
53
  return false;
54
54
  }
55
55
  const { key } = firstSegment;
56
56
  if (key === 'name') {
57
- errors.entityEmptyName();
57
+ issues.entityEmptyName();
58
58
  return true;
59
59
  }
60
60
  if (key === 'label') {
61
- errors.entityEmptyLabel();
61
+ issues.entityEmptyLabel();
62
62
  return true;
63
63
  }
64
64
  if (key === 'id') {
65
- errors.entityEmptyId();
65
+ issues.entityEmptyId();
66
66
  return true;
67
67
  }
68
68
  if (key === 'inputs') {
69
- errors.entityEmptyInputs();
69
+ issues.entityEmptyInputs();
70
70
  return true;
71
71
  }
72
72
  return false;
73
73
  }
74
- function hasMinLengthFailure(issue) {
75
- if (issue.type === 'min_length') {
74
+ function hasMinLengthFailure(schemaIssue) {
75
+ if (schemaIssue.type === 'min_length') {
76
76
  return true;
77
77
  }
78
- return issue.issues?.some(hasMinLengthFailure) ?? false;
78
+ return schemaIssue.issues?.some(hasMinLengthFailure) ?? false;
79
79
  }
@@ -48,7 +48,7 @@ type CollectionTuple<Item, Length extends number, Result extends ReadonlyArray<I
48
48
  export declare function builderOptionMethod(): ((name: string, payload: Paramable<BuilderOptionConfig>) => BuilderOption<string, Paramable<import("..").BuilderSelectConfig<readonly [string, ...string[]], import("valibot").GenericSchema<string | null>> | import("..").BuilderToggleConfig<import("valibot").GenericSchema<string | number | boolean | null>>>, Paramable<readonly (readonly (string | number)[])[]>>) & {
49
49
  when(paths: Paramable<BuilderPaths>, name: string, payload: Paramable<BuilderOptionWhen>): BuilderOption<string, Paramable<BuilderOptionWhen>, BuilderParameter<string> | import("../..").BuilderRef | readonly (readonly (string | number)[])[]>;
50
50
  };
51
- export declare function builderComponentMethod(): ((name: string, payload?: Paramable<BuilderComponentConfig>) => BuilderComponent<string, Paramable<BuilderComponentConfig<Paramable<readonly import("..").BuilderComponentField<string, import("valibot").GenericSchema<string | number | boolean | null>>[]>>>, Paramable<readonly (readonly (string | number)[])[]>>) & {
51
+ export declare function builderComponentMethod(): ((name: string, payload?: Paramable<BuilderComponentConfig>) => BuilderComponent<string, Paramable<BuilderComponentConfig<Paramable<readonly import("..").BuilderComponentDetail<string, import("valibot").GenericSchema<string | number | boolean | null>>[]>>>, Paramable<readonly (readonly (string | number)[])[]>>) & {
52
52
  when(paths: Paramable<BuilderPaths>, name: string, payload?: Paramable<BuilderComponentWhen>): BuilderComponent<string, Paramable<BuilderComponentWhen>, BuilderParameter<string> | import("../..").BuilderRef | readonly (readonly (string | number)[])[]>;
53
53
  };
54
54
  export declare function builderCollectionMethod(): ((name: string, payload: Paramable<BuilderCollectionConfig>) => BuilderCollection<string, Paramable<BuilderCollectionConfig<Paramable<import("./model").BuilderModelGeneric>, Paramable<number>, Paramable<number>>>, Paramable<readonly (readonly (string | number)[])[]>>) & {
@@ -19,13 +19,13 @@ export declare const BuilderOptionConfigSerialisedSchema: v.SchemaWithPipe<reado
19
19
  tags?: readonly string[] | undefined;
20
20
  }>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
21
21
  readonly type: v.LiteralSchema<"toggle", undefined>;
22
- readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
22
+ readonly kind: v.PicklistSchema<["string", "boolean", "number"], undefined>;
23
23
  readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
24
24
  readonly isOptional: v.BooleanSchema<undefined>;
25
25
  readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
26
26
  }, undefined>, v.ReadonlyAction<{
27
27
  type: "toggle";
28
- valueType: "string" | "number" | "boolean";
28
+ kind: "string" | "number" | "boolean";
29
29
  defaultValue: string | number | boolean | null;
30
30
  isOptional: boolean;
31
31
  tags?: readonly string[] | undefined;
@@ -40,7 +40,7 @@ export declare const BuilderOptionConfigSerialisedSchema: v.SchemaWithPipe<reado
40
40
  tags?: readonly string[] | undefined;
41
41
  }> | Readonly<{
42
42
  type: "toggle";
43
- valueType: "string" | "number" | "boolean";
43
+ kind: "string" | "number" | "boolean";
44
44
  defaultValue: string | number | boolean | null;
45
45
  isOptional: boolean;
46
46
  tags?: readonly string[] | undefined;
@@ -64,13 +64,13 @@ export declare const BuilderOptionConfigsSerialisedSchema: v.SchemaWithPipe<read
64
64
  tags?: readonly string[] | undefined;
65
65
  }>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
66
66
  readonly type: v.LiteralSchema<"toggle", undefined>;
67
- readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
67
+ readonly kind: v.PicklistSchema<["string", "boolean", "number"], undefined>;
68
68
  readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
69
69
  readonly isOptional: v.BooleanSchema<undefined>;
70
70
  readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
71
71
  }, undefined>, v.ReadonlyAction<{
72
72
  type: "toggle";
73
- valueType: "string" | "number" | "boolean";
73
+ kind: "string" | "number" | "boolean";
74
74
  defaultValue: string | number | boolean | null;
75
75
  isOptional: boolean;
76
76
  tags?: readonly string[] | undefined;
@@ -85,7 +85,7 @@ export declare const BuilderOptionConfigsSerialisedSchema: v.SchemaWithPipe<read
85
85
  tags?: readonly string[] | undefined;
86
86
  }> | Readonly<{
87
87
  type: "toggle";
88
- valueType: "string" | "number" | "boolean";
88
+ kind: "string" | "number" | "boolean";
89
89
  defaultValue: string | number | boolean | null;
90
90
  isOptional: boolean;
91
91
  tags?: readonly string[] | undefined;
@@ -100,7 +100,7 @@ export declare const BuilderOptionConfigsSerialisedSchema: v.SchemaWithPipe<read
100
100
  tags?: readonly string[] | undefined;
101
101
  }>> | Readonly<Readonly<{
102
102
  type: "toggle";
103
- valueType: "string" | "number" | "boolean";
103
+ kind: "string" | "number" | "boolean";
104
104
  defaultValue: string | number | boolean | null;
105
105
  isOptional: boolean;
106
106
  tags?: readonly string[] | undefined;
@@ -11,5 +11,5 @@ export function optionValueSchema(payload) {
11
11
  if (payload.type === 'select') {
12
12
  return selectValueSchema(payload.options, payload.isOptional);
13
13
  }
14
- return toggleValueSchema(payload.valueType, payload.isOptional);
14
+ return toggleValueSchema(payload.kind, payload.isOptional);
15
15
  }
@@ -1,11 +1,11 @@
1
+ export type { BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptionConfigsSerialised } from './config';
1
2
  export type { BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionWhenSerialised } from './option';
2
3
  export type { BuilderSelectConfigLabels, BuilderSelectConfigSerialised, BuilderSelectConfigValues } from './select';
3
- export type { BuilderToggleConfigSerialised, BuilderToggleValueType } from './toggle';
4
- export type { BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptionConfigsSerialised } from './config';
4
+ export type { BuilderToggleConfigSerialised, BuilderToggleKind } from './toggle';
5
5
  export type { BuilderOptionWhen } from './when';
6
+ export { BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, optionValueSchema } from './config.js';
7
+ export { optionExpectation } from './expectation.js';
6
8
  export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionWhenSerialisedSchema, validateOptionSelectMap, validateOptionWhen } from './option.js';
7
9
  export { BuilderSelectConfig, BuilderSelectConfigSchema, BuilderSelectConfigSerialisedSchema, select, validateSelect } from './select.js';
8
10
  export { BuilderToggleConfig, BuilderToggleConfigSchema, BuilderToggleConfigSerialisedSchema, toggleBoolean, toggleNumber, toggleString, validateToggle } from './toggle.js';
9
- export { BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, optionValueSchema } from './config.js';
10
- export { optionExpectation } from './expectation.js';
11
11
  export { optionWhen } from './when.js';
@@ -1,6 +1,6 @@
1
+ export { BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, optionValueSchema } from './config.js';
2
+ export { optionExpectation } from './expectation.js';
1
3
  export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionWhenSerialisedSchema, validateOptionSelectMap, validateOptionWhen } from './option.js';
2
4
  export { BuilderSelectConfig, BuilderSelectConfigSchema, BuilderSelectConfigSerialisedSchema, select, validateSelect } from './select.js';
3
5
  export { BuilderToggleConfig, BuilderToggleConfigSchema, BuilderToggleConfigSerialisedSchema, toggleBoolean, toggleNumber, toggleString, validateToggle } from './toggle.js';
4
- export { BuilderOptionConfigSchema, BuilderOptionConfigSerialisedSchema, BuilderOptionConfigsSerialisedSchema, optionValueSchema } from './config.js';
5
- export { optionExpectation } from './expectation.js';
6
6
  export { optionWhen } from './when.js';