@spinajs/orm 2.0.485 → 2.0.487

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 (115) hide show
  1. package/lib/cjs/config/orm.d.ts +24 -0
  2. package/lib/cjs/config/orm.d.ts.map +1 -0
  3. package/lib/cjs/config/orm.js +26 -0
  4. package/lib/cjs/config/orm.js.map +1 -0
  5. package/lib/cjs/decorators.d.ts +3 -2
  6. package/lib/cjs/decorators.d.ts.map +1 -1
  7. package/lib/cjs/decorators.js +19 -2
  8. package/lib/cjs/decorators.js.map +1 -1
  9. package/lib/cjs/descriptor.d.ts +29 -1
  10. package/lib/cjs/descriptor.d.ts.map +1 -1
  11. package/lib/cjs/descriptor.js +37 -0
  12. package/lib/cjs/descriptor.js.map +1 -1
  13. package/lib/cjs/index.d.ts +6 -0
  14. package/lib/cjs/index.d.ts.map +1 -1
  15. package/lib/cjs/index.js +6 -0
  16. package/lib/cjs/index.js.map +1 -1
  17. package/lib/cjs/interfaces.d.ts +52 -2
  18. package/lib/cjs/interfaces.d.ts.map +1 -1
  19. package/lib/cjs/interfaces.js +5 -0
  20. package/lib/cjs/interfaces.js.map +1 -1
  21. package/lib/cjs/migration-environment.d.ts +70 -0
  22. package/lib/cjs/migration-environment.d.ts.map +1 -0
  23. package/lib/cjs/migration-environment.js +134 -0
  24. package/lib/cjs/migration-environment.js.map +1 -0
  25. package/lib/cjs/migration-runner.d.ts +108 -0
  26. package/lib/cjs/migration-runner.d.ts.map +1 -0
  27. package/lib/cjs/migration-runner.js +216 -0
  28. package/lib/cjs/migration-runner.js.map +1 -0
  29. package/lib/cjs/migration-service.d.ts +300 -0
  30. package/lib/cjs/migration-service.d.ts.map +1 -0
  31. package/lib/cjs/migration-service.js +829 -0
  32. package/lib/cjs/migration-service.js.map +1 -0
  33. package/lib/cjs/migration-sources.d.ts +85 -0
  34. package/lib/cjs/migration-sources.d.ts.map +1 -0
  35. package/lib/cjs/migration-sources.js +277 -0
  36. package/lib/cjs/migration-sources.js.map +1 -0
  37. package/lib/cjs/orm.d.ts +77 -15
  38. package/lib/cjs/orm.d.ts.map +1 -1
  39. package/lib/cjs/orm.js +156 -150
  40. package/lib/cjs/orm.js.map +1 -1
  41. package/lib/cjs/quoting.d.ts +33 -0
  42. package/lib/cjs/quoting.d.ts.map +1 -0
  43. package/lib/cjs/quoting.js +48 -0
  44. package/lib/cjs/quoting.js.map +1 -0
  45. package/lib/cjs/source-file.d.ts +10 -0
  46. package/lib/cjs/source-file.d.ts.map +1 -0
  47. package/lib/cjs/source-file.js +41 -0
  48. package/lib/cjs/source-file.js.map +1 -0
  49. package/lib/cjs/statements.d.ts +51 -1
  50. package/lib/cjs/statements.d.ts.map +1 -1
  51. package/lib/cjs/statements.js +73 -1
  52. package/lib/cjs/statements.js.map +1 -1
  53. package/lib/cjs/symbols.d.ts +11 -0
  54. package/lib/cjs/symbols.d.ts.map +1 -1
  55. package/lib/cjs/symbols.js +12 -1
  56. package/lib/cjs/symbols.js.map +1 -1
  57. package/lib/mjs/config/orm.d.ts +24 -0
  58. package/lib/mjs/config/orm.d.ts.map +1 -0
  59. package/lib/mjs/config/orm.js +24 -0
  60. package/lib/mjs/config/orm.js.map +1 -0
  61. package/lib/mjs/decorators.d.ts +3 -2
  62. package/lib/mjs/decorators.d.ts.map +1 -1
  63. package/lib/mjs/decorators.js +19 -2
  64. package/lib/mjs/decorators.js.map +1 -1
  65. package/lib/mjs/descriptor.d.ts +29 -1
  66. package/lib/mjs/descriptor.d.ts.map +1 -1
  67. package/lib/mjs/descriptor.js +36 -1
  68. package/lib/mjs/descriptor.js.map +1 -1
  69. package/lib/mjs/index.d.ts +6 -0
  70. package/lib/mjs/index.d.ts.map +1 -1
  71. package/lib/mjs/index.js +6 -0
  72. package/lib/mjs/index.js.map +1 -1
  73. package/lib/mjs/interfaces.d.ts +52 -2
  74. package/lib/mjs/interfaces.d.ts.map +1 -1
  75. package/lib/mjs/interfaces.js +5 -0
  76. package/lib/mjs/interfaces.js.map +1 -1
  77. package/lib/mjs/migration-environment.d.ts +70 -0
  78. package/lib/mjs/migration-environment.d.ts.map +1 -0
  79. package/lib/mjs/migration-environment.js +128 -0
  80. package/lib/mjs/migration-environment.js.map +1 -0
  81. package/lib/mjs/migration-runner.d.ts +108 -0
  82. package/lib/mjs/migration-runner.d.ts.map +1 -0
  83. package/lib/mjs/migration-runner.js +211 -0
  84. package/lib/mjs/migration-runner.js.map +1 -0
  85. package/lib/mjs/migration-service.d.ts +300 -0
  86. package/lib/mjs/migration-service.d.ts.map +1 -0
  87. package/lib/mjs/migration-service.js +824 -0
  88. package/lib/mjs/migration-service.js.map +1 -0
  89. package/lib/mjs/migration-sources.d.ts +85 -0
  90. package/lib/mjs/migration-sources.d.ts.map +1 -0
  91. package/lib/mjs/migration-sources.js +236 -0
  92. package/lib/mjs/migration-sources.js.map +1 -0
  93. package/lib/mjs/orm.d.ts +77 -15
  94. package/lib/mjs/orm.d.ts.map +1 -1
  95. package/lib/mjs/orm.js +158 -152
  96. package/lib/mjs/orm.js.map +1 -1
  97. package/lib/mjs/quoting.d.ts +33 -0
  98. package/lib/mjs/quoting.d.ts.map +1 -0
  99. package/lib/mjs/quoting.js +45 -0
  100. package/lib/mjs/quoting.js.map +1 -0
  101. package/lib/mjs/source-file.d.ts +10 -0
  102. package/lib/mjs/source-file.d.ts.map +1 -0
  103. package/lib/mjs/source-file.js +38 -0
  104. package/lib/mjs/source-file.js.map +1 -0
  105. package/lib/mjs/statements.d.ts +51 -1
  106. package/lib/mjs/statements.d.ts.map +1 -1
  107. package/lib/mjs/statements.js +71 -0
  108. package/lib/mjs/statements.js.map +1 -1
  109. package/lib/mjs/symbols.d.ts +11 -0
  110. package/lib/mjs/symbols.d.ts.map +1 -1
  111. package/lib/mjs/symbols.js +11 -0
  112. package/lib/mjs/symbols.js.map +1 -1
  113. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  114. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  115. package/package.json +7 -7
package/lib/cjs/orm.js CHANGED
@@ -18,88 +18,32 @@ const configuration_common_1 = require("@spinajs/configuration-common");
18
18
  const di_1 = require("@spinajs/di");
19
19
  const log_common_1 = require("@spinajs/log-common");
20
20
  const lodash_1 = __importDefault(require("lodash"));
21
- const interfaces_js_2 = require("./interfaces.js");
22
21
  const model_js_1 = require("./model.js");
23
- const symbols_js_1 = require("./symbols.js");
24
22
  const exceptions_1 = require("@spinajs/exceptions");
25
23
  const exceptions_js_1 = require("./exceptions.js");
26
24
  const luxon_1 = require("luxon");
27
25
  const descriptor_js_1 = require("./descriptor.js");
28
26
  const schema_js_1 = require("./schema.js");
29
27
  const util_1 = require("@spinajs/util");
28
+ const migration_runner_js_1 = require("./migration-runner.js");
29
+ const migration_environment_js_1 = require("./migration-environment.js");
30
+ const migration_sources_js_1 = require("./migration-sources.js");
30
31
  /**
31
32
  * Used to exclude sensitive data to others. eg. removed password field from cfg
32
33
  */
33
34
  const CFG_PROPS = ['Database', 'User', 'Host', 'Port', 'Filename', 'Driver', 'Name'];
34
- const MIGRATION_TABLE_NAME = 'spinajs_migration';
35
- const MIGRATION_FILE_REGEXP = /(.*)_([0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2}_[0-9]{2})/;
36
35
  class Orm extends di_1.AsyncService {
37
- constructor() {
38
- super(...arguments);
36
+ /**
37
+ * `DI.resolve(Orm)` leaves this empty, which is every application: the defaults are the
38
+ * documented behaviour and nothing has to opt into them.
39
+ */
40
+ constructor(Options = {}) {
41
+ super();
42
+ this.Options = Options;
39
43
  this.Models = [];
40
44
  this.Migrations = [];
41
45
  this.Connections = new Map();
42
46
  }
43
- /**
44
- *
45
- * Migrates schema up ( fill function is not executed )
46
- *
47
- * @param name - migration file name
48
- */
49
- async migrateUp(name, force = true) {
50
- this.Log.info('DB migration UP started ...');
51
- const executedMigrations = [];
52
- await this.executeAvaibleMigrations(name, async (migration, driver) => {
53
- const trFunction = async (driver) => {
54
- await migration.up(driver);
55
- await driver
56
- .insert()
57
- .into(driver.Options.Migration?.Table ?? MIGRATION_TABLE_NAME)
58
- .values({
59
- Migration: migration.constructor.name,
60
- CreatedAt: new Date(),
61
- });
62
- executedMigrations.push(migration);
63
- this.Log.info(`Migration ${migration.constructor.name}:up() success !`);
64
- };
65
- if (driver.Options.Migration?.Transaction?.Mode === interfaces_js_2.MigrationTransactionMode.PerMigration) {
66
- await driver.transaction(trFunction);
67
- }
68
- else {
69
- await trFunction(driver);
70
- }
71
- }, false, force);
72
- this.Log.info('DB migration ended ...');
73
- return executedMigrations;
74
- }
75
- /**
76
- *
77
- * Migrates schema up ( fill function is not executed )
78
- *
79
- * @param name - migration file name
80
- */
81
- async migrateDown(name, force = true) {
82
- this.Log.info('DB migration DOWN started ...');
83
- await this.executeAvaibleMigrations(name, async (migration, driver) => {
84
- const trFunction = async (driver) => {
85
- await migration.down(driver);
86
- await driver
87
- .del()
88
- .from(driver.Options.Migration?.Table ?? MIGRATION_TABLE_NAME)
89
- .where({
90
- Migration: migration.constructor.name,
91
- });
92
- this.Log.info(`Migration down ${migration.constructor.name}:DOWN success !`);
93
- };
94
- if (driver.Options.Migration?.Transaction?.Mode === interfaces_js_2.MigrationTransactionMode.PerMigration) {
95
- await driver.transaction(trFunction);
96
- }
97
- else {
98
- await trFunction(driver);
99
- }
100
- }, true, force);
101
- this.Log.info('DB migration ended ...');
102
- }
103
47
  /**
104
48
  * This function is exposed mainly for unit testing purposes. It reloads table information for models
105
49
  * ORM always try to load table at resolve time
@@ -125,7 +69,7 @@ class Orm extends di_1.AsyncService {
125
69
  const existingColumn = lodash_1.default.find(descriptor.Columns, { Name: c.Name });
126
70
  if (existingColumn) {
127
71
  // Merge only defined properties from table info
128
- Object.keys(c).forEach(key => {
72
+ Object.keys(c).forEach((key) => {
129
73
  const columnKey = key;
130
74
  if (c[columnKey] !== undefined) {
131
75
  existingColumn[columnKey] = c[columnKey];
@@ -176,12 +120,11 @@ class Orm extends di_1.AsyncService {
176
120
  async resolve() {
177
121
  await super.resolve();
178
122
  await this.createConnections();
179
- // add all registered migrations via DI
180
- const migrations = di_1.DI.getRegisteredTypes('__migrations__');
181
- if (migrations) {
182
- migrations.forEach((m) => {
183
- this.registerMigration(m);
184
- });
123
+ // Every registered MigrationSource, merged, env-filtered and deduped. Deliberately BEFORE the
124
+ // model registration below: a discovered file may declare models as well, and importing it
125
+ // has to happen before `__models__` is read.
126
+ for (const m of await this.discoverMigrations()) {
127
+ this.registerMigration(m.type, m.file);
185
128
  }
186
129
  const models = di_1.DI.getRegisteredTypes('__models__');
187
130
  if (models) {
@@ -189,14 +132,84 @@ class Orm extends di_1.AsyncService {
189
132
  this.registerModel(m);
190
133
  });
191
134
  }
192
- const executedMigrations = await this.migrateUp(undefined, false);
135
+ this.Migration = new migration_runner_js_1.MigrationRunner(this);
136
+ // Must precede the migration pass below: `Migration.up()` reaches `ensureStorage()`, which
137
+ // probes the tracking table with `driver.tableInfo()` - and a driver's `tableInfo()` may read
138
+ // the '__orm_db_value_converters__' container map that this call is what puts there. Running
139
+ // it afterwards left that map absent for the whole boot pass, which crashed every restart of
140
+ // an already-migrated database ( the first boot creates the table and skips the probe, so it
141
+ // never showed ). Nothing here touches the database or the models, so it is free to move up.
193
142
  this.registerDefaultConverters();
143
+ // The boot migration pass, unless this Orm was resolved with MigrateOnStartup: false - see
144
+ // IOrmOptions. Suppressed here rather than inside the runner on purpose: `plan()` reads the
145
+ // OnStartup gate, so no `force` value can express "run nothing at all".
146
+ //
147
+ // force: false - the boot run honours each connection's Migration.OnStartup gate. Every
148
+ // other caller ( CLI, an explicit orm.Migration.up() ) defaults to force: true, because
149
+ // asking for a migration by hand is the explicit intent that gate exists to require.
150
+ const migrateOnStartup = this.Options.MigrateOnStartup !== false;
151
+ if (!migrateOnStartup) {
152
+ this.Log.trace('Boot migration pass skipped - this Orm was resolved with MigrateOnStartup: false. Nothing is applied by resolving it; orm.Migration is assigned and usable.');
153
+ }
154
+ // [] when suppressed, so the data() phase below has nothing to seed - which is correct: it
155
+ // seeds exactly what this pass applied, and this pass applied nothing.
156
+ const executedMigrations = migrateOnStartup ? await this.Migration.up(undefined, { force: false }) : [];
157
+ // reloadTableInfo / wireRelations / applyModelMixins and the data() phase all stay AFTER the
158
+ // migration pass: up() runs against a schema no model is wired to yet, data() against one
159
+ // that is.
194
160
  await this.reloadTableInfo();
195
161
  this.wireRelations();
196
162
  this.applyModelMixins();
197
- for (const m of executedMigrations) {
163
+ // Reached only if the pass above completed. A migration that throws takes this resolve down
164
+ // with it, and the migrations that had already succeeded in that pass keep their recorded
165
+ // schema while never reaching their `data()` - see the note on `runDataPhase`.
166
+ await this.runDataPhase(executedMigrations);
167
+ }
168
+ /**
169
+ * Runs the `data()` hook of every migration that was just applied - the seeding pass, which
170
+ * happens after models and relations are wired because that is what it is allowed to use.
171
+ *
172
+ * Every hook runs even when an earlier one throws, and the failures are reported together.
173
+ * Stopping at the first one leaves the migrations after it unseeded while their schema is
174
+ * already applied and recorded, so a rerun will not retry them: their tracking rows say
175
+ * "applied", and nothing would ever mention the seeds that never ran.
176
+ *
177
+ * KNOWN LOSS, and it is the same shape one level up: `executed` is what THIS run applied, and
178
+ * this phase runs after the whole run. A run in which M1 applies and M2 throws never reaches
179
+ * here at all - and M1's schema is already recorded, so the next boot does not find it pending,
180
+ * it never enters `executed`, and `M1.data()` never runs on any boot. Nothing reports it: the
181
+ * migration is applied and `status()` is clean.
182
+ *
183
+ * Not fixed here, because the tracking table has no notion of "applied but unseeded" and
184
+ * inventing one would make the seed phase a second, weaker migration state machine - `data()`
185
+ * has no `down()`, no checksum and no failure row, so a "seeded" column would be a claim
186
+ * nothing could verify or undo. It is documented instead ( packages/orm/docs,
187
+ * 10-schema-and-migrations.md ), where the guidance is the one thing that actually holds:
188
+ * write `data()` so that running it again is harmless.
189
+ */
190
+ async runDataPhase(executed) {
191
+ // `error` is deliberately `unknown` and kept verbatim - a rejection value is not promoted to
192
+ // an Error, so `inner` still carries whatever the hook actually threw. `reason` is the
193
+ // human-readable rendering of it, computed once and used by both the log line and the aggregate.
194
+ const errors = [];
195
+ for (const m of executed) {
198
196
  this.Log.trace(`Migrating data function for migration ${m.constructor.name} ...`);
199
- await m.data();
197
+ try {
198
+ await m.data();
199
+ }
200
+ catch (err) {
201
+ // a hook is free to reject with something that is not an Error - `throw 'boom'`,
202
+ // `Promise.reject(someCode)` - and reading `.message` off that yields undefined, so the
203
+ // message reporting the failure would name no reason for it at all
204
+ const reason = err instanceof Error ? err.message : String(err);
205
+ this.Log.error(`Migration ${m.constructor.name}:data() failed: ${reason}`);
206
+ errors.push({ name: m.constructor.name, reason, error: err });
207
+ }
208
+ }
209
+ if (errors.length > 0) {
210
+ // the first failure is carried as `inner` - the aggregate message names them all, but a
211
+ // caller unwinding the chain gets the original rejection rather than this summary
212
+ throw new exceptions_js_1.OrmException(`Migration data() phase failed for: ${errors.map((e) => `${e.name} (${e.reason})`).join(', ')}`, undefined, undefined, undefined, errors[0].error);
200
213
  }
201
214
  }
202
215
  registerDefaultConverters() {
@@ -248,6 +261,65 @@ class Orm extends di_1.AsyncService {
248
261
  type: model,
249
262
  });
250
263
  }
264
+ /**
265
+ * Everything every `MigrationSource` found, reduced to the migrations this environment runs.
266
+ *
267
+ * Three passes, in this order and for a reason each:
268
+ *
269
+ * - env resolution happens per ENTRY, before anything is merged, because it is the entry's FILE
270
+ * that carries the suffix;
271
+ * - dedupe merges entries sharing a class name - the normal case, since a file discovered on
272
+ * disk is also registered through DI by the import that discovered it, and `src` and `lib`
273
+ * hold the same class twice;
274
+ * - filtering happens here rather than in `MigrationRunner.plan()` so a migration belonging to
275
+ * another environment never enters `Orm.Migrations` at all, and is therefore absent from
276
+ * `up`, `down` AND `status` alike.
277
+ */
278
+ async discoverMigrations() {
279
+ const sources = await this.Container.resolve(Array.ofType(migration_sources_js_1.MigrationSource));
280
+ const merged = new Map();
281
+ for (const source of sources) {
282
+ for (const found of await source.getMigrations()) {
283
+ // OWN only - see the note on `extractOwnMigrationDescriptor`. A subclass that carries no
284
+ // `@Migration()` of its own must be read as "no Env declared", not as whatever its nearest
285
+ // decorated ancestor declared: a subclass does not inherit WHERE its parent runs.
286
+ const descriptor = (0, descriptor_js_1.extractOwnMigrationDescriptor)(found.type);
287
+ const env = (0, migration_environment_js_1.resolveMigrationEnv)(found.name, found.file, descriptor?.Env);
288
+ const previous = merged.get(found.name);
289
+ if (!previous) {
290
+ merged.set(found.name, { type: found.type, file: found.file, env });
291
+ continue;
292
+ }
293
+ if (previous.type !== found.type) {
294
+ // two DIFFERENT classes under one name - the runner records migrations by name, so only
295
+ // one of them can ever be tracked. Nothing here can tell which is meant. The env merge
296
+ // below is skipped on purpose: merging environments across two unrelated classes would
297
+ // surface as "the same migration cannot belong to two environments", contradicting the
298
+ // warning just logged - so the first entry is kept untouched instead.
299
+ this.Log.warn(`Two different migration classes are both named ${found.name} ( ${previous.file} and ${found.file} ) - keeping the first. Rename one of them.`);
300
+ continue;
301
+ }
302
+ // Prefer a real path over the '<di>' sentinel: each ClassInfo.file is meant to carry the
303
+ // migration's actual origin, and a DI registration that resolved before the file-scan
304
+ // source ran must not make the survivor forget the real path the same class was also
305
+ // discovered at.
306
+ const file = previous.file === migration_environment_js_1.MIGRATION_DI_SOURCE && found.file !== migration_environment_js_1.MIGRATION_DI_SOURCE ? found.file : previous.file;
307
+ merged.set(found.name, {
308
+ type: previous.type,
309
+ file,
310
+ env: (0, migration_environment_js_1.mergeMigrationEnv)(found.name, { env: previous.env, file: previous.file }, { env, file: found.file }),
311
+ });
312
+ }
313
+ }
314
+ const environment = (0, configuration_common_1.normalizeEnvironment)(this.Configuration.get('process.env.APP_ENV', undefined));
315
+ return [...merged.values()].filter((m) => {
316
+ if (m.env === undefined || m.env === environment) {
317
+ return true;
318
+ }
319
+ this.Log.trace(`Migration ${m.type.name} belongs to environment '${m.env}' and this process runs as '${environment}' - it is not registered`);
320
+ return false;
321
+ });
322
+ }
251
323
  /**
252
324
  *
253
325
  * Register migration to ORM programatically so ORM can see it and use it. Sometimes dynamical migration discovery is not possible eg.
@@ -257,13 +329,17 @@ class Orm extends di_1.AsyncService {
257
329
  *
258
330
  * @param model - model to register
259
331
  */
260
- registerMigration(migration) {
261
- const created = this.getMigrationDate(migration);
262
- if (created === null) {
332
+ registerMigration(migration, file) {
333
+ // validated here as well as in the runner, and deliberately: this is the earliest point the
334
+ // class is seen, so a migration nobody can order is refused before the Orm reports itself
335
+ // resolved rather than at the first migration run, possibly in another process
336
+ const match = migration.name.match(migration_runner_js_1.MIGRATION_FILE_REGEXP);
337
+ const created = match && match.length === 3 ? luxon_1.DateTime.fromFormat(match[2], 'yyyy_MM_dd_HH_mm_ss') : null;
338
+ if (created === null || !created.isValid) {
263
339
  throw new exceptions_js_1.OrmException(`Migration file ${migration.name} have invalid name format ( invalid migration name, expected: some_name_yyyy_MM_dd_HH_mm_ss got ${migration.name})`);
264
340
  }
265
341
  this.Migrations.push({
266
- file: `${migration.name}.registered`,
342
+ file: file ?? `${migration.name}.registered`,
267
343
  name: `${migration.name}`,
268
344
  type: migration,
269
345
  });
@@ -339,76 +415,6 @@ class Orm extends di_1.AsyncService {
339
415
  }
340
416
  });
341
417
  }
342
- getMigrationDate(migration) {
343
- const match = migration.name.match(MIGRATION_FILE_REGEXP);
344
- if (match === null || match.length !== 3) {
345
- return null;
346
- }
347
- const created = luxon_1.DateTime.fromFormat(match[2], 'yyyy_MM_dd_HH_mm_ss');
348
- if (!created.isValid) {
349
- return null;
350
- }
351
- return created;
352
- }
353
- async executeAvaibleMigrations(name, callback, down, force) {
354
- const toMigrate = name ? this.Migrations.filter((m) => m.name === name) : this.Migrations;
355
- let migrations = toMigrate
356
- .map((x) => {
357
- const created = this.getMigrationDate(x.type);
358
- if (created === null) {
359
- throw new exceptions_js_1.OrmException(`Migration file ${x.name} have invalid name format ( invalid migration name, expected: some_name_yyyy_MM_dd_HH_mm_ss got ${x.name})`);
360
- }
361
- return {
362
- created,
363
- ...x,
364
- };
365
- })
366
- .filter((x) => x !== null)
367
- .sort((a, b) => {
368
- if (a.created < b.created) {
369
- return -1;
370
- }
371
- return 1;
372
- });
373
- if (down) {
374
- migrations = migrations.reverse();
375
- }
376
- for (const m of migrations) {
377
- const md = m.type[symbols_js_1.MIGRATION_DESCRIPTION_SYMBOL];
378
- const cn = this.Connections.get(md.Connection);
379
- if (!cn) {
380
- this.Log.warn(`Connection ${md.Connection} not exists for migration ${m.name} at file ${m.file}`);
381
- continue;
382
- }
383
- const migrationTableName = cn.Options.Migration?.Table ?? MIGRATION_TABLE_NAME;
384
- if (!cn.Options.Migration?.OnStartup) {
385
- if (!force) {
386
- this.Log.warn(`Migration for connection ${md.Connection} is disabled on startup, please check conf file for db.[connection].migration.OnStartup property`);
387
- continue;
388
- }
389
- }
390
- // if there is no info on migraiton table
391
- const migrationTableExists = await cn.schema().tableExists(migrationTableName, cn.Options.Database);
392
- if (!migrationTableExists) {
393
- this.Log.info(`No migration table in database, recreating migration information ...`);
394
- await cn.schema().createTable(migrationTableName, (table) => {
395
- table.string('Migration').unique().notNull();
396
- table.dateTime('CreatedAt').notNull();
397
- });
398
- }
399
- const exists = await cn.select().from(migrationTableName).where({ Migration: m.name }).orderByDescending('CreatedAt').first();
400
- // up() must run only for migrations NOT yet recorded; down() must run only
401
- // for migrations that ARE recorded (previously applied). The gate was
402
- // inverted for down, which skipped applied migrations and ran down() on
403
- // never-applied ones.
404
- const shouldRun = down ? Boolean(exists) : !exists;
405
- if (shouldRun) {
406
- const migration = await this.Container.resolve(m.type, [cn]);
407
- this.Log.info(`Setting up migration ${m.name} from file ${m.file} created at ${m.created} mode: ${down ? 'migrate down' : 'migrate up'}`);
408
- await callback(migration, cn);
409
- }
410
- }
411
- }
412
418
  async dispose() {
413
419
  for (const [, value] of this.Connections) {
414
420
  value.stopHealthCheck();
@@ -1 +1 @@
1
- {"version":3,"file":"orm.js","sourceRoot":"","sources":["../../src/orm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orm.js","sourceRoot":"","sources":["../../src/orm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Quotes identifiers — table, column and alias names — the way one dialect spells them.
3
+ *
4
+ * Resolved from the DRIVER's container like every other compiler and statement, so a
5
+ * driver picks its quoting the same way it picks its SQL. This used to be a module-level
6
+ * function in `@spinajs/orm-sql` that emitted backticks and was imported directly by
7
+ * nearly every shared statement and compiler — including MSSQL's own, which therefore
8
+ * produced `` `table` `` where SQL Server needs `[table]`. Shadowing a compiler cannot
9
+ * shadow a function it calls internally, so quoting had to become a service before the
10
+ * "each driver registers its own dialect" rule could hold for identifiers at all.
11
+ *
12
+ * There is deliberately NO default registration. Backticks are MySQL and SQLite;
13
+ * brackets are MSSQL; the ANSI double quote is rejected by MySQL unless `ANSI_QUOTES` is
14
+ * on. Nothing is portable here, so nothing is inherited: a driver that registers no
15
+ * quoter fails loudly on its first query instead of emitting another dialect's SQL.
16
+ */
17
+ export declare abstract class IdentifierQuoter {
18
+ /**
19
+ * Quotes one identifier, escaping the quote character if the name contains it.
20
+ */
21
+ abstract quote(name: string): string;
22
+ /**
23
+ * Quotes a possibly schema-qualified name, quoting each dot-separated part on its own:
24
+ * `schema.table` becomes `` `schema`.`table` ``, never `` `schema.table` `` — the latter
25
+ * is a single identifier and every one of these databases rejects it as a table
26
+ * reference.
27
+ *
28
+ * A table whose name genuinely contains a dot cannot be expressed through the APIs that
29
+ * take a qualified name as one string; it never could.
30
+ */
31
+ quoteQualified(name: string): string;
32
+ }
33
+ //# sourceMappingURL=quoting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoting.d.ts","sourceRoot":"","sources":["../../src/quoting.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,8BACsB,gBAAgB;IACpC;;OAEG;aACa,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE3C;;;;;;;;OAQG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAM5C"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IdentifierQuoter = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ /**
12
+ * Quotes identifiers — table, column and alias names — the way one dialect spells them.
13
+ *
14
+ * Resolved from the DRIVER's container like every other compiler and statement, so a
15
+ * driver picks its quoting the same way it picks its SQL. This used to be a module-level
16
+ * function in `@spinajs/orm-sql` that emitted backticks and was imported directly by
17
+ * nearly every shared statement and compiler — including MSSQL's own, which therefore
18
+ * produced `` `table` `` where SQL Server needs `[table]`. Shadowing a compiler cannot
19
+ * shadow a function it calls internally, so quoting had to become a service before the
20
+ * "each driver registers its own dialect" rule could hold for identifiers at all.
21
+ *
22
+ * There is deliberately NO default registration. Backticks are MySQL and SQLite;
23
+ * brackets are MSSQL; the ANSI double quote is rejected by MySQL unless `ANSI_QUOTES` is
24
+ * on. Nothing is portable here, so nothing is inherited: a driver that registers no
25
+ * quoter fails loudly on its first query instead of emitting another dialect's SQL.
26
+ */
27
+ let IdentifierQuoter = class IdentifierQuoter {
28
+ /**
29
+ * Quotes a possibly schema-qualified name, quoting each dot-separated part on its own:
30
+ * `schema.table` becomes `` `schema`.`table` ``, never `` `schema.table` `` — the latter
31
+ * is a single identifier and every one of these databases rejects it as a table
32
+ * reference.
33
+ *
34
+ * A table whose name genuinely contains a dot cannot be expressed through the APIs that
35
+ * take a qualified name as one string; it never could.
36
+ */
37
+ quoteQualified(name) {
38
+ return String(name)
39
+ .split('.')
40
+ .map((part) => this.quote(part))
41
+ .join('.');
42
+ }
43
+ };
44
+ exports.IdentifierQuoter = IdentifierQuoter;
45
+ exports.IdentifierQuoter = IdentifierQuoter = __decorate([
46
+ (0, di_1.NewInstance)()
47
+ ], IdentifierQuoter);
48
+ //# sourceMappingURL=quoting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoting.js","sourceRoot":"","sources":["../../src/quoting.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oCAA0C;AAE1C;;;;;;;;;;;;;;;GAeG;AAEI,IAAe,gBAAgB,GAA/B,MAAe,gBAAgB;IAMpC;;;;;;;;OAQG;IACI,cAAc,CAAC,IAAY;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AArBqB,4CAAgB;2BAAhB,gBAAgB;IADrC,IAAA,gBAAW,GAAE;GACQ,gBAAgB,CAqBrC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Walk the current V8 stack and return the absolute path of the first frame that is NOT inside
3
+ * one of `skipMarkers`. Called from a decorator, that frame is the decorated class's own source
4
+ * file. Works for CJS ( `at ... (C:\foo\bar.js:12:3)` ) and ESM ( `at ... (file:///C:/foo/bar.js:12:3)` ).
5
+ *
6
+ * Lifted from `@spinajs/http`'s `captureControllerSourceFile` - the two packages cannot share it
7
+ * without one depending on the other, and http sits above orm in the graph.
8
+ */
9
+ export declare function captureSourceFile(skipMarkers: string[]): string | undefined;
10
+ //# sourceMappingURL=source-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../src/source-file.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CA+B3E"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.captureSourceFile = captureSourceFile;
4
+ /**
5
+ * Walk the current V8 stack and return the absolute path of the first frame that is NOT inside
6
+ * one of `skipMarkers`. Called from a decorator, that frame is the decorated class's own source
7
+ * file. Works for CJS ( `at ... (C:\foo\bar.js:12:3)` ) and ESM ( `at ... (file:///C:/foo/bar.js:12:3)` ).
8
+ *
9
+ * Lifted from `@spinajs/http`'s `captureControllerSourceFile` - the two packages cannot share it
10
+ * without one depending on the other, and http sits above orm in the graph.
11
+ */
12
+ function captureSourceFile(skipMarkers) {
13
+ const stack = new Error().stack;
14
+ if (!stack)
15
+ return undefined;
16
+ const lines = stack.split('\n');
17
+ for (const line of lines) {
18
+ if (skipMarkers.some((m) => line.includes(m)))
19
+ continue;
20
+ // Match `(path:line:col)` or bare `path:line:col` at the end of the frame.
21
+ const m = line.match(/\(([^()]+):\d+:\d+\)\s*$/) || line.match(/at\s+([^\s()]+):\d+:\d+\s*$/);
22
+ if (!m)
23
+ continue;
24
+ let file = m[1];
25
+ if (file.startsWith('file://')) {
26
+ try {
27
+ // Strip the ESM url scheme. Windows: file:///C:/foo -> C:/foo, POSIX paths stay as-is.
28
+ file = decodeURIComponent(file.replace(/^file:\/\/\/?/, ''));
29
+ if (!/^[A-Za-z]:/.test(file) && !file.startsWith('/')) {
30
+ file = `/${file}`;
31
+ }
32
+ }
33
+ catch {
34
+ // fall through with the raw match
35
+ }
36
+ }
37
+ return file;
38
+ }
39
+ return undefined;
40
+ }
41
+ //# sourceMappingURL=source-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-file.js","sourceRoot":"","sources":["../../src/source-file.ts"],"names":[],"mappings":";;AAQA,8CA+BC;AAvCD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,WAAqB;IACrD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QACxD,2EAA2E;QAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC9F,IAAI,CAAC,CAAC;YAAE,SAAS;QAEjB,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,uFAAuF;gBACvF,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;gBAE7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}