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
|
@@ -5,7 +5,7 @@ const machine_schema_1 = require("./machine.schema");
|
|
|
5
5
|
const machine_transition_builder_1 = require("./machine_transition.builder");
|
|
6
6
|
const dependency_1 = require("../../../engine/dependency");
|
|
7
7
|
const block_builder_1 = require("../block.builder");
|
|
8
|
-
const name_helpers_1 = require("../../../
|
|
8
|
+
const name_helpers_1 = require("../../../engine/util/name_helpers");
|
|
9
9
|
const machine_job_builder_1 = require("../job/internal/machine_job.builder");
|
|
10
10
|
/**
|
|
11
11
|
* @category Builders
|
|
@@ -32,16 +32,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
32
32
|
beforeEnter(def) {
|
|
33
33
|
const machineName = this.machine.name;
|
|
34
34
|
const name = `${machineName}@${this.name}__before_enter`;
|
|
35
|
-
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before Enter ${this._alias || this.name}`, this.
|
|
35
|
+
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before Enter ${this._alias || this.name}`, this._auth);
|
|
36
36
|
def(builder);
|
|
37
|
-
|
|
37
|
+
const tag = new dependency_1.Tag(this.module, 'job', name);
|
|
38
|
+
this._jobs.beforeEnter = new dependency_1.Dependency(this.module, tag, { runtime: true });
|
|
38
39
|
// Inline nodes are registered on the machine builder,
|
|
39
40
|
// since a machine state is not a BuilderNode
|
|
40
41
|
const _inlineNodes = this.machine._inlineNodes;
|
|
41
42
|
_inlineNodes.push(new dependency_1.BuilderNode({
|
|
42
|
-
|
|
43
|
-
type: 'job',
|
|
44
|
-
name: name,
|
|
43
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
45
44
|
builder: builder,
|
|
46
45
|
isInline: true,
|
|
47
46
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
@@ -52,16 +51,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
52
51
|
afterEnter(def) {
|
|
53
52
|
const machineName = this.machine.name;
|
|
54
53
|
const name = `${machineName}@${this.name}__after_enter`;
|
|
55
|
-
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On Enter ${this._alias || this.name}`, this.
|
|
54
|
+
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On Enter ${this._alias || this.name}`, this._auth);
|
|
56
55
|
def(builder);
|
|
57
|
-
|
|
56
|
+
const tag = new dependency_1.Tag(this.module, 'job', name);
|
|
57
|
+
this._jobs.afterEnter = new dependency_1.Dependency(this.module, tag, { runtime: true });
|
|
58
58
|
// Inline nodes are registered on the machine builder,
|
|
59
59
|
// since a machine state is not a BuilderNode
|
|
60
60
|
const _inlineNodes = this.machine._inlineNodes;
|
|
61
61
|
_inlineNodes.push(new dependency_1.BuilderNode({
|
|
62
|
-
|
|
63
|
-
type: 'job',
|
|
64
|
-
name: name,
|
|
62
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
65
63
|
builder: builder,
|
|
66
64
|
isInline: true,
|
|
67
65
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
@@ -72,16 +70,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
72
70
|
beforeLeave(def) {
|
|
73
71
|
const machineName = this.machine.name;
|
|
74
72
|
const name = `${machineName}@${this.name}__before_leave`;
|
|
75
|
-
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before leave ${this._alias || this.name}`, this.
|
|
73
|
+
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `Before leave ${this._alias || this.name}`, this._auth);
|
|
76
74
|
def(builder);
|
|
77
|
-
|
|
75
|
+
const tag = new dependency_1.Tag(this.module, 'job', name);
|
|
76
|
+
this._jobs.beforeLeave = new dependency_1.Dependency(this.module, tag, { runtime: true });
|
|
78
77
|
// Inline nodes are registered on the machine builder,
|
|
79
78
|
// since a machine state is not a BuilderNode
|
|
80
79
|
const _inlineNodes = this.machine._inlineNodes;
|
|
81
80
|
_inlineNodes.push(new dependency_1.BuilderNode({
|
|
82
|
-
|
|
83
|
-
type: 'job',
|
|
84
|
-
name: name,
|
|
81
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
85
82
|
builder: builder,
|
|
86
83
|
isInline: true,
|
|
87
84
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
@@ -92,16 +89,15 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
92
89
|
afterLeave(def) {
|
|
93
90
|
const machineName = this.machine.name;
|
|
94
91
|
const name = `${machineName}@${this.name}__after_leave`;
|
|
95
|
-
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On leave ${this._alias || this.name}`, this.
|
|
92
|
+
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, `On leave ${this._alias || this.name}`, this._auth);
|
|
96
93
|
def(builder);
|
|
97
|
-
|
|
94
|
+
const tag = new dependency_1.Tag(this.module, 'job', name);
|
|
95
|
+
this._jobs.afterLeave = new dependency_1.Dependency(this.module, tag, { runtime: true });
|
|
98
96
|
// Inline nodes are registered on the machine builder,
|
|
99
97
|
// since a machine state is not a BuilderNode
|
|
100
98
|
const _inlineNodes = this.machine._inlineNodes;
|
|
101
99
|
_inlineNodes.push(new dependency_1.BuilderNode({
|
|
102
|
-
|
|
103
|
-
type: 'job',
|
|
104
|
-
name: name,
|
|
100
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
105
101
|
builder: builder,
|
|
106
102
|
isInline: true,
|
|
107
103
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
@@ -112,7 +108,8 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
112
108
|
transition(msg, $) {
|
|
113
109
|
const machineName = this.machine.name;
|
|
114
110
|
const msgName = name_helpers_1.NameHelpers.unabbrevName(msg, machineName);
|
|
115
|
-
const
|
|
111
|
+
const tag = new dependency_1.Tag(this.module, 'message', msgName);
|
|
112
|
+
const msgDep = new dependency_1.Dependency(this.module, tag, { runtime: true });
|
|
116
113
|
const builder = new machine_transition_builder_1.MachineTransitionBuilder(this.machine, this.module, this.name, msgDep);
|
|
117
114
|
$(builder);
|
|
118
115
|
if (!(msgName in this._transitions)) {
|
|
@@ -153,21 +150,26 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
153
150
|
if (!($trans.to in transitions.to)) {
|
|
154
151
|
transitions.to[$trans.to] = {};
|
|
155
152
|
}
|
|
156
|
-
if (!($trans.msg.
|
|
157
|
-
transitions.to[$trans.to][$trans.msg.
|
|
153
|
+
if (!($trans.msg.short in transitions.to[$trans.to])) {
|
|
154
|
+
transitions.to[$trans.to][$trans.msg.short] = [];
|
|
158
155
|
}
|
|
159
|
-
transitions.to[$trans.to][$trans.msg.
|
|
156
|
+
transitions.to[$trans.to][$trans.msg.short].push($trans);
|
|
160
157
|
// We also take note of unique transition input messages
|
|
161
|
-
if (!input.some(
|
|
158
|
+
if (!input.some(tag => dependency_1.Tag.matches(tag, $trans.msg))) {
|
|
162
159
|
input.push($trans.msg);
|
|
163
160
|
}
|
|
164
161
|
});
|
|
165
162
|
});
|
|
166
163
|
// Build this state
|
|
167
164
|
const states = {};
|
|
168
|
-
states[builder.name] = new machine_schema_1.$MachineState(builder.module, builder.name, builder._alias || builder.name, builder.
|
|
165
|
+
states[builder.name] = new machine_schema_1.$MachineState(builder.module, builder.name, builder._alias || builder.name, builder._auth, builder._initial, builder._final, [], // This is filled by the machine (after all transitions are built)
|
|
169
166
|
[], // This is filled by the machine (after all transitions are built)
|
|
170
|
-
|
|
167
|
+
{
|
|
168
|
+
beforeEnter: builder._jobs.beforeEnter?.tag,
|
|
169
|
+
afterEnter: builder._jobs.afterEnter?.tag,
|
|
170
|
+
beforeLeave: builder._jobs.beforeLeave?.tag,
|
|
171
|
+
afterLeave: builder._jobs.afterLeave?.tag,
|
|
172
|
+
});
|
|
171
173
|
// Build substates
|
|
172
174
|
for (const key in builder._states) {
|
|
173
175
|
const childBuilder = builder._states[key];
|
|
@@ -177,7 +179,7 @@ class MachineStateBuilder extends block_builder_1.BlockBuilder {
|
|
|
177
179
|
machine_transition_builder_1.MachineTransitionBuilder.merge(transitions, child.transitions);
|
|
178
180
|
Object.values(child.states).forEach(state => {
|
|
179
181
|
state.input.forEach(msg => {
|
|
180
|
-
if (!input.some(
|
|
182
|
+
if (!input.some(tag => dependency_1.Tag.matches(tag, msg))) {
|
|
181
183
|
input.push(msg);
|
|
182
184
|
}
|
|
183
185
|
});
|
|
@@ -2,7 +2,7 @@ import { $Module, $Space } from "../../../schema";
|
|
|
2
2
|
import { $Machine, $MachineTransition, $MachineTransitions } from './machine.schema';
|
|
3
3
|
import { $Job, $JobAssert, $JobMethod } from "../job/job.schema";
|
|
4
4
|
import { TrxNode } from "../../../engine/transaction/trx_node";
|
|
5
|
-
import {
|
|
5
|
+
import { Dependency } from "../../../engine/dependency";
|
|
6
6
|
import { BlockBuilder } from '../block.builder';
|
|
7
7
|
import { $Message } from "../../entities/message/message.schema";
|
|
8
8
|
import { Overlay } from "../../../engine/util/type";
|
|
@@ -24,7 +24,7 @@ export declare class MachineTransitionBuilder<S extends $Space, M extends $Modul
|
|
|
24
24
|
private _else?;
|
|
25
25
|
private _to?;
|
|
26
26
|
private _jobs;
|
|
27
|
-
constructor(machine: AnyMachineBuilder, module: string, _from: string, _msg:
|
|
27
|
+
constructor(machine: AnyMachineBuilder, module: string, _from: string, _msg: Dependency, index?: number);
|
|
28
28
|
as(alias: string): this;
|
|
29
29
|
if<Assert extends $JobAssert<TrxNode<S, M, $M['#authn']>, $['#input']['#parsed'], never, {
|
|
30
30
|
obj: $M['#data'];
|
|
@@ -11,7 +11,7 @@ const machine_job_builder_1 = require("../job/internal/machine_job.builder");
|
|
|
11
11
|
*/
|
|
12
12
|
class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
|
|
13
13
|
constructor(machine, module, _from, _msg, index = 0) {
|
|
14
|
-
super(module, 'machine', `${_from}~${_msg.
|
|
14
|
+
super(module, 'machine', `${_from}~${_msg.tag.short}`);
|
|
15
15
|
this.machine = machine;
|
|
16
16
|
this._from = _from;
|
|
17
17
|
this._msg = _msg;
|
|
@@ -38,21 +38,21 @@ class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
|
|
|
38
38
|
}
|
|
39
39
|
runJob(def) {
|
|
40
40
|
if (typeof def === 'string') {
|
|
41
|
-
|
|
41
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'job', def);
|
|
42
|
+
this._jobs.push(new dependency_1.Dependency(this.module, tag, { runtime: true }));
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
45
|
const machineName = this.machine.name;
|
|
45
46
|
const name = `${machineName}@${this.name}#${this.index}`;
|
|
46
|
-
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, this._alias || name, this.
|
|
47
|
+
const builder = new machine_job_builder_1.MachineJobBuilder(this.module, name, this._alias || name, this._auth, [this._msg]);
|
|
47
48
|
def(builder);
|
|
48
|
-
|
|
49
|
+
const tag = new dependency_1.Tag(this.module, 'job', name);
|
|
50
|
+
this._jobs.push(new dependency_1.Dependency(this.module, tag, { runtime: true }));
|
|
49
51
|
// Inline nodes are registered on the machine builder,
|
|
50
52
|
// since a machine transition is not a BuilderNode
|
|
51
53
|
const _inlineNodes = this.machine._inlineNodes;
|
|
52
54
|
_inlineNodes.push(new dependency_1.BuilderNode({
|
|
53
|
-
|
|
54
|
-
type: 'job',
|
|
55
|
-
name: name,
|
|
55
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
56
56
|
builder: builder,
|
|
57
57
|
isInline: true,
|
|
58
58
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
@@ -89,7 +89,7 @@ class MachineTransitionBuilder extends block_builder_1.BlockBuilder {
|
|
|
89
89
|
/** Build */
|
|
90
90
|
static build(builder) {
|
|
91
91
|
const transitions = [];
|
|
92
|
-
const self = new machine_schema_1.$MachineTransition(builder.module, builder.name, builder._alias || builder.name, builder.
|
|
92
|
+
const self = new machine_schema_1.$MachineTransition(builder.module, builder.name, builder._alias || builder.name, builder._auth, builder._msg.tag, builder._from, builder._to || builder._from, builder._condition, builder._jobs.map(j => j.tag));
|
|
93
93
|
transitions.push(self);
|
|
94
94
|
if (builder._else) {
|
|
95
95
|
const others = MachineTransitionBuilder.build(builder._else);
|
|
@@ -14,9 +14,9 @@ import { $Message } from "../../entities/message/message.schema";
|
|
|
14
14
|
export declare class QueueBuilder<Space extends $Space, M extends $Module, $ extends $Queue> extends BlockBuilder<Space, M, 'queue'> {
|
|
15
15
|
$b: "queue";
|
|
16
16
|
constructor(module: string, name: string);
|
|
17
|
-
|
|
18
|
-
"#authn":
|
|
19
|
-
}
|
|
17
|
+
auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): QueueBuilder<Space, M, Overlay<$, {
|
|
18
|
+
"#authn": $["#authn"] & { [K in U]: Space["authnUsers"][K]; };
|
|
19
|
+
}>>;
|
|
20
20
|
message<Name extends string, Def extends MessageTemplateDef<Space, M, Name>, FullName extends string = `${$['name']}${Name extends '' ? '' : '.'}${Name & string}`, Msg extends $Message = $MessageInfer<FullName, ($: any) => ReturnType<Def>>>(name: Name, def: Def): QueueBuilder<Space, Overlay<M, {
|
|
21
21
|
messages: Overlay<M["messages"], { [K in FullName]: Msg; }>;
|
|
22
22
|
}>, $>;
|
|
@@ -14,8 +14,8 @@ class QueueBuilder extends block_builder_1.BlockBuilder {
|
|
|
14
14
|
this.$b = 'queue';
|
|
15
15
|
}
|
|
16
16
|
/* [Block] */
|
|
17
|
-
|
|
18
|
-
return super.
|
|
17
|
+
auth(provider, resolver) {
|
|
18
|
+
return super.auth(provider, resolver);
|
|
19
19
|
}
|
|
20
20
|
message(name, def) {
|
|
21
21
|
return super.message(name, def);
|
|
@@ -25,7 +25,7 @@ class QueueBuilder extends block_builder_1.BlockBuilder {
|
|
|
25
25
|
}
|
|
26
26
|
// Build
|
|
27
27
|
static build(node, tree, module) {
|
|
28
|
-
node.schema = new queue_schema_1.$Queue(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder.
|
|
28
|
+
node.schema = new queue_schema_1.$Queue(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, node.builder._inputMsgs.map(m => m.tag));
|
|
29
29
|
return {
|
|
30
30
|
schema: node.schema,
|
|
31
31
|
inlineMessages: message_builder_1.MessageBuilder.buildInlines(node, tree, module)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $Block } from '../block.schema';
|
|
1
|
+
import { Tag } from "../../../engine/dependency";
|
|
2
|
+
import { $Block, $BlockAuth } from '../block.schema';
|
|
3
3
|
/**
|
|
4
4
|
* @category Schemas
|
|
5
5
|
* @subcategory Block
|
|
@@ -8,9 +8,9 @@ export declare class $Queue extends $Block {
|
|
|
8
8
|
module: string;
|
|
9
9
|
name: string;
|
|
10
10
|
alias: string;
|
|
11
|
-
|
|
12
|
-
msgs:
|
|
11
|
+
auth: $BlockAuth[];
|
|
12
|
+
msgs: Tag[];
|
|
13
13
|
$t: "queue";
|
|
14
|
-
dependencies:
|
|
15
|
-
constructor(module: string, name: string, alias: string,
|
|
14
|
+
dependencies: Tag[];
|
|
15
|
+
constructor(module: string, name: string, alias: string, auth: $BlockAuth[], msgs: Tag[]);
|
|
16
16
|
}
|
|
@@ -7,12 +7,12 @@ const block_schema_1 = require("../block.schema");
|
|
|
7
7
|
* @subcategory Block
|
|
8
8
|
*/
|
|
9
9
|
class $Queue extends block_schema_1.$Block {
|
|
10
|
-
constructor(module, name, alias,
|
|
11
|
-
super(module, name, alias,
|
|
10
|
+
constructor(module, name, alias, auth, msgs) {
|
|
11
|
+
super(module, name, alias, auth, msgs, {});
|
|
12
12
|
this.module = module;
|
|
13
13
|
this.name = name;
|
|
14
14
|
this.alias = alias;
|
|
15
|
-
this.
|
|
15
|
+
this.auth = auth;
|
|
16
16
|
this.msgs = msgs;
|
|
17
17
|
this.$t = 'queue';
|
|
18
18
|
this.dependencies = [];
|
|
@@ -20,8 +20,8 @@ export declare class ResourceBuilder<Space extends $Space, Module extends $Modul
|
|
|
20
20
|
private _jobs;
|
|
21
21
|
private _bucket;
|
|
22
22
|
constructor(module: string, name: Resource['name']);
|
|
23
|
-
|
|
24
|
-
"#authn": { [K in U]: Space["authnUsers"][U]; };
|
|
23
|
+
auth<U extends keyof Space['authnUsers']>(provider: U, resolver?: (user: Space['authnUsers'][U]) => boolean): ResourceBuilder<Space, Module, Overlay<Resource, {
|
|
24
|
+
"#authn": Resource["#authn"] & { [K in U]: Space["authnUsers"][U]; };
|
|
25
25
|
}>>;
|
|
26
26
|
bucket<B extends keyof Module['buckets']>(name: B): ResourceBuilder<Space, Module, Overlay<Resource, {
|
|
27
27
|
"#bucket": Module["buckets"][B];
|
|
@@ -8,7 +8,7 @@ const error_1 = require("../../../engine/data/error");
|
|
|
8
8
|
const message_builder_1 = require("../../entities/message/message.builder");
|
|
9
9
|
const bucket_model_convert_1 = require("../../entities/bucket/model/bucket_model.convert");
|
|
10
10
|
const dependency_1 = require("../../../engine/dependency");
|
|
11
|
-
const name_helpers_1 = require("../../../
|
|
11
|
+
const name_helpers_1 = require("../../../engine/util/name_helpers");
|
|
12
12
|
const job_builder_1 = require("../job/job.builder");
|
|
13
13
|
const resource_1 = require("./resource");
|
|
14
14
|
const resource_job_1 = require("../job/internal/resource_job");
|
|
@@ -23,19 +23,20 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
23
23
|
this._jobs = {};
|
|
24
24
|
}
|
|
25
25
|
/* [Block] */
|
|
26
|
-
|
|
27
|
-
return super.
|
|
26
|
+
auth(provider, resolver) {
|
|
27
|
+
return super.auth(provider, resolver);
|
|
28
28
|
}
|
|
29
29
|
/* Bucket */
|
|
30
30
|
bucket(name) {
|
|
31
|
-
|
|
31
|
+
const tag = dependency_1.Tag.fromNameOrShort(this.module, 'bucket', name);
|
|
32
|
+
this._bucket = new dependency_1.Dependency(this.module, tag, { build: true, compile: true, runtime: true });
|
|
32
33
|
return this;
|
|
33
34
|
}
|
|
34
35
|
/* Read */
|
|
35
36
|
view(...views) {
|
|
36
37
|
const name = `${this.name}.view`;
|
|
37
38
|
const alias = `View ${this._alias || this.name}`;
|
|
38
|
-
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.
|
|
39
|
+
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'view', alias, resource_1.Resource.view, [...this._auth])
|
|
39
40
|
.input($ => ({
|
|
40
41
|
view: $.enum(views).default(views[0]),
|
|
41
42
|
id: $.string_or_number.optional,
|
|
@@ -46,21 +47,19 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
46
47
|
}))
|
|
47
48
|
.prepare(resource_job_1.ResourceJob.prepareMsgData);
|
|
48
49
|
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
49
|
-
|
|
50
|
-
type: 'job',
|
|
51
|
-
name: name,
|
|
50
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
52
51
|
builder: jobBuilder,
|
|
53
52
|
isInline: true,
|
|
54
53
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
55
54
|
dependencies: [] // This is added later by Treeshake.*()
|
|
56
55
|
}));
|
|
57
|
-
this._jobs.view = new dependency_1
|
|
56
|
+
this._jobs.view = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
|
|
58
57
|
return this;
|
|
59
58
|
}
|
|
60
59
|
query(...views) {
|
|
61
60
|
const name = `${this.name}.query`;
|
|
62
61
|
const alias = `Query ${this._alias || this.name}`;
|
|
63
|
-
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.
|
|
62
|
+
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'query', alias, resource_1.Resource.query, [...this._auth])
|
|
64
63
|
.input($ => ({
|
|
65
64
|
view: $.enum(views).default(views[0]),
|
|
66
65
|
query: $.dict($.any.optional).default({}),
|
|
@@ -69,83 +68,75 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
69
68
|
}))
|
|
70
69
|
.prepare(resource_job_1.ResourceJob.prepareMsgData);
|
|
71
70
|
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
72
|
-
|
|
73
|
-
type: 'job',
|
|
74
|
-
name: name,
|
|
71
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
75
72
|
builder: jobBuilder,
|
|
76
73
|
isInline: true,
|
|
77
74
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
78
75
|
dependencies: [] // This is added later by Treeshake.*()
|
|
79
76
|
}));
|
|
80
|
-
this._jobs.query = new dependency_1
|
|
77
|
+
this._jobs.query = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
|
|
81
78
|
return this;
|
|
82
79
|
}
|
|
83
80
|
/* Create/Update/Delete */
|
|
84
81
|
create($) {
|
|
85
82
|
const name = `${this.name}.create`;
|
|
86
83
|
const alias = `Create ${this._alias || this.name}`;
|
|
87
|
-
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.
|
|
84
|
+
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'create', alias, resource_1.Resource.create, [...this._auth], {
|
|
88
85
|
id: ['string_or_number', undefined, false]
|
|
89
86
|
})
|
|
90
87
|
.prepare(resource_job_1.ResourceJob.prepareMsgData);
|
|
91
88
|
$(jobBuilder);
|
|
92
89
|
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
93
|
-
|
|
94
|
-
type: 'job',
|
|
95
|
-
name: name,
|
|
90
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
96
91
|
builder: jobBuilder,
|
|
97
92
|
isInline: true,
|
|
98
93
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
99
94
|
dependencies: [] // This is added later by Treeshake.*()
|
|
100
95
|
}));
|
|
101
|
-
this._jobs.create = new dependency_1
|
|
96
|
+
this._jobs.create = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
|
|
102
97
|
return this;
|
|
103
98
|
}
|
|
104
99
|
update($) {
|
|
105
100
|
const name = `${this.name}.update`;
|
|
106
101
|
const alias = `Update ${this._alias || this.name}`;
|
|
107
|
-
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.
|
|
102
|
+
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'update', alias, resource_1.Resource.update, [...this._auth], {
|
|
108
103
|
id: ['string_or_number', undefined, true]
|
|
109
104
|
})
|
|
110
105
|
.prepare(resource_job_1.ResourceJob.prepareMsgData);
|
|
111
106
|
$(jobBuilder);
|
|
112
107
|
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
113
|
-
|
|
114
|
-
type: 'job',
|
|
115
|
-
name: name,
|
|
108
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
116
109
|
builder: jobBuilder,
|
|
117
110
|
isInline: true,
|
|
118
111
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
119
112
|
dependencies: [] // This is added later by Treeshake.*()
|
|
120
113
|
}));
|
|
121
|
-
this._jobs.update = new dependency_1
|
|
114
|
+
this._jobs.update = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
|
|
122
115
|
return this;
|
|
123
116
|
}
|
|
124
117
|
delete($) {
|
|
125
118
|
const name = `${this.name}.delete`;
|
|
126
119
|
const alias = `Delete ${this._alias || this.name}`;
|
|
127
|
-
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.
|
|
120
|
+
const jobBuilder = new resource_job_builder_1.ResourceJobBuilder(this.module, name, this._bucket.tag.short, 'delete', alias, resource_1.Resource.delete, [...this._auth], {
|
|
128
121
|
id: ['string_or_number', undefined, true]
|
|
129
122
|
})
|
|
130
123
|
.prepare(resource_job_1.ResourceJob.prepareTrue);
|
|
131
124
|
$(jobBuilder);
|
|
132
125
|
this._inlineNodes.push(new dependency_1.BuilderNode({
|
|
133
|
-
|
|
134
|
-
type: 'job',
|
|
135
|
-
name: name,
|
|
126
|
+
tag: new dependency_1.Tag(this.module, 'job', name),
|
|
136
127
|
builder: jobBuilder,
|
|
137
128
|
isInline: true,
|
|
138
129
|
filepath: [], // This is added later by Treeshake.blockInlineNodes()
|
|
139
130
|
dependencies: [] // This is added later by Treeshake.*()
|
|
140
131
|
}));
|
|
141
|
-
this._jobs.delete = new dependency_1
|
|
132
|
+
this._jobs.delete = new dependency_1.Dependency(this.module, new dependency_1.Tag(this.module, 'job', name), { runtime: true });
|
|
142
133
|
return this;
|
|
143
134
|
}
|
|
144
135
|
// Build
|
|
145
136
|
static build(node, tree, module) {
|
|
146
|
-
const bucket =
|
|
137
|
+
const bucket = dependency_1.Tag.resolve(node.builder._bucket.tag, tree);
|
|
147
138
|
if (!bucket) {
|
|
148
|
-
throw error_1.NesoiError.Builder.Resource.BucketNotFound(node.builder.name, node.builder._bucket.
|
|
139
|
+
throw error_1.NesoiError.Builder.Resource.BucketNotFound(node.builder.name, node.builder._bucket.tag.short);
|
|
149
140
|
}
|
|
150
141
|
const model = bucket.model;
|
|
151
142
|
const modelName = name_helpers_1.NameHelpers.nameLowToHigh(bucket.name);
|
|
@@ -155,7 +146,7 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
155
146
|
// view
|
|
156
147
|
const viewDep = node.builder._jobs.view;
|
|
157
148
|
if (viewDep) {
|
|
158
|
-
inlineJobsConfig[viewDep.name] = {
|
|
149
|
+
inlineJobsConfig[viewDep.tag.name] = {
|
|
159
150
|
ResourceJob: {
|
|
160
151
|
output: { raw: modelName + ' | ' + modelName + '[]' },
|
|
161
152
|
defaultTrigger: undefined
|
|
@@ -165,7 +156,7 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
165
156
|
// query
|
|
166
157
|
const queryDep = node.builder._jobs.query;
|
|
167
158
|
if (queryDep) {
|
|
168
|
-
inlineJobsConfig[queryDep.name] = {
|
|
159
|
+
inlineJobsConfig[queryDep.tag.name] = {
|
|
169
160
|
ResourceJob: {
|
|
170
161
|
idType: null,
|
|
171
162
|
output: { raw: modelName + '[]' },
|
|
@@ -176,8 +167,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
176
167
|
// create
|
|
177
168
|
const createDep = node.builder._jobs.create;
|
|
178
169
|
if (createDep) {
|
|
179
|
-
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, createDep.name, `Create ${node.builder._alias || node.builder.name}`, [], [], ['id']);
|
|
180
|
-
inlineJobsConfig[createDep.name] = {
|
|
170
|
+
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, createDep.tag.name, `Create ${node.builder._alias || node.builder.name}`, [], [], ['id']);
|
|
171
|
+
inlineJobsConfig[createDep.tag.name] = {
|
|
181
172
|
ResourceJob: {
|
|
182
173
|
idType: null,
|
|
183
174
|
output: { raw: modelName },
|
|
@@ -188,8 +179,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
188
179
|
// update
|
|
189
180
|
const updateDep = node.builder._jobs.update;
|
|
190
181
|
if (updateDep) {
|
|
191
|
-
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, updateDep.name, `Update ${node.builder._alias || node.builder.name}`, [], []);
|
|
192
|
-
inlineJobsConfig[updateDep.name] = {
|
|
182
|
+
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, updateDep.tag.name, `Update ${node.builder._alias || node.builder.name}`, [], []);
|
|
183
|
+
inlineJobsConfig[updateDep.tag.name] = {
|
|
193
184
|
ResourceJob: {
|
|
194
185
|
idType: model.fields.id.type,
|
|
195
186
|
output: { raw: modelName },
|
|
@@ -200,8 +191,8 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
200
191
|
// delete
|
|
201
192
|
const deleteDep = node.builder._jobs.delete;
|
|
202
193
|
if (deleteDep) {
|
|
203
|
-
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, deleteDep.name, `Delete ${node.builder._alias || node.builder.name}`, ['id'], []);
|
|
204
|
-
inlineJobsConfig[deleteDep.name] = {
|
|
194
|
+
const defaultTrigger = (0, bucket_model_convert_1.convertToMessage)(module.name, model, deleteDep.tag.name, `Delete ${node.builder._alias || node.builder.name}`, ['id'], []);
|
|
195
|
+
inlineJobsConfig[deleteDep.tag.name] = {
|
|
205
196
|
ResourceJob: {
|
|
206
197
|
idType: model.fields.id.type,
|
|
207
198
|
output: { raw: 'void' },
|
|
@@ -209,7 +200,13 @@ class ResourceBuilder extends block_builder_1.BlockBuilder {
|
|
|
209
200
|
}
|
|
210
201
|
};
|
|
211
202
|
}
|
|
212
|
-
node.schema = new resource_schema_1.$Resource(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder.
|
|
203
|
+
node.schema = new resource_schema_1.$Resource(node.builder.module, node.builder.name, node.builder._alias || node.builder.name, node.builder._auth, node.builder._bucket.tag, {
|
|
204
|
+
view: node.builder._jobs.view?.tag,
|
|
205
|
+
query: node.builder._jobs.query?.tag,
|
|
206
|
+
create: node.builder._jobs.create?.tag,
|
|
207
|
+
update: node.builder._jobs.update?.tag,
|
|
208
|
+
delete: node.builder._jobs.delete?.tag,
|
|
209
|
+
});
|
|
213
210
|
const jobs = job_builder_1.JobBuilder.buildInlines(node, tree, module, inlineJobsConfig);
|
|
214
211
|
return {
|
|
215
212
|
schema: node.schema,
|
|
@@ -5,7 +5,7 @@ import { NesoiObj } from "../../../engine/data/obj";
|
|
|
5
5
|
import { AnyMessage } from "../../entities/message/message";
|
|
6
6
|
import { Module } from "../../../engine/module";
|
|
7
7
|
import { AnyTrxNode, TrxNode } from "../../../engine/transaction/trx_node";
|
|
8
|
-
import {
|
|
8
|
+
import { Tag } from "../../../engine/dependency";
|
|
9
9
|
import { ResourceAssertions } from '../job/internal/resource_job.builder';
|
|
10
10
|
import { $Job } from '../job/job.schema';
|
|
11
11
|
/**
|
|
@@ -47,7 +47,7 @@ export declare class Resource<S extends $Space, M extends $Module, $ extends $Re
|
|
|
47
47
|
obj: any;
|
|
48
48
|
job: $Job;
|
|
49
49
|
}): Promise<void>;
|
|
50
|
-
static assertThat(trx: AnyTrxNode, bucket:
|
|
50
|
+
static assertThat(trx: AnyTrxNode, bucket: Tag, obj: NesoiObj | undefined, type: keyof ResourceAssertions<any>, arg: any): {
|
|
51
51
|
else: (error: string) => Promise<string | true>;
|
|
52
52
|
};
|
|
53
53
|
}
|
|
@@ -35,28 +35,19 @@ class Resource extends block_1.Block {
|
|
|
35
35
|
if (!this.schema.jobs.view) {
|
|
36
36
|
throw error_1.NesoiError.Resource.ViewNotSupported(this.schema);
|
|
37
37
|
}
|
|
38
|
-
return trx.job(this.schema.jobs.view.
|
|
38
|
+
return trx.job(this.schema.jobs.view.short).forward(msg);
|
|
39
39
|
}
|
|
40
40
|
async query(trx, msg) {
|
|
41
|
-
// const q = $BucketQuery.parse(msg.query);
|
|
42
|
-
// const node = trx.bucket(this.schema.bucket.refName).query(msg.view, q);
|
|
43
|
-
// if (msg.orderBy) {
|
|
44
|
-
// node.orderBy(msg.orderBy as keyof NesoiObj, msg.orderDesc ? 'desc' : 'asc');
|
|
45
|
-
// }
|
|
46
|
-
// return node.page({
|
|
47
|
-
// perPage: msg.perPage,
|
|
48
|
-
// page: msg.page
|
|
49
|
-
// });
|
|
50
41
|
if (!this.schema.jobs.query) {
|
|
51
42
|
throw error_1.NesoiError.Resource.QueryNotSupported(this.schema);
|
|
52
43
|
}
|
|
53
|
-
return trx.job(this.schema.jobs.query.
|
|
44
|
+
return trx.job(this.schema.jobs.query.short).forward(msg);
|
|
54
45
|
}
|
|
55
46
|
async create(trx, msg) {
|
|
56
47
|
if (!this.schema.jobs.create) {
|
|
57
48
|
throw error_1.NesoiError.Resource.CreateNotSupported(this.schema);
|
|
58
49
|
}
|
|
59
|
-
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.create.
|
|
50
|
+
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.create.short, {
|
|
60
51
|
that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, undefined, type, arg)
|
|
61
52
|
}).forward(msg);
|
|
62
53
|
}
|
|
@@ -64,8 +55,8 @@ class Resource extends block_1.Block {
|
|
|
64
55
|
if (!this.schema.jobs.update) {
|
|
65
56
|
throw error_1.NesoiError.Resource.UpdateNotSupported(this.schema);
|
|
66
57
|
}
|
|
67
|
-
const obj = await trx.bucket(this.schema.bucket.
|
|
68
|
-
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.update.
|
|
58
|
+
const obj = await trx.bucket(this.schema.bucket.short).readOneOrFail(msg.id);
|
|
59
|
+
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.update.short, {
|
|
69
60
|
that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
|
|
70
61
|
obj,
|
|
71
62
|
})
|
|
@@ -75,13 +66,14 @@ class Resource extends block_1.Block {
|
|
|
75
66
|
if (!this.schema.jobs.delete) {
|
|
76
67
|
throw error_1.NesoiError.Resource.DeleteNotSupported(this.schema);
|
|
77
68
|
}
|
|
78
|
-
const obj = await trx.bucket(this.schema.bucket.
|
|
79
|
-
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.delete.
|
|
69
|
+
const obj = await trx.bucket(this.schema.bucket.short).readOneOrFail(msg.id);
|
|
70
|
+
return trx_node_1.TrxNode.jobWithCustomCtx(trx, this.schema.jobs.delete.short, {
|
|
80
71
|
that: (type, arg) => Resource.assertThat(trx, this.schema.bucket, obj, type, arg),
|
|
81
72
|
obj,
|
|
82
73
|
})
|
|
83
74
|
.forward(msg);
|
|
84
75
|
}
|
|
76
|
+
/* Implementations */
|
|
85
77
|
static view($) {
|
|
86
78
|
const scope = $.job.scope;
|
|
87
79
|
return $.msg.id
|
|
@@ -118,7 +110,7 @@ class Resource extends block_1.Block {
|
|
|
118
110
|
else: async (error) => {
|
|
119
111
|
let out = false;
|
|
120
112
|
if (type === 'query is empty') {
|
|
121
|
-
out = !(await trx.bucket(bucket.
|
|
113
|
+
out = !(await trx.bucket(bucket.short)
|
|
122
114
|
.query(arg)
|
|
123
115
|
.params(obj)
|
|
124
116
|
.first());
|
|
@@ -127,7 +119,7 @@ class Resource extends block_1.Block {
|
|
|
127
119
|
if (!obj)
|
|
128
120
|
out = true;
|
|
129
121
|
else {
|
|
130
|
-
out = !(await trx.bucket(bucket.
|
|
122
|
+
out = !(await trx.bucket(bucket.short)
|
|
131
123
|
.hasLink(obj.id, arg));
|
|
132
124
|
}
|
|
133
125
|
}
|