nesoi 3.2.9 → 3.3.1
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/README.md +33 -2
- package/lib/bundler/browser/browser.app.d.ts +32 -0
- package/lib/bundler/browser/browser.app.js +51 -0
- package/lib/bundler/browser/browser.bundler.d.ts +5 -0
- package/lib/bundler/browser/browser.bundler.js +27 -0
- package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.d.ts +13 -0
- package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.js +74 -0
- package/lib/bundler/distributed/distributed.app.config.d.ts +43 -0
- package/lib/{engine/apps → bundler}/distributed/distributed.app.config.js +1 -1
- package/lib/{engine/apps → bundler}/distributed/distributed.app.d.ts +14 -14
- package/lib/{engine/apps → bundler}/distributed/distributed.app.js +8 -3
- package/lib/{compiler/apps/distributed/distributed_compiler.d.ts → bundler/distributed/distributed.bundler.d.ts} +7 -7
- package/lib/{compiler/apps/distributed/distributed_compiler.js → bundler/distributed/distributed.bundler.js} +11 -11
- package/lib/{engine/apps → bundler}/distributed/distributed_node.app.d.ts +14 -20
- package/lib/{engine/apps → bundler}/distributed/distributed_node.app.js +18 -50
- package/lib/bundler/distributed/stages/1_mkdir_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/distributed/stages/1_mkdir_stage.js +6 -6
- package/lib/bundler/distributed/stages/2_build_typescript_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/distributed/stages/2_build_typescript_stage.js +7 -7
- package/lib/bundler/distributed/stages/3_copy_types_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/distributed/stages/3_copy_types_stage.js +7 -7
- package/lib/bundler/distributed/stages/4_dump_modules_stage.d.ts +16 -0
- package/lib/{compiler/apps → bundler}/distributed/stages/4_dump_modules_stage.js +5 -5
- package/lib/{compiler/apps → bundler}/distributed/stages/5_copy_static_stage.js +3 -3
- package/lib/{compiler/apps → bundler}/distributed/stages/6_dump_cli_stage.js +3 -3
- package/lib/{compiler/apps → bundler}/distributed/stages/7_dump_package_json_stage.js +3 -3
- package/lib/{engine/apps → bundler}/monolyth/monolyth.app.d.ts +13 -13
- package/lib/{engine/apps → bundler}/monolyth/monolyth.app.js +13 -10
- package/lib/{compiler/apps/monolyth/monolyth_compiler.d.ts → bundler/monolyth/monolyth.bundler.d.ts} +9 -7
- package/lib/{compiler/apps/monolyth/monolyth_compiler.js → bundler/monolyth/monolyth.bundler.js} +13 -12
- package/lib/bundler/monolyth/stages/1_mkdir_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/monolyth/stages/1_mkdir_stage.js +6 -6
- package/lib/bundler/monolyth/stages/2_build_typescript_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/monolyth/stages/2_build_typescript_stage.js +8 -7
- package/lib/bundler/monolyth/stages/3_copy_types_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/monolyth/stages/3_copy_types_stage.js +7 -7
- package/lib/{compiler/apps → bundler}/monolyth/stages/4_dump_modules_stage.d.ts +4 -4
- package/lib/{compiler/apps → bundler}/monolyth/stages/4_dump_modules_stage.js +29 -16
- package/lib/{compiler/apps → bundler}/monolyth/stages/5_copy_static_stage.d.ts +4 -4
- package/lib/{compiler/apps → bundler}/monolyth/stages/5_copy_static_stage.js +7 -7
- package/lib/bundler/monolyth/stages/6_dump_cli_stage.d.ts +15 -0
- package/lib/{compiler/apps → bundler}/monolyth/stages/6_dump_cli_stage.js +4 -4
- package/lib/{compiler/apps → bundler}/monolyth/stages/7_dump_package_json_stage.d.ts +4 -4
- package/lib/{compiler/apps → bundler}/monolyth/stages/7_dump_package_json_stage.js +14 -11
- package/lib/compiler/compiler.d.ts +1 -6
- package/lib/compiler/compiler.js +1 -1
- package/lib/compiler/elements/bucket.element.d.ts +2 -1
- package/lib/compiler/elements/bucket.element.js +16 -21
- package/lib/compiler/elements/cached.element.d.ts +1 -1
- package/lib/compiler/elements/cached.element.js +2 -2
- package/lib/compiler/elements/constants.element.d.ts +1 -1
- package/lib/compiler/elements/constants.element.js +2 -0
- package/lib/compiler/elements/controller.element.js +3 -3
- package/lib/compiler/elements/element.d.ts +6 -13
- package/lib/compiler/elements/element.js +11 -9
- package/lib/compiler/elements/externals.element.js +2 -2
- package/lib/compiler/elements/job.element.d.ts +1 -1
- package/lib/compiler/elements/job.element.js +1 -1
- package/lib/compiler/elements/machine.element.d.ts +2 -2
- package/lib/compiler/elements/machine.element.js +7 -7
- package/lib/compiler/elements/message.element.d.ts +1 -1
- package/lib/compiler/elements/message.element.js +26 -26
- package/lib/compiler/elements/queue.element.js +1 -1
- package/lib/compiler/elements/resource.element.d.ts +1 -1
- package/lib/compiler/elements/resource.element.js +9 -9
- package/lib/compiler/elements/topic.element.js +1 -1
- package/lib/compiler/error.d.ts +1 -5
- package/lib/compiler/error.js +3 -15
- package/lib/compiler/helpers/dump_helpers.d.ts +1 -1
- package/lib/compiler/helpers/dump_helpers.js +1 -1
- package/lib/compiler/index.d.ts +1 -3
- package/lib/compiler/index.js +15 -7
- package/lib/compiler/module.js +12 -12
- package/lib/compiler/progressive.d.ts +3 -4
- package/lib/compiler/progressive.js +3 -4
- package/lib/compiler/stages/2_treeshake_stage.js +4 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +7 -7
- package/lib/compiler/stages/4_build_schemas_stage.js +3 -16
- package/lib/compiler/stages/6_build_elements_stage.js +1 -1
- package/lib/compiler/stages/7_dump_stage.js +35 -10
- package/lib/compiler/typescript/bridge/extract.js +24 -0
- package/lib/compiler/typescript/bridge/inject.js +18 -3
- package/lib/compiler/typescript/bridge/organize.d.ts +4 -0
- package/lib/compiler/typescript/bridge/organize.js +41 -22
- package/lib/compiler/typescript/error.d.ts +2 -83
- package/lib/compiler/typescript/error.js +6 -219
- package/lib/compiler/typescript/parser.js +3 -3
- package/lib/compiler/typescript/source.d.ts +2 -2
- package/lib/compiler/typescript/transformers/app_inject.transformer.js +13 -4
- package/lib/compiler/typescript/typescript_compiler.d.ts +3 -3
- package/lib/compiler/typescript/typescript_compiler.js +2 -2
- package/lib/elements/blocks/block.builder.d.ts +7 -4
- package/lib/elements/blocks/block.builder.js +24 -13
- package/lib/elements/blocks/block.js +2 -2
- package/lib/elements/blocks/block.schema.d.ts +12 -9
- package/lib/elements/blocks/block.schema.js +2 -2
- package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -5
- package/lib/elements/blocks/job/internal/machine_job.builder.js +3 -3
- package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +11 -10
- package/lib/elements/blocks/job/internal/resource_job.builder.js +9 -6
- package/lib/elements/blocks/job/internal/resource_job.js +3 -6
- package/lib/elements/blocks/job/job.builder.d.ts +5 -5
- package/lib/elements/blocks/job/job.builder.js +7 -7
- package/lib/elements/blocks/job/job.js +1 -1
- package/lib/elements/blocks/job/job.schema.d.ts +5 -5
- package/lib/elements/blocks/job/job.schema.js +3 -3
- package/lib/elements/blocks/machine/machine.builder.d.ts +2 -2
- package/lib/elements/blocks/machine/machine.builder.js +12 -9
- package/lib/elements/blocks/machine/machine.js +7 -7
- package/lib/elements/blocks/machine/machine.schema.d.ts +23 -23
- package/lib/elements/blocks/machine/machine.schema.js +9 -9
- package/lib/elements/blocks/machine/machine_state.builder.d.ts +1 -0
- package/lib/elements/blocks/machine/machine_state.builder.js +31 -29
- package/lib/elements/blocks/machine/machine_transition.builder.d.ts +2 -2
- package/lib/elements/blocks/machine/machine_transition.builder.js +8 -8
- package/lib/elements/blocks/queue/queue.builder.d.ts +3 -3
- package/lib/elements/blocks/queue/queue.builder.js +3 -3
- package/lib/elements/blocks/queue/queue.schema.d.ts +6 -6
- package/lib/elements/blocks/queue/queue.schema.js +3 -3
- package/lib/elements/blocks/resource/resource.builder.d.ts +2 -2
- package/lib/elements/blocks/resource/resource.builder.js +37 -40
- package/lib/elements/blocks/resource/resource.d.ts +2 -2
- package/lib/elements/blocks/resource/resource.js +10 -18
- package/lib/elements/blocks/resource/resource.schema.d.ts +15 -15
- package/lib/elements/blocks/resource/resource.schema.js +8 -8
- package/lib/elements/blocks/topic/topic.builder.d.ts +2 -2
- package/lib/elements/blocks/topic/topic.builder.js +4 -4
- package/lib/elements/blocks/topic/topic.d.ts +2 -2
- package/lib/elements/blocks/topic/topic.js +7 -7
- package/lib/elements/blocks/topic/topic.schema.d.ts +6 -6
- package/lib/elements/blocks/topic/topic.schema.js +3 -3
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +1 -1
- package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +2 -2
- package/lib/elements/edge/controller/adapters/controller_adapter.js +2 -2
- package/lib/elements/edge/controller/controller.builder.d.ts +14 -13
- package/lib/elements/edge/controller/controller.builder.js +52 -42
- package/lib/elements/edge/controller/controller.d.ts +3 -3
- package/lib/elements/edge/controller/controller.js +12 -12
- package/lib/elements/edge/controller/controller.schema.d.ts +17 -16
- package/lib/elements/edge/controller/controller.schema.js +11 -11
- package/lib/elements/edge/externals/externals.builder.d.ts +8 -13
- package/lib/elements/edge/externals/externals.builder.js +43 -11
- package/lib/elements/edge/externals/externals.schema.d.ts +8 -7
- package/lib/elements/edge/externals/externals.schema.js +5 -3
- package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.d.ts +45 -0
- package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.js +164 -0
- package/lib/elements/entities/bucket/adapters/browserdb.service.d.ts +30 -0
- package/lib/elements/entities/bucket/adapters/browserdb.service.js +97 -0
- package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +6 -1
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +7 -6
- package/lib/elements/entities/bucket/adapters/json.bucket_adapter.d.ts +1 -1
- package/lib/elements/entities/bucket/adapters/json.bucket_adapter.js +1 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +1 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +14 -13
- package/lib/elements/entities/bucket/adapters/memory.nql.js +41 -35
- package/lib/elements/entities/bucket/bucket.builder.d.ts +6 -8
- package/lib/elements/entities/bucket/bucket.builder.js +19 -34
- package/lib/elements/entities/bucket/bucket.d.ts +2 -2
- package/lib/elements/entities/bucket/bucket.infer.d.ts +5 -5
- package/lib/elements/entities/bucket/bucket.js +19 -17
- package/lib/elements/entities/bucket/bucket.schema.d.ts +3 -3
- package/lib/elements/entities/bucket/bucket.schema.js +2 -2
- package/lib/elements/entities/bucket/cache/bucket_cache.js +14 -2
- package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +3 -3
- package/lib/elements/entities/bucket/graph/bucket_graph.js +101 -29
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +3 -3
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +2 -2
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +5 -3
- package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +2 -2
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +3 -6
- package/lib/elements/entities/bucket/model/bucket_model.d.ts +13 -0
- package/lib/elements/entities/bucket/model/bucket_model.js +93 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +4 -8
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +0 -68
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +12 -4
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +30 -33
- package/lib/elements/entities/bucket/query/nql.schema.d.ts +1 -1
- package/lib/elements/entities/bucket/query/nql_compiler.d.ts +8 -4
- package/lib/elements/entities/bucket/query/nql_compiler.js +44 -38
- package/lib/elements/entities/bucket/query/nql_engine.d.ts +1 -1
- package/lib/elements/entities/bucket/query/nql_engine.js +5 -2
- package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +2 -2
- package/lib/elements/entities/bucket/view/bucket_view.js +113 -81
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +9 -8
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -10
- package/lib/elements/entities/constants/constants.builder.d.ts +3 -3
- package/lib/elements/entities/constants/constants.builder.js +8 -8
- package/lib/elements/entities/constants/constants.schema.d.ts +8 -3
- package/lib/elements/entities/constants/constants.schema.js +7 -2
- package/lib/elements/entities/message/message.infer.d.ts +1 -5
- package/lib/elements/entities/message/message.js +2 -7
- package/lib/elements/entities/message/message.schema.js +1 -1
- package/lib/elements/entities/message/template/message_template.schema.d.ts +7 -5
- package/lib/elements/entities/message/template/message_template_field.builder.d.ts +18 -3
- package/lib/elements/entities/message/template/message_template_field.builder.js +49 -30
- package/lib/elements/entities/message/template/message_template_parser.js +2 -2
- package/lib/engine/{apps → app}/app.config.d.ts +11 -5
- package/lib/engine/{apps → app}/app.config.js +2 -2
- package/lib/engine/{apps → app}/app.d.ts +3 -2
- package/lib/engine/{apps → app}/app.js +3 -1
- package/lib/engine/{apps/distributed → app}/inc/inc.client.js +1 -1
- package/lib/engine/{apps/distributed → app}/inc/inc.server.js +3 -3
- package/lib/engine/{apps/distributed → app}/inc/sandbox.js +1 -1
- package/lib/engine/{apps → app}/inline.app.d.ts +2 -12
- package/lib/engine/{apps → app}/inline.app.js +37 -34
- package/lib/engine/auth/authn.d.ts +10 -12
- package/lib/engine/auth/zero.authn_provider.d.ts +3 -4
- package/lib/engine/auth/zero.authn_provider.js +0 -1
- package/lib/engine/builder.d.ts +28 -0
- package/lib/engine/builder.js +99 -0
- package/lib/engine/cli/cli.js +3 -2
- package/lib/engine/cli/ui.js +1 -0
- package/lib/engine/daemon.d.ts +28 -25
- package/lib/engine/daemon.js +37 -8
- package/lib/engine/data/error.d.ts +37 -3
- package/lib/engine/data/error.js +58 -16
- package/lib/engine/data/file.d.ts +1 -0
- package/lib/engine/data/file.js +4 -0
- package/lib/engine/dependency.d.ts +53 -81
- package/lib/engine/dependency.js +246 -120
- package/lib/engine/module.d.ts +18 -48
- package/lib/engine/module.js +78 -158
- package/lib/engine/space.d.ts +2 -2
- package/lib/engine/space.js +6 -6
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +7 -4
- package/lib/engine/transaction/nodes/bucket.trx_node.js +66 -43
- package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +10 -4
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +56 -45
- package/lib/engine/transaction/nodes/external.trx_node.d.ts +15 -0
- package/lib/engine/transaction/nodes/external.trx_node.js +53 -0
- package/lib/engine/transaction/nodes/job.trx_node.d.ts +7 -3
- package/lib/engine/transaction/nodes/job.trx_node.js +49 -29
- package/lib/engine/transaction/nodes/machine.trx_node.js +6 -6
- package/lib/engine/transaction/nodes/queue.trx_node.js +3 -3
- package/lib/engine/transaction/nodes/resource.trx_node.d.ts +7 -4
- package/lib/engine/transaction/nodes/resource.trx_node.js +68 -51
- package/lib/engine/transaction/nodes/topic.trx_node.js +9 -9
- package/lib/engine/transaction/trx.d.ts +15 -12
- package/lib/engine/transaction/trx.js +19 -3
- package/lib/engine/transaction/trx_engine.config.d.ts +4 -4
- package/lib/engine/transaction/trx_engine.d.ts +25 -7
- package/lib/engine/transaction/trx_engine.js +67 -16
- package/lib/engine/transaction/trx_node.d.ts +25 -21
- package/lib/engine/transaction/trx_node.js +99 -57
- package/lib/engine/tree.d.ts +4 -16
- package/lib/engine/tree.js +87 -57
- package/lib/{compiler → engine}/treeshake.d.ts +32 -32
- package/lib/{compiler → engine}/treeshake.js +272 -242
- package/lib/engine/util/console.js +3 -0
- package/lib/engine/util/crypto.d.ts +4 -3
- package/lib/engine/util/crypto.js +15 -5
- package/lib/engine/util/hash.js +5 -0
- package/lib/engine/util/log.d.ts +6 -8
- package/lib/engine/util/log.js +1 -1
- package/lib/engine/util/name_helpers.d.ts +37 -0
- package/lib/{compiler/helpers → engine/util}/name_helpers.js +33 -0
- package/lib/engine/util/parse.d.ts +4 -3
- package/lib/engine/util/parse.js +13 -28
- package/lib/engine/util/path.d.ts +1 -0
- package/lib/engine/util/path.js +14 -0
- package/lib/engine/util/random.d.ts +4 -0
- package/lib/engine/util/random.js +31 -0
- package/lib/engine/util/type.d.ts +8 -0
- package/lib/schema.d.ts +1 -1
- package/package.json +4 -1
- package/tools/joaquin/bucket.js +1 -1
- package/tools/joaquin/job.js +1 -1
- package/tools/joaquin/message.js +1 -1
- package/tools/joaquin/mock.js +2 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/lib/compiler/apps/distributed/stages/1_mkdir_stage.d.ts +0 -15
- package/lib/compiler/apps/distributed/stages/2_build_typescript_stage.d.ts +0 -15
- package/lib/compiler/apps/distributed/stages/3_copy_types_stage.d.ts +0 -15
- package/lib/compiler/apps/distributed/stages/4_dump_modules_stage.d.ts +0 -16
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +0 -15
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +0 -15
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +0 -15
- package/lib/compiler/apps/monolyth/stages/6_dump_cli_stage.d.ts +0 -15
- package/lib/compiler/helpers/name_helpers.d.ts +0 -20
- package/lib/engine/apps/distributed/distributed.app.config.d.ts +0 -44
- package/lib/engine/apps/distributed/elements/distributed_job.d.ts +0 -7
- package/lib/engine/apps/distributed/elements/distributed_job.js +0 -11
- /package/lib/{compiler/apps → bundler}/distributed/stages/5_copy_static_stage.d.ts +0 -0
- /package/lib/{compiler/apps → bundler}/distributed/stages/6_dump_cli_stage.d.ts +0 -0
- /package/lib/{compiler/apps → bundler}/distributed/stages/7_dump_package_json_stage.d.ts +0 -0
- /package/lib/engine/{apps/distributed → app}/inc/inc.client.d.ts +0 -0
- /package/lib/engine/{apps/distributed → app}/inc/inc.server.d.ts +0 -0
- /package/lib/engine/{apps/distributed → app}/inc/sandbox.d.ts +0 -0
- /package/lib/engine/{apps → app}/service.d.ts +0 -0
- /package/lib/engine/{apps → app}/service.js +0 -0
|
@@ -42,17 +42,29 @@ class MessageTemplateFieldFactory {
|
|
|
42
42
|
return new MessageTemplateFieldBuilder('decimal', { decimal: config }, this.alias);
|
|
43
43
|
}
|
|
44
44
|
enum(options) {
|
|
45
|
-
let
|
|
45
|
+
let meta;
|
|
46
46
|
if (typeof options === 'string') {
|
|
47
|
-
const
|
|
48
|
-
if (
|
|
49
|
-
|
|
47
|
+
const enumpath = options.match(/(.*)\.\{(.*)\}$/);
|
|
48
|
+
if (enumpath) {
|
|
49
|
+
meta = { enumpath: [enumpath[1], enumpath[2]] };
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
|
-
|
|
52
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'constants.enum', options);
|
|
53
|
+
meta = {
|
|
54
|
+
dep: new dependency_1.Dependency(this.module, tag, { build: true })
|
|
55
|
+
};
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
|
|
58
|
+
else if (Array.isArray(options)) {
|
|
59
|
+
const opts = {};
|
|
60
|
+
for (const opt of options)
|
|
61
|
+
opts[opt] = opt;
|
|
62
|
+
meta = { options: opts };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
meta = { options: options };
|
|
66
|
+
}
|
|
67
|
+
return new MessageTemplateFieldBuilder('enum', { enum: meta }, this.alias, undefined);
|
|
56
68
|
}
|
|
57
69
|
file(config) {
|
|
58
70
|
return new MessageTemplateFieldBuilder('file', { file: config }, this.alias);
|
|
@@ -61,9 +73,9 @@ class MessageTemplateFieldFactory {
|
|
|
61
73
|
return new MessageTemplateFieldBuilder('float', {}, this.alias);
|
|
62
74
|
}
|
|
63
75
|
id(bucket, view) {
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
return new MessageTemplateFieldBuilder('id', { id: { bucket:
|
|
76
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'bucket', bucket);
|
|
77
|
+
const dep = new dependency_1.Dependency(this.module, tag, { build: true, compile: true, runtime: true });
|
|
78
|
+
return new MessageTemplateFieldBuilder('id', { id: { bucket: dep, view: view } }, this.alias, undefined);
|
|
67
79
|
}
|
|
68
80
|
get int() {
|
|
69
81
|
return new MessageTemplateFieldBuilder('int', {}, this.alias);
|
|
@@ -94,14 +106,15 @@ class MessageTemplateFieldFactory {
|
|
|
94
106
|
return new MessageTemplateFieldBuilder('union', {}, this.alias, Object.fromEntries(children.map((c, i) => [i, c])));
|
|
95
107
|
}
|
|
96
108
|
msg(msg, extra = {}) {
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
return new MessageTemplateFieldBuilder('msg', { msg:
|
|
109
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'message', msg);
|
|
110
|
+
const dep = new dependency_1.Dependency(this.module, tag, { build: true });
|
|
111
|
+
return new MessageTemplateFieldBuilder('msg', { msg: dep }, this.alias, extra);
|
|
100
112
|
}
|
|
101
113
|
extend(name, fields) {
|
|
102
|
-
const
|
|
114
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'message', name);
|
|
115
|
+
const dep = new dependency_1.Dependency(this.module, tag, { build: true });
|
|
103
116
|
return {
|
|
104
|
-
__ext:
|
|
117
|
+
__ext: dep,
|
|
105
118
|
...fields
|
|
106
119
|
};
|
|
107
120
|
}
|
|
@@ -112,9 +125,9 @@ exports.MessageTemplateFieldFactory = MessageTemplateFieldFactory;
|
|
|
112
125
|
* @subcategory Entity
|
|
113
126
|
* */
|
|
114
127
|
class MessageTemplateFieldBuilder {
|
|
115
|
-
constructor(type,
|
|
128
|
+
constructor(type, meta, alias, children) {
|
|
116
129
|
this.type = type;
|
|
117
|
-
this.
|
|
130
|
+
this.meta = meta;
|
|
118
131
|
this.alias = alias;
|
|
119
132
|
this.children = children;
|
|
120
133
|
this._required = true;
|
|
@@ -152,24 +165,28 @@ class MessageTemplateFieldBuilder {
|
|
|
152
165
|
let type = builder.type;
|
|
153
166
|
let children;
|
|
154
167
|
if (builder.type === 'id') {
|
|
155
|
-
const bucket =
|
|
156
|
-
builder.
|
|
168
|
+
const bucket = dependency_1.Tag.resolve(builder.meta.id.bucket.tag, tree);
|
|
169
|
+
builder.meta.id.type = bucket.model.fields.id.type;
|
|
170
|
+
builder.meta.id.bucket = builder.meta.id.bucket.tag;
|
|
171
|
+
}
|
|
172
|
+
else if (builder.type === 'enum') {
|
|
173
|
+
if ('dep' in builder.meta.enum) {
|
|
174
|
+
const _enum = dependency_1.Tag.resolve(builder.meta.enum.dep.tag, tree);
|
|
175
|
+
builder.meta.enum = {
|
|
176
|
+
options: _enum.options
|
|
177
|
+
};
|
|
178
|
+
}
|
|
157
179
|
}
|
|
158
180
|
// A .msg() parameter is an obj which takes fields from
|
|
159
181
|
// another message
|
|
160
182
|
else if (builder.type === 'msg') {
|
|
161
|
-
const dep = builder.
|
|
162
|
-
if (dep.type !== 'message') {
|
|
163
|
-
throw error_1.NesoiError.Builder.Message.UnknownModuleMessage(dep.tag);
|
|
183
|
+
const dep = builder.meta.msg;
|
|
184
|
+
if (dep.tag.type !== 'message') {
|
|
185
|
+
throw error_1.NesoiError.Builder.Message.UnknownModuleMessage(dep.tag.name);
|
|
164
186
|
}
|
|
165
|
-
const $msg =
|
|
187
|
+
const $msg = dependency_1.Tag.resolve(dep.tag, tree);
|
|
166
188
|
if (!$msg) {
|
|
167
|
-
throw error_1.NesoiError.Builder.Message.UnknownModuleMessage(dep.tag);
|
|
168
|
-
}
|
|
169
|
-
if (dep.module !== module.name) {
|
|
170
|
-
if (!(dep.refName in module.externals.messages)) {
|
|
171
|
-
throw error_1.NesoiError.Builder.Message.UnknownModuleMessage(dep.tag);
|
|
172
|
-
}
|
|
189
|
+
throw error_1.NesoiError.Builder.Message.UnknownModuleMessage(dep.tag.name);
|
|
173
190
|
}
|
|
174
191
|
const injectFields = (target, fields) => {
|
|
175
192
|
for (const key in fields) {
|
|
@@ -185,6 +202,7 @@ class MessageTemplateFieldBuilder {
|
|
|
185
202
|
type = 'obj';
|
|
186
203
|
children = {};
|
|
187
204
|
injectFields(children, $msg.template.fields);
|
|
205
|
+
builder.meta.msg = { tag: dep.tag };
|
|
188
206
|
}
|
|
189
207
|
else if (builder.type === 'list') {
|
|
190
208
|
children = MessageTemplateFieldBuilder.buildMany(builder.children, tree, module, childrenBasePathRaw, childrenBasePathParsed, '#', '#');
|
|
@@ -199,7 +217,7 @@ class MessageTemplateFieldBuilder {
|
|
|
199
217
|
else if (builder.children) {
|
|
200
218
|
children = MessageTemplateFieldBuilder.buildMany(builder.children, tree, module, childrenBasePathRaw, childrenBasePathParsed);
|
|
201
219
|
}
|
|
202
|
-
return new message_template_schema_1.$MessageTemplateField(type, name, builder.alias || name, pathRaw, pathParsed, builder._required, builder._defaultValue, builder._nullable, builder._rules, builder.
|
|
220
|
+
return new message_template_schema_1.$MessageTemplateField(type, name, builder.alias || name, pathRaw, pathParsed, builder._required, builder._defaultValue, builder._nullable, builder._rules, builder.meta, children);
|
|
203
221
|
}
|
|
204
222
|
static buildMany(fields, tree, module, basePathRaw = '', basePathParsed = '', name, key) {
|
|
205
223
|
const schema = {};
|
|
@@ -211,7 +229,8 @@ class MessageTemplateFieldBuilder {
|
|
|
211
229
|
}
|
|
212
230
|
// Extended field groups inherit from other messages
|
|
213
231
|
if ('__ext' in fields) {
|
|
214
|
-
const
|
|
232
|
+
const dep = fields.__ext;
|
|
233
|
+
const ext = dependency_1.Tag.resolve(dep.tag, tree);
|
|
215
234
|
Object.assign(schema, ext.template.fields);
|
|
216
235
|
}
|
|
217
236
|
return schema;
|
|
@@ -105,7 +105,7 @@ async function _runParseMethod(trx, field, path, raw, value, inject) {
|
|
|
105
105
|
case 'decimal':
|
|
106
106
|
return (0, parse_1.parseDecimal)(field, path, value);
|
|
107
107
|
case 'enum':
|
|
108
|
-
return (0, parse_1.parseEnum)(raw, field, path, value, field.meta.enum
|
|
108
|
+
return (0, parse_1.parseEnum)(raw, field, path, value, field.meta.enum, trx);
|
|
109
109
|
case 'file':
|
|
110
110
|
return (0, parse_1.parseFile)(field, path, value, field.meta.file);
|
|
111
111
|
case 'float':
|
|
@@ -164,7 +164,7 @@ async function parseIdField(trx, field, path, value) {
|
|
|
164
164
|
const bucket = field.meta.id.bucket;
|
|
165
165
|
const type = field.meta.id.type;
|
|
166
166
|
const view = field.meta.id.view;
|
|
167
|
-
const parsed = await (0, parse_1.parseId)(field, path, value, trx, bucket
|
|
167
|
+
const parsed = await (0, parse_1.parseId)(field, path, value, trx, bucket, type, view);
|
|
168
168
|
return parsed.obj;
|
|
169
169
|
}
|
|
170
170
|
function sanitize(field, path, value) {
|
|
@@ -3,7 +3,6 @@ import { BucketConfig } from "../../elements/entities/bucket/bucket.config";
|
|
|
3
3
|
import { AuthnProvider } from '../auth/authn';
|
|
4
4
|
import { ControllerConfig } from "../../elements/edge/controller/controller.config";
|
|
5
5
|
import { TrxEngineConfig } from '../transaction/trx_engine.config';
|
|
6
|
-
import { CompilerConfig } from "../../compiler/compiler";
|
|
7
6
|
import { App } from './app';
|
|
8
7
|
import { IService } from './service';
|
|
9
8
|
import { CLIConfig } from '../cli/cli';
|
|
@@ -20,7 +19,7 @@ export type AppModuleConfig<S extends $Space, M extends ModuleName<S>, Services
|
|
|
20
19
|
trx?: TrxEngineConfig<S, S['modules'][M], any, Services>;
|
|
21
20
|
};
|
|
22
21
|
export type AppConfig<S extends $Space, Modules extends ModuleName<S>, Services extends Record<string, IService>> = {
|
|
23
|
-
|
|
22
|
+
auth?: AppAuthConfig<S>;
|
|
24
23
|
modules?: Partial<{
|
|
25
24
|
[M in (Modules & keyof S['modules'])]: AppModuleConfig<S, M, Services>;
|
|
26
25
|
}>;
|
|
@@ -32,8 +31,8 @@ export type AnyAppConfig = AppConfig<any, any, any>;
|
|
|
32
31
|
export type AppI18nConfig = {
|
|
33
32
|
[x: string]: ($: Record<string, any>) => string;
|
|
34
33
|
};
|
|
35
|
-
export type
|
|
36
|
-
[K in keyof S['authnUsers']]
|
|
34
|
+
export type AppAuthConfig<S extends $Space> = {
|
|
35
|
+
[K in keyof S['authnUsers']]?: () => AuthnProvider<S['authnUsers'][K], any>;
|
|
37
36
|
};
|
|
38
37
|
export type AppBucketConfig<S extends $Space, M extends keyof S['modules'], Services extends Record<string, IService>> = Partial<{
|
|
39
38
|
[K in keyof S['modules'][M]['buckets']]: BucketConfig<S['modules'][M], S['modules'][M]['buckets'][K], Services>;
|
|
@@ -51,6 +50,13 @@ export type AppAuditConfig = {
|
|
|
51
50
|
}>) => BucketAdapter<NesoiObj>;
|
|
52
51
|
transform?: (trx: TrxStatus<any>) => Record<string, any>;
|
|
53
52
|
};
|
|
53
|
+
export type CompilerConfig = {
|
|
54
|
+
nesoiPath?: string;
|
|
55
|
+
nesoiVersion?: string;
|
|
56
|
+
exclude?: string[];
|
|
57
|
+
reset?: boolean;
|
|
58
|
+
diagnose?: boolean;
|
|
59
|
+
};
|
|
54
60
|
/**
|
|
55
61
|
* Factory
|
|
56
62
|
*/
|
|
@@ -61,7 +67,7 @@ export declare class AppConfigBuilder<S extends $Space, Modules extends string =
|
|
|
61
67
|
private app;
|
|
62
68
|
private config;
|
|
63
69
|
constructor(app: _App);
|
|
64
|
-
|
|
70
|
+
auth(config: AppAuthConfig<S>): _App;
|
|
65
71
|
module<M extends Modules>(name: M, config: AppModuleConfig<S, M, Services>): _App;
|
|
66
72
|
audit(config: AppI18nConfig): _App;
|
|
67
73
|
i18n(config: AppI18nConfig): _App;
|
|
@@ -4,13 +4,13 @@ import { Space } from '../space';
|
|
|
4
4
|
import { Daemon } from '../daemon';
|
|
5
5
|
import { AnyAppConfig, AppConfigBuilder } from './app.config';
|
|
6
6
|
import { IService } from './service';
|
|
7
|
-
import { DistributedAppConfigBuilder } from './distributed/distributed.app.config';
|
|
8
7
|
/**
|
|
9
8
|
* @category App
|
|
10
9
|
*/
|
|
11
10
|
export declare abstract class App<S extends $Space, Modules extends string = ModuleName<S> & string, Services extends Record<string, any> = Record<string, any>> {
|
|
12
11
|
name: string;
|
|
13
12
|
protected _config: AnyAppConfig;
|
|
13
|
+
protected _nesoiNpmPkg: string;
|
|
14
14
|
protected _spaceModuleNames: ModuleName<S>[];
|
|
15
15
|
protected _injectedModules: AnyModule[];
|
|
16
16
|
protected _services: Record<string, IService>;
|
|
@@ -54,12 +54,13 @@ export declare abstract class App<S extends $Space, Modules extends string = Mod
|
|
|
54
54
|
* @param $ object with an `up` and `down` method to create/destroy the service
|
|
55
55
|
*/
|
|
56
56
|
protected service<T extends IService>($: T): App<S, Modules, Services & { [K in T["name"]]: T; }>;
|
|
57
|
-
protected get config(): AppConfigBuilder<S, Modules, Services
|
|
57
|
+
protected get config(): AppConfigBuilder<S, Modules, Services>;
|
|
58
58
|
protected makeModules(): Record<string, AnyModule>;
|
|
59
59
|
static getServices(app: AnyApp): Record<string, IService>;
|
|
60
60
|
static getInfo(app: AnyApp): {
|
|
61
61
|
spaceModules: (string | number | symbol)[];
|
|
62
62
|
config: AnyAppConfig;
|
|
63
|
+
nesoiNpmPkg: string;
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
export type AnyApp = App<any, any>;
|
|
@@ -14,6 +14,7 @@ class App {
|
|
|
14
14
|
constructor(name, boot) {
|
|
15
15
|
this.name = name;
|
|
16
16
|
this._config = {};
|
|
17
|
+
this._nesoiNpmPkg = 'nesoi';
|
|
17
18
|
// This is a list of names to be read from the space.
|
|
18
19
|
// If the app is not booted with a space, this does nothing.
|
|
19
20
|
this._spaceModuleNames = [];
|
|
@@ -100,7 +101,8 @@ class App {
|
|
|
100
101
|
static getInfo(app) {
|
|
101
102
|
return {
|
|
102
103
|
spaceModules: app._spaceModuleNames,
|
|
103
|
-
config: app._config
|
|
104
|
+
config: app._config,
|
|
105
|
+
nesoiNpmPkg: app._nesoiNpmPkg,
|
|
104
106
|
};
|
|
105
107
|
}
|
|
106
108
|
}
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.INCClient = void 0;
|
|
37
37
|
const net = __importStar(require("net"));
|
|
38
|
-
const log_1 = require("
|
|
38
|
+
const log_1 = require("../../util/log");
|
|
39
39
|
class INCClient {
|
|
40
40
|
constructor(config) {
|
|
41
41
|
this.config = config;
|
|
@@ -34,9 +34,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.INCServer = void 0;
|
|
37
|
-
const crypto_1 = require("crypto");
|
|
38
37
|
const net = __importStar(require("net"));
|
|
39
|
-
const log_1 = require("
|
|
38
|
+
const log_1 = require("../../util/log");
|
|
39
|
+
const random_1 = require("../../util/random");
|
|
40
40
|
class INCServer {
|
|
41
41
|
constructor(config) {
|
|
42
42
|
this.config = config;
|
|
@@ -108,7 +108,7 @@ class INCServer {
|
|
|
108
108
|
log_1.Log.warn('inc.server', this.config.name, 'Closed');
|
|
109
109
|
}
|
|
110
110
|
async onConnection(socket) {
|
|
111
|
-
const id =
|
|
111
|
+
const id = random_1.Random.uuid();
|
|
112
112
|
socket.id = id;
|
|
113
113
|
this.clients[id] = socket;
|
|
114
114
|
const serverAddress = this.server.address();
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const inc_server_1 = require("./inc.server");
|
|
4
4
|
const inc_client_1 = require("./inc.client");
|
|
5
|
-
const log_1 = require("
|
|
5
|
+
const log_1 = require("../../util/log");
|
|
6
6
|
log_1.Log.level = 'debug';
|
|
7
7
|
async function main() {
|
|
8
8
|
const server = new inc_server_1.INCServer({
|
|
@@ -5,6 +5,7 @@ import { AnyTrxEngine } from '../transaction/trx_engine';
|
|
|
5
5
|
import { AnyBuilder, AnyElementSchema, AnyModule, Module } from '../module';
|
|
6
6
|
import { AnyDaemon, Daemon } from '../daemon';
|
|
7
7
|
import { AppConfigBuilder } from './app.config';
|
|
8
|
+
import { Tag } from '../dependency';
|
|
8
9
|
/**
|
|
9
10
|
* @category App
|
|
10
11
|
*/
|
|
@@ -31,13 +32,6 @@ export declare class InlineApp<S extends $Space, ModuleNames extends string = Mo
|
|
|
31
32
|
daemon(): Promise<Daemon<S, ModuleNames>>;
|
|
32
33
|
protected makeDaemon(trxEngines: Record<ModuleNames, AnyTrxEngine>, services: Record<string, IService>): AnyDaemon;
|
|
33
34
|
package(_package: Record<string, any>): this;
|
|
34
|
-
/**
|
|
35
|
-
* This method injects elements flagged as externals by referencing them
|
|
36
|
-
* from the other module directly, given this is a single-threaded App.
|
|
37
|
-
*
|
|
38
|
-
* TODO: allow overriding this behavior with adapters
|
|
39
|
-
*/
|
|
40
|
-
protected linkExternals(modules: Record<string, Module<S, $Module>>): void;
|
|
41
35
|
/**
|
|
42
36
|
* This method injects values from environment variables into each module's
|
|
43
37
|
* app constants.
|
|
@@ -56,9 +50,5 @@ export declare class InlineApp<S extends $Space, ModuleNames extends string = Mo
|
|
|
56
50
|
};
|
|
57
51
|
}
|
|
58
52
|
export declare class InlineDaemon<S extends $Space, Modules extends ModuleName<S>> extends Daemon<S, Modules> {
|
|
59
|
-
protected getSchema(tag:
|
|
60
|
-
module: Modules;
|
|
61
|
-
type: string;
|
|
62
|
-
name: string;
|
|
63
|
-
}): Promise<AnyElementSchema>;
|
|
53
|
+
protected getSchema(tag: Tag): Promise<AnyElementSchema>;
|
|
64
54
|
}
|
|
@@ -12,6 +12,7 @@ const daemon_1 = require("../daemon");
|
|
|
12
12
|
const app_config_1 = require("./app.config");
|
|
13
13
|
const promise_1 = __importDefault(require("../util/promise"));
|
|
14
14
|
const dependency_1 = require("../dependency");
|
|
15
|
+
const builder_1 = require("../builder");
|
|
15
16
|
/**
|
|
16
17
|
* @category App
|
|
17
18
|
*/
|
|
@@ -44,8 +45,8 @@ class InlineApp extends app_1.App {
|
|
|
44
45
|
if (node.isInline) {
|
|
45
46
|
return;
|
|
46
47
|
}
|
|
47
|
-
const module = this._modules[node.module];
|
|
48
|
-
await
|
|
48
|
+
const module = this._modules[node.tag.module];
|
|
49
|
+
await builder_1.Builder.buildNode(module, node, tree);
|
|
49
50
|
});
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
@@ -75,17 +76,17 @@ class InlineApp extends app_1.App {
|
|
|
75
76
|
const module = modules[m];
|
|
76
77
|
module.start(this, services);
|
|
77
78
|
const trxConfig = this._config.modules?.[m]?.trx;
|
|
78
|
-
const
|
|
79
|
-
for (const a in this._config?.
|
|
80
|
-
const prov = this._config.
|
|
79
|
+
const authnProviders = {};
|
|
80
|
+
for (const a in this._config?.auth || {}) {
|
|
81
|
+
const prov = this._config.auth?.[a]?.();
|
|
81
82
|
if (prov) {
|
|
82
|
-
|
|
83
|
+
authnProviders[a] = prov;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
|
-
trxEngines[m] = new trx_engine_1.TrxEngine(`app:${this.name}`, module,
|
|
86
|
+
trxEngines[m] = new trx_engine_1.TrxEngine(`app:${this.name}`, module, authnProviders, trxConfig, services);
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
-
this.linkExternals(modules);
|
|
88
|
+
// Log.debug('app', this.name, 'Injecting external constants and messages');
|
|
89
|
+
// this.linkExternals(modules);
|
|
89
90
|
log_1.Log.debug('app', this.name, 'Linking app values');
|
|
90
91
|
this.linkAppValues(modules);
|
|
91
92
|
return {
|
|
@@ -115,27 +116,27 @@ class InlineApp extends app_1.App {
|
|
|
115
116
|
this.packageJson = _package;
|
|
116
117
|
return this;
|
|
117
118
|
}
|
|
118
|
-
/**
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
linkExternals(modules) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
119
|
+
// /**
|
|
120
|
+
// * This method injects elements flagged as externals by referencing them
|
|
121
|
+
// * from the other module directly, given this is a single-threaded App.
|
|
122
|
+
// *
|
|
123
|
+
// * TODO: allow overriding this behavior with adapters
|
|
124
|
+
// */
|
|
125
|
+
// protected linkExternals(modules: Record<string, Module<S, $Module>>) {
|
|
126
|
+
// Object.values(modules).forEach(module => {
|
|
127
|
+
// module.injectDependencies(modules, {
|
|
128
|
+
// buckets: Object.values(module.schema.externals.buckets),
|
|
129
|
+
// messages: Object.values(module.schema.externals.messages),
|
|
130
|
+
// jobs: Object.values(module.schema.externals.jobs),
|
|
131
|
+
// machines: Object.values(module.schema.externals.machines),
|
|
132
|
+
// enums: Object.values(module.schema.externals.enums)
|
|
133
|
+
// })
|
|
134
|
+
// const buckets = module.schema.externals.buckets;
|
|
135
|
+
// Object.values(buckets).forEach(bucket => {
|
|
136
|
+
// module.nql.linkExternal(modules[bucket.module].buckets[bucket.name]);
|
|
137
|
+
// })
|
|
138
|
+
// })
|
|
139
|
+
// }
|
|
139
140
|
/**
|
|
140
141
|
* This method injects values from environment variables into each module's
|
|
141
142
|
* app constants.
|
|
@@ -146,7 +147,12 @@ class InlineApp extends app_1.App {
|
|
|
146
147
|
Object.values(values).forEach(value => {
|
|
147
148
|
if (value.scope !== 'app')
|
|
148
149
|
return;
|
|
150
|
+
/* @nesoi:browser ignore-start */
|
|
149
151
|
value.value = process.env[value.key];
|
|
152
|
+
/* @nesoi:browser ignore-end */
|
|
153
|
+
/* @nesoi:browser add
|
|
154
|
+
value.value = localStorage.getItem(value.key)
|
|
155
|
+
*/
|
|
150
156
|
});
|
|
151
157
|
});
|
|
152
158
|
}
|
|
@@ -180,10 +186,7 @@ class InlineDaemon extends daemon_1.Daemon {
|
|
|
180
186
|
async getSchema(tag) {
|
|
181
187
|
const trxEngine = this.trxEngines[tag.module];
|
|
182
188
|
const _module = trxEngine.getModule();
|
|
183
|
-
const schema = dependency_1
|
|
184
|
-
if (!schema) {
|
|
185
|
-
throw new Error(`Unable to reach schema '${tag}'`);
|
|
186
|
-
}
|
|
189
|
+
const schema = dependency_1.Tag.resolveFrom(tag, _module.schema);
|
|
187
190
|
return Promise.resolve(schema);
|
|
188
191
|
}
|
|
189
192
|
}
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { NesoiObjId } from '../data/obj';
|
|
2
2
|
import { AnyTrxNode } from '../transaction/trx_node';
|
|
3
|
+
export type AuthToken = string;
|
|
4
|
+
export type AuthRequest<P extends keyof any> = {
|
|
5
|
+
[K in P]?: AuthToken;
|
|
6
|
+
};
|
|
3
7
|
export type User = {
|
|
4
8
|
id: NesoiObjId;
|
|
5
9
|
[x: string]: any;
|
|
6
10
|
};
|
|
7
|
-
export type AuthnToken = string;
|
|
8
|
-
export type AuthnRequest<P extends keyof any> = {
|
|
9
|
-
[K in P]?: AuthnToken;
|
|
10
|
-
};
|
|
11
11
|
/**
|
|
12
12
|
* @category Engine
|
|
13
13
|
* @subcategory Auth
|
|
14
14
|
*/
|
|
15
|
-
export declare abstract class AuthnProvider<U extends User> {
|
|
15
|
+
export declare abstract class AuthnProvider<U extends User, Eager extends boolean> {
|
|
16
16
|
/**
|
|
17
|
-
* - If `true`, this provider is run
|
|
18
|
-
*
|
|
19
|
-
* - If `false`, the `$.token` is always defined.
|
|
17
|
+
* - If `true`, this provider is run at the start of all transactions.
|
|
18
|
+
* - If `false`, it only runs once an element requires it, and if a token is present.
|
|
20
19
|
*/
|
|
21
|
-
abstract eager:
|
|
20
|
+
abstract eager: Eager;
|
|
22
21
|
abstract authenticate($: {
|
|
23
22
|
trx: AnyTrxNode;
|
|
24
|
-
token
|
|
23
|
+
token: Eager extends true ? (AuthToken | undefined) : AuthToken;
|
|
25
24
|
}): Promise<{
|
|
26
|
-
token: AuthnToken;
|
|
27
25
|
user: U;
|
|
28
26
|
}>;
|
|
29
27
|
}
|
|
30
28
|
export type AnyAuthnProviders = {
|
|
31
|
-
[K: string]: AuthnProvider<any>;
|
|
29
|
+
[K: string]: AuthnProvider<any, any>;
|
|
32
30
|
};
|
|
33
31
|
export type AnyUsers = {
|
|
34
32
|
[K: string]: User;
|
|
@@ -8,12 +8,11 @@ type ZeroUser = {
|
|
|
8
8
|
* @category Engine
|
|
9
9
|
* @subcategory Auth
|
|
10
10
|
*/
|
|
11
|
-
export declare class ZeroAuthnProvider extends AuthnProvider<ZeroUser> {
|
|
12
|
-
eager:
|
|
11
|
+
export declare class ZeroAuthnProvider extends AuthnProvider<ZeroUser, false> {
|
|
12
|
+
eager: false;
|
|
13
13
|
authenticate($: {
|
|
14
|
-
token?: string;
|
|
15
|
-
}): Promise<{
|
|
16
14
|
token: string;
|
|
15
|
+
}): Promise<{
|
|
17
16
|
user: {
|
|
18
17
|
id: number;
|
|
19
18
|
name: string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ResolvedBuilderNode } from './dependency';
|
|
2
|
+
import { ModuleTree } from './tree';
|
|
3
|
+
import { AnyModule } from './module';
|
|
4
|
+
export declare class Builder {
|
|
5
|
+
/**
|
|
6
|
+
* Build a resolved builder node, then merge the
|
|
7
|
+
* resulting schema(s) to the module.
|
|
8
|
+
* This also merges the resulting inline nodes of building a node.
|
|
9
|
+
*
|
|
10
|
+
* @param node A resolved builder node
|
|
11
|
+
* @param tree A module tree
|
|
12
|
+
*/
|
|
13
|
+
static buildNode(module: AnyModule, node: ResolvedBuilderNode, tree: ModuleTree): void;
|
|
14
|
+
/**
|
|
15
|
+
* Merge inline message schemas into the module.
|
|
16
|
+
*
|
|
17
|
+
* @param node A resolved builder node
|
|
18
|
+
* @param schemas A dictionary of Message schemas by name
|
|
19
|
+
*/
|
|
20
|
+
private static mergeInlineMessages;
|
|
21
|
+
/**
|
|
22
|
+
* Merge inline job schemas into the module.
|
|
23
|
+
*
|
|
24
|
+
* @param node A resolved builder node
|
|
25
|
+
* @param schemas A dictionary of job schemas by name
|
|
26
|
+
*/
|
|
27
|
+
private static mergeInlineJobs;
|
|
28
|
+
}
|