velocious 1.0.413 → 1.0.415

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.
Files changed (51) hide show
  1. package/build/src/application.js +2 -2
  2. package/build/src/background-jobs/main.d.ts.map +1 -1
  3. package/build/src/background-jobs/main.js +16 -6
  4. package/build/src/background-jobs/worker.d.ts.map +1 -1
  5. package/build/src/background-jobs/worker.js +9 -3
  6. package/build/src/cli/commands/db/base-command.d.ts +35 -0
  7. package/build/src/cli/commands/db/base-command.d.ts.map +1 -0
  8. package/build/src/cli/commands/db/base-command.js +68 -0
  9. package/build/src/cli/commands/db/create.d.ts +4 -17
  10. package/build/src/cli/commands/db/create.d.ts.map +1 -1
  11. package/build/src/cli/commands/db/create.js +10 -42
  12. package/build/src/cli/commands/db/drop.d.ts +4 -13
  13. package/build/src/cli/commands/db/drop.d.ts.map +1 -1
  14. package/build/src/cli/commands/db/drop.js +8 -29
  15. package/build/src/cli/index.d.ts +2 -0
  16. package/build/src/cli/index.d.ts.map +1 -1
  17. package/build/src/cli/index.js +21 -5
  18. package/build/src/configuration-types.d.ts +10 -0
  19. package/build/src/configuration-types.d.ts.map +1 -1
  20. package/build/src/configuration-types.js +3 -1
  21. package/build/src/configuration.d.ts.map +1 -1
  22. package/build/src/configuration.js +3 -1
  23. package/build/src/database/drivers/base.d.ts +0 -5
  24. package/build/src/database/drivers/base.d.ts.map +1 -1
  25. package/build/src/database/drivers/base.js +1 -8
  26. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  27. package/build/src/database/drivers/mssql/index.js +4 -2
  28. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  29. package/build/src/database/drivers/pgsql/index.js +1 -6
  30. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +0 -1
  31. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  32. package/build/src/database/drivers/sqlite/connection-sql-js.js +1 -2
  33. package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
  34. package/build/src/database/drivers/sqlite/index.native.js +2 -5
  35. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  36. package/build/src/database/pool/async-tracked-multi-connection.js +2 -7
  37. package/build/src/database/pool/base.d.ts +5 -0
  38. package/build/src/database/pool/base.d.ts.map +1 -1
  39. package/build/src/database/pool/base.js +20 -2
  40. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  41. package/build/src/database/pool/single-multi-use.js +3 -13
  42. package/build/src/environment-handlers/node/cli/commands/server.d.ts +0 -4
  43. package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
  44. package/build/src/environment-handlers/node/cli/commands/server.js +1 -6
  45. package/build/src/frontend-models/base.d.ts +2 -2
  46. package/build/src/frontend-models/base.d.ts.map +1 -1
  47. package/build/src/frontend-models/base.js +2 -2
  48. package/build/src/routes/resolver.d.ts.map +1 -1
  49. package/build/src/routes/resolver.js +23 -11
  50. package/build/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ import BaseCommand from "../../base-command.js";
2
+ import { digg } from "diggerize";
3
+ export default class DbBaseCommand extends BaseCommand {
4
+ /** @type {import("../../../database/drivers/base.js").default | undefined} */
5
+ databaseConnection;
6
+ /** @type {Array<object> | undefined} */
7
+ result;
8
+ /**
9
+ * @param {object} driverConfiguration - Driver configuration.
10
+ * @param {() => Promise<void>} callback - Callback to run while the connection is open.
11
+ * @returns {Promise<void>} - Resolves when complete.
12
+ */
13
+ async withDirectDatabaseConnection(driverConfiguration, callback) {
14
+ const DriverClass = digg(driverConfiguration, "driver");
15
+ const databaseConnection = new DriverClass(driverConfiguration, this.getConfiguration());
16
+ this.databaseConnection = databaseConnection;
17
+ try {
18
+ await databaseConnection.connect();
19
+ await callback();
20
+ }
21
+ finally {
22
+ await databaseConnection.close();
23
+ }
24
+ }
25
+ /**
26
+ * @returns {import("../../../database/drivers/base.js").default} - Active database connection.
27
+ */
28
+ getDatabaseConnection() {
29
+ if (!this.databaseConnection)
30
+ throw new Error("Database connection was not initialized");
31
+ return this.databaseConnection;
32
+ }
33
+ /**
34
+ * @param {string[]} sqls - SQL statements.
35
+ * @param {(sql: string) => object} resultEntryForSql - Test result entry builder.
36
+ * @returns {Promise<void>} - Resolves when SQLs have been collected or executed.
37
+ */
38
+ async queryOrCollectSqls(sqls, resultEntryForSql) {
39
+ if (this.args.testing) {
40
+ this.collectSqlResults(sqls, resultEntryForSql);
41
+ }
42
+ else {
43
+ await this.querySqls(sqls);
44
+ }
45
+ }
46
+ /**
47
+ * @param {string[]} sqls - SQL statements.
48
+ * @param {(sql: string) => object} resultEntryForSql - Test result entry builder.
49
+ * @returns {void}
50
+ */
51
+ collectSqlResults(sqls, resultEntryForSql) {
52
+ if (!this.result)
53
+ throw new Error("Expected test result collection to be initialized");
54
+ for (const sql of sqls) {
55
+ this.result.push(resultEntryForSql(sql));
56
+ }
57
+ }
58
+ /**
59
+ * @param {string[]} sqls - SQL statements.
60
+ * @returns {Promise<void>} - Resolves when complete.
61
+ */
62
+ async querySqls(sqls) {
63
+ for (const sql of sqls) {
64
+ await this.getDatabaseConnection().query(sql);
65
+ }
66
+ }
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9kYi9iYXNlLWNvbW1hbmQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUU5QixNQUFNLENBQUMsT0FBTyxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBQ3BELDhFQUE4RTtJQUM5RSxrQkFBa0IsQ0FBQTtJQUVsQix3Q0FBd0M7SUFDeEMsTUFBTSxDQUFBO0lBRU47Ozs7T0FJRztJQUNILEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUN2RCxNQUFNLGtCQUFrQixHQUFHLElBQUksV0FBVyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7UUFDeEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFBO1FBRTVDLElBQUksQ0FBQztZQUNILE1BQU0sa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDbEMsTUFBTSxRQUFRLEVBQUUsQ0FBQTtRQUNsQixDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUE7UUFFeEYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLGlCQUFpQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLElBQUksRUFBRSxpQkFBaUI7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFBO1FBRXRGLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSTtRQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9DLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYkJhc2VDb21tYW5kIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKiogQHR5cGUge2ltcG9ydChcIi4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0IHwgdW5kZWZpbmVkfSAqL1xuICBkYXRhYmFzZUNvbm5lY3Rpb25cblxuICAvKiogQHR5cGUge0FycmF5PG9iamVjdD4gfCB1bmRlZmluZWR9ICovXG4gIHJlc3VsdFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZHJpdmVyQ29uZmlndXJhdGlvbiAtIERyaXZlciBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gcnVuIHdoaWxlIHRoZSBjb25uZWN0aW9uIGlzIG9wZW4uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyB3aXRoRGlyZWN0RGF0YWJhc2VDb25uZWN0aW9uKGRyaXZlckNvbmZpZ3VyYXRpb24sIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgRHJpdmVyQ2xhc3MgPSBkaWdnKGRyaXZlckNvbmZpZ3VyYXRpb24sIFwiZHJpdmVyXCIpXG4gICAgY29uc3QgZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IERyaXZlckNsYXNzKGRyaXZlckNvbmZpZ3VyYXRpb24sIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpKVxuICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gZGF0YWJhc2VDb25uZWN0aW9uXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZGF0YWJhc2VDb25uZWN0aW9uLmNvbm5lY3QoKVxuICAgICAgYXdhaXQgY2FsbGJhY2soKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBkYXRhYmFzZUNvbm5lY3Rpb24uY2xvc2UoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7aW1wb3J0KFwiLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHR9IC0gQWN0aXZlIGRhdGFiYXNlIGNvbm5lY3Rpb24uXG4gICAqL1xuICBnZXREYXRhYmFzZUNvbm5lY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiRGF0YWJhc2UgY29ubmVjdGlvbiB3YXMgbm90IGluaXRpYWxpemVkXCIpXG5cbiAgICByZXR1cm4gdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBzcWxzIC0gU1FMIHN0YXRlbWVudHMuXG4gICAqIEBwYXJhbSB7KHNxbDogc3RyaW5nKSA9PiBvYmplY3R9IHJlc3VsdEVudHJ5Rm9yU3FsIC0gVGVzdCByZXN1bHQgZW50cnkgYnVpbGRlci5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBTUUxzIGhhdmUgYmVlbiBjb2xsZWN0ZWQgb3IgZXhlY3V0ZWQuXG4gICAqL1xuICBhc3luYyBxdWVyeU9yQ29sbGVjdFNxbHMoc3FscywgcmVzdWx0RW50cnlGb3JTcWwpIHtcbiAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcpIHtcbiAgICAgIHRoaXMuY29sbGVjdFNxbFJlc3VsdHMoc3FscywgcmVzdWx0RW50cnlGb3JTcWwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMucXVlcnlTcWxzKHNxbHMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHNxbHMgLSBTUUwgc3RhdGVtZW50cy5cbiAgICogQHBhcmFtIHsoc3FsOiBzdHJpbmcpID0+IG9iamVjdH0gcmVzdWx0RW50cnlGb3JTcWwgLSBUZXN0IHJlc3VsdCBlbnRyeSBidWlsZGVyLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIGNvbGxlY3RTcWxSZXN1bHRzKHNxbHMsIHJlc3VsdEVudHJ5Rm9yU3FsKSB7XG4gICAgaWYgKCF0aGlzLnJlc3VsdCkgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgdGVzdCByZXN1bHQgY29sbGVjdGlvbiB0byBiZSBpbml0aWFsaXplZFwiKVxuXG4gICAgZm9yIChjb25zdCBzcWwgb2Ygc3Fscykge1xuICAgICAgdGhpcy5yZXN1bHQucHVzaChyZXN1bHRFbnRyeUZvclNxbChzcWwpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBzcWxzIC0gU1FMIHN0YXRlbWVudHMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBxdWVyeVNxbHMoc3Fscykge1xuICAgIGZvciAoY29uc3Qgc3FsIG9mIHNxbHMpIHtcbiAgICAgIGF3YWl0IHRoaXMuZ2V0RGF0YWJhc2VDb25uZWN0aW9uKCkucXVlcnkoc3FsKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,21 +1,8 @@
1
- export default class DbCreate extends BaseCommand {
2
- /** @type {Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}> | undefined} */
3
- result: Array<{
4
- databaseName: string;
5
- sql: string;
6
- } | {
7
- createSchemaMigrationsTableSql: string;
8
- }> | undefined;
1
+ export default class DbCreate extends DbBaseCommand {
9
2
  /**
10
- * @returns {Promise<void | Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}>>} - Resolves with SQL statements when running in dry mode.
3
+ * @returns {Promise<void | Array<object>>} - Resolves with SQL statements when running in dry mode.
11
4
  */
12
- execute(): Promise<void | Array<{
13
- databaseName: string;
14
- sql: string;
15
- } | {
16
- createSchemaMigrationsTableSql: string;
17
- }>>;
18
- databaseConnection: any;
5
+ execute(): Promise<void | Array<object>>;
19
6
  /**
20
7
  * @param {string} databaseIdentifier - Database identifier.
21
8
  * @returns {Promise<void>} - Resolves when complete.
@@ -26,5 +13,5 @@ export default class DbCreate extends BaseCommand {
26
13
  */
27
14
  createSchemaMigrationsTable(): Promise<void>;
28
15
  }
29
- import BaseCommand from "../../base-command.js";
16
+ import DbBaseCommand from "./base-command.js";
30
17
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/create.js"],"names":[],"mappings":"AAKA;IACE,gHAAgH;IAChH,QADW,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,8BAA8B,EAAE,MAAM,CAAA;KAAC,CAAC,GAAG,SAAS,CACtG;IAEN;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAG;QAAC,8BAA8B,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAqCjH;IAlBG,wBAAoF;IAoBxF;;;OAGG;IACH,mCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAoBzB;IAED;;OAEG;IACH,+BAFa,OAAO,CAAC,IAAI,CAAC,CAqBzB;CACF;wBAhGuB,uBAAuB"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/create.js"],"names":[],"mappings":"AAKA;IACE;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CA4BzC;IAED;;;OAGG;IACH,mCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;OAEG;IACH,+BAFa,OAAO,CAAC,IAAI,CAAC,CASzB;CACF;0BA5DyB,mBAAmB"}
@@ -1,19 +1,16 @@
1
- import BaseCommand from "../../base-command.js";
1
+ import DbBaseCommand from "./base-command.js";
2
2
  import { digg } from "diggerize";
3
3
  import { incorporate } from "incorporator";
4
4
  import TableData from "../../../database/table-data/index.js";
5
- export default class DbCreate extends BaseCommand {
6
- /** @type {Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}> | undefined} */
7
- result;
5
+ export default class DbCreate extends DbBaseCommand {
8
6
  /**
9
- * @returns {Promise<void | Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}>>} - Resolves with SQL statements when running in dry mode.
7
+ * @returns {Promise<void | Array<object>>} - Resolves with SQL statements when running in dry mode.
10
8
  */
11
9
  async execute() {
12
10
  for (const databaseIdentifier of this.getConfiguration().getDatabaseIdentifiers()) {
13
11
  const databaseType = this.getConfiguration().getDatabaseType(databaseIdentifier);
14
12
  const databasePool = this.getConfiguration().getDatabasePool(databaseIdentifier);
15
13
  const newConfiguration = incorporate({}, databasePool.getConfiguration());
16
- const DriverClass = digg(newConfiguration, "driver");
17
14
  if (this.args.testing)
18
15
  this.result = [];
19
16
  // Use a database known to exist. Since we are creating the database, it shouldn't actually exist which would make connecting fail.
@@ -22,19 +19,12 @@ export default class DbCreate extends BaseCommand {
22
19
  if (databaseType == "mssql" && newConfiguration.sqlConfig?.database) {
23
20
  delete newConfiguration.sqlConfig.database;
24
21
  }
25
- this.databaseConnection = new DriverClass(newConfiguration, this.getConfiguration());
26
- await this.databaseConnection.connect();
27
- try {
22
+ await this.withDirectDatabaseConnection(newConfiguration, async () => {
28
23
  if (databaseType != "sqlite") {
29
24
  await this.createDatabase(databaseIdentifier);
30
25
  }
31
26
  await this.createSchemaMigrationsTable();
32
- }
33
- finally {
34
- if (databaseType != "mssql") {
35
- await this.databaseConnection.close();
36
- }
37
- }
27
+ });
38
28
  if (this.args.testing)
39
29
  return this.result;
40
30
  }
@@ -47,19 +37,8 @@ export default class DbCreate extends BaseCommand {
47
37
  const databaseConfiguration = digg(this.getConfiguration().getDatabaseConfiguration(), databaseIdentifier);
48
38
  const databaseName = digg(databaseConfiguration, "database");
49
39
  const { databaseCharset, databaseCollation } = databaseConfiguration;
50
- const sqls = this.databaseConnection.createDatabaseSql(databaseName, { ifNotExists: true, databaseCharset, databaseCollation });
51
- if (this.args.testing && !this.result) {
52
- throw new Error("Expected test result collection to be initialized");
53
- }
54
- const result = /** @type {Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}>} */ (this.result);
55
- for (const sql of sqls) {
56
- if (this.args.testing) {
57
- result.push({ databaseName, sql });
58
- }
59
- else {
60
- await this.databaseConnection.query(sql);
61
- }
62
- }
40
+ const sqls = this.getDatabaseConnection().createDatabaseSql(databaseName, { ifNotExists: true, databaseCharset, databaseCollation });
41
+ await this.queryOrCollectSqls(sqls, (sql) => ({ databaseName, sql }));
63
42
  }
64
43
  /**
65
44
  * @returns {Promise<void>} - Resolves when complete.
@@ -67,19 +46,8 @@ export default class DbCreate extends BaseCommand {
67
46
  async createSchemaMigrationsTable() {
68
47
  const schemaMigrationsTable = new TableData("schema_migrations", { ifNotExists: true });
69
48
  schemaMigrationsTable.string("version", { null: false, primaryKey: true });
70
- const createSchemaMigrationsTableSqls = await this.databaseConnection.createTableSql(schemaMigrationsTable);
71
- if (this.args.testing && !this.result) {
72
- throw new Error("Expected test result collection to be initialized");
73
- }
74
- const result = /** @type {Array<{databaseName: string, sql: string} | {createSchemaMigrationsTableSql: string}>} */ (this.result);
75
- for (const createSchemaMigrationsTableSql of createSchemaMigrationsTableSqls) {
76
- if (this.args.testing) {
77
- result.push({ createSchemaMigrationsTableSql });
78
- }
79
- else {
80
- await this.databaseConnection.query(createSchemaMigrationsTableSql);
81
- }
82
- }
49
+ const createSchemaMigrationsTableSqls = await this.getDatabaseConnection().createTableSql(schemaMigrationsTable);
50
+ await this.queryOrCollectSqls(createSchemaMigrationsTableSqls, (createSchemaMigrationsTableSql) => ({ createSchemaMigrationsTableSql }));
83
51
  }
84
52
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9kYi9jcmVhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFDL0MsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLHVDQUF1QyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sUUFBUyxTQUFRLFdBQVc7SUFDL0MsZ0hBQWdIO0lBQ2hILE1BQU0sQ0FBQTtJQUVOOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxLQUFLLE1BQU0sa0JBQWtCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDO1lBQ2xGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ2hGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBQ2hGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1lBQ3pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUVwRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUV2QyxtSUFBbUk7WUFDbkksZ0JBQWdCLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUE7WUFFbkUsdUhBQXVIO1lBQ3ZI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Q3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQTtRQUN0RSxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsb0dBQW9HLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFakksS0FBSyxNQUFNLDhCQUE4QixJQUFJLCtCQUErQixFQUFFLENBQUM7WUFDN0UsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsOEJBQThCLEVBQUMsQ0FBQyxDQUFBO1lBQy9DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtZQUNyRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tbWFuZCBmcm9tIFwiLi4vLi4vYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBUYWJsZURhdGEgZnJvbSBcIi4uLy4uLy4uL2RhdGFiYXNlL3RhYmxlLWRhdGEvaW5kZXguanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYkNyZWF0ZSBleHRlbmRzIEJhc2VDb21tYW5ke1xuICAvKiogQHR5cGUge0FycmF5PHtkYXRhYmFzZU5hbWU6IHN0cmluZywgc3FsOiBzdHJpbmd9IHwge2NyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZVNxbDogc3RyaW5nfT4gfCB1bmRlZmluZWR9ICovXG4gIHJlc3VsdFxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgQXJyYXk8e2RhdGFiYXNlTmFtZTogc3RyaW5nLCBzcWw6IHN0cmluZ30gfCB7Y3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlU3FsOiBzdHJpbmd9Pj59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cyB3aGVuIHJ1bm5pbmcgaW4gZHJ5IG1vZGUuXG4gICAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGZvciAoY29uc3QgZGF0YWJhc2VJZGVudGlmaWVyIG9mIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlSWRlbnRpZmllcnMoKSkge1xuICAgICAgY29uc3QgZGF0YWJhc2VUeXBlID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VUeXBlKGRhdGFiYXNlSWRlbnRpZmllcilcbiAgICAgIGNvbnN0IGRhdGFiYXNlUG9vbCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlUG9vbChkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0gaW5jb3Jwb3JhdGUoe30sIGRhdGFiYXNlUG9vbC5nZXRDb25maWd1cmF0aW9uKCkpXG4gICAgICBjb25zdCBEcml2ZXJDbGFzcyA9IGRpZ2cobmV3Q29uZmlndXJhdGlvbiwgXCJkcml2ZXJcIilcblxuICAgICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSB0aGlzLnJlc3VsdCA9IFtdXG5cbiAgICAgIC8vIFVzZSBhIGRhdGFiYXNlIGtub3duIHRvIGV4aXN0LiBTaW5jZSB3ZSBhcmUgY3JlYXRpbmcgdGhlIGRhdGFiYXNlLCBpdCBzaG91bGRuJ3QgYWN0dWFsbHkgZXhpc3Qgd2hpY2ggd291bGQgbWFrZSBjb25uZWN0aW5nIGZhaWwuXG4gICAgICBuZXdDb25maWd1cmF0aW9uLmRhdGFiYXNlID0gbmV3Q29uZmlndXJhdGlvbi51c2VEYXRhYmFzZSB8fCBcIm15c3FsXCJcblxuICAgICAgLy8gTG9naW4gY2FuIGZhaWwgYmVjYXVzZSBnaXZlbiBkYiBuYW1lIGRvZXNuJ3QgZXhpc3QsIHdoaWNoIGl0IG1pZ2h0IG5vdCBiZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gY3JlYXRlIGl0IHJpZ2h0IG5vdy5cbiAgICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiICYmIG5ld0NvbmZpZ3VyYXRpb24uc3FsQ29uZmlnPy5kYXRhYmFzZSkge1xuICAgICAgICBkZWxldGUgbmV3Q29uZmlndXJhdGlvbi5zcWxDb25maWcuZGF0YWJhc2VcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24gPSBuZXcgRHJpdmVyQ2xhc3MobmV3Q29uZmlndXJhdGlvbiwgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkpXG5cbiAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmNvbm5lY3QoKVxuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZGF0YWJhc2VUeXBlICE9IFwic3FsaXRlXCIpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZURhdGFiYXNlKGRhdGFiYXNlSWRlbnRpZmllcilcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlKClcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChkYXRhYmFzZVR5cGUgIT0gXCJtc3NxbFwiKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uY2xvc2UoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykgcmV0dXJuIHRoaXMucmVzdWx0XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZUlkZW50aWZpZXIgLSBEYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VDb25maWd1cmF0aW9uID0gZGlnZyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSwgZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgIGNvbnN0IGRhdGFiYXNlTmFtZSA9IGRpZ2coZGF0YWJhc2VDb25maWd1cmF0aW9uLCBcImRhdGFiYXNlXCIpXG4gICAgY29uc3Qge2RhdGFiYXNlQ2hhcnNldCwgZGF0YWJhc2VDb2xsYXRpb259ID0gZGF0YWJhc2VDb25maWd1cmF0aW9uXG4gICAgY29uc3Qgc3FscyA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmNyZWF0ZURhdGFiYXNlU3FsKGRhdGFiYXNlTmFtZSwge2lmTm90RXhpc3RzOiB0cnVlLCBkYXRhYmFzZUNoYXJzZXQsIGRhdGFiYXNlQ29sbGF0aW9ufSlcbiAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcgJiYgIXRoaXMucmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0ZXN0IHJlc3VsdCBjb2xsZWN0aW9uIHRvIGJlIGluaXRpYWxpemVkXCIpXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtBcnJheTx7ZGF0YWJhc2VOYW1lOiBzdHJpbmcsIHNxbDogc3RyaW5nfSB8IHtjcmVhdGVTY2hlbWFNaWdyYXRpb25zVGFibGVTcWw6IHN0cmluZ30+fSAqLyAodGhpcy5yZXN1bHQpXG5cbiAgICBmb3IgKGNvbnN0IHNxbCBvZiBzcWxzKSB7XG4gICAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goe2RhdGFiYXNlTmFtZSwgc3FsfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLnF1ZXJ5KHNxbClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZSgpIHtcbiAgICBjb25zdCBzY2hlbWFNaWdyYXRpb25zVGFibGUgPSBuZXcgVGFibGVEYXRhKFwic2NoZW1hX21pZ3JhdGlvbnNcIiwge2lmTm90RXhpc3RzOiB0cnVlfSlcblxuICAgIHNjaGVtYU1pZ3JhdGlvbnNUYWJsZS5zdHJpbmcoXCJ2ZXJzaW9uXCIsIHtudWxsOiBmYWxzZSwgcHJpbWFyeUtleTogdHJ1ZX0pXG5cbiAgICBjb25zdCBjcmVhdGVTY2hlbWFNaWdyYXRpb25zVGFibGVTcWxzID0gYXdhaXQgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24uY3JlYXRlVGFibGVTcWwoc2NoZW1hTWlncmF0aW9uc1RhYmxlKVxuICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZyAmJiAhdGhpcy5yZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIHRlc3QgcmVzdWx0IGNvbGxlY3Rpb24gdG8gYmUgaW5pdGlhbGl6ZWRcIilcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSAvKiogQHR5cGUge0FycmF5PHtkYXRhYmFzZU5hbWU6IHN0cmluZywgc3FsOiBzdHJpbmd9IHwge2NyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZVNxbDogc3RyaW5nfT59ICovICh0aGlzLnJlc3VsdClcblxuICAgIGZvciAoY29uc3QgY3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlU3FsIG9mIGNyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZVNxbHMpIHtcbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykge1xuICAgICAgICByZXN1bHQucHVzaCh7Y3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlU3FsfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLnF1ZXJ5KGNyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZVNxbClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9kYi9jcmVhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQTtBQUM5QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sU0FBUyxNQUFNLHVDQUF1QyxDQUFBO0FBRTdELE1BQU0sQ0FBQyxPQUFPLE9BQU8sUUFBUyxTQUFRLGFBQWE7SUFDakQ7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLEtBQUssTUFBTSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUM7WUFDbEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDaEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDaEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7WUFFekUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7WUFFdkMsbUlBQW1JO1lBQ25JLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFBO1lBRW5FLHVIQUF1SDtZQUN2SCxJQUFJLFlBQVksSUFBSSxPQUFPLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUNwRSxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUE7WUFDNUMsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNuRSxJQUFJLFlBQVksSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDN0IsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQy9DLENBQUM7Z0JBRUQsTUFBTSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQTtZQUMxQyxDQUFDLENBQUMsQ0FBQTtZQUVGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsa0JBQWtCO1FBQ3JDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtRQUMxRyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDNUQsTUFBTSxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBQyxHQUFHLHFCQUFxQixDQUFBO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFDLENBQUMsQ0FBQTtRQUNsSSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQywyQkFBMkI7UUFDL0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBRXJGLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFBO1FBRXhFLE1BQU0sK0JBQStCLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUNoSCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsOEJBQThCLEVBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEksQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERiQmFzZUNvbW1hbmQgZnJvbSBcIi4vYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcbmltcG9ydCBUYWJsZURhdGEgZnJvbSBcIi4uLy4uLy4uL2RhdGFiYXNlL3RhYmxlLWRhdGEvaW5kZXguanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYkNyZWF0ZSBleHRlbmRzIERiQmFzZUNvbW1hbmR7XG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkIHwgQXJyYXk8b2JqZWN0Pj59IC0gUmVzb2x2ZXMgd2l0aCBTUUwgc3RhdGVtZW50cyB3aGVuIHJ1bm5pbmcgaW4gZHJ5IG1vZGUuXG4gICAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGZvciAoY29uc3QgZGF0YWJhc2VJZGVudGlmaWVyIG9mIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlSWRlbnRpZmllcnMoKSkge1xuICAgICAgY29uc3QgZGF0YWJhc2VUeXBlID0gdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VUeXBlKGRhdGFiYXNlSWRlbnRpZmllcilcbiAgICAgIGNvbnN0IGRhdGFiYXNlUG9vbCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlUG9vbChkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgICBjb25zdCBuZXdDb25maWd1cmF0aW9uID0gaW5jb3Jwb3JhdGUoe30sIGRhdGFiYXNlUG9vbC5nZXRDb25maWd1cmF0aW9uKCkpXG5cbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykgdGhpcy5yZXN1bHQgPSBbXVxuXG4gICAgICAvLyBVc2UgYSBkYXRhYmFzZSBrbm93biB0byBleGlzdC4gU2luY2Ugd2UgYXJlIGNyZWF0aW5nIHRoZSBkYXRhYmFzZSwgaXQgc2hvdWxkbid0IGFjdHVhbGx5IGV4aXN0IHdoaWNoIHdvdWxkIG1ha2UgY29ubmVjdGluZyBmYWlsLlxuICAgICAgbmV3Q29uZmlndXJhdGlvbi5kYXRhYmFzZSA9IG5ld0NvbmZpZ3VyYXRpb24udXNlRGF0YWJhc2UgfHwgXCJteXNxbFwiXG5cbiAgICAgIC8vIExvZ2luIGNhbiBmYWlsIGJlY2F1c2UgZ2l2ZW4gZGIgbmFtZSBkb2Vzbid0IGV4aXN0LCB3aGljaCBpdCBtaWdodCBub3QgYmVjYXVzZSB3ZSBhcmUgdHJ5aW5nIHRvIGNyZWF0ZSBpdCByaWdodCBub3cuXG4gICAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIiAmJiBuZXdDb25maWd1cmF0aW9uLnNxbENvbmZpZz8uZGF0YWJhc2UpIHtcbiAgICAgICAgZGVsZXRlIG5ld0NvbmZpZ3VyYXRpb24uc3FsQ29uZmlnLmRhdGFiYXNlXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMud2l0aERpcmVjdERhdGFiYXNlQ29ubmVjdGlvbihuZXdDb25maWd1cmF0aW9uLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChkYXRhYmFzZVR5cGUgIT0gXCJzcWxpdGVcIikge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTY2hlbWFNaWdyYXRpb25zVGFibGUoKVxuICAgICAgfSlcblxuICAgICAgaWYgKHRoaXMuYXJncy50ZXN0aW5nKSByZXR1cm4gdGhpcy5yZXN1bHRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlSWRlbnRpZmllciAtIERhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBjcmVhdGVEYXRhYmFzZShkYXRhYmFzZUlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSBkaWdnKHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpLCBkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gZGlnZyhkYXRhYmFzZUNvbmZpZ3VyYXRpb24sIFwiZGF0YWJhc2VcIilcbiAgICBjb25zdCB7ZGF0YWJhc2VDaGFyc2V0LCBkYXRhYmFzZUNvbGxhdGlvbn0gPSBkYXRhYmFzZUNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBzcWxzID0gdGhpcy5nZXREYXRhYmFzZUNvbm5lY3Rpb24oKS5jcmVhdGVEYXRhYmFzZVNxbChkYXRhYmFzZU5hbWUsIHtpZk5vdEV4aXN0czogdHJ1ZSwgZGF0YWJhc2VDaGFyc2V0LCBkYXRhYmFzZUNvbGxhdGlvbn0pXG4gICAgYXdhaXQgdGhpcy5xdWVyeU9yQ29sbGVjdFNxbHMoc3FscywgKHNxbCkgPT4gKHtkYXRhYmFzZU5hbWUsIHNxbH0pKVxuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBjcmVhdGVTY2hlbWFNaWdyYXRpb25zVGFibGUoKSB7XG4gICAgY29uc3Qgc2NoZW1hTWlncmF0aW9uc1RhYmxlID0gbmV3IFRhYmxlRGF0YShcInNjaGVtYV9taWdyYXRpb25zXCIsIHtpZk5vdEV4aXN0czogdHJ1ZX0pXG5cbiAgICBzY2hlbWFNaWdyYXRpb25zVGFibGUuc3RyaW5nKFwidmVyc2lvblwiLCB7bnVsbDogZmFsc2UsIHByaW1hcnlLZXk6IHRydWV9KVxuXG4gICAgY29uc3QgY3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlU3FscyA9IGF3YWl0IHRoaXMuZ2V0RGF0YWJhc2VDb25uZWN0aW9uKCkuY3JlYXRlVGFibGVTcWwoc2NoZW1hTWlncmF0aW9uc1RhYmxlKVxuICAgIGF3YWl0IHRoaXMucXVlcnlPckNvbGxlY3RTcWxzKGNyZWF0ZVNjaGVtYU1pZ3JhdGlvbnNUYWJsZVNxbHMsIChjcmVhdGVTY2hlbWFNaWdyYXRpb25zVGFibGVTcWwpID0+ICh7Y3JlYXRlU2NoZW1hTWlncmF0aW9uc1RhYmxlU3FsfSkpXG4gIH1cbn1cbiJdfQ==
@@ -1,17 +1,8 @@
1
- export default class DbDrop extends BaseCommand {
2
- /** @type {Array<{databaseName: string, sql: string}> | undefined} */
3
- result: Array<{
4
- databaseName: string;
5
- sql: string;
6
- }> | undefined;
1
+ export default class DbDrop extends DbBaseCommand {
7
2
  /**
8
- * @returns {Promise<void | Array<{databaseName: string, sql: string}>>} - Resolves with SQL statements when running in dry mode.
3
+ * @returns {Promise<void | Array<object>>} - Resolves with SQL statements when running in dry mode.
9
4
  */
10
- execute(): Promise<void | Array<{
11
- databaseName: string;
12
- sql: string;
13
- }>>;
14
- databaseConnection: any;
5
+ execute(): Promise<void | Array<object>>;
15
6
  /**
16
7
  * @param {string} databaseType - Database type.
17
8
  * @returns {string} - System/maintenance database name for that driver.
@@ -23,5 +14,5 @@ export default class DbDrop extends BaseCommand {
23
14
  */
24
15
  dropDatabase(databaseIdentifier: string): Promise<void>;
25
16
  }
26
- import BaseCommand from "../../base-command.js";
17
+ import DbBaseCommand from "./base-command.js";
27
18
  //# sourceMappingURL=drop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/drop.js"],"names":[],"mappings":"AAIA;IACE,qEAAqE;IACrE,QADW,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC,GAAG,SAAS,CAC3D;IAEN;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAmDtE;IAfK,wBAAoF;IAiB1F;;;OAGG;IACH,yCAHW,MAAM,GACJ,MAAM,CAOlB;IAED;;;OAGG;IACH,iCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAmBzB;CACF;wBA/FuB,uBAAuB"}
1
+ {"version":3,"file":"drop.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/db/drop.js"],"names":[],"mappings":"AAIA;IACE;;OAEG;IACH,WAFa,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CA0CzC;IAED;;;OAGG;IACH,yCAHW,MAAM,GACJ,MAAM,CAOlB;IAED;;;OAGG;IACH,iCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAOzB;CACF;0BAvEyB,mBAAmB"}
@@ -1,11 +1,9 @@
1
- import BaseCommand from "../../base-command.js";
1
+ import DbBaseCommand from "./base-command.js";
2
2
  import { digg } from "diggerize";
3
3
  import { incorporate } from "incorporator";
4
- export default class DbDrop extends BaseCommand {
5
- /** @type {Array<{databaseName: string, sql: string}> | undefined} */
6
- result;
4
+ export default class DbDrop extends DbBaseCommand {
7
5
  /**
8
- * @returns {Promise<void | Array<{databaseName: string, sql: string}>>} - Resolves with SQL statements when running in dry mode.
6
+ * @returns {Promise<void | Array<object>>} - Resolves with SQL statements when running in dry mode.
9
7
  */
10
8
  async execute() {
11
9
  const environment = this.getConfiguration().getEnvironment();
@@ -19,7 +17,6 @@ export default class DbDrop extends BaseCommand {
19
17
  if (databaseType != "sqlite") {
20
18
  const databasePool = this.getConfiguration().getDatabasePool(databaseIdentifier);
21
19
  const newConfiguration = incorporate({}, databasePool.getConfiguration());
22
- const DriverClass = digg(newConfiguration, "driver");
23
20
  const targetDatabaseName = digg(this.getConfiguration().getDatabaseConfiguration(), databaseIdentifier, "database");
24
21
  // Connect to a known-existing system database: the target is about to
25
22
  // be dropped (so we can't be connected to it), Postgres rejects
@@ -34,16 +31,9 @@ export default class DbDrop extends BaseCommand {
34
31
  if (databaseType == "mssql" && newConfiguration.sqlConfig?.database) {
35
32
  delete newConfiguration.sqlConfig.database;
36
33
  }
37
- this.databaseConnection = new DriverClass(newConfiguration, this.getConfiguration());
38
- await this.databaseConnection.connect();
39
- try {
34
+ await this.withDirectDatabaseConnection(newConfiguration, async () => {
40
35
  await this.dropDatabase(databaseIdentifier);
41
- }
42
- finally {
43
- if (databaseType != "mssql") {
44
- await this.databaseConnection.close();
45
- }
46
- }
36
+ });
47
37
  }
48
38
  if (this.args.testing)
49
39
  return this.result;
@@ -66,19 +56,8 @@ export default class DbDrop extends BaseCommand {
66
56
  */
67
57
  async dropDatabase(databaseIdentifier) {
68
58
  const databaseName = digg(this.getConfiguration().getDatabaseConfiguration(), databaseIdentifier, "database");
69
- const sqls = this.databaseConnection.dropDatabaseSql(databaseName, { ifExists: true });
70
- if (this.args.testing && !this.result) {
71
- throw new Error("Expected test result collection to be initialized");
72
- }
73
- const result = /** @type {Array<{databaseName: string, sql: string}>} */ (this.result);
74
- for (const sql of sqls) {
75
- if (this.args.testing) {
76
- result.push({ databaseName, sql });
77
- }
78
- else {
79
- await this.databaseConnection.query(sql);
80
- }
81
- }
59
+ const sqls = this.getDatabaseConnection().dropDatabaseSql(databaseName, { ifExists: true });
60
+ await this.queryOrCollectSqls(sqls, (sql) => ({ databaseName, sql }));
82
61
  }
83
62
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGkvY29tbWFuZHMvZGIvZHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsV0FBVztJQUM3QyxxRUFBcUU7SUFDckUsTUFBTSxDQUFBO0lBRU47O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBRTVELElBQUksV0FBVyxJQUFJLGFBQWEsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUN0SCxDQUFDO1FBRUQsS0FBSyxNQUFNLGtCQUFrQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztZQUNsRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUVoRixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUV2QyxJQUFJLFlBQVksSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUE7Z0JBQ2hGLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFB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WSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUE7WUFDbEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tbWFuZCBmcm9tIFwiLi4vLi4vYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQge2luY29ycG9yYXRlfSBmcm9tIFwiaW5jb3Jwb3JhdG9yXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJEcm9wIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKiogQHR5cGUge0FycmF5PHtkYXRhYmFzZU5hbWU6IHN0cmluZywgc3FsOiBzdHJpbmd9PiB8IHVuZGVmaW5lZH0gKi9cbiAgcmVzdWx0XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQgfCBBcnJheTx7ZGF0YWJhc2VOYW1lOiBzdHJpbmcsIHNxbDogc3RyaW5nfT4+fSAtIFJlc29sdmVzIHdpdGggU1FMIHN0YXRlbWVudHMgd2hlbiBydW5uaW5nIGluIGRyeSBtb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldEVudmlyb25tZW50KClcblxuICAgIGlmIChlbnZpcm9ubWVudCAhPSBcImRldmVsb3BtZW50XCIgJiYgZW52aXJvbm1lbnQgIT0gXCJ0ZXN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhpcyBjb21tYW5kIHNob3VsZCBvbmx5IGJlIGV4ZWN1dGVkIG9uIGRldmVsb3BtZW50IGFuZCB0ZXN0IGVudmlyb25tZW50cyBhbmQgbm90OiAke2Vudmlyb25tZW50fWApXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkYXRhYmFzZUlkZW50aWZpZXIgb2YgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VJZGVudGlmaWVycygpKSB7XG4gICAgICBjb25zdCBkYXRhYmFzZVR5cGUgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZVR5cGUoZGF0YWJhc2VJZGVudGlmaWVyKVxuXG4gICAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcpIHRoaXMucmVzdWx0ID0gW11cblxuICAgICAgaWYgKGRhdGFiYXNlVHlwZSAhPSBcInNxbGl0ZVwiKSB7XG4gICAgICAgIGNvbnN0IGRhdGFiYXNlUG9vbCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlUG9vbChkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgICAgIGNvbnN0IG5ld0NvbmZpZ3VyYXRpb24gPSBpbmNvcnBvcmF0ZSh7fSwgZGF0YWJhc2VQb29sLmdldENvbmZpZ3VyYXRpb24oKSlcbiAgICAgICAgY29uc3QgRHJpdmVyQ2xhc3MgPSBkaWdnKG5ld0NvbmZpZ3VyYXRpb24sIFwiZHJpdmVyXCIpXG4gICAgICAgIGNvbnN0IHRhcmdldERhdGFiYXNlTmFtZSA9IGRpZ2codGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VDb25maWd1cmF0aW9uKCksIGRhdGFiYXNlSWRlbnRpZmllciwgXCJkYXRhYmFzZVwiKVxuXG4gICAgICAgIC8vIENvbm5lY3QgdG8gYSBrbm93bi1leGlzdGluZyBzeXN0ZW0gZGF0YWJhc2U6IHRoZSB0YXJnZXQgaXMgYWJvdXQgdG9cbiAgICAgICAgLy8gYmUgZHJvcHBlZCAoc28gd2UgY2FuJ3QgYmUgY29ubmVjdGVkIHRvIGl0KSwgUG9zdGdyZXMgcmVqZWN0c1xuICAgICAgICAvLyBEUk9QIERBVEFCQVNFIHdoaWxlIGNvbm5lY3RlZCB0byBpdCwgYW5kIGNvbmZpZ3VyZWQgYHVzZURhdGFiYXNlYFxuICAgICAgICAvLyBtYXkgaGFwcGVuIHRvIGVxdWFsIHRoZSB0YXJnZXQg4oCUIGluIHRoYXQgY2FzZSBmYWxsIHRocm91Z2ggdG8gdGhlXG4gICAgICAgIC8vIGRyaXZlcidzIHN5c3RlbSBkZWZhdWx0LlxuICAgICAgICBjb25zdCBjb25maWd1cmVkRmFsbGJhY2sgPSBuZXdDb25maWd1cmF0aW9uLnVzZURhdGFiYXNlXG4gICAgICAgIGNvbnN0IHVzZUNvbmZpZ3VyZWRGYWxsYmFjayA9IHR5cGVvZiBjb25maWd1cmVkRmFsbGJhY2sgPT0gXCJzdHJpbmdcIiAmJiBjb25maWd1cmVkRmFsbGJhY2subGVuZ3RoID4gMCAmJiBjb25maWd1cmVkRmFsbGJhY2sgIT0gdGFyZ2V0RGF0YWJhc2VOYW1lXG5cbiAgICAgICAgbmV3Q29uZmlndXJhdGlvbi5kYXRhYmFzZSA9IHVzZUNvbmZpZ3VyZWRGYWxsYmFja1xuICAgICAgICAgID8gY29uZmlndXJlZEZhbGxiYWNrXG4gICAgICAgICAgOiB0aGlzLnN5c3RlbUZhbGxiYWNrRGF0YWJhc2VOYW1lKGRhdGFiYXNlVHlwZSlcblxuICAgICAgICBpZiAoZGF0YWJhc2VUeXBlID09IFwibXNzcWxcIiAmJiBuZXdDb25maWd1cmF0aW9uLnNxbENvbmZpZz8uZGF0YWJhc2UpIHtcbiAgICAgICAgICBkZWxldGUgbmV3Q29uZmlndXJhdGlvbi5zcWxDb25maWcuZGF0YWJhc2VcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uID0gbmV3IERyaXZlckNsYXNzKG5ld0NvbmZpZ3VyYXRpb24sIHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpKVxuXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmNvbm5lY3QoKVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kcm9wRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGlmIChkYXRhYmFzZVR5cGUgIT0gXCJtc3NxbFwiKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRhdGFiYXNlQ29ubmVjdGlvbi5jbG9zZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykgcmV0dXJuIHRoaXMucmVzdWx0XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFN5c3RlbS9tYWludGVuYW5jZSBkYXRhYmFzZSBuYW1lIGZvciB0aGF0IGRyaXZlci5cbiAgICovXG4gIHN5c3RlbUZhbGxiYWNrRGF0YWJhc2VOYW1lKGRhdGFiYXNlVHlwZSkge1xuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiKSByZXR1cm4gXCJwb3N0Z3Jlc1wiXG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcIm1zc3FsXCIpIHJldHVybiBcIm1hc3RlclwiXG5cbiAgICByZXR1cm4gXCJteXNxbFwiXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlSWRlbnRpZmllciAtIERhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBkcm9wRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gZGlnZyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSwgZGF0YWJhc2VJZGVudGlmaWVyLCBcImRhdGFiYXNlXCIpXG4gICAgY29uc3Qgc3FscyA9IHRoaXMuZGF0YWJhc2VDb25uZWN0aW9uLmRyb3BEYXRhYmFzZVNxbChkYXRhYmFzZU5hbWUsIHtpZkV4aXN0czogdHJ1ZX0pXG5cbiAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcgJiYgIXRoaXMucmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCB0ZXN0IHJlc3VsdCBjb2xsZWN0aW9uIHRvIGJlIGluaXRpYWxpemVkXCIpXG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gLyoqIEB0eXBlIHtBcnJheTx7ZGF0YWJhc2VOYW1lOiBzdHJpbmcsIHNxbDogc3RyaW5nfT59ICovICh0aGlzLnJlc3VsdClcblxuICAgIGZvciAoY29uc3Qgc3FsIG9mIHNxbHMpIHtcbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykge1xuICAgICAgICByZXN1bHQucHVzaCh7ZGF0YWJhc2VOYW1lLCBzcWx9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhYmFzZUNvbm5lY3Rpb24ucXVlcnkoc3FsKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGkvY29tbWFuZHMvZGIvZHJvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBQWEsTUFBTSxtQkFBbUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxNQUFPLFNBQVEsYUFBYTtJQUMvQzs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUE7UUFFNUQsSUFBSSxXQUFXLElBQUksYUFBYSxJQUFJLFdBQVcsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHNGQUFzRixXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ3RILENBQUM7UUFFRCxLQUFLLE1BQU0sa0JBQWtCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDO1lBQ2xGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1lBRWhGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBRXZDLElBQUksWUFBWSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtnQkFDaEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUE7Z0JBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBRW5ILHNFQUFzRTtnQkFDdEUsZ0VBQWdFO2dCQUNoRSxvRUFBb0U7Z0JBQ3BFLG9FQUFvRTtnQkFDcEUsMkJBQTJCO2dCQUMzQixNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQTtnQkFDdkQsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLGtCQUFrQixJQUFJLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFBO2dCQUVoSixnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcscUJBQXFCO29CQUMvQyxDQUFDLENBQUMsa0JBQWtCO29CQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUVqRCxJQUFJLFlBQVksSUFBSSxPQUFPLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO29CQUNwRSxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUE7Z0JBQzVDLENBQUM7Z0JBRUQsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ25FLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO2dCQUM3QyxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCwwQkFBMEIsQ0FBQyxZQUFZO1FBQ3JDLElBQUksWUFBWSxJQUFJLE9BQU87WUFBRSxPQUFPLFVBQVUsQ0FBQTtRQUM5QyxJQUFJLFlBQVksSUFBSSxPQUFPO1lBQUUsT0FBTyxRQUFRLENBQUE7UUFFNUMsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCO1FBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzdHLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtRQUV6RixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEYkJhc2VDb21tYW5kIGZyb20gXCIuL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQge2RpZ2d9IGZyb20gXCJkaWdnZXJpemVcIlxuaW1wb3J0IHtpbmNvcnBvcmF0ZX0gZnJvbSBcImluY29ycG9yYXRvclwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERiRHJvcCBleHRlbmRzIERiQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZCB8IEFycmF5PG9iamVjdD4+fSAtIFJlc29sdmVzIHdpdGggU1FMIHN0YXRlbWVudHMgd2hlbiBydW5uaW5nIGluIGRyeSBtb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldEVudmlyb25tZW50KClcblxuICAgIGlmIChlbnZpcm9ubWVudCAhPSBcImRldmVsb3BtZW50XCIgJiYgZW52aXJvbm1lbnQgIT0gXCJ0ZXN0XCIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhpcyBjb21tYW5kIHNob3VsZCBvbmx5IGJlIGV4ZWN1dGVkIG9uIGRldmVsb3BtZW50IGFuZCB0ZXN0IGVudmlyb25tZW50cyBhbmQgbm90OiAke2Vudmlyb25tZW50fWApXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkYXRhYmFzZUlkZW50aWZpZXIgb2YgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZ2V0RGF0YWJhc2VJZGVudGlmaWVycygpKSB7XG4gICAgICBjb25zdCBkYXRhYmFzZVR5cGUgPSB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZVR5cGUoZGF0YWJhc2VJZGVudGlmaWVyKVxuXG4gICAgICBpZiAodGhpcy5hcmdzLnRlc3RpbmcpIHRoaXMucmVzdWx0ID0gW11cblxuICAgICAgaWYgKGRhdGFiYXNlVHlwZSAhPSBcInNxbGl0ZVwiKSB7XG4gICAgICAgIGNvbnN0IGRhdGFiYXNlUG9vbCA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmdldERhdGFiYXNlUG9vbChkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgICAgIGNvbnN0IG5ld0NvbmZpZ3VyYXRpb24gPSBpbmNvcnBvcmF0ZSh7fSwgZGF0YWJhc2VQb29sLmdldENvbmZpZ3VyYXRpb24oKSlcbiAgICAgICAgY29uc3QgdGFyZ2V0RGF0YWJhc2VOYW1lID0gZGlnZyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSwgZGF0YWJhc2VJZGVudGlmaWVyLCBcImRhdGFiYXNlXCIpXG5cbiAgICAgICAgLy8gQ29ubmVjdCB0byBhIGtub3duLWV4aXN0aW5nIHN5c3RlbSBkYXRhYmFzZTogdGhlIHRhcmdldCBpcyBhYm91dCB0b1xuICAgICAgICAvLyBiZSBkcm9wcGVkIChzbyB3ZSBjYW4ndCBiZSBjb25uZWN0ZWQgdG8gaXQpLCBQb3N0Z3JlcyByZWplY3RzXG4gICAgICAgIC8vIERST1AgREFUQUJBU0Ugd2hpbGUgY29ubmVjdGVkIHRvIGl0LCBhbmQgY29uZmlndXJlZCBgdXNlRGF0YWJhc2VgXG4gICAgICAgIC8vIG1heSBoYXBwZW4gdG8gZXF1YWwgdGhlIHRhcmdldCDigJQgaW4gdGhhdCBjYXNlIGZhbGwgdGhyb3VnaCB0byB0aGVcbiAgICAgICAgLy8gZHJpdmVyJ3Mgc3lzdGVtIGRlZmF1bHQuXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyZWRGYWxsYmFjayA9IG5ld0NvbmZpZ3VyYXRpb24udXNlRGF0YWJhc2VcbiAgICAgICAgY29uc3QgdXNlQ29uZmlndXJlZEZhbGxiYWNrID0gdHlwZW9mIGNvbmZpZ3VyZWRGYWxsYmFjayA9PSBcInN0cmluZ1wiICYmIGNvbmZpZ3VyZWRGYWxsYmFjay5sZW5ndGggPiAwICYmIGNvbmZpZ3VyZWRGYWxsYmFjayAhPSB0YXJnZXREYXRhYmFzZU5hbWVcblxuICAgICAgICBuZXdDb25maWd1cmF0aW9uLmRhdGFiYXNlID0gdXNlQ29uZmlndXJlZEZhbGxiYWNrXG4gICAgICAgICAgPyBjb25maWd1cmVkRmFsbGJhY2tcbiAgICAgICAgICA6IHRoaXMuc3lzdGVtRmFsbGJhY2tEYXRhYmFzZU5hbWUoZGF0YWJhc2VUeXBlKVxuXG4gICAgICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJtc3NxbFwiICYmIG5ld0NvbmZpZ3VyYXRpb24uc3FsQ29uZmlnPy5kYXRhYmFzZSkge1xuICAgICAgICAgIGRlbGV0ZSBuZXdDb25maWd1cmF0aW9uLnNxbENvbmZpZy5kYXRhYmFzZVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy53aXRoRGlyZWN0RGF0YWJhc2VDb25uZWN0aW9uKG5ld0NvbmZpZ3VyYXRpb24sIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRyb3BEYXRhYmFzZShkYXRhYmFzZUlkZW50aWZpZXIpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFyZ3MudGVzdGluZykgcmV0dXJuIHRoaXMucmVzdWx0XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhYmFzZVR5cGUgLSBEYXRhYmFzZSB0eXBlLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFN5c3RlbS9tYWludGVuYW5jZSBkYXRhYmFzZSBuYW1lIGZvciB0aGF0IGRyaXZlci5cbiAgICovXG4gIHN5c3RlbUZhbGxiYWNrRGF0YWJhc2VOYW1lKGRhdGFiYXNlVHlwZSkge1xuICAgIGlmIChkYXRhYmFzZVR5cGUgPT0gXCJwZ3NxbFwiKSByZXR1cm4gXCJwb3N0Z3Jlc1wiXG4gICAgaWYgKGRhdGFiYXNlVHlwZSA9PSBcIm1zc3FsXCIpIHJldHVybiBcIm1hc3RlclwiXG5cbiAgICByZXR1cm4gXCJteXNxbFwiXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGFiYXNlSWRlbnRpZmllciAtIERhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBkcm9wRGF0YWJhc2UoZGF0YWJhc2VJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gZGlnZyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXREYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSwgZGF0YWJhc2VJZGVudGlmaWVyLCBcImRhdGFiYXNlXCIpXG4gICAgY29uc3Qgc3FscyA9IHRoaXMuZ2V0RGF0YWJhc2VDb25uZWN0aW9uKCkuZHJvcERhdGFiYXNlU3FsKGRhdGFiYXNlTmFtZSwge2lmRXhpc3RzOiB0cnVlfSlcblxuICAgIGF3YWl0IHRoaXMucXVlcnlPckNvbGxlY3RTcWxzKHNxbHMsIChzcWwpID0+ICh7ZGF0YWJhc2VOYW1lLCBzcWx9KSlcbiAgfVxufVxuIl19
@@ -41,6 +41,8 @@ export default class VelociousCli {
41
41
  commandGroups(): Promise<string[][]>;
42
42
  /** @returns {import("../configuration.js").default} configuration */
43
43
  getConfiguration(): import("../configuration.js").default;
44
+ /** @returns {boolean} - Whether the current async context already has database connections. */
45
+ hasCurrentDatabaseConnections(): boolean;
44
46
  /** @returns {boolean} - Whether testing. */
45
47
  getTesting(): boolean;
46
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.js"],"names":[],"mappings":"AAEA;IACE;;;;;;;;OAQG;IACH,mBAPG;QAAqD,aAAa;QAC5C,SAAS;QACkC,kBAAkB;QACd,iBAAiB;QAC9D,WAAW;QACZ,OAAO;KAChC,EAUA;IANC;;;;;;;MAAgB;IAChB,qDAAuC;IAEvC,sEAAoE;IAKtE;;OAEG;IACH,WAFa,OAAO,CAAC,OAAO,CAAC,CAe5B;IAED;;;OAGG;IACH,4BAHW,MAAM,EAAE,GACN,OAAO,CAAC,OAAO,CAAC,CA4B5B;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAoC/B;IAED,qEAAqE;IACrE,oBADc,OAAO,qBAAqB,EAAE,OAAO,CACH;IAEhD,6CAA6C;IAC7C,cADc,OAAO,CAGpB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.js"],"names":[],"mappings":"AAEA;IACE;;;;;;;;OAQG;IACH,mBAPG;QAAqD,aAAa;QAC5C,SAAS;QACkC,kBAAkB;QACd,iBAAiB;QAC9D,WAAW;QACZ,OAAO;KAChC,EAUA;IANC;;;;;;;MAAgB;IAChB,qDAAuC;IAEvC,sEAAoE;IAKtE;;OAEG;IACH,WAFa,OAAO,CAAC,OAAO,CAAC,CAmB5B;IAED;;;OAGG;IACH,4BAHW,MAAM,EAAE,GACN,OAAO,CAAC,OAAO,CAAC,CA4B5B;IAED;;OAEG;IACH,iBAFa,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAoC/B;IAED,qEAAqE;IACrE,oBADc,OAAO,qBAAqB,EAAE,OAAO,CACH;IAEhD,+FAA+F;IAC/F,iCADc,OAAO,CASpB;IAED,6CAA6C;IAC7C,cADc,OAAO,CAGpB;CACF"}
@@ -24,11 +24,16 @@ export default class VelociousCli {
24
24
  async execute() {
25
25
  const commandGroups = await this.commandGroups();
26
26
  let result;
27
- for (const [index, commandProcessArgs] of commandGroups.entries()) {
28
- if (index > 0) {
29
- await this.getConfiguration().closeDatabaseConnections();
27
+ for (const commandProcessArgs of commandGroups) {
28
+ const shouldCloseDatabaseConnections = !this.hasCurrentDatabaseConnections();
29
+ try {
30
+ result = await this.executeCommand(commandProcessArgs);
31
+ }
32
+ finally {
33
+ if (shouldCloseDatabaseConnections) {
34
+ await this.getConfiguration().closeDatabaseConnections();
35
+ }
30
36
  }
31
- result = await this.executeCommand(commandProcessArgs);
32
37
  }
33
38
  return result;
34
39
  }
@@ -97,9 +102,20 @@ export default class VelociousCli {
97
102
  }
98
103
  /** @returns {import("../configuration.js").default} configuration */
99
104
  getConfiguration() { return this.configuration; }
105
+ /** @returns {boolean} - Whether the current async context already has database connections. */
106
+ hasCurrentDatabaseConnections() {
107
+ try {
108
+ return Object.keys(this.getConfiguration().getCurrentConnections()).length > 0;
109
+ }
110
+ catch (error) {
111
+ if (error instanceof Error && error.message.startsWith("No database configuration for environment:"))
112
+ return false;
113
+ throw error;
114
+ }
115
+ }
100
116
  /** @returns {boolean} - Whether testing. */
101
117
  getTesting() {
102
118
  return this.args.testing || false;
103
119
  }
104
120
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLFlBQVk7SUFDL0I7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUU5RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNoRCxJQUFJLE1BQU0sQ0FBQTtRQUVWLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtZQUMxRCxDQUFDO1lBRUQsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ3hELENBQUM7UUFFRCxPQUFP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UUFDM0IsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFDN0MsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUEsQ0FBQyxDQUFDO0lBRWhELDZDQUE2QztJQUM3QyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZGlyZWN0b3J5XSAtIERpcmVjdG9yeSBwYXRoLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Vudmlyb25tZW50LWhhbmRsZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gW2FyZ3MuZW52aXJvbm1lbnRIYW5kbGVyXSAtIEVudmlyb25tZW50IGhhbmRsZXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD59IFthcmdzLnBhcnNlZFByb2Nlc3NBcmdzXSAtIFBhcnNlZCBwcm9jZXNzIGFyZ3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLnByb2Nlc3NBcmdzXSAtIFByb2Nlc3MgYXJncy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy50ZXN0aW5nXSAtIFdoZXRoZXIgdGVzdGluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5jb25maWd1cmF0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25maWd1cmF0aW9uIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gYXJncy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlciA9IGFyZ3MuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIoKVxuICAgIHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnNldEFyZ3MoYXJncylcbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlci5zZXRDb25maWd1cmF0aW9uKGFyZ3MuY29uZmlndXJhdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBmaW5hbCBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgY29tbWFuZEdyb3VwcyA9IGF3YWl0IHRoaXMuY29tbWFuZEdyb3VwcygpXG4gICAgbGV0IHJlc3VsdFxuXG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGNvbW1hbmRQcm9jZXNzQXJnc10gb2YgY29tbWFuZEdyb3Vwcy5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICAgIH1cblxuICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5leGVjdXRlQ29tbWFuZChjb21tYW5kUHJvY2Vzc0FyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzIGZvciBhIHNpbmdsZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKHByb2Nlc3NBcmdzKSB7XG4gICAgaWYgKCFwcm9jZXNzQXJnc1swXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFuZFBhcnRzID0gcHJvY2Vzc0FyZ3NbMF0uc3BsaXQoXCI6XCIpXG4gICAgY29uc3QgcGFyc2VkQ29tbWFuZFBhcnRzID0gW11cblxuICAgIGZvciAobGV0IGNvbW1hbmRQYXJ0IG9mIGNvbW1hbmRQYXJ0cykge1xuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiY1wiKSBjb21tYW5kUGFydCA9IFwiY29uc29sZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJkXCIpIGNvbW1hbmRQYXJ0ID0gXCJkZXN0cm95XCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImdcIikgY29tbWFuZFBhcnQgPSBcImdlbmVyYXRlXCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcInNcIikgY29tbWFuZFBhcnQgPSBcInNlcnZlclwiXG5cbiAgICAgIHBhcnNlZENvbW1hbmRQYXJ0cy5wdXNoKGNvbW1hbmRQYXJ0KVxuICAgIH1cblxuICAgIGNvbnN0IENvbW1hbmRDbGFzcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnJlcXVpcmVDb21tYW5kKHtjb21tYW5kUGFydHM6IHBhcnNlZENvbW1hbmRQYXJ0c30pXG4gICAgY29uc3QgY29tbWFuZEluc3RhbmNlID0gbmV3IENvbW1hbmRDbGFzcyh7XG4gICAgICBhcmdzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFyZ3MsIHtwcm9jZXNzQXJnc30pLFxuICAgICAgY2xpOiB0aGlzXG4gICAgfSlcblxuICAgIGF3YWl0IGNvbW1hbmRJbnN0YW5jZS5pbml0aWFsaXplKClcblxuICAgIHJldHVybiBhd2FpdCBjb21tYW5kSW5zdGFuY2UuZXhlY3V0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW11bXT59IC0gQ29tbWFuZCBncm91cHMgd2l0aCBwcm9jZXNzIGFyZ3MgZm9yIGVhY2ggY29tbWFuZC5cbiAgICovXG4gIGFzeW5jIGNvbW1hbmRHcm91cHMoKSB7XG4gICAgY29uc3QgcHJvY2Vzc0FyZ3MgPSB0aGlzLmFyZ3MucHJvY2Vzc0FyZ3MgfHwgW11cbiAgICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLmZpbmRDb21tYW5kcygpXG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gbmV3IFNldChjb21tYW5kcy5tYXAoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSkpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXVtdfSAqL1xuICAgIGNvbnN0IGdyb3VwcyA9IFtdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICBsZXQgY3VycmVudEdyb3VwID0gW11cblxuICAgIGZvciAoY29uc3QgcHJvY2Vzc0FyZyBvZiBwcm9jZXNzQXJncykge1xuICAgICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPT0gMCkge1xuICAgICAgICBpZiAocHJvY2Vzc0FyZy5zdGFydHNXaXRoKFwiLVwiKSkgY29udGludWVcblxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9jZXNzQXJnLnN0YXJ0c1dpdGgoXCItXCIpICYmIGNvbW1hbmROYW1lcy5oYXMocHJvY2Vzc0FyZykpIHtcbiAgICAgICAgZ3JvdXBzLnB1c2goY3VycmVudEdyb3VwKVxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRHcm91cC5wdXNoKHByb2Nlc3NBcmcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICBncm91cHMucHVzaChjdXJyZW50R3JvdXApXG4gICAgfVxuXG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3Vwc1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGNvbmZpZ3VyYXRpb24gKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbiB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGVzdGluZy4gICovXG4gIGdldFRlc3RpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJncy50ZXN0aW5nIHx8IGZhbHNlXG4gIH1cbn1cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixNQUFNLENBQUMsT0FBTyxPQUFPLFlBQVk7SUFDL0I7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQTtRQUU5RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUNoRCxJQUFJLE1BQU0sQ0FBQTtRQUVWLEtBQUssTUFBTSxrQkFBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMvQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUE7WUFFNUUsSUFBSSxDQUFDO2dCQUNILE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtZQUN4RCxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO29CQUNuQyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxD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LEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUMzQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLGdCQUFnQixLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUM7SUFFaEQsK0ZBQStGO0lBQy9GLDZCQUE2QjtRQUMzQixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDaEYsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsNENBQTRDLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFFbEgsTUFBTSxLQUFLLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUE7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0NsaSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2FyZ3MuY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FyZ3MuZGlyZWN0b3J5XSAtIERpcmVjdG9yeSBwYXRoLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2Vudmlyb25tZW50LWhhbmRsZXJzL2Jhc2UuanNcIikuZGVmYXVsdH0gW2FyZ3MuZW52aXJvbm1lbnRIYW5kbGVyXSAtIEVudmlyb25tZW50IGhhbmRsZXIuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD59IFthcmdzLnBhcnNlZFByb2Nlc3NBcmdzXSAtIFBhcnNlZCBwcm9jZXNzIGFyZ3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLnByb2Nlc3NBcmdzXSAtIFByb2Nlc3MgYXJncy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy50ZXN0aW5nXSAtIFdoZXRoZXIgdGVzdGluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5jb25maWd1cmF0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJjb25maWd1cmF0aW9uIGFyZ3VtZW50IGlzIHJlcXVpcmVkXCIpXG5cbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gYXJncy5jb25maWd1cmF0aW9uXG5cbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlciA9IGFyZ3MuY29uZmlndXJhdGlvbi5nZXRFbnZpcm9ubWVudEhhbmRsZXIoKVxuICAgIHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnNldEFyZ3MoYXJncylcbiAgICB0aGlzLmVudmlyb25tZW50SGFuZGxlci5zZXRDb25maWd1cmF0aW9uKGFyZ3MuY29uZmlndXJhdGlvbilcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBmaW5hbCBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgY29uc3QgY29tbWFuZEdyb3VwcyA9IGF3YWl0IHRoaXMuY29tbWFuZEdyb3VwcygpXG4gICAgbGV0IHJlc3VsdFxuXG4gICAgZm9yIChjb25zdCBjb21tYW5kUHJvY2Vzc0FyZ3Mgb2YgY29tbWFuZEdyb3Vwcykge1xuICAgICAgY29uc3Qgc2hvdWxkQ2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zID0gIXRoaXMuaGFzQ3VycmVudERhdGFiYXNlQ29ubmVjdGlvbnMoKVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmRQcm9jZXNzQXJncylcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChzaG91bGRDbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5jbG9zZURhdGFiYXNlQ29ubmVjdGlvbnMoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzIGZvciBhIHNpbmdsZSBjb21tYW5kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjb21tYW5kIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kKHByb2Nlc3NBcmdzKSB7XG4gICAgaWYgKCFwcm9jZXNzQXJnc1swXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFuZFBhcnRzID0gcHJvY2Vzc0FyZ3NbMF0uc3BsaXQoXCI6XCIpXG4gICAgY29uc3QgcGFyc2VkQ29tbWFuZFBhcnRzID0gW11cblxuICAgIGZvciAobGV0IGNvbW1hbmRQYXJ0IG9mIGNvbW1hbmRQYXJ0cykge1xuICAgICAgaWYgKGNvbW1hbmRQYXJ0ID09IFwiY1wiKSBjb21tYW5kUGFydCA9IFwiY29uc29sZVwiXG4gICAgICBpZiAoY29tbWFuZFBhcnQgPT0gXCJkXCIpIGNvbW1hbmRQYXJ0ID0gXCJkZXN0cm95XCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcImdcIikgY29tbWFuZFBhcnQgPSBcImdlbmVyYXRlXCJcbiAgICAgIGlmIChjb21tYW5kUGFydCA9PSBcInNcIikgY29tbWFuZFBhcnQgPSBcInNlcnZlclwiXG5cbiAgICAgIHBhcnNlZENvbW1hbmRQYXJ0cy5wdXNoKGNvbW1hbmRQYXJ0KVxuICAgIH1cblxuICAgIGNvbnN0IENvbW1hbmRDbGFzcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLnJlcXVpcmVDb21tYW5kKHtjb21tYW5kUGFydHM6IHBhcnNlZENvbW1hbmRQYXJ0c30pXG4gICAgY29uc3QgY29tbWFuZEluc3RhbmNlID0gbmV3IENvbW1hbmRDbGFzcyh7XG4gICAgICBhcmdzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFyZ3MsIHtwcm9jZXNzQXJnc30pLFxuICAgICAgY2xpOiB0aGlzXG4gICAgfSlcblxuICAgIGF3YWl0IGNvbW1hbmRJbnN0YW5jZS5pbml0aWFsaXplKClcblxuICAgIHJldHVybiBhd2FpdCBjb21tYW5kSW5zdGFuY2UuZXhlY3V0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW11bXT59IC0gQ29tbWFuZCBncm91cHMgd2l0aCBwcm9jZXNzIGFyZ3MgZm9yIGVhY2ggY29tbWFuZC5cbiAgICovXG4gIGFzeW5jIGNvbW1hbmRHcm91cHMoKSB7XG4gICAgY29uc3QgcHJvY2Vzc0FyZ3MgPSB0aGlzLmFyZ3MucHJvY2Vzc0FyZ3MgfHwgW11cbiAgICBjb25zdCBjb21tYW5kcyA9IGF3YWl0IHRoaXMuZW52aXJvbm1lbnRIYW5kbGVyLmZpbmRDb21tYW5kcygpXG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gbmV3IFNldChjb21tYW5kcy5tYXAoKGNvbW1hbmQpID0+IGNvbW1hbmQubmFtZSkpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXVtdfSAqL1xuICAgIGNvbnN0IGdyb3VwcyA9IFtdXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICBsZXQgY3VycmVudEdyb3VwID0gW11cblxuICAgIGZvciAoY29uc3QgcHJvY2Vzc0FyZyBvZiBwcm9jZXNzQXJncykge1xuICAgICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPT0gMCkge1xuICAgICAgICBpZiAocHJvY2Vzc0FyZy5zdGFydHNXaXRoKFwiLVwiKSkgY29udGludWVcblxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKCFwcm9jZXNzQXJnLnN0YXJ0c1dpdGgoXCItXCIpICYmIGNvbW1hbmROYW1lcy5oYXMocHJvY2Vzc0FyZykpIHtcbiAgICAgICAgZ3JvdXBzLnB1c2goY3VycmVudEdyb3VwKVxuICAgICAgICBjdXJyZW50R3JvdXAgPSBbcHJvY2Vzc0FyZ11cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnRHcm91cC5wdXNoKHByb2Nlc3NBcmcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICBncm91cHMucHVzaChjdXJyZW50R3JvdXApXG4gICAgfVxuXG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBjb21tYW5kIGFyZ3VtZW50XCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3Vwc1xuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGNvbmZpZ3VyYXRpb24gKi9cbiAgZ2V0Q29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbiB9XG5cbiAgLyoqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGN1cnJlbnQgYXN5bmMgY29udGV4dCBhbHJlYWR5IGhhcyBkYXRhYmFzZSBjb25uZWN0aW9ucy4gKi9cbiAgaGFzQ3VycmVudERhdGFiYXNlQ29ubmVjdGlvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDdXJyZW50Q29ubmVjdGlvbnMoKSkubGVuZ3RoID4gMFxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoXCJObyBkYXRhYmFzZSBjb25maWd1cmF0aW9uIGZvciBlbnZpcm9ubWVudDpcIikpIHJldHVybiBmYWxzZVxuXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRlc3RpbmcuICAqL1xuICBnZXRUZXN0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmFyZ3MudGVzdGluZyB8fCBmYWxzZVxuICB9XG59XG4iXX0=
@@ -285,7 +285,9 @@
285
285
  * @property {typeof import("./controller.js").default} [controllerClass] - Optional controller class override.
286
286
  * @property {string} [controllerPath] - Optional absolute/relative controller file path override.
287
287
  * @property {Record<string, any>} [params] - Extra params to merge for controller/action.
288
+ * @property {boolean} [skipAbilityResolution] - Whether to run the controller action without resolving request ability.
288
289
  * @property {boolean} [skipControllerConnections] - Whether to run the controller action without the automatic database checkout wrapper.
290
+ * @property {boolean} [skipTenantResolution] - Whether to run the controller action without resolving request tenant.
289
291
  * @property {string} [viewPath] - Optional view path override used by controller render lookups.
290
292
  */
291
293
  /**
@@ -1096,10 +1098,18 @@ export type RouteResolverHookResult = {
1096
1098
  * - Extra params to merge for controller/action.
1097
1099
  */
1098
1100
  params?: Record<string, any> | undefined;
1101
+ /**
1102
+ * - Whether to run the controller action without resolving request ability.
1103
+ */
1104
+ skipAbilityResolution?: boolean | undefined;
1099
1105
  /**
1100
1106
  * - Whether to run the controller action without the automatic database checkout wrapper.
1101
1107
  */
1102
1108
  skipControllerConnections?: boolean | undefined;
1109
+ /**
1110
+ * - Whether to run the controller action without resolving request tenant.
1111
+ */
1112
+ skipTenantResolution?: boolean | undefined;
1103
1113
  /**
1104
1114
  * - Optional view path override used by controller render lookups.
1105
1115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-types.d.ts","sourceRoot":"","sources":["../../src/configuration-types.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration-types.d.ts","sourceRoot":"","sources":["../../src/configuration-types.js"],"names":[],"mappings":"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"}