nesoi 3.0.8 → 3.0.9
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/adapters/postgres/src/migrator/database.d.ts +3 -6
- package/lib/adapters/postgres/src/migrator/database.js +20 -20
- package/lib/adapters/postgres/src/migrator/generator/generator.d.ts +22 -0
- package/lib/adapters/postgres/src/migrator/generator/generator.js +326 -0
- package/lib/adapters/postgres/src/migrator/generator/migration.d.ts +66 -0
- package/lib/adapters/postgres/src/migrator/generator/migration.js +249 -0
- package/lib/adapters/postgres/src/migrator/generator/provider.d.ts +19 -0
- package/lib/adapters/postgres/src/migrator/{migrator.js → generator/provider.js} +23 -25
- package/lib/adapters/postgres/src/migrator/index.d.ts +47 -1
- package/lib/adapters/postgres/src/migrator/index.js +20 -3
- package/lib/adapters/postgres/src/migrator/runner/runner.d.ts +17 -0
- package/lib/adapters/postgres/src/migrator/runner/runner.js +249 -0
- package/lib/adapters/postgres/src/migrator/runner/status.d.ts +17 -0
- package/lib/adapters/postgres/src/migrator/runner/status.js +55 -0
- package/lib/adapters/postgres/src/postgres.cli.d.ts +11 -1
- package/lib/adapters/postgres/src/postgres.cli.js +34 -11
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +4 -4
- 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 +4 -0
- 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 +16 -0
- package/lib/elements/blocks/machine/machine.schema.js +16 -1
- 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 +4 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.js +4 -0
- 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.d.ts +4 -0
- package/lib/elements/edge/controller/controller.js +4 -0
- 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 +16 -11
- 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.d.ts +9 -2
- package/lib/elements/entities/bucket/bucket.js +14 -7
- 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 +3 -0
- package/lib/engine/apps/app.config.js +3 -0
- package/lib/engine/apps/app.d.ts +3 -0
- package/lib/engine/apps/app.js +4 -1
- package/lib/engine/apps/inline.app.d.ts +3 -0
- package/lib/engine/apps/inline.app.js +3 -0
- package/lib/engine/apps/monolyth/monolyth.app.d.ts +8 -0
- package/lib/engine/apps/monolyth/monolyth.app.js +8 -0
- package/lib/engine/auth/authn.d.ts +4 -0
- package/lib/engine/auth/authn.js +4 -0
- package/lib/engine/auth/zero.authn_provider.d.ts +4 -0
- package/lib/engine/auth/zero.authn_provider.js +4 -0
- package/lib/engine/cli/cli.d.ts +7 -1
- 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 +93 -6
- package/lib/engine/daemon.js +90 -7
- 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 +63 -2
- package/lib/engine/dependency.js +52 -0
- package/lib/engine/module.d.ts +108 -8
- package/lib/engine/module.js +107 -22
- 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 +12 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
- package/lib/engine/transaction/trx.d.ts +8 -0
- package/lib/engine/transaction/trx.js +8 -0
- package/lib/engine/transaction/trx_engine.d.ts +4 -0
- package/lib/engine/transaction/trx_engine.js +4 -3
- package/lib/engine/transaction/trx_node.d.ts +4 -0
- package/lib/engine/transaction/trx_node.js +4 -0
- package/lib/engine/tree.d.ts +54 -2
- package/lib/engine/tree.js +54 -2
- package/lib/engine/util/mime.d.ts +4 -4
- package/lib/engine/util/mime.js +7 -9
- package/lib/schema.d.ts +1 -1
- package/package.json +1 -1
- 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/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/runner.d.ts +0 -71
- package/lib/adapters/postgres/src/migrator/runner.js +0 -271
- 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
package/lib/engine/daemon.js
CHANGED
|
@@ -4,15 +4,35 @@ exports.DaemonTrx = exports.Daemon = void 0;
|
|
|
4
4
|
const log_1 = require("./util/log");
|
|
5
5
|
const error_1 = require("./data/error");
|
|
6
6
|
const cli_1 = require("./cli/cli");
|
|
7
|
+
/**
|
|
8
|
+
* A background process running one or more modules,
|
|
9
|
+
* which runs _Transactions_ for the available elements.
|
|
10
|
+
*
|
|
11
|
+
* A `Daemon` is spawn by an `App`.
|
|
12
|
+
*
|
|
13
|
+
* @category Engine
|
|
14
|
+
*/
|
|
7
15
|
class Daemon {
|
|
8
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @param name Name of the daemon (taken from App)
|
|
18
|
+
* @param trxEngines A dictionary of Transaction Engine by module name
|
|
19
|
+
* @param providers A dictionary of App Provider by name
|
|
20
|
+
* @param config Optional `AppConfig`
|
|
21
|
+
*/
|
|
22
|
+
constructor(name, trxEngines, providers, config) {
|
|
9
23
|
this.name = name;
|
|
10
24
|
this.trxEngines = trxEngines;
|
|
11
25
|
this.providers = providers;
|
|
12
|
-
this.
|
|
26
|
+
this.config = config;
|
|
13
27
|
this.bindControllers();
|
|
14
28
|
log_1.Log.info('daemon', name, 'Woo-ha!');
|
|
15
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Prepare a transaction to be run by the Daemon.
|
|
32
|
+
*
|
|
33
|
+
* @param moduleName Name of the module where to run the transactoin
|
|
34
|
+
* @returns A `DaemonTrx` instance, which can be run
|
|
35
|
+
*/
|
|
16
36
|
trx(moduleName) {
|
|
17
37
|
const trxEngine = this.trxEngines[moduleName];
|
|
18
38
|
if (!trxEngine) {
|
|
@@ -20,10 +40,18 @@ class Daemon {
|
|
|
20
40
|
}
|
|
21
41
|
return new DaemonTrx(trxEngine);
|
|
22
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Run the Nesoi CLI for this Daemon.
|
|
45
|
+
*/
|
|
23
46
|
async cli(cmd) {
|
|
24
|
-
|
|
25
|
-
await
|
|
47
|
+
const cli = new cli_1.CLI(this, this.config?.cli);
|
|
48
|
+
await cli.run(cmd);
|
|
26
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Bind the controller of each module to this Daemon.
|
|
52
|
+
* This allows the registered `Controller Adapters` to run
|
|
53
|
+
* transactions on the daemon.
|
|
54
|
+
*/
|
|
27
55
|
bindControllers() {
|
|
28
56
|
log_1.Log.info('daemon', this.name, 'Binding controllers');
|
|
29
57
|
for (const t in this.trxEngines) {
|
|
@@ -34,45 +62,100 @@ class Daemon {
|
|
|
34
62
|
}
|
|
35
63
|
}
|
|
36
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Destroy the providers and transaction engines of this daemon
|
|
67
|
+
*
|
|
68
|
+
* @param A `Daemon` instance
|
|
69
|
+
*/
|
|
37
70
|
static async destroy(daemon) {
|
|
38
71
|
log_1.Log.info('daemon', this.name, 'Stop');
|
|
39
72
|
for (const key in daemon.providers) {
|
|
40
73
|
const provider = daemon.providers[key];
|
|
41
|
-
await provider.
|
|
74
|
+
await provider.down(provider);
|
|
42
75
|
delete daemon.providers[key];
|
|
43
76
|
}
|
|
44
77
|
for (const key in daemon.trxEngines) {
|
|
45
78
|
delete daemon.trxEngines[key];
|
|
46
79
|
}
|
|
47
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Replace the providers and transaction engines of this daemon
|
|
83
|
+
* and rebind the controllers
|
|
84
|
+
*
|
|
85
|
+
* @param daemon A `Daemon` instance
|
|
86
|
+
* @param trxEngines A dictionary of Transaction Engine by module name
|
|
87
|
+
* @param providers A dictionary of App Provider by name
|
|
88
|
+
*/
|
|
48
89
|
static reload(daemon, trxEngines, providers) {
|
|
49
90
|
log_1.Log.info('daemon', this.name, 'Reloaded');
|
|
50
91
|
daemon.trxEngines = trxEngines;
|
|
51
92
|
daemon.providers = providers;
|
|
52
93
|
daemon.bindControllers();
|
|
53
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Return a `Daemon` property.
|
|
97
|
+
* This is used to read private properties.
|
|
98
|
+
*
|
|
99
|
+
* @param daemon A `Daemon` instance
|
|
100
|
+
* @param key A `Daemon` property `'name'|'providers'|'app'`
|
|
101
|
+
* @returns The selected property
|
|
102
|
+
*/
|
|
54
103
|
static get(daemon, key) {
|
|
55
104
|
return daemon?.[key];
|
|
56
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Return one module of the `Daemon` by name.
|
|
108
|
+
*
|
|
109
|
+
* @param daemon A `Daemon` instance
|
|
110
|
+
* @param module A module name
|
|
111
|
+
* @returns The `Module` instance
|
|
112
|
+
*/
|
|
57
113
|
static getModule(daemon, module) {
|
|
58
114
|
return daemon.trxEngines[module].getModule();
|
|
59
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Return all modules of the `Daemon`.
|
|
118
|
+
*
|
|
119
|
+
* @param daemon A `Daemon` instance
|
|
120
|
+
* @returns The `Module` instances
|
|
121
|
+
*/
|
|
60
122
|
static getModules(daemon) {
|
|
61
123
|
return Object.values(daemon.trxEngines)
|
|
62
124
|
.map((trx) => trx.getModule());
|
|
63
125
|
}
|
|
64
126
|
}
|
|
65
127
|
exports.Daemon = Daemon;
|
|
128
|
+
/**
|
|
129
|
+
* A helper class for preparing a transaction to be run.
|
|
130
|
+
* It allows declaring authentication data before running
|
|
131
|
+
* the transaction.
|
|
132
|
+
*
|
|
133
|
+
* @category Engine
|
|
134
|
+
*/
|
|
66
135
|
class DaemonTrx {
|
|
136
|
+
/**
|
|
137
|
+
* @param trxEngine The transaction engine where to run the transaction.
|
|
138
|
+
*/
|
|
67
139
|
constructor(trxEngine) {
|
|
68
140
|
this.trxEngine = trxEngine;
|
|
69
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Authenticate the transaction with the given credentials.
|
|
144
|
+
* You can specify one or more credentials, so the transaction
|
|
145
|
+
* is able to access elements with different authn providers.
|
|
146
|
+
*/
|
|
70
147
|
authn(authn) {
|
|
71
|
-
this.
|
|
148
|
+
this.authnRequest = authn;
|
|
72
149
|
return this;
|
|
73
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Run a method inside the transaction.
|
|
153
|
+
*
|
|
154
|
+
* @param fn A function to execute inside the transaction
|
|
155
|
+
* @returns A `TrxStatus` containing metadata about the transaction and the function response
|
|
156
|
+
*/
|
|
74
157
|
async run(fn) {
|
|
75
|
-
return this.trxEngine.trx(fn, this.
|
|
158
|
+
return this.trxEngine.trx(fn, this.authnRequest);
|
|
76
159
|
}
|
|
77
160
|
}
|
|
78
161
|
exports.DaemonTrx = DaemonTrx;
|
package/lib/engine/data/date.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NesoiDatetime = void 0;
|
|
4
4
|
const error_1 = require("./error");
|
|
5
|
+
/**
|
|
6
|
+
* @category Engine
|
|
7
|
+
* @subcategory Data
|
|
8
|
+
*/
|
|
5
9
|
class NesoiDatetime {
|
|
6
10
|
constructor(epoch, tz = 'Z') {
|
|
7
11
|
this.epoch = epoch || new Date().getTime();
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NesoiDecimal = void 0;
|
|
4
4
|
const error_1 = require("./error");
|
|
5
|
+
/**
|
|
6
|
+
* @category Engine
|
|
7
|
+
* @subcategory Data
|
|
8
|
+
*/
|
|
5
9
|
class NesoiDecimal {
|
|
6
10
|
constructor(value, pLeft = 12, pRight = 12) {
|
|
7
11
|
this.neg = false;
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @category Engine
|
|
3
|
+
* @subcategory Data
|
|
4
|
+
*/
|
|
5
|
+
export declare class LocalNesoiFile {
|
|
6
|
+
/**
|
|
7
|
+
* - If not overriden, `extname` is derived from `filepath`
|
|
8
|
+
* - If `overrides.originalFilename` is passed, `extname` is derived from it (this allows saving the file without extension, but keeping the information on NesoiFile).
|
|
9
|
+
* - If not overriden, `mimetype` is derived from the resolved `extname`
|
|
10
|
+
*/
|
|
11
|
+
static from(filepath: string, overrides?: Partial<NesoiFile>): NesoiFile;
|
|
12
|
+
static delete(file: NesoiFile): void;
|
|
13
|
+
static move(file: NesoiFile, to: string): void;
|
|
14
|
+
static read(file: NesoiFile): string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @category Engine
|
|
18
|
+
* @subcategory Data
|
|
19
|
+
*/
|
|
3
20
|
export declare class NesoiFile {
|
|
4
21
|
__nesoi_file: boolean;
|
|
5
22
|
filepath: string;
|
|
@@ -8,31 +25,14 @@ export declare class NesoiFile {
|
|
|
8
25
|
mimetype: string | null;
|
|
9
26
|
size: number;
|
|
10
27
|
originalFilename: string | null;
|
|
11
|
-
newFilename: string;
|
|
12
28
|
mtime: Date | null;
|
|
13
29
|
hashAlgorithm: false | 'sha1' | 'md5' | 'sha256';
|
|
14
|
-
private
|
|
15
|
-
constructor(filepath: string,
|
|
16
|
-
|
|
17
|
-
newFilename?: string | null;
|
|
18
|
-
});
|
|
30
|
+
private hash;
|
|
31
|
+
constructor(filepath: string, filename: string, extname: string, mimetype: string | null, size: number, originalFilename: string | null, mtime: Date | null);
|
|
32
|
+
static from(file: NesoiFile, overrides: Partial<NesoiFile>): NesoiFile;
|
|
19
33
|
static hash(file: NesoiFile, hashAlgorithm: 'sha1' | 'md5' | 'sha256'): Promise<{
|
|
20
34
|
algorithm: "sha1" | "sha256" | "md5";
|
|
21
35
|
hash: string | object;
|
|
22
36
|
}>;
|
|
23
|
-
static
|
|
24
|
-
trx: TrxNode<any, M, any>;
|
|
25
|
-
}, bucket: keyof M['buckets'], file: NesoiFile, options?: {
|
|
26
|
-
silent?: boolean;
|
|
27
|
-
}): Promise<void> | undefined;
|
|
28
|
-
static move<M extends $Module>($: {
|
|
29
|
-
trx: TrxNode<any, M, any>;
|
|
30
|
-
}, bucket: keyof M['buckets'], file: NesoiFile, to: string, options?: {
|
|
31
|
-
silent?: boolean;
|
|
32
|
-
}): Promise<void>;
|
|
33
|
-
static read<M extends $Module>($: {
|
|
34
|
-
trx: TrxNode<any, M, any>;
|
|
35
|
-
}, bucket: keyof M['buckets'], file: NesoiFile, options?: {
|
|
36
|
-
silent?: boolean;
|
|
37
|
-
}): Promise<void>;
|
|
37
|
+
static local: typeof LocalNesoiFile;
|
|
38
38
|
}
|
package/lib/engine/data/file.js
CHANGED
|
@@ -3,52 +3,89 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NesoiFile = void 0;
|
|
6
|
+
exports.NesoiFile = exports.LocalNesoiFile = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const hash_1 = require("../util/hash");
|
|
10
10
|
const mime_1 = require("../util/mime");
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @category Engine
|
|
13
|
+
* @subcategory Data
|
|
14
|
+
*/
|
|
15
|
+
class LocalNesoiFile {
|
|
16
|
+
/**
|
|
17
|
+
* - If not overriden, `extname` is derived from `filepath`
|
|
18
|
+
* - If `overrides.originalFilename` is passed, `extname` is derived from it (this allows saving the file without extension, but keeping the information on NesoiFile).
|
|
19
|
+
* - If not overriden, `mimetype` is derived from the resolved `extname`
|
|
20
|
+
*/
|
|
21
|
+
static from(filepath, overrides) {
|
|
22
|
+
const filename = overrides?.filename || path_1.default.basename(filepath);
|
|
23
|
+
let extname;
|
|
24
|
+
if (overrides?.extname) {
|
|
25
|
+
extname = overrides.extname;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
if (overrides?.originalFilename) {
|
|
29
|
+
extname = path_1.default.extname(overrides?.originalFilename).slice(1);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
extname = path_1.default.extname(filepath).slice(1);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const mimetype = overrides?.mimetype || mime_1.Mime.ofExtname(extname);
|
|
36
|
+
const stat = fs_1.default.statSync(filepath);
|
|
37
|
+
const mtime = stat.mtime;
|
|
38
|
+
const size = stat.size;
|
|
39
|
+
const originalFilename = overrides?.originalFilename || null;
|
|
40
|
+
return new NesoiFile(filepath, filename, extname, mimetype, size, originalFilename, mtime);
|
|
41
|
+
}
|
|
42
|
+
static delete(file) {
|
|
43
|
+
fs_1.default.rmSync(file.filepath);
|
|
44
|
+
}
|
|
45
|
+
static move(file, to) {
|
|
46
|
+
fs_1.default.renameSync(file.filepath, to);
|
|
47
|
+
file.filepath = to;
|
|
48
|
+
file.filename = path_1.default.basename(to);
|
|
49
|
+
}
|
|
50
|
+
static read(file) {
|
|
51
|
+
return fs_1.default.readFileSync(file.filepath).toString();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.LocalNesoiFile = LocalNesoiFile;
|
|
55
|
+
/**
|
|
56
|
+
* @category Engine
|
|
57
|
+
* @subcategory Data
|
|
58
|
+
*/
|
|
12
59
|
class NesoiFile {
|
|
13
|
-
constructor(filepath,
|
|
60
|
+
constructor(filepath, filename, extname, mimetype, size, originalFilename, mtime) {
|
|
14
61
|
this.__nesoi_file = true;
|
|
62
|
+
// Algorithm used to generate the hash
|
|
15
63
|
this.hashAlgorithm = false;
|
|
16
64
|
// Only available after `.hash` is called
|
|
17
|
-
this.
|
|
65
|
+
this.hash = null;
|
|
18
66
|
this.filepath = filepath;
|
|
19
|
-
this.filename =
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.newFilename = extra?.newFilename || this.filename;
|
|
29
|
-
this.mtime = stat.mtime;
|
|
67
|
+
this.filename = filename;
|
|
68
|
+
this.extname = extname;
|
|
69
|
+
this.mimetype = mimetype;
|
|
70
|
+
this.size = size;
|
|
71
|
+
this.originalFilename = originalFilename;
|
|
72
|
+
this.mtime = mtime;
|
|
73
|
+
}
|
|
74
|
+
static from(file, overrides) {
|
|
75
|
+
return new NesoiFile(overrides.filepath || file.filepath, overrides.filename || file.filename, overrides.extname || file.extname, overrides.mimetype || file.mimetype, overrides.size || file.size, overrides.originalFilename || file.originalFilename, overrides.mtime || file.mtime);
|
|
30
76
|
}
|
|
31
77
|
static async hash(file, hashAlgorithm) {
|
|
32
|
-
if (!file.
|
|
78
|
+
if (!file.hash) {
|
|
33
79
|
file.hashAlgorithm = hashAlgorithm;
|
|
34
|
-
file.
|
|
35
|
-
file.
|
|
80
|
+
file.hash = hash_1.Hash.file(file.filepath, file.hashAlgorithm).then(hash => {
|
|
81
|
+
file.hash = hash;
|
|
36
82
|
});
|
|
37
83
|
}
|
|
38
84
|
return {
|
|
39
85
|
algorithm: hashAlgorithm,
|
|
40
|
-
hash: file.
|
|
86
|
+
hash: file.hash
|
|
41
87
|
};
|
|
42
88
|
}
|
|
43
|
-
static delete($, bucket, file, options) {
|
|
44
|
-
return $.trx.bucket(bucket).drive.delete(file, options);
|
|
45
|
-
}
|
|
46
|
-
static async move($, bucket, file, to, options) {
|
|
47
|
-
await $.trx.bucket(bucket).drive.move(file, to, options);
|
|
48
|
-
file.filepath = to;
|
|
49
|
-
}
|
|
50
|
-
static async read($, bucket, file, options) {
|
|
51
|
-
await $.trx.bucket(bucket).drive.read(file, options);
|
|
52
|
-
}
|
|
53
89
|
}
|
|
54
90
|
exports.NesoiFile = NesoiFile;
|
|
91
|
+
NesoiFile.local = LocalNesoiFile;
|
package/lib/engine/data/json.js
CHANGED
package/lib/engine/data/tree.js
CHANGED
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Tree = void 0;
|
|
7
7
|
const error_1 = require("./error");
|
|
8
|
+
/**
|
|
9
|
+
* @category Engine
|
|
10
|
+
* @subcategory Data
|
|
11
|
+
*/
|
|
8
12
|
class Tree {
|
|
9
13
|
/**
|
|
10
14
|
* Read one or more values from the object, from a _fieldpath_.
|
|
@@ -6,28 +6,86 @@ 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;
|
|
30
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* A element builder, along with metadata required for building it.
|
|
86
|
+
*
|
|
87
|
+
* @category Engine
|
|
88
|
+
*/
|
|
31
89
|
export declare class BuilderNode {
|
|
32
90
|
module: string;
|
|
33
91
|
type: BuilderType;
|
|
@@ -47,6 +105,9 @@ export declare class BuilderNode {
|
|
|
47
105
|
builder: AnyBuilder;
|
|
48
106
|
});
|
|
49
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* A builder node with the dependencies resolved to references to other nodes.
|
|
110
|
+
*/
|
|
50
111
|
export type ResolvedBuilderNode = Overlay<BuilderNode, {
|
|
51
112
|
_dependencies?: ResolvedBuilderNode[];
|
|
52
113
|
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);
|
|
@@ -76,6 +123,11 @@ class $Dependency {
|
|
|
76
123
|
}
|
|
77
124
|
}
|
|
78
125
|
exports.$Dependency = $Dependency;
|
|
126
|
+
/**
|
|
127
|
+
* A element builder, along with metadata required for building it.
|
|
128
|
+
*
|
|
129
|
+
* @category Engine
|
|
130
|
+
*/
|
|
79
131
|
class BuilderNode {
|
|
80
132
|
constructor($) {
|
|
81
133
|
this.module = $.module;
|