nesoi 3.0.21 → 3.1.0
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/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +8 -0
- package/lib/compiler/compiler.js +1 -1
- package/lib/compiler/elements/bucket.element.d.ts +2 -1
- package/lib/compiler/elements/bucket.element.js +68 -122
- package/lib/compiler/elements/element.js +2 -1
- package/lib/compiler/elements/externals.element.js +3 -0
- package/lib/compiler/elements/message.element.js +34 -57
- package/lib/compiler/elements/queue.element.js +1 -1
- package/lib/compiler/helpers/dump_helpers.d.ts +2 -0
- package/lib/compiler/helpers/dump_helpers.js +12 -2
- package/lib/compiler/stages/4_build_schemas_stage.js +12 -0
- package/lib/compiler/stages/5_inject_ts_stage.js +4 -1
- package/lib/compiler/stages/7_dump_stage.js +7 -1
- package/lib/compiler/treeshake.js +4 -2
- package/lib/compiler/typescript/bridge/extract.js +37 -107
- package/lib/compiler/typescript/bridge/inject.d.ts +1 -1
- package/lib/compiler/typescript/bridge/inject.js +73 -45
- package/lib/compiler/typescript/bridge/organize.js +9 -5
- package/lib/compiler/typescript/typescript_compiler.d.ts +4 -6
- package/lib/compiler/typescript/typescript_compiler.js +139 -75
- package/lib/elements/blocks/block.builder.d.ts +1 -10
- package/lib/elements/blocks/block.builder.js +0 -32
- package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +3 -21
- package/lib/elements/blocks/job/job.builder.d.ts +6 -20
- package/lib/elements/blocks/job/job.builder.js +0 -4
- package/lib/elements/blocks/machine/machine.builder.d.ts +5 -14
- package/lib/elements/blocks/machine/machine.builder.js +2 -2
- package/lib/elements/blocks/queue/queue.builder.d.ts +6 -15
- package/lib/elements/blocks/queue/queue.builder.js +2 -2
- package/lib/elements/edge/externals/externals.builder.d.ts +2 -0
- package/lib/elements/edge/externals/externals.builder.js +6 -1
- package/lib/elements/edge/externals/externals.schema.d.ts +2 -1
- package/lib/elements/edge/externals/externals.schema.js +3 -1
- package/lib/elements/entities/bucket/adapters/memory.nql.js +1 -1
- package/lib/elements/entities/bucket/bucket.builder.d.ts +6 -4
- package/lib/elements/entities/bucket/bucket.js +7 -16
- package/lib/elements/entities/bucket/bucket.schema.d.ts +2 -1
- package/lib/elements/entities/bucket/graph/bucket_graph.infer.d.ts +7 -5
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +1 -1
- package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +1 -1
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +4 -4
- package/lib/elements/entities/bucket/model/bucket_model.infer.d.ts +45 -9
- package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +5 -6
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +64 -21
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +88 -55
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +22 -30
- package/lib/elements/entities/bucket/query/nql.schema.d.ts +13 -10
- package/lib/elements/entities/bucket/query/nql_compiler.js +46 -21
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +1 -1
- package/lib/elements/entities/bucket/view/bucket_view.d.ts +19 -0
- package/lib/elements/entities/bucket/view/bucket_view.js +230 -108
- package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +5 -10
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +3 -5
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +16 -12
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +55 -40
- package/lib/elements/entities/message/message.builder.d.ts +1 -11
- package/lib/elements/entities/message/message.infer.d.ts +6 -30
- package/lib/elements/entities/message/message.schema.js +2 -2
- package/lib/elements/entities/message/template/message_template.builder.js +1 -1
- package/lib/elements/entities/message/template/message_template.schema.d.ts +10 -15
- package/lib/elements/entities/message/template/message_template.schema.js +29 -12
- package/lib/elements/entities/message/template/message_template_field.builder.d.ts +45 -209
- package/lib/elements/entities/message/template/message_template_field.builder.js +69 -85
- package/lib/elements/entities/message/template/message_template_parser.js +50 -65
- package/lib/engine/apps/inline.app.js +1 -0
- package/lib/engine/data/trash.js +7 -7
- package/lib/engine/data/tree.d.ts +3 -0
- package/lib/engine/data/tree.js +36 -0
- package/lib/engine/util/parse.d.ts +22 -14
- package/lib/engine/util/parse.js +18 -3
- package/lib/engine/util/type.d.ts +3 -0
- package/package.json +1 -1
- package/tools/joaquin/bucket.d.ts +9 -0
- package/tools/joaquin/bucket.js +49 -0
- package/tools/joaquin/message.d.ts +2 -1
- package/tools/joaquin/message.js +9 -2
- package/tools/joaquin/mock.d.ts +1 -0
- package/tools/joaquin/mock.js +13 -5
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -16,17 +16,7 @@ export declare class MessageBuilder<Space extends $Space, Module extends $Module
|
|
|
16
16
|
private _template;
|
|
17
17
|
constructor(module: string, name: string);
|
|
18
18
|
as(alias: string): this;
|
|
19
|
-
template<Def extends MessageTemplateDef<Space, Module, Message['name']>>($: Def): MessageBuilder<Space, Module, $MessageInfer<Message["name"], Def, ReturnType<Def>, import("./message.infer").$MessageInputInfer<ReturnType<Def
|
|
20
|
-
path: `${K & string}${keyof I & string}`;
|
|
21
|
-
data: I[keyof I];
|
|
22
|
-
opt: Opt[0];
|
|
23
|
-
nul: Nul[0];
|
|
24
|
-
} : never; } : never>, import("./message.infer").$MessageOutputInfer<ReturnType<Def>, ReturnType<Def> extends infer T_1 ? { [K_1 in keyof T_1]: ReturnType<Def>[K_1] extends import("./template/message_template_field.builder").MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
25
|
-
path: `${K_1 & string}${keyof O & string}`;
|
|
26
|
-
data: O[keyof O];
|
|
27
|
-
opt: Opt_1[1];
|
|
28
|
-
nul: Nul_1[1];
|
|
29
|
-
} : never; } : never>>>;
|
|
19
|
+
template<Def extends MessageTemplateDef<Space, Module, Message['name']>>($: Def): MessageBuilder<Space, Module, $MessageInfer<Message["name"], Def, ReturnType<Def>, import("./message.infer").$MessageInputInfer<ReturnType<Def>>, import("./message.infer").$MessageOutputInfer<ReturnType<Def>>>>;
|
|
30
20
|
static build(node: MessageBuilderNode, tree: ModuleTree, module: $Module): $Message;
|
|
31
21
|
static buildInlines(node: ResolvedBuilderNode, tree: ModuleTree, module: $Module): Record<string, $Message>;
|
|
32
22
|
}
|
|
@@ -2,39 +2,15 @@ import { MessageTemplateFieldBuilder, MessageTemplateFieldBuilders } from './tem
|
|
|
2
2
|
import { MessageTemplateDef } from './template/message_template.builder';
|
|
3
3
|
import { $Module } from "../../../schema";
|
|
4
4
|
import { $Message } from './message.schema';
|
|
5
|
-
export type $MessageInputInfer<
|
|
6
|
-
|
|
7
|
-
data: any;
|
|
8
|
-
opt: any;
|
|
9
|
-
nul: any;
|
|
10
|
-
}> = {
|
|
11
|
-
[K in keyof Builder]: Builder[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt, infer Nul> ? {
|
|
12
|
-
path: `${K & string}${keyof I & string}`;
|
|
13
|
-
data: I[keyof I];
|
|
14
|
-
opt: Opt[0];
|
|
15
|
-
nul: Nul[0];
|
|
16
|
-
} : never;
|
|
17
|
-
}> = {
|
|
18
|
-
[K in keyof Fields as Fields[K]['opt'] extends never ? Fields[K]['path'] : never]: Fields[K]['data'] | Fields[K]['nul'];
|
|
5
|
+
export type $MessageInputInfer<Fields extends MessageTemplateFieldBuilders> = {
|
|
6
|
+
[K in keyof Fields as Fields[K]['#optional'][0] extends true ? never : `${K & string}${Fields[K]['#input_suffix']}`]: Fields[K]['#input'];
|
|
19
7
|
} & {
|
|
20
|
-
[K in keyof Fields as Fields[K]['
|
|
8
|
+
[K in keyof Fields as Fields[K]['#optional'][0] extends true ? `${K & string}${Fields[K]['#input_suffix']}` : never]?: Fields[K]['#input'];
|
|
21
9
|
};
|
|
22
|
-
export type $MessageOutputInfer<
|
|
23
|
-
|
|
24
|
-
data: any;
|
|
25
|
-
opt: any;
|
|
26
|
-
nul: any;
|
|
27
|
-
}> = {
|
|
28
|
-
[K in keyof Builder]: Builder[K] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt, infer Nul> ? {
|
|
29
|
-
path: `${K & string}${keyof O & string}`;
|
|
30
|
-
data: O[keyof O];
|
|
31
|
-
opt: Opt[1];
|
|
32
|
-
nul: Nul[1];
|
|
33
|
-
} : never;
|
|
34
|
-
}> = {
|
|
35
|
-
[K in keyof Fields as Fields[K]['opt'] extends never ? Fields[K]['path'] : never]: Fields[K]['data'] | Fields[K]['nul'];
|
|
10
|
+
export type $MessageOutputInfer<Fields extends MessageTemplateFieldBuilders> = {
|
|
11
|
+
[K in keyof Fields as Fields[K]['#optional'][1] extends true ? never : K]: Fields[K]['#output'];
|
|
36
12
|
} & {
|
|
37
|
-
[K in keyof Fields as Fields[K]['
|
|
13
|
+
[K in keyof Fields as Fields[K]['#optional'][1] extends true ? K : never]?: Fields[K]['#output'];
|
|
38
14
|
};
|
|
39
15
|
export interface $MessageInfer<Name extends string, Def extends MessageTemplateDef<any, any, any>, Builders extends MessageTemplateFieldBuilders = ReturnType<Def>, Raw = $MessageInputInfer<Builders>, Parsed = $MessageOutputInfer<Builders>> extends $Message {
|
|
40
16
|
name: Name;
|
|
@@ -25,7 +25,7 @@ class $Message {
|
|
|
25
25
|
if (field.type === 'id') {
|
|
26
26
|
str += `(${field.meta.id.bucket.refName})`;
|
|
27
27
|
}
|
|
28
|
-
if (field.type === 'enum') {
|
|
28
|
+
else if (field.type === 'enum') {
|
|
29
29
|
const options = field.meta.enum.options;
|
|
30
30
|
if (typeof options === 'object') {
|
|
31
31
|
str += `(${Object.keys(options)})`;
|
|
@@ -34,7 +34,7 @@ class $Message {
|
|
|
34
34
|
str += `(${options})`;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
if (field.
|
|
37
|
+
else if (field.type === 'list') {
|
|
38
38
|
str += '[]';
|
|
39
39
|
}
|
|
40
40
|
str += '\n';
|
|
@@ -17,7 +17,7 @@ class MessageTemplateBuilder {
|
|
|
17
17
|
}
|
|
18
18
|
/// Build
|
|
19
19
|
static build(builder, tree, module) {
|
|
20
|
-
const fields = message_template_field_builder_1.MessageTemplateFieldBuilder.
|
|
20
|
+
const fields = message_template_field_builder_1.MessageTemplateFieldBuilder.buildMany(builder._fields, tree, module);
|
|
21
21
|
return new message_template_schema_1.$MessageTemplate(fields);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -47,23 +47,16 @@ export declare class $MessageTemplateField {
|
|
|
47
47
|
name: string;
|
|
48
48
|
/** A human name for the field */
|
|
49
49
|
alias: string;
|
|
50
|
-
/** A human name for the field union, assigned before the type.
|
|
51
|
-
* This is only relevant when using .obj.or, to allow for different
|
|
52
|
-
* aliases for the union and the root object */
|
|
53
|
-
preAlias: string;
|
|
54
50
|
/** The absolute path for reading the field value on the raw object */
|
|
55
|
-
|
|
51
|
+
pathRaw: string;
|
|
56
52
|
/** The absolute path for writing the field value on the parsed object */
|
|
57
|
-
|
|
58
|
-
array: boolean;
|
|
53
|
+
pathParsed: string;
|
|
59
54
|
required: boolean;
|
|
60
55
|
defaultValue: any;
|
|
61
56
|
nullable: boolean;
|
|
62
57
|
rules: $MessageTemplateRule[];
|
|
63
|
-
arrayRules: $MessageTemplateRule[];
|
|
64
58
|
meta: $MessageTemplateFieldMeta;
|
|
65
59
|
children?: $MessageTemplateFields | undefined;
|
|
66
|
-
or?: $MessageTemplateField | undefined;
|
|
67
60
|
'#raw': unknown;
|
|
68
61
|
'#parsed': unknown;
|
|
69
62
|
$t: string;
|
|
@@ -77,14 +70,15 @@ export declare class $MessageTemplateField {
|
|
|
77
70
|
name: string,
|
|
78
71
|
/** A human name for the field */
|
|
79
72
|
alias: string,
|
|
80
|
-
/** A human name for the field union, assigned before the type.
|
|
81
|
-
* This is only relevant when using .obj.or, to allow for different
|
|
82
|
-
* aliases for the union and the root object */
|
|
83
|
-
preAlias: string,
|
|
84
73
|
/** The absolute path for reading the field value on the raw object */
|
|
85
|
-
|
|
74
|
+
pathRaw: string,
|
|
86
75
|
/** The absolute path for writing the field value on the parsed object */
|
|
87
|
-
|
|
76
|
+
pathParsed: string, required: boolean, defaultValue: any, nullable: boolean, rules: $MessageTemplateRule[], meta: $MessageTemplateFieldMeta, children?: $MessageTemplateFields | undefined);
|
|
77
|
+
/**
|
|
78
|
+
* Warning: this does not clone the field's children or union.
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
static clone(schema: $MessageTemplateField): $MessageTemplateField;
|
|
88
82
|
}
|
|
89
83
|
export type $MessageTemplateFields = {
|
|
90
84
|
[x: string]: $MessageTemplateField;
|
|
@@ -98,4 +92,5 @@ export declare class $MessageTemplate {
|
|
|
98
92
|
$t: string;
|
|
99
93
|
constructor(fields?: $MessageTemplateFields);
|
|
100
94
|
static fieldsOfType(template: $MessageTemplate, type: $MessageTemplateFieldType): $MessageTemplateField[];
|
|
95
|
+
static forEachField(template: $MessageTemplate, predicate: (field: $MessageTemplateField, path: string) => void): void;
|
|
101
96
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.$MessageTemplate = exports.$MessageTemplateField = void 0;
|
|
4
|
+
const deep_1 = require("../../../../engine/util/deep");
|
|
4
5
|
/**
|
|
5
6
|
* @category Schemas
|
|
6
7
|
* @subcategory Entity
|
|
@@ -16,31 +17,30 @@ class $MessageTemplateField {
|
|
|
16
17
|
name,
|
|
17
18
|
/** A human name for the field */
|
|
18
19
|
alias,
|
|
19
|
-
/** A human name for the field union, assigned before the type.
|
|
20
|
-
* This is only relevant when using .obj.or, to allow for different
|
|
21
|
-
* aliases for the union and the root object */
|
|
22
|
-
preAlias,
|
|
23
20
|
/** The absolute path for reading the field value on the raw object */
|
|
24
|
-
|
|
21
|
+
pathRaw,
|
|
25
22
|
/** The absolute path for writing the field value on the parsed object */
|
|
26
|
-
|
|
23
|
+
pathParsed, required, defaultValue, nullable, rules, meta, children) {
|
|
27
24
|
this.type = type;
|
|
28
25
|
this.name = name;
|
|
29
26
|
this.alias = alias;
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.path_parsed = path_parsed;
|
|
33
|
-
this.array = array;
|
|
27
|
+
this.pathRaw = pathRaw;
|
|
28
|
+
this.pathParsed = pathParsed;
|
|
34
29
|
this.required = required;
|
|
35
30
|
this.defaultValue = defaultValue;
|
|
36
31
|
this.nullable = nullable;
|
|
37
32
|
this.rules = rules;
|
|
38
|
-
this.arrayRules = arrayRules;
|
|
39
33
|
this.meta = meta;
|
|
40
34
|
this.children = children;
|
|
41
|
-
this.or = or;
|
|
42
35
|
this.$t = 'message.template.field';
|
|
43
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Warning: this does not clone the field's children or union.
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
static clone(schema) {
|
|
42
|
+
return new $MessageTemplateField(schema.type, schema.name, schema.alias, schema.pathRaw, schema.pathParsed, schema.required, schema.defaultValue, schema.nullable, [...schema.rules], deep_1.Deep.copy(schema.meta), undefined);
|
|
43
|
+
}
|
|
44
44
|
}
|
|
45
45
|
exports.$MessageTemplateField = $MessageTemplateField;
|
|
46
46
|
/**
|
|
@@ -69,5 +69,22 @@ class $MessageTemplate {
|
|
|
69
69
|
}
|
|
70
70
|
return fields;
|
|
71
71
|
}
|
|
72
|
+
static forEachField(template, predicate) {
|
|
73
|
+
let poll = Object.entries(template.fields).map(([path, field]) => ({ path, field }));
|
|
74
|
+
while (poll.length) {
|
|
75
|
+
const next = [];
|
|
76
|
+
for (const obj of poll) {
|
|
77
|
+
predicate(obj.field, obj.path);
|
|
78
|
+
if (obj.field.children) {
|
|
79
|
+
next.push(...Object.values(obj.field.children)
|
|
80
|
+
.map((field, i) => ({
|
|
81
|
+
field,
|
|
82
|
+
path: obj.path + '.' + (obj.field.type === 'union' ? i : field.name)
|
|
83
|
+
})));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
poll = next;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
72
89
|
}
|
|
73
90
|
exports.$MessageTemplate = $MessageTemplate;
|
|
@@ -4,7 +4,6 @@ import { $MessageInputInfer, $MessageOutputInfer, $MessageTemplateBuilderInfer }
|
|
|
4
4
|
import { NesoiDate } from "../../../../engine/data/date";
|
|
5
5
|
import { $Message } from '../message.schema';
|
|
6
6
|
import { ModuleTree } from "../../../../engine/tree";
|
|
7
|
-
import { NesoiObj } from "../../../../engine/data/obj";
|
|
8
7
|
import { MessageEnumpath } from '../../constants/constants.schema';
|
|
9
8
|
import { NesoiDecimal } from "../../../../engine/data/decimal";
|
|
10
9
|
import { NesoiDatetime } from "../../../../engine/data/datetime";
|
|
@@ -20,238 +19,75 @@ export declare class MessageTemplateFieldFactory<Space extends $Space, Module ex
|
|
|
20
19
|
constructor(module: string);
|
|
21
20
|
/**
|
|
22
21
|
* Specifies an alias for the field.
|
|
23
|
-
* - If this field is a union (.or), this alias is used when
|
|
24
|
-
* referring to the union and it's first option.
|
|
25
|
-
* - You can specify a different alias for the first options
|
|
26
|
-
* by also using the .as() after the type
|
|
27
22
|
*/
|
|
28
23
|
as(alias: string): Omit<typeof this, "as">;
|
|
29
|
-
get any(): MessageTemplateFieldBuilder<Module, Message, {
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
'': string;
|
|
46
|
-
}, {
|
|
47
|
-
'': NesoiDate;
|
|
48
|
-
}, {}, [never, never], [never, never]>;
|
|
49
|
-
get datetime(): MessageTemplateFieldBuilder<Module, Message, {
|
|
50
|
-
'': string;
|
|
51
|
-
}, {
|
|
52
|
-
'': NesoiDatetime;
|
|
53
|
-
}, {}, [never, never], [never, never]>;
|
|
54
|
-
get duration(): MessageTemplateFieldBuilder<Module, Message, {
|
|
55
|
-
'': string;
|
|
56
|
-
}, {
|
|
57
|
-
'': NesoiDuration;
|
|
58
|
-
}, {}, [never, never], [never, never]>;
|
|
59
|
-
decimal(config?: $MessageTemplateFieldMeta['decimal']): MessageTemplateFieldBuilder<Module, Message, {
|
|
60
|
-
'': string;
|
|
61
|
-
}, {
|
|
62
|
-
'': NesoiDecimal;
|
|
63
|
-
}, {}, [never, never], [never, never]>;
|
|
64
|
-
enum<Enumpaths extends MessageEnumpath<Module, Module['messages'][MsgName], Space['modules']>, Options extends (keyof Enumpaths & string) | readonly string[] | Record<string, any>>(options: Options): MessageTemplateFieldBuilder<Module, Message, {
|
|
65
|
-
'': (Options extends string ? keyof Enumpaths[Options & keyof Enumpaths]["options" & keyof Enumpaths[Options & keyof Enumpaths]] : Options extends (infer X)[] | readonly (infer X)[] ? X : keyof Options) & string;
|
|
66
|
-
}, {
|
|
67
|
-
'': (Options extends string ? keyof Enumpaths[Options & keyof Enumpaths]["options" & keyof Enumpaths[Options & keyof Enumpaths]] : Options extends (infer X)[] | readonly (infer X)[] ? X : keyof Options) & string;
|
|
68
|
-
}, {}, [never, never], [never, never]>;
|
|
69
|
-
file(config?: $MessageTemplateFieldMeta['file']): MessageTemplateFieldBuilder<Module, Message, {
|
|
70
|
-
'': NesoiFile;
|
|
71
|
-
}, {
|
|
72
|
-
'': NesoiFile;
|
|
73
|
-
}, {}, [never, never], [never, never]>;
|
|
74
|
-
get float(): MessageTemplateFieldBuilder<Module, Message, {
|
|
75
|
-
'': number;
|
|
76
|
-
}, {
|
|
77
|
-
'': number;
|
|
78
|
-
}, {}, [never, never], [never, never]>;
|
|
79
|
-
id<Name extends BucketName<Module>, View extends ViewName<Module['buckets'][Name]> | undefined>(bucket: Name, view?: View): MessageTemplateFieldBuilder<Module, Message, {
|
|
80
|
-
_id: (Module["buckets"][Name]["#data"] & NesoiObj)["id"];
|
|
81
|
-
}, {
|
|
82
|
-
'': undefined extends View ? Module["buckets"][Name]["#data"] : Module["buckets"][Name]["views"][NonNullable<View>]["#data"];
|
|
83
|
-
}, {}, [never, never], [never, never]>;
|
|
84
|
-
get int(): MessageTemplateFieldBuilder<Module, Message, {
|
|
85
|
-
'': number;
|
|
86
|
-
}, {
|
|
87
|
-
'': number;
|
|
88
|
-
}, {}, [never, never], [never, never]>;
|
|
89
|
-
get string(): MessageTemplateFieldBuilder<Module, Message, {
|
|
90
|
-
'': string;
|
|
91
|
-
}, {
|
|
92
|
-
'': string;
|
|
93
|
-
}, {}, [never, never], [never, never]>;
|
|
94
|
-
get string_or_number(): MessageTemplateFieldBuilder<Module, Message, {
|
|
95
|
-
'': string | number;
|
|
96
|
-
}, {
|
|
97
|
-
'': string | number;
|
|
98
|
-
}, {}, [never, never], [never, never]>;
|
|
99
|
-
obj<Builders extends MessageTemplateFieldBuilders>(children: Builders): MessageTemplateFieldBuilder<Module, Message, {
|
|
100
|
-
'': $MessageInputInfer<Builders>;
|
|
101
|
-
}, {
|
|
102
|
-
'': $MessageOutputInfer<Builders>;
|
|
103
|
-
}, Builders, [never, never], [never, never]>;
|
|
104
|
-
dict<Builder extends MessageTemplateFieldBuilder<Module, Message, any, any, any>>(item: Builder): MessageTemplateFieldBuilder<Module, Message, {
|
|
105
|
-
'': Record<string, Builder extends MessageTemplateFieldBuilder<any, any, infer X, any, any, [never, never], [never, never]> ? X[keyof X] : never>;
|
|
106
|
-
}, {
|
|
107
|
-
'': Record<string, Builder extends MessageTemplateFieldBuilder<any, any, any, infer X_1, any, [never, never], [never, never]> ? X_1[keyof X_1] : never>;
|
|
108
|
-
}, {
|
|
24
|
+
get any(): MessageTemplateFieldBuilder<Module, Message, any, any, {}, [false, false], "">;
|
|
25
|
+
ts<T = any>(): MessageTemplateFieldBuilder<Module, Message, T, T, {}, [false, false], "">;
|
|
26
|
+
get boolean(): MessageTemplateFieldBuilder<Module, Message, boolean, boolean, {}, [false, false], "">;
|
|
27
|
+
get date(): MessageTemplateFieldBuilder<Module, Message, string, NesoiDate, {}, [false, false], "">;
|
|
28
|
+
get datetime(): MessageTemplateFieldBuilder<Module, Message, string, NesoiDatetime, {}, [false, false], "">;
|
|
29
|
+
get duration(): MessageTemplateFieldBuilder<Module, Message, string, NesoiDuration, {}, [false, false], "">;
|
|
30
|
+
decimal(config?: $MessageTemplateFieldMeta['decimal']): MessageTemplateFieldBuilder<Module, Message, string, NesoiDecimal, {}, [false, false], "">;
|
|
31
|
+
enum<Enumpaths extends MessageEnumpath<Module, Module['messages'][MsgName], Space['modules']>, Options extends (keyof Enumpaths & string) | readonly string[] | Record<string, any>>(options: Options): MessageTemplateFieldBuilder<Module, Message, (Options extends string ? keyof Enumpaths[Options & keyof Enumpaths]["options" & keyof Enumpaths[Options & keyof Enumpaths]] : Options extends (infer X)[] | readonly (infer X)[] ? X : keyof Options) & string, (Options extends string ? keyof Enumpaths[Options & keyof Enumpaths]["options" & keyof Enumpaths[Options & keyof Enumpaths]] : Options extends (infer X)[] | readonly (infer X)[] ? X : keyof Options) & string, {}, [false, false], "">;
|
|
32
|
+
file(config?: $MessageTemplateFieldMeta['file']): MessageTemplateFieldBuilder<Module, Message, NesoiFile, NesoiFile, {}, [false, false], "">;
|
|
33
|
+
get float(): MessageTemplateFieldBuilder<Module, Message, number, number, {}, [false, false], "">;
|
|
34
|
+
id<Name extends BucketName<Module>, View extends ViewName<Module['buckets'][Name]> | undefined>(bucket: Name, view?: View): MessageTemplateFieldBuilder<Module, Message, Module["buckets"][Name]["#data"]["id"], undefined extends View ? Module["buckets"][Name]["#data"] : Module["buckets"][Name]["views"][NonNullable<View>]["#data"], {}, [false, false], "_id">;
|
|
35
|
+
get int(): MessageTemplateFieldBuilder<Module, Message, number, number, {}, [false, false], "">;
|
|
36
|
+
get string(): MessageTemplateFieldBuilder<Module, Message, string, string, {}, [false, false], "">;
|
|
37
|
+
get string_or_number(): MessageTemplateFieldBuilder<Module, Message, string | number, string | number, {}, [false, false], "">;
|
|
38
|
+
obj<Builders extends MessageTemplateFieldBuilders>(children: Builders): MessageTemplateFieldBuilder<Module, Message, $MessageInputInfer<Builders>, $MessageOutputInfer<Builders>, Builders, [false, false], "">;
|
|
39
|
+
dict<Builder extends MessageTemplateFieldBuilder<Module, Message, any, any, any, any, any>>(item: Builder): MessageTemplateFieldBuilder<Module, Message, Record<string, Builder["#input"]>, Record<string, Builder["#output"]>, {
|
|
109
40
|
__dict: Builder;
|
|
110
|
-
}, [
|
|
111
|
-
|
|
112
|
-
'':
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
opt: Opt[0];
|
|
123
|
-
nul: Nul[0];
|
|
124
|
-
} : never; }[K_1]["opt"] extends never ? { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
125
|
-
path: `${K & string}${keyof I & string}`;
|
|
126
|
-
data: I[keyof I];
|
|
127
|
-
opt: Opt[0];
|
|
128
|
-
nul: Nul[0];
|
|
129
|
-
} : never; }[K_1]["path"] : never]: { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
130
|
-
path: `${K & string}${keyof I & string}`;
|
|
131
|
-
data: I[keyof I];
|
|
132
|
-
opt: Opt[0];
|
|
133
|
-
nul: Nul[0];
|
|
134
|
-
} : never; }[K_1]["data"] | { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
135
|
-
path: `${K & string}${keyof I & string}`;
|
|
136
|
-
data: I[keyof I];
|
|
137
|
-
opt: Opt[0];
|
|
138
|
-
nul: Nul[0];
|
|
139
|
-
} : never; }[K_1]["nul"]; } & { [K_2 in keyof { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
140
|
-
path: `${K & string}${keyof I & string}`;
|
|
141
|
-
data: I[keyof I];
|
|
142
|
-
opt: Opt[0];
|
|
143
|
-
nul: Nul[0];
|
|
144
|
-
} : never; } as { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
145
|
-
path: `${K & string}${keyof I & string}`;
|
|
146
|
-
data: I[keyof I];
|
|
147
|
-
opt: Opt[0];
|
|
148
|
-
nul: Nul[0];
|
|
149
|
-
} : never; }[K_2]["opt"] extends never ? never : { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
150
|
-
path: `${K & string}${keyof I & string}`;
|
|
151
|
-
data: I[keyof I];
|
|
152
|
-
opt: Opt[0];
|
|
153
|
-
nul: Nul[0];
|
|
154
|
-
} : never; }[K_2]["path"]]?: { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
155
|
-
path: `${K & string}${keyof I & string}`;
|
|
156
|
-
data: I[keyof I];
|
|
157
|
-
opt: Opt[0];
|
|
158
|
-
nul: Nul[0];
|
|
159
|
-
} : never; }[K_2]["data"] | { [K in keyof Builders]: Builders[K] extends MessageTemplateFieldBuilder<any, any, infer I, any, any, infer Opt extends [undefined, undefined], infer Nul extends [null, null]> ? {
|
|
160
|
-
path: `${K & string}${keyof I & string}`;
|
|
161
|
-
data: I[keyof I];
|
|
162
|
-
opt: Opt[0];
|
|
163
|
-
nul: Nul[0];
|
|
164
|
-
} : never; }[K_2]["nul"] | undefined; };
|
|
165
|
-
}, {
|
|
166
|
-
'': Omit<Message["#parsed"], "$"> & {
|
|
167
|
-
$: any;
|
|
168
|
-
} & { [K_4 in keyof { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
169
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
170
|
-
data: O[keyof O];
|
|
171
|
-
opt: Opt_1[1];
|
|
172
|
-
nul: Nul_1[1];
|
|
173
|
-
} : never; } as { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
174
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
175
|
-
data: O[keyof O];
|
|
176
|
-
opt: Opt_1[1];
|
|
177
|
-
nul: Nul_1[1];
|
|
178
|
-
} : never; }[K_4]["opt"] extends never ? { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
179
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
180
|
-
data: O[keyof O];
|
|
181
|
-
opt: Opt_1[1];
|
|
182
|
-
nul: Nul_1[1];
|
|
183
|
-
} : never; }[K_4]["path"] : never]: { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
184
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
185
|
-
data: O[keyof O];
|
|
186
|
-
opt: Opt_1[1];
|
|
187
|
-
nul: Nul_1[1];
|
|
188
|
-
} : never; }[K_4]["data"] | { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
189
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
190
|
-
data: O[keyof O];
|
|
191
|
-
opt: Opt_1[1];
|
|
192
|
-
nul: Nul_1[1];
|
|
193
|
-
} : never; }[K_4]["nul"]; } & { [K_5 in keyof { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
194
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
195
|
-
data: O[keyof O];
|
|
196
|
-
opt: Opt_1[1];
|
|
197
|
-
nul: Nul_1[1];
|
|
198
|
-
} : never; } as { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
199
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
200
|
-
data: O[keyof O];
|
|
201
|
-
opt: Opt_1[1];
|
|
202
|
-
nul: Nul_1[1];
|
|
203
|
-
} : never; }[K_5]["opt"] extends never ? never : { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
204
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
205
|
-
data: O[keyof O];
|
|
206
|
-
opt: Opt_1[1];
|
|
207
|
-
nul: Nul_1[1];
|
|
208
|
-
} : never; }[K_5]["path"]]?: { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
209
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
210
|
-
data: O[keyof O];
|
|
211
|
-
opt: Opt_1[1];
|
|
212
|
-
nul: Nul_1[1];
|
|
213
|
-
} : never; }[K_5]["data"] | { [K_3 in keyof Builders]: Builders[K_3] extends MessageTemplateFieldBuilder<any, any, any, infer O, any, infer Opt_1 extends [undefined, undefined], infer Nul_1 extends [null, null]> ? {
|
|
214
|
-
path: `${K_3 & string}${keyof O & string}`;
|
|
215
|
-
data: O[keyof O];
|
|
216
|
-
opt: Opt_1[1];
|
|
217
|
-
nul: Nul_1[1];
|
|
218
|
-
} : never; }[K_5]["nul"] | undefined; };
|
|
219
|
-
}, {}, [never, never], [never, never]>;
|
|
41
|
+
}, [false, false], "">;
|
|
42
|
+
list<Builder extends MessageTemplateFieldBuilder<Module, Message, any, any, any, any, any>>(item: Builder): MessageTemplateFieldBuilder<Module, Message, Builder["#input"][], Builder["#output"][], {
|
|
43
|
+
'#': Builder;
|
|
44
|
+
}, [false, false], "">;
|
|
45
|
+
union<Builders extends AnyMessageTemplateFieldBuilder[]>(...children: Builders): MessageTemplateFieldBuilder<Module, Message, Builders[number]["#input"], Builders[number]["#output"], {
|
|
46
|
+
[x: number]: Builders[number];
|
|
47
|
+
}, [false, false], "">;
|
|
48
|
+
msg<MessageName extends keyof Module['messages'], Message extends Module['messages'][MessageName], Builders extends MessageTemplateFieldBuilders>(msg: MessageName, extra?: Builders): MessageTemplateFieldBuilder<Module, Message, Omit<Message["#raw"], "$"> & {
|
|
49
|
+
$: any;
|
|
50
|
+
} & { [K in keyof Builders as Builders[K]["#optional"][0] extends true ? never : `${K & string}${Builders[K]["#input_suffix"]}`]: Builders[K]["#input"]; } & { [K_1 in keyof Builders as Builders[K_1]["#optional"][0] extends true ? `${K_1 & string}${Builders[K_1]["#input_suffix"]}` : never]?: Builders[K_1]["#input"] | undefined; }, Omit<Message["#parsed"], "$"> & {
|
|
51
|
+
$: any;
|
|
52
|
+
} & { [K_2 in keyof Builders as Builders[K_2]["#optional"][1] extends true ? never : K_2]: Builders[K_2]["#output"]; } & { [K_3 in keyof Builders as Builders[K_3]["#optional"][1] extends true ? K_3 : never]?: Builders[K_3]["#output"] | undefined; }, {}, [false, false], "">;
|
|
220
53
|
extend<MsgName extends keyof Module['messages'], Builders extends MessageTemplateFieldBuilders>(name: MsgName, fields: Builders): $MessageTemplateBuilderInfer<Module, Module["messages"][MsgName], Module["messages"][MsgName]["#raw"], Module["messages"][MsgName]["#parsed"]> & Builders;
|
|
221
54
|
}
|
|
222
55
|
/**
|
|
223
56
|
* @category Builders
|
|
224
57
|
* @subcategory Entity
|
|
225
58
|
* */
|
|
226
|
-
export declare class MessageTemplateFieldBuilder<Module extends $Module, Message extends $Message,
|
|
227
|
-
Nullable extends [null | never, null | never] = [never, never]> {
|
|
59
|
+
export declare class MessageTemplateFieldBuilder<Module extends $Module, Message extends $Message, Input, Output, Children extends MessageTemplateFieldBuilders, Optional = [false, false], InputSuffix extends string = ''> {
|
|
228
60
|
private type;
|
|
229
61
|
private value;
|
|
230
62
|
private alias?;
|
|
231
63
|
private children?;
|
|
232
|
-
|
|
64
|
+
'#input': Input;
|
|
65
|
+
'#input_suffix': InputSuffix;
|
|
66
|
+
'#output': Output;
|
|
67
|
+
'#optional': Optional;
|
|
233
68
|
private _required;
|
|
234
69
|
private _defaultValue?;
|
|
235
70
|
private _nullable;
|
|
236
71
|
private _rules;
|
|
237
|
-
private _arrayRules;
|
|
238
|
-
private _or?;
|
|
239
|
-
private preAlias?;
|
|
240
72
|
constructor(type: $MessageTemplateFieldType, value: $MessageTemplateFieldMeta, alias?: string | undefined, children?: Children | undefined);
|
|
241
73
|
as(alias: string): this;
|
|
242
|
-
get optional(): MessageTemplateFieldBuilder<Module, Message,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
74
|
+
get optional(): MessageTemplateFieldBuilder<Module, Message, Input | undefined, Output | undefined, Children, [
|
|
75
|
+
true,
|
|
76
|
+
true
|
|
77
|
+
], InputSuffix>;
|
|
78
|
+
default(value: Output): MessageTemplateFieldBuilder<Module, Message, Input | undefined, Output, Children, [
|
|
79
|
+
true,
|
|
80
|
+
(Optional & [boolean, boolean])[1]
|
|
81
|
+
], InputSuffix>;
|
|
82
|
+
get nullable(): MessageTemplateFieldBuilder<Module, Message, Input | null, Output | null, Children, Optional, InputSuffix>;
|
|
83
|
+
rule(rule: MessageTemplateRuleDef<Output, Message['#raw']>): this;
|
|
248
84
|
static build(builder: AnyMessageTemplateFieldBuilder, name: string, tree: ModuleTree, module: $Module, basePathRaw: string, basePathParsed: string): $MessageTemplateField;
|
|
249
|
-
static
|
|
85
|
+
static buildMany(fields: MessageTemplateFieldBuilders, tree: ModuleTree, module: $Module, basePathRaw?: string, basePathParsed?: string, name?: string, key?: string): $MessageTemplateFields;
|
|
250
86
|
}
|
|
251
87
|
export type MessageTemplateFieldBuilders = {
|
|
252
88
|
[x: string]: AnyMessageTemplateFieldBuilder;
|
|
253
89
|
};
|
|
254
|
-
export type AnyMessageTemplateFieldBuilder = MessageTemplateFieldBuilder<any, any, any, any, any>;
|
|
90
|
+
export type AnyMessageTemplateFieldBuilder = MessageTemplateFieldBuilder<any, any, any, any, any, any, any>;
|
|
255
91
|
export type MessageTemplateRuleDef<I, Msg> = (def: {
|
|
256
92
|
field: $MessageTemplateField;
|
|
257
93
|
path: string;
|