nesoi 3.0.8 → 3.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +1 -1
- package/lib/compiler/apps/monolyth/monolyth_compiler.js +7 -7
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +3 -0
- package/lib/compiler/elements/externals.element.d.ts +1 -1
- package/lib/compiler/module.js +1 -1
- package/lib/compiler/stages/1_scan_stage.d.ts +3 -0
- package/lib/compiler/stages/1_scan_stage.js +3 -0
- package/lib/compiler/stages/2_treeshake_stage.d.ts +3 -0
- package/lib/compiler/stages/2_treeshake_stage.js +3 -0
- package/lib/compiler/stages/3_extract_ts_stage.d.ts +3 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +3 -0
- package/lib/compiler/stages/4_build_schemas_stage.d.ts +3 -0
- package/lib/compiler/stages/4_build_schemas_stage.js +3 -0
- package/lib/compiler/stages/5_inject_ts_stage.d.ts +3 -0
- package/lib/compiler/stages/5_inject_ts_stage.js +3 -0
- package/lib/compiler/stages/6_build_elements_stage.d.ts +3 -0
- package/lib/compiler/stages/6_build_elements_stage.js +3 -0
- package/lib/compiler/stages/7_dump_stage.d.ts +3 -0
- package/lib/compiler/stages/7_dump_stage.js +3 -0
- package/lib/compiler/stages/8_diagnose_stage.d.ts +3 -0
- package/lib/compiler/stages/8_diagnose_stage.js +3 -0
- package/lib/compiler/treeshake.js +3 -3
- package/lib/elements/blocks/block.builder.d.ts +6 -2
- package/lib/elements/blocks/block.builder.js +8 -4
- package/lib/elements/blocks/block.schema.d.ts +4 -0
- package/lib/elements/blocks/block.schema.js +4 -0
- package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
- package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
- package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
- package/lib/elements/blocks/job/job.builder.d.ts +4 -0
- package/lib/elements/blocks/job/job.builder.js +4 -0
- package/lib/elements/blocks/job/job.d.ts +4 -0
- package/lib/elements/blocks/job/job.js +4 -0
- package/lib/elements/blocks/job/job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/job.schema.js +4 -0
- package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine.builder.js +16 -1
- package/lib/elements/blocks/machine/machine.d.ts +12 -0
- package/lib/elements/blocks/machine/machine.js +12 -0
- package/lib/elements/blocks/machine/machine.schema.d.ts +18 -1
- package/lib/elements/blocks/machine/machine.schema.js +18 -2
- package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
- package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
- package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
- package/lib/elements/blocks/queue/queue.builder.js +4 -0
- package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
- package/lib/elements/blocks/queue/queue.schema.js +4 -0
- package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.builder.js +4 -0
- package/lib/elements/blocks/resource/resource.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.js +4 -0
- package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.schema.js +4 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +7 -1
- package/lib/elements/edge/controller/adapters/controller_adapter.js +6 -1
- package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
- package/lib/elements/edge/controller/controller.builder.js +16 -0
- package/lib/elements/edge/controller/controller.config.d.ts +3 -2
- package/lib/elements/edge/controller/controller.d.ts +7 -3
- package/lib/elements/edge/controller/controller.js +7 -3
- package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
- package/lib/elements/edge/controller/controller.schema.js +16 -0
- package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
- package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +18 -12
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
- package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
- package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/bucket.builder.js +4 -0
- package/lib/elements/entities/bucket/bucket.config.d.ts +3 -3
- package/lib/elements/entities/bucket/bucket.d.ts +12 -4
- package/lib/elements/entities/bucket/bucket.js +18 -11
- package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
- package/lib/elements/entities/bucket/bucket.schema.js +4 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
- package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
- package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
- package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
- package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
- package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
- package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
- package/lib/elements/entities/constants/constants.builder.js +21 -6
- package/lib/elements/entities/constants/constants.d.ts +4 -0
- package/lib/elements/entities/constants/constants.js +4 -0
- package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
- package/lib/elements/entities/constants/constants.schema.js +16 -0
- package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
- package/lib/elements/entities/drive/drive_adapter.js +5 -2
- package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
- package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
- package/lib/elements/entities/message/message.builder.d.ts +4 -0
- package/lib/elements/entities/message/message.builder.js +4 -0
- package/lib/elements/entities/message/message.d.ts +4 -0
- package/lib/elements/entities/message/message.js +4 -0
- package/lib/elements/entities/message/message.schema.d.ts +4 -0
- package/lib/elements/entities/message/message.schema.js +4 -0
- package/lib/elements/entities/message/message_parser.d.ts +4 -0
- package/lib/elements/entities/message/message_parser.js +4 -0
- package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
- package/lib/elements/entities/message/template/message_template.builder.js +4 -0
- package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
- package/lib/elements/entities/message/template/message_template.schema.js +25 -0
- package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
- package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
- package/lib/elements/index.d.ts +1 -1
- package/lib/elements/index.js +1 -1
- package/lib/engine/apps/app.config.d.ts +15 -11
- package/lib/engine/apps/app.config.js +3 -0
- package/lib/engine/apps/app.d.ts +12 -20
- package/lib/engine/apps/app.js +13 -10
- package/lib/engine/apps/inline.app.d.ts +12 -8
- package/lib/engine/apps/inline.app.js +27 -24
- package/lib/engine/apps/monolyth/monolyth.app.d.ts +13 -5
- package/lib/engine/apps/monolyth/monolyth.app.js +14 -6
- package/lib/engine/apps/service.d.ts +30 -0
- package/lib/engine/apps/service.js +15 -0
- package/lib/engine/auth/authn.d.ts +14 -1
- package/lib/engine/auth/authn.js +4 -0
- package/lib/engine/auth/zero.authn_provider.d.ts +11 -3
- package/lib/engine/auth/zero.authn_provider.js +13 -2
- package/lib/engine/cli/cli.d.ts +8 -2
- package/lib/engine/cli/cli.js +10 -1
- package/lib/engine/cli/cli_adapter.d.ts +11 -1
- package/lib/engine/cli/cli_adapter.js +10 -1
- package/lib/engine/cli/cli_input.d.ts +4 -0
- package/lib/engine/cli/cli_input.js +4 -0
- package/lib/engine/cli/ui.d.ts +14 -2
- package/lib/engine/cli/ui.js +10 -6
- package/lib/engine/daemon.d.ts +96 -9
- package/lib/engine/daemon.js +101 -18
- package/lib/engine/data/date.d.ts +4 -0
- package/lib/engine/data/date.js +4 -0
- package/lib/engine/data/datetime.d.ts +4 -0
- package/lib/engine/data/datetime.js +4 -0
- package/lib/engine/data/decimal.d.ts +4 -0
- package/lib/engine/data/decimal.js +4 -0
- package/lib/engine/data/file.d.ts +23 -23
- package/lib/engine/data/file.js +66 -29
- package/lib/engine/data/json.d.ts +4 -0
- package/lib/engine/data/json.js +4 -0
- package/lib/engine/data/tree.d.ts +4 -0
- package/lib/engine/data/tree.js +4 -0
- package/lib/engine/dependency.d.ts +65 -3
- package/lib/engine/dependency.js +70 -0
- package/lib/engine/module.d.ts +110 -8
- package/lib/engine/module.js +131 -31
- package/lib/engine/space.d.ts +163 -10
- package/lib/engine/space.js +184 -22
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
- package/lib/engine/transaction/nodes/bucket.trx_node.js +13 -2
- package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +9 -10
- package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +6 -4
- package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +6 -4
- package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +5 -2
- package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +6 -4
- package/lib/engine/transaction/trx.d.ts +14 -4
- package/lib/engine/transaction/trx.js +10 -1
- package/lib/engine/transaction/trx_engine.config.d.ts +2 -2
- package/lib/engine/transaction/trx_engine.d.ts +8 -3
- package/lib/engine/transaction/trx_engine.js +24 -20
- package/lib/engine/transaction/trx_node.d.ts +8 -2
- package/lib/engine/transaction/trx_node.js +17 -1
- package/lib/engine/tree.d.ts +54 -2
- package/lib/engine/tree.js +60 -19
- package/lib/engine/util/mime.d.ts +4 -4
- package/lib/engine/util/mime.js +7 -9
- package/lib/schema.d.ts +2 -2
- package/package.json +2 -3
- package/tools/joaquin/job.js +2 -2
- package/tools/joaquin/message.js +2 -2
- package/tools/joaquin/mock.d.ts +6 -6
- package/tsconfig.build.tsbuildinfo +1 -1
- package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
- package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
- package/lib/adapters/postgres/src/migrator/csv.d.ts +0 -7
- package/lib/adapters/postgres/src/migrator/csv.js +0 -72
- package/lib/adapters/postgres/src/migrator/database.d.ts +0 -37
- package/lib/adapters/postgres/src/migrator/database.js +0 -88
- package/lib/adapters/postgres/src/migrator/index.d.ts +0 -1
- package/lib/adapters/postgres/src/migrator/index.js +0 -5
- package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
- package/lib/adapters/postgres/src/migrator/migration.js +0 -203
- package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
- package/lib/adapters/postgres/src/migrator/migrator.js +0 -76
- package/lib/adapters/postgres/src/migrator/runner.d.ts +0 -71
- package/lib/adapters/postgres/src/migrator/runner.js +0 -271
- package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +0 -42
- package/lib/adapters/postgres/src/postgres.bucket_adapter.js +0 -294
- package/lib/adapters/postgres/src/postgres.cli.d.ts +0 -66
- package/lib/adapters/postgres/src/postgres.cli.js +0 -184
- package/lib/adapters/postgres/src/postgres.config.d.ts +0 -5
- package/lib/adapters/postgres/src/postgres.config.js +0 -2
- package/lib/adapters/postgres/src/postgres.nql.d.ts +0 -16
- package/lib/adapters/postgres/src/postgres.nql.js +0 -123
- package/lib/adapters/postgres/src/postgres.provider.d.ts +0 -18
- package/lib/adapters/postgres/src/postgres.provider.js +0 -77
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.d.ts +0 -1
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +0 -210
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
- package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
- package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
- package/lib/engine/util/cache.d.ts +0 -6
- package/lib/engine/util/cache.js +0 -20
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BuilderType } from "../schema";
|
|
1
|
+
import { $Module, BuilderType } from "../schema";
|
|
2
2
|
import { AnyBuilder, AnyElementSchema } from './module';
|
|
3
3
|
import { Overlay } from './util/type';
|
|
4
4
|
import { JobBuilderNode } from "../elements/blocks/job/job.builder";
|
|
@@ -6,28 +6,87 @@ import { MessageBuilderNode } from "../elements/entities/message/message.builder
|
|
|
6
6
|
import { ResourceJobBuilderNode } from "../elements/blocks/job/internal/resource_job.builder";
|
|
7
7
|
import { BucketFnExtract, JobFnExtract, MachineFnExtract, MessageFnExtract } from "../compiler/typescript/bridge/organize";
|
|
8
8
|
import { MachineJobBuilderNode } from "../elements/blocks/job/internal/machine_job.builder";
|
|
9
|
+
/**
|
|
10
|
+
* Utility class for parsing element `tags`.
|
|
11
|
+
*
|
|
12
|
+
* A `tag` is a string which references an element
|
|
13
|
+
* on the `Space`, following one of the formats below:
|
|
14
|
+
* ```
|
|
15
|
+
* module::type:name
|
|
16
|
+
* module::name
|
|
17
|
+
* type:name
|
|
18
|
+
* name
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @category Engine
|
|
22
|
+
*/
|
|
9
23
|
export declare class $Tag {
|
|
24
|
+
/**
|
|
25
|
+
* Parse `module?`, `type?` and `name` from a tag string.
|
|
26
|
+
*
|
|
27
|
+
* @param tag A tag string
|
|
28
|
+
* @returns An object containing the parsed tag info or `undefined`
|
|
29
|
+
* if it's an invalid tag.
|
|
30
|
+
*/
|
|
10
31
|
static parse(tag: string): {
|
|
11
32
|
module: string | undefined;
|
|
12
33
|
type: string | undefined;
|
|
13
34
|
name: string;
|
|
14
35
|
} | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Parse `module?`, `type?` and `name` from a tag string.
|
|
38
|
+
*
|
|
39
|
+
* @param tag A tag string
|
|
40
|
+
* @returns An object containing the parsed tag info
|
|
41
|
+
* @throws If it's an invalid tag
|
|
42
|
+
*/
|
|
15
43
|
static parseOrFail(tag: string): {
|
|
16
|
-
module: string;
|
|
17
|
-
type: string;
|
|
44
|
+
module: string | undefined;
|
|
45
|
+
type: string | undefined;
|
|
18
46
|
name: string;
|
|
19
47
|
};
|
|
20
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* A reference for an element, declared from another element.
|
|
51
|
+
*
|
|
52
|
+
* @category Engine
|
|
53
|
+
*/
|
|
21
54
|
export declare class $Dependency {
|
|
55
|
+
/** Low name of the module*/
|
|
22
56
|
module: string;
|
|
57
|
+
/** Type of node */
|
|
23
58
|
type: BuilderType;
|
|
59
|
+
/** Low name of the node */
|
|
24
60
|
name: string;
|
|
61
|
+
/** `module::type:name` */
|
|
25
62
|
tag: string;
|
|
63
|
+
/** `name` if dependency is local, `module::name` if is external */
|
|
26
64
|
refName: string;
|
|
65
|
+
/** If true, this dependency doesn't affect build order */
|
|
27
66
|
soft: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* @param fromModule Name of module which uses this dependency
|
|
69
|
+
* @param type Type of referenced element
|
|
70
|
+
* @param name Name of referenced element
|
|
71
|
+
* @param soft True if this doesn't affect build order
|
|
72
|
+
*/
|
|
28
73
|
constructor(fromModule: string, type: BuilderType, name: string, soft?: boolean);
|
|
74
|
+
/**
|
|
75
|
+
* Return the type name (UpperCamel) of the element
|
|
76
|
+
* referenced by a dependency.
|
|
77
|
+
*
|
|
78
|
+
* @param dep A `$Dependency` instance
|
|
79
|
+
* @param fromModule Name of dependant module
|
|
80
|
+
* @returns The type name of the dependency
|
|
81
|
+
*/
|
|
29
82
|
static typeName(dep: $Dependency, fromModule: string): string;
|
|
83
|
+
static resolve(module: $Module, dep: $Dependency): import("../elements").$Message | import("../elements").$Machine | import("../elements").$Bucket | import("../elements").$Constants | import("../elements").$Job | import("../elements").$Externals | import("../elements").$Resource | import("../elements").$Controller | undefined;
|
|
30
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* A element builder, along with metadata required for building it.
|
|
87
|
+
*
|
|
88
|
+
* @category Engine
|
|
89
|
+
*/
|
|
31
90
|
export declare class BuilderNode {
|
|
32
91
|
module: string;
|
|
33
92
|
type: BuilderType;
|
|
@@ -47,6 +106,9 @@ export declare class BuilderNode {
|
|
|
47
106
|
builder: AnyBuilder;
|
|
48
107
|
});
|
|
49
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* A builder node with the dependencies resolved to references to other nodes.
|
|
111
|
+
*/
|
|
50
112
|
export type ResolvedBuilderNode = Overlay<BuilderNode, {
|
|
51
113
|
_dependencies?: ResolvedBuilderNode[];
|
|
52
114
|
dependencies: {
|
package/lib/engine/dependency.js
CHANGED
|
@@ -2,7 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BuilderNode = exports.$Dependency = exports.$Tag = void 0;
|
|
4
4
|
const name_helpers_1 = require("../compiler/helpers/name_helpers");
|
|
5
|
+
/**
|
|
6
|
+
* Utility class for parsing element `tags`.
|
|
7
|
+
*
|
|
8
|
+
* A `tag` is a string which references an element
|
|
9
|
+
* on the `Space`, following one of the formats below:
|
|
10
|
+
* ```
|
|
11
|
+
* module::type:name
|
|
12
|
+
* module::name
|
|
13
|
+
* type:name
|
|
14
|
+
* name
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @category Engine
|
|
18
|
+
*/
|
|
5
19
|
class $Tag {
|
|
20
|
+
/**
|
|
21
|
+
* Parse `module?`, `type?` and `name` from a tag string.
|
|
22
|
+
*
|
|
23
|
+
* @param tag A tag string
|
|
24
|
+
* @returns An object containing the parsed tag info or `undefined`
|
|
25
|
+
* if it's an invalid tag.
|
|
26
|
+
*/
|
|
6
27
|
static parse(tag) {
|
|
7
28
|
const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
|
|
8
29
|
const module = match?.[1]?.slice(0, -2);
|
|
@@ -17,6 +38,13 @@ class $Tag {
|
|
|
17
38
|
}
|
|
18
39
|
return { module, type, name };
|
|
19
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Parse `module?`, `type?` and `name` from a tag string.
|
|
43
|
+
*
|
|
44
|
+
* @param tag A tag string
|
|
45
|
+
* @returns An object containing the parsed tag info
|
|
46
|
+
* @throws If it's an invalid tag
|
|
47
|
+
*/
|
|
20
48
|
static parseOrFail(tag) {
|
|
21
49
|
const match = tag.match(/(.\w*?::)?(\w*?:)?(.*)/);
|
|
22
50
|
if (!match) {
|
|
@@ -41,7 +69,18 @@ class $Tag {
|
|
|
41
69
|
}
|
|
42
70
|
}
|
|
43
71
|
exports.$Tag = $Tag;
|
|
72
|
+
/**
|
|
73
|
+
* A reference for an element, declared from another element.
|
|
74
|
+
*
|
|
75
|
+
* @category Engine
|
|
76
|
+
*/
|
|
44
77
|
class $Dependency {
|
|
78
|
+
/**
|
|
79
|
+
* @param fromModule Name of module which uses this dependency
|
|
80
|
+
* @param type Type of referenced element
|
|
81
|
+
* @param name Name of referenced element
|
|
82
|
+
* @param soft True if this doesn't affect build order
|
|
83
|
+
*/
|
|
45
84
|
constructor(fromModule, type, name, soft = false) {
|
|
46
85
|
this.type = type;
|
|
47
86
|
this.soft = soft;
|
|
@@ -61,6 +100,14 @@ class $Dependency {
|
|
|
61
100
|
this.refName = `${this.module}::${this.name}`;
|
|
62
101
|
}
|
|
63
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Return the type name (UpperCamel) of the element
|
|
105
|
+
* referenced by a dependency.
|
|
106
|
+
*
|
|
107
|
+
* @param dep A `$Dependency` instance
|
|
108
|
+
* @param fromModule Name of dependant module
|
|
109
|
+
* @returns The type name of the dependency
|
|
110
|
+
*/
|
|
64
111
|
static typeName(dep, fromModule) {
|
|
65
112
|
if (dep.module !== fromModule) {
|
|
66
113
|
const moduleHigh = name_helpers_1.NameHelpers.nameLowToHigh(dep.module);
|
|
@@ -74,8 +121,31 @@ class $Dependency {
|
|
|
74
121
|
.type;
|
|
75
122
|
}
|
|
76
123
|
}
|
|
124
|
+
static resolve(module, dep) {
|
|
125
|
+
if (dep.type === 'constants')
|
|
126
|
+
return module.constants;
|
|
127
|
+
if (dep.type === 'externals')
|
|
128
|
+
return module.externals;
|
|
129
|
+
if (dep.type === 'bucket')
|
|
130
|
+
return module.buckets[dep.name];
|
|
131
|
+
if (dep.type === 'message')
|
|
132
|
+
return module.messages[dep.name];
|
|
133
|
+
if (dep.type === 'job')
|
|
134
|
+
return module.jobs[dep.name];
|
|
135
|
+
if (dep.type === 'resource')
|
|
136
|
+
return module.resources[dep.name];
|
|
137
|
+
if (dep.type === 'machine')
|
|
138
|
+
return module.machines[dep.name];
|
|
139
|
+
if (dep.type === 'controller')
|
|
140
|
+
return module.controllers[dep.name];
|
|
141
|
+
}
|
|
77
142
|
}
|
|
78
143
|
exports.$Dependency = $Dependency;
|
|
144
|
+
/**
|
|
145
|
+
* A element builder, along with metadata required for building it.
|
|
146
|
+
*
|
|
147
|
+
* @category Engine
|
|
148
|
+
*/
|
|
79
149
|
class BuilderNode {
|
|
80
150
|
constructor($) {
|
|
81
151
|
this.module = $.module;
|
package/lib/engine/module.d.ts
CHANGED
|
@@ -15,8 +15,8 @@ import { Bucket } from "../elements/entities/bucket/bucket";
|
|
|
15
15
|
import { $Constants } from "../elements/entities/constants/constants.schema";
|
|
16
16
|
import { ConstantsBuilder } from "../elements/entities/constants/constants.builder";
|
|
17
17
|
import { AnyControllerBuilder } from "../elements/edge/controller/controller.builder";
|
|
18
|
-
import { AnyExternalsBuilder } from "../elements/
|
|
19
|
-
import { $Externals } from "../elements/
|
|
18
|
+
import { AnyExternalsBuilder } from "../elements/edge/externals/externals.builder";
|
|
19
|
+
import { $Externals } from "../elements/edge/externals/externals.schema";
|
|
20
20
|
import { $Dependency, ResolvedBuilderNode } from './dependency';
|
|
21
21
|
import { $Bucket } from "../elements/entities/bucket/bucket.schema";
|
|
22
22
|
import { $Resource } from "../elements/blocks/resource/resource.schema";
|
|
@@ -26,6 +26,7 @@ import { $Job } from "../elements/blocks/job/job.schema";
|
|
|
26
26
|
import { ModuleTree } from './tree';
|
|
27
27
|
import { AnyResourceJobBuilder } from "../elements/blocks/job/internal/resource_job.builder";
|
|
28
28
|
import { AnyApp } from './apps/app';
|
|
29
|
+
import { AnyService } from './apps/service';
|
|
29
30
|
import { AnyMachineJobBuilder } from "../elements/blocks/job/internal/machine_job.builder";
|
|
30
31
|
import { AnyQueueBuilder } from "../elements/blocks/queue/queue.builder";
|
|
31
32
|
import { $Queue } from "../elements/blocks/queue/queue.schema";
|
|
@@ -46,6 +47,20 @@ export type VirtualModuleDef = {
|
|
|
46
47
|
jobs?: $Dependency[];
|
|
47
48
|
};
|
|
48
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* A `Module` is an isolated named collection of _Elements_.
|
|
52
|
+
*
|
|
53
|
+
* Modules should be designed to work in isolation as much as possible.
|
|
54
|
+
* When declaring external dependencies, these can be injected into the
|
|
55
|
+
* module or linked externally through REST or other means.
|
|
56
|
+
*
|
|
57
|
+
* Each `Module` has a _Transaction Engine_, which keeps track of
|
|
58
|
+
* transactions performed with the Module elements.
|
|
59
|
+
* Transactions can be shared between engines, to allow for a tracking
|
|
60
|
+
* of distributed applications.
|
|
61
|
+
*
|
|
62
|
+
* @category Engine
|
|
63
|
+
*/
|
|
49
64
|
export declare class Module<S extends $Space, $ extends $Module> {
|
|
50
65
|
name: string;
|
|
51
66
|
schema: $;
|
|
@@ -56,19 +71,48 @@ export declare class Module<S extends $Space, $ extends $Module> {
|
|
|
56
71
|
machines: { [B in keyof $["machines"]]: Machine<S, $, $["machines"][B]>; };
|
|
57
72
|
queues: { [B in keyof $["queues"]]: Queue<$, $["queues"][B]>; };
|
|
58
73
|
controllers: { [B in keyof $["controllers"]]: Controller<S, $, $["controllers"][B]>; };
|
|
74
|
+
/**
|
|
75
|
+
* Daemon which is running the current module.
|
|
76
|
+
* This is `undefined` when the _Module_ is created for compiling.
|
|
77
|
+
*/
|
|
59
78
|
daemon?: AnyDaemon;
|
|
79
|
+
/**
|
|
80
|
+
* NQL (Nesoi Query Language) Engine for this module.
|
|
81
|
+
*/
|
|
60
82
|
nql: NQL_Engine;
|
|
83
|
+
/**
|
|
84
|
+
* The boot source for this module:
|
|
85
|
+
* - `dirpath`: This module is being run from a Space (Framework mode), so
|
|
86
|
+
* source is the module directory, from which builders will be read
|
|
87
|
+
* - `builders`: This module is being run in Library mode, so source is
|
|
88
|
+
* a list of builders
|
|
89
|
+
*/
|
|
61
90
|
boot?: {
|
|
62
|
-
|
|
91
|
+
dirpath: string;
|
|
63
92
|
} | {
|
|
64
93
|
builders: AnyBuilder[];
|
|
65
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* @param name A module name
|
|
97
|
+
* @param boot The boot source for this module
|
|
98
|
+
*/
|
|
66
99
|
constructor(name: string, boot?: {
|
|
67
|
-
|
|
100
|
+
dirpath: string;
|
|
68
101
|
} | {
|
|
69
102
|
builders: AnyBuilder[];
|
|
70
103
|
});
|
|
104
|
+
/**
|
|
105
|
+
* Log the module elements
|
|
106
|
+
*/
|
|
71
107
|
info(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Inject element schemas into the module.
|
|
110
|
+
* This is used on the compiled version of the `App`, which has
|
|
111
|
+
* the schemas pre-built, so it directly injects them.
|
|
112
|
+
*
|
|
113
|
+
* @param schemas A dictionary of schema(s) by element type
|
|
114
|
+
* @returns The `Module`, for call-chaining
|
|
115
|
+
*/
|
|
72
116
|
inject(schemas: {
|
|
73
117
|
externals?: $Externals;
|
|
74
118
|
constants?: $Constants;
|
|
@@ -80,19 +124,77 @@ export declare class Module<S extends $Space, $ extends $Module> {
|
|
|
80
124
|
queues?: $Queue[];
|
|
81
125
|
controllers?: $Controller[];
|
|
82
126
|
}): this;
|
|
83
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Include references for external elements on the module.
|
|
129
|
+
* This allows a module to use elements from other modules directly,
|
|
130
|
+
* on single-threaded `Apps`.
|
|
131
|
+
* This implementation also includes transitive dependencies.
|
|
132
|
+
*
|
|
133
|
+
* @param daemon A `Daemon` instance
|
|
134
|
+
* @param dependencies: A dictionary of dependencies by element type
|
|
135
|
+
* @returns The `Module`, for call-chaining
|
|
136
|
+
*/
|
|
137
|
+
injectDependencies(modules: Record<string, AnyModule>, dependencies: {
|
|
84
138
|
buckets?: $Dependency[];
|
|
85
139
|
jobs?: $Dependency[];
|
|
86
140
|
messages?: $Dependency[];
|
|
87
141
|
machines?: $Dependency[];
|
|
88
142
|
}): this;
|
|
89
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Recursively find all files inside the module dir.
|
|
145
|
+
*
|
|
146
|
+
* @param dirpath A directory to scan
|
|
147
|
+
* @param exclude: A list of patterns to ignore
|
|
148
|
+
* @returns A list of file paths
|
|
149
|
+
*/
|
|
150
|
+
scanFiles(dirpath: string, exclude?: string[]): string[];
|
|
151
|
+
/**
|
|
152
|
+
* Build a resolved builder node, then merge the
|
|
153
|
+
* resulting schema(s) to the module.
|
|
154
|
+
* This also merges the resulting inline nodes of building a node.
|
|
155
|
+
*
|
|
156
|
+
* @param node A resolved builder node
|
|
157
|
+
* @param tree A module tree
|
|
158
|
+
*/
|
|
90
159
|
buildNode(node: ResolvedBuilderNode, tree: ModuleTree): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Merge inline message schemas into the module.
|
|
162
|
+
*
|
|
163
|
+
* @param node A resolved builder node
|
|
164
|
+
* @param schemas A dictionary of Message schemas by name
|
|
165
|
+
*/
|
|
91
166
|
private mergeInlineMessages;
|
|
167
|
+
/**
|
|
168
|
+
* Merge inline job schemas into the module.
|
|
169
|
+
*
|
|
170
|
+
* @param node A resolved builder node
|
|
171
|
+
* @param schemas A dictionary of job schemas by name
|
|
172
|
+
*/
|
|
92
173
|
private mergeInlineJobs;
|
|
93
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Create elements from schemas, and the NQL engine for this module.
|
|
176
|
+
*
|
|
177
|
+
* @param app A `App` instance
|
|
178
|
+
* @param services A dictionary of services by name
|
|
179
|
+
*/
|
|
180
|
+
start(app: AnyApp, services: Record<string, AnyService>): void;
|
|
181
|
+
/**
|
|
182
|
+
* Destroy all elements from module.
|
|
183
|
+
*/
|
|
94
184
|
destroy(): void;
|
|
95
|
-
|
|
185
|
+
/**
|
|
186
|
+
* Destroy one element from module.
|
|
187
|
+
*/
|
|
188
|
+
private destroyElement;
|
|
189
|
+
/**
|
|
190
|
+
* Create a virtual module from a definition.
|
|
191
|
+
* A virtual module can be used to dynamically create
|
|
192
|
+
* and use schemas with limited access to the application elements.
|
|
193
|
+
*
|
|
194
|
+
* @param daemon A `Daemon` instance
|
|
195
|
+
* @param def A definition for a Virtual Module
|
|
196
|
+
* @returns A `Module` instance
|
|
197
|
+
*/
|
|
96
198
|
static virtual(daemon: AnyDaemon, def: VirtualModuleDef): Promise<Module<$Space, $Module>>;
|
|
97
199
|
}
|
|
98
200
|
export type AnyModule = Module<any, any>;
|