nesoi 3.3.11 → 3.3.13
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/bundler/browser/browser.bundler.js +4 -7
- package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.js +1 -0
- package/lib/bundler/distributed/distributed.bundler.js +6 -4
- package/lib/bundler/distributed/stages/1_mkdir_stage.js +2 -0
- package/lib/bundler/distributed/stages/2_build_typescript_stage.js +3 -1
- package/lib/bundler/distributed/stages/3_copy_types_stage.js +2 -0
- package/lib/bundler/distributed/stages/4_dump_modules_stage.js +2 -0
- package/lib/bundler/monolyth/monolyth.bundler.js +7 -5
- package/lib/bundler/monolyth/stages/1_mkdir_stage.js +2 -0
- package/lib/bundler/monolyth/stages/2_build_typescript_stage.js +3 -1
- package/lib/bundler/monolyth/stages/3_copy_types_stage.js +2 -0
- package/lib/bundler/monolyth/stages/4_dump_modules_stage.js +2 -0
- package/lib/bundler/monolyth/stages/5_copy_static_stage.js +2 -0
- package/lib/bundler/monolyth/stages/6_dump_cli_stage.js +2 -0
- package/lib/bundler/monolyth/stages/7_dump_package_json_stage.js +2 -0
- package/lib/compiler/compiler.js +7 -2
- package/lib/compiler/elements/bucket.element.js +3 -5
- package/lib/compiler/elements/constants.element.js +2 -2
- package/lib/compiler/elements/controller.element.js +1 -1
- package/lib/compiler/elements/element.js +15 -2
- package/lib/compiler/elements/externals.element.js +12 -4
- package/lib/compiler/elements/message.element.js +7 -0
- package/lib/compiler/elements/queue.element.js +1 -1
- package/lib/compiler/elements/topic.element.js +1 -1
- package/lib/compiler/module.js +6 -1
- package/lib/compiler/stages/1_scan_stage.js +1 -0
- package/lib/compiler/stages/2_treeshake_stage.js +1 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +1 -0
- package/lib/compiler/stages/4_build_schemas_stage.js +3 -3
- package/lib/compiler/stages/5_inject_ts_stage.js +1 -0
- package/lib/compiler/stages/6_build_elements_stage.js +1 -0
- package/lib/compiler/stages/7_dump_stage.js +5 -3
- package/lib/compiler/stages/8_diagnose_stage.js +1 -0
- package/lib/compiler/typescript/bridge/inject.js +1 -1
- package/lib/compiler/typescript/bridge/organize.js +25 -32
- package/lib/compiler/typescript/parser.js +10 -0
- package/lib/compiler/typescript/source.js +6 -4
- package/lib/compiler/typescript/typescript_compiler.js +8 -3
- package/lib/elements/blocks/block.builder.js +16 -14
- package/lib/elements/blocks/block.js +3 -0
- package/lib/elements/blocks/block.schema.js +10 -1
- package/lib/elements/blocks/job/internal/machine_job.builder.js +10 -3
- package/lib/elements/blocks/job/internal/machine_job.schema.js +2 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.js +16 -4
- package/lib/elements/blocks/job/internal/resource_job.schema.js +7 -0
- package/lib/elements/blocks/job/job.builder.js +5 -3
- package/lib/elements/blocks/job/job.js +2 -0
- package/lib/elements/blocks/job/job.schema.js +11 -1
- package/lib/elements/blocks/machine/machine.builder.js +6 -3
- package/lib/elements/blocks/machine/machine.js +7 -0
- package/lib/elements/blocks/machine/machine.schema.js +38 -3
- package/lib/elements/blocks/machine/machine_state.builder.js +6 -4
- package/lib/elements/blocks/machine/machine_transition.builder.js +8 -1
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +1 -0
- package/lib/elements/blocks/queue/queue.builder.js +1 -1
- package/lib/elements/blocks/queue/queue.js +2 -0
- package/lib/elements/blocks/queue/queue.schema.js +7 -2
- package/lib/elements/blocks/resource/resource.builder.js +4 -3
- package/lib/elements/blocks/resource/resource.js +2 -0
- package/lib/elements/blocks/resource/resource.schema.js +13 -1
- package/lib/elements/blocks/topic/topic.builder.js +1 -1
- package/lib/elements/blocks/topic/topic.js +3 -1
- package/lib/elements/blocks/topic/topic.schema.js +8 -2
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +2 -5
- package/lib/elements/edge/controller/adapters/controller_adapter.js +3 -0
- package/lib/elements/edge/controller/controller.builder.js +32 -17
- package/lib/elements/edge/controller/controller.js +10 -0
- package/lib/elements/edge/controller/controller.schema.js +38 -5
- package/lib/elements/edge/externals/externals.builder.js +9 -8
- package/lib/elements/edge/externals/externals.schema.js +9 -1
- package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.js +7 -6
- package/lib/elements/entities/bucket/adapters/browserdb.service.d.ts +1 -1
- package/lib/elements/entities/bucket/adapters/browserdb.service.js +9 -10
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +3 -0
- package/lib/elements/entities/bucket/adapters/json.bucket_adapter.js +4 -2
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +3 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.js +1 -0
- package/lib/elements/entities/bucket/bucket.builder.js +9 -3
- package/lib/elements/entities/bucket/bucket.js +15 -8
- package/lib/elements/entities/bucket/bucket.schema.js +14 -1
- package/lib/elements/entities/bucket/cache/bucket_cache.js +10 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +1 -3
- package/lib/elements/entities/bucket/graph/bucket_graph.js +3 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +13 -2
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +11 -2
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.js +3 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +15 -2
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +17 -4
- package/lib/elements/entities/bucket/query/nql_compiler.js +28 -21
- package/lib/elements/entities/bucket/query/nql_engine.js +2 -1
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +2 -1
- package/lib/elements/entities/bucket/view/bucket_view.js +4 -3
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +13 -2
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -1
- package/lib/elements/entities/constants/constants.builder.js +12 -5
- package/lib/elements/entities/constants/constants.js +1 -0
- package/lib/elements/entities/constants/constants.schema.js +19 -3
- package/lib/elements/entities/drive/drive_adapter.js +1 -0
- package/lib/elements/entities/drive/local.drive_adapter.d.ts +1 -1
- package/lib/elements/entities/drive/local.drive_adapter.js +1 -0
- package/lib/elements/entities/message/message.builder.js +5 -2
- package/lib/elements/entities/message/message.js +2 -0
- package/lib/elements/entities/message/message.schema.js +7 -1
- package/lib/elements/entities/message/message_parser.js +1 -0
- package/lib/elements/entities/message/template/message_template.builder.js +2 -3
- package/lib/elements/entities/message/template/message_template.schema.js +16 -2
- package/lib/elements/entities/message/template/message_template_field.builder.js +14 -4
- package/lib/engine/app/app.config.js +3 -2
- package/lib/engine/app/app.js +21 -14
- package/lib/engine/app/inc/inc.client.d.ts +1 -1
- package/lib/engine/app/inc/inc.client.js +2 -0
- package/lib/engine/app/inc/inc.server.d.ts +1 -1
- package/lib/engine/app/inc/inc.server.js +3 -1
- package/lib/engine/app/inline.app.js +4 -1
- package/lib/engine/app/native/browser.app.js +2 -1
- package/lib/engine/app/native/distributed.app.config.js +1 -0
- package/lib/engine/app/native/distributed.app.js +2 -2
- package/lib/engine/app/native/distributed_node.app.js +6 -1
- package/lib/engine/app/native/monolyth.app.js +2 -0
- package/lib/engine/app/service.js +8 -0
- package/lib/engine/auth/zero.authn_provider.js +1 -4
- package/lib/engine/cli/cli.js +6 -2
- package/lib/engine/cli/cli_adapter.js +9 -1
- package/lib/engine/cli/cli_input.js +6 -4
- package/lib/engine/cli/script.js +8 -6
- package/lib/engine/daemon.js +14 -0
- package/lib/engine/data/date.js +3 -0
- package/lib/engine/data/datetime.js +34 -26
- package/lib/engine/data/decimal.js +6 -1
- package/lib/engine/data/duration.js +28 -26
- package/lib/engine/data/error.js +3 -0
- package/lib/engine/data/file.js +21 -6
- package/lib/engine/data/tree.js +3 -1
- package/lib/engine/dependency.js +17 -0
- package/lib/engine/module.js +35 -12
- package/lib/engine/space.js +3 -2
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +1 -1
- package/lib/engine/transaction/nodes/bucket.trx_node.js +10 -1
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +9 -2
- package/lib/engine/transaction/nodes/external.trx_node.js +3 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +5 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/topic.trx_node.js +4 -0
- package/lib/engine/transaction/trx.js +18 -3
- package/lib/engine/transaction/trx_engine.js +12 -1
- package/lib/engine/transaction/trx_node.js +23 -11
- package/lib/engine/tree.js +6 -5
- package/lib/engine/util/crypto.js +17 -17
- package/lib/engine/util/log.js +9 -9
- package/lib/engine/util/path.js +1 -1
- package/lib/engine/util/random.d.ts +1 -1
- package/lib/engine/util/regex.d.ts +3 -0
- package/lib/engine/util/regex.js +82 -0
- package/package.json +1 -4
- package/tools/joaquin/mock.js +10 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -10,13 +10,10 @@ const console_1 = __importDefault(require("../../engine/util/console"));
|
|
|
10
10
|
const log_1 = require("../../engine/util/log");
|
|
11
11
|
const _8_replace_nesoi_for_browser_stage_1 = require("./stages/8_replace_nesoi_for_browser_stage");
|
|
12
12
|
class BrowserBundler extends monolyth_bundler_1.MonolythBundler {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
moduleResolution: typescript_1.default.ModuleResolutionKind.Bundler,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
13
|
+
tsconfig = {
|
|
14
|
+
module: typescript_1.default.ModuleKind.ESNext,
|
|
15
|
+
moduleResolution: typescript_1.default.ModuleResolutionKind.Bundler,
|
|
16
|
+
};
|
|
20
17
|
async run() {
|
|
21
18
|
await super.run();
|
|
22
19
|
console_1.default.header('Browser Bundler');
|
|
@@ -53,6 +53,10 @@ const app_1 = require("../../engine/app/app");
|
|
|
53
53
|
const distributed_app_1 = require("../../engine/app/native/distributed.app");
|
|
54
54
|
const path_1 = require("../../engine/util/path");
|
|
55
55
|
class DistributedBundler {
|
|
56
|
+
compiler;
|
|
57
|
+
appPath;
|
|
58
|
+
config;
|
|
59
|
+
dirs;
|
|
56
60
|
constructor(compiler, appPath, config = {}) {
|
|
57
61
|
this.compiler = compiler;
|
|
58
62
|
this.appPath = appPath;
|
|
@@ -82,20 +86,18 @@ class DistributedBundler {
|
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
mergeServicePaths(app) {
|
|
85
|
-
var _a;
|
|
86
89
|
const services = app_1.App.getServices(app);
|
|
87
90
|
for (const name in services) {
|
|
88
91
|
const service = services[name];
|
|
89
92
|
if (!service.libPaths)
|
|
90
93
|
continue;
|
|
91
|
-
|
|
94
|
+
this.config.libPaths ??= [];
|
|
92
95
|
this.config.libPaths.push(...service.libPaths);
|
|
93
96
|
}
|
|
94
97
|
}
|
|
95
98
|
expandLibPaths() {
|
|
96
|
-
var _a;
|
|
97
99
|
const expandedPaths = [];
|
|
98
|
-
|
|
100
|
+
this.config.libPaths ??= [];
|
|
99
101
|
for (const path of this.config.libPaths) {
|
|
100
102
|
const expanded = path_1.Path.expandWildcard(path);
|
|
101
103
|
expandedPaths.push(...expanded);
|
|
@@ -48,6 +48,8 @@ const app_1 = require("../../../engine/app/app");
|
|
|
48
48
|
* @subcategory Stages
|
|
49
49
|
*/
|
|
50
50
|
class BuildTypescriptStage {
|
|
51
|
+
bundler;
|
|
52
|
+
app;
|
|
51
53
|
constructor(bundler, app) {
|
|
52
54
|
this.bundler = bundler;
|
|
53
55
|
this.app = app;
|
|
@@ -149,7 +151,7 @@ class BuildTypescriptStage {
|
|
|
149
151
|
...binFiles,
|
|
150
152
|
...moduleFiles
|
|
151
153
|
], {
|
|
152
|
-
target: ts.ScriptTarget.
|
|
154
|
+
target: ts.ScriptTarget.ES2022,
|
|
153
155
|
module: ts.ModuleKind.CommonJS,
|
|
154
156
|
moduleResolution: ts.ModuleResolutionKind.Node10,
|
|
155
157
|
noEmitOnError: true,
|
|
@@ -53,11 +53,15 @@ const app_1 = require("../../engine/app/app");
|
|
|
53
53
|
const monolyth_app_1 = require("../../engine/app/native/monolyth.app");
|
|
54
54
|
const path_1 = require("../../engine/util/path");
|
|
55
55
|
class MonolythBundler {
|
|
56
|
+
compiler;
|
|
57
|
+
appPath;
|
|
58
|
+
config;
|
|
59
|
+
tsconfig = {};
|
|
60
|
+
dirs;
|
|
56
61
|
constructor(compiler, appPath, config = {}) {
|
|
57
62
|
this.compiler = compiler;
|
|
58
63
|
this.appPath = appPath;
|
|
59
64
|
this.config = config;
|
|
60
|
-
this.tsconfig = {};
|
|
61
65
|
this.dirs = {};
|
|
62
66
|
}
|
|
63
67
|
async run() {
|
|
@@ -83,20 +87,18 @@ class MonolythBundler {
|
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
mergeServicePaths(app) {
|
|
86
|
-
var _a;
|
|
87
90
|
const services = app_1.App.getServices(app);
|
|
88
91
|
for (const name in services) {
|
|
89
92
|
const service = services[name];
|
|
90
93
|
if (!service.libPaths)
|
|
91
94
|
continue;
|
|
92
|
-
|
|
95
|
+
this.config.libPaths ??= [];
|
|
93
96
|
this.config.libPaths.push(...service.libPaths);
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
expandLibPaths() {
|
|
97
|
-
var _a;
|
|
98
100
|
const expandedPaths = [];
|
|
99
|
-
|
|
101
|
+
this.config.libPaths ??= [];
|
|
100
102
|
for (const path of this.config.libPaths) {
|
|
101
103
|
const expanded = path_1.Path.expandWildcard(path);
|
|
102
104
|
expandedPaths.push(...expanded);
|
|
@@ -48,6 +48,8 @@ const app_1 = require("../../../engine/app/app");
|
|
|
48
48
|
* @subcategory Stages
|
|
49
49
|
*/
|
|
50
50
|
class BuildTypescriptStage {
|
|
51
|
+
bundler;
|
|
52
|
+
app;
|
|
51
53
|
constructor(bundler, app) {
|
|
52
54
|
this.bundler = bundler;
|
|
53
55
|
this.app = app;
|
|
@@ -146,7 +148,7 @@ class BuildTypescriptStage {
|
|
|
146
148
|
...binFiles,
|
|
147
149
|
...moduleFiles
|
|
148
150
|
], {
|
|
149
|
-
target: ts.ScriptTarget.
|
|
151
|
+
target: ts.ScriptTarget.ES2022,
|
|
150
152
|
module: ts.ModuleKind.CommonJS,
|
|
151
153
|
moduleResolution: ts.ModuleResolutionKind.Node10,
|
|
152
154
|
noEmitOnError: true,
|
package/lib/compiler/compiler.js
CHANGED
|
@@ -19,13 +19,18 @@ const console_1 = __importDefault(require("../engine/util/console"));
|
|
|
19
19
|
const log_1 = require("../engine/util/log");
|
|
20
20
|
const fs_1 = __importDefault(require("fs"));
|
|
21
21
|
class Compiler {
|
|
22
|
+
space;
|
|
23
|
+
config;
|
|
24
|
+
modules = {};
|
|
25
|
+
tree;
|
|
26
|
+
tsCompiler;
|
|
27
|
+
logFn;
|
|
22
28
|
constructor(space, config) {
|
|
23
29
|
this.space = space;
|
|
24
30
|
this.config = config;
|
|
25
|
-
this.modules = {};
|
|
26
|
-
this.tree = new tree_1.ModuleTree({}, this.config);
|
|
27
31
|
console_1.default.header('Compiler');
|
|
28
32
|
log_1.Log.info('compiler', 'ts', 'Loading TypeScript...');
|
|
33
|
+
this.tree = new tree_1.ModuleTree({}, this.config);
|
|
29
34
|
this.tsCompiler = new typescript_compiler_1.TypeScriptCompiler(space, config?.nesoiPath);
|
|
30
35
|
}
|
|
31
36
|
async run() {
|
|
@@ -5,6 +5,7 @@ const bucket_model_schema_1 = require("../../elements/entities/bucket/model/buck
|
|
|
5
5
|
const element_1 = require("./element");
|
|
6
6
|
const dump_helpers_1 = require("../helpers/dump_helpers");
|
|
7
7
|
const name_helpers_1 = require("../../engine/util/name_helpers");
|
|
8
|
+
const regex_1 = require("../../engine/util/regex");
|
|
8
9
|
class BucketElement extends element_1.Element {
|
|
9
10
|
// Prepare
|
|
10
11
|
prepare() {
|
|
@@ -97,11 +98,8 @@ class BucketElement extends element_1.Element {
|
|
|
97
98
|
type = 'string';
|
|
98
99
|
}
|
|
99
100
|
else if (field.type === 'literal') {
|
|
100
|
-
const regex = field.meta.literal.template;
|
|
101
|
-
const rtype = regex
|
|
102
|
-
.replace(/[.][*+]/g, '${string}')
|
|
103
|
-
.replace(/\\d[*+]?/g, '${number}')
|
|
104
|
-
.replace(/\\(.)/g, '$1');
|
|
101
|
+
const regex = field.meta.literal.template.toString();
|
|
102
|
+
const rtype = regex_1.NesoiRegex.toTemplateString(regex);
|
|
105
103
|
type = `\`${rtype}\``;
|
|
106
104
|
}
|
|
107
105
|
else if (field.type === 'obj') {
|
|
@@ -54,10 +54,10 @@ class ConstantsElement extends element_1.Element {
|
|
|
54
54
|
let node = enumTree;
|
|
55
55
|
split.forEach((part, i) => {
|
|
56
56
|
key += key.length ? `.${part}` : part;
|
|
57
|
-
node[part]
|
|
57
|
+
node[part] ??= {
|
|
58
58
|
_enum: `${this.typeName}['enums']['${key}']`,
|
|
59
59
|
_subs: []
|
|
60
|
-
}
|
|
60
|
+
};
|
|
61
61
|
if (i < split.length - 1) {
|
|
62
62
|
if (!node[part]._subs.includes(split[i + 1])) {
|
|
63
63
|
node[part]._subs.push(split[i + 1]);
|
|
@@ -13,9 +13,9 @@ class ControllerElement extends element_1.Element {
|
|
|
13
13
|
const type = dump_helpers_1.DumpHelpers.dumpValueToType(this.schema);
|
|
14
14
|
const input = this.schema.input.map(tag => name_helpers_1.NameHelpers.tagType(tag, this.module)).join(' | ');
|
|
15
15
|
return {
|
|
16
|
+
...type,
|
|
16
17
|
'#authn': element_1.Element.makeAuthnType(this.schema.auth),
|
|
17
18
|
'#input': input,
|
|
18
|
-
...type
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -6,6 +6,21 @@ const name_helpers_1 = require("../../engine/util/name_helpers");
|
|
|
6
6
|
const dump_helpers_1 = require("../helpers/dump_helpers");
|
|
7
7
|
/* @nesoi:browser ignore-end */
|
|
8
8
|
class Element {
|
|
9
|
+
compiler;
|
|
10
|
+
module;
|
|
11
|
+
$t;
|
|
12
|
+
files;
|
|
13
|
+
schema;
|
|
14
|
+
dependencies;
|
|
15
|
+
inlineRoot;
|
|
16
|
+
bridge;
|
|
17
|
+
static Any = Symbol('undefined as any');
|
|
18
|
+
static Never = Symbol('undefined as never');
|
|
19
|
+
type;
|
|
20
|
+
tag;
|
|
21
|
+
lowName;
|
|
22
|
+
highName;
|
|
23
|
+
typeName;
|
|
9
24
|
constructor(compiler, module, $t, files, schema, dependencies, inlineRoot, bridge) {
|
|
10
25
|
this.compiler = compiler;
|
|
11
26
|
this.module = module;
|
|
@@ -108,5 +123,3 @@ class Element {
|
|
|
108
123
|
}
|
|
109
124
|
}
|
|
110
125
|
exports.Element = Element;
|
|
111
|
-
Element.Any = Symbol('undefined as any');
|
|
112
|
-
Element.Never = Symbol('undefined as never');
|
|
@@ -4,6 +4,18 @@ exports.ExternalsElement = void 0;
|
|
|
4
4
|
const element_1 = require("./element");
|
|
5
5
|
const dump_helpers_1 = require("../helpers/dump_helpers");
|
|
6
6
|
class ExternalsElement extends element_1.Element {
|
|
7
|
+
compiler;
|
|
8
|
+
module;
|
|
9
|
+
$t;
|
|
10
|
+
files;
|
|
11
|
+
schema;
|
|
12
|
+
dependencies;
|
|
13
|
+
inlineRoot;
|
|
14
|
+
bridge;
|
|
15
|
+
elements = {
|
|
16
|
+
bucket: {},
|
|
17
|
+
job: {}
|
|
18
|
+
};
|
|
7
19
|
constructor(compiler, module, $t, files, schema, dependencies, inlineRoot, bridge) {
|
|
8
20
|
super(compiler, module, $t, files, schema, dependencies, inlineRoot, bridge);
|
|
9
21
|
this.compiler = compiler;
|
|
@@ -14,10 +26,6 @@ class ExternalsElement extends element_1.Element {
|
|
|
14
26
|
this.dependencies = dependencies;
|
|
15
27
|
this.inlineRoot = inlineRoot;
|
|
16
28
|
this.bridge = bridge;
|
|
17
|
-
this.elements = {
|
|
18
|
-
bucket: {},
|
|
19
|
-
job: {}
|
|
20
|
-
};
|
|
21
29
|
}
|
|
22
30
|
buildType() {
|
|
23
31
|
return {};
|
|
@@ -4,6 +4,7 @@ exports.MessageElement = void 0;
|
|
|
4
4
|
const element_1 = require("./element");
|
|
5
5
|
const dump_helpers_1 = require("../helpers/dump_helpers");
|
|
6
6
|
const name_helpers_1 = require("../../engine/util/name_helpers");
|
|
7
|
+
const regex_1 = require("../../engine/util/regex");
|
|
7
8
|
class MessageElement extends element_1.Element {
|
|
8
9
|
prepare() {
|
|
9
10
|
this.schema['#raw'] = element_1.Element.Any;
|
|
@@ -152,6 +153,12 @@ class MessageElement extends element_1.Element {
|
|
|
152
153
|
input[key] = '(' + Object.values(child.input).map(t => dump_helpers_1.DumpHelpers.dumpType(t)).join(' | ') + ')';
|
|
153
154
|
output[key] = '(' + Object.values(child.output).map(t => dump_helpers_1.DumpHelpers.dumpType(t)).join(' | ') + ')';
|
|
154
155
|
}
|
|
156
|
+
else if (field.type === 'literal') {
|
|
157
|
+
const regex = field.meta.literal.template;
|
|
158
|
+
const rtype = regex_1.NesoiRegex.toTemplateString(regex);
|
|
159
|
+
input[key] = `\`${rtype}\``;
|
|
160
|
+
output[key] = `\`${rtype}\``;
|
|
161
|
+
}
|
|
155
162
|
else if (field.type === 'msg') {
|
|
156
163
|
input[key] = 'any';
|
|
157
164
|
output[key] = 'any';
|
|
@@ -14,10 +14,10 @@ class QueueElement extends element_1.Element {
|
|
|
14
14
|
const type = dump_helpers_1.DumpHelpers.dumpValueToType(this.schema);
|
|
15
15
|
delete type['output'];
|
|
16
16
|
return {
|
|
17
|
+
...type,
|
|
17
18
|
'#authn': element_1.Element.makeAuthnType(this.schema.auth),
|
|
18
19
|
'#input': input,
|
|
19
20
|
'#output': output,
|
|
20
|
-
...type,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -14,10 +14,10 @@ class TopicElement extends element_1.Element {
|
|
|
14
14
|
const type = dump_helpers_1.DumpHelpers.dumpValueToType(this.schema);
|
|
15
15
|
delete type['output'];
|
|
16
16
|
return {
|
|
17
|
+
...type,
|
|
17
18
|
'#authn': element_1.Element.makeAuthnType(this.schema.auth),
|
|
18
19
|
'#input': input,
|
|
19
20
|
'#output': input,
|
|
20
|
-
...type,
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
}
|
package/lib/compiler/module.js
CHANGED
|
@@ -51,9 +51,14 @@ const queue_element_1 = require("./elements/queue.element");
|
|
|
51
51
|
const cached_element_1 = require("./elements/cached.element");
|
|
52
52
|
const topic_element_1 = require("./elements/topic.element");
|
|
53
53
|
class CompilerModule {
|
|
54
|
+
compiler;
|
|
55
|
+
lowName;
|
|
56
|
+
highName;
|
|
57
|
+
typeName;
|
|
58
|
+
module;
|
|
59
|
+
elements = [];
|
|
54
60
|
constructor(compiler, name, path, subdir = []) {
|
|
55
61
|
this.compiler = compiler;
|
|
56
|
-
this.elements = [];
|
|
57
62
|
this.lowName = name;
|
|
58
63
|
this.highName = name_helpers_1.NameHelpers.nameLowToHigh(this.lowName);
|
|
59
64
|
this.typeName = this.highName + 'Module';
|
|
@@ -11,6 +11,7 @@ const builder_1 = require("../../engine/builder");
|
|
|
11
11
|
* @subcategory Stages
|
|
12
12
|
*/
|
|
13
13
|
class BuildSchemasStage {
|
|
14
|
+
compiler;
|
|
14
15
|
constructor(compiler) {
|
|
15
16
|
this.compiler = compiler;
|
|
16
17
|
}
|
|
@@ -18,7 +19,6 @@ class BuildSchemasStage {
|
|
|
18
19
|
log_1.Log.info('compiler', 'stage.build_schemas', 'Building schemas...');
|
|
19
20
|
const t0 = new Date().getTime();
|
|
20
21
|
await this.compiler.tree.traverse('Building schemas ', async (node) => {
|
|
21
|
-
var _a;
|
|
22
22
|
const module = this.compiler.modules[node.tag.module].module;
|
|
23
23
|
if (node.progressive) {
|
|
24
24
|
await module.inject({
|
|
@@ -28,8 +28,8 @@ class BuildSchemasStage {
|
|
|
28
28
|
}
|
|
29
29
|
// Accummulate imports from depencies
|
|
30
30
|
// (Given that dependencies are built in order)
|
|
31
|
-
node.bridge
|
|
32
|
-
|
|
31
|
+
node.bridge ??= { imports: [] };
|
|
32
|
+
node.bridge.imports ??= [];
|
|
33
33
|
for (const dep of node.dependencies) {
|
|
34
34
|
// If a dependency is inline and the node is it's root,
|
|
35
35
|
// they already share imports.
|
|
@@ -55,6 +55,9 @@ const progressive_1 = require("../progressive");
|
|
|
55
55
|
* @subcategory Stages
|
|
56
56
|
*/
|
|
57
57
|
class DumpStage {
|
|
58
|
+
compiler;
|
|
59
|
+
cache;
|
|
60
|
+
hash;
|
|
58
61
|
constructor(compiler) {
|
|
59
62
|
this.compiler = compiler;
|
|
60
63
|
}
|
|
@@ -156,7 +159,6 @@ class DumpStage {
|
|
|
156
159
|
});
|
|
157
160
|
}
|
|
158
161
|
dumpModuleType(module, spaceType, dumpDir) {
|
|
159
|
-
var _a, _b;
|
|
160
162
|
const nesoiPath = this.compiler.config?.nesoiPath ?? 'nesoi';
|
|
161
163
|
const moduleFile = [];
|
|
162
164
|
moduleFile.push(`import { $Module, $Constants, $Bucket, $Message, $Job, $Resource, $Machine, $Controller, $Queue, $Topic } from '${nesoiPath}/lib/elements';`);
|
|
@@ -186,11 +188,11 @@ class DumpStage {
|
|
|
186
188
|
// Dump external imports
|
|
187
189
|
moduleFile.push(...Array.from(moduleDependencies)
|
|
188
190
|
.map(module => `import ${name_helpers_1.NameHelpers.nameLowToHigh(module)}Module from './${module}.module'`));
|
|
189
|
-
|
|
191
|
+
this.cache.modules[module.lowName] ??= {
|
|
190
192
|
dependencies: {
|
|
191
193
|
modules: []
|
|
192
194
|
}
|
|
193
|
-
}
|
|
195
|
+
};
|
|
194
196
|
this.cache.modules[module.lowName].dependencies.modules = Array.from(moduleDependencies);
|
|
195
197
|
// Build module type (with all elements)
|
|
196
198
|
const type = this.makeModuleType(module);
|
|
@@ -158,7 +158,7 @@ class TSBridgeInject {
|
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
160
|
if (extract.outputRaw) {
|
|
161
|
-
schema.output
|
|
161
|
+
schema.output ??= {};
|
|
162
162
|
schema.output.raw = extract.outputRaw;
|
|
163
163
|
schema['#output'] = undefined; // Will be recalculated by element based on output
|
|
164
164
|
}
|