nesoi 3.3.11 → 3.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bundler/browser/browser.bundler.js +4 -7
- package/lib/bundler/browser/stages/8_replace_nesoi_for_browser_stage.js +1 -0
- package/lib/bundler/distributed/distributed.bundler.js +6 -4
- package/lib/bundler/distributed/stages/1_mkdir_stage.js +2 -0
- package/lib/bundler/distributed/stages/2_build_typescript_stage.js +3 -1
- package/lib/bundler/distributed/stages/3_copy_types_stage.js +2 -0
- package/lib/bundler/distributed/stages/4_dump_modules_stage.js +2 -0
- package/lib/bundler/monolyth/monolyth.bundler.js +7 -5
- package/lib/bundler/monolyth/stages/1_mkdir_stage.js +2 -0
- package/lib/bundler/monolyth/stages/2_build_typescript_stage.js +3 -1
- package/lib/bundler/monolyth/stages/3_copy_types_stage.js +2 -0
- package/lib/bundler/monolyth/stages/4_dump_modules_stage.js +2 -0
- package/lib/bundler/monolyth/stages/5_copy_static_stage.js +2 -0
- package/lib/bundler/monolyth/stages/6_dump_cli_stage.js +2 -0
- package/lib/bundler/monolyth/stages/7_dump_package_json_stage.js +2 -0
- package/lib/compiler/compiler.js +7 -2
- package/lib/compiler/elements/bucket.element.js +3 -5
- package/lib/compiler/elements/constants.element.js +2 -2
- package/lib/compiler/elements/controller.element.js +1 -1
- package/lib/compiler/elements/element.js +15 -2
- package/lib/compiler/elements/externals.element.js +12 -4
- package/lib/compiler/elements/message.element.js +7 -0
- package/lib/compiler/elements/queue.element.js +1 -1
- package/lib/compiler/elements/topic.element.js +1 -1
- package/lib/compiler/module.js +6 -1
- package/lib/compiler/stages/1_scan_stage.js +1 -0
- package/lib/compiler/stages/2_treeshake_stage.js +1 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +1 -0
- package/lib/compiler/stages/4_build_schemas_stage.js +3 -3
- package/lib/compiler/stages/5_inject_ts_stage.js +1 -0
- package/lib/compiler/stages/6_build_elements_stage.js +1 -0
- package/lib/compiler/stages/7_dump_stage.js +5 -3
- package/lib/compiler/stages/8_diagnose_stage.js +1 -0
- package/lib/compiler/typescript/bridge/inject.js +1 -1
- package/lib/compiler/typescript/bridge/organize.js +25 -32
- package/lib/compiler/typescript/parser.js +10 -0
- package/lib/compiler/typescript/source.js +6 -4
- package/lib/compiler/typescript/typescript_compiler.js +8 -3
- package/lib/elements/blocks/block.builder.js +16 -14
- package/lib/elements/blocks/block.js +3 -0
- package/lib/elements/blocks/block.schema.js +10 -1
- package/lib/elements/blocks/job/internal/machine_job.builder.js +10 -3
- package/lib/elements/blocks/job/internal/machine_job.schema.js +2 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.js +16 -4
- package/lib/elements/blocks/job/internal/resource_job.schema.js +7 -0
- package/lib/elements/blocks/job/job.builder.js +5 -3
- package/lib/elements/blocks/job/job.js +2 -0
- package/lib/elements/blocks/job/job.schema.js +11 -1
- package/lib/elements/blocks/machine/machine.builder.js +6 -3
- package/lib/elements/blocks/machine/machine.js +7 -0
- package/lib/elements/blocks/machine/machine.schema.js +38 -3
- package/lib/elements/blocks/machine/machine_state.builder.js +6 -4
- package/lib/elements/blocks/machine/machine_transition.builder.js +8 -1
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +1 -0
- package/lib/elements/blocks/queue/queue.builder.js +1 -1
- package/lib/elements/blocks/queue/queue.js +2 -0
- package/lib/elements/blocks/queue/queue.schema.js +7 -2
- package/lib/elements/blocks/resource/resource.builder.js +4 -3
- package/lib/elements/blocks/resource/resource.js +2 -0
- package/lib/elements/blocks/resource/resource.schema.js +13 -1
- package/lib/elements/blocks/topic/topic.builder.js +1 -1
- package/lib/elements/blocks/topic/topic.js +3 -1
- package/lib/elements/blocks/topic/topic.schema.js +8 -2
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +2 -5
- package/lib/elements/edge/controller/adapters/controller_adapter.js +3 -0
- package/lib/elements/edge/controller/controller.builder.js +32 -17
- package/lib/elements/edge/controller/controller.js +10 -0
- package/lib/elements/edge/controller/controller.schema.js +38 -5
- package/lib/elements/edge/externals/externals.builder.js +9 -8
- package/lib/elements/edge/externals/externals.schema.js +9 -1
- package/lib/elements/entities/bucket/adapters/browserdb.bucket_adapter.js +7 -6
- package/lib/elements/entities/bucket/adapters/browserdb.service.d.ts +1 -1
- package/lib/elements/entities/bucket/adapters/browserdb.service.js +9 -10
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +3 -0
- package/lib/elements/entities/bucket/adapters/json.bucket_adapter.js +4 -2
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +3 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.js +1 -0
- package/lib/elements/entities/bucket/bucket.builder.js +9 -3
- package/lib/elements/entities/bucket/bucket.js +15 -8
- package/lib/elements/entities/bucket/bucket.schema.js +14 -1
- package/lib/elements/entities/bucket/cache/bucket_cache.js +10 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +1 -3
- package/lib/elements/entities/bucket/graph/bucket_graph.js +3 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +13 -2
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +11 -2
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +2 -1
- package/lib/elements/entities/bucket/model/bucket_model.js +3 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +15 -2
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +17 -4
- package/lib/elements/entities/bucket/query/nql_compiler.js +28 -21
- package/lib/elements/entities/bucket/query/nql_engine.js +2 -1
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +2 -1
- package/lib/elements/entities/bucket/view/bucket_view.js +4 -3
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +13 -2
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -1
- package/lib/elements/entities/constants/constants.builder.js +12 -5
- package/lib/elements/entities/constants/constants.js +1 -0
- package/lib/elements/entities/constants/constants.schema.js +19 -3
- package/lib/elements/entities/drive/drive_adapter.js +1 -0
- package/lib/elements/entities/drive/local.drive_adapter.d.ts +1 -1
- package/lib/elements/entities/drive/local.drive_adapter.js +1 -0
- package/lib/elements/entities/message/message.builder.js +5 -2
- package/lib/elements/entities/message/message.js +2 -0
- package/lib/elements/entities/message/message.schema.js +7 -1
- package/lib/elements/entities/message/message_parser.js +1 -0
- package/lib/elements/entities/message/template/message_template.builder.js +2 -3
- package/lib/elements/entities/message/template/message_template.schema.js +16 -2
- package/lib/elements/entities/message/template/message_template_field.builder.js +14 -4
- package/lib/engine/app/app.config.js +3 -2
- package/lib/engine/app/app.js +21 -14
- package/lib/engine/app/inc/inc.client.d.ts +1 -1
- package/lib/engine/app/inc/inc.client.js +2 -0
- package/lib/engine/app/inc/inc.server.d.ts +1 -1
- package/lib/engine/app/inc/inc.server.js +3 -1
- package/lib/engine/app/inline.app.js +4 -1
- package/lib/engine/app/native/browser.app.js +2 -1
- package/lib/engine/app/native/distributed.app.config.js +1 -0
- package/lib/engine/app/native/distributed.app.js +2 -2
- package/lib/engine/app/native/distributed_node.app.js +6 -1
- package/lib/engine/app/native/monolyth.app.js +2 -0
- package/lib/engine/app/service.js +8 -0
- package/lib/engine/auth/zero.authn_provider.js +1 -4
- package/lib/engine/cli/cli.js +6 -2
- package/lib/engine/cli/cli_adapter.js +9 -1
- package/lib/engine/cli/cli_input.js +6 -4
- package/lib/engine/cli/script.js +8 -6
- package/lib/engine/daemon.js +14 -0
- package/lib/engine/data/date.js +3 -0
- package/lib/engine/data/datetime.js +34 -26
- package/lib/engine/data/decimal.js +6 -1
- package/lib/engine/data/duration.js +28 -26
- package/lib/engine/data/error.js +3 -0
- package/lib/engine/data/file.js +21 -6
- package/lib/engine/data/tree.js +3 -1
- package/lib/engine/dependency.js +17 -0
- package/lib/engine/module.js +35 -12
- package/lib/engine/space.js +3 -2
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +1 -1
- package/lib/engine/transaction/nodes/bucket.trx_node.js +10 -1
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +9 -2
- package/lib/engine/transaction/nodes/external.trx_node.js +3 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +5 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/topic.trx_node.js +4 -0
- package/lib/engine/transaction/trx.js +18 -3
- package/lib/engine/transaction/trx_engine.js +12 -1
- package/lib/engine/transaction/trx_node.js +23 -11
- package/lib/engine/tree.js +6 -5
- package/lib/engine/util/crypto.js +17 -17
- package/lib/engine/util/log.js +9 -9
- package/lib/engine/util/path.js +1 -1
- package/lib/engine/util/random.d.ts +1 -1
- package/lib/engine/util/regex.d.ts +3 -0
- package/lib/engine/util/regex.js +82 -0
- package/package.json +1 -4
- package/tools/joaquin/mock.js +10 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -16,12 +16,18 @@ const error_1 = require("../../../engine/data/error");
|
|
|
16
16
|
* @subcategory Entity
|
|
17
17
|
* */
|
|
18
18
|
class BucketBuilder {
|
|
19
|
+
module;
|
|
20
|
+
name;
|
|
21
|
+
$b = 'bucket';
|
|
22
|
+
_extend;
|
|
23
|
+
_alias;
|
|
24
|
+
_model;
|
|
25
|
+
_graph = {};
|
|
26
|
+
_views = {};
|
|
27
|
+
_tenancy;
|
|
19
28
|
constructor(module, name) {
|
|
20
29
|
this.module = module;
|
|
21
30
|
this.name = name;
|
|
22
|
-
this.$b = 'bucket';
|
|
23
|
-
this._graph = {};
|
|
24
|
-
this._views = {};
|
|
25
31
|
}
|
|
26
32
|
as(alias) {
|
|
27
33
|
this._alias = alias;
|
|
@@ -28,6 +28,15 @@ exports.$id = Symbol('FUTURE ID OF CREATE');
|
|
|
28
28
|
* @subcategory Entity
|
|
29
29
|
* */
|
|
30
30
|
class Bucket {
|
|
31
|
+
module;
|
|
32
|
+
schema;
|
|
33
|
+
config;
|
|
34
|
+
services;
|
|
35
|
+
adapter;
|
|
36
|
+
cache;
|
|
37
|
+
graph;
|
|
38
|
+
views;
|
|
39
|
+
drive;
|
|
31
40
|
constructor(module, schema, config, services = {}) {
|
|
32
41
|
this.module = module;
|
|
33
42
|
this.schema = schema;
|
|
@@ -314,7 +323,6 @@ class Bucket {
|
|
|
314
323
|
* Create an entity
|
|
315
324
|
*/
|
|
316
325
|
async create(trx, obj) {
|
|
317
|
-
var _a, _b;
|
|
318
326
|
log_1.Log.debug('bucket', this.schema.name, `Create id=${obj['id'] || 'new'}`, obj);
|
|
319
327
|
// Separate composition
|
|
320
328
|
let composition = obj['#composition'];
|
|
@@ -351,8 +359,8 @@ class Bucket {
|
|
|
351
359
|
if (!Array.isArray(linkObj)) {
|
|
352
360
|
throw error_1.NesoiError.Bucket.CompositionValueShouldBeArray({ method: 'create', bucket: this.schema.name, link: link.name });
|
|
353
361
|
}
|
|
354
|
-
_obj['#composition']
|
|
355
|
-
|
|
362
|
+
_obj['#composition'] ??= {};
|
|
363
|
+
_obj['#composition'][link.name] ??= [];
|
|
356
364
|
for (const linkObjItem of linkObj) {
|
|
357
365
|
const child = await trx.bucket(link.bucket.short).create(linkObjItem);
|
|
358
366
|
_obj['#composition'][link.name].push(child);
|
|
@@ -360,7 +368,7 @@ class Bucket {
|
|
|
360
368
|
}
|
|
361
369
|
else {
|
|
362
370
|
const child = await trx.bucket(link.bucket.short).create(linkObj);
|
|
363
|
-
_obj['#composition']
|
|
371
|
+
_obj['#composition'] ??= {};
|
|
364
372
|
_obj['#composition'][link.name] = child;
|
|
365
373
|
}
|
|
366
374
|
}
|
|
@@ -487,7 +495,6 @@ class Bucket {
|
|
|
487
495
|
* **WARNING** Tenancy not checked
|
|
488
496
|
*/
|
|
489
497
|
async put(trx, obj) {
|
|
490
|
-
var _a, _b;
|
|
491
498
|
log_1.Log.debug('bucket', this.schema.name, `Put id=${obj['id']}`, obj);
|
|
492
499
|
// Separate composition
|
|
493
500
|
let composition = obj['#composition'];
|
|
@@ -522,8 +529,8 @@ class Bucket {
|
|
|
522
529
|
if (!Array.isArray(linkObj)) {
|
|
523
530
|
throw error_1.NesoiError.Bucket.CompositionValueShouldBeArray({ method: 'replace', bucket: this.schema.name, link: link.name });
|
|
524
531
|
}
|
|
525
|
-
_obj['#composition']
|
|
526
|
-
|
|
532
|
+
_obj['#composition'] ??= {};
|
|
533
|
+
_obj['#composition'][link.name] ??= [];
|
|
527
534
|
for (const linkObjItem of linkObj) {
|
|
528
535
|
const child = await trx.bucket(link.bucket.short).put(linkObjItem);
|
|
529
536
|
_obj['#composition'][link.name].push(child);
|
|
@@ -531,7 +538,7 @@ class Bucket {
|
|
|
531
538
|
}
|
|
532
539
|
else {
|
|
533
540
|
const child = await trx.bucket(link.bucket.short).put(linkObj);
|
|
534
|
-
_obj['#composition']
|
|
541
|
+
_obj['#composition'] ??= {};
|
|
535
542
|
_obj['#composition'][link.name] = child;
|
|
536
543
|
}
|
|
537
544
|
}
|
|
@@ -6,6 +6,20 @@ exports.$Bucket = void 0;
|
|
|
6
6
|
* @subcategory Entity
|
|
7
7
|
* */
|
|
8
8
|
class $Bucket {
|
|
9
|
+
module;
|
|
10
|
+
name;
|
|
11
|
+
alias;
|
|
12
|
+
model;
|
|
13
|
+
graph;
|
|
14
|
+
views;
|
|
15
|
+
tenancy;
|
|
16
|
+
extendsFrom;
|
|
17
|
+
$t = 'bucket';
|
|
18
|
+
'#data';
|
|
19
|
+
'#composition';
|
|
20
|
+
'#modelpath';
|
|
21
|
+
'#querypath';
|
|
22
|
+
'#defaults';
|
|
9
23
|
constructor(module, name, alias, model, graph, views, tenancy, extendsFrom) {
|
|
10
24
|
this.module = module;
|
|
11
25
|
this.name = name;
|
|
@@ -15,7 +29,6 @@ class $Bucket {
|
|
|
15
29
|
this.views = views;
|
|
16
30
|
this.tenancy = tenancy;
|
|
17
31
|
this.extendsFrom = extendsFrom;
|
|
18
|
-
this.$t = 'bucket';
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
34
|
exports.$Bucket = $Bucket;
|
|
@@ -12,6 +12,9 @@ const bucket_graph_schema_1 = require("../graph/bucket_graph.schema");
|
|
|
12
12
|
* @subcategory Entity
|
|
13
13
|
* */
|
|
14
14
|
class BucketCacheEntry {
|
|
15
|
+
__update_epoch;
|
|
16
|
+
__sync_epoch;
|
|
17
|
+
id;
|
|
15
18
|
constructor(obj, __update_epoch, __sync_epoch) {
|
|
16
19
|
this.__update_epoch = __update_epoch;
|
|
17
20
|
this.__sync_epoch = __sync_epoch;
|
|
@@ -24,6 +27,13 @@ exports.BucketCacheEntry = BucketCacheEntry;
|
|
|
24
27
|
* @subcategory Entity
|
|
25
28
|
* */
|
|
26
29
|
class BucketCache {
|
|
30
|
+
bucket;
|
|
31
|
+
config;
|
|
32
|
+
lastUpdateEpoch;
|
|
33
|
+
lastSyncEpoch;
|
|
34
|
+
lastHash;
|
|
35
|
+
innerAdapter;
|
|
36
|
+
outerAdapter;
|
|
27
37
|
constructor(bucket, config) {
|
|
28
38
|
this.bucket = bucket;
|
|
29
39
|
this.config = config;
|
|
@@ -11,9 +11,7 @@ const bucket_graph_link_builder_1 = require("./bucket_graph_link.builder");
|
|
|
11
11
|
* @subcategory Entity
|
|
12
12
|
* */
|
|
13
13
|
class BucketGraphBuilder {
|
|
14
|
-
|
|
15
|
-
this._links = {};
|
|
16
|
-
}
|
|
14
|
+
_links = {};
|
|
17
15
|
links(builders) {
|
|
18
16
|
this._links = builders;
|
|
19
17
|
return this;
|
|
@@ -6,6 +6,17 @@ exports.$BucketGraph = exports.$BucketGraphLink = void 0;
|
|
|
6
6
|
* @subcategory Entity
|
|
7
7
|
* */
|
|
8
8
|
class $BucketGraphLink {
|
|
9
|
+
name;
|
|
10
|
+
alias;
|
|
11
|
+
bucket;
|
|
12
|
+
rel;
|
|
13
|
+
many;
|
|
14
|
+
optional;
|
|
15
|
+
keyOwner;
|
|
16
|
+
query;
|
|
17
|
+
$t = 'bucket.graph.link';
|
|
18
|
+
'#bucket';
|
|
19
|
+
'#many';
|
|
9
20
|
constructor(name, alias, bucket, rel, many, optional, keyOwner, query) {
|
|
10
21
|
this.name = name;
|
|
11
22
|
this.alias = alias;
|
|
@@ -15,7 +26,6 @@ class $BucketGraphLink {
|
|
|
15
26
|
this.optional = optional;
|
|
16
27
|
this.keyOwner = keyOwner;
|
|
17
28
|
this.query = query;
|
|
18
|
-
this.$t = 'bucket.graph.link';
|
|
19
29
|
}
|
|
20
30
|
}
|
|
21
31
|
exports.$BucketGraphLink = $BucketGraphLink;
|
|
@@ -24,9 +34,10 @@ exports.$BucketGraphLink = $BucketGraphLink;
|
|
|
24
34
|
* @subcategory Entity
|
|
25
35
|
* */
|
|
26
36
|
class $BucketGraph {
|
|
37
|
+
links;
|
|
38
|
+
$t = 'bucket.graph';
|
|
27
39
|
constructor(links = {}) {
|
|
28
40
|
this.links = links;
|
|
29
|
-
this.$t = 'bucket.graph';
|
|
30
41
|
}
|
|
31
42
|
}
|
|
32
43
|
exports.$BucketGraph = $BucketGraph;
|
|
@@ -11,9 +11,11 @@ const dependency_1 = require("../../../../engine/dependency");
|
|
|
11
11
|
* @subcategory Entity
|
|
12
12
|
* */
|
|
13
13
|
class BucketGraphLinkFactory {
|
|
14
|
+
module;
|
|
15
|
+
alias;
|
|
16
|
+
type = 'aggregation';
|
|
14
17
|
constructor(module) {
|
|
15
18
|
this.module = module;
|
|
16
|
-
this.type = 'aggregation';
|
|
17
19
|
}
|
|
18
20
|
as(alias) {
|
|
19
21
|
this.alias = alias;
|
|
@@ -42,13 +44,20 @@ exports.BucketGraphLinkFactory = BucketGraphLinkFactory;
|
|
|
42
44
|
* @subcategory Entity
|
|
43
45
|
* */
|
|
44
46
|
class BucketGraphLinkBuilder {
|
|
47
|
+
bucket;
|
|
48
|
+
rel;
|
|
49
|
+
query;
|
|
50
|
+
many;
|
|
51
|
+
alias;
|
|
52
|
+
'#other';
|
|
53
|
+
'#many';
|
|
54
|
+
_optional = false;
|
|
45
55
|
constructor(bucket, rel, query, many, alias) {
|
|
46
56
|
this.bucket = bucket;
|
|
47
57
|
this.rel = rel;
|
|
48
58
|
this.query = query;
|
|
49
59
|
this.many = many;
|
|
50
60
|
this.alias = alias;
|
|
51
|
-
this._optional = false;
|
|
52
61
|
}
|
|
53
62
|
as(alias) {
|
|
54
63
|
this.alias = alias;
|
|
@@ -11,10 +11,11 @@ const bucket_model_field_builder_1 = require("./bucket_model_field.builder");
|
|
|
11
11
|
* @subcategory Entity
|
|
12
12
|
*/
|
|
13
13
|
class BucketModelBuilder {
|
|
14
|
+
module;
|
|
14
15
|
constructor(module) {
|
|
15
16
|
this.module = module;
|
|
16
|
-
this.builders = {};
|
|
17
17
|
}
|
|
18
|
+
builders = {};
|
|
18
19
|
fields(builders) {
|
|
19
20
|
this.builders = builders;
|
|
20
21
|
return this;
|
|
@@ -37,7 +37,8 @@ function convertToView(model, name, fields = model.fields, path, depth = 0) {
|
|
|
37
37
|
function convertToMessage(module, model, name, alias, include = [], exclude = [], optional = []) {
|
|
38
38
|
const convertField = (field) => {
|
|
39
39
|
return new message_template_schema_1.$MessageTemplateField(field.type, field.name, field.alias, field.path, field.path, optional.includes(field.path) ? false : field.required, undefined, false, [], {
|
|
40
|
-
enum: field.meta?.enum
|
|
40
|
+
enum: field.meta?.enum,
|
|
41
|
+
literal: field.meta?.literal
|
|
41
42
|
}, field.children ? convertFields(field.children) : undefined);
|
|
42
43
|
};
|
|
43
44
|
const convertFields = (fields) => {
|
|
@@ -6,6 +6,16 @@ exports.$BucketModel = exports.$BucketModelField = void 0;
|
|
|
6
6
|
* @subcategory Entity
|
|
7
7
|
* */
|
|
8
8
|
class $BucketModelField {
|
|
9
|
+
name;
|
|
10
|
+
path;
|
|
11
|
+
type;
|
|
12
|
+
alias;
|
|
13
|
+
required;
|
|
14
|
+
meta;
|
|
15
|
+
defaultValue;
|
|
16
|
+
children;
|
|
17
|
+
crypto;
|
|
18
|
+
$t = 'bucket.model.field';
|
|
9
19
|
constructor(name, path, type, alias, required, meta, defaultValue, children, crypto) {
|
|
10
20
|
this.name = name;
|
|
11
21
|
this.path = path;
|
|
@@ -16,7 +26,6 @@ class $BucketModelField {
|
|
|
16
26
|
this.defaultValue = defaultValue;
|
|
17
27
|
this.children = children;
|
|
18
28
|
this.crypto = crypto;
|
|
19
|
-
this.$t = 'bucket.model.field';
|
|
20
29
|
}
|
|
21
30
|
}
|
|
22
31
|
exports.$BucketModelField = $BucketModelField;
|
|
@@ -25,12 +34,16 @@ exports.$BucketModelField = $BucketModelField;
|
|
|
25
34
|
* @subcategory Entity
|
|
26
35
|
* */
|
|
27
36
|
class $BucketModel {
|
|
37
|
+
fields;
|
|
38
|
+
defaults;
|
|
39
|
+
hasFileField;
|
|
40
|
+
hasEncryptedField;
|
|
41
|
+
$t = 'bucket.model';
|
|
28
42
|
constructor(fields, defaults = {}, hasFileField = false, hasEncryptedField = false) {
|
|
29
43
|
this.fields = fields;
|
|
30
44
|
this.defaults = defaults;
|
|
31
45
|
this.hasFileField = hasFileField;
|
|
32
46
|
this.hasEncryptedField = hasEncryptedField;
|
|
33
|
-
this.$t = 'bucket.model';
|
|
34
47
|
}
|
|
35
48
|
static getField(model, modelpath) {
|
|
36
49
|
const paths = modelpath.split('.');
|
|
@@ -11,9 +11,11 @@ const dependency_1 = require("../../../../engine/dependency");
|
|
|
11
11
|
* @subcategory Entity
|
|
12
12
|
* */
|
|
13
13
|
class BucketModelFieldFactory {
|
|
14
|
+
module;
|
|
14
15
|
constructor(module) {
|
|
15
16
|
this.module = module;
|
|
16
17
|
}
|
|
18
|
+
alias;
|
|
17
19
|
as(alias) {
|
|
18
20
|
this.alias = alias;
|
|
19
21
|
return this;
|
|
@@ -112,14 +114,25 @@ exports.BucketModelFieldFactory = BucketModelFieldFactory;
|
|
|
112
114
|
* @subcategory Entity
|
|
113
115
|
* */
|
|
114
116
|
class BucketModelFieldBuilder {
|
|
117
|
+
module;
|
|
118
|
+
type;
|
|
119
|
+
alias;
|
|
120
|
+
meta;
|
|
121
|
+
children;
|
|
122
|
+
'#input';
|
|
123
|
+
'#output';
|
|
124
|
+
'#optional';
|
|
125
|
+
'#modelpath';
|
|
126
|
+
'#querypath';
|
|
127
|
+
_required = true;
|
|
128
|
+
_defaultValue = undefined;
|
|
129
|
+
crypto;
|
|
115
130
|
constructor(module, type, alias, meta, children) {
|
|
116
131
|
this.module = module;
|
|
117
132
|
this.type = type;
|
|
118
133
|
this.alias = alias;
|
|
119
134
|
this.meta = meta;
|
|
120
135
|
this.children = children;
|
|
121
|
-
this._required = true;
|
|
122
|
-
this._defaultValue = undefined;
|
|
123
136
|
}
|
|
124
137
|
as(alias) {
|
|
125
138
|
this.alias = alias;
|
|
@@ -198,8 +211,8 @@ class BucketModelFieldBuilder {
|
|
|
198
211
|
const child = children[c];
|
|
199
212
|
const out = BucketModelFieldBuilder.build(tree, child, c, path);
|
|
200
213
|
schema[c] = out.schema;
|
|
201
|
-
hasFileField
|
|
202
|
-
hasEncryptedField
|
|
214
|
+
hasFileField ||= out.hasFile;
|
|
215
|
+
hasEncryptedField ||= out.hasEncrypted;
|
|
203
216
|
defaults[c] = schema[c].defaultValue;
|
|
204
217
|
}
|
|
205
218
|
return { schema, defaults, hasFileField, hasEncryptedField };
|
|
@@ -9,6 +9,31 @@ const dependency_1 = require("../../../../engine/dependency");
|
|
|
9
9
|
* @category NQL
|
|
10
10
|
* */
|
|
11
11
|
class NQL_RuleTree {
|
|
12
|
+
daemon;
|
|
13
|
+
module;
|
|
14
|
+
bucketName;
|
|
15
|
+
query;
|
|
16
|
+
customMetadata;
|
|
17
|
+
debug;
|
|
18
|
+
static OpByType = {
|
|
19
|
+
'boolean': ['==', 'in', 'present'],
|
|
20
|
+
'date': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
21
|
+
'datetime': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
22
|
+
'duration': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
23
|
+
'decimal': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
24
|
+
'dict': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
25
|
+
'enum': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
26
|
+
'file': [],
|
|
27
|
+
'float': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
28
|
+
'int': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
29
|
+
'string': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
30
|
+
'literal': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
31
|
+
'obj': ['contains_any', 'in', 'present'],
|
|
32
|
+
'list': ['contains', 'contains_any', 'present'],
|
|
33
|
+
'union': [],
|
|
34
|
+
'unknown': ['==', 'contains', 'contains_any', 'in', 'present']
|
|
35
|
+
};
|
|
36
|
+
root;
|
|
12
37
|
constructor(daemon, module, bucketName, query, customMetadata, debug = false) {
|
|
13
38
|
this.daemon = daemon;
|
|
14
39
|
this.module = module;
|
|
@@ -189,7 +214,7 @@ class NQL_RuleTree {
|
|
|
189
214
|
.flat(1);
|
|
190
215
|
const dict = {};
|
|
191
216
|
for (const op of opsUnion) {
|
|
192
|
-
dict[op]
|
|
217
|
+
dict[op] ??= 0;
|
|
193
218
|
dict[op]++;
|
|
194
219
|
}
|
|
195
220
|
allowedOps = Object.entries(dict)
|
|
@@ -480,24 +505,6 @@ class NQL_RuleTree {
|
|
|
480
505
|
}
|
|
481
506
|
}
|
|
482
507
|
exports.NQL_RuleTree = NQL_RuleTree;
|
|
483
|
-
NQL_RuleTree.OpByType = {
|
|
484
|
-
'boolean': ['==', 'in', 'present'],
|
|
485
|
-
'date': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
486
|
-
'datetime': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
487
|
-
'duration': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
488
|
-
'decimal': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
489
|
-
'dict': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
490
|
-
'enum': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
491
|
-
'file': [],
|
|
492
|
-
'float': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
493
|
-
'int': ['<', '<=', '==', '>', '>=', 'in', 'present'],
|
|
494
|
-
'string': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
495
|
-
'literal': ['==', 'contains', 'contains_any', 'in', 'present'],
|
|
496
|
-
'obj': ['contains_any', 'in', 'present'],
|
|
497
|
-
'list': ['contains', 'contains_any', 'present'],
|
|
498
|
-
'union': [],
|
|
499
|
-
'unknown': ['==', 'contains', 'contains_any', 'in', 'present']
|
|
500
|
-
};
|
|
501
508
|
/**
|
|
502
509
|
* Builds a NQL_CompiledQuery by splitting it into multiple parts
|
|
503
510
|
*/
|
|
@@ -677,9 +684,9 @@ exports.NQL_Compiler = NQL_Compiler;
|
|
|
677
684
|
* @category NQL
|
|
678
685
|
* */
|
|
679
686
|
class NQL_CompiledQuery {
|
|
687
|
+
parts = {};
|
|
688
|
+
execOrder = [];
|
|
680
689
|
constructor(parts) {
|
|
681
|
-
this.parts = {};
|
|
682
|
-
this.execOrder = [];
|
|
683
690
|
for (let i = 0; i < parts.length; i++) {
|
|
684
691
|
const part = parts[i];
|
|
685
692
|
this.execOrder.push(part.i);
|
|
@@ -11,9 +11,10 @@ exports.NQLRunner = NQLRunner;
|
|
|
11
11
|
* @category NQL
|
|
12
12
|
* */
|
|
13
13
|
class NQL_Engine {
|
|
14
|
+
module;
|
|
15
|
+
runners = {};
|
|
14
16
|
constructor(module) {
|
|
15
17
|
this.module = module;
|
|
16
|
-
this.runners = {};
|
|
17
18
|
for (const b in module.buckets) {
|
|
18
19
|
const bucket = module.buckets[b];
|
|
19
20
|
const meta = bucket.getQueryMeta();
|
|
@@ -8,9 +8,10 @@ const bucket_view_field_builder_1 = require("./bucket_view_field.builder");
|
|
|
8
8
|
* @subcategory Entity
|
|
9
9
|
* */
|
|
10
10
|
class BucketViewBuilder {
|
|
11
|
+
name;
|
|
12
|
+
_fields = {};
|
|
11
13
|
constructor(name) {
|
|
12
14
|
this.name = name;
|
|
13
|
-
this._fields = {};
|
|
14
15
|
}
|
|
15
16
|
fields($) {
|
|
16
17
|
const fieldBuilder = new bucket_view_field_builder_1.BucketViewFieldFactory();
|
|
@@ -11,15 +11,16 @@ const tree_1 = require("../../../../engine/data/tree");
|
|
|
11
11
|
const daemon_1 = require("../../../../engine/daemon");
|
|
12
12
|
const dependency_1 = require("../../../../engine/dependency");
|
|
13
13
|
class ViewValue {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
14
|
+
value = undefined;
|
|
15
|
+
constructor() { }
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
18
|
* @category Elements
|
|
20
19
|
* @subcategory Entity
|
|
21
20
|
* */
|
|
22
21
|
class BucketView {
|
|
22
|
+
bucket;
|
|
23
|
+
schema;
|
|
23
24
|
constructor(bucket, schema) {
|
|
24
25
|
this.bucket = bucket;
|
|
25
26
|
this.schema = schema;
|
|
@@ -6,6 +6,15 @@ exports.$BucketView = exports.$BucketViewField = void 0;
|
|
|
6
6
|
* @subcategory Entity
|
|
7
7
|
* */
|
|
8
8
|
class $BucketViewField {
|
|
9
|
+
name;
|
|
10
|
+
scope;
|
|
11
|
+
alias;
|
|
12
|
+
meta;
|
|
13
|
+
prop;
|
|
14
|
+
children;
|
|
15
|
+
chain;
|
|
16
|
+
$t = 'bucket.view.field';
|
|
17
|
+
'#data';
|
|
9
18
|
constructor(name, scope, alias, meta, prop, children, chain) {
|
|
10
19
|
this.name = name;
|
|
11
20
|
this.scope = scope;
|
|
@@ -14,7 +23,6 @@ class $BucketViewField {
|
|
|
14
23
|
this.prop = prop;
|
|
15
24
|
this.children = children;
|
|
16
25
|
this.chain = chain;
|
|
17
|
-
this.$t = 'bucket.view.field';
|
|
18
26
|
}
|
|
19
27
|
}
|
|
20
28
|
exports.$BucketViewField = $BucketViewField;
|
|
@@ -23,10 +31,13 @@ exports.$BucketViewField = $BucketViewField;
|
|
|
23
31
|
* @subcategory Entity
|
|
24
32
|
* */
|
|
25
33
|
class $BucketView {
|
|
34
|
+
name;
|
|
35
|
+
fields;
|
|
36
|
+
$t = 'bucket.view';
|
|
37
|
+
'#data';
|
|
26
38
|
constructor(name, fields = {}) {
|
|
27
39
|
this.name = name;
|
|
28
40
|
this.fields = fields;
|
|
29
|
-
this.$t = 'bucket.view';
|
|
30
41
|
}
|
|
31
42
|
static getField(schema, path) {
|
|
32
43
|
const find = (fields, path) => {
|
|
@@ -12,6 +12,8 @@ const bucket_model_schema_1 = require("../model/bucket_model.schema");
|
|
|
12
12
|
* @subcategory Entity
|
|
13
13
|
* */
|
|
14
14
|
class BucketViewFieldFactory {
|
|
15
|
+
scope;
|
|
16
|
+
meta;
|
|
15
17
|
raw() {
|
|
16
18
|
return {
|
|
17
19
|
__raw: {}
|
|
@@ -84,11 +86,16 @@ exports.BucketViewFieldFactory = BucketViewFieldFactory;
|
|
|
84
86
|
* @subcategory Entity
|
|
85
87
|
* */
|
|
86
88
|
class BucketViewFieldBuilder {
|
|
89
|
+
scope;
|
|
90
|
+
meta;
|
|
91
|
+
subview;
|
|
92
|
+
$b = 'view.field';
|
|
93
|
+
_prop;
|
|
94
|
+
_chain;
|
|
87
95
|
constructor(scope, meta, subview) {
|
|
88
96
|
this.scope = scope;
|
|
89
97
|
this.meta = meta;
|
|
90
98
|
this.subview = subview;
|
|
91
|
-
this.$b = 'view.field';
|
|
92
99
|
}
|
|
93
100
|
prop(prop) {
|
|
94
101
|
if (this.subview) {
|
|
@@ -7,6 +7,9 @@ const constants_schema_1 = require("./constants.schema");
|
|
|
7
7
|
* @subcategory Entity
|
|
8
8
|
* */
|
|
9
9
|
class ConstantValueBuilder {
|
|
10
|
+
scope;
|
|
11
|
+
key;
|
|
12
|
+
value;
|
|
10
13
|
constructor(scope, key, value) {
|
|
11
14
|
this.scope = scope;
|
|
12
15
|
this.key = key;
|
|
@@ -36,6 +39,7 @@ exports.ConstantValueFactory = ConstantValueFactory;
|
|
|
36
39
|
* @subcategory Entity
|
|
37
40
|
* */
|
|
38
41
|
class ConstantEnumOptionBuilder {
|
|
42
|
+
value;
|
|
39
43
|
constructor(value) {
|
|
40
44
|
this.value = value;
|
|
41
45
|
}
|
|
@@ -60,6 +64,8 @@ exports.ConstantEnumOptionFactory = ConstantEnumOptionFactory;
|
|
|
60
64
|
* @subcategory Entity
|
|
61
65
|
* */
|
|
62
66
|
class ConstantEnumBuilder {
|
|
67
|
+
name;
|
|
68
|
+
options;
|
|
63
69
|
constructor(name, options) {
|
|
64
70
|
this.name = name;
|
|
65
71
|
this.options = options;
|
|
@@ -82,12 +88,13 @@ exports.ConstantEnumBuilder = ConstantEnumBuilder;
|
|
|
82
88
|
* @subcategory Entity
|
|
83
89
|
* */
|
|
84
90
|
class ConstantsBuilder {
|
|
91
|
+
module;
|
|
92
|
+
$b = 'constants';
|
|
93
|
+
name = '*';
|
|
94
|
+
_values = {};
|
|
95
|
+
enums = {};
|
|
85
96
|
constructor(module) {
|
|
86
97
|
this.module = module;
|
|
87
|
-
this.$b = 'constants';
|
|
88
|
-
this.name = '*';
|
|
89
|
-
this._values = {};
|
|
90
|
-
this.enums = {};
|
|
91
98
|
}
|
|
92
99
|
values($) {
|
|
93
100
|
const factory = new ConstantValueFactory();
|
|
@@ -119,7 +126,7 @@ class ConstantsBuilder {
|
|
|
119
126
|
let parent = '';
|
|
120
127
|
for (let i = 0; i < split.length - 1; i++) {
|
|
121
128
|
parent = parent.length ? (`${parent}.${split[i]}`) : split[i];
|
|
122
|
-
enums[parent]
|
|
129
|
+
enums[parent] ??= new constants_schema_1.$ConstantEnum(node.tag.module, parent, {});
|
|
123
130
|
Object.assign(enums[parent].options, enums[k].options);
|
|
124
131
|
}
|
|
125
132
|
}
|