@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.
- package/dist/bb.d.ts +12 -14
- package/dist/bb.js +32 -6
- package/dist/entities/builder/bind.d.ts +1 -1
- package/dist/entities/builder/builder.d.ts +2 -4
- package/dist/entities/builder/builder.js +1 -1
- package/dist/entities/collection/collection.d.ts +689 -1
- package/dist/entities/collection/collection.js +5 -2
- package/dist/entities/collection/config.d.ts +290 -0
- package/dist/entities/collection/config.js +13 -2
- package/dist/entities/collection/expectation.d.ts +1 -1
- package/dist/entities/collection/index.d.ts +3 -3
- package/dist/entities/collection/index.js +2 -2
- package/dist/entities/collection/when.d.ts +1 -1
- package/dist/entities/component/component.d.ts +64 -10
- package/dist/entities/component/component.js +9 -6
- package/dist/entities/component/config.d.ts +145 -0
- package/dist/entities/component/config.js +42 -0
- package/dist/entities/component/field.js +1 -1
- package/dist/entities/component/index.d.ts +3 -3
- package/dist/entities/component/index.js +2 -2
- package/dist/entities/component/when.d.ts +6 -6
- package/dist/entities/component/when.js +3 -3
- package/dist/entities/expectation.d.ts +4 -0
- package/dist/entities/expectation.js +3 -1
- package/dist/entities/index.d.ts +18 -17
- package/dist/entities/index.js +11 -10
- package/dist/entities/kind.d.ts +10 -7
- package/dist/entities/kind.js +39 -5
- package/dist/entities/model/bind.d.ts +1 -1
- package/dist/entities/model/index.d.ts +1 -1
- package/dist/entities/model/methods.d.ts +12 -12
- package/dist/entities/model/methods.js +2 -2
- package/dist/entities/model/model.js +1 -1
- package/dist/entities/model/models.d.ts +1 -1
- package/dist/entities/option/config.d.ts +109 -0
- package/dist/entities/option/config.js +15 -0
- package/dist/entities/option/index.d.ts +7 -7
- package/dist/entities/option/index.js +4 -4
- package/dist/entities/option/option.d.ts +88 -10
- package/dist/entities/option/option.js +9 -6
- package/dist/entities/option/select.d.ts +24 -14
- package/dist/entities/option/select.js +17 -6
- package/dist/entities/option/toggle.d.ts +17 -10
- package/dist/entities/option/toggle.js +19 -8
- package/dist/entities/option/when.d.ts +6 -6
- package/dist/{paths.d.ts → entities/paths.d.ts} +2 -0
- package/dist/{paths.js → entities/paths.js} +3 -0
- package/dist/entities/pricing/index.d.ts +1 -1
- package/dist/entities/pricing/index.js +1 -1
- package/dist/entities/pricing/pricing.js +1 -1
- package/dist/entities/pricing/rates.d.ts +5 -0
- package/dist/entities/pricing/rates.js +3 -1
- package/dist/entities/references.d.ts +723 -0
- package/dist/entities/references.js +7 -0
- package/dist/entities/serialise.d.ts +49 -43
- package/dist/entities/serialise.js +19 -13
- package/dist/entities/ui/describe.d.ts +15 -0
- package/dist/entities/ui/describe.js +11 -2
- package/dist/entities/ui/index.d.ts +4 -4
- package/dist/entities/ui/index.js +4 -4
- package/dist/entities/ui/input.d.ts +12 -3
- package/dist/entities/ui/input.js +4 -2
- package/dist/entities/ui/page.d.ts +15 -0
- package/dist/entities/ui/page.js +11 -2
- package/dist/entities/ui/pages.d.ts +132 -0
- package/dist/entities/ui/pages.js +12 -2
- package/dist/entities/ui/ui.d.ts +2 -3
- package/dist/entities/ui/ui.js +2 -2
- package/dist/entities/ui/uis.d.ts +1 -1
- package/dist/entities/ui/uis.js +2 -2
- package/dist/entities/validated.d.ts +26 -18
- package/dist/entities/when.d.ts +4 -3
- package/dist/entities/when.js +22 -2
- package/dist/environment.d.ts +2 -2
- package/dist/{validate → errors}/errors.d.ts +57 -35
- package/dist/{validate → errors}/errors.js +40 -5
- package/dist/errors/exception.d.ts +5 -0
- package/dist/{exception.js → errors/exception.js} +0 -3
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.js +3 -0
- package/dist/index.d.ts +19 -18
- package/dist/index.js +5 -4
- package/dist/instance.d.ts +7 -7
- package/dist/instance.js +4 -4
- package/dist/mappers/index.d.ts +2 -4
- package/dist/mappers/index.js +1 -2
- package/dist/mappers/instance.d.ts +2 -2
- package/dist/mappers/instance.js +7 -7
- package/dist/mappers/order.d.ts +4 -4
- package/dist/mappers/order.js +5 -5
- package/dist/mappers/price.js +18 -18
- package/dist/mappers/render/pages.d.ts +2 -2
- package/dist/mappers/render/render.d.ts +2 -2
- package/dist/mappers/render/render.js +12 -12
- package/dist/mappers/resolve.d.ts +11 -12
- package/dist/mappers/resolve.js +29 -46
- package/dist/mappers/variants/option-graph.d.ts +2 -3
- package/dist/mappers/variants/option-graph.js +2 -3
- package/dist/mappers/variants/variants.d.ts +2 -2
- package/dist/mappers/variants/variants.js +1 -1
- package/dist/private.d.ts +1 -2
- package/dist/private.js +1 -2
- package/dist/references.js +1 -1
- package/dist/validate/brand.js +1 -2
- package/dist/validate/builder.d.ts +3 -4
- package/dist/validate/builder.js +2 -3
- package/dist/validate/expectations.d.ts +1 -1
- package/dist/validate/index.d.ts +5 -2
- package/dist/validate/index.js +1 -0
- package/dist/validate/instance.d.ts +2 -3
- package/dist/validate/instance.js +1 -2
- package/dist/validate/model.d.ts +3 -4
- package/dist/validate/model.js +39 -44
- package/dist/validate/paths.d.ts +2 -3
- package/dist/validate/paths.js +1 -1
- package/dist/validate/pricing.d.ts +3 -4
- package/dist/validate/pricing.js +2 -3
- package/dist/validate/resolve.d.ts +3 -3
- package/dist/validate/resolve.js +1 -1
- package/dist/validate/ui.d.ts +3 -4
- package/dist/validate/ui.js +14 -5
- package/dist/validate/variants.d.ts +4 -5
- package/dist/validate/variants.js +6 -7
- package/package.json +7 -2
- package/dist/entities/component/details.d.ts +0 -66
- package/dist/entities/component/details.js +0 -24
- package/dist/entities/entry.d.ts +0 -4
- package/dist/entities/entry.js +0 -1
- package/dist/entities/option/values.d.ts +0 -49
- package/dist/entities/option/values.js +0 -14
- package/dist/entities/refs.d.ts +0 -6
- package/dist/entities/refs.js +0 -1
- package/dist/exception.d.ts +0 -13
- package/dist/validate/result.d.ts +0 -2
- package/dist/validate/result.js +0 -1
- /package/dist/{serialisable.d.ts → entities/serialisable.d.ts} +0 -0
- /package/dist/{serialisable.js → entities/serialisable.js} +0 -0
- /package/dist/{check.d.ts → errors/check.d.ts} +0 -0
- /package/dist/{check.js → errors/check.js} +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { Paramable } from '../../references';
|
|
2
|
+
import type { BuilderTags } from '../tags';
|
|
3
|
+
import type { BuilderComponentFields } from './field';
|
|
4
|
+
import * as v from 'valibot';
|
|
5
|
+
export declare class BuilderComponentConfig<const Fields extends Paramable<BuilderComponentFields> = Paramable<BuilderComponentFields>> {
|
|
6
|
+
readonly type: 'component-config';
|
|
7
|
+
readonly fields: Fields;
|
|
8
|
+
readonly tags?: BuilderTags;
|
|
9
|
+
constructor(fields: Fields, tags?: BuilderTags);
|
|
10
|
+
tag(...tags: Array<string>): BuilderComponentConfig<Fields>;
|
|
11
|
+
}
|
|
12
|
+
export declare const BuilderComponentConfigSchema: v.InstanceSchema<typeof BuilderComponentConfig, undefined>;
|
|
13
|
+
export declare const BuilderComponentConfigSerialisedSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
14
|
+
readonly fields: v.UnionSchema<[v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
15
|
+
readonly type: v.LiteralSchema<"parameter", undefined>;
|
|
16
|
+
readonly id: v.StringSchema<undefined>;
|
|
17
|
+
readonly name: v.StringSchema<undefined>;
|
|
18
|
+
}, undefined>, v.ReadonlyAction<{
|
|
19
|
+
type: "parameter";
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
}>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
23
|
+
readonly type: v.LiteralSchema<"ref", undefined>;
|
|
24
|
+
readonly id: v.StringSchema<undefined>;
|
|
25
|
+
}, undefined>, v.ReadonlyAction<{
|
|
26
|
+
type: "ref";
|
|
27
|
+
id: string;
|
|
28
|
+
}>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
29
|
+
readonly type: v.LiteralSchema<"component-field", undefined>;
|
|
30
|
+
readonly name: v.StringSchema<undefined>;
|
|
31
|
+
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
32
|
+
readonly isOptional: v.BooleanSchema<undefined>;
|
|
33
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
34
|
+
}, undefined>, v.ReadonlyAction<{
|
|
35
|
+
type: "component-field";
|
|
36
|
+
name: string;
|
|
37
|
+
valueType: "string" | "number" | "boolean";
|
|
38
|
+
isOptional: boolean;
|
|
39
|
+
tags?: readonly string[] | undefined;
|
|
40
|
+
}>]>, undefined>, v.ReadonlyAction<Readonly<{
|
|
41
|
+
type: "component-field";
|
|
42
|
+
name: string;
|
|
43
|
+
valueType: "string" | "number" | "boolean";
|
|
44
|
+
isOptional: boolean;
|
|
45
|
+
tags?: readonly string[] | undefined;
|
|
46
|
+
}>[]>]>], undefined>;
|
|
47
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
48
|
+
}, undefined>, v.ReadonlyAction<{
|
|
49
|
+
fields: Readonly<{
|
|
50
|
+
type: "parameter";
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
}> | Readonly<{
|
|
54
|
+
type: "ref";
|
|
55
|
+
id: string;
|
|
56
|
+
}> | readonly Readonly<{
|
|
57
|
+
type: "component-field";
|
|
58
|
+
name: string;
|
|
59
|
+
valueType: "string" | "number" | "boolean";
|
|
60
|
+
isOptional: boolean;
|
|
61
|
+
tags?: readonly string[] | undefined;
|
|
62
|
+
}>[];
|
|
63
|
+
tags?: readonly string[] | undefined;
|
|
64
|
+
}>]>;
|
|
65
|
+
export type BuilderComponentConfigSerialised = v.InferOutput<typeof BuilderComponentConfigSerialisedSchema>;
|
|
66
|
+
export declare const BuilderComponentConfigsSerialisedSchema: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
67
|
+
readonly fields: v.UnionSchema<[v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
68
|
+
readonly type: v.LiteralSchema<"parameter", undefined>;
|
|
69
|
+
readonly id: v.StringSchema<undefined>;
|
|
70
|
+
readonly name: v.StringSchema<undefined>;
|
|
71
|
+
}, undefined>, v.ReadonlyAction<{
|
|
72
|
+
type: "parameter";
|
|
73
|
+
id: string;
|
|
74
|
+
name: string;
|
|
75
|
+
}>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
76
|
+
readonly type: v.LiteralSchema<"ref", undefined>;
|
|
77
|
+
readonly id: v.StringSchema<undefined>;
|
|
78
|
+
}, undefined>, v.ReadonlyAction<{
|
|
79
|
+
type: "ref";
|
|
80
|
+
id: string;
|
|
81
|
+
}>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
82
|
+
readonly type: v.LiteralSchema<"component-field", undefined>;
|
|
83
|
+
readonly name: v.StringSchema<undefined>;
|
|
84
|
+
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
85
|
+
readonly isOptional: v.BooleanSchema<undefined>;
|
|
86
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
87
|
+
}, undefined>, v.ReadonlyAction<{
|
|
88
|
+
type: "component-field";
|
|
89
|
+
name: string;
|
|
90
|
+
valueType: "string" | "number" | "boolean";
|
|
91
|
+
isOptional: boolean;
|
|
92
|
+
tags?: readonly string[] | undefined;
|
|
93
|
+
}>]>, undefined>, v.ReadonlyAction<Readonly<{
|
|
94
|
+
type: "component-field";
|
|
95
|
+
name: string;
|
|
96
|
+
valueType: "string" | "number" | "boolean";
|
|
97
|
+
isOptional: boolean;
|
|
98
|
+
tags?: readonly string[] | undefined;
|
|
99
|
+
}>[]>]>], undefined>;
|
|
100
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
101
|
+
}, undefined>, v.ReadonlyAction<{
|
|
102
|
+
fields: Readonly<{
|
|
103
|
+
type: "parameter";
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
}> | Readonly<{
|
|
107
|
+
type: "ref";
|
|
108
|
+
id: string;
|
|
109
|
+
}> | readonly Readonly<{
|
|
110
|
+
type: "component-field";
|
|
111
|
+
name: string;
|
|
112
|
+
valueType: "string" | "number" | "boolean";
|
|
113
|
+
isOptional: boolean;
|
|
114
|
+
tags?: readonly string[] | undefined;
|
|
115
|
+
}>[];
|
|
116
|
+
tags?: readonly string[] | undefined;
|
|
117
|
+
}>]>, undefined>, v.ReadonlyAction<Readonly<{
|
|
118
|
+
fields: Readonly<{
|
|
119
|
+
type: "parameter";
|
|
120
|
+
id: string;
|
|
121
|
+
name: string;
|
|
122
|
+
}> | Readonly<{
|
|
123
|
+
type: "ref";
|
|
124
|
+
id: string;
|
|
125
|
+
}> | readonly Readonly<{
|
|
126
|
+
type: "component-field";
|
|
127
|
+
name: string;
|
|
128
|
+
valueType: "string" | "number" | "boolean";
|
|
129
|
+
isOptional: boolean;
|
|
130
|
+
tags?: readonly string[] | undefined;
|
|
131
|
+
}>[];
|
|
132
|
+
tags?: readonly string[] | undefined;
|
|
133
|
+
}>[]>]>;
|
|
134
|
+
export type BuilderComponentConfigsSerialised = v.InferOutput<typeof BuilderComponentConfigsSerialisedSchema>;
|
|
135
|
+
export declare function componentConfig<const Fields extends BuilderComponentFields>(...fields: Fields): BuilderComponentConfig<Fields>;
|
|
136
|
+
export declare const validateComponentConfig: (input: unknown, references?: import("..").BuilderReferences, errors?: import("../../validate").BuilderValidateErrors) => import("..").ValidationResult<{
|
|
137
|
+
readonly fields: readonly {
|
|
138
|
+
readonly type: "component-field";
|
|
139
|
+
readonly name: string;
|
|
140
|
+
readonly valueType: "string" | "number" | "boolean";
|
|
141
|
+
readonly isOptional: boolean;
|
|
142
|
+
readonly tags?: readonly string[] | undefined;
|
|
143
|
+
}[];
|
|
144
|
+
readonly tags?: readonly string[] | undefined;
|
|
145
|
+
}>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
import { check } from '../../errors/index.js';
|
|
3
|
+
import { paramable } from '../../references.js';
|
|
4
|
+
import { createEntityValidator } from '../kind.js';
|
|
5
|
+
import { serialisable } from '../serialisable.js';
|
|
6
|
+
import { BuilderTagsSchema } from '../tags.js';
|
|
7
|
+
import { BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSerialisedSchema } from './field.js';
|
|
8
|
+
export class BuilderComponentConfig {
|
|
9
|
+
fields;
|
|
10
|
+
tags;
|
|
11
|
+
constructor(fields, tags) {
|
|
12
|
+
this.fields = fields;
|
|
13
|
+
this.tags = tags;
|
|
14
|
+
}
|
|
15
|
+
tag(...tags) {
|
|
16
|
+
return new BuilderComponentConfig(this.fields, tags);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export const BuilderComponentConfigSchema = v.instance(BuilderComponentConfig);
|
|
20
|
+
export const BuilderComponentConfigSerialisedSchema = serialisable(v.object({
|
|
21
|
+
fields: paramable(BuilderComponentFieldsSerialisedSchema),
|
|
22
|
+
tags: v.optional(BuilderTagsSchema)
|
|
23
|
+
}));
|
|
24
|
+
export const BuilderComponentConfigsSerialisedSchema = v.pipe(v.array(BuilderComponentConfigSerialisedSchema), v.readonly());
|
|
25
|
+
export function componentConfig(...fields) {
|
|
26
|
+
return new BuilderComponentConfig(fields);
|
|
27
|
+
}
|
|
28
|
+
export const validateComponentConfig = createEntityValidator('componentConfig', BuilderComponentConfigSerialisedSchema, (input, errors) => {
|
|
29
|
+
if (!check.is(BuilderComponentFieldsSerialisedSchema, input.fields)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const seen = new Set();
|
|
33
|
+
input.fields.forEach((field) => {
|
|
34
|
+
if (!check.is(BuilderComponentFieldSerialisedSchema, field)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (seen.has(field.name)) {
|
|
38
|
+
errors.duplicateName(field.name);
|
|
39
|
+
}
|
|
40
|
+
seen.add(field.name);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
|
-
import { serialisable } from '
|
|
2
|
+
import { serialisable } from '../serialisable.js';
|
|
3
3
|
import { BuilderTagsSchema } from '../tags.js';
|
|
4
4
|
export const BuilderComponentFieldValueTypeSchema = v.picklist(['string', 'boolean', 'number']);
|
|
5
5
|
export class BuilderComponentField {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export type { BuilderComponentPayload, BuilderComponents, BuilderComponentSerialised, BuilderComponentsSerialised, BuilderComponentWhenSerialised } from './component';
|
|
2
|
-
export type {
|
|
2
|
+
export type { BuilderComponentConfigSerialised, BuilderComponentConfigsSerialised } from './config';
|
|
3
3
|
export type { ComponentAsserted } from './expectation';
|
|
4
4
|
export type { BuilderComponentFields, BuilderComponentFieldsSerialised, BuilderComponentFieldSerialised, BuilderComponentFieldValueType } from './field';
|
|
5
5
|
export type { BuilderComponentWhen } from './when';
|
|
6
|
-
export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema } from './component.js';
|
|
7
|
-
export {
|
|
6
|
+
export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, validateComponentSelectMap, validateComponentWhen } from './component.js';
|
|
7
|
+
export { BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, componentConfig, validateComponentConfig } from './config.js';
|
|
8
8
|
export { componentExpectation } from './expectation.js';
|
|
9
9
|
export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
|
|
10
10
|
export { componentWhen } from './when.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema } from './component.js';
|
|
2
|
-
export {
|
|
1
|
+
export { BuilderComponent, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentSerialisedSchema, BuilderComponentsSerialisedSchema, BuilderComponentWhenSerialisedSchema, validateComponentSelectMap, validateComponentWhen } from './component.js';
|
|
2
|
+
export { BuilderComponentConfig, BuilderComponentConfigSchema, BuilderComponentConfigSerialisedSchema, BuilderComponentConfigsSerialisedSchema, componentConfig, validateComponentConfig } from './config.js';
|
|
3
3
|
export { componentExpectation } from './expectation.js';
|
|
4
4
|
export { BuilderComponentField, BuilderComponentFieldSchema, BuilderComponentFieldSerialisedSchema, BuilderComponentFieldsSchema, BuilderComponentFieldsSerialisedSchema, BuilderComponentFieldValueTypeSchema, detailBoolean, detailNumber, detailString, detailValueSchema } from './field.js';
|
|
5
5
|
export { componentWhen } from './when.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { BuilderPath } from '../../paths';
|
|
2
1
|
import type { BuilderPrimitives } from '../../primitive';
|
|
3
2
|
import type { Paramable } from '../../references';
|
|
3
|
+
import type { BuilderPath } from '../paths';
|
|
4
4
|
import type { BuilderEnableConfig, BuilderMatchConfig, BuilderMatchSelectMap, BuilderUnlessConfig, BuilderWhen } from '../when';
|
|
5
|
-
import type {
|
|
6
|
-
export type BuilderComponentWhen = BuilderWhen<Paramable<
|
|
5
|
+
import type { BuilderComponentConfig } from './config';
|
|
6
|
+
export type BuilderComponentWhen = BuilderWhen<Paramable<BuilderComponentConfig>, Paramable<BuilderPath>, Paramable<Record<string, Paramable<BuilderComponentConfig> | null>>, Paramable<BuilderPath>>;
|
|
7
7
|
export declare const componentWhen: {
|
|
8
|
-
enable: <const Payload extends Paramable<
|
|
9
|
-
match: <const Payload extends Paramable<
|
|
10
|
-
unless: <const UnlessPath extends Paramable<BuilderPath>, const Payload extends Paramable<
|
|
8
|
+
enable: <const Payload extends Paramable<BuilderComponentConfig>>(payload?: Payload) => BuilderEnableConfig<Payload>;
|
|
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>;
|
|
11
11
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createWhenFactories } from '../when.js';
|
|
2
|
-
import {
|
|
2
|
+
import { componentConfig } from './config.js';
|
|
3
3
|
const baseFactories = createWhenFactories();
|
|
4
4
|
export const componentWhen = {
|
|
5
5
|
enable: (payload) => {
|
|
6
6
|
return {
|
|
7
7
|
type: 'enable',
|
|
8
|
-
payload: (payload ??
|
|
8
|
+
payload: (payload ?? componentConfig())
|
|
9
9
|
};
|
|
10
10
|
},
|
|
11
11
|
match: baseFactories.match,
|
|
@@ -14,7 +14,7 @@ export const componentWhen = {
|
|
|
14
14
|
type: 'unless',
|
|
15
15
|
unlessPath,
|
|
16
16
|
disabledValues,
|
|
17
|
-
payload: (payload ??
|
|
17
|
+
payload: (payload ?? componentConfig())
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
};
|
|
@@ -30,3 +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").BuilderValidateErrors) => import("./validated.js").ValidationResult<readonly ({
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly kind: "option" | "component" | "collection";
|
|
36
|
+
} & import("../validate/brand.js").BuilderValidatedBrand)[]>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
|
-
import {
|
|
2
|
+
import { createEntityValidator } from './kind.js';
|
|
3
|
+
import { serialisable } from './serialisable.js';
|
|
3
4
|
export const BuilderExpectationKindSchema = v.picklist(['option', 'component', 'collection']);
|
|
4
5
|
export class BuilderExpectation {
|
|
5
6
|
name;
|
|
@@ -16,3 +17,4 @@ export const BuilderExpectationSerialisedSchema = serialisable(v.object({
|
|
|
16
17
|
kind: BuilderExpectationKindSchema
|
|
17
18
|
}));
|
|
18
19
|
export const BuilderExpectationsSerialisedSchema = v.pipe(v.array(BuilderExpectationSerialisedSchema), v.readonly());
|
|
20
|
+
export const validateExpectations = createEntityValidator('expectations', BuilderExpectationsSerialisedSchema);
|
package/dist/entities/index.d.ts
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
export type { BuilderBindings, BuilderBindingsSerialised, BuilderSerialised } from './builder/index';
|
|
2
|
-
export type { BuilderCollectionConfigSerialised, BuilderCollectionPayload, BuilderCollections, BuilderCollectionSerialised, BuilderCollectionsSerialised, BuilderCollectionWhen, BuilderCollectionWhenSerialised, CollectionNamesOf, CollectionShape } from './collection/index';
|
|
3
|
-
export type {
|
|
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';
|
|
4
4
|
export type { BuilderExpectationKind, BuilderExpectations, BuilderExpectationSerialised, BuilderExpectationsSerialised } from './expectation';
|
|
5
5
|
export type { BuilderEntityKind, BuilderEntitySerialised } from './kind.js';
|
|
6
|
-
export type { BuilderModelEntrySerialised } from './entry';
|
|
7
6
|
export type { BuilderInstanceOf, BuilderModelGeneric, BuilderModels, BuilderModelSerialised, BuilderModelState, BuilderModelStateEmpty, BuilderModelStateOf } from './model/index';
|
|
8
7
|
export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
|
|
9
|
-
export type { BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised,
|
|
8
|
+
export type { BuilderOptionConfig, BuilderOptionConfigSerialised, BuilderOptionConfigsSerialised, BuilderOptionPayload, BuilderOptions, BuilderOptionSerialised, BuilderOptionsSerialised, BuilderOptionWhen, BuilderOptionWhenSerialised, BuilderSelectConfigLabels, BuilderSelectConfigSerialised, BuilderSelectConfigValues, BuilderToggleConfigSerialised, BuilderToggleValueType } from './option/index';
|
|
9
|
+
export type { BuilderPath, BuilderPaths } from './paths.js';
|
|
10
10
|
export type { BuilderPricingExpression, BuilderPricingLookupKey, BuilderPricingReduce, BuilderPricingSerialised, BuilderRates } from './pricing/index';
|
|
11
|
-
export type {
|
|
11
|
+
export type { BuilderReference, BuilderReferences } from './references.js';
|
|
12
12
|
export type { BuilderTags } from './tags';
|
|
13
|
-
export type { BuilderDescription, BuilderDescriptionItem, BuilderUIDescribeSerialised, BuilderUIInputMetadata, BuilderUIInputMetadataSerialised, BuilderUIInputs,
|
|
14
|
-
export type { BuilderCollectionConfigValidated, BuilderCollectionsValidated, BuilderCollectionValidated,
|
|
13
|
+
export type { BuilderDescription, BuilderDescriptionItem, BuilderUIDescribeSerialised, BuilderUIInputMetadata, BuilderUIInputMetadataSerialised, BuilderUIInputs, BuilderUIInputSerialised, BuilderUIInputsSerialised, BuilderUIItem, BuilderUIItems, BuilderUIItemSerialised, BuilderUIItemsSerialised, BuilderUIPageSerialised, BuilderUIPagesSerialised, BuilderUIs, BuilderUISerialised, BuilderUIsSerialised } from './ui/index';
|
|
14
|
+
export type { BuilderCollectionConfigValidated, BuilderCollectionsValidated, BuilderCollectionValidated, BuilderComponentConfigValidated, BuilderComponentsValidated, BuilderComponentValidated, BuilderInstancesValidated, BuilderInstanceValidated, BuilderModelValidated, BuilderOptionConfigValidated, BuilderOptionsValidated, BuilderOptionValidated, BuilderPricingValidated, BuilderUIDescribeValidated, BuilderUIItemsValidated, BuilderUIPageValidated, BuilderUIValidated, BuilderValidated, BuilderValidatedMap, BuilderVariantsValidated, Validated, ValidationResult } from './validated';
|
|
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
|
-
export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen } from './collection/index.js';
|
|
18
|
-
export { BuilderComponent,
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
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';
|
|
19
|
+
export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema, validateExpectations } from './expectation.js';
|
|
20
|
+
export { createEntityValidator } from './kind.js';
|
|
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';
|
|
22
|
+
export { BuilderPathSchema, BuilderPathsSchema, validatePath, validatePaths } from './paths.js';
|
|
23
|
+
export { BuilderPricing, BuilderPricingExpressionSchema, BuilderPricingLookupKeySchema, BuilderPricingReduceSchema, BuilderPricingSchema, BuilderPricingSerialisedSchema, BuilderRatesSchema, pricing, validatePricingRates } from './pricing/index.js';
|
|
24
|
+
export { BuilderReferenceSchema, BuilderReferencesSchema } from './references.js';
|
|
25
|
+
export { BuilderEntityKindSchema, BuilderEntitySerialisedSchema, entitiesMap, serialise, validateBoolean, validateNumber, validateString } from './serialise.js';
|
|
21
26
|
export { BuilderTagsSchema } from './tags.js';
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
|
|
25
|
-
export { serialise } from './serialise.js';
|
|
26
|
-
export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIInput, BuilderUIInputMetadataSchema, BuilderUIInputSchema, BuilderUIInputSerialisedSchema, BuilderUIInputsSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, input, uis } from './ui/index.js';
|
|
27
|
-
export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
|
|
27
|
+
export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIInput, BuilderUIInputMetadataSchema, BuilderUIInputSchema, BuilderUIInputSerialisedSchema, BuilderUIInputsSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, input, uis, validateUIDescribe, validateUIInput, validateUIItems, validateUIPage, validateUIPages } from './ui/index.js';
|
|
28
|
+
export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema, whenBranches } from './when.js';
|
package/dist/entities/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model, modelsMerge } from './model/index.js';
|
|
2
2
|
export { Builder, builder, BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
|
|
3
|
-
export { BuilderCollection, BuilderCollectionConfig, BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema, BuilderCollectionSchema, BuilderCollectionSelectMapSerialisedSchema, BuilderCollectionSerialisedSchema, BuilderCollectionsSerialisedSchema, BuilderCollectionWhenSerialisedSchema, collectionConfig, collectionExpectation, collectionWhen } from './collection/index.js';
|
|
4
|
-
export { BuilderComponent,
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
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';
|
|
5
|
+
export { BuilderExpectation, BuilderExpectationKindSchema, BuilderExpectationSchema, BuilderExpectationSerialisedSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema, validateExpectations } from './expectation.js';
|
|
6
|
+
export { createEntityValidator } from './kind.js';
|
|
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';
|
|
8
|
+
export { BuilderPathSchema, BuilderPathsSchema, validatePath, validatePaths } from './paths.js';
|
|
9
|
+
export { BuilderPricing, BuilderPricingExpressionSchema, BuilderPricingLookupKeySchema, BuilderPricingReduceSchema, BuilderPricingSchema, BuilderPricingSerialisedSchema, BuilderRatesSchema, pricing, validatePricingRates } from './pricing/index.js';
|
|
10
|
+
export { BuilderReferenceSchema, BuilderReferencesSchema } from './references.js';
|
|
11
|
+
export { BuilderEntityKindSchema, BuilderEntitySerialisedSchema, entitiesMap, serialise, validateBoolean, validateNumber, validateString } from './serialise.js';
|
|
7
12
|
export { BuilderTagsSchema } from './tags.js';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export { BuilderOption, BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionSerialisedSchema, BuilderOptionsSerialisedSchema, BuilderOptionValuesSchema, BuilderOptionValuesSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectType, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleType, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema, optionExpectation, optionValueSchema, optionWhen, select, toggleBoolean, toggleNumber, toggleString } from './option/index.js';
|
|
11
|
-
export { serialise } from './serialise.js';
|
|
12
|
-
export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIInput, BuilderUIInputMetadataSchema, BuilderUIInputSchema, BuilderUIInputSerialisedSchema, BuilderUIInputsSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, input, uis } from './ui/index.js';
|
|
13
|
-
export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema } from './when.js';
|
|
13
|
+
export { BuilderDescriptionItemSchema, BuilderDescriptionSchema, BuilderUI, BuilderUIDescribe, BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIInput, BuilderUIInputMetadataSchema, BuilderUIInputSchema, BuilderUIInputSerialisedSchema, BuilderUIInputsSerialisedSchema, BuilderUIItemSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPage, BuilderUIPages, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema, input, uis, validateUIDescribe, validateUIInput, validateUIItems, validateUIPage, validateUIPages } from './ui/index.js';
|
|
14
|
+
export { BuilderWhenConfigSchema, BuilderWhenEnableSchema, BuilderWhenMatchSchema, BuilderWhenSerialisedSchema, BuilderWhenUnlessSchema, createWhenFactories, createWhenSerialisedSchema, whenBranches } from './when.js';
|
package/dist/entities/kind.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import type { BuilderReferences } from './references';
|
|
1
2
|
import type { EntitiesMap } from './serialise';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
3
|
+
import type { BuilderValidatedMap, ValidationResult } from './validated';
|
|
4
|
+
import type * as v from 'valibot';
|
|
5
|
+
import { BuilderValidateErrors } from '../errors/index.js';
|
|
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
|
+
export type BuilderEntityKind = (typeof builderEntityKinds)[number];
|
|
6
8
|
export type BuilderEntitySerialised = {
|
|
7
|
-
[Kind in
|
|
8
|
-
}[
|
|
9
|
-
export
|
|
9
|
+
[Kind in BuilderEntityKind]: v.InferOutput<EntitiesMap[Kind]['serialised']>;
|
|
10
|
+
}[BuilderEntityKind];
|
|
11
|
+
export type EntityValidate<Kind extends BuilderEntityKind> = (input: BuilderValidatedMap[Kind], errors: BuilderValidateErrors, references: BuilderReferences) => void;
|
|
12
|
+
export declare function createEntityValidator<Kind extends BuilderEntityKind>(kind: Kind, schema: v.GenericSchema, validate?: EntityValidate<Kind>): (input: unknown, references?: BuilderReferences, errors?: BuilderValidateErrors) => ValidationResult<BuilderValidatedMap[Kind]>;
|
package/dist/entities/kind.js
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BuilderValidateErrors, check } from '../errors/index.js';
|
|
2
|
+
export const builderEntityKinds = [
|
|
3
|
+
'builder',
|
|
4
|
+
'model',
|
|
5
|
+
'select',
|
|
6
|
+
'toggle',
|
|
7
|
+
'optionSelectMap',
|
|
8
|
+
'optionWhen',
|
|
9
|
+
'componentConfig',
|
|
10
|
+
'componentSelectMap',
|
|
11
|
+
'componentWhen',
|
|
12
|
+
'collectionConfig',
|
|
13
|
+
'collectionSelectMap',
|
|
14
|
+
'collectionWhen',
|
|
15
|
+
'ui',
|
|
16
|
+
'uiDescribe',
|
|
17
|
+
'uiItems',
|
|
18
|
+
'uiPage',
|
|
19
|
+
'uiPages',
|
|
20
|
+
'uiInput',
|
|
21
|
+
'pricing',
|
|
22
|
+
'pricingRates',
|
|
23
|
+
'expectations',
|
|
24
|
+
'paths',
|
|
25
|
+
'path',
|
|
26
|
+
'number',
|
|
27
|
+
'string',
|
|
28
|
+
'boolean'
|
|
29
|
+
];
|
|
30
|
+
export function createEntityValidator(kind, schema, validate) {
|
|
31
|
+
return (input, references = [], errors = new BuilderValidateErrors()) => {
|
|
32
|
+
if (!check.is(schema, input)) {
|
|
33
|
+
errors.invalidEntity(kind);
|
|
34
|
+
return [input, errors.errors];
|
|
35
|
+
}
|
|
36
|
+
validate?.(input, errors, references);
|
|
37
|
+
return [input, errors.errors];
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { BuilderPaths } from '../../paths';
|
|
2
1
|
import type { BuilderParameter, BuilderRef, Paramable } from '../../references';
|
|
3
2
|
import type { BuilderCollectionConfig, BuilderCollectionPayload } from '../collection/index';
|
|
4
3
|
import type { BuilderComponentPayload } from '../component/index';
|
|
5
4
|
import type { BuilderOptionPayload } from '../option/index';
|
|
5
|
+
import type { BuilderPaths } from '../paths';
|
|
6
6
|
import type { BuilderWhenConstrained, BuilderWhenGeneric, WhenConfigNullable } from '../when';
|
|
7
7
|
import type { BuilderModelGeneric } from './model';
|
|
8
8
|
import type { BuilderModels } from './models';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { BuilderModelGeneric, BuilderInstanceOf, BuilderModelSerialised, BuilderModelStateOf } from './model';
|
|
2
2
|
export type { BuilderModels } from './models';
|
|
3
3
|
export type { BuilderModelStateAsserted } from './expectation';
|
|
4
|
-
export type { BuilderModelBindings } from './bind';
|
|
4
|
+
export type { BuilderModelBindings, BuilderModelBoundState } from './bind';
|
|
5
5
|
export type { BuilderModelState, BuilderModelStateEmpty } from './state';
|
|
6
6
|
export { BuilderModel, BuilderModelSchema, BuilderModelSerialisedSchema, model } from './model.js';
|
|
7
7
|
export { modelsMerge } from './models.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { BuilderPaths } from '../../paths';
|
|
2
1
|
import type { BuilderParameter, Paramable } from '../../references';
|
|
3
2
|
import type { BuilderCollectionConfig, BuilderCollectionWhen } from '../collection/index';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
3
|
+
import type { BuilderComponentConfig, BuilderComponentWhen } from '../component/index';
|
|
4
|
+
import type { BuilderOptionConfig, BuilderOptionWhen } from '../option/index';
|
|
5
|
+
import type { BuilderPaths } from '../paths';
|
|
6
6
|
import type { BuilderValidPaths, BuilderWhenConstrained, WhenConfigPayload, WhenNullability } from '../when';
|
|
7
7
|
import type { BuilderModel } from './model';
|
|
8
8
|
import type { BuilderModelState, BuilderModelStateAppend } from './state';
|
|
@@ -10,19 +10,19 @@ import { BuilderCollection } from '../collection/index.js';
|
|
|
10
10
|
import { BuilderComponent } from '../component/index.js';
|
|
11
11
|
import { BuilderOption } from '../option/index.js';
|
|
12
12
|
export type BuilderOptionMethod<State extends BuilderModelState> = {
|
|
13
|
-
<const Name extends string, const Payload extends Paramable<
|
|
13
|
+
<const Name extends string, const Payload extends Paramable<BuilderOptionConfig>>(name: Name, payload: Payload): OptionStateAppend<State, BuilderOption<Name, Payload>>;
|
|
14
14
|
when: <const Paths extends Paramable<BuilderValidPaths<State>>, const Name extends string, const Payload extends Paramable<BuilderOptionWhen>>(paths: Paths, name: Name, payload: Payload & BuilderWhenConstrained<State, Payload>) => OptionStateAppend<State, OptionWhenResolver<Name, Payload>, OptionInstanceOf<OptionWhenResolver<Name, Payload>> | WhenNullability<State, Paths, Payload>>;
|
|
15
15
|
};
|
|
16
16
|
export type BuilderComponentMethod<State extends BuilderModelState> = {
|
|
17
|
-
<const Name extends string, const Payload extends Paramable<
|
|
17
|
+
<const Name extends string, const Payload extends Paramable<BuilderComponentConfig>>(name: Name, payload?: Payload): ComponentStateAppend<State, BuilderComponent<Name, Payload>>;
|
|
18
18
|
when: <const Paths extends Paramable<BuilderValidPaths<State>>, const Name extends string, const Payload extends Paramable<BuilderComponentWhen>>(paths: Paths, name: Name, payload?: Payload & BuilderWhenConstrained<State, Payload>) => ComponentStateAppend<State, ComponentWhenResolver<Name, Payload>>;
|
|
19
19
|
};
|
|
20
20
|
export type BuilderCollectionMethod<State extends BuilderModelState> = {
|
|
21
21
|
<const Name extends string, const Payload extends Paramable<BuilderCollectionConfig>>(name: Name, payload: Payload): CollectionStateAppend<State, BuilderCollection<Name, Payload>>;
|
|
22
22
|
when: <const Paths extends Paramable<BuilderValidPaths<State>>, const Name extends string, const Payload extends Paramable<BuilderCollectionWhen>>(paths: Paths, name: Name, payload: Payload & BuilderWhenConstrained<State, Payload>) => CollectionStateAppend<State, CollectionWhenResolver<Name, Payload>, CollectionInstanceOf<CollectionWhenResolver<Name, Payload>> | WhenNullability<State, Paths, Payload>>;
|
|
23
23
|
};
|
|
24
|
-
type OptionWhenResolver<Name extends string, Payload extends Paramable<BuilderOptionWhen>> = Payload extends BuilderOptionWhen ? BuilderOption<Name, WhenConfigPayload<Payload,
|
|
25
|
-
type ComponentWhenResolver<Name extends string, Payload extends Paramable<BuilderComponentWhen>> = Payload extends BuilderComponentWhen ? BuilderComponent<Name, WhenConfigPayload<Payload,
|
|
24
|
+
type OptionWhenResolver<Name extends string, Payload extends Paramable<BuilderOptionWhen>> = Payload extends BuilderOptionWhen ? BuilderOption<Name, WhenConfigPayload<Payload, BuilderOptionConfig>> : BuilderOption<Name, BuilderParameter>;
|
|
25
|
+
type ComponentWhenResolver<Name extends string, Payload extends Paramable<BuilderComponentWhen>> = Payload extends BuilderComponentWhen ? BuilderComponent<Name, WhenConfigPayload<Payload, BuilderComponentConfig>> : BuilderComponent<Name, BuilderParameter>;
|
|
26
26
|
type CollectionWhenResolver<Name extends string, Payload extends Paramable<BuilderCollectionWhen>> = Payload extends BuilderCollectionWhen ? BuilderCollection<Name, WhenConfigPayload<Payload, BuilderCollectionConfig>> : BuilderCollection<Name, BuilderParameter>;
|
|
27
27
|
type OptionStateAppend<State extends BuilderModelState, Option extends BuilderOption, InstanceType = OptionInstanceOf<Option>> = BuilderModel<BuilderModelStateAppend<State, {
|
|
28
28
|
instance: State['instance'] & {
|
|
@@ -45,13 +45,13 @@ type CollectionInstanceOf<Collection extends BuilderCollection> = [Collection['p
|
|
|
45
45
|
] ? null : Collection['payload'] extends BuilderCollectionConfig ? Collection['payload']['model'] extends BuilderModel<infer State extends BuilderModelState> ? CollectionShape<Collection, State['instance']> : ReadonlyArray<unknown> : ReadonlyArray<unknown>;
|
|
46
46
|
type CollectionShape<Collection extends BuilderCollection, Item> = Collection['payload'] extends BuilderCollectionConfig ? Collection['payload']['min'] extends number ? Collection['payload']['max'] extends number ? number extends Collection['payload']['min'] ? ReadonlyArray<Item> : number extends Collection['payload']['max'] ? ReadonlyArray<Item> : Collection['payload']['min'] extends Collection['payload']['max'] ? CollectionTuple<Item, Collection['payload']['min']> : ReadonlyArray<Item> : ReadonlyArray<Item> : ReadonlyArray<Item> : ReadonlyArray<Item>;
|
|
47
47
|
type CollectionTuple<Item, Length extends number, Result extends ReadonlyArray<Item> = []> = Result['length'] extends Length ? Result : CollectionTuple<Item, Length, [...Result, Item]>;
|
|
48
|
-
export declare function builderOptionMethod(): ((name: string, payload: Paramable<
|
|
49
|
-
when(paths: Paramable<BuilderPaths>, name: string, payload: Paramable<BuilderOptionWhen>): BuilderOption<string, Paramable<BuilderOptionWhen>, readonly (readonly (string | number)[])[]
|
|
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
|
+
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<
|
|
52
|
-
when(paths: Paramable<BuilderPaths>, name: string, payload?: Paramable<BuilderComponentWhen>): BuilderComponent<string, Paramable<BuilderComponentWhen>, readonly (readonly (string | number)[])[]
|
|
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)[])[]>>) & {
|
|
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)[])[]>>) & {
|
|
55
|
-
when(paths: Paramable<BuilderPaths>, name: string, payload: Paramable<BuilderCollectionWhen>): BuilderCollection<string, Paramable<BuilderCollectionWhen>, readonly (readonly (string | number)[])[]
|
|
55
|
+
when(paths: Paramable<BuilderPaths>, name: string, payload: Paramable<BuilderCollectionWhen>): BuilderCollection<string, Paramable<BuilderCollectionWhen>, BuilderParameter<string> | import("../..").BuilderRef | readonly (readonly (string | number)[])[]>;
|
|
56
56
|
};
|
|
57
57
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BuilderCollection } from '../collection/index.js';
|
|
2
|
-
import { BuilderComponent,
|
|
2
|
+
import { BuilderComponent, componentConfig, componentWhen } from '../component/index.js';
|
|
3
3
|
import { BuilderOption } from '../option/index.js';
|
|
4
4
|
export function builderOptionMethod() {
|
|
5
5
|
return Object.assign((name, payload) => {
|
|
@@ -12,7 +12,7 @@ export function builderOptionMethod() {
|
|
|
12
12
|
}
|
|
13
13
|
export function builderComponentMethod() {
|
|
14
14
|
return Object.assign((name, payload) => {
|
|
15
|
-
return new BuilderComponent(name, payload ??
|
|
15
|
+
return new BuilderComponent(name, payload ?? componentConfig());
|
|
16
16
|
}, {
|
|
17
17
|
when(paths, name, payload) {
|
|
18
18
|
return new BuilderComponent(name, payload ?? componentWhen.enable(), paths);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
|
-
import { serialisable } from '../../serialisable.js';
|
|
3
2
|
import { BuilderCollectionsSerialisedSchema } from '../collection/index.js';
|
|
4
3
|
import { BuilderComponentsSerialisedSchema } from '../component/index.js';
|
|
5
4
|
import { BuilderExpectationsSerialisedSchema } from '../expectation.js';
|
|
6
5
|
import { BuilderOptionsSerialisedSchema } from '../option/index.js';
|
|
6
|
+
import { serialisable } from '../serialisable.js';
|
|
7
7
|
import { BuilderTagsSchema } from '../tags.js';
|
|
8
8
|
import { builderCollectionMethod, builderComponentMethod, builderOptionMethod } from './methods.js';
|
|
9
9
|
import { BuilderModelsSerialisedSchema } from './models.js';
|
|
@@ -35,5 +35,5 @@ type BuilderModelsInstanceMerge<Parts extends BuilderModels> = Parts extends rea
|
|
|
35
35
|
infer Head,
|
|
36
36
|
...infer Tail extends BuilderModels
|
|
37
37
|
] ? Head extends BuilderModelGeneric ? BuilderModelStateOf<Head>['instance'] & BuilderModelsInstanceMerge<Tail> : BuilderModelsInstanceMerge<Tail> : unknown;
|
|
38
|
-
export declare function modelsMerge(model:
|
|
38
|
+
export declare function modelsMerge<Model extends BuilderModelSerialised | BuilderModelValidated>(model: Model): Model;
|
|
39
39
|
export {};
|