@spinajs/orm 2.0.486 → 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-service.js","sourceRoot":"","sources":["../../src/migration-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { Configuration } from '@spinajs/configuration-common';
2
+ import { AsyncService, ClassInfo } from '@spinajs/di';
3
+ import { Log } from '@spinajs/log-common';
4
+ import { OrmMigration } from './interfaces.js';
5
+ /**
6
+ * Fallback for `system.dirs.migrations` when that key is absent or empty - see the comment on it
7
+ * in `config/orm.ts` for why the defaults live here rather than shipping in the config value
8
+ * itself. One entry per format-independent build layout a project might have been compiled to; a
9
+ * migration reachable through more than one resolves to the same class name twice and is deduped
10
+ * by `Orm`.
11
+ *
12
+ * `lib/migrations` alone used to stand in for "the compiled layout", but every package in this
13
+ * repo compiles to `lib/cjs` and `lib/mjs` - there is no bare `lib/migrations` anywhere spinajs
14
+ * itself produces, which made the filesystem source a silent no-op for a deployment built the
15
+ * spinajs way. `build/migrations` and bare `migrations` are added alongside the original three
16
+ * rather than replacing them, so an existing `src/lib/dist` layout keeps working unchanged.
17
+ *
18
+ * `lib/cjs/migrations` and `lib/mjs/migrations` are deliberately NOT in this list, even though
19
+ * they are exactly such a build layout: they are the SAME source compiled twice into two module
20
+ * formats, only one of which the running process can ever load - every package here ships
21
+ * `"type": "module"` with no `package.json` written into `lib/cjs`, so Node parses `lib/cjs/*.js`
22
+ * as ESM and a bare import of it throws (by design - see the `.js`-failure-throws comment below).
23
+ * Scanning both unconditionally turned the sibling this runtime cannot load into a hard boot
24
+ * failure the moment a package actually shipped both builds. `currentBuildMigrationDir()` below
25
+ * picks the one that matches the current runtime instead, mirroring how
26
+ * `@spinajs/configuration`'s `BaseFileSource` already picks ONE of its own dual-build config globs
27
+ * off the same DI flag (`packages/configuration/src/sources.ts`).
28
+ */
29
+ export declare const DEFAULT_MIGRATION_DIRS: string[];
30
+ /**
31
+ * The one directory, of `lib/cjs/migrations` and `lib/mjs/migrations`, that the CURRENTLY RUNNING
32
+ * process can actually import migrations from - see the comment on `DEFAULT_MIGRATION_DIRS` for
33
+ * why the other one is never scanned at all rather than scanned-and-tolerated.
34
+ */
35
+ export declare function currentBuildMigrationDir(): string;
36
+ /**
37
+ * `env` ( normalized `process.env.APP_ENV` ) is interpolated straight into a glob pattern in
38
+ * `FilesystemMigrationSource.getMigrations()` - a plain identifier-ish token only, so it cannot
39
+ * carry glob metacharacters (`{`, `[`, `!`, `*`, a path separator, ...) into a pattern nobody wrote.
40
+ */
41
+ export declare const SAFE_ENV_NAME_REGEXP: RegExp;
42
+ /**
43
+ * Supplies migration types to `Orm`.
44
+ *
45
+ * Sources only DISCOVER migrations ( type + origin file ) - they never construct or run them.
46
+ * `Orm` merges every registered source, resolves each migration's environment, dedupes and
47
+ * registers what is left.
48
+ *
49
+ * To plug in another discovery mechanism ( a plugin manifest, a remote registry ) implement this
50
+ * class and decorate it `@Injectable(MigrationSource)`.
51
+ */
52
+ export declare abstract class MigrationSource extends AsyncService {
53
+ abstract getMigrations(): Promise<Array<ClassInfo<OrmMigration>>>;
54
+ }
55
+ /**
56
+ * Discovers migrations by scanning the directories configured at `system.dirs.migrations`.
57
+ *
58
+ * Two globs per directory: unsuffixed files, which belong to every environment, and files carrying
59
+ * this environment's tag. Files belonging to another environment are never MATCHED, and therefore
60
+ * never imported - which is the whole point rather than an optimization. Importing a migration
61
+ * fires its `@Migration` decorator, which registers the class into `__migrations__`, and
62
+ * `DiRegistryMigrationSource` would then hand it back no matter what filter ran afterwards.
63
+ *
64
+ * This is also why `@ListFromFiles` from `@spinajs/reflection` is not used here: it imports
65
+ * everything it lists, and its glob is fixed at decoration time while the environment is only
66
+ * known at runtime.
67
+ */
68
+ export declare class FilesystemMigrationSource extends MigrationSource {
69
+ protected Log: Log;
70
+ protected Configuration: Configuration;
71
+ getMigrations(): Promise<Array<ClassInfo<OrmMigration>>>;
72
+ }
73
+ /**
74
+ * Discovers migrations registered in the DI container under `__migrations__` - which is what the
75
+ * `@Migration` decorator does, so this covers every migration reached by IMPORT: a package
76
+ * re-exporting its migrations from `index.ts`, a test declaring one inline, or a file this
77
+ * process's `FilesystemMigrationSource` has just imported.
78
+ *
79
+ * The origin file is the path `@Migration` captured off the stack, and the sentinel
80
+ * `MIGRATION_DI_SOURCE` when that capture came back empty.
81
+ */
82
+ export declare class DiRegistryMigrationSource extends MigrationSource {
83
+ getMigrations(): Promise<Array<ClassInfo<OrmMigration>>>;
84
+ }
85
+ //# sourceMappingURL=migration-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-sources.d.ts","sourceRoot":"","sources":["../../src/migration-sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAqB,SAAS,EAAkB,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAOlD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAA6H,CAAC;AAgBzK;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAqB,CAAC;AAEvD;;;;;;;;;GASG;AACH,8BAAsB,eAAgB,SAAQ,YAAY;aACxC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;CACzE;AAED;;;;;;;;;;;;GAYG;AACH,qBACa,yBAA0B,SAAQ,eAAe;IAE5D,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAE1B,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;CAkHtE;AAED;;;;;;;;GAQG;AACH,qBACa,yBAA0B,SAAQ,eAAe;IAC/C,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;CAYtE"}
@@ -0,0 +1,236 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Configuration, normalizeEnvironment } from '@spinajs/configuration-common';
11
+ import { AsyncService, Autoinject, DI, Injectable } from '@spinajs/di';
12
+ import { Log, Logger } from '@spinajs/log-common';
13
+ import glob from 'glob';
14
+ import _ from 'lodash';
15
+ import * as fs from 'node:fs';
16
+ import * as path from 'node:path';
17
+ import { extractMigrationDescriptor } from './descriptor.js';
18
+ import { OrmException } from './exceptions.js';
19
+ import { OrmMigration } from './interfaces.js';
20
+ import { MIGRATION_DI_SOURCE } from './migration-environment.js';
21
+ import { MIGRATION_FILE_REGEXP } from './symbols.js';
22
+ /**
23
+ * Fallback for `system.dirs.migrations` when that key is absent or empty - see the comment on it
24
+ * in `config/orm.ts` for why the defaults live here rather than shipping in the config value
25
+ * itself. One entry per format-independent build layout a project might have been compiled to; a
26
+ * migration reachable through more than one resolves to the same class name twice and is deduped
27
+ * by `Orm`.
28
+ *
29
+ * `lib/migrations` alone used to stand in for "the compiled layout", but every package in this
30
+ * repo compiles to `lib/cjs` and `lib/mjs` - there is no bare `lib/migrations` anywhere spinajs
31
+ * itself produces, which made the filesystem source a silent no-op for a deployment built the
32
+ * spinajs way. `build/migrations` and bare `migrations` are added alongside the original three
33
+ * rather than replacing them, so an existing `src/lib/dist` layout keeps working unchanged.
34
+ *
35
+ * `lib/cjs/migrations` and `lib/mjs/migrations` are deliberately NOT in this list, even though
36
+ * they are exactly such a build layout: they are the SAME source compiled twice into two module
37
+ * formats, only one of which the running process can ever load - every package here ships
38
+ * `"type": "module"` with no `package.json` written into `lib/cjs`, so Node parses `lib/cjs/*.js`
39
+ * as ESM and a bare import of it throws (by design - see the `.js`-failure-throws comment below).
40
+ * Scanning both unconditionally turned the sibling this runtime cannot load into a hard boot
41
+ * failure the moment a package actually shipped both builds. `currentBuildMigrationDir()` below
42
+ * picks the one that matches the current runtime instead, mirroring how
43
+ * `@spinajs/configuration`'s `BaseFileSource` already picks ONE of its own dual-build config globs
44
+ * off the same DI flag (`packages/configuration/src/sources.ts`).
45
+ */
46
+ export const DEFAULT_MIGRATION_DIRS = ['src', 'lib', 'dist', 'build', '.'].map((d) => path.resolve(path.normalize(path.join(process.cwd(), d, 'migrations'))));
47
+ /**
48
+ * Whether the current process is running under `@spinajs/di`'s ESM mode.
49
+ *
50
+ * `DI.setESMModuleSupport()` (`packages/di/src/root.ts`) registers `{ mjs: true }` - an object, not
51
+ * a bare boolean - under `__esmMode__`, and `DI.__spinajs_require__` itself reads it back as
52
+ * `isESM && isESM.mjs`. A consumer that never called `setESMModuleSupport()` leaves the value
53
+ * unregistered (`DI.get` returns `null`), which this treats the same way `__spinajs_require__`
54
+ * does: fall back to CJS.
55
+ */
56
+ function isESMRuntime() {
57
+ const flag = DI.get('__esmMode__');
58
+ return typeof flag === 'boolean' ? flag : Boolean(flag?.mjs);
59
+ }
60
+ /**
61
+ * The one directory, of `lib/cjs/migrations` and `lib/mjs/migrations`, that the CURRENTLY RUNNING
62
+ * process can actually import migrations from - see the comment on `DEFAULT_MIGRATION_DIRS` for
63
+ * why the other one is never scanned at all rather than scanned-and-tolerated.
64
+ */
65
+ export function currentBuildMigrationDir() {
66
+ return path.resolve(path.normalize(path.join(process.cwd(), 'lib', isESMRuntime() ? 'mjs' : 'cjs', 'migrations')));
67
+ }
68
+ /**
69
+ * `env` ( normalized `process.env.APP_ENV` ) is interpolated straight into a glob pattern in
70
+ * `FilesystemMigrationSource.getMigrations()` - a plain identifier-ish token only, so it cannot
71
+ * carry glob metacharacters (`{`, `[`, `!`, `*`, a path separator, ...) into a pattern nobody wrote.
72
+ */
73
+ export const SAFE_ENV_NAME_REGEXP = /^[A-Za-z0-9_-]+$/;
74
+ /**
75
+ * Supplies migration types to `Orm`.
76
+ *
77
+ * Sources only DISCOVER migrations ( type + origin file ) - they never construct or run them.
78
+ * `Orm` merges every registered source, resolves each migration's environment, dedupes and
79
+ * registers what is left.
80
+ *
81
+ * To plug in another discovery mechanism ( a plugin manifest, a remote registry ) implement this
82
+ * class and decorate it `@Injectable(MigrationSource)`.
83
+ */
84
+ export class MigrationSource extends AsyncService {
85
+ }
86
+ /**
87
+ * Discovers migrations by scanning the directories configured at `system.dirs.migrations`.
88
+ *
89
+ * Two globs per directory: unsuffixed files, which belong to every environment, and files carrying
90
+ * this environment's tag. Files belonging to another environment are never MATCHED, and therefore
91
+ * never imported - which is the whole point rather than an optimization. Importing a migration
92
+ * fires its `@Migration` decorator, which registers the class into `__migrations__`, and
93
+ * `DiRegistryMigrationSource` would then hand it back no matter what filter ran afterwards.
94
+ *
95
+ * This is also why `@ListFromFiles` from `@spinajs/reflection` is not used here: it imports
96
+ * everything it lists, and its glob is fixed at decoration time while the environment is only
97
+ * known at runtime.
98
+ */
99
+ let FilesystemMigrationSource = class FilesystemMigrationSource extends MigrationSource {
100
+ async getMigrations() {
101
+ const configured = this.Configuration.get('system.dirs.migrations', []) ?? [];
102
+ // a configured value REPLACES the defaults rather than adding to them - the config key itself
103
+ // ships empty for exactly this reason, see `config/orm.ts`. The format-specific build dir is
104
+ // computed here rather than folded into `DEFAULT_MIGRATION_DIRS` itself: which one applies
105
+ // depends on the `__esmMode__` DI flag, which is not knowable at module-load time and can
106
+ // change between calls in a test process that flips it.
107
+ //
108
+ // Whether this scan is running over a directory the OPERATOR named, or one we guessed, is
109
+ // carried down to the `.js`-import-failure handler below rather than recomputed there: it is
110
+ // the same "configured vs fallback" split as the line above, and re-deriving it from `dirs`
111
+ // itself later would have to somehow tell "the operator configured exactly the default list"
112
+ // apart from "nothing was configured" - which is not recoverable once the two are merged.
113
+ const isConfigured = configured.length > 0;
114
+ const dirs = isConfigured ? configured : [...DEFAULT_MIGRATION_DIRS, currentBuildMigrationDir()];
115
+ const env = normalizeEnvironment(this.Configuration.get('process.env.APP_ENV', undefined));
116
+ // `env` is interpolated straight into the glob below - an APP_ENV containing `{`, `[`, `!`,
117
+ // `*` or a path separator would stop being a literal tag and become pattern syntax, silently
118
+ // matching zero files (or the wrong ones) instead of the ones this environment owns. Refused
119
+ // rather than escaped: a deployment whose APP_ENV cannot be a plain identifier has a bigger
120
+ // problem than this scan, and failing loudly here is what surfaces it.
121
+ if (!SAFE_ENV_NAME_REGEXP.test(env)) {
122
+ throw new OrmException(`APP_ENV '${env}' is not a plain identifier ( letters, digits, '_' or '-' only ) and cannot be used to build the migration discovery glob safely - refusing to scan rather than silently matching the wrong files.`);
123
+ }
124
+ // `!(*.*)` - a basename with no dot at all, so it also excludes `*.d.ts` for free. `cjs` and
125
+ // `mjs` join `ts`/`js` because that is what this source's own default directories
126
+ // ( `lib/cjs/migrations`, `lib/mjs/migrations` ) actually contain - the same extension set
127
+ // `@spinajs/configuration`'s own config-file loader recognizes.
128
+ const patterns = ['/**/!(*.*).{ts,js,cjs,mjs}', `/**/*.${env}.{ts,js,cjs,mjs}`];
129
+ const files = _.uniq(dirs)
130
+ .filter((d) => {
131
+ if (fs.existsSync(d)) {
132
+ return true;
133
+ }
134
+ this.Log.trace(`Migration directory ${d} does not exist - skipped`);
135
+ return false;
136
+ })
137
+ .flatMap((d) => patterns.flatMap((p) => glob.sync(path.join(d, p).replace(/\\/g, '/'))))
138
+ .map((f) => path.normalize(path.resolve(f)));
139
+ const result = [];
140
+ // the same file is reachable from two configured directories ( `lib/migrations` and a path
141
+ // that resolves to it ), and importing it twice would report the same class twice
142
+ for (const file of _.uniq(files)) {
143
+ this.Log.trace(`Loading migration file ${file}`);
144
+ let module;
145
+ try {
146
+ module = (await DI.__spinajs_require__(file));
147
+ }
148
+ catch (err) {
149
+ if (path.extname(file) === '.ts') {
150
+ // reachable in normal operation: the default directories include `src/migrations`, so a
151
+ // compiled deployment tries the `.ts` copy of every migration and fails to import under
152
+ // a plain JS runtime. The `.js` copy is found by the same scan, so this is routine, not
153
+ // a problem - throwing would make a shipped default take the boot down
154
+ this.Log.trace(`Could not load migration file ${file}: ${err.message}`);
155
+ continue;
156
+ }
157
+ // a compiled migration ( `.js` - the only other extension the glob above ever emits ) that
158
+ // fails to import is not the same case as a `.ts` casualty above - a syntax error, a broken
159
+ // relative import, a module body that throws. Whether that is tolerated now depends on WHO
160
+ // named this directory:
161
+ //
162
+ // - a CONFIGURED directory is one the operator wrote into `system.dirs.migrations`
163
+ // themselves. A file in it that will not load is their bug, in a place they told us to
164
+ // look - swallowing it down to a warning would let discovery report "no pending
165
+ // migrations" and let a deployment proceed against an unmigrated schema, so this case is
166
+ // not tolerated: throw, with the original error chained so the stack survives.
167
+ // - a FALLBACK directory is one WE guessed ( `DEFAULT_MIGRATION_DIRS`, or the build dir
168
+ // `currentBuildMigrationDir()` picks ). Nobody asked us to scan it, so a file in it that
169
+ // fails to import is not our place to kill the boot over - warn loudly, naming the file
170
+ // and the fact that it was NOT registered, and move on to the rest of the scan.
171
+ if (isConfigured) {
172
+ throw new OrmException(`Could not load migration file ${file}`, undefined, undefined, undefined, err);
173
+ }
174
+ this.Log.warn(err, `Could not load migration file ${file} from a fallback migration directory - this migration was NOT registered`);
175
+ continue;
176
+ }
177
+ for (const [name, exported] of Object.entries(module)) {
178
+ if (typeof exported !== 'function' || !(exported.prototype instanceof OrmMigration)) {
179
+ continue;
180
+ }
181
+ const className = exported.name || name;
182
+ // The same anchor `parseMigrationFileEnv` reads a file's own tag through: a class whose
183
+ // name carries no `_yyyy_MM_dd_HH_mm_ss` timestamp is not a migration, however it got
184
+ // harvested - a shared abstract base class living directly in a scanned directory
185
+ // (`BaseSeedMigration.ts`), or a barrel (`index.ts`) that re-exports one from elsewhere.
186
+ // Without this gate, `Orm.registerMigration` throws on it later, naming this FILE - the
187
+ // barrel or the base class's own file, never a migration anyone meant to register - and
188
+ // takes the whole boot down. Skipped here instead, at trace.
189
+ if (!MIGRATION_FILE_REGEXP.test(className)) {
190
+ this.Log.trace(`${file} exports ${className}, which extends OrmMigration but carries no _yyyy_MM_dd_HH_mm_ss timestamp - not a migration, skipped`);
191
+ continue;
192
+ }
193
+ result.push({ file, name: className, type: exported });
194
+ }
195
+ }
196
+ return result;
197
+ }
198
+ };
199
+ __decorate([
200
+ Logger('ORM'),
201
+ __metadata("design:type", Log)
202
+ ], FilesystemMigrationSource.prototype, "Log", void 0);
203
+ __decorate([
204
+ Autoinject(),
205
+ __metadata("design:type", Configuration)
206
+ ], FilesystemMigrationSource.prototype, "Configuration", void 0);
207
+ FilesystemMigrationSource = __decorate([
208
+ Injectable(MigrationSource)
209
+ ], FilesystemMigrationSource);
210
+ export { FilesystemMigrationSource };
211
+ /**
212
+ * Discovers migrations registered in the DI container under `__migrations__` - which is what the
213
+ * `@Migration` decorator does, so this covers every migration reached by IMPORT: a package
214
+ * re-exporting its migrations from `index.ts`, a test declaring one inline, or a file this
215
+ * process's `FilesystemMigrationSource` has just imported.
216
+ *
217
+ * The origin file is the path `@Migration` captured off the stack, and the sentinel
218
+ * `MIGRATION_DI_SOURCE` when that capture came back empty.
219
+ */
220
+ let DiRegistryMigrationSource = class DiRegistryMigrationSource extends MigrationSource {
221
+ async getMigrations() {
222
+ const types = (DI.getRegisteredTypes('__migrations__') ?? []);
223
+ return types.map((type) => {
224
+ // chain-walking is fine here without being load-bearing: every entry in `__migrations__` is
225
+ // a class `@Migration()` was applied to directly, so "chain" and "own" always agree - see
226
+ // the note on `extractMigrationDescriptor`.
227
+ const descriptor = extractMigrationDescriptor(type);
228
+ return { file: descriptor?.SourceFile ?? MIGRATION_DI_SOURCE, name: type.name, type };
229
+ });
230
+ }
231
+ };
232
+ DiRegistryMigrationSource = __decorate([
233
+ Injectable(MigrationSource)
234
+ ], DiRegistryMigrationSource);
235
+ export { DiRegistryMigrationSource };
236
+ //# sourceMappingURL=migration-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-sources.js","sourceRoot":"","sources":["../../src/migration-sources.ts"],"names":[],"mappings":"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"}
package/lib/mjs/orm.d.ts CHANGED
@@ -4,33 +4,79 @@ import { Log } from '@spinajs/log-common';
4
4
  import { OrmMigration } from './interfaces.js';
5
5
  import { ModelBase } from './model.js';
6
6
  import { OrmDriver } from './driver.js';
7
+ import { MigrationRunner } from './migration-runner.js';
8
+ /**
9
+ * What `DI.resolve(Orm, [ ... ])` hands the Orm at construction - the same way a driver is
10
+ * handed its `IDriverOptions`. Not configuration: nothing here comes from a config file, because
11
+ * the one thing it controls has to be a property of THIS PROCESS rather than of the deployment.
12
+ */
13
+ export interface IOrmOptions {
14
+ /**
15
+ * Run the boot migration pass - `Migration.up(undefined, { force: false })` and the `data()`
16
+ * phase that seeds whatever it applied? Defaults to true, and an ordinary application never
17
+ * passes it: leaving it out is what keeps `db.Connections[n].Migration.OnStartup` meaning what
18
+ * it says.
19
+ *
20
+ * `false` is for a process whose job is to operate ON the migrations - `@spinajs/orm-cli`
21
+ * passes it. Such a process needs everything else resolve() does ( connections, models,
22
+ * converters, `orm.Migration` ) but must not have the schema move underneath it as a side
23
+ * effect of booting: a boot pass that meets a FAILED row takes down even the command invoked
24
+ * to clear that row, and a boot pass that succeeds turns `migrate-status` from a report into a
25
+ * migration.
26
+ *
27
+ * It is deliberately not a `force` variation. `force` chooses whether the `OnStartup` gate is
28
+ * honoured, and both of its values RUN migrations - `force: false` runs every connection whose
29
+ * gate is on, which is exactly the set a migration tool must not touch on its way in.
30
+ */
31
+ MigrateOnStartup?: boolean;
32
+ }
7
33
  export declare class Orm extends AsyncService {
34
+ protected Options: IOrmOptions;
8
35
  Models: Array<ClassInfo<ModelBase>>;
9
36
  Migrations: Array<ClassInfo<OrmMigration>>;
10
37
  Connections: Map<string, OrmDriver>;
38
+ /**
39
+ * Everything migration-related: `up`, `down`, `status`, `resolve`. Assigned in `resolve()`,
40
+ * once the connections it dispatches to exist - so it is only usable on a resolved Orm.
41
+ */
42
+ Migration: MigrationRunner;
11
43
  Container: Container;
12
44
  protected Log: Log;
13
45
  protected Configuration: Configuration;
14
46
  /**
15
- *
16
- * Migrates schema up ( fill function is not executed )
17
- *
18
- * @param name - migration file name
19
- */
20
- migrateUp(name?: string, force?: boolean): Promise<OrmMigration[]>;
21
- /**
22
- *
23
- * Migrates schema up ( fill function is not executed )
24
- *
25
- * @param name - migration file name
47
+ * `DI.resolve(Orm)` leaves this empty, which is every application: the defaults are the
48
+ * documented behaviour and nothing has to opt into them.
26
49
  */
27
- migrateDown(name?: string, force?: boolean): Promise<void>;
50
+ constructor(Options?: IOrmOptions);
28
51
  /**
29
52
  * This function is exposed mainly for unit testing purposes. It reloads table information for models
30
53
  * ORM always try to load table at resolve time
31
54
  */
32
55
  reloadTableInfo(): Promise<void>;
33
56
  resolve(): Promise<void>;
57
+ /**
58
+ * Runs the `data()` hook of every migration that was just applied - the seeding pass, which
59
+ * happens after models and relations are wired because that is what it is allowed to use.
60
+ *
61
+ * Every hook runs even when an earlier one throws, and the failures are reported together.
62
+ * Stopping at the first one leaves the migrations after it unseeded while their schema is
63
+ * already applied and recorded, so a rerun will not retry them: their tracking rows say
64
+ * "applied", and nothing would ever mention the seeds that never ran.
65
+ *
66
+ * KNOWN LOSS, and it is the same shape one level up: `executed` is what THIS run applied, and
67
+ * this phase runs after the whole run. A run in which M1 applies and M2 throws never reaches
68
+ * here at all - and M1's schema is already recorded, so the next boot does not find it pending,
69
+ * it never enters `executed`, and `M1.data()` never runs on any boot. Nothing reports it: the
70
+ * migration is applied and `status()` is clean.
71
+ *
72
+ * Not fixed here, because the tracking table has no notion of "applied but unseeded" and
73
+ * inventing one would make the seed phase a second, weaker migration state machine - `data()`
74
+ * has no `down()`, no checksum and no failure row, so a "seeded" column would be a claim
75
+ * nothing could verify or undo. It is documented instead ( packages/orm/docs,
76
+ * 10-schema-and-migrations.md ), where the guidance is the one thing that actually holds:
77
+ * write `data()` so that running it again is harmless.
78
+ */
79
+ protected runDataPhase(executed: OrmMigration[]): Promise<void>;
34
80
  protected registerDefaultConverters(): void;
35
81
  protected wireRelations(): void;
36
82
  /**
@@ -43,6 +89,24 @@ export declare class Orm extends AsyncService {
43
89
  * @param model - model to register
44
90
  */
45
91
  protected registerModel<T extends ModelBase>(model: Class<T>): void;
92
+ /**
93
+ * Everything every `MigrationSource` found, reduced to the migrations this environment runs.
94
+ *
95
+ * Three passes, in this order and for a reason each:
96
+ *
97
+ * - env resolution happens per ENTRY, before anything is merged, because it is the entry's FILE
98
+ * that carries the suffix;
99
+ * - dedupe merges entries sharing a class name - the normal case, since a file discovered on
100
+ * disk is also registered through DI by the import that discovered it, and `src` and `lib`
101
+ * hold the same class twice;
102
+ * - filtering happens here rather than in `MigrationRunner.plan()` so a migration belonging to
103
+ * another environment never enters `Orm.Migrations` at all, and is therefore absent from
104
+ * `up`, `down` AND `status` alike.
105
+ */
106
+ protected discoverMigrations(): Promise<Array<{
107
+ type: Class<OrmMigration>;
108
+ file: string;
109
+ }>>;
46
110
  /**
47
111
  *
48
112
  * Register migration to ORM programatically so ORM can see it and use it. Sometimes dynamical migration discovery is not possible eg.
@@ -52,11 +116,9 @@ export declare class Orm extends AsyncService {
52
116
  *
53
117
  * @param model - model to register
54
118
  */
55
- protected registerMigration<T extends OrmMigration>(migration: Class<T>): void;
119
+ protected registerMigration<T extends OrmMigration>(migration: Class<T>, file?: string): void;
56
120
  private createConnections;
57
121
  private applyModelMixins;
58
- private getMigrationDate;
59
- private executeAvaibleMigrations;
60
122
  dispose(): Promise<void>;
61
123
  }
62
124
  //# sourceMappingURL=orm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../../src/orm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAc,SAAS,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAwC,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EAAE,SAAS,EAA8C,MAAM,YAAY,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,qBAAa,GAAI,SAAQ,YAAY;IAC5B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAM;IAEzC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAM;IAEhD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAgC;IAGnE,SAAS,EAAE,SAAS,CAAC;IAG5B,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEvC;;;;;OAKG;IACU,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,OAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAuCrF;;;;;OAKG;IACU,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7E;;;OAGG;IACU,eAAe;IAqFf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCrC,SAAS,CAAC,yBAAyB;IAanC,SAAS,CAAC,aAAa;IAyBvB;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAQ5D;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAczD,iBAAiB;IA2E/B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,gBAAgB;YAeV,wBAAwB;IA2EzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMtC"}
1
+ {"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../../src/orm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAwB,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAc,SAAS,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAA8C,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,OAAO,EAAyB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAS/E;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,GAAI,SAAQ,YAAY;IA0BvB,SAAS,CAAC,OAAO,EAAE,WAAW;IAzBnC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAM;IAEzC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAM;IAEhD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAgC;IAE1E;;;OAGG;IACI,SAAS,EAAE,eAAe,CAAC;IAG3B,SAAS,EAAE,SAAS,CAAC;IAG5B,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAEvC;;;OAGG;gBACmB,OAAO,GAAE,WAAgB;IAI/C;;;OAGG;IACU,eAAe;IAqFf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DrC;;;;;;;;;;;;;;;;;;;;;OAqBG;cACa,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrE,SAAS,CAAC,yBAAyB;IAanC,SAAS,CAAC,aAAa;IAyBvB;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAQ5D;;;;;;;;;;;;;OAaG;cACa,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsDjG;;;;;;;;OAQG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM;YAkBxE,iBAAiB;IA2E/B,OAAO,CAAC,gBAAgB;IASX,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMtC"}