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
|
@@ -0,0 +1,249 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
var _a;
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.MigrationRunner = void 0;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const string_1 = require("../../../../../engine/util/string");
|
|
44
|
+
const log_1 = require("../../../../../engine/util/log");
|
|
45
|
+
const datetime_1 = require("../../../../../engine/data/datetime");
|
|
46
|
+
const daemon_1 = require("../../../../../engine/daemon");
|
|
47
|
+
const trx_1 = require("../../../../../engine/transaction/trx");
|
|
48
|
+
const status_1 = require("./status");
|
|
49
|
+
const __1 = require("..");
|
|
50
|
+
const ui_1 = __importDefault(require("../../../../../engine/cli/ui"));
|
|
51
|
+
class MigrationRunner {
|
|
52
|
+
// Scan (to generate status)
|
|
53
|
+
static async scanFiles(daemon, migrations_dir) {
|
|
54
|
+
const modules = daemon_1.Daemon.getModules(daemon);
|
|
55
|
+
// Read migration files of each module
|
|
56
|
+
const files = [];
|
|
57
|
+
for (const module of modules) {
|
|
58
|
+
const modulepath = path.join('modules', module.name, migrations_dir);
|
|
59
|
+
if (!fs.existsSync(modulepath))
|
|
60
|
+
continue;
|
|
61
|
+
fs.readdirSync(modulepath, { withFileTypes: true })
|
|
62
|
+
.forEach(node => {
|
|
63
|
+
const nodePath = path.resolve(modulepath, node.name);
|
|
64
|
+
if (nodePath.endsWith('.d.ts')) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
files.push({
|
|
68
|
+
module: module.name,
|
|
69
|
+
name: node.name,
|
|
70
|
+
path: nodePath
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Extract migration routine of each file
|
|
75
|
+
const migrationFiles = [];
|
|
76
|
+
for (const file of files) {
|
|
77
|
+
const { default: routine } = await Promise.resolve(`${file.path}`).then(s => __importStar(require(s)));
|
|
78
|
+
if (routine instanceof __1.MigrationRoutine) {
|
|
79
|
+
const name = file.name.replace(/'.[t|j]s'/, '');
|
|
80
|
+
migrationFiles.push({
|
|
81
|
+
...file,
|
|
82
|
+
name,
|
|
83
|
+
routine
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
log_1.Log.warn('migrator', 'scan', `File at ${file.path} doesn't appear to be a migration. Skipping it.`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return migrationFiles;
|
|
91
|
+
}
|
|
92
|
+
static async scanRows(sql) {
|
|
93
|
+
const db = await sql `
|
|
94
|
+
SELECT * FROM ${sql(_a.MIGRATION_TABLE_NAME)}
|
|
95
|
+
ORDER BY id
|
|
96
|
+
`;
|
|
97
|
+
return db;
|
|
98
|
+
}
|
|
99
|
+
static async status(daemon, sql, migrations_dir) {
|
|
100
|
+
const migrationFiles = await _a.scanFiles(daemon, migrations_dir);
|
|
101
|
+
const migrationRows = await _a.scanRows(sql);
|
|
102
|
+
return new status_1.MigrationRunnerStatus(migrationFiles, migrationRows);
|
|
103
|
+
}
|
|
104
|
+
// Public Up / Down
|
|
105
|
+
static async up(daemon, sql, mode = 'one', dirpath = 'migrations') {
|
|
106
|
+
let status = await _a.status(daemon, sql, dirpath);
|
|
107
|
+
console.log(status.describe());
|
|
108
|
+
const pending = status.items.filter(item => item.state === 'pending');
|
|
109
|
+
if (!pending.length) {
|
|
110
|
+
log_1.Log.info('migrator', 'up', 'No migrations to run.');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const n = (mode === 'one' ? 1 : pending.length).toString();
|
|
114
|
+
const confirm = await ui_1.default.yesOrNo(`Run ${(0, string_1.colored)(n, 'green')} migration(s) ${(0, string_1.colored)('▲ UP', 'lightgreen')}?`);
|
|
115
|
+
if (!confirm) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
await sql.begin(async (sql) => {
|
|
119
|
+
if (mode === 'one') {
|
|
120
|
+
const migration = pending[0];
|
|
121
|
+
await this.migrateUp(daemon, sql, migration, status.batch + 1);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
for (const migration of pending) {
|
|
125
|
+
await this.migrateUp(daemon, sql, migration, status.batch + 1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
status = await _a.status(daemon, sql, dirpath);
|
|
130
|
+
console.log(status.describe());
|
|
131
|
+
}
|
|
132
|
+
static async down(daemon, sql, mode = 'one', dirpath = 'migrations') {
|
|
133
|
+
let status = await _a.status(daemon, sql, dirpath);
|
|
134
|
+
console.log(status.describe());
|
|
135
|
+
const lastBatch = status.items.filter(item => item.batch === status.batch);
|
|
136
|
+
if (!lastBatch.length) {
|
|
137
|
+
log_1.Log.info('migrator', 'down', 'No migrations to rollback.');
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const n = mode === 'one' ? 'one' : 'last batch of';
|
|
141
|
+
const confirm = await ui_1.default.yesOrNo(`Rollback ${(0, string_1.colored)(n, 'green')} migration(s) ${(0, string_1.colored)('▼ DOWN', 'red')}?`);
|
|
142
|
+
if (!confirm) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
await sql.begin(async (sql) => {
|
|
146
|
+
if (mode === 'one') {
|
|
147
|
+
const migration = lastBatch.at(-1);
|
|
148
|
+
await this.migrateDown(daemon, sql, migration);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
for (const migration of lastBatch) {
|
|
152
|
+
await this.migrateDown(daemon, sql, migration);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
status = await _a.status(daemon, sql, dirpath);
|
|
157
|
+
console.log(status.describe());
|
|
158
|
+
}
|
|
159
|
+
// Implementation Up/Down
|
|
160
|
+
static async migrateUp(daemon, sql, migration, batch) {
|
|
161
|
+
log_1.Log.info('migrator', 'up', `Running migration ${(0, string_1.colored)('▲ UP', 'lightgreen')} ${(0, string_1.colored)(migration.name, 'lightblue')}`);
|
|
162
|
+
const status = await daemon.trx(migration.module)
|
|
163
|
+
.run(async (trx) => {
|
|
164
|
+
trx_1.Trx.set(trx, 'sql', sql);
|
|
165
|
+
await migration.routine.up({
|
|
166
|
+
sql,
|
|
167
|
+
trx
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
if (status.state !== 'ok') {
|
|
171
|
+
throw new Error('Migration failed. Rolling back all batch changes.');
|
|
172
|
+
}
|
|
173
|
+
const row = {
|
|
174
|
+
module: migration.module,
|
|
175
|
+
name: migration.name,
|
|
176
|
+
description: migration.routine.description,
|
|
177
|
+
batch,
|
|
178
|
+
timestamp: datetime_1.NesoiDatetime.now(),
|
|
179
|
+
hash: migration.hash || null
|
|
180
|
+
};
|
|
181
|
+
if (migration.description) {
|
|
182
|
+
row.description = migration.description;
|
|
183
|
+
}
|
|
184
|
+
await sql `
|
|
185
|
+
INSERT INTO ${sql(_a.MIGRATION_TABLE_NAME)}
|
|
186
|
+
${sql(row)}
|
|
187
|
+
`;
|
|
188
|
+
}
|
|
189
|
+
static async migrateDown(daemon, sql, migration) {
|
|
190
|
+
const name = (0, string_1.colored)(migration.name, 'lightblue');
|
|
191
|
+
log_1.Log.info('migrator', 'up', `Running migration ${(0, string_1.colored)('▼ DOWN', 'yellow')} ${name}`);
|
|
192
|
+
if (migration.state === 'lost') {
|
|
193
|
+
const del = await ui_1.default.yesOrNo(`The migration ${name} is ${(0, string_1.colored)('lost', 'red')}, skip and delete it? ${(0, string_1.colored)('Warning: this might cause inconsistencies', 'red')}.`);
|
|
194
|
+
if (!del) {
|
|
195
|
+
throw new Error(`Migration ${migration.name} was lost, unable to migrate down.`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
const status = await daemon.trx(migration.module)
|
|
200
|
+
.run(async (trx) => {
|
|
201
|
+
trx_1.Trx.set(trx, 'sql', sql);
|
|
202
|
+
await migration.routine.down({
|
|
203
|
+
sql,
|
|
204
|
+
trx
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
if (status.state !== 'ok') {
|
|
208
|
+
throw new Error('Migration failed. Rolling back all batch changes.');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
await sql `
|
|
212
|
+
DELETE FROM ${sql(_a.MIGRATION_TABLE_NAME)}
|
|
213
|
+
WHERE id = ${migration.id}
|
|
214
|
+
`;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.MigrationRunner = MigrationRunner;
|
|
218
|
+
_a = MigrationRunner;
|
|
219
|
+
MigrationRunner.MIGRATION_TABLE_NAME = '__nesoi_migrations';
|
|
220
|
+
MigrationRunner.fromSchema = {
|
|
221
|
+
up: async (daemon, sql, migration, dirpath = 'migrations') => {
|
|
222
|
+
let status = await _a.status(daemon, sql, dirpath);
|
|
223
|
+
console.log(status.describe());
|
|
224
|
+
const routine = new __1.MigrationRoutine({
|
|
225
|
+
description: migration.description,
|
|
226
|
+
up: async ($) => {
|
|
227
|
+
for (const sql of migration.sqlUp()) {
|
|
228
|
+
await $.sql.unsafe(sql);
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
down: async ($) => {
|
|
232
|
+
for (const sql of migration.sqlDown()) {
|
|
233
|
+
await $.sql.unsafe(sql);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
const mig = {
|
|
238
|
+
...migration,
|
|
239
|
+
state: 'pending',
|
|
240
|
+
hash: routine.hash,
|
|
241
|
+
routine
|
|
242
|
+
};
|
|
243
|
+
await sql.begin(async (sql) => {
|
|
244
|
+
await _a.migrateUp(daemon, sql, mig, status.batch + 1);
|
|
245
|
+
});
|
|
246
|
+
status = await _a.status(daemon, sql, dirpath);
|
|
247
|
+
console.log(status.describe());
|
|
248
|
+
}
|
|
249
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MigrationFile, MigrationRoutine, MigrationRow } from '..';
|
|
2
|
+
export declare class MigrationRunnerStatus {
|
|
3
|
+
items: {
|
|
4
|
+
state: 'done' | 'pending' | 'lost' | 'modified';
|
|
5
|
+
id?: number;
|
|
6
|
+
module: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
batch?: number;
|
|
10
|
+
timestamp?: string;
|
|
11
|
+
hash?: string;
|
|
12
|
+
routine?: MigrationRoutine;
|
|
13
|
+
}[];
|
|
14
|
+
batch: number;
|
|
15
|
+
constructor(migrationFiles: MigrationFile[], migrationRows: MigrationRow[]);
|
|
16
|
+
describe(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationRunnerStatus = void 0;
|
|
4
|
+
const string_1 = require("../../../../../engine/util/string");
|
|
5
|
+
class MigrationRunnerStatus {
|
|
6
|
+
constructor(migrationFiles, migrationRows) {
|
|
7
|
+
this.items = migrationRows.map(migration => ({
|
|
8
|
+
...migration,
|
|
9
|
+
state: 'lost'
|
|
10
|
+
}));
|
|
11
|
+
migrationFiles.forEach(migration => {
|
|
12
|
+
const hash = migration.routine.hash;
|
|
13
|
+
const old = this.items.find(item => item.name === migration.name);
|
|
14
|
+
if (old) {
|
|
15
|
+
if (!old.hash || old.hash === hash) {
|
|
16
|
+
old.state = 'done';
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
old.state = 'modified';
|
|
20
|
+
}
|
|
21
|
+
old.routine = migration.routine;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.items.push({
|
|
25
|
+
id: undefined,
|
|
26
|
+
module: migration.module,
|
|
27
|
+
name: migration.name,
|
|
28
|
+
description: migration.routine.description,
|
|
29
|
+
batch: undefined,
|
|
30
|
+
hash,
|
|
31
|
+
state: 'pending',
|
|
32
|
+
routine: migration.routine
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const lastBatch = Math.max(...this.items.map(item => item.batch || 0), 0);
|
|
37
|
+
this.batch = lastBatch;
|
|
38
|
+
}
|
|
39
|
+
describe() {
|
|
40
|
+
let str = '';
|
|
41
|
+
str += `◆ ${(0, string_1.colored)('Migration Status', 'lightblue')}\n`;
|
|
42
|
+
this.items.forEach(item => {
|
|
43
|
+
const state = {
|
|
44
|
+
'done': () => (0, string_1.colored)('done', 'green'),
|
|
45
|
+
'pending': () => (0, string_1.colored)('pending', 'yellow'),
|
|
46
|
+
'lost': () => (0, string_1.colored)('lost', 'red'),
|
|
47
|
+
'modified': () => (0, string_1.colored)('modified', 'brown'),
|
|
48
|
+
}[item.state]();
|
|
49
|
+
const module = (0, string_1.colored)(item.module, 'lightcyan');
|
|
50
|
+
str += `└ ${item.id || '*'}\t${state}\t${module} ${item.name} @ ${item.batch || '...'}\n`;
|
|
51
|
+
});
|
|
52
|
+
return str;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.MigrationRunnerStatus = MigrationRunnerStatus;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CLIAdapter, CLICommand } from "../../../engine/cli/cli_adapter";
|
|
2
2
|
import { PostgresProvider } from './postgres.provider';
|
|
3
3
|
import { AnyDaemon } from "../../../engine/daemon";
|
|
4
|
+
import { CLI } from "../../../engine/cli/cli";
|
|
4
5
|
export declare class cmd_check extends CLICommand {
|
|
5
6
|
provider: PostgresProvider;
|
|
6
7
|
constructor(provider: PostgresProvider);
|
|
@@ -23,6 +24,14 @@ export declare class cmd_status extends CLICommand {
|
|
|
23
24
|
constructor(provider: PostgresProvider);
|
|
24
25
|
run(daemon: AnyDaemon): Promise<void>;
|
|
25
26
|
}
|
|
27
|
+
export declare class cmd_make_empty_migration extends CLICommand {
|
|
28
|
+
cli: CLI;
|
|
29
|
+
provider: PostgresProvider;
|
|
30
|
+
constructor(cli: CLI, provider: PostgresProvider);
|
|
31
|
+
run(daemon: AnyDaemon, $: {
|
|
32
|
+
name?: string;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
}
|
|
26
35
|
export declare class cmd_make_migrations extends CLICommand {
|
|
27
36
|
provider: PostgresProvider;
|
|
28
37
|
constructor(provider: PostgresProvider);
|
|
@@ -61,6 +70,7 @@ export declare class cmd_import_csv extends CLICommand {
|
|
|
61
70
|
run(daemon: AnyDaemon, input: Record<string, any>): Promise<void>;
|
|
62
71
|
}
|
|
63
72
|
export declare class PostgresCLI extends CLIAdapter {
|
|
73
|
+
cli: CLI;
|
|
64
74
|
provider: PostgresProvider;
|
|
65
|
-
constructor(provider: PostgresProvider);
|
|
75
|
+
constructor(cli: CLI, provider: PostgresProvider);
|
|
66
76
|
}
|
|
@@ -3,15 +3,16 @@ 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.PostgresCLI = exports.cmd_import_csv = exports.cmd_query = exports.cmd_migrate_one_down = exports.cmd_migrate_down = exports.cmd_migrate_one_up = exports.cmd_migrate_up = exports.cmd_make_migrations = exports.cmd_status = exports.cmd_create_db = exports.cmd_tables = exports.cmd_check = void 0;
|
|
6
|
+
exports.PostgresCLI = exports.cmd_import_csv = exports.cmd_query = exports.cmd_migrate_one_down = exports.cmd_migrate_down = exports.cmd_migrate_one_up = exports.cmd_migrate_up = exports.cmd_make_migrations = exports.cmd_make_empty_migration = exports.cmd_status = exports.cmd_create_db = exports.cmd_tables = exports.cmd_check = void 0;
|
|
7
7
|
const cli_adapter_1 = require("../../../engine/cli/cli_adapter");
|
|
8
8
|
const database_1 = require("./migrator/database");
|
|
9
|
+
const provider_1 = require("./migrator/generator/provider");
|
|
9
10
|
const ui_1 = __importDefault(require("../../../engine/cli/ui"));
|
|
10
|
-
const migrator_1 = require("./migrator");
|
|
11
11
|
const daemon_1 = require("../../../engine/daemon");
|
|
12
|
-
const runner_1 = require("./migrator/runner");
|
|
13
12
|
const postgres_bucket_adapter_1 = require("./postgres.bucket_adapter");
|
|
14
13
|
const csv_1 = require("./migrator/csv");
|
|
14
|
+
const runner_1 = require("./migrator/runner/runner");
|
|
15
|
+
const migration_1 = require("./migrator/generator/migration");
|
|
15
16
|
class cmd_check extends cli_adapter_1.CLICommand {
|
|
16
17
|
constructor(provider) {
|
|
17
18
|
super('any', 'check', 'check', 'Check if the connection to PostgreSQL is working properly');
|
|
@@ -23,7 +24,7 @@ class cmd_check extends cli_adapter_1.CLICommand {
|
|
|
23
24
|
ui_1.default.result('ok', 'Connection to PostgreSQL working.');
|
|
24
25
|
else
|
|
25
26
|
ui_1.default.result('error', 'Connection to PostgreSQL not working.', res);
|
|
26
|
-
await
|
|
27
|
+
await provider_1.MigrationProvider.create(daemon, this.provider.sql);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
exports.cmd_check = cmd_check;
|
|
@@ -60,7 +61,7 @@ class cmd_create_db extends cli_adapter_1.CLICommand {
|
|
|
60
61
|
catch (e) {
|
|
61
62
|
ui_1.default.result('error', `Failed to create database ${name}`, e);
|
|
62
63
|
}
|
|
63
|
-
await
|
|
64
|
+
await provider_1.MigrationProvider.create(daemon, this.provider.sql);
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
exports.cmd_create_db = cmd_create_db;
|
|
@@ -70,24 +71,40 @@ class cmd_status extends cli_adapter_1.CLICommand {
|
|
|
70
71
|
this.provider = provider;
|
|
71
72
|
}
|
|
72
73
|
async run(daemon) {
|
|
73
|
-
const migrator = await
|
|
74
|
+
const migrator = await provider_1.MigrationProvider.create(daemon, this.provider.sql);
|
|
74
75
|
console.log(migrator.status.describe());
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
exports.cmd_status = cmd_status;
|
|
79
|
+
class cmd_make_empty_migration extends cli_adapter_1.CLICommand {
|
|
80
|
+
constructor(cli, provider) {
|
|
81
|
+
super('any', 'make empty migration', 'make empty migration( NAME)', 'Generate an empty migration to be filled by the user', /(\w*)/, ['name']);
|
|
82
|
+
this.cli = cli;
|
|
83
|
+
this.provider = provider;
|
|
84
|
+
}
|
|
85
|
+
async run(daemon, $) {
|
|
86
|
+
const module = await ui_1.default.select('Pick a module to create the migration into:', daemon_1.Daemon.getModules(daemon).map(m => m.name));
|
|
87
|
+
const name = $.name || await ui_1.default.question('Migration name');
|
|
88
|
+
const migration = migration_1.$Migration.empty(module.value, name);
|
|
89
|
+
const filepath = migration.save();
|
|
90
|
+
this.cli.openEditor(filepath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.cmd_make_empty_migration = cmd_make_empty_migration;
|
|
78
94
|
class cmd_make_migrations extends cli_adapter_1.CLICommand {
|
|
79
95
|
constructor(provider) {
|
|
80
96
|
super('any', 'make migrations', 'make migrations( TAG)', 'Generate migrations for the bucket(s) using PostgresBucketAdapter', /(\w*)/, ['tag']);
|
|
81
97
|
this.provider = provider;
|
|
82
98
|
}
|
|
83
99
|
async run(daemon, $) {
|
|
100
|
+
console.clear();
|
|
84
101
|
// TODO: restrict by tag
|
|
85
|
-
const migrator = await
|
|
102
|
+
const migrator = await provider_1.MigrationProvider.create(daemon, this.provider.sql);
|
|
86
103
|
const migrations = await migrator.generate();
|
|
87
104
|
for (const migration of migrations) {
|
|
88
|
-
console.log(migration.describe());
|
|
89
105
|
migration.save();
|
|
90
106
|
}
|
|
107
|
+
await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'batch');
|
|
91
108
|
}
|
|
92
109
|
}
|
|
93
110
|
exports.cmd_make_migrations = cmd_make_migrations;
|
|
@@ -97,6 +114,7 @@ class cmd_migrate_up extends cli_adapter_1.CLICommand {
|
|
|
97
114
|
this.provider = provider;
|
|
98
115
|
}
|
|
99
116
|
async run(daemon) {
|
|
117
|
+
console.clear();
|
|
100
118
|
await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'batch');
|
|
101
119
|
}
|
|
102
120
|
}
|
|
@@ -107,6 +125,7 @@ class cmd_migrate_one_up extends cli_adapter_1.CLICommand {
|
|
|
107
125
|
this.provider = provider;
|
|
108
126
|
}
|
|
109
127
|
async run(daemon) {
|
|
128
|
+
console.clear();
|
|
110
129
|
await runner_1.MigrationRunner.up(daemon, this.provider.sql, 'one');
|
|
111
130
|
}
|
|
112
131
|
}
|
|
@@ -117,6 +136,7 @@ class cmd_migrate_down extends cli_adapter_1.CLICommand {
|
|
|
117
136
|
this.provider = provider;
|
|
118
137
|
}
|
|
119
138
|
async run(daemon) {
|
|
139
|
+
console.clear();
|
|
120
140
|
await runner_1.MigrationRunner.down(daemon, this.provider.sql, 'batch');
|
|
121
141
|
}
|
|
122
142
|
}
|
|
@@ -127,6 +147,7 @@ class cmd_migrate_one_down extends cli_adapter_1.CLICommand {
|
|
|
127
147
|
this.provider = provider;
|
|
128
148
|
}
|
|
129
149
|
async run(daemon) {
|
|
150
|
+
console.clear();
|
|
130
151
|
await runner_1.MigrationRunner.down(daemon, this.provider.sql, 'one');
|
|
131
152
|
}
|
|
132
153
|
}
|
|
@@ -158,13 +179,14 @@ class cmd_import_csv extends cli_adapter_1.CLICommand {
|
|
|
158
179
|
})))
|
|
159
180
|
.flat(1);
|
|
160
181
|
const bucket = await ui_1.default.select('Bucket', buckets, b => b.name);
|
|
161
|
-
await csv_1.CSV.import(this.provider.sql, bucket.tableName, input.path);
|
|
182
|
+
await csv_1.CSV.import(this.provider.sql, bucket.value.tableName, input.path);
|
|
162
183
|
}
|
|
163
184
|
}
|
|
164
185
|
exports.cmd_import_csv = cmd_import_csv;
|
|
165
186
|
class PostgresCLI extends cli_adapter_1.CLIAdapter {
|
|
166
|
-
constructor(provider) {
|
|
167
|
-
super();
|
|
187
|
+
constructor(cli, provider) {
|
|
188
|
+
super(cli);
|
|
189
|
+
this.cli = cli;
|
|
168
190
|
this.provider = provider;
|
|
169
191
|
this.commands = {
|
|
170
192
|
'check': new cmd_check(provider),
|
|
@@ -172,6 +194,7 @@ class PostgresCLI extends cli_adapter_1.CLIAdapter {
|
|
|
172
194
|
'create db': new cmd_create_db(provider),
|
|
173
195
|
'status': new cmd_status(provider),
|
|
174
196
|
'make migrations': new cmd_make_migrations(provider),
|
|
197
|
+
'make empty migration': new cmd_make_empty_migration(cli, provider),
|
|
175
198
|
'migrate up': new cmd_migrate_up(provider),
|
|
176
199
|
'migrate one up': new cmd_migrate_one_up(provider),
|
|
177
200
|
'migrate down': new cmd_migrate_down(provider),
|
|
@@ -6,9 +6,9 @@ const log_1 = require("../../../engine/util/log");
|
|
|
6
6
|
const inline_app_1 = require("../../../engine/apps/inline.app");
|
|
7
7
|
const postgres_provider_1 = require("../src/postgres.provider");
|
|
8
8
|
const postgres_bucket_adapter_1 = require("../src/postgres.bucket_adapter");
|
|
9
|
-
const migrator_1 = require("../src/migrator");
|
|
10
|
-
const runner_1 = require("../src/migrator/runner");
|
|
11
9
|
const datetime_1 = require("../../../engine/data/datetime");
|
|
10
|
+
const provider_1 = require("../src/migrator/generator/provider");
|
|
11
|
+
const runner_1 = require("../src/migrator/runner/runner");
|
|
12
12
|
log_1.Log.level = 'warn';
|
|
13
13
|
// TODO: read this from env
|
|
14
14
|
const PostgresConfig = {
|
|
@@ -72,11 +72,11 @@ async function setup() {
|
|
|
72
72
|
// TODO: encapsulate this
|
|
73
73
|
// await Database.createDatabase('NESOI_TEST', PostgresConfig.connection, { if_exists: 'delete' });
|
|
74
74
|
const pg = postgres_provider_1.PostgresProvider.make('pg', PostgresConfig).up();
|
|
75
|
-
const migrator = await
|
|
75
|
+
const migrator = await provider_1.MigrationProvider.create(daemon, pg.sql);
|
|
76
76
|
const migration = await migrator.generateForBucket('MODULE', 'BUCKET', 'nesoi_test_table');
|
|
77
77
|
if (migration) {
|
|
78
78
|
migration.name = 'postgres.bucket_adapter.test';
|
|
79
|
-
await runner_1.MigrationRunner.
|
|
79
|
+
await runner_1.MigrationRunner.fromSchema.up(daemon, pg.sql, migration);
|
|
80
80
|
}
|
|
81
81
|
// migration?.save();
|
|
82
82
|
// await MigrationRunner.up(daemon, 'one', PostgresConfig);
|
|
@@ -3,6 +3,9 @@ import { MonolythCompiler } from '../monolyth_compiler';
|
|
|
3
3
|
/**
|
|
4
4
|
* [Monolyth Compiler Stage #2]
|
|
5
5
|
* Build typescript files to build folder
|
|
6
|
+
*
|
|
7
|
+
* @category Monolyth Compiler
|
|
8
|
+
* @subcategory Stages
|
|
6
9
|
*/
|
|
7
10
|
export declare class BuildTypescriptStage {
|
|
8
11
|
private monolyth;
|
|
@@ -43,6 +43,9 @@ const app_1 = require("../../../../engine/apps/app");
|
|
|
43
43
|
/**
|
|
44
44
|
* [Monolyth Compiler Stage #2]
|
|
45
45
|
* Build typescript files to build folder
|
|
46
|
+
*
|
|
47
|
+
* @category Monolyth Compiler
|
|
48
|
+
* @subcategory Stages
|
|
46
49
|
*/
|
|
47
50
|
class BuildTypescriptStage {
|
|
48
51
|
constructor(monolyth, app) {
|
|
@@ -3,6 +3,9 @@ import { MonolythCompiler } from '../monolyth_compiler';
|
|
|
3
3
|
/**
|
|
4
4
|
* [Monolyth Compiler Stage #3]
|
|
5
5
|
* Copy type declarations to build/types folder
|
|
6
|
+
*
|
|
7
|
+
* @category Monolyth Compiler
|
|
8
|
+
* @subcategory Stages
|
|
6
9
|
*/
|
|
7
10
|
export declare class CopyTypesStage {
|
|
8
11
|
private monolyth;
|
|
@@ -43,6 +43,9 @@ const app_1 = require("../../../../engine/apps/app");
|
|
|
43
43
|
/**
|
|
44
44
|
* [Monolyth Compiler Stage #3]
|
|
45
45
|
* Copy type declarations to build/types folder
|
|
46
|
+
*
|
|
47
|
+
* @category Monolyth Compiler
|
|
48
|
+
* @subcategory Stages
|
|
46
49
|
*/
|
|
47
50
|
class CopyTypesStage {
|
|
48
51
|
constructor(monolyth, app) {
|
|
@@ -3,6 +3,9 @@ import { MonolythCompiler } from '../monolyth_compiler';
|
|
|
3
3
|
/**
|
|
4
4
|
* [Monolyth Compiler Stage #4]
|
|
5
5
|
* Dump modules to build/modules folder.
|
|
6
|
+
*
|
|
7
|
+
* @category Monolyth Compiler
|
|
8
|
+
* @subcategory Stages
|
|
6
9
|
*/
|
|
7
10
|
export declare class DumpModulesStage {
|
|
8
11
|
private monolyth;
|
|
@@ -41,6 +41,9 @@ const app_1 = require("../../../../engine/apps/app");
|
|
|
41
41
|
/**
|
|
42
42
|
* [Monolyth Compiler Stage #4]
|
|
43
43
|
* Dump modules to build/modules folder.
|
|
44
|
+
*
|
|
45
|
+
* @category Monolyth Compiler
|
|
46
|
+
* @subcategory Stages
|
|
44
47
|
*/
|
|
45
48
|
class DumpModulesStage {
|
|
46
49
|
constructor(monolyth, app) {
|
|
@@ -61,6 +64,35 @@ class DumpModulesStage {
|
|
|
61
64
|
let str = `const { Module } = require('${module.compiler.config?.nesoiPath || 'nesoi'}/lib/engine/module');\n`;
|
|
62
65
|
str += `exports.default = new Module('${module.lowName}')\n`;
|
|
63
66
|
str += ' .inject({';
|
|
67
|
+
const externals = module.module.schema.externals;
|
|
68
|
+
if (externals) {
|
|
69
|
+
str += '\n externals: {';
|
|
70
|
+
if (Object.keys(externals.buckets).length) {
|
|
71
|
+
str += '\n buckets: {';
|
|
72
|
+
for (const b in externals.buckets) {
|
|
73
|
+
const dep = externals.buckets[b];
|
|
74
|
+
str += `\n '${b}': ${JSON.stringify(dep, undefined, 2).replace(/\n/g, '\n ')},`;
|
|
75
|
+
}
|
|
76
|
+
str += '\n },';
|
|
77
|
+
}
|
|
78
|
+
if (Object.keys(externals.jobs).length) {
|
|
79
|
+
str += '\n jobs: {\n';
|
|
80
|
+
for (const b in externals.jobs) {
|
|
81
|
+
const dep = externals.jobs[b];
|
|
82
|
+
str += `\n '${b}': ${JSON.stringify(dep, undefined, 2).replace(/\n/g, '\n ')},`;
|
|
83
|
+
}
|
|
84
|
+
str += '\n },';
|
|
85
|
+
}
|
|
86
|
+
if (Object.keys(externals.machines).length) {
|
|
87
|
+
str += '\n machines: {\n';
|
|
88
|
+
for (const b in externals.machines) {
|
|
89
|
+
const dep = externals.machines[b];
|
|
90
|
+
str += `\n '${b}': ${JSON.stringify(dep, undefined, 2).replace(/\n/g, '\n ')},`;
|
|
91
|
+
}
|
|
92
|
+
str += '\n },';
|
|
93
|
+
}
|
|
94
|
+
str += '\n },';
|
|
95
|
+
}
|
|
64
96
|
const constants = module.module.schema.constants;
|
|
65
97
|
if (constants && (Object.values(constants.values).length || Object.values(constants.enums).length)) {
|
|
66
98
|
str += `\n constants: require('./${module.lowName}/constants__${module.lowName}').default,`;
|
|
@@ -3,6 +3,9 @@ import { MonolythCompiler } from '../monolyth_compiler';
|
|
|
3
3
|
/**
|
|
4
4
|
* [Monolyth Compiler Stage #5]
|
|
5
5
|
* Dump the cli.js file to build/bin folder.
|
|
6
|
+
*
|
|
7
|
+
* @category Monolyth Compiler
|
|
8
|
+
* @subcategory Stages
|
|
6
9
|
*/
|
|
7
10
|
export declare class DumpCLIStage {
|
|
8
11
|
private monolyth;
|
|
@@ -40,6 +40,9 @@ const log_1 = require("../../../../engine/util/log");
|
|
|
40
40
|
/**
|
|
41
41
|
* [Monolyth Compiler Stage #5]
|
|
42
42
|
* Dump the cli.js file to build/bin folder.
|
|
43
|
+
*
|
|
44
|
+
* @category Monolyth Compiler
|
|
45
|
+
* @subcategory Stages
|
|
43
46
|
*/
|
|
44
47
|
class DumpCLIStage {
|
|
45
48
|
constructor(monolyth, app) {
|