@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
package/dist/bb.d.ts
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BuilderEntityKind, BuilderInstanceValidated, BuilderModelValidated, BuilderReferences, BuilderValidated, BuilderValidatedMap, BuilderVariantsValidated } from './entities/index';
|
|
2
2
|
import type { BuilderEnvironment, BuilderEnvironmentResult } from './environment';
|
|
3
|
+
import type { BuilderInstance, BuilderInstanceInput, BuilderVariants } from './instance';
|
|
3
4
|
import type { BuilderOrder, BuilderRenderResult } from './mappers/index';
|
|
4
|
-
import type {
|
|
5
|
+
import type { BuilderVariantsValidationOptions } from './validate/index';
|
|
5
6
|
export type BBOptions = {
|
|
6
|
-
readonly references?:
|
|
7
|
+
readonly references?: BuilderReferences;
|
|
8
|
+
};
|
|
9
|
+
export type BuilderEntityValidators<Env extends BuilderEnvironment> = {
|
|
10
|
+
readonly [Kind in BuilderEntityKind]: (input: unknown) => BuilderEnvironmentResult<BuilderValidatedMap[Kind], Env>;
|
|
7
11
|
};
|
|
8
12
|
export type BB<Env extends BuilderEnvironment = 'production'> = {
|
|
9
|
-
readonly validate: {
|
|
10
|
-
builder(input: unknown): BuilderEnvironmentResult<BuilderValidated, Env>;
|
|
11
|
-
model(input: unknown): BuilderEnvironmentResult<BuilderModelValidated, Env>;
|
|
12
|
-
pricing(input: unknown): BuilderEnvironmentResult<BuilderPricingValidated, Env>;
|
|
13
|
-
ui(input: unknown): BuilderEnvironmentResult<BuilderUIValidated, Env>;
|
|
13
|
+
readonly validate: BuilderEntityValidators<Env> & {
|
|
14
14
|
instance(model: BuilderModelValidated, instance: BuilderInstance): BuilderEnvironmentResult<BuilderInstanceValidated, Env>;
|
|
15
|
-
variants(model: BuilderModelValidated, input: unknown, options?:
|
|
16
|
-
readonly partial?: boolean;
|
|
17
|
-
}): BuilderEnvironmentResult<BuilderComponentVariantsValidated, Env>;
|
|
15
|
+
variants(model: BuilderModelValidated, input: unknown, options?: BuilderVariantsValidationOptions): BuilderEnvironmentResult<BuilderVariantsValidated, Env>;
|
|
18
16
|
};
|
|
19
17
|
instance(entity: BuilderValidated | BuilderModelValidated, partial?: BuilderInstanceInput): BuilderInstance;
|
|
20
18
|
render(builder: BuilderValidated, instance: BuilderInstanceValidated): BuilderRenderResult;
|
|
21
|
-
order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants:
|
|
22
|
-
price(pricing:
|
|
23
|
-
variants(entity: BuilderValidated | BuilderModelValidated):
|
|
19
|
+
order(model: BuilderModelValidated, instance: BuilderInstanceValidated, variants: BuilderVariantsValidated): BuilderOrder;
|
|
20
|
+
price(pricing: BuilderValidatedMap['pricing'], order: BuilderOrder): number | null;
|
|
21
|
+
variants(entity: BuilderValidated | BuilderModelValidated): BuilderVariants;
|
|
24
22
|
};
|
|
25
23
|
export declare const bb: typeof bbProduction & {
|
|
26
24
|
development: typeof bbDevelopment;
|
package/dist/bb.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { validateBoolean, validateCollectionConfig, validateCollectionSelectMap, validateCollectionWhen, validateComponentConfig, validateComponentSelectMap, validateComponentWhen, validateExpectations, validateNumber, validateOptionSelectMap, validateOptionWhen, validatePath, validatePaths, validatePricingRates, validateSelect, validateString, validateToggle, validateUIDescribe, validateUIInput, validateUIItems, validateUIPage, validateUIPages } from './entities/index.js';
|
|
2
|
+
import { BuilderException } from './errors/index.js';
|
|
3
|
+
import { createInstance, createVariants, order, price, render } from './mappers/index.js';
|
|
4
|
+
import { assertValidated, validateBuilder, validateInstance, validateModel, validatePricing, validateUI, validateVariants } from './validate/index.js';
|
|
3
5
|
export const bb = Object.assign(bbProduction, {
|
|
4
6
|
development: bbDevelopment,
|
|
5
7
|
staging: bbProduction,
|
|
@@ -16,8 +18,30 @@ function bbFactory(environment, references = []) {
|
|
|
16
18
|
validate: {
|
|
17
19
|
builder: (input) => throwInProd(validateBuilder(input, references)),
|
|
18
20
|
model: (input) => throwInProd(validateModel(input, references)),
|
|
19
|
-
|
|
21
|
+
select: (input) => throwInProd(validateSelect(input, references)),
|
|
22
|
+
toggle: (input) => throwInProd(validateToggle(input, references)),
|
|
23
|
+
optionSelectMap: (input) => throwInProd(validateOptionSelectMap(input, references)),
|
|
24
|
+
optionWhen: (input) => throwInProd(validateOptionWhen(input, references)),
|
|
25
|
+
componentConfig: (input) => throwInProd(validateComponentConfig(input, references)),
|
|
26
|
+
componentSelectMap: (input) => throwInProd(validateComponentSelectMap(input, references)),
|
|
27
|
+
componentWhen: (input) => throwInProd(validateComponentWhen(input, references)),
|
|
28
|
+
collectionConfig: (input) => throwInProd(validateCollectionConfig(input, references)),
|
|
29
|
+
collectionSelectMap: (input) => throwInProd(validateCollectionSelectMap(input, references)),
|
|
30
|
+
collectionWhen: (input) => throwInProd(validateCollectionWhen(input, references)),
|
|
20
31
|
ui: (input) => throwInProd(validateUI(input, references)),
|
|
32
|
+
uiDescribe: (input) => throwInProd(validateUIDescribe(input, references)),
|
|
33
|
+
uiItems: (input) => throwInProd(validateUIItems(input, references)),
|
|
34
|
+
uiPage: (input) => throwInProd(validateUIPage(input, references)),
|
|
35
|
+
uiPages: (input) => throwInProd(validateUIPages(input, references)),
|
|
36
|
+
uiInput: (input) => throwInProd(validateUIInput(input, references)),
|
|
37
|
+
pricing: (input) => throwInProd(validatePricing(input, references)),
|
|
38
|
+
pricingRates: (input) => throwInProd(validatePricingRates(input, references)),
|
|
39
|
+
expectations: (input) => throwInProd(validateExpectations(input, references)),
|
|
40
|
+
paths: (input) => throwInProd(validatePaths(input, references)),
|
|
41
|
+
path: (input) => throwInProd(validatePath(input, references)),
|
|
42
|
+
number: (input) => throwInProd(validateNumber(input, references)),
|
|
43
|
+
string: (input) => throwInProd(validateString(input, references)),
|
|
44
|
+
boolean: (input) => throwInProd(validateBoolean(input, references)),
|
|
21
45
|
instance: (model, instance) => throwInProd(validateInstance(model, instance)),
|
|
22
46
|
variants: (model, input, variantOptions) => throwInProd(validateVariants(model, input, variantOptions))
|
|
23
47
|
},
|
|
@@ -47,10 +71,12 @@ function bbFactory(environment, references = []) {
|
|
|
47
71
|
};
|
|
48
72
|
function throwInProd(result) {
|
|
49
73
|
const [entity, errors] = result;
|
|
50
|
-
|
|
51
|
-
|
|
74
|
+
if (environment === 'development') {
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
if (errors.length > 0) {
|
|
52
78
|
throw new BuilderException(errors);
|
|
53
79
|
}
|
|
54
|
-
return
|
|
80
|
+
return [entity, []];
|
|
55
81
|
}
|
|
56
82
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BuilderEntitySerialised } from '../kind';
|
|
2
1
|
import type { BuilderRefSerialised } from '../../references';
|
|
2
|
+
import type { BuilderEntitySerialised } from '../kind';
|
|
3
3
|
export type BuilderBindings = Readonly<Record<string, unknown>>;
|
|
4
4
|
export type BuilderBindingsSerialised = Readonly<Record<string, BuilderEntitySerialised | BuilderRefSerialised>>;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { BuilderModelSerialised } from '../model/
|
|
2
|
-
import type { BuilderModelBindings, BuilderModelBoundState } from '../model/bind';
|
|
3
|
-
import type { BuilderModelState } from '../model/state';
|
|
1
|
+
import type { BuilderModelBindings, BuilderModelBoundState, BuilderModelSerialised, BuilderModelState } from '../model/index';
|
|
4
2
|
import type { BuilderPricingSerialised } from '../pricing/index';
|
|
5
3
|
import type { BuilderTags } from '../tags';
|
|
6
|
-
import type { BuilderUISerialised } from '../ui/
|
|
4
|
+
import type { BuilderUISerialised } from '../ui/index';
|
|
7
5
|
import type { BuilderBindings, BuilderBindingsSerialised } from './bind';
|
|
8
6
|
import * as v from 'valibot';
|
|
9
7
|
import { BuilderModel } from '../model/index.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { BuilderRefSerialisedSchema } from '../../references.js';
|
|
3
|
-
import { serialisable } from '../../serialisable.js';
|
|
4
3
|
import { BuilderModel, BuilderModelSerialisedSchema } from '../model/index.js';
|
|
5
4
|
import { BuilderPricing, BuilderPricingSerialisedSchema } from '../pricing/index.js';
|
|
5
|
+
import { serialisable } from '../serialisable.js';
|
|
6
6
|
import { BuilderTagsSchema } from '../tags.js';
|
|
7
7
|
import { BuilderUI, BuilderUISerialisedSchema } from '../ui/index.js';
|
|
8
8
|
export class Builder {
|