velocious 1.0.580 → 1.0.581

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 (40) hide show
  1. package/README.md +1 -0
  2. package/build/cli/command-arguments.js +45 -0
  3. package/build/cli/index.js +10 -0
  4. package/build/configuration-types.js +1 -0
  5. package/build/database/generation-context.js +121 -0
  6. package/build/database/initializer-from-require-context.js +7 -0
  7. package/build/environment-handlers/node/cli/commands/db/schema/dump.js +25 -0
  8. package/build/environment-handlers/node/cli/commands/db/schema/load.js +37 -8
  9. package/build/environment-handlers/node/cli/commands/generate/base-models.js +82 -13
  10. package/build/src/cli/command-arguments.d.ts +27 -0
  11. package/build/src/cli/command-arguments.d.ts.map +1 -0
  12. package/build/src/cli/command-arguments.js +38 -0
  13. package/build/src/cli/index.d.ts.map +1 -1
  14. package/build/src/cli/index.js +9 -1
  15. package/build/src/configuration-types.d.ts +8 -0
  16. package/build/src/configuration-types.d.ts.map +1 -1
  17. package/build/src/configuration-types.js +2 -1
  18. package/build/src/database/generation-context.d.ts +62 -0
  19. package/build/src/database/generation-context.d.ts.map +1 -0
  20. package/build/src/database/generation-context.js +102 -0
  21. package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
  22. package/build/src/database/initializer-from-require-context.js +6 -1
  23. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
  24. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.js +22 -1
  25. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +11 -0
  26. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
  27. package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +33 -7
  28. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +14 -0
  29. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
  30. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +371 -308
  31. package/build/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +1 -1
  33. package/src/cli/command-arguments.js +45 -0
  34. package/src/cli/index.js +10 -0
  35. package/src/configuration-types.js +1 -0
  36. package/src/database/generation-context.js +121 -0
  37. package/src/database/initializer-from-require-context.js +7 -0
  38. package/src/environment-handlers/node/cli/commands/db/schema/dump.js +25 -0
  39. package/src/environment-handlers/node/cli/commands/db/schema/load.js +37 -8
  40. package/src/environment-handlers/node/cli/commands/generate/base-models.js +82 -13
@@ -0,0 +1,102 @@
1
+ // @ts-check
2
+ import Tenant from "../tenants/tenant.js";
3
+ /**
4
+ * Immutable selection of one logical tenant database and one provider-resolved
5
+ * physical tenant. Schema tools can share this contract without ambient or
6
+ * process-global selection state.
7
+ */
8
+ export default class DatabaseGenerationContext {
9
+ /**
10
+ * Resolves one tenant-only database from its provider and captures its physical identity.
11
+ * @param {object} args - Selection arguments.
12
+ * @param {import("../configuration.js").default} args.configuration - Owning configuration.
13
+ * @param {string} args.databaseIdentifier - Logical tenant-only database identifier.
14
+ * @returns {Promise<DatabaseGenerationContext>} - Immutable selected database context.
15
+ */
16
+ static async resolve({ configuration, databaseIdentifier }) {
17
+ const databaseConfiguration = configuration.getDatabaseConfiguration()[databaseIdentifier];
18
+ if (!databaseConfiguration) {
19
+ throw new Error(`No such tenant database identifier configured: ${databaseIdentifier}`);
20
+ }
21
+ if (!databaseConfiguration.tenantOnly) {
22
+ throw new Error(`Database identifier ${databaseIdentifier} is not configured with tenantOnly: true`);
23
+ }
24
+ if (configuration.getDisabledDatabaseIdentifiers().has(databaseIdentifier)) {
25
+ throw new Error(`Tenant database identifier ${databaseIdentifier} is disabled by VELOCIOUS_DISABLED_DATABASE_IDENTIFIERS`);
26
+ }
27
+ const provider = configuration.getTenantDatabaseProvider(databaseIdentifier);
28
+ await configuration.initialize({ type: "database-generation" });
29
+ const tenants = await configuration.ensureConnections({ name: `Resolve database generation context: ${databaseIdentifier}` }, async () => {
30
+ if (provider.resolveGenerationTenant) {
31
+ const tenant = await provider.resolveGenerationTenant({ configuration, identifier: databaseIdentifier });
32
+ return tenant === undefined ? [] : [tenant];
33
+ }
34
+ return await provider.listTenants({ configuration, identifier: databaseIdentifier });
35
+ });
36
+ if (!Array.isArray(tenants)) {
37
+ throw new Error(`Tenant database provider for ${databaseIdentifier} must return an array from listTenants`);
38
+ }
39
+ if (tenants.length === 0) {
40
+ throw new Error(`Tenant database selection ${databaseIdentifier} resolved no tenants`);
41
+ }
42
+ if (tenants.length !== 1) {
43
+ throw new Error(`Tenant database selection ${databaseIdentifier} is ambiguous: provider returned ${tenants.length} tenants`);
44
+ }
45
+ const tenant = tenants[0];
46
+ if (!tenant || typeof tenant !== "object" || Array.isArray(tenant)) {
47
+ throw new Error(`Tenant database selection ${databaseIdentifier} returned an invalid tenant descriptor`);
48
+ }
49
+ const handle = Tenant.handle(tenant, configuration);
50
+ // Resolve now so an inactive/stale descriptor fails before a selected
51
+ // schema connection can be checked out or read.
52
+ handle.databaseConfiguration(databaseIdentifier);
53
+ return new DatabaseGenerationContext({ configuration, databaseIdentifier, handle });
54
+ }
55
+ /**
56
+ * Runs constructor.
57
+ * @param {object} args - Captured selection.
58
+ * @param {import("../configuration.js").default} args.configuration - Owning configuration.
59
+ * @param {string} args.databaseIdentifier - Logical database identifier.
60
+ * @param {ReturnType<typeof Tenant.handle>} args.handle - Captured tenant handle.
61
+ */
62
+ constructor({ configuration, databaseIdentifier, handle }) {
63
+ this._configuration = configuration;
64
+ this._databaseIdentifier = databaseIdentifier;
65
+ this._handle = handle;
66
+ Object.freeze(this);
67
+ }
68
+ /**
69
+ * Returns the captured logical database identifier.
70
+ * @returns {string} - Captured logical database identifier.
71
+ */
72
+ databaseIdentifier() { return this._databaseIdentifier; }
73
+ /**
74
+ * Returns the captured physical database configuration.
75
+ * @returns {import("../configuration-types.js").DatabaseConfigurationType} - Captured physical database configuration.
76
+ */
77
+ databaseConfiguration() { return this._handle.databaseConfiguration(this._databaseIdentifier); }
78
+ /**
79
+ * Returns the captured tenant descriptor.
80
+ * @returns {ReturnType<ReturnType<typeof Tenant.handle>["tenant"]>} - Captured immutable tenant descriptor.
81
+ */
82
+ tenant() { return this._handle.tenant(); }
83
+ /**
84
+ * Runs work on one connection pinned to the captured physical database.
85
+ * @template T
86
+ * @param {object} args - Work arguments.
87
+ * @param {(connection: import("./drivers/base.js").default) => Promise<T>} args.callback - Selected database work.
88
+ * @param {string} args.name - Checkout name.
89
+ * @returns {Promise<T>} - Callback result.
90
+ */
91
+ async run({ callback, name }) {
92
+ return await this._configuration.runWithTenant(this.tenant(), async () => {
93
+ return await this._configuration.withDatabaseOperation({
94
+ databaseConfiguration: this.databaseConfiguration(),
95
+ databaseIdentifier: this.databaseIdentifier(),
96
+ name,
97
+ tenant: this.tenant()
98
+ }, async (operation) => await callback(operation.connection()));
99
+ });
100
+ }
101
+ }
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2dlbmVyYXRpb24tY29udGV4dC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxNQUFNLE1BQU0sc0JBQXNCLENBQUE7QUFFekM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8seUJBQXlCO0lBQzVDOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFDO1FBQ3RELE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUUxRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxrQkFBa0IsRUFBRSxDQUFDLENBQUE7UUFDekYsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixrQkFBa0IsMENBQTBDLENBQUMsQ0FBQTtRQUN0RyxDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGtCQUFrQix5REFBeUQsQ0FBQyxDQUFBO1FBQzVILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUU1RSxNQUFNLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsSUFBSSxFQUFFLHdDQUF3QyxrQkFBa0IsRUFBRSxFQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckksSUFBSSxRQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsdUJBQXVCLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQTtnQkFFdEcsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDN0MsQ0FBQztZQUVELE9BQU8sTUFBTSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBQyxDQUFDLENBQUE7UUFDcEYsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLGtCQUFrQix3Q0FBd0MsQ0FBQyxDQUFBO1FBQzdHLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsa0JBQWtCLHNCQUFzQixDQUFDLENBQUE7UUFDeEYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixrQkFBa0Isb0NBQW9DLE9BQU8sQ0FBQyxNQUFNLFVBQVUsQ0FBQyxDQUFBO1FBQzlILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFekIsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLGtCQUFrQix3Q0FBd0MsQ0FBQyxDQUFBO1FBQzFHLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUVuRCxzRUFBc0U7UUFDdEUsZ0RBQWdEO1FBQ2hELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBRWhELE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQTtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUE7UUFFckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLEtBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUEsQ0FBQyxDQUFDO0lBRXhEOzs7T0FHRztJQUNILHFCQUFxQixLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFL0Y7OztPQUdHO0lBQ0gsTUFBTSxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFFekM7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO1FBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkUsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDbkQsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM3QyxJQUFJO2dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ3RCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNqRSxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgVGVuYW50IGZyb20gXCIuLi90ZW5hbnRzL3RlbmFudC5qc1wiXG5cbi8qKlxuICogSW1tdXRhYmxlIHNlbGVjdGlvbiBvZiBvbmUgbG9naWNhbCB0ZW5hbnQgZGF0YWJhc2UgYW5kIG9uZSBwcm92aWRlci1yZXNvbHZlZFxuICogcGh5c2ljYWwgdGVuYW50LiBTY2hlbWEgdG9vbHMgY2FuIHNoYXJlIHRoaXMgY29udHJhY3Qgd2l0aG91dCBhbWJpZW50IG9yXG4gKiBwcm9jZXNzLWdsb2JhbCBzZWxlY3Rpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQge1xuICAvKipcbiAgICogUmVzb2x2ZXMgb25lIHRlbmFudC1vbmx5IGRhdGFiYXNlIGZyb20gaXRzIHByb3ZpZGVyIGFuZCBjYXB0dXJlcyBpdHMgcGh5c2ljYWwgaWRlbnRpdHkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gU2VsZWN0aW9uIGFyZ3VtZW50cy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIE93bmluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kYXRhYmFzZUlkZW50aWZpZXIgLSBMb2dpY2FsIHRlbmFudC1vbmx5IGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQ+fSAtIEltbXV0YWJsZSBzZWxlY3RlZCBkYXRhYmFzZSBjb250ZXh0LlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlc29sdmUoe2NvbmZpZ3VyYXRpb24sIGRhdGFiYXNlSWRlbnRpZmllcn0pIHtcbiAgICBjb25zdCBkYXRhYmFzZUNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpW2RhdGFiYXNlSWRlbnRpZmllcl1cblxuICAgIGlmICghZGF0YWJhc2VDb25maWd1cmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHN1Y2ggdGVuYW50IGRhdGFiYXNlIGlkZW50aWZpZXIgY29uZmlndXJlZDogJHtkYXRhYmFzZUlkZW50aWZpZXJ9YClcbiAgICB9XG4gICAgaWYgKCFkYXRhYmFzZUNvbmZpZ3VyYXRpb24udGVuYW50T25seSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEYXRhYmFzZSBpZGVudGlmaWVyICR7ZGF0YWJhc2VJZGVudGlmaWVyfSBpcyBub3QgY29uZmlndXJlZCB3aXRoIHRlbmFudE9ubHk6IHRydWVgKVxuICAgIH1cbiAgICBpZiAoY29uZmlndXJhdGlvbi5nZXREaXNhYmxlZERhdGFiYXNlSWRlbnRpZmllcnMoKS5oYXMoZGF0YWJhc2VJZGVudGlmaWVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllciAke2RhdGFiYXNlSWRlbnRpZmllcn0gaXMgZGlzYWJsZWQgYnkgVkVMT0NJT1VTX0RJU0FCTEVEX0RBVEFCQVNFX0lERU5USUZJRVJTYClcbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlciA9IGNvbmZpZ3VyYXRpb24uZ2V0VGVuYW50RGF0YWJhc2VQcm92aWRlcihkYXRhYmFzZUlkZW50aWZpZXIpXG5cbiAgICBhd2FpdCBjb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwiZGF0YWJhc2UtZ2VuZXJhdGlvblwifSlcblxuICAgIGNvbnN0IHRlbmFudHMgPSBhd2FpdCBjb25maWd1cmF0aW9uLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBgUmVzb2x2ZSBkYXRhYmFzZSBnZW5lcmF0aW9uIGNvbnRleHQ6ICR7ZGF0YWJhc2VJZGVudGlmaWVyfWB9LCBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAocHJvdmlkZXIucmVzb2x2ZUdlbmVyYXRpb25UZW5hbnQpIHtcbiAgICAgICAgY29uc3QgdGVuYW50ID0gYXdhaXQgcHJvdmlkZXIucmVzb2x2ZUdlbmVyYXRpb25UZW5hbnQoe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXI6IGRhdGFiYXNlSWRlbnRpZmllcn0pXG5cbiAgICAgICAgcmV0dXJuIHRlbmFudCA9PT0gdW5kZWZpbmVkID8gW10gOiBbdGVuYW50XVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgcHJvdmlkZXIubGlzdFRlbmFudHMoe2NvbmZpZ3VyYXRpb24sIGlkZW50aWZpZXI6IGRhdGFiYXNlSWRlbnRpZmllcn0pXG4gICAgfSlcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0ZW5hbnRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2UgcHJvdmlkZXIgZm9yICR7ZGF0YWJhc2VJZGVudGlmaWVyfSBtdXN0IHJldHVybiBhbiBhcnJheSBmcm9tIGxpc3RUZW5hbnRzYClcbiAgICB9XG4gICAgaWYgKHRlbmFudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRlbmFudCBkYXRhYmFzZSBzZWxlY3Rpb24gJHtkYXRhYmFzZUlkZW50aWZpZXJ9IHJlc29sdmVkIG5vIHRlbmFudHNgKVxuICAgIH1cbiAgICBpZiAodGVuYW50cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGVuYW50IGRhdGFiYXNlIHNlbGVjdGlvbiAke2RhdGFiYXNlSWRlbnRpZmllcn0gaXMgYW1iaWd1b3VzOiBwcm92aWRlciByZXR1cm5lZCAke3RlbmFudHMubGVuZ3RofSB0ZW5hbnRzYClcbiAgICB9XG5cbiAgICBjb25zdCB0ZW5hbnQgPSB0ZW5hbnRzWzBdXG5cbiAgICBpZiAoIXRlbmFudCB8fCB0eXBlb2YgdGVuYW50ICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkodGVuYW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW5hbnQgZGF0YWJhc2Ugc2VsZWN0aW9uICR7ZGF0YWJhc2VJZGVudGlmaWVyfSByZXR1cm5lZCBhbiBpbnZhbGlkIHRlbmFudCBkZXNjcmlwdG9yYClcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGUgPSBUZW5hbnQuaGFuZGxlKHRlbmFudCwgY29uZmlndXJhdGlvbilcblxuICAgIC8vIFJlc29sdmUgbm93IHNvIGFuIGluYWN0aXZlL3N0YWxlIGRlc2NyaXB0b3IgZmFpbHMgYmVmb3JlIGEgc2VsZWN0ZWRcbiAgICAvLyBzY2hlbWEgY29ubmVjdGlvbiBjYW4gYmUgY2hlY2tlZCBvdXQgb3IgcmVhZC5cbiAgICBoYW5kbGUuZGF0YWJhc2VDb25maWd1cmF0aW9uKGRhdGFiYXNlSWRlbnRpZmllcilcblxuICAgIHJldHVybiBuZXcgRGF0YWJhc2VHZW5lcmF0aW9uQ29udGV4dCh7Y29uZmlndXJhdGlvbiwgZGF0YWJhc2VJZGVudGlmaWVyLCBoYW5kbGV9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gQ2FwdHVyZWQgc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gT3duaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmRhdGFiYXNlSWRlbnRpZmllciAtIExvZ2ljYWwgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtSZXR1cm5UeXBlPHR5cGVvZiBUZW5hbnQuaGFuZGxlPn0gYXJncy5oYW5kbGUgLSBDYXB0dXJlZCB0ZW5hbnQgaGFuZGxlLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGRhdGFiYXNlSWRlbnRpZmllciwgaGFuZGxlfSkge1xuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyID0gZGF0YWJhc2VJZGVudGlmaWVyXG4gICAgdGhpcy5faGFuZGxlID0gaGFuZGxlXG5cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY2FwdHVyZWQgbG9naWNhbCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIENhcHR1cmVkIGxvZ2ljYWwgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICovXG4gIGRhdGFiYXNlSWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2RhdGFiYXNlSWRlbnRpZmllciB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNhcHR1cmVkIHBoeXNpY2FsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLkRhdGFiYXNlQ29uZmlndXJhdGlvblR5cGV9IC0gQ2FwdHVyZWQgcGh5c2ljYWwgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIGRhdGFiYXNlQ29uZmlndXJhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2hhbmRsZS5kYXRhYmFzZUNvbmZpZ3VyYXRpb24odGhpcy5fZGF0YWJhc2VJZGVudGlmaWVyKSB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNhcHR1cmVkIHRlbmFudCBkZXNjcmlwdG9yLlxuICAgKiBAcmV0dXJucyB7UmV0dXJuVHlwZTxSZXR1cm5UeXBlPHR5cGVvZiBUZW5hbnQuaGFuZGxlPltcInRlbmFudFwiXT59IC0gQ2FwdHVyZWQgaW1tdXRhYmxlIHRlbmFudCBkZXNjcmlwdG9yLlxuICAgKi9cbiAgdGVuYW50KCkgeyByZXR1cm4gdGhpcy5faGFuZGxlLnRlbmFudCgpIH1cblxuICAvKipcbiAgICogUnVucyB3b3JrIG9uIG9uZSBjb25uZWN0aW9uIHBpbm5lZCB0byB0aGUgY2FwdHVyZWQgcGh5c2ljYWwgZGF0YWJhc2UuXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gV29yayBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSB7KGNvbm5lY3Rpb246IGltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQpID0+IFByb21pc2U8VD59IGFyZ3MuY2FsbGJhY2sgLSBTZWxlY3RlZCBkYXRhYmFzZSB3b3JrLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5uYW1lIC0gQ2hlY2tvdXQgbmFtZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gQ2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcnVuKHtjYWxsYmFjaywgbmFtZX0pIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29uZmlndXJhdGlvbi5ydW5XaXRoVGVuYW50KHRoaXMudGVuYW50KCksIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25maWd1cmF0aW9uLndpdGhEYXRhYmFzZU9wZXJhdGlvbih7XG4gICAgICAgIGRhdGFiYXNlQ29uZmlndXJhdGlvbjogdGhpcy5kYXRhYmFzZUNvbmZpZ3VyYXRpb24oKSxcbiAgICAgICAgZGF0YWJhc2VJZGVudGlmaWVyOiB0aGlzLmRhdGFiYXNlSWRlbnRpZmllcigpLFxuICAgICAgICBuYW1lLFxuICAgICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50KClcbiAgICAgIH0sIGFzeW5jIChvcGVyYXRpb24pID0+IGF3YWl0IGNhbGxiYWNrKG9wZXJhdGlvbi5jb25uZWN0aW9uKCkpKVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"initializer-from-require-context.d.ts","sourceRoot":"","sources":["../../../src/database/initializer-from-require-context.js"],"names":[],"mappings":"AAIG,YAAiF,sCAAsC,GAA7G,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,mBAAmB,EAAE,OAAO,CAAA;CAAC,CAAwC;AACvH,YAGG,4BAA4B,GAHrB,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX,CAA8B;AANlC;;;;;;;GAOG;AAEH,OAAO,MAAM,MAAM,cAAc,CAAA;AAGjC,MAAM,CAAC,OAAO,OAAO,8CAA8C;IAS1D,cAAc;IACd,MAAM;IATb;;;;OAIG;IACH,YAAY,EAAC,cAAc,EAAE,GAAG,QAAQ,EAAC,EAFtC;QAA2C,cAAc,EAAjD,4BAA4B,CACtC;KACwC,EAKxC;IAED;;;;;OAKG;IACG,UAAU,CAAC,EAAC,aAAa,EAAE,GAAG,QAAQ,EAAC,EAH1C;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;KAE0C,GAFhC,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED;;;;;;OAMG;IACG,sBAAsB,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJrD;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEqD,GAF3C,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;;OAWG;IACG,kCAAkC,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJjE;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEiE,GAFvD,OAAO,CAAC,IAAI,CAAC,CAmBzB;CACF"}
1
+ {"version":3,"file":"initializer-from-require-context.d.ts","sourceRoot":"","sources":["../../../src/database/initializer-from-require-context.js"],"names":[],"mappings":"AAIG,YAAiF,sCAAsC,GAA7G,CAAC,EAAE,EAAE,MAAM,KAAK;IAAC,OAAO,EAAE,cAAc,mBAAmB,EAAE,OAAO,CAAA;CAAC,CAAwC;AACvH,YAGG,4BAA4B,GAHrB,sCAAsC,GAAG;IACjD,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAA;CACX,CAA8B;AANlC;;;;;;;GAOG;AAEH,OAAO,MAAM,MAAM,cAAc,CAAA;AAGjC,MAAM,CAAC,OAAO,OAAO,8CAA8C;IAS1D,cAAc;IACd,MAAM;IATb;;;;OAIG;IACH,YAAY,EAAC,cAAc,EAAE,GAAG,QAAQ,EAAC,EAFtC;QAA2C,cAAc,EAAjD,4BAA4B,CACtC;KACwC,EAKxC;IAED;;;;;OAKG;IACG,UAAU,CAAC,EAAC,aAAa,EAAE,GAAG,QAAQ,EAAC,EAH1C;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;KAE0C,GAFhC,OAAO,CAAC,IAAI,CAAC,CA6BzB;IAED;;;;;;OAMG;IACG,sBAAsB,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJrD;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEqD,GAF3C,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;;OAWG;IACG,kCAAkC,CAAC,EAAC,aAAa,EAAE,UAAU,EAAC,EAJjE;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAyD,UAAU,EAA3D,cAAc,mBAAmB,EAAE,OAAO,CAClD;KAEiE,GAFvD,OAAO,CAAC,IAAI,CAAC,CAmBzB;CACF"}
@@ -35,6 +35,11 @@ export default class VelociousDatabaseInitializerFromRequireContext {
35
35
  const modelClass = modelClassImport.default;
36
36
  if (!modelClass)
37
37
  throw new Error(`Model wasn't exported from: ${fileName}`);
38
+ const configuredDatabase = configuration.getDatabaseConfiguration()[modelClass.getConfiguredDatabaseIdentifier()];
39
+ if (configuredDatabase?.tenantOnly && !configuration.isDatabaseIdentifierActive(modelClass.getConfiguredDatabaseIdentifier())) {
40
+ modelClass.registerRecordClass({ configuration });
41
+ continue;
42
+ }
38
43
  if (!modelClass.getEagerLoadRecordMetadata()) {
39
44
  modelClass.registerRecordClass({ configuration });
40
45
  await this._bestEffortInitializeDeferredModel({ configuration, modelClass });
@@ -87,4 +92,4 @@ export default class VelociousDatabaseInitializerFromRequireContext {
87
92
  }
88
93
  }
89
94
  }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxhQUFhLE1BQU0sNkJBQTZCLENBQUE7QUFFdkQsTUFBTSxDQUFDLE9BQU8sT0FBTyw4Q0FBOEM7SUFDakU7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxjQUFjLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDdkMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFDLGFBQWEsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUMzQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxnQkFBZ0I7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUV0RixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7WUFFM0MsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUUzRSxJQUFJLENBQUMsVUFBVSxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQztnQkFDN0MsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtnQkFDL0MsTUFBTSxJQUFJLENBQUMsa0NBQWtDLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtnQkFDMUUsU0FBUTtZQUNWLENBQUM7WUFFRCxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQztRQUN0RCxNQUFNLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7UUFFbEQsSUFBSSxNQUFNLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBTSxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7UUFDMUUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUM7UUFDbEUsSUFBSSxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFDLDBCQUEwQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFDN0UsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO1lBRTFGLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU07WUFFbEIsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLDRFQUE0RTtZQUM1RSx1RUFBdUU7WUFDdkUsaUZBQWlGO1lBQ2pGLDZFQUE2RTtZQUM3RSx5REFBeUQ7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxVQUFVLENBQUMsSUFBSSxtREFBbUQsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN2RyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO1FBQ2pELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBEZWZpbmVzIHRoaXMgdHlwZWRlZi5cbiAqIEB0eXBlZGVmIHsoaWQ6IHN0cmluZykgPT4ge2RlZmF1bHQ6IHR5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fX0gTW9kZWxDbGFzc1JlcXVpcmVDb250ZXh0SURGdW5jdGlvblR5cGVcbiAqIEB0eXBlZGVmIHtNb2RlbENsYXNzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZSAmIHtcbiAqICAga2V5czogKCkgPT4gc3RyaW5nW10sXG4gKiAgIGlkOiBzdHJpbmdcbiAqIH19IE1vZGVsQ2xhc3NSZXF1aXJlQ29udGV4dFR5cGVcbiAqL1xuXG5pbXBvcnQgTG9nZ2VyIGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlSW5pdGlhbGl6ZXJGcm9tUmVxdWlyZUNvbnRleHQge1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtNb2RlbENsYXNzUmVxdWlyZUNvbnRleHRUeXBlfSBhcmdzLnJlcXVpcmVDb250ZXh0IC0gUmVxdWlyZSBjb250ZXh0LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe3JlcXVpcmVDb250ZXh0LCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5yZXF1aXJlQ29udGV4dCA9IHJlcXVpcmVDb250ZXh0XG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpbml0aWFsaXplLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGluaXRpYWxpemUoe2NvbmZpZ3VyYXRpb24sIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIHRoaXMucmVxdWlyZUNvbnRleHQua2V5cygpKSB7XG4gICAgICBjb25zdCBtb2RlbENsYXNzSW1wb3J0ID0gdGhpcy5yZXF1aXJlQ29udGV4dChmaWxlTmFtZSlcblxuICAgICAgaWYgKCFtb2RlbENsYXNzSW1wb3J0KSB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGltcG9ydCBtb2RlbCBjbGFzcyBmcm9tICR7ZmlsZU5hbWV9YClcblxuICAgICAgY29uc3QgbW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NJbXBvcnQuZGVmYXVsdFxuXG4gICAgICBpZiAoIW1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihgTW9kZWwgd2Fzbid0IGV4cG9ydGVkIGZyb206ICR7ZmlsZU5hbWV9YClcblxuICAgICAgaWYgKCFtb2RlbENsYXNzLmdldEVhZ2VyTG9hZFJlY29yZE1ldGFkYXRhKCkpIHtcbiAgICAgICAgbW9kZWxDbGFzcy5yZWdpc3RlclJlY29yZENsYXNzKHtjb25maWd1cmF0aW9ufSlcbiAgICAgICAgYXdhaXQgdGhpcy5fYmVzdEVmZm9ydEluaXRpYWxpemVEZWZlcnJlZE1vZGVsKHtjb25maWd1cmF0aW9uLCBtb2RlbENsYXNzfSlcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5faW5pdGlhbGl6ZU1vZGVsUmVjb3JkKHtjb25maWd1cmF0aW9uLCBtb2RlbENsYXNzfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBtb2RlbCdzIHJlY29yZCBtZXRhZGF0YSBhbmQgaXRzIHRyYW5zbGF0aW9uIHRhYmxlIChpZiBhbnkpLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy5tb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIF9pbml0aWFsaXplTW9kZWxSZWNvcmQoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KSB7XG4gICAgYXdhaXQgbW9kZWxDbGFzcy5pbml0aWFsaXplUmVjb3JkKHtjb25maWd1cmF0aW9ufSlcblxuICAgIGlmIChhd2FpdCBtb2RlbENsYXNzLmhhc1RyYW5zbGF0aW9uc1RhYmxlKCkpIHtcbiAgICAgIGF3YWl0IG1vZGVsQ2xhc3MuZ2V0VHJhbnNsYXRpb25DbGFzcygpLmluaXRpYWxpemVSZWNvcmQoe2NvbmZpZ3VyYXRpb259KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RlbHMgb3B0aW5nIG91dCBvZiBlYWdlciBtZXRhZGF0YSBsb2FkaW5nIChgc2V0RWFnZXJMb2FkUmVjb3JkTWV0YWRhdGEoZmFsc2UpYClcbiAgICogYXJlIHN0aWxsIGluaXRpYWxpemVkIGF0IHN0YXJ0dXAgd2hlbiB0aGVpciAob3B0aW9uYWwpIHRhYmxlIGlzIHByZXNlbnQsIHNvIHRoYXRcbiAgICogc3luY2hyb25vdXMgcXVlcnkgYnVpbGRpbmcgc3VjaCBhcyBgLndoZXJlKC4uLilgIHdvcmtzIHdpdGhvdXQgY2FsbGVycyBoYXZpbmcgdG9cbiAgICogY2FsbCBgZW5zdXJlSW5pdGlhbGl6ZWQoKWAgZmlyc3QuIFdoZW4gdGhlIHRhYmxlIOKAlCBvciBpdHMgY29ubmVjdGlvbiDigJQgaXMgbm90XG4gICAqIGF2YWlsYWJsZSB0aGUgbW9kZWwgaXMgbGVmdCBkZWZlcnJlZCBzbyBzdGFydHVwIHN0aWxsIHN1Y2NlZWRzOyBpdCBjYW4gdGhlblxuICAgKiBpbml0aWFsaXplIGxhemlseSB0aGUgZmlyc3QgdGltZSBhIHRlcm1pbmFsIHF1ZXJ5IG1ldGhvZCAoZmluZC9jcmVhdGUvZXRjLikgcnVucy5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzIHRvIGluaXRpYWxpemUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBfYmVzdEVmZm9ydEluaXRpYWxpemVEZWZlcnJlZE1vZGVsKHtjb25maWd1cmF0aW9uLCBtb2RlbENsYXNzfSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbW9kZWxDbGFzcy5jb25uZWN0aW9uKHtlbmZvcmNlVGVuYW50RGF0YWJhc2VTY29wZTogZmFsc2V9KVxuICAgICAgY29uc3QgdGFibGUgPSBhd2FpdCBjb25uZWN0aW9uLmdldFRhYmxlQnlOYW1lKG1vZGVsQ2xhc3MudGFibGVOYW1lKCksIHt0aHJvd0Vycm9yOiBmYWxzZX0pXG5cbiAgICAgIGlmICghdGFibGUpIHJldHVyblxuXG4gICAgICBhd2FpdCB0aGlzLl9pbml0aWFsaXplTW9kZWxSZWNvcmQoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBUaGUgb3B0aW9uYWwgdGFibGUgLSBvciwgZm9yIGEgdHJhbnNsYXRlZCBtb2RlbCwgaXRzIDx0YWJsZT5fdHJhbnNsYXRpb25zXG4gICAgICAvLyB0YWJsZSAoaW5pdGlhbGl6ZVJlY29yZCAtPiBfZGVmaW5lVHJhbnNsYXRpb25NZXRob2RzIGluaXRpYWxpemVzIHRoZVxuICAgICAgLy8gdHJhbnNsYXRpb24gY2xhc3MpIC0gaXMgbWlzc2luZywgb3IgaXRzIGNvbm5lY3Rpb24gaXMgdW5hdmFpbGFibGUuIFJlLXJlZ2lzdGVyXG4gICAgICAvLyB0byBkcm9wIGFueSBwYXJ0aWFsIG1ldGFkYXRhIGFuZCBsZWF2ZSB0aGUgbW9kZWwgZGVmZXJyZWQgc28gc3RhcnR1cCBzdGlsbFxuICAgICAgLy8gc3VjY2VlZHM7IGl0IGluaXRpYWxpemVzIGxhemlseSBvbiBmaXJzdCB0ZXJtaW5hbCB1c2UuXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTGVhdmluZyAke21vZGVsQ2xhc3MubmFtZX0gZGVmZXJyZWQgLSB0YWJsZSBtZXRhZGF0YSB1bmF2YWlsYWJsZSBhdCBzdGFydHVwYCwgZXJyb3IpXG4gICAgICBtb2RlbENsYXNzLnJlZ2lzdGVyUmVjb3JkQ2xhc3Moe2NvbmZpZ3VyYXRpb259KVxuICAgIH1cbiAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvaW5pdGlhbGl6ZXItZnJvbS1yZXF1aXJlLWNvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7O0dBT0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxhQUFhLE1BQU0sNkJBQTZCLENBQUE7QUFFdkQsTUFBTSxDQUFDLE9BQU8sT0FBTyw4Q0FBOEM7SUFDakU7Ozs7T0FJRztJQUNILFlBQVksRUFBQyxjQUFjLEVBQUUsR0FBRyxRQUFRLEVBQUM7UUFDdkMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFDLGFBQWEsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUMzQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxnQkFBZ0I7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUV0RixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7WUFFM0MsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUUzRSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUE7WUFFakgsSUFBSSxrQkFBa0IsRUFBRSxVQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLCtCQUErQixFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM5SCxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO2dCQUMvQyxTQUFRO1lBQ1YsQ0FBQztZQUVELElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2dCQUM3QyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO2dCQUMvQyxNQUFNLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO2dCQUMxRSxTQUFRO1lBQ1YsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFDO1FBQ3RELE1BQU0sVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtRQUVsRCxJQUFJLE1BQU0sVUFBVSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtRQUMxRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLEVBQUMsYUFBYSxFQUFFLFVBQVUsRUFBQztRQUNsRSxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQTtZQUM3RSxNQUFNLEtBQUssR0FBRyxNQUFNLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUE7WUFFMUYsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTTtZQUVsQixNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsNEVBQTRFO1lBQzVFLHVFQUF1RTtZQUN2RSxpRkFBaUY7WUFDakYsNkVBQTZFO1lBQzdFLHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLFVBQVUsQ0FBQyxJQUFJLG1EQUFtRCxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3ZHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIERlZmluZXMgdGhpcyB0eXBlZGVmLlxuICogQHR5cGVkZWYgeyhpZDogc3RyaW5nKSA9PiB7ZGVmYXVsdDogdHlwZW9mIGltcG9ydChcIi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9fSBNb2RlbENsYXNzUmVxdWlyZUNvbnRleHRJREZ1bmN0aW9uVHlwZVxuICogQHR5cGVkZWYge01vZGVsQ2xhc3NSZXF1aXJlQ29udGV4dElERnVuY3Rpb25UeXBlICYge1xuICogICBrZXlzOiAoKSA9PiBzdHJpbmdbXSxcbiAqICAgaWQ6IHN0cmluZ1xuICogfX0gTW9kZWxDbGFzc1JlcXVpcmVDb250ZXh0VHlwZVxuICovXG5cbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4uL2xvZ2dlci5qc1wiXG5pbXBvcnQgcmVzdEFyZ3NFcnJvciBmcm9tIFwiLi4vdXRpbHMvcmVzdC1hcmdzLWVycm9yLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VJbml0aWFsaXplckZyb21SZXF1aXJlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge01vZGVsQ2xhc3NSZXF1aXJlQ29udGV4dFR5cGV9IGFyZ3MucmVxdWlyZUNvbnRleHQgLSBSZXF1aXJlIGNvbnRleHQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7cmVxdWlyZUNvbnRleHQsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLnJlcXVpcmVDb250ZXh0ID0gcmVxdWlyZUNvbnRleHRcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGluaXRpYWxpemUuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgaW5pdGlhbGl6ZSh7Y29uZmlndXJhdGlvbiwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgcmVzdEFyZ3NFcnJvcihyZXN0QXJncylcblxuICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgdGhpcy5yZXF1aXJlQ29udGV4dC5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3NJbXBvcnQgPSB0aGlzLnJlcXVpcmVDb250ZXh0KGZpbGVOYW1lKVxuXG4gICAgICBpZiAoIW1vZGVsQ2xhc3NJbXBvcnQpIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3QgaW1wb3J0IG1vZGVsIGNsYXNzIGZyb20gJHtmaWxlTmFtZX1gKVxuXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gbW9kZWxDbGFzc0ltcG9ydC5kZWZhdWx0XG5cbiAgICAgIGlmICghbW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKGBNb2RlbCB3YXNuJ3QgZXhwb3J0ZWQgZnJvbTogJHtmaWxlTmFtZX1gKVxuXG4gICAgICBjb25zdCBjb25maWd1cmVkRGF0YWJhc2UgPSBjb25maWd1cmF0aW9uLmdldERhdGFiYXNlQ29uZmlndXJhdGlvbigpW21vZGVsQ2xhc3MuZ2V0Q29uZmlndXJlZERhdGFiYXNlSWRlbnRpZmllcigpXVxuXG4gICAgICBpZiAoY29uZmlndXJlZERhdGFiYXNlPy50ZW5hbnRPbmx5ICYmICFjb25maWd1cmF0aW9uLmlzRGF0YWJhc2VJZGVudGlmaWVyQWN0aXZlKG1vZGVsQ2xhc3MuZ2V0Q29uZmlndXJlZERhdGFiYXNlSWRlbnRpZmllcigpKSkge1xuICAgICAgICBtb2RlbENsYXNzLnJlZ2lzdGVyUmVjb3JkQ2xhc3Moe2NvbmZpZ3VyYXRpb259KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBpZiAoIW1vZGVsQ2xhc3MuZ2V0RWFnZXJMb2FkUmVjb3JkTWV0YWRhdGEoKSkge1xuICAgICAgICBtb2RlbENsYXNzLnJlZ2lzdGVyUmVjb3JkQ2xhc3Moe2NvbmZpZ3VyYXRpb259KVxuICAgICAgICBhd2FpdCB0aGlzLl9iZXN0RWZmb3J0SW5pdGlhbGl6ZURlZmVycmVkTW9kZWwoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLl9pbml0aWFsaXplTW9kZWxSZWNvcmQoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIG1vZGVsJ3MgcmVjb3JkIG1ldGFkYXRhIGFuZCBpdHMgdHJhbnNsYXRpb24gdGFibGUgKGlmIGFueSkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLm1vZGVsQ2xhc3MgLSBNb2RlbCBjbGFzcyB0byBpbml0aWFsaXplLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX2luaXRpYWxpemVNb2RlbFJlY29yZCh7Y29uZmlndXJhdGlvbiwgbW9kZWxDbGFzc30pIHtcbiAgICBhd2FpdCBtb2RlbENsYXNzLmluaXRpYWxpemVSZWNvcmQoe2NvbmZpZ3VyYXRpb259KVxuXG4gICAgaWYgKGF3YWl0IG1vZGVsQ2xhc3MuaGFzVHJhbnNsYXRpb25zVGFibGUoKSkge1xuICAgICAgYXdhaXQgbW9kZWxDbGFzcy5nZXRUcmFuc2xhdGlvbkNsYXNzKCkuaW5pdGlhbGl6ZVJlY29yZCh7Y29uZmlndXJhdGlvbn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vZGVscyBvcHRpbmcgb3V0IG9mIGVhZ2VyIG1ldGFkYXRhIGxvYWRpbmcgKGBzZXRFYWdlckxvYWRSZWNvcmRNZXRhZGF0YShmYWxzZSlgKVxuICAgKiBhcmUgc3RpbGwgaW5pdGlhbGl6ZWQgYXQgc3RhcnR1cCB3aGVuIHRoZWlyIChvcHRpb25hbCkgdGFibGUgaXMgcHJlc2VudCwgc28gdGhhdFxuICAgKiBzeW5jaHJvbm91cyBxdWVyeSBidWlsZGluZyBzdWNoIGFzIGAud2hlcmUoLi4uKWAgd29ya3Mgd2l0aG91dCBjYWxsZXJzIGhhdmluZyB0b1xuICAgKiBjYWxsIGBlbnN1cmVJbml0aWFsaXplZCgpYCBmaXJzdC4gV2hlbiB0aGUgdGFibGUg4oCUIG9yIGl0cyBjb25uZWN0aW9uIOKAlCBpcyBub3RcbiAgICogYXZhaWxhYmxlIHRoZSBtb2RlbCBpcyBsZWZ0IGRlZmVycmVkIHNvIHN0YXJ0dXAgc3RpbGwgc3VjY2VlZHM7IGl0IGNhbiB0aGVuXG4gICAqIGluaXRpYWxpemUgbGF6aWx5IHRoZSBmaXJzdCB0aW1lIGEgdGVybWluYWwgcXVlcnkgbWV0aG9kIChmaW5kL2NyZWF0ZS9ldGMuKSBydW5zLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy5tb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MgdG8gaW5pdGlhbGl6ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIF9iZXN0RWZmb3J0SW5pdGlhbGl6ZURlZmVycmVkTW9kZWwoe2NvbmZpZ3VyYXRpb24sIG1vZGVsQ2xhc3N9KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBtb2RlbENsYXNzLmNvbm5lY3Rpb24oe2VuZm9yY2VUZW5hbnREYXRhYmFzZVNjb3BlOiBmYWxzZX0pXG4gICAgICBjb25zdCB0YWJsZSA9IGF3YWl0IGNvbm5lY3Rpb24uZ2V0VGFibGVCeU5hbWUobW9kZWxDbGFzcy50YWJsZU5hbWUoKSwge3Rocm93RXJyb3I6IGZhbHNlfSlcblxuICAgICAgaWYgKCF0YWJsZSkgcmV0dXJuXG5cbiAgICAgIGF3YWl0IHRoaXMuX2luaXRpYWxpemVNb2RlbFJlY29yZCh7Y29uZmlndXJhdGlvbiwgbW9kZWxDbGFzc30pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIFRoZSBvcHRpb25hbCB0YWJsZSAtIG9yLCBmb3IgYSB0cmFuc2xhdGVkIG1vZGVsLCBpdHMgPHRhYmxlPl90cmFuc2xhdGlvbnNcbiAgICAgIC8vIHRhYmxlIChpbml0aWFsaXplUmVjb3JkIC0+IF9kZWZpbmVUcmFuc2xhdGlvbk1ldGhvZHMgaW5pdGlhbGl6ZXMgdGhlXG4gICAgICAvLyB0cmFuc2xhdGlvbiBjbGFzcykgLSBpcyBtaXNzaW5nLCBvciBpdHMgY29ubmVjdGlvbiBpcyB1bmF2YWlsYWJsZS4gUmUtcmVnaXN0ZXJcbiAgICAgIC8vIHRvIGRyb3AgYW55IHBhcnRpYWwgbWV0YWRhdGEgYW5kIGxlYXZlIHRoZSBtb2RlbCBkZWZlcnJlZCBzbyBzdGFydHVwIHN0aWxsXG4gICAgICAvLyBzdWNjZWVkczsgaXQgaW5pdGlhbGl6ZXMgbGF6aWx5IG9uIGZpcnN0IHRlcm1pbmFsIHVzZS5cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBMZWF2aW5nICR7bW9kZWxDbGFzcy5uYW1lfSBkZWZlcnJlZCAtIHRhYmxlIG1ldGFkYXRhIHVuYXZhaWxhYmxlIGF0IHN0YXJ0dXBgLCBlcnJvcilcbiAgICAgIG1vZGVsQ2xhc3MucmVnaXN0ZXJSZWNvcmRDbGFzcyh7Y29uZmlndXJhdGlvbn0pXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/dump.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAI/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;;OAKG;IACG,0BAA0B,CAAC,EAAC,GAAG,EAAC,EAHnC;QAA2F,GAAG,EAAtF,MAAM,CAAC,MAAM,EAAE,OAAO,4CAA4C,EAAE,OAAO,CAAC,CACpF;KAEmC,GAFzB,OAAO,CAAC,OAAO,CAAC,CAkB5B;CACF"}
1
+ {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/dump.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAM/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CAgCzB;IAED;;;;;OAKG;IACG,0BAA0B,CAAC,EAAC,GAAG,EAAC,EAHnC;QAA2F,GAAG,EAAtF,MAAM,CAAC,MAAM,EAAE,OAAO,4CAA4C,EAAE,OAAO,CAAC,CACpF;KAEmC,GAFzB,OAAO,CAAC,OAAO,CAAC,CAkB5B;CACF"}
@@ -1,4 +1,6 @@
1
1
  import BaseCommand from "../../../../../../cli/base-command.js";
2
+ import commandArguments from "../../../../../../cli/command-arguments.js";
3
+ import DatabaseGenerationContext from "../../../../../../database/generation-context.js";
2
4
  import fileExists from "../../../../../../utils/file-exists.js";
3
5
  import path from "path";
4
6
  /** Node CLI command for dumping DB structure SQL files. */
@@ -7,6 +9,25 @@ export default class DbSchemaDump extends BaseCommand {
7
9
  * Runs execute.
8
10
  * @returns {Promise<void>} */
9
11
  async execute() {
12
+ const parsedArguments = commandArguments({
13
+ definition: { valueOptions: ["--tenant"] },
14
+ processArgs: this.processArgs || []
15
+ });
16
+ const tenantDatabaseIdentifier = parsedArguments.tenant;
17
+ if (typeof tenantDatabaseIdentifier === "string") {
18
+ const context = await DatabaseGenerationContext.resolve({
19
+ configuration: this.getConfiguration(),
20
+ databaseIdentifier: tenantDatabaseIdentifier
21
+ });
22
+ await context.run({ name: "DB selected tenant schema dump", callback: async (db) => {
23
+ const dbs = { [context.databaseIdentifier()]: db };
24
+ const shouldGenerate = await this.shouldGenerateStructureSql({ dbs });
25
+ if (!shouldGenerate)
26
+ return;
27
+ await this.getEnvironmentHandler().afterMigrations({ dbs, reason: "schemaDump" });
28
+ } });
29
+ return;
30
+ }
10
31
  await this.getConfiguration().ensureConnections({ name: "DB schema dump" }, async (dbs) => {
11
32
  const shouldGenerate = await this.shouldGenerateStructureSql({ dbs });
12
33
  if (!shouldGenerate)
@@ -35,4 +56,4 @@ export default class DbSchemaDump extends BaseCommand {
35
56
  return false;
36
57
  }
37
58
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvZHVtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLFVBQVUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUMvRCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFFdkIsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbkQ7O2tDQUU4QjtJQUM5QixLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFBO1lBRW5FLElBQUksQ0FBQyxjQUFjO2dCQUFFLE9BQU07WUFFM0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7UUFDakYsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFMUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFL0MsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRTFCLElBQUksT0FBTyxFQUFFLENBQUMsWUFBWSxLQUFLLFVBQVU7Z0JBQUUsU0FBUTtZQUVuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsVUFBVSxNQUFNLENBQUMsQ0FBQTtZQUV6RSxJQUFJLENBQUMsTUFBTSxVQUFVLENBQUMsaUJBQWlCLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUE7UUFDdkQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBmaWxlRXhpc3RzIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi91dGlscy9maWxlLWV4aXN0cy5qc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbi8qKiBOb2RlIENMSSBjb21tYW5kIGZvciBkdW1waW5nIERCIHN0cnVjdHVyZSBTUUwgZmlsZXMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYlNjaGVtYUR1bXAgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIC8qKlxuICAgKiBSdW5zIGV4ZWN1dGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBleGVjdXRlKCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBcIkRCIHNjaGVtYSBkdW1wXCJ9LCBhc3luYyAoZGJzKSA9PiB7XG4gICAgICBjb25zdCBzaG91bGRHZW5lcmF0ZSA9IGF3YWl0IHRoaXMuc2hvdWxkR2VuZXJhdGVTdHJ1Y3R1cmVTcWwoe2Ric30pXG5cbiAgICAgIGlmICghc2hvdWxkR2VuZXJhdGUpIHJldHVyblxuXG4gICAgICBhd2FpdCB0aGlzLmdldEVudmlyb25tZW50SGFuZGxlcigpLmFmdGVyTWlncmF0aW9ucyh7ZGJzLCByZWFzb246IFwic2NoZW1hRHVtcFwifSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2hvdWxkIGdlbmVyYXRlIHN0cnVjdHVyZSBzcWwuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgaW1wb3J0KFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQ+fSBhcmdzLmRicyAtIEFjdGl2ZSBEQiBjb25uZWN0aW9ucyBieSBpZGVudGlmaWVyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHN0cnVjdHVyZSBTUUwgc2hvdWxkIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIGFzeW5jIHNob3VsZEdlbmVyYXRlU3RydWN0dXJlU3FsKHtkYnN9KSB7XG4gICAgaWYgKCF0aGlzLmdldENvbmZpZ3VyYXRpb24oKS5zaG91bGRXcml0ZVN0cnVjdHVyZVNxbCh7cmVhc29uOiBcInNjaGVtYUR1bXBcIn0pKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IGRiRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5KCksIFwiZGJcIilcblxuICAgIGZvciAoY29uc3QgaWRlbnRpZmllciBvZiBPYmplY3Qua2V5cyhkYnMpKSB7XG4gICAgICBjb25zdCBkYiA9IGRic1tpZGVudGlmaWVyXVxuXG4gICAgICBpZiAodHlwZW9mIGRiLnN0cnVjdHVyZVNxbCAhPT0gXCJmdW5jdGlvblwiKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBzdHJ1Y3R1cmVGaWxlUGF0aCA9IHBhdGguam9pbihkYkRpciwgYHN0cnVjdHVyZS0ke2lkZW50aWZpZXJ9LnNxbGApXG5cbiAgICAgIGlmICghYXdhaXQgZmlsZUV4aXN0cyhzdHJ1Y3R1cmVGaWxlUGF0aCkpIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvZHVtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLGdCQUFnQixNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8seUJBQXlCLE1BQU0sa0RBQWtELENBQUE7QUFDeEYsT0FBTyxVQUFVLE1BQU0sd0NBQXdDLENBQUE7QUFDL0QsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRXZCLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQ25EOztrQ0FFOEI7SUFDOUIsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QyxVQUFVLEVBQUUsRUFBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtRQUNGLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQTtRQUV2RCxJQUFJLE9BQU8sd0JBQXdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RELGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RDLGtCQUFrQixFQUFFLHdCQUF3QjthQUM3QyxDQUFDLENBQUE7WUFFRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDaEYsTUFBTSxHQUFHLEdBQUcsRUFBQyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUE7b0JBQ2hELE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQTtvQkFFbkUsSUFBSSxDQUFDLGNBQWM7d0JBQUUsT0FBTTtvQkFFM0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7Z0JBQ2pGLENBQUMsRUFBQyxDQUFDLENBQUE7WUFDSCxPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxDQUFBO1lBRW5FLElBQUksQ0FBQyxjQUFjO2dCQUFFLE9BQU07WUFFM0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUE7UUFDakYsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBQyxHQUFHLEVBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUMsTUFBTSxFQUFFLFlBQVksRUFBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFMUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFL0MsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBRTFCLElBQUksT0FBTyxFQUFFLENBQUMsWUFBWSxLQUFLLFVBQVU7Z0JBQUUsU0FBUTtZQUVuRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsVUFBVSxNQUFNLENBQUMsQ0FBQTtZQUV6RSxJQUFJLENBQUMsTUFBTSxVQUFVLENBQUMsaUJBQWlCLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUE7UUFDdkQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VDb21tYW5kIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9jbGkvYmFzZS1jb21tYW5kLmpzXCJcbmltcG9ydCBjb21tYW5kQXJndW1lbnRzIGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9jbGkvY29tbWFuZC1hcmd1bWVudHMuanNcIlxuaW1wb3J0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2dlbmVyYXRpb24tY29udGV4dC5qc1wiXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHMvZmlsZS1leGlzdHMuanNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG4vKiogTm9kZSBDTEkgY29tbWFuZCBmb3IgZHVtcGluZyBEQiBzdHJ1Y3R1cmUgU1FMIGZpbGVzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJTY2hlbWFEdW1wIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogUnVucyBleGVjdXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBwYXJzZWRBcmd1bWVudHMgPSBjb21tYW5kQXJndW1lbnRzKHtcbiAgICAgIGRlZmluaXRpb246IHt2YWx1ZU9wdGlvbnM6IFtcIi0tdGVuYW50XCJdfSxcbiAgICAgIHByb2Nlc3NBcmdzOiB0aGlzLnByb2Nlc3NBcmdzIHx8IFtdXG4gICAgfSlcbiAgICBjb25zdCB0ZW5hbnREYXRhYmFzZUlkZW50aWZpZXIgPSBwYXJzZWRBcmd1bWVudHMudGVuYW50XG5cbiAgICBpZiAodHlwZW9mIHRlbmFudERhdGFiYXNlSWRlbnRpZmllciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQucmVzb2x2ZSh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBkYXRhYmFzZUlkZW50aWZpZXI6IHRlbmFudERhdGFiYXNlSWRlbnRpZmllclxuICAgICAgfSlcblxuICAgICAgYXdhaXQgY29udGV4dC5ydW4oe25hbWU6IFwiREIgc2VsZWN0ZWQgdGVuYW50IHNjaGVtYSBkdW1wXCIsIGNhbGxiYWNrOiBhc3luYyAoZGIpID0+IHtcbiAgICAgICAgY29uc3QgZGJzID0ge1tjb250ZXh0LmRhdGFiYXNlSWRlbnRpZmllcigpXTogZGJ9XG4gICAgICAgIGNvbnN0IHNob3VsZEdlbmVyYXRlID0gYXdhaXQgdGhpcy5zaG91bGRHZW5lcmF0ZVN0cnVjdHVyZVNxbCh7ZGJzfSlcblxuICAgICAgICBpZiAoIXNob3VsZEdlbmVyYXRlKSByZXR1cm5cblxuICAgICAgICBhd2FpdCB0aGlzLmdldEVudmlyb25tZW50SGFuZGxlcigpLmFmdGVyTWlncmF0aW9ucyh7ZGJzLCByZWFzb246IFwic2NoZW1hRHVtcFwifSlcbiAgICAgIH19KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZW5zdXJlQ29ubmVjdGlvbnMoe25hbWU6IFwiREIgc2NoZW1hIGR1bXBcIn0sIGFzeW5jIChkYnMpID0+IHtcbiAgICAgIGNvbnN0IHNob3VsZEdlbmVyYXRlID0gYXdhaXQgdGhpcy5zaG91bGRHZW5lcmF0ZVN0cnVjdHVyZVNxbCh7ZGJzfSlcblxuICAgICAgaWYgKCFzaG91bGRHZW5lcmF0ZSkgcmV0dXJuXG5cbiAgICAgIGF3YWl0IHRoaXMuZ2V0RW52aXJvbm1lbnRIYW5kbGVyKCkuYWZ0ZXJNaWdyYXRpb25zKHtkYnMsIHJlYXNvbjogXCJzY2hlbWFEdW1wXCJ9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzaG91bGQgZ2VuZXJhdGUgc3RydWN0dXJlIHNxbC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoXCIuLi8uLi8uLi8uLi8uLi8uLi9kYXRhYmFzZS9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdD59IGFyZ3MuZGJzIC0gQWN0aXZlIERCIGNvbm5lY3Rpb25zIGJ5IGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgc3RydWN0dXJlIFNRTCBzaG91bGQgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgYXN5bmMgc2hvdWxkR2VuZXJhdGVTdHJ1Y3R1cmVTcWwoe2Ric30pIHtcbiAgICBpZiAoIXRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLnNob3VsZFdyaXRlU3RydWN0dXJlU3FsKHtyZWFzb246IFwic2NoZW1hRHVtcFwifSkpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgZGJEaXIgPSBwYXRoLmpvaW4odGhpcy5kaXJlY3RvcnkoKSwgXCJkYlwiKVxuXG4gICAgZm9yIChjb25zdCBpZGVudGlmaWVyIG9mIE9iamVjdC5rZXlzKGRicykpIHtcbiAgICAgIGNvbnN0IGRiID0gZGJzW2lkZW50aWZpZXJdXG5cbiAgICAgIGlmICh0eXBlb2YgZGIuc3RydWN0dXJlU3FsICE9PSBcImZ1bmN0aW9uXCIpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IHN0cnVjdHVyZUZpbGVQYXRoID0gcGF0aC5qb2luKGRiRGlyLCBgc3RydWN0dXJlLSR7aWRlbnRpZmllcn0uc3FsYClcblxuICAgICAgaWYgKCFhd2FpdCBmaWxlRXhpc3RzKHN0cnVjdHVyZUZpbGVQYXRoKSkgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl19
@@ -5,5 +5,16 @@ export default class DbSchemaLoad extends BaseCommand {
5
5
  * Runs execute.
6
6
  * @returns {Promise<void>} */
7
7
  execute(): Promise<void>;
8
+ /**
9
+ * Loads one identifier's explicit structure file into one selected connection.
10
+ * @param {object} args - Load arguments.
11
+ * @param {import("../../../../../../database/drivers/base.js").default} args.db - Target connection.
12
+ * @param {string} args.identifier - Logical database identifier used in the file name.
13
+ * @returns {Promise<void>} - Resolves after loading.
14
+ */
15
+ loadStructureSql({ db, identifier }: {
16
+ db: import("../../../../../../database/drivers/base.js").default;
17
+ identifier: string;
18
+ }): Promise<void>;
8
19
  }
9
20
  //# sourceMappingURL=load.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/load.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAK/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CAczB;CACF"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../../../../../src/environment-handlers/node/cli/commands/db/schema/load.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uCAAuC,CAAA;AAO/D,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD;;kCAE8B;IACxB,OAAO,IADA,OAAO,CAAC,IAAI,CAAC,CAyBzB;IAED;;;;;;OAMG;IACG,gBAAgB,CAAC,EAAC,EAAE,EAAE,UAAU,EAAC,EAJpC;QAA2E,EAAE,EAArE,OAAO,4CAA4C,EAAE,OAAO,CACpE;QAAqB,UAAU,EAAvB,MAAM,CACd;KAEoC,GAF1B,OAAO,CAAC,IAAI,CAAC,CASzB;CACF"}
@@ -1,4 +1,6 @@
1
1
  import BaseCommand from "../../../../../../cli/base-command.js";
2
+ import commandArguments from "../../../../../../cli/command-arguments.js";
3
+ import DatabaseGenerationContext from "../../../../../../database/generation-context.js";
2
4
  import fs from "fs/promises";
3
5
  import path from "path";
4
6
  import StructureSqlLoader from "../../../../../../database/structure-sql-loader.js";
@@ -8,16 +10,40 @@ export default class DbSchemaLoad extends BaseCommand {
8
10
  * Runs execute.
9
11
  * @returns {Promise<void>} */
10
12
  async execute() {
13
+ const parsedArguments = commandArguments({
14
+ definition: { valueOptions: ["--tenant"] },
15
+ processArgs: this.processArgs || []
16
+ });
17
+ const tenantDatabaseIdentifier = parsedArguments.tenant;
18
+ if (typeof tenantDatabaseIdentifier === "string") {
19
+ const context = await DatabaseGenerationContext.resolve({
20
+ configuration: this.getConfiguration(),
21
+ databaseIdentifier: tenantDatabaseIdentifier
22
+ });
23
+ await context.run({ name: "DB selected tenant schema load", callback: async (db) => {
24
+ await this.loadStructureSql({ db, identifier: context.databaseIdentifier() });
25
+ } });
26
+ return;
27
+ }
11
28
  await this.getConfiguration().ensureConnections({ name: "DB schema load" }, async (dbs) => {
12
- const dbDir = path.join(this.directory(), "db");
13
- const loader = new StructureSqlLoader();
14
29
  for (const identifier of Object.keys(dbs)) {
15
- const db = dbs[identifier];
16
- const structureFilePath = path.join(dbDir, `structure-${identifier}.sql`);
17
- const structureSql = await fs.readFile(structureFilePath, "utf8");
18
- await loader.load({ db, structureSql });
30
+ await this.loadStructureSql({ db: dbs[identifier], identifier });
19
31
  }
20
32
  });
21
33
  }
34
+ /**
35
+ * Loads one identifier's explicit structure file into one selected connection.
36
+ * @param {object} args - Load arguments.
37
+ * @param {import("../../../../../../database/drivers/base.js").default} args.db - Target connection.
38
+ * @param {string} args.identifier - Logical database identifier used in the file name.
39
+ * @returns {Promise<void>} - Resolves after loading.
40
+ */
41
+ async loadStructureSql({ db, identifier }) {
42
+ const dbDir = path.join(this.directory(), "db");
43
+ const loader = new StructureSqlLoader();
44
+ const structureFilePath = path.join(dbDir, `structure-${identifier}.sql`);
45
+ const structureSql = await fs.readFile(structureFilePath, "utf8");
46
+ await loader.load({ db, structureSql });
47
+ }
22
48
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvbG9hZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDNUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sa0JBQWtCLE1BQU0sb0RBQW9ELENBQUE7QUFFbkYsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBYSxTQUFRLFdBQVc7SUFDbkQ7O2tDQUU4QjtJQUM5QixLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDdEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO1lBRXZDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7Z0JBQzFCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxVQUFVLE1BQU0sQ0FBQyxDQUFBO2dCQUN6RSxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBRWpFLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFBO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlQ29tbWFuZCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vY2xpL2Jhc2UtY29tbWFuZC5qc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCBTdHJ1Y3R1cmVTcWxMb2FkZXIgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL3N0cnVjdHVyZS1zcWwtbG9hZGVyLmpzXCJcblxuLyoqIE5vZGUgQ0xJIGNvbW1hbmQgZm9yIGxvYWRpbmcgREIgc3RydWN0dXJlIFNRTCBmaWxlcy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERiU2NoZW1hTG9hZCBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgLyoqXG4gICAqIFJ1bnMgZXhlY3V0ZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgYXdhaXQgdGhpcy5nZXRDb25maWd1cmF0aW9uKCkuZW5zdXJlQ29ubmVjdGlvbnMoe25hbWU6IFwiREIgc2NoZW1hIGxvYWRcIn0sIGFzeW5jIChkYnMpID0+IHtcbiAgICAgIGNvbnN0IGRiRGlyID0gcGF0aC5qb2luKHRoaXMuZGlyZWN0b3J5KCksIFwiZGJcIilcbiAgICAgIGNvbnN0IGxvYWRlciA9IG5ldyBTdHJ1Y3R1cmVTcWxMb2FkZXIoKVxuXG4gICAgICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2YgT2JqZWN0LmtleXMoZGJzKSkge1xuICAgICAgICBjb25zdCBkYiA9IGRic1tpZGVudGlmaWVyXVxuICAgICAgICBjb25zdCBzdHJ1Y3R1cmVGaWxlUGF0aCA9IHBhdGguam9pbihkYkRpciwgYHN0cnVjdHVyZS0ke2lkZW50aWZpZXJ9LnNxbGApXG4gICAgICAgIGNvbnN0IHN0cnVjdHVyZVNxbCA9IGF3YWl0IGZzLnJlYWRGaWxlKHN0cnVjdHVyZUZpbGVQYXRoLCBcInV0ZjhcIilcblxuICAgICAgICBhd2FpdCBsb2FkZXIubG9hZCh7ZGIsIHN0cnVjdHVyZVNxbH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9lbnZpcm9ubWVudC1oYW5kbGVycy9ub2RlL2NsaS9jb21tYW5kcy9kYi9zY2hlbWEvbG9hZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSx1Q0FBdUMsQ0FBQTtBQUMvRCxPQUFPLGdCQUFnQixNQUFNLDRDQUE0QyxDQUFBO0FBQ3pFLE9BQU8seUJBQXlCLE1BQU0sa0RBQWtELENBQUE7QUFDeEYsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLGtCQUFrQixNQUFNLG9EQUFvRCxDQUFBO0FBRW5GLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBQ25EOztrQ0FFOEI7SUFDOUIsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQztZQUN2QyxVQUFVLEVBQUUsRUFBQyxZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtRQUNGLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQTtRQUV2RCxJQUFJLE9BQU8sd0JBQXdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakQsTUFBTSxPQUFPLEdBQUcsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RELGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3RDLGtCQUFrQixFQUFFLHdCQUF3QjthQUM3QyxDQUFDLENBQUE7WUFFRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDaEYsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFDLENBQUMsQ0FBQTtnQkFDN0UsQ0FBQyxFQUFDLENBQUMsQ0FBQTtZQUNILE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0RixLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUE7WUFDaEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxVQUFVLE1BQU0sQ0FBQyxDQUFBO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUVqRSxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbW1hbmQgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2NsaS9iYXNlLWNvbW1hbmQuanNcIlxuaW1wb3J0IGNvbW1hbmRBcmd1bWVudHMgZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2NsaS9jb21tYW5kLWFyZ3VtZW50cy5qc1wiXG5pbXBvcnQgRGF0YWJhc2VHZW5lcmF0aW9uQ29udGV4dCBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvZ2VuZXJhdGlvbi1jb250ZXh0LmpzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IFN0cnVjdHVyZVNxbExvYWRlciBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2Uvc3RydWN0dXJlLXNxbC1sb2FkZXIuanNcIlxuXG4vKiogTm9kZSBDTEkgY29tbWFuZCBmb3IgbG9hZGluZyBEQiBzdHJ1Y3R1cmUgU1FMIGZpbGVzLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGJTY2hlbWFMb2FkIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICAvKipcbiAgICogUnVucyBleGVjdXRlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICBjb25zdCBwYXJzZWRBcmd1bWVudHMgPSBjb21tYW5kQXJndW1lbnRzKHtcbiAgICAgIGRlZmluaXRpb246IHt2YWx1ZU9wdGlvbnM6IFtcIi0tdGVuYW50XCJdfSxcbiAgICAgIHByb2Nlc3NBcmdzOiB0aGlzLnByb2Nlc3NBcmdzIHx8IFtdXG4gICAgfSlcbiAgICBjb25zdCB0ZW5hbnREYXRhYmFzZUlkZW50aWZpZXIgPSBwYXJzZWRBcmd1bWVudHMudGVuYW50XG5cbiAgICBpZiAodHlwZW9mIHRlbmFudERhdGFiYXNlSWRlbnRpZmllciA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IERhdGFiYXNlR2VuZXJhdGlvbkNvbnRleHQucmVzb2x2ZSh7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLFxuICAgICAgICBkYXRhYmFzZUlkZW50aWZpZXI6IHRlbmFudERhdGFiYXNlSWRlbnRpZmllclxuICAgICAgfSlcblxuICAgICAgYXdhaXQgY29udGV4dC5ydW4oe25hbWU6IFwiREIgc2VsZWN0ZWQgdGVuYW50IHNjaGVtYSBsb2FkXCIsIGNhbGxiYWNrOiBhc3luYyAoZGIpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkU3RydWN0dXJlU3FsKHtkYiwgaWRlbnRpZmllcjogY29udGV4dC5kYXRhYmFzZUlkZW50aWZpZXIoKX0pXG4gICAgICB9fSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuZ2V0Q29uZmlndXJhdGlvbigpLmVuc3VyZUNvbm5lY3Rpb25zKHtuYW1lOiBcIkRCIHNjaGVtYSBsb2FkXCJ9LCBhc3luYyAoZGJzKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGlkZW50aWZpZXIgb2YgT2JqZWN0LmtleXMoZGJzKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRTdHJ1Y3R1cmVTcWwoe2RiOiBkYnNbaWRlbnRpZmllcl0sIGlkZW50aWZpZXJ9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgb25lIGlkZW50aWZpZXIncyBleHBsaWNpdCBzdHJ1Y3R1cmUgZmlsZSBpbnRvIG9uZSBzZWxlY3RlZCBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIExvYWQgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uLy4uLy4uLy4uLy4uLy4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0fSBhcmdzLmRiIC0gVGFyZ2V0IGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmlkZW50aWZpZXIgLSBMb2dpY2FsIGRhdGFiYXNlIGlkZW50aWZpZXIgdXNlZCBpbiB0aGUgZmlsZSBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBsb2FkaW5nLlxuICAgKi9cbiAgYXN5bmMgbG9hZFN0cnVjdHVyZVNxbCh7ZGIsIGlkZW50aWZpZXJ9KSB7XG4gICAgY29uc3QgZGJEaXIgPSBwYXRoLmpvaW4odGhpcy5kaXJlY3RvcnkoKSwgXCJkYlwiKVxuICAgIGNvbnN0IGxvYWRlciA9IG5ldyBTdHJ1Y3R1cmVTcWxMb2FkZXIoKVxuICAgIGNvbnN0IHN0cnVjdHVyZUZpbGVQYXRoID0gcGF0aC5qb2luKGRiRGlyLCBgc3RydWN0dXJlLSR7aWRlbnRpZmllcn0uc3FsYClcbiAgICBjb25zdCBzdHJ1Y3R1cmVTcWwgPSBhd2FpdCBmcy5yZWFkRmlsZShzdHJ1Y3R1cmVGaWxlUGF0aCwgXCJ1dGY4XCIpXG5cbiAgICBhd2FpdCBsb2FkZXIubG9hZCh7ZGIsIHN0cnVjdHVyZVNxbH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,20 @@
1
1
  import BaseCommand from "../../../../../cli/base-command.js";
2
+ import DatabaseGenerationContext from "../../../../../database/generation-context.js";
2
3
  export default class DbGenerateModel extends BaseCommand {
3
4
  execute(): Promise<void>;
5
+ /**
6
+ * Generates model bases from explicit connections.
7
+ * @param {object} args - Generation arguments.
8
+ * @param {boolean} args.allowMissingTables - Whether absent tables are skipped.
9
+ * @param {Record<string, import("../../../../../database/drivers/base.js").default>} args.connections - Connections keyed by logical identifier.
10
+ * @param {DatabaseGenerationContext} [args.context] - Selected tenant database context.
11
+ * @returns {Promise<void>} - Resolves after writing generated bases.
12
+ */
13
+ generateBaseModels({ allowMissingTables, connections, context }: {
14
+ allowMissingTables: boolean;
15
+ connections: Record<string, import("../../../../../database/drivers/base.js").default>;
16
+ context?: DatabaseGenerationContext;
17
+ }): Promise<void>;
4
18
  /**
5
19
  * Runs js doc type from column.
6
20
  * @param {import("../../../../../database/drivers/base-column.js").default} column - Column.
@@ -1 +1 @@
1
- {"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,oCAAoC,CAAA;AA4D5D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IAChD,OAAO,kBA8YZ;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAJf,OAAO,gDAAgD,EAAE,OAI1C,EAAE,UAAU,EAH3B,cAAc,yCAAyC,EAAE,OAG9B,GAFzB,MAAM,GAAG,SAAS,CAa9B;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,EAJrB,OAAO,gDAAgD,EAAE,OAIpC,EAAE,UAAU,EAHjC,cAAc,yCAAyC,EAAE,OAGxB,GAF/B,MAAM,GAAG,SAAS,CAU9B;IAED;;;;;;OAMG;IACG,gCAAgC,CAAC,EAAC,UAAU,EAAE,SAAS,EAAC,EAJ3D;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;QAAqB,SAAS,EAAtB,MAAM,CACd;KAE2D,GAFjD,OAAO,CAAC,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAyBlG;IAED;;;;;OAKG;IACH,6BAA6B,CAAC,EAAC,UAAU,EAAC,EAHvC;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;KAEuC,GAF7B,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAyBzF;CACF"}
1
+ {"version":3,"file":"base-models.d.ts","sourceRoot":"","sources":["../../../../../../../src/environment-handlers/node/cli/commands/generate/base-models.js"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,oCAAoC,CAAA;AAE5D,OAAO,yBAAyB,MAAM,+CAA+C,CAAA;AA4DrF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IAChD,OAAO,kBAyCZ;IAED;;;;;;;OAOG;IACG,kBAAkB,CAAC,EAAC,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAC,EALhE;QAAsB,kBAAkB,EAAhC,OAAO,CACf;QAAwF,WAAW,EAA3F,MAAM,CAAC,MAAM,EAAE,OAAO,yCAAyC,EAAE,OAAO,CAAC,CACjF;QAAyC,OAAO,AAAhD,CACA,EADQ,yBAAyB,CACjC;KAEgE,GAFtD,OAAO,CAAC,IAAI,CAAC,CAgazB;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAJf,OAAO,gDAAgD,EAAE,OAI1C,EAAE,UAAU,EAH3B,cAAc,yCAAyC,EAAE,OAG9B,GAFzB,MAAM,GAAG,SAAS,CAa9B;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,EAJrB,OAAO,gDAAgD,EAAE,OAIpC,EAAE,UAAU,EAHjC,cAAc,yCAAyC,EAAE,OAGxB,GAF/B,MAAM,GAAG,SAAS,CAU9B;IAED;;;;;;OAMG;IACG,gCAAgC,CAAC,EAAC,UAAU,EAAE,SAAS,EAAC,EAJ3D;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;QAAqB,SAAS,EAAtB,MAAM,CACd;KAE2D,GAFjD,OAAO,CAAC,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAyBlG;IAED;;;;;OAKG;IACH,6BAA6B,CAAC,EAAC,UAAU,EAAC,EAHvC;QAA+E,UAAU,EAAjF,cAAc,yCAAyC,EAAE,OAAO,CACxE;KAEuC,GAF7B,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAAC,CAyBzF;CACF"}