@builder-builder/builder 0.0.14 → 0.0.15
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 +3 -1
- package/dist/bb.js +6 -1
- package/dist/check.d.ts +2 -2
- package/dist/entities/builder/builder.d.ts +11 -1
- package/dist/entities/builder/builder.js +22 -6
- package/dist/entities/collection/collection.d.ts +7 -1
- package/dist/entities/collection/collection.js +9 -2
- package/dist/entities/collection/config.d.ts +6 -1
- package/dist/entities/collection/config.js +9 -2
- package/dist/entities/component/component.d.ts +41 -1
- package/dist/entities/component/component.js +9 -2
- package/dist/entities/component/details.d.ts +11 -2
- package/dist/entities/component/details.js +9 -2
- package/dist/entities/component/field.d.ts +10 -1
- package/dist/entities/component/field.js +13 -3
- package/dist/entities/index.d.ts +5 -1
- package/dist/entities/index.js +2 -0
- package/dist/entities/kind.d.ts +1 -1
- package/dist/entities/model/model.d.ts +5 -1
- package/dist/entities/model/model.js +10 -3
- package/dist/entities/model/models.js +9 -5
- package/dist/entities/option/option.d.ts +41 -1
- package/dist/entities/option/option.js +9 -2
- package/dist/entities/option/select.d.ts +7 -1
- package/dist/entities/option/select.js +17 -6
- package/dist/entities/option/toggle.d.ts +7 -1
- package/dist/entities/option/toggle.js +16 -4
- package/dist/entities/option/values.d.ts +6 -0
- package/dist/entities/pricing.d.ts +64 -0
- package/dist/entities/pricing.js +48 -0
- package/dist/entities/serialise.d.ts +78 -0
- package/dist/entities/serialise.js +30 -11
- package/dist/entities/tags.d.ts +3 -0
- package/dist/entities/tags.js +2 -0
- package/dist/entities/ui/describe.d.ts +10 -1
- package/dist/entities/ui/describe.js +9 -2
- package/dist/entities/ui/input.d.ts +10 -1
- package/dist/entities/ui/input.js +17 -5
- package/dist/entities/ui/page.d.ts +10 -1
- package/dist/entities/ui/page.js +9 -2
- package/dist/entities/ui/pages.d.ts +5 -1
- package/dist/entities/ui/pages.js +9 -2
- package/dist/entities/ui/ui.d.ts +6 -1
- package/dist/entities/ui/ui.js +27 -12
- package/dist/entities/validated.d.ts +3 -1
- package/dist/exception.d.ts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/instance.d.ts +9 -0
- package/dist/instance.js +3 -1
- package/dist/mappers/index.d.ts +3 -2
- package/dist/mappers/index.js +2 -1
- package/dist/mappers/pricing.d.ts +3 -0
- package/dist/mappers/pricing.js +101 -0
- package/dist/validate/builder.js +5 -1
- package/dist/validate/errors.d.ts +9 -1
- package/dist/validate/errors.js +7 -0
- package/dist/validate/index.d.ts +3 -1
- package/dist/validate/index.js +1 -0
- package/dist/validate/pricing.d.ts +6 -0
- package/dist/validate/pricing.js +71 -0
- package/package.json +1 -1
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import type { BuilderPrimitive } from '../../primitive';
|
|
2
|
+
import type { BuilderTags } from '../tags';
|
|
2
3
|
import * as v from 'valibot';
|
|
3
4
|
export declare const BuilderToggleValueTypeSchema: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
4
5
|
export type BuilderToggleValueType = v.InferOutput<typeof BuilderToggleValueTypeSchema>;
|
|
5
6
|
export declare class BuilderToggleType<const ValueSchema extends v.GenericSchema<BuilderPrimitive> = v.GenericSchema<BuilderPrimitive>> {
|
|
7
|
+
#private;
|
|
6
8
|
readonly value: v.InferOutput<ValueSchema>;
|
|
7
9
|
readonly type: "toggle";
|
|
8
10
|
readonly valueType: BuilderToggleValueType;
|
|
9
11
|
readonly valueSchema: ValueSchema;
|
|
10
12
|
readonly defaultValue: v.InferOutput<ValueSchema>;
|
|
11
13
|
readonly isOptional: boolean;
|
|
12
|
-
|
|
14
|
+
readonly tags?: BuilderTags;
|
|
15
|
+
constructor(valueType: BuilderToggleValueType, defaultValue: v.InferOutput<ValueSchema>, optional?: boolean, tags?: BuilderTags);
|
|
13
16
|
default(newDefault: v.InferOutput<ValueSchema>): BuilderToggleType<ValueSchema>;
|
|
14
17
|
optional(): BuilderToggleType<v.NullableSchema<ValueSchema, undefined>>;
|
|
18
|
+
tag(...tags: Array<string>): BuilderToggleType<ValueSchema>;
|
|
15
19
|
}
|
|
16
20
|
export declare function toggleString(): BuilderToggleType<v.StringSchema<undefined>>;
|
|
17
21
|
export declare function toggleBoolean(): BuilderToggleType<v.BooleanSchema<undefined>>;
|
|
@@ -22,11 +26,13 @@ export declare const BuilderToggleTypeSerialisedSchema: v.SchemaWithPipe<readonl
|
|
|
22
26
|
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
23
27
|
readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
24
28
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
29
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
25
30
|
}, undefined>, v.ReadonlyAction<{
|
|
26
31
|
type: "toggle";
|
|
27
32
|
valueType: "string" | "number" | "boolean";
|
|
28
33
|
defaultValue: string | number | boolean | null;
|
|
29
34
|
isOptional: boolean;
|
|
35
|
+
tags?: readonly string[] | undefined;
|
|
30
36
|
}>]>;
|
|
31
37
|
export type BuilderToggleTypeSerialised = v.InferOutput<typeof BuilderToggleTypeSerialisedSchema>;
|
|
32
38
|
export declare function toggleValueSchema(valueType: BuilderToggleValueType, optional: boolean): v.GenericSchema;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
2
|
import { serialisable } from '../../serialisable.js';
|
|
3
|
+
import { BuilderTagsSchema } from '../tags.js';
|
|
3
4
|
export const BuilderToggleValueTypeSchema = v.picklist(['string', 'boolean', 'number']);
|
|
4
5
|
export class BuilderToggleType {
|
|
5
6
|
type = 'toggle';
|
|
@@ -7,17 +8,27 @@ export class BuilderToggleType {
|
|
|
7
8
|
valueSchema;
|
|
8
9
|
defaultValue;
|
|
9
10
|
isOptional;
|
|
10
|
-
|
|
11
|
+
tags;
|
|
12
|
+
constructor(valueType, defaultValue, optional, tags) {
|
|
11
13
|
this.valueType = valueType;
|
|
12
14
|
this.valueSchema = toggleValueSchema(valueType, optional || false);
|
|
13
15
|
this.defaultValue = defaultValue;
|
|
14
16
|
this.isOptional = optional || false;
|
|
17
|
+
this.tags = tags;
|
|
18
|
+
}
|
|
19
|
+
#next(patch) {
|
|
20
|
+
return new BuilderToggleType(this.valueType, 'defaultValue' in patch
|
|
21
|
+
? patch.defaultValue
|
|
22
|
+
: this.defaultValue, patch.optional ?? this.isOptional, patch.tags ?? this.tags);
|
|
15
23
|
}
|
|
16
24
|
default(newDefault) {
|
|
17
|
-
return
|
|
25
|
+
return this.#next({ defaultValue: newDefault });
|
|
18
26
|
}
|
|
19
27
|
optional() {
|
|
20
|
-
return
|
|
28
|
+
return this.#next({ optional: true });
|
|
29
|
+
}
|
|
30
|
+
tag(...tags) {
|
|
31
|
+
return this.#next({ tags });
|
|
21
32
|
}
|
|
22
33
|
}
|
|
23
34
|
export function toggleString() {
|
|
@@ -34,7 +45,8 @@ export const BuilderToggleTypeSerialisedSchema = serialisable(v.object({
|
|
|
34
45
|
type: v.literal('toggle'),
|
|
35
46
|
valueType: BuilderToggleValueTypeSchema,
|
|
36
47
|
defaultValue: v.nullable(v.union([v.boolean(), v.string(), v.number()])),
|
|
37
|
-
isOptional: v.boolean()
|
|
48
|
+
isOptional: v.boolean(),
|
|
49
|
+
tags: v.optional(BuilderTagsSchema)
|
|
38
50
|
}));
|
|
39
51
|
export function toggleValueSchema(valueType, optional) {
|
|
40
52
|
const baseSchema = valueType === 'string' ? v.string() : valueType === 'boolean' ? v.boolean() : v.number();
|
|
@@ -7,6 +7,7 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
|
|
|
7
7
|
readonly defaultValue: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
8
8
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
9
9
|
readonly optionLabels: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
|
|
10
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
10
11
|
}, undefined>, v.ReadonlyAction<{
|
|
11
12
|
type: "select";
|
|
12
13
|
readonly options: readonly [string, ...string[]];
|
|
@@ -15,16 +16,19 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
|
|
|
15
16
|
optionLabels: {
|
|
16
17
|
[x: string]: string;
|
|
17
18
|
};
|
|
19
|
+
tags?: readonly string[] | undefined;
|
|
18
20
|
}>]>, v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
19
21
|
readonly type: v.LiteralSchema<"toggle", undefined>;
|
|
20
22
|
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
21
23
|
readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
22
24
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
25
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
23
26
|
}, undefined>, v.ReadonlyAction<{
|
|
24
27
|
type: "toggle";
|
|
25
28
|
valueType: "string" | "number" | "boolean";
|
|
26
29
|
defaultValue: string | number | boolean | null;
|
|
27
30
|
isOptional: boolean;
|
|
31
|
+
tags?: readonly string[] | undefined;
|
|
28
32
|
}>]>], undefined>, v.ReadonlyAction<Readonly<{
|
|
29
33
|
type: "select";
|
|
30
34
|
readonly options: readonly [string, ...string[]];
|
|
@@ -33,11 +37,13 @@ export declare const BuilderOptionValuesSerialisedSchema: v.SchemaWithPipe<reado
|
|
|
33
37
|
optionLabels: {
|
|
34
38
|
[x: string]: string;
|
|
35
39
|
};
|
|
40
|
+
tags?: readonly string[] | undefined;
|
|
36
41
|
}> | Readonly<{
|
|
37
42
|
type: "toggle";
|
|
38
43
|
valueType: "string" | "number" | "boolean";
|
|
39
44
|
defaultValue: string | number | boolean | null;
|
|
40
45
|
isOptional: boolean;
|
|
46
|
+
tags?: readonly string[] | undefined;
|
|
41
47
|
}>>]>;
|
|
42
48
|
export type BuilderOptionValuesSerialised = v.InferOutput<typeof BuilderOptionValuesSerialisedSchema>;
|
|
43
49
|
export declare function optionValueSchema(payload: BuilderOptionValuesSerialised): v.GenericSchema;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
export declare const BuilderPricingReduceSchema: v.PicklistSchema<["product", "sum", "first"], undefined>;
|
|
3
|
+
export type BuilderPricingReduce = v.InferOutput<typeof BuilderPricingReduceSchema>;
|
|
4
|
+
export type BuilderPricingTagExpression = {
|
|
5
|
+
readonly kind: 'tag';
|
|
6
|
+
readonly value: string;
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: 'modelTags';
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'variantTags';
|
|
11
|
+
};
|
|
12
|
+
export declare const BuilderPricingTagExpressionSchema: v.GenericSchema<BuilderPricingTagExpression>;
|
|
13
|
+
export type BuilderPricingExpression = {
|
|
14
|
+
readonly kind: 'num';
|
|
15
|
+
readonly value: number;
|
|
16
|
+
} | {
|
|
17
|
+
readonly kind: 'variantPrice';
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'rate';
|
|
20
|
+
readonly rate: string;
|
|
21
|
+
readonly tag: BuilderPricingTagExpression;
|
|
22
|
+
readonly reduce?: BuilderPricingReduce;
|
|
23
|
+
} | {
|
|
24
|
+
readonly kind: 'variants';
|
|
25
|
+
readonly tag?: BuilderPricingTagExpression;
|
|
26
|
+
readonly expression: BuilderPricingExpression;
|
|
27
|
+
readonly reduce?: BuilderPricingReduce;
|
|
28
|
+
} | {
|
|
29
|
+
readonly kind: 'add';
|
|
30
|
+
readonly left: BuilderPricingExpression;
|
|
31
|
+
readonly right: BuilderPricingExpression;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: 'sub';
|
|
34
|
+
readonly left: BuilderPricingExpression;
|
|
35
|
+
readonly right: BuilderPricingExpression;
|
|
36
|
+
} | {
|
|
37
|
+
readonly kind: 'mul';
|
|
38
|
+
readonly left: BuilderPricingExpression;
|
|
39
|
+
readonly right: BuilderPricingExpression;
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: 'div';
|
|
42
|
+
readonly left: BuilderPricingExpression;
|
|
43
|
+
readonly right: BuilderPricingExpression;
|
|
44
|
+
};
|
|
45
|
+
export declare const BuilderPricingExpressionSchema: v.GenericSchema<BuilderPricingExpression>;
|
|
46
|
+
export type BuilderPricing = {
|
|
47
|
+
readonly rates: Record<string, Record<string, number>>;
|
|
48
|
+
readonly formula: BuilderPricingExpression;
|
|
49
|
+
};
|
|
50
|
+
export declare const BuilderPricingSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
51
|
+
readonly rates: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.NumberSchema<undefined>, undefined>, undefined>, v.ReadonlyAction<{
|
|
52
|
+
[x: string]: {
|
|
53
|
+
[x: string]: number;
|
|
54
|
+
};
|
|
55
|
+
}>]>;
|
|
56
|
+
readonly formula: v.GenericSchema<BuilderPricingExpression>;
|
|
57
|
+
}, undefined>, v.ReadonlyAction<{
|
|
58
|
+
readonly rates: Readonly<{
|
|
59
|
+
[x: string]: {
|
|
60
|
+
[x: string]: number;
|
|
61
|
+
};
|
|
62
|
+
}>;
|
|
63
|
+
formula: BuilderPricingExpression;
|
|
64
|
+
}>]>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as v from 'valibot';
|
|
2
|
+
import { serialisable } from '../serialisable.js';
|
|
3
|
+
export const BuilderPricingReduceSchema = v.picklist(['product', 'sum', 'first']);
|
|
4
|
+
export const BuilderPricingTagExpressionSchema = v.variant('kind', [
|
|
5
|
+
v.object({ kind: v.literal('tag'), value: v.string() }),
|
|
6
|
+
v.object({ kind: v.literal('modelTags') }),
|
|
7
|
+
v.object({ kind: v.literal('variantTags') })
|
|
8
|
+
]);
|
|
9
|
+
export const BuilderPricingExpressionSchema = v.lazy(() => v.variant('kind', [
|
|
10
|
+
v.object({ kind: v.literal('num'), value: v.number() }),
|
|
11
|
+
v.object({ kind: v.literal('variantPrice') }),
|
|
12
|
+
v.object({
|
|
13
|
+
kind: v.literal('rate'),
|
|
14
|
+
rate: v.string(),
|
|
15
|
+
tag: BuilderPricingTagExpressionSchema,
|
|
16
|
+
reduce: v.optional(BuilderPricingReduceSchema)
|
|
17
|
+
}),
|
|
18
|
+
v.object({
|
|
19
|
+
kind: v.literal('variants'),
|
|
20
|
+
tag: v.optional(BuilderPricingTagExpressionSchema),
|
|
21
|
+
expression: BuilderPricingExpressionSchema,
|
|
22
|
+
reduce: v.optional(BuilderPricingReduceSchema)
|
|
23
|
+
}),
|
|
24
|
+
v.object({
|
|
25
|
+
kind: v.literal('add'),
|
|
26
|
+
left: BuilderPricingExpressionSchema,
|
|
27
|
+
right: BuilderPricingExpressionSchema
|
|
28
|
+
}),
|
|
29
|
+
v.object({
|
|
30
|
+
kind: v.literal('sub'),
|
|
31
|
+
left: BuilderPricingExpressionSchema,
|
|
32
|
+
right: BuilderPricingExpressionSchema
|
|
33
|
+
}),
|
|
34
|
+
v.object({
|
|
35
|
+
kind: v.literal('mul'),
|
|
36
|
+
left: BuilderPricingExpressionSchema,
|
|
37
|
+
right: BuilderPricingExpressionSchema
|
|
38
|
+
}),
|
|
39
|
+
v.object({
|
|
40
|
+
kind: v.literal('div'),
|
|
41
|
+
left: BuilderPricingExpressionSchema,
|
|
42
|
+
right: BuilderPricingExpressionSchema
|
|
43
|
+
})
|
|
44
|
+
]));
|
|
45
|
+
export const BuilderPricingSchema = serialisable(v.object({
|
|
46
|
+
rates: v.pipe(v.record(v.string(), v.record(v.string(), v.number())), v.readonly()),
|
|
47
|
+
formula: BuilderPricingExpressionSchema
|
|
48
|
+
}));
|
|
@@ -20,6 +20,7 @@ export declare const entitiesMap: {
|
|
|
20
20
|
readonly defaultValue: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
21
21
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
22
22
|
readonly optionLabels: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
|
|
23
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
23
24
|
}, undefined>, v.ReadonlyAction<{
|
|
24
25
|
type: "select";
|
|
25
26
|
readonly options: readonly [string, ...string[]];
|
|
@@ -28,6 +29,7 @@ export declare const entitiesMap: {
|
|
|
28
29
|
optionLabels: {
|
|
29
30
|
[x: string]: string;
|
|
30
31
|
};
|
|
32
|
+
tags?: readonly string[] | undefined;
|
|
31
33
|
}>]>;
|
|
32
34
|
};
|
|
33
35
|
readonly toggle: {
|
|
@@ -37,11 +39,13 @@ export declare const entitiesMap: {
|
|
|
37
39
|
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
38
40
|
readonly defaultValue: v.NullableSchema<v.UnionSchema<[v.BooleanSchema<undefined>, v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
39
41
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
42
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
40
43
|
}, undefined>, v.ReadonlyAction<{
|
|
41
44
|
type: "toggle";
|
|
42
45
|
valueType: "string" | "number" | "boolean";
|
|
43
46
|
defaultValue: string | number | boolean | null;
|
|
44
47
|
isOptional: boolean;
|
|
48
|
+
tags?: readonly string[] | undefined;
|
|
45
49
|
}>]>;
|
|
46
50
|
};
|
|
47
51
|
readonly uiPage: {
|
|
@@ -169,6 +173,7 @@ export declare const entitiesMap: {
|
|
|
169
173
|
}>]>, v.UnknownSchema], undefined>, undefined>, v.ReadonlyAction<{
|
|
170
174
|
[x: string]: unknown;
|
|
171
175
|
}>]>], undefined>, undefined>;
|
|
176
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
172
177
|
}, undefined>, v.ReadonlyAction<{
|
|
173
178
|
type: "input";
|
|
174
179
|
path: readonly (string | number)[] | Readonly<{
|
|
@@ -205,6 +210,7 @@ export declare const entitiesMap: {
|
|
|
205
210
|
}> | Readonly<{
|
|
206
211
|
[x: string]: unknown;
|
|
207
212
|
}> | undefined;
|
|
213
|
+
tags?: readonly string[] | undefined;
|
|
208
214
|
}>]>], undefined>, undefined>, v.ReadonlyAction<(Readonly<{
|
|
209
215
|
type: "parameter";
|
|
210
216
|
id: string;
|
|
@@ -248,7 +254,9 @@ export declare const entitiesMap: {
|
|
|
248
254
|
}> | Readonly<{
|
|
249
255
|
[x: string]: unknown;
|
|
250
256
|
}> | undefined;
|
|
257
|
+
tags?: readonly string[] | undefined;
|
|
251
258
|
}>)[]>]>], undefined>;
|
|
259
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
252
260
|
}, undefined>, v.ReadonlyAction<{
|
|
253
261
|
type: "page";
|
|
254
262
|
label: string | Readonly<{
|
|
@@ -309,7 +317,9 @@ export declare const entitiesMap: {
|
|
|
309
317
|
}> | Readonly<{
|
|
310
318
|
[x: string]: unknown;
|
|
311
319
|
}> | undefined;
|
|
320
|
+
tags?: readonly string[] | undefined;
|
|
312
321
|
}>)[];
|
|
322
|
+
tags?: readonly string[] | undefined;
|
|
313
323
|
}>]>;
|
|
314
324
|
};
|
|
315
325
|
readonly uiDescribe: {
|
|
@@ -437,6 +447,7 @@ export declare const entitiesMap: {
|
|
|
437
447
|
}>]>, v.UnknownSchema], undefined>, undefined>, v.ReadonlyAction<{
|
|
438
448
|
[x: string]: unknown;
|
|
439
449
|
}>]>], undefined>, undefined>;
|
|
450
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
440
451
|
}, undefined>, v.ReadonlyAction<{
|
|
441
452
|
type: "input";
|
|
442
453
|
path: readonly (string | number)[] | Readonly<{
|
|
@@ -473,6 +484,7 @@ export declare const entitiesMap: {
|
|
|
473
484
|
}> | Readonly<{
|
|
474
485
|
[x: string]: unknown;
|
|
475
486
|
}> | undefined;
|
|
487
|
+
tags?: readonly string[] | undefined;
|
|
476
488
|
}>]>], undefined>, undefined>, v.ReadonlyAction<(Readonly<{
|
|
477
489
|
type: "parameter";
|
|
478
490
|
id: string;
|
|
@@ -516,7 +528,9 @@ export declare const entitiesMap: {
|
|
|
516
528
|
}> | Readonly<{
|
|
517
529
|
[x: string]: unknown;
|
|
518
530
|
}> | undefined;
|
|
531
|
+
tags?: readonly string[] | undefined;
|
|
519
532
|
}>)[]>]>], undefined>;
|
|
533
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
520
534
|
}, undefined>, v.ReadonlyAction<{
|
|
521
535
|
type: "describe";
|
|
522
536
|
label: string | Readonly<{
|
|
@@ -577,7 +591,9 @@ export declare const entitiesMap: {
|
|
|
577
591
|
}> | Readonly<{
|
|
578
592
|
[x: string]: unknown;
|
|
579
593
|
}> | undefined;
|
|
594
|
+
tags?: readonly string[] | undefined;
|
|
580
595
|
}>)[];
|
|
596
|
+
tags?: readonly string[] | undefined;
|
|
581
597
|
}>]>;
|
|
582
598
|
};
|
|
583
599
|
readonly uiPages: {
|
|
@@ -664,6 +680,7 @@ export declare const entitiesMap: {
|
|
|
664
680
|
}>]>, v.UnknownSchema], undefined>, undefined>, v.ReadonlyAction<{
|
|
665
681
|
[x: string]: unknown;
|
|
666
682
|
}>]>], undefined>, undefined>;
|
|
683
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
667
684
|
}, undefined>, v.ReadonlyAction<{
|
|
668
685
|
type: "input";
|
|
669
686
|
path: readonly (string | number)[] | Readonly<{
|
|
@@ -700,6 +717,39 @@ export declare const entitiesMap: {
|
|
|
700
717
|
}> | Readonly<{
|
|
701
718
|
[x: string]: unknown;
|
|
702
719
|
}> | undefined;
|
|
720
|
+
tags?: readonly string[] | undefined;
|
|
721
|
+
}>]>;
|
|
722
|
+
};
|
|
723
|
+
readonly pricing: {
|
|
724
|
+
readonly runtime: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
725
|
+
readonly rates: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.NumberSchema<undefined>, undefined>, undefined>, v.ReadonlyAction<{
|
|
726
|
+
[x: string]: {
|
|
727
|
+
[x: string]: number;
|
|
728
|
+
};
|
|
729
|
+
}>]>;
|
|
730
|
+
readonly formula: v.GenericSchema<import("./pricing.js").BuilderPricingExpression>;
|
|
731
|
+
}, undefined>, v.ReadonlyAction<{
|
|
732
|
+
readonly rates: Readonly<{
|
|
733
|
+
[x: string]: {
|
|
734
|
+
[x: string]: number;
|
|
735
|
+
};
|
|
736
|
+
}>;
|
|
737
|
+
formula: import("./pricing.js").BuilderPricingExpression;
|
|
738
|
+
}>]>;
|
|
739
|
+
readonly serialised: v.SchemaWithPipe<readonly [v.ObjectSchema<{
|
|
740
|
+
readonly rates: v.SchemaWithPipe<readonly [v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.NumberSchema<undefined>, undefined>, undefined>, v.ReadonlyAction<{
|
|
741
|
+
[x: string]: {
|
|
742
|
+
[x: string]: number;
|
|
743
|
+
};
|
|
744
|
+
}>]>;
|
|
745
|
+
readonly formula: v.GenericSchema<import("./pricing.js").BuilderPricingExpression>;
|
|
746
|
+
}, undefined>, v.ReadonlyAction<{
|
|
747
|
+
readonly rates: Readonly<{
|
|
748
|
+
[x: string]: {
|
|
749
|
+
[x: string]: number;
|
|
750
|
+
};
|
|
751
|
+
}>;
|
|
752
|
+
formula: import("./pricing.js").BuilderPricingExpression;
|
|
703
753
|
}>]>;
|
|
704
754
|
};
|
|
705
755
|
readonly componentDetails: {
|
|
@@ -724,17 +774,21 @@ export declare const entitiesMap: {
|
|
|
724
774
|
readonly name: v.StringSchema<undefined>;
|
|
725
775
|
readonly valueType: v.PicklistSchema<["string", "boolean", "number"], undefined>;
|
|
726
776
|
readonly isOptional: v.BooleanSchema<undefined>;
|
|
777
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
727
778
|
}, undefined>, v.ReadonlyAction<{
|
|
728
779
|
type: "component-field";
|
|
729
780
|
name: string;
|
|
730
781
|
valueType: "string" | "number" | "boolean";
|
|
731
782
|
isOptional: boolean;
|
|
783
|
+
tags?: readonly string[] | undefined;
|
|
732
784
|
}>]>, undefined>, v.ReadonlyAction<Readonly<{
|
|
733
785
|
type: "component-field";
|
|
734
786
|
name: string;
|
|
735
787
|
valueType: "string" | "number" | "boolean";
|
|
736
788
|
isOptional: boolean;
|
|
789
|
+
tags?: readonly string[] | undefined;
|
|
737
790
|
}>[]>]>], undefined>;
|
|
791
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
738
792
|
}, undefined>, v.ReadonlyAction<{
|
|
739
793
|
fields: Readonly<{
|
|
740
794
|
type: "parameter";
|
|
@@ -748,7 +802,9 @@ export declare const entitiesMap: {
|
|
|
748
802
|
name: string;
|
|
749
803
|
valueType: "string" | "number" | "boolean";
|
|
750
804
|
isOptional: boolean;
|
|
805
|
+
tags?: readonly string[] | undefined;
|
|
751
806
|
}>[];
|
|
807
|
+
tags?: readonly string[] | undefined;
|
|
752
808
|
}>]>;
|
|
753
809
|
};
|
|
754
810
|
readonly collectionConfig: {
|
|
@@ -799,6 +855,7 @@ export declare const entitiesMap: {
|
|
|
799
855
|
type: "ref";
|
|
800
856
|
id: string;
|
|
801
857
|
}>]>, v.NumberSchema<undefined>], undefined>;
|
|
858
|
+
readonly tags: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.StringSchema<undefined>, undefined>, v.ReadonlyAction<string[]>]>, undefined>;
|
|
802
859
|
}, undefined>, v.ReadonlyAction<{
|
|
803
860
|
model: Readonly<{
|
|
804
861
|
type: "parameter";
|
|
@@ -824,6 +881,7 @@ export declare const entitiesMap: {
|
|
|
824
881
|
type: "ref";
|
|
825
882
|
id: string;
|
|
826
883
|
}>;
|
|
884
|
+
tags?: readonly string[] | undefined;
|
|
827
885
|
}>]>;
|
|
828
886
|
};
|
|
829
887
|
readonly expectations: {
|
|
@@ -894,11 +952,13 @@ export declare const entitiesMap: {
|
|
|
894
952
|
optionLabels: {
|
|
895
953
|
[x: string]: string;
|
|
896
954
|
};
|
|
955
|
+
tags?: readonly string[] | undefined;
|
|
897
956
|
}>> | Readonly<Readonly<{
|
|
898
957
|
type: "toggle";
|
|
899
958
|
valueType: "string" | "number" | "boolean";
|
|
900
959
|
defaultValue: string | number | boolean | null;
|
|
901
960
|
isOptional: boolean;
|
|
961
|
+
tags?: readonly string[] | undefined;
|
|
902
962
|
}>>>>;
|
|
903
963
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderWhenSerialised<Readonly<Readonly<{
|
|
904
964
|
type: "select";
|
|
@@ -908,11 +968,13 @@ export declare const entitiesMap: {
|
|
|
908
968
|
optionLabels: {
|
|
909
969
|
[x: string]: string;
|
|
910
970
|
};
|
|
971
|
+
tags?: readonly string[] | undefined;
|
|
911
972
|
}>> | Readonly<Readonly<{
|
|
912
973
|
type: "toggle";
|
|
913
974
|
valueType: "string" | "number" | "boolean";
|
|
914
975
|
defaultValue: string | number | boolean | null;
|
|
915
976
|
isOptional: boolean;
|
|
977
|
+
tags?: readonly string[] | undefined;
|
|
916
978
|
}>>>>;
|
|
917
979
|
};
|
|
918
980
|
readonly componentWhen: {
|
|
@@ -929,7 +991,9 @@ export declare const entitiesMap: {
|
|
|
929
991
|
name: string;
|
|
930
992
|
valueType: "string" | "number" | "boolean";
|
|
931
993
|
isOptional: boolean;
|
|
994
|
+
tags?: readonly string[] | undefined;
|
|
932
995
|
}>[];
|
|
996
|
+
tags?: readonly string[] | undefined;
|
|
933
997
|
}>>>;
|
|
934
998
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderWhenSerialised<Readonly<{
|
|
935
999
|
fields: Readonly<{
|
|
@@ -944,7 +1008,9 @@ export declare const entitiesMap: {
|
|
|
944
1008
|
name: string;
|
|
945
1009
|
valueType: "string" | "number" | "boolean";
|
|
946
1010
|
isOptional: boolean;
|
|
1011
|
+
tags?: readonly string[] | undefined;
|
|
947
1012
|
}>[];
|
|
1013
|
+
tags?: readonly string[] | undefined;
|
|
948
1014
|
}>>>;
|
|
949
1015
|
};
|
|
950
1016
|
readonly collectionWhen: {
|
|
@@ -973,6 +1039,7 @@ export declare const entitiesMap: {
|
|
|
973
1039
|
type: "ref";
|
|
974
1040
|
id: string;
|
|
975
1041
|
}>;
|
|
1042
|
+
tags?: readonly string[] | undefined;
|
|
976
1043
|
}>>>;
|
|
977
1044
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderWhenSerialised<Readonly<{
|
|
978
1045
|
model: Readonly<{
|
|
@@ -999,6 +1066,7 @@ export declare const entitiesMap: {
|
|
|
999
1066
|
type: "ref";
|
|
1000
1067
|
id: string;
|
|
1001
1068
|
}>;
|
|
1069
|
+
tags?: readonly string[] | undefined;
|
|
1002
1070
|
}>>>;
|
|
1003
1071
|
};
|
|
1004
1072
|
readonly optionSelectMap: {
|
|
@@ -1014,11 +1082,13 @@ export declare const entitiesMap: {
|
|
|
1014
1082
|
optionLabels: {
|
|
1015
1083
|
[x: string]: string;
|
|
1016
1084
|
};
|
|
1085
|
+
tags?: readonly string[] | undefined;
|
|
1017
1086
|
}>> | Readonly<Readonly<{
|
|
1018
1087
|
type: "toggle";
|
|
1019
1088
|
valueType: "string" | "number" | "boolean";
|
|
1020
1089
|
defaultValue: string | number | boolean | null;
|
|
1021
1090
|
isOptional: boolean;
|
|
1091
|
+
tags?: readonly string[] | undefined;
|
|
1022
1092
|
}>>>>;
|
|
1023
1093
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderMatchSelectMap<Readonly<{
|
|
1024
1094
|
type: "parameter";
|
|
@@ -1032,11 +1102,13 @@ export declare const entitiesMap: {
|
|
|
1032
1102
|
optionLabels: {
|
|
1033
1103
|
[x: string]: string;
|
|
1034
1104
|
};
|
|
1105
|
+
tags?: readonly string[] | undefined;
|
|
1035
1106
|
}>> | Readonly<Readonly<{
|
|
1036
1107
|
type: "toggle";
|
|
1037
1108
|
valueType: "string" | "number" | "boolean";
|
|
1038
1109
|
defaultValue: string | number | boolean | null;
|
|
1039
1110
|
isOptional: boolean;
|
|
1111
|
+
tags?: readonly string[] | undefined;
|
|
1040
1112
|
}>>>>;
|
|
1041
1113
|
};
|
|
1042
1114
|
readonly componentSelectMap: {
|
|
@@ -1057,7 +1129,9 @@ export declare const entitiesMap: {
|
|
|
1057
1129
|
name: string;
|
|
1058
1130
|
valueType: "string" | "number" | "boolean";
|
|
1059
1131
|
isOptional: boolean;
|
|
1132
|
+
tags?: readonly string[] | undefined;
|
|
1060
1133
|
}>[];
|
|
1134
|
+
tags?: readonly string[] | undefined;
|
|
1061
1135
|
}>>>;
|
|
1062
1136
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderMatchSelectMap<Readonly<{
|
|
1063
1137
|
type: "parameter";
|
|
@@ -1076,7 +1150,9 @@ export declare const entitiesMap: {
|
|
|
1076
1150
|
name: string;
|
|
1077
1151
|
valueType: "string" | "number" | "boolean";
|
|
1078
1152
|
isOptional: boolean;
|
|
1153
|
+
tags?: readonly string[] | undefined;
|
|
1079
1154
|
}>[];
|
|
1155
|
+
tags?: readonly string[] | undefined;
|
|
1080
1156
|
}>>>;
|
|
1081
1157
|
};
|
|
1082
1158
|
readonly collectionSelectMap: {
|
|
@@ -1109,6 +1185,7 @@ export declare const entitiesMap: {
|
|
|
1109
1185
|
type: "ref";
|
|
1110
1186
|
id: string;
|
|
1111
1187
|
}>;
|
|
1188
|
+
tags?: readonly string[] | undefined;
|
|
1112
1189
|
}>>>;
|
|
1113
1190
|
readonly serialised: v.GenericSchema<import("./when.js").BuilderMatchSelectMap<Readonly<{
|
|
1114
1191
|
type: "parameter";
|
|
@@ -1139,6 +1216,7 @@ export declare const entitiesMap: {
|
|
|
1139
1216
|
type: "ref";
|
|
1140
1217
|
id: string;
|
|
1141
1218
|
}>;
|
|
1219
|
+
tags?: readonly string[] | undefined;
|
|
1142
1220
|
}>>>;
|
|
1143
1221
|
};
|
|
1144
1222
|
readonly paths: {
|
|
@@ -6,6 +6,7 @@ import { BuilderCollectionConfigSchema, BuilderCollectionConfigSerialisedSchema,
|
|
|
6
6
|
import { BuilderComponentDetailsSchema, BuilderComponentDetailsSerialisedSchema, BuilderComponentFieldSchema, BuilderComponentSchema, BuilderComponentSelectMapSerialisedSchema, BuilderComponentWhenSerialisedSchema } from './component/index.js';
|
|
7
7
|
import { BuilderExpectationSchema, BuilderExpectationsSchema, BuilderExpectationsSerialisedSchema } from './expectation.js';
|
|
8
8
|
import { BuilderModelSchema, BuilderModelSerialisedSchema } from './model/index.js';
|
|
9
|
+
import { BuilderPricingSchema } from './pricing.js';
|
|
9
10
|
import { BuilderOptionSchema, BuilderOptionSelectMapSerialisedSchema, BuilderOptionWhenSerialisedSchema, BuilderSelectTypeSchema, BuilderSelectTypeSerialisedSchema, BuilderToggleTypeSchema, BuilderToggleTypeSerialisedSchema } from './option/index.js';
|
|
10
11
|
import { BuilderUIDescribeSchema, BuilderUIDescribeSerialisedSchema, BuilderUIInputSchema, BuilderUIInputSerialisedSchema, BuilderUIItemsSerialisedSchema, BuilderUIPageSchema, BuilderUIPageSerialisedSchema, BuilderUIPagesSchema, BuilderUIPagesSerialisedSchema, BuilderUISchema, BuilderUISerialisedSchema } from './ui/index.js';
|
|
11
12
|
import { BuilderSchema, BuilderSerialisedSchema } from './builder/index.js';
|
|
@@ -19,6 +20,7 @@ export const entitiesMap = {
|
|
|
19
20
|
uiDescribe: { runtime: BuilderUIDescribeSchema, serialised: BuilderUIDescribeSerialisedSchema },
|
|
20
21
|
uiPages: { runtime: BuilderUIPagesSchema, serialised: BuilderUIPagesSerialisedSchema },
|
|
21
22
|
uiInput: { runtime: BuilderUIInputSchema, serialised: BuilderUIInputSerialisedSchema },
|
|
23
|
+
pricing: { runtime: BuilderPricingSchema, serialised: BuilderPricingSchema },
|
|
22
24
|
componentDetails: {
|
|
23
25
|
runtime: BuilderComponentDetailsSchema,
|
|
24
26
|
serialised: BuilderComponentDetailsSerialisedSchema
|
|
@@ -93,64 +95,78 @@ const serialiserMap = [
|
|
|
93
95
|
serialiser(BuilderSchema, (value) => ({
|
|
94
96
|
model: serialiseValue(value.model),
|
|
95
97
|
ui: serialiseValue(value.ui),
|
|
96
|
-
bindings: serialiseRecord(value.bindings)
|
|
98
|
+
bindings: serialiseRecord(value.bindings),
|
|
99
|
+
tags: value.tags,
|
|
100
|
+
pricing: value.pricing
|
|
97
101
|
})),
|
|
98
102
|
serialiser(BuilderModelSchema, (value) => ({
|
|
99
103
|
models: value.models.map(serialiseValue),
|
|
100
104
|
options: value.options.map(serialiseValue),
|
|
101
105
|
components: value.components.map(serialiseValue),
|
|
102
106
|
collections: value.collections.map(serialiseValue),
|
|
103
|
-
expectations: value.expectations.map(serialiseValue)
|
|
107
|
+
expectations: value.expectations.map(serialiseValue),
|
|
108
|
+
tags: value.tags
|
|
104
109
|
})),
|
|
105
110
|
serialiser(BuilderUISchema, (value) => ({
|
|
106
111
|
uis: value.uis.map(serialiseValue),
|
|
107
112
|
items: value.items.map(serialiseValue),
|
|
108
|
-
expectations: value.expectations.map(serialiseValue)
|
|
113
|
+
expectations: value.expectations.map(serialiseValue),
|
|
114
|
+
tags: value.tags
|
|
109
115
|
})),
|
|
110
116
|
serialiser(BuilderUIPageSchema, (value) => ({
|
|
111
117
|
type: 'page',
|
|
112
118
|
label: serialiseValue(value.label),
|
|
113
|
-
inputs: serialiseValue(value.inputs)
|
|
119
|
+
inputs: serialiseValue(value.inputs),
|
|
120
|
+
tags: value.tags
|
|
114
121
|
})),
|
|
115
122
|
serialiser(BuilderUIDescribeSchema, (value) => ({
|
|
116
123
|
type: 'describe',
|
|
117
124
|
label: serialiseValue(value.label),
|
|
118
|
-
inputs: serialiseValue(value.inputs)
|
|
125
|
+
inputs: serialiseValue(value.inputs),
|
|
126
|
+
tags: value.tags
|
|
119
127
|
})),
|
|
120
128
|
serialiser(BuilderUIPagesSchema, (value) => ({
|
|
121
129
|
type: 'pages',
|
|
122
130
|
name: value.name,
|
|
123
131
|
label: serialiseValue(value.label),
|
|
124
|
-
items: serialiseValue(value.items)
|
|
132
|
+
items: serialiseValue(value.items),
|
|
133
|
+
tags: value.tags
|
|
125
134
|
})),
|
|
126
135
|
serialiser(BuilderUIInputSchema, (value) => serialiseRecord({ ...value })),
|
|
127
136
|
serialiser(BuilderOptionSchema, serialiseNamedEntry),
|
|
128
137
|
serialiser(BuilderComponentSchema, serialiseNamedEntry),
|
|
129
138
|
serialiser(BuilderCollectionSchema, serialiseNamedEntry),
|
|
130
|
-
serialiser(BuilderComponentDetailsSchema, (value) => ({
|
|
139
|
+
serialiser(BuilderComponentDetailsSchema, (value) => ({
|
|
140
|
+
fields: serialiseValue(value.fields),
|
|
141
|
+
tags: value.tags
|
|
142
|
+
})),
|
|
131
143
|
serialiser(BuilderComponentFieldSchema, (value) => ({
|
|
132
144
|
type: 'component-field',
|
|
133
145
|
name: value.name,
|
|
134
146
|
valueType: value.valueType,
|
|
135
|
-
isOptional: value.isOptional
|
|
147
|
+
isOptional: value.isOptional,
|
|
148
|
+
tags: value.tags
|
|
136
149
|
})),
|
|
137
150
|
serialiser(BuilderCollectionConfigSchema, (value) => ({
|
|
138
151
|
model: serialiseValue(value.model),
|
|
139
152
|
min: serialiseValue(value.min),
|
|
140
|
-
max: serialiseValue(value.max)
|
|
153
|
+
max: serialiseValue(value.max),
|
|
154
|
+
tags: value.tags
|
|
141
155
|
})),
|
|
142
156
|
serialiser(BuilderSelectTypeSchema, (value) => ({
|
|
143
157
|
type: 'select',
|
|
144
158
|
options: value.options,
|
|
145
159
|
defaultValue: value.defaultValue,
|
|
146
160
|
isOptional: value.isOptional,
|
|
147
|
-
optionLabels: value.optionLabels
|
|
161
|
+
optionLabels: value.optionLabels,
|
|
162
|
+
tags: value.tags
|
|
148
163
|
})),
|
|
149
164
|
serialiser(BuilderToggleTypeSchema, (value) => ({
|
|
150
165
|
type: 'toggle',
|
|
151
166
|
valueType: value.valueType,
|
|
152
167
|
defaultValue: value.defaultValue,
|
|
153
|
-
isOptional: value.isOptional
|
|
168
|
+
isOptional: value.isOptional,
|
|
169
|
+
tags: value.tags
|
|
154
170
|
})),
|
|
155
171
|
serialiser(BuilderExpectationSchema, (value) => ({ name: value.name, kind: value.kind }))
|
|
156
172
|
];
|
|
@@ -162,6 +178,9 @@ function serialiseNamedEntry(value) {
|
|
|
162
178
|
if (value.paths != null) {
|
|
163
179
|
entry.paths = serialiseValue(value.paths);
|
|
164
180
|
}
|
|
181
|
+
if (value.tags != null) {
|
|
182
|
+
entry.tags = serialiseValue(value.tags);
|
|
183
|
+
}
|
|
165
184
|
return entry;
|
|
166
185
|
}
|
|
167
186
|
function serialiseRecord(record) {
|