nesoi 3.0.6 → 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 +32 -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/compiler/typescript/transformers/replace_import.transformer.js +8 -1
- 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 +109 -9
- package/lib/engine/module.js +110 -25
- 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
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.MigrationRunner = exports.MigrationStatus = exports.MigrationMethod = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const migrator_1 = require("./migrator");
|
|
40
|
-
const crypto_1 = require("crypto");
|
|
41
|
-
const string_1 = require("../../../../engine/util/string");
|
|
42
|
-
const log_1 = require("../../../../engine/util/log");
|
|
43
|
-
const datetime_1 = require("../../../../engine/data/datetime");
|
|
44
|
-
const daemon_1 = require("../../../../engine/daemon");
|
|
45
|
-
const trx_1 = require("../../../../engine/transaction/trx");
|
|
46
|
-
class MigrationMethod {
|
|
47
|
-
constructor($) {
|
|
48
|
-
this.description = $.description;
|
|
49
|
-
this.up = $.up;
|
|
50
|
-
this.down = $.down;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.MigrationMethod = MigrationMethod;
|
|
54
|
-
class MigrationStatus {
|
|
55
|
-
constructor(fileMigrations, dbMigrations) {
|
|
56
|
-
this.items = dbMigrations.map(migration => ({
|
|
57
|
-
...migration,
|
|
58
|
-
state: 'lost'
|
|
59
|
-
}));
|
|
60
|
-
fileMigrations.forEach(migration => {
|
|
61
|
-
const file = fs.readFileSync(migration.path).toString();
|
|
62
|
-
const filehash = (0, crypto_1.createHash)('md5').update(file).digest('hex');
|
|
63
|
-
const old = this.items.find(item => item.name === migration.name);
|
|
64
|
-
if (old) {
|
|
65
|
-
if (old.filehash === filehash) {
|
|
66
|
-
old.state = 'done';
|
|
67
|
-
old.method = migration.method;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.items.push({
|
|
72
|
-
id: undefined,
|
|
73
|
-
module: migration.module,
|
|
74
|
-
name: migration.name,
|
|
75
|
-
description: migration.method.description,
|
|
76
|
-
batch: undefined,
|
|
77
|
-
hash: migration.hash,
|
|
78
|
-
filehash,
|
|
79
|
-
state: 'pending',
|
|
80
|
-
method: migration.method
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
const lastBatch = Math.max(...this.items.map(item => item.batch || 0), 0);
|
|
85
|
-
this.batch = lastBatch;
|
|
86
|
-
}
|
|
87
|
-
describe() {
|
|
88
|
-
let str = '';
|
|
89
|
-
str += `◆ ${(0, string_1.colored)('Migration Status', 'lightblue')}\n`;
|
|
90
|
-
this.items.forEach(item => {
|
|
91
|
-
const state = {
|
|
92
|
-
'done': () => (0, string_1.colored)('done', 'green'),
|
|
93
|
-
'pending': () => (0, string_1.colored)('pending', 'yellow'),
|
|
94
|
-
'lost': () => (0, string_1.colored)('lost', 'brown'),
|
|
95
|
-
}[item.state]();
|
|
96
|
-
const module = (0, string_1.colored)(item.module, 'lightcyan');
|
|
97
|
-
str += `└ ${item.id || '*'}\t${state}\t${module} ${item.name} @ ${item.batch || '...'}\n`;
|
|
98
|
-
});
|
|
99
|
-
return str;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.MigrationStatus = MigrationStatus;
|
|
103
|
-
class MigrationRunner {
|
|
104
|
-
constructor(dirpath = './migrations') {
|
|
105
|
-
this.dirpath = dirpath;
|
|
106
|
-
this.migrations = [];
|
|
107
|
-
}
|
|
108
|
-
static async scanFiles(daemon, dirpath) {
|
|
109
|
-
const modules = daemon_1.Daemon.getModules(daemon);
|
|
110
|
-
const files = [];
|
|
111
|
-
for (const module of modules) {
|
|
112
|
-
const modulepath = path.join('modules', module.name, dirpath);
|
|
113
|
-
if (!fs.existsSync(modulepath))
|
|
114
|
-
continue;
|
|
115
|
-
fs.readdirSync(modulepath, { withFileTypes: true })
|
|
116
|
-
.forEach(node => {
|
|
117
|
-
const nodePath = path.resolve(modulepath, node.name);
|
|
118
|
-
if (nodePath.endsWith('.d.ts')) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
files.push({
|
|
122
|
-
module: module.name,
|
|
123
|
-
name: node.name,
|
|
124
|
-
path: nodePath
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const migrations = [];
|
|
129
|
-
for (const file of files) {
|
|
130
|
-
const contents = fs.readFileSync(file.path).toString();
|
|
131
|
-
const hash = contents.match(/\$hash\[(.*)\]/)?.[1];
|
|
132
|
-
if (!hash) {
|
|
133
|
-
log_1.Log.error('migrator', 'prepare', `Unable to read hash of migration at ${file.path}`);
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
const { default: method } = await Promise.resolve(`${file.path}`).then(s => __importStar(require(s)));
|
|
137
|
-
if (method instanceof MigrationMethod) {
|
|
138
|
-
const name = file.name.replace('.ts', '').replace('.js', '');
|
|
139
|
-
migrations.push({ module: file.module, name, path: file.path, hash, method });
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return migrations;
|
|
143
|
-
}
|
|
144
|
-
static async scanDb(sql) {
|
|
145
|
-
const db = await sql `
|
|
146
|
-
SELECT * FROM ${sql(migrator_1.Migrator.MIGRATION_TABLE_NAME)}
|
|
147
|
-
ORDER BY id
|
|
148
|
-
`;
|
|
149
|
-
return db;
|
|
150
|
-
}
|
|
151
|
-
static async status(daemon, sql, dirpath) {
|
|
152
|
-
const fileMigrations = await MigrationRunner.scanFiles(daemon, dirpath);
|
|
153
|
-
const dbMigrations = await MigrationRunner.scanDb(sql);
|
|
154
|
-
return new MigrationStatus(fileMigrations, dbMigrations);
|
|
155
|
-
}
|
|
156
|
-
static async up(daemon, sql, mode = 'one', dirpath = './migrations') {
|
|
157
|
-
let status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
158
|
-
console.log(status.describe());
|
|
159
|
-
const pending = status.items.filter(item => item.state === 'pending');
|
|
160
|
-
if (!pending.length) {
|
|
161
|
-
log_1.Log.info('migrator', 'up', 'No migrations to run.');
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
await sql.begin(async (sql) => {
|
|
165
|
-
if (mode === 'one') {
|
|
166
|
-
const migration = pending[0];
|
|
167
|
-
await this.migrateUp(daemon, sql, migration, status.batch + 1);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
for (const migration of pending) {
|
|
171
|
-
await this.migrateUp(daemon, sql, migration, status.batch + 1);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
176
|
-
console.log(status.describe());
|
|
177
|
-
}
|
|
178
|
-
static async down(daemon, sql, mode = 'one', dirpath = './migrations') {
|
|
179
|
-
let status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
180
|
-
console.log(status.describe());
|
|
181
|
-
const lastBatch = status.items.filter(item => item.batch === status.batch);
|
|
182
|
-
if (!lastBatch.length) {
|
|
183
|
-
log_1.Log.info('migrator', 'down', 'No migrations to rollback.');
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
await sql.begin(async (sql) => {
|
|
187
|
-
if (mode === 'one') {
|
|
188
|
-
const migration = lastBatch.at(-1);
|
|
189
|
-
await this.migrateDown(daemon, sql, migration);
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
for (const migration of lastBatch) {
|
|
193
|
-
await this.migrateDown(daemon, sql, migration);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
198
|
-
console.log(status.describe());
|
|
199
|
-
}
|
|
200
|
-
static async injectUp(daemon, sql, migration, dirpath = './migrations') {
|
|
201
|
-
let status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
202
|
-
console.log(status.describe());
|
|
203
|
-
const mig = {
|
|
204
|
-
...migration,
|
|
205
|
-
state: 'pending',
|
|
206
|
-
hash: migration.hash(),
|
|
207
|
-
filehash: '',
|
|
208
|
-
method: {
|
|
209
|
-
up: async ($) => {
|
|
210
|
-
await $.sql.unsafe(migration.sqlUp());
|
|
211
|
-
},
|
|
212
|
-
down: async ($) => {
|
|
213
|
-
await $.sql.unsafe(migration.sqlDown());
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
await sql.begin(async (sql) => {
|
|
218
|
-
await this.migrateUp(daemon, sql, mig, status.batch + 1);
|
|
219
|
-
});
|
|
220
|
-
status = await MigrationRunner.status(daemon, sql, dirpath);
|
|
221
|
-
console.log(status.describe());
|
|
222
|
-
}
|
|
223
|
-
static async migrateUp(daemon, sql, migration, batch) {
|
|
224
|
-
log_1.Log.info('migrator', 'up', `Running migration ${(0, string_1.colored)('▲ UP', 'lightgreen')} ${(0, string_1.colored)(migration.name, 'lightblue')}`);
|
|
225
|
-
const status = await daemon.trx(migration.module)
|
|
226
|
-
.run(async (trx) => {
|
|
227
|
-
trx_1.Trx.set(trx, 'sql', sql);
|
|
228
|
-
await migration.method.up({
|
|
229
|
-
sql,
|
|
230
|
-
trx
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
if (status.state !== 'ok') {
|
|
234
|
-
throw new Error('Migration failed. Rolling back all batch changes.');
|
|
235
|
-
}
|
|
236
|
-
const row = {
|
|
237
|
-
module: migration.module,
|
|
238
|
-
name: migration.name,
|
|
239
|
-
batch,
|
|
240
|
-
timestamp: datetime_1.NesoiDatetime.now(),
|
|
241
|
-
hash: migration.hash,
|
|
242
|
-
filehash: migration.filehash
|
|
243
|
-
};
|
|
244
|
-
if (migration.description) {
|
|
245
|
-
row.description = migration.description;
|
|
246
|
-
}
|
|
247
|
-
await sql `
|
|
248
|
-
INSERT INTO ${sql(migrator_1.Migrator.MIGRATION_TABLE_NAME)}
|
|
249
|
-
${sql(row)}
|
|
250
|
-
`;
|
|
251
|
-
}
|
|
252
|
-
static async migrateDown(daemon, sql, migration) {
|
|
253
|
-
log_1.Log.info('migrator', 'up', `Running migration ${(0, string_1.colored)('▼ DOWN', 'yellow')} ${(0, string_1.colored)(migration.name, 'lightblue')}`);
|
|
254
|
-
const status = await daemon.trx(migration.module)
|
|
255
|
-
.run(async (trx) => {
|
|
256
|
-
trx_1.Trx.set(trx, 'sql', sql);
|
|
257
|
-
await migration.method.down({
|
|
258
|
-
sql,
|
|
259
|
-
trx
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
if (status.state !== 'ok') {
|
|
263
|
-
throw new Error('Migration failed. Rolling back all batch changes.');
|
|
264
|
-
}
|
|
265
|
-
await sql `
|
|
266
|
-
DELETE FROM ${sql(migrator_1.Migrator.MIGRATION_TABLE_NAME)}
|
|
267
|
-
WHERE id = ${migration.id}
|
|
268
|
-
`;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
exports.MigrationRunner = MigrationRunner;
|
|
File without changes
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { AnyTrxNode } from '~/engine/transaction/trx_node';
|
|
3
|
-
// import { NesoiObj } from '~/engine/data/obj';
|
|
4
|
-
// import { NesoiError } from '~/engine/data/error';
|
|
5
|
-
// import { Tree } from '~/engine/data/tree';
|
|
6
|
-
// import { $BucketView } from '../view/bucket_view.schema';
|
|
7
|
-
// import { BucketQuery } from '../query/bucket_query';
|
|
8
|
-
// import { BucketAdapter } from './bucket_adapter';
|
|
9
|
-
// import { MemoryBucketAdapter } from './memory.bucket_adapter';
|
|
10
|
-
// /**
|
|
11
|
-
// * This is a slow implementation of the query engine for a Memory Bucket.
|
|
12
|
-
// *
|
|
13
|
-
// * It goes through all objects and applies all rules. If one returns false,
|
|
14
|
-
// * it skips and goes to the next.
|
|
15
|
-
// */
|
|
16
|
-
// export class MemoryBucketQuery extends BucketQuery {
|
|
17
|
-
// async run<Obj extends NesoiObj, V extends $BucketView>(
|
|
18
|
-
// adapter: BucketAdapter<Obj>,
|
|
19
|
-
// trx: AnyTrxNode,
|
|
20
|
-
// view: V,
|
|
21
|
-
// query: $BucketQuery,
|
|
22
|
-
// pagination?: NQL_Pagination
|
|
23
|
-
// ) {
|
|
24
|
-
// const filtered: Obj[] = [];
|
|
25
|
-
// await this.parse(trx, view, query);
|
|
26
|
-
// const memory = adapter as MemoryBucketAdapter<Obj>;
|
|
27
|
-
// for (const id in memory.data) {
|
|
28
|
-
// const obj = (memory.data as any)[id] as Obj;
|
|
29
|
-
// const match = await this.checkObj(view, obj, query);
|
|
30
|
-
// if (match) {
|
|
31
|
-
// filtered.push(obj);
|
|
32
|
-
// }
|
|
33
|
-
// }
|
|
34
|
-
// return filtered;
|
|
35
|
-
// }
|
|
36
|
-
// private async checkObj<Obj extends NesoiObj, V extends $BucketView>(
|
|
37
|
-
// view: V,
|
|
38
|
-
// obj: Obj,
|
|
39
|
-
// query: $BucketQuery
|
|
40
|
-
// ) {
|
|
41
|
-
// for (const term of query.or) {
|
|
42
|
-
// const match = ('$t' in term) && term.$t === 'bucket.query.rule'
|
|
43
|
-
// ? await this.applyRule(view, obj, term)
|
|
44
|
-
// : await this.checkObj(view, obj, term);
|
|
45
|
-
// if (match) {
|
|
46
|
-
// return true;
|
|
47
|
-
// }
|
|
48
|
-
// }
|
|
49
|
-
// for (const term of query.and) {
|
|
50
|
-
// const match = ('$t' in term) && term.$t === 'bucket.query.rule'
|
|
51
|
-
// ? await this.applyRule(view, obj, term)
|
|
52
|
-
// : await this.checkObj(view, obj, term);
|
|
53
|
-
// if (!match) {
|
|
54
|
-
// return false;
|
|
55
|
-
// }
|
|
56
|
-
// }
|
|
57
|
-
// return true;
|
|
58
|
-
// }
|
|
59
|
-
// private async applyRule<Obj extends NesoiObj, V extends $BucketView>(
|
|
60
|
-
// view: V,
|
|
61
|
-
// obj: Obj,
|
|
62
|
-
// rule: $BucketQueryRule
|
|
63
|
-
// ) {
|
|
64
|
-
// const field = rule.viewField;
|
|
65
|
-
// const objVal = Tree.get(obj, rule.path);
|
|
66
|
-
// let res;
|
|
67
|
-
// switch (field.type) {
|
|
68
|
-
// case 'id':
|
|
69
|
-
// res = await this.applyIdRule(objVal, rule); break;
|
|
70
|
-
// case 'int':
|
|
71
|
-
// case 'float':
|
|
72
|
-
// res = await this.applyNumberRule(objVal, rule); break;
|
|
73
|
-
// case 'string':
|
|
74
|
-
// res = await this.applyStringRule(objVal, rule); break;
|
|
75
|
-
// case 'boolean':
|
|
76
|
-
// res = await this.applyBooleanRule(objVal, rule); break;
|
|
77
|
-
// // TODO
|
|
78
|
-
// // case 'list':
|
|
79
|
-
// // return this.applyListRule(objVal, rule);
|
|
80
|
-
// // case 'obj':
|
|
81
|
-
// // return this.applyObjRule(objVal, rule);
|
|
82
|
-
// }
|
|
83
|
-
// if (rule.not) {
|
|
84
|
-
// res = !res;
|
|
85
|
-
// }
|
|
86
|
-
// return res;
|
|
87
|
-
// }
|
|
88
|
-
// private async applyIdRule(
|
|
89
|
-
// objVal: number|string,
|
|
90
|
-
// rule: $BucketQueryRule
|
|
91
|
-
// ) {
|
|
92
|
-
// switch (rule.op) {
|
|
93
|
-
// case '==':
|
|
94
|
-
// if (typeof rule.parsedValue !== 'number' && typeof rule.parsedValue !== 'string')
|
|
95
|
-
// throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'id');
|
|
96
|
-
// return objVal === rule.parsedValue;
|
|
97
|
-
// case 'in':
|
|
98
|
-
// if (!Array.isArray(rule.parsedValue))
|
|
99
|
-
// throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'id[]');
|
|
100
|
-
// return (rule.parsedValue as (number|string)[]).includes(objVal);
|
|
101
|
-
// case 'present':
|
|
102
|
-
// return (objVal !== undefined) === rule.parsedValue;
|
|
103
|
-
// }
|
|
104
|
-
// }
|
|
105
|
-
// private async applyNumberRule(
|
|
106
|
-
// objVal: number | number[],
|
|
107
|
-
// rule: $BucketQueryRule
|
|
108
|
-
// ) {
|
|
109
|
-
// const isNumber = typeof objVal === 'number';
|
|
110
|
-
// const isNumberList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'number');
|
|
111
|
-
// if (!isNumber && !isNumberList) {
|
|
112
|
-
// return false;
|
|
113
|
-
// }
|
|
114
|
-
// switch (rule.op) {
|
|
115
|
-
// case '<':
|
|
116
|
-
// return (objVal as number) < (rule.parsedValue as number);
|
|
117
|
-
// case '<=':
|
|
118
|
-
// return (objVal as number) <= (rule.parsedValue as number);
|
|
119
|
-
// case '>':
|
|
120
|
-
// return (objVal as number) > (rule.parsedValue as number);
|
|
121
|
-
// case '>=':
|
|
122
|
-
// return (objVal as number) >= (rule.parsedValue as number);
|
|
123
|
-
// case '==':
|
|
124
|
-
// return (objVal as number) === (rule.parsedValue as number);
|
|
125
|
-
// case 'in':
|
|
126
|
-
// return (rule.parsedValue as number[]).includes(objVal as number);
|
|
127
|
-
// case 'contains':
|
|
128
|
-
// return (rule.parsedValue as boolean[]).includes(rule.parsedValue as boolean);
|
|
129
|
-
// case 'contains_any':
|
|
130
|
-
// return (rule.parsedValue as boolean[]).some(v => (rule.parsedValue as boolean[]).includes(v));
|
|
131
|
-
// case 'present':
|
|
132
|
-
// return (objVal !== undefined) === rule.parsedValue;
|
|
133
|
-
// }
|
|
134
|
-
// }
|
|
135
|
-
// private async applyStringRule(
|
|
136
|
-
// objVal: string | string[],
|
|
137
|
-
// rule: $BucketQueryRule
|
|
138
|
-
// ) {
|
|
139
|
-
// const isString = typeof objVal === 'string';
|
|
140
|
-
// const isStringList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'string');
|
|
141
|
-
// if (!isString && !isStringList) {
|
|
142
|
-
// return false;
|
|
143
|
-
// }
|
|
144
|
-
// switch (rule.op) {
|
|
145
|
-
// case '==':
|
|
146
|
-
// if (rule.case_sensitive) {
|
|
147
|
-
// return objVal === rule.parsedValue;
|
|
148
|
-
// }
|
|
149
|
-
// return (objVal as string).toLowerCase() === (rule.parsedValue as string).toLowerCase()
|
|
150
|
-
// case 'contains':
|
|
151
|
-
// if (rule.case_sensitive) {
|
|
152
|
-
// return objVal.includes(rule.parsedValue as string);
|
|
153
|
-
// }
|
|
154
|
-
// return (objVal as string).toLowerCase().includes((rule.parsedValue as string).toLowerCase());
|
|
155
|
-
// case 'contains_any':
|
|
156
|
-
// if (rule.case_sensitive) {
|
|
157
|
-
// return (rule.parsedValue as string[]).some(v => objVal.includes(v.toString()));
|
|
158
|
-
// }
|
|
159
|
-
// return (rule.parsedValue as string[])
|
|
160
|
-
// .map(o => o.toString().toLowerCase())
|
|
161
|
-
// .some(v => objVal.includes(v.toString()));
|
|
162
|
-
// case 'in':
|
|
163
|
-
// return (rule.parsedValue as string|string[]).includes(objVal as string);
|
|
164
|
-
// case 'present':
|
|
165
|
-
// return (objVal !== undefined) === rule.parsedValue;
|
|
166
|
-
// }
|
|
167
|
-
// }
|
|
168
|
-
// private async applyBooleanRule(
|
|
169
|
-
// objVal: boolean | boolean[],
|
|
170
|
-
// rule: $BucketQueryRule
|
|
171
|
-
// ) {
|
|
172
|
-
// const isBoolean = typeof objVal === 'boolean';
|
|
173
|
-
// const isBooleanList = Array.isArray(objVal) && !objVal.some(v => typeof v !== 'boolean');
|
|
174
|
-
// if (!isBoolean && !isBooleanList) {
|
|
175
|
-
// return false;
|
|
176
|
-
// }
|
|
177
|
-
// switch (rule.op) {
|
|
178
|
-
// case '==':
|
|
179
|
-
// return objVal === rule.parsedValue;
|
|
180
|
-
// case 'in':
|
|
181
|
-
// return (rule.parsedValue as boolean[]).includes(objVal as boolean);
|
|
182
|
-
// case 'contains':
|
|
183
|
-
// return (objVal as boolean[]).includes(rule.parsedValue as boolean);
|
|
184
|
-
// case 'contains_any':
|
|
185
|
-
// return (rule.parsedValue as boolean[]).some(v => (objVal as boolean[]).includes(v));
|
|
186
|
-
// case 'present':
|
|
187
|
-
// return (objVal !== undefined) === rule.parsedValue;
|
|
188
|
-
// }
|
|
189
|
-
// }
|
|
190
|
-
// // private async applyObjRule<Obj extends NesoiObj, V extends $BucketView>(
|
|
191
|
-
// // objVal: Record<string, any>,
|
|
192
|
-
// // rule: $BucketQueryRule
|
|
193
|
-
// // ) {
|
|
194
|
-
// // if (typeof objVal !== 'object' && !Array.isArray(objVal)) {
|
|
195
|
-
// // return false;
|
|
196
|
-
// // }
|
|
197
|
-
// // switch (rule.op) {
|
|
198
|
-
// // // case '==':
|
|
199
|
-
// // // if (typeof rule.parsedValue !== 'object' && !Array.isArray(rule.parsedValue))
|
|
200
|
-
// // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
|
|
201
|
-
// // // return objVal === rule.parsedValue;
|
|
202
|
-
// // case 'contains':
|
|
203
|
-
// // if (typeof rule.parsedValue !== 'string')
|
|
204
|
-
// // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'string');
|
|
205
|
-
// // return Object.keys(objVal).includes(rule.parsedValue);
|
|
206
|
-
// // // case 'contains_any':
|
|
207
|
-
// // // if (!Array.isArray(rule.parsedValue))
|
|
208
|
-
// // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
|
|
209
|
-
// // // return rule.parsedValue.some(v => Object.keys(objVal).includes(v));
|
|
210
|
-
// // // case 'in':
|
|
211
|
-
// // // if (!Array.isArray(rule.parsedValue))
|
|
212
|
-
// // // throw NesoiError.Bucket.Query.InvalidRuleValueType(rule.path, 'object');
|
|
213
|
-
// // // return (rule.parsedValue as Record<string, any>[]).includes(objVal);
|
|
214
|
-
// // case 'present':
|
|
215
|
-
// // return objVal !== undefined;
|
|
216
|
-
// // }
|
|
217
|
-
// // }
|
|
218
|
-
// }
|
|
File without changes
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { BucketAdapterConfig } from './bucket_adapter';
|
|
3
|
-
// import { MemoryBucketAdapter } from './memory.bucket_adapter';
|
|
4
|
-
// import { $Bucket } from '../bucket.schema';
|
|
5
|
-
// import { AnyTrxNode } from '~/engine/transaction/trx_node';
|
|
6
|
-
// import { NQL_AnyQuery, NQL_Pagination } from '../query/nql.schema';
|
|
7
|
-
// export class SlowMemoryBucketAdapter<
|
|
8
|
-
// B extends $Bucket,
|
|
9
|
-
// Obj extends B['#data']
|
|
10
|
-
// > extends MemoryBucketAdapter<B, Obj> {
|
|
11
|
-
// constructor(
|
|
12
|
-
// public schema: $Bucket,
|
|
13
|
-
// protected timeout: number,
|
|
14
|
-
// data: Record<Obj['id'], Obj> = {} as any,
|
|
15
|
-
// config?: BucketAdapterConfig
|
|
16
|
-
// ) {
|
|
17
|
-
// super(schema, data, config);
|
|
18
|
-
// }
|
|
19
|
-
// private wrap<T extends Promise<any>>(scale: number, fn: () => T): T {
|
|
20
|
-
// return new Promise((resolve, reject) => {
|
|
21
|
-
// setTimeout(() => {
|
|
22
|
-
// fn()
|
|
23
|
-
// .then(resolve)
|
|
24
|
-
// .catch(reject);
|
|
25
|
-
// }, this.timeout*scale);
|
|
26
|
-
// }) as any;
|
|
27
|
-
// }
|
|
28
|
-
// /* Read operations */
|
|
29
|
-
// index(trx: AnyTrxNode) {
|
|
30
|
-
// return this.wrap(5, () => super.index(trx));
|
|
31
|
-
// }
|
|
32
|
-
// get(trx: AnyTrxNode, id: Obj['id']) {
|
|
33
|
-
// return this.wrap(1, () => super.get(trx, id));
|
|
34
|
-
// }
|
|
35
|
-
// async query<
|
|
36
|
-
// MetadataOnly extends boolean
|
|
37
|
-
// >(
|
|
38
|
-
// trx: AnyTrxNode,
|
|
39
|
-
// query: NQL_AnyQuery,
|
|
40
|
-
// pagination?: NQL_Pagination,
|
|
41
|
-
// config?: {
|
|
42
|
-
// metadataOnly: MetadataOnly
|
|
43
|
-
// }
|
|
44
|
-
// ): Promise<MetadataOnly extends true ? { id: Obj['id'], [x: string]: any }[] : Obj[]> {
|
|
45
|
-
// return this.wrap(3, () => super.query(trx, query, pagination, config));
|
|
46
|
-
// }
|
|
47
|
-
// }
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { AnyTrxEngine } from '../../transaction/trx_engine';
|
|
2
|
-
import { $Module } from "../../../schema";
|
|
3
|
-
export type CLIData<M extends $Module, Msg extends keyof M['messages']> = Omit<M['messages'][Msg]['#raw'], '$'>;
|
|
4
|
-
export declare class MonolythCLI {
|
|
5
|
-
private trxEngines;
|
|
6
|
-
private module?;
|
|
7
|
-
constructor(trxEngines: Record<string, AnyTrxEngine>);
|
|
8
|
-
run(): Promise<void>;
|
|
9
|
-
private runCmd;
|
|
10
|
-
private cmdHelp;
|
|
11
|
-
private cmdClear;
|
|
12
|
-
private cmdListModules;
|
|
13
|
-
private cmdInvokeInteractive;
|
|
14
|
-
private cmdPickModule;
|
|
15
|
-
private cmdInvoke;
|
|
16
|
-
}
|
|
17
|
-
export declare enum Color {
|
|
18
|
-
black = "0;30",
|
|
19
|
-
red = "0;31",
|
|
20
|
-
green = "0;32",
|
|
21
|
-
brown = "0;33",
|
|
22
|
-
blue = "0;34",
|
|
23
|
-
purple = "0;35",
|
|
24
|
-
cyan = "0;36",
|
|
25
|
-
lightgray = "0;37",
|
|
26
|
-
darkgray = "1;30",
|
|
27
|
-
lightred = "1;31",
|
|
28
|
-
lightgreen = "1;32",
|
|
29
|
-
yellow = "1;33",
|
|
30
|
-
lightblue = "1;34",
|
|
31
|
-
lightpurple = "1;35",
|
|
32
|
-
lightcyan = "1;36"
|
|
33
|
-
}
|
|
34
|
-
export default class Console {
|
|
35
|
-
static colored(msg: string, color: keyof typeof Color): string;
|
|
36
|
-
static select(title: string, options: string[], defaul?: number): Promise<string>;
|
|
37
|
-
static question(text: string, defaul?: string, prefix?: string): Promise<string>;
|
|
38
|
-
static waitForAnyKey(title?: string): Promise<void>;
|
|
39
|
-
static yesOrNo(text: string, defaul?: 'y' | 'n'): Promise<boolean>;
|
|
40
|
-
static step(msg: string): void;
|
|
41
|
-
static info(msg: string): void;
|
|
42
|
-
static cmd(msg: string): void;
|
|
43
|
-
static error(msg: string): void;
|
|
44
|
-
static header(module: string): void;
|
|
45
|
-
}
|