@c9up/atlas 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db.darwin-arm64.node +0 -0
- package/db.darwin-x64.node +0 -0
- package/db.linux-arm64-gnu.node +0 -0
- package/db.linux-x64-gnu.node +0 -0
- package/db.win32-x64-msvc.node +0 -0
- package/dist/AtlasProvider.d.ts.map +1 -1
- package/dist/AtlasProvider.js +9 -1
- package/dist/AtlasProvider.js.map +1 -1
- package/dist/BaseEntity.d.ts +3 -12
- package/dist/BaseEntity.d.ts.map +1 -1
- package/dist/BaseEntity.js +20 -4
- package/dist/BaseEntity.js.map +1 -1
- package/dist/BaseRepository.d.ts.map +1 -1
- package/dist/BaseRepository.js +122 -110
- package/dist/BaseRepository.js.map +1 -1
- package/dist/ModelQuery.d.ts +2 -2
- package/dist/ModelQuery.d.ts.map +1 -1
- package/dist/ModelQuery.js +62 -17
- package/dist/ModelQuery.js.map +1 -1
- package/dist/adapters/NapiDbAdapter.d.ts.map +1 -1
- package/dist/adapters/NapiDbAdapter.js +7 -5
- package/dist/adapters/NapiDbAdapter.js.map +1 -1
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +5 -6
- package/dist/configure.js.map +1 -1
- package/dist/decorators/entity.d.ts +1 -1
- package/dist/decorators/entity.d.ts.map +1 -1
- package/dist/decorators/entity.js +11 -3
- package/dist/decorators/entity.js.map +1 -1
- package/dist/metadata-keys.d.ts +20 -0
- package/dist/metadata-keys.d.ts.map +1 -0
- package/dist/metadata-keys.js +13 -0
- package/dist/metadata-keys.js.map +1 -0
- package/dist/query/native.d.ts +19 -0
- package/dist/query/native.d.ts.map +1 -1
- package/dist/query/native.js +77 -2
- package/dist/query/native.js.map +1 -1
- package/dist/schema/MigrationRunner.d.ts.map +1 -1
- package/dist/schema/MigrationRunner.js +5 -2
- package/dist/schema/MigrationRunner.js.map +1 -1
- package/dist/schema/Seeder.d.ts +13 -8
- package/dist/schema/Seeder.d.ts.map +1 -1
- package/dist/schema/Seeder.js +13 -8
- package/dist/schema/Seeder.js.map +1 -1
- package/dist/services/db.d.ts +7 -0
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +10 -0
- package/dist/services/db.js.map +1 -1
- package/dist/testing/Factory.d.ts +6 -7
- package/dist/testing/Factory.d.ts.map +1 -1
- package/dist/testing/Factory.js +3 -5
- package/dist/testing/Factory.js.map +1 -1
- package/dist/utils/safePath.d.ts +7 -1
- package/dist/utils/safePath.d.ts.map +1 -1
- package/dist/utils/safePath.js +24 -1
- package/dist/utils/safePath.js.map +1 -1
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
- package/src/AtlasProvider.ts +9 -1
- package/src/BaseEntity.ts +27 -12
- package/src/BaseRepository.ts +125 -118
- package/src/ModelQuery.ts +66 -17
- package/src/adapters/NapiDbAdapter.ts +11 -8
- package/src/configure.ts +5 -6
- package/src/decorators/entity.ts +12 -4
- package/src/metadata-keys.ts +22 -0
- package/src/query/native.ts +93 -2
- package/src/schema/MigrationRunner.ts +5 -2
- package/src/schema/Seeder.ts +14 -12
- package/src/services/db.ts +10 -0
- package/src/testing/Factory.ts +9 -12
- package/src/utils/safePath.ts +27 -2
package/dist/query/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE3D,MAAM,WAAW,GAA2B;IAC3C,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE,gBAAgB;IAC7B,aAAa,EAAE,iBAAiB;CAChC,CAAC;AAOF,IAAI,MAAiC,CAAC;AAEtC,IAAI,SAAkB,CAAC;AAEvB,IAAI,CAAC;IACJ,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,MAAM,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;AACF,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACZ,SAAS,GAAG,CAAC,CAAC;AACf,CAAC;AAID,kEAAkE;AAClE,IAAI,cAAc,GAAiB,QAAQ,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,OAAqB;IACpD,cAAc,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,cAAc,CAAC;AACvB,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACrC,IAAY,EACZ,UAAwB,cAAc;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACd,
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/query/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AA2C/E,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,qDAAqD;IACrD,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,eAAe;;IAM3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;gBAEF,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB;IAWF,wDAAwD;IAClD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D3B,wCAAwC;IAClC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAyB1C,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmElC,6CAA6C;IACvC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AA2C/E,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,qDAAqD;IACrD,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxD;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,4BAA4B;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,eAAe;;IAM3B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;gBAEF,EAAE,EAAE,eAAe,EACnB,OAAO,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB;IAWF,wDAAwD;IAClD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D3B,wCAAwC;IAClC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAyB1C,kCAAkC;IAC5B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmElC,6CAA6C;IACvC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA0FnC;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAMlE;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAIhE;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYhC;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CA2G/D"}
|
|
@@ -224,7 +224,10 @@ export class MigrationRunner {
|
|
|
224
224
|
table: this.#tableName,
|
|
225
225
|
select: ["name"],
|
|
226
226
|
wheres: [{ column: "batch", operator: "=", value: batch, type: "and" }],
|
|
227
|
-
|
|
227
|
+
// Reverse INSERTION order (auto-increment `id`), not name order — a
|
|
228
|
+
// date- or hash-prefixed naming scheme would otherwise roll back in
|
|
229
|
+
// the wrong sequence. `id DESC` is always the inverse of application.
|
|
230
|
+
orderBy: [{ column: "id", direction: "desc" }],
|
|
228
231
|
groupBy: [],
|
|
229
232
|
having: [],
|
|
230
233
|
limit: null,
|
|
@@ -384,7 +387,7 @@ export class MigrationRunner {
|
|
|
384
387
|
/** Load and instantiate a migration class. */
|
|
385
388
|
async #loadMigration(name) {
|
|
386
389
|
this.#assertSafeName(name);
|
|
387
|
-
assertPathInsideBase(this.#migrationsDir, `${name}.ts`, "MIGRATION_INVALID", "Migration");
|
|
390
|
+
await assertPathInsideBase(this.#migrationsDir, `${name}.ts`, "MIGRATION_INVALID", "Migration");
|
|
388
391
|
const tsPath = path.join(this.#migrationsDir, `${name}.ts`);
|
|
389
392
|
const jsPath = path.join(this.#migrationsDir, `${name}.js`);
|
|
390
393
|
const tsExists = await pathExists(tsPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAqB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACN,oBAAoB,EACpB,cAAc,EACd,UAAU,GACV,MAAM,sBAAsB,CAAC;AAG9B,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD,SAAS,yBAAyB,CAAC,IAAY;IAC9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CACnB,8BAA8B,EAC9B,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;YACvD,kGAAkG,CACnG,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,oDAAoD;AACpD,KAAK,UAAU,OAAO,CACrB,EAAmB,EACnB,OAAqB,EACrB,IAAY;IAEZ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;AACF,CAAC;AAED,KAAK,UAAU,SAAS,CACvB,EAAmB,EACnB,OAAqB,EACrB,IAAY;IAEZ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,KAAK,CAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAoCD;;GAEG;AACH,MAAM,OAAO,eAAe;IAC3B,GAAG,CAAkB;IACrB,cAAc,CAAS;IACvB,QAAQ,CAAe;IACvB,UAAU,CAAS;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YACC,EAAmB,EACnB,OAIC;QAED,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,aAAa,IAAI,qBAAqB,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC;QAC7C,IAAI,CAAC,UAAU;YACd,OAAO,EAAE,SAAS,KAAK,SAAS;gBAC/B,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,IAAI;QACT,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACtC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE;gBACR,mEAAmE;gBACnE,kEAAkE;gBAClE,gDAAgD;gBAChD;oBACC,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,SAAS;oBACf,aAAa,EAAE,IAAI;oBACnB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACX;gBACD;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,GAAG;oBACX,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACX;gBACD;oBACC,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACX;gBACD;oBACC,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;iBACX;aACD;YACD,OAAO,EAAE,EAAE;SACX,CAAC,CAAC;IACJ,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,MAAM;QACX,MAAM,OAAO,GAAG,MAAM,SAAS,CAAkB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACzB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC/C,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACjD,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAkB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;YAE9C,sEAAsE;YACtE,iEAAiE;YACjE,2BAA2B;YAC3B,MAAM,cAAc,GAAG,sBAAsB,CAC5C;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,MAAM,EAAE;oBACP,CAAC,MAAM,EAAE,IAAI,CAAC;oBACd,CAAC,OAAO,EAAE,KAAK,CAAC;iBAChB;aACD,EACD,IAAI,CAAC,QAAQ,CACb,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;YAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,UAAU,CACnB,yBAAyB,EACzB,0EAA0E,IAAI,GAAG,CACjF,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAAgB;gBACpC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAe,EAAE,CAAC,CAAC;gBAC9D,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE;aACjD,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,QAAQ;QACb,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,SAAS,CACjC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb;YACC,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAChD,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CACD,CAAC;QAEF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAEhD,MAAM,cAAc,GAAG,sBAAsB,CAC5C;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,CAAC,UAAU;gBACtB,MAAM,EAAE;oBACP,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;iBAClE;aACD,EACD,IAAI,CAAC,QAAQ,CACb,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;YAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,UAAU,CACnB,yBAAyB,EACzB,0EAA0E,MAAM,CAAC,IAAI,GAAG,CACxF,CAAC;YACH,CAAC;YACD,MAAM,eAAe,GAAgB;gBACpC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAe,EAAE,CAAC,CAAC;gBAC9D,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE;aACjD,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CACf,KAA2B,EAC3B,aAAqB;QAErB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO;QACR,CAAC;QACD,uEAAuE;QACvE,mDAAmD;QACnD,OAAO,CAAC,IAAI,CACX,wEAAwE,aAAa,sBAAsB,CAC3G,CAAC;QACF,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACV,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,sDAAsD;QACtD,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACX,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAkB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAC3B,CAAC;QAEF,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,qFAAqF;QACrF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAkB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;YACtE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,mBAAmB,CAAC;YAC7B,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACV,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,OAAO,OAAO;iBACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACrD,IAAI,EAAE;iBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,iEAAiE;YACjE,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAChE,MAAM,GAAG,CAAC;QACX,CAAC;IACF,CAAC;IAED,2EAA2E;IAC3E,eAAe,CAAC,IAAY;QAC3B,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,cAAc,CAAC,IAAY;QAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,oBAAoB,CACnB,IAAI,CAAC,cAAc,EACnB,GAAG,IAAI,KAAK,EACZ,mBAAmB,EACnB,WAAW,CACX,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,UAAU,CACnB,qBAAqB,EACrB,6BAA6B,IAAI,EAAE,CACnC,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YAC7D,MAAM,IAAI,UAAU,CACnB,mBAAmB,EACnB,aAAa,IAAI,8BAA8B,CAC/C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../src/schema/MigrationRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/Seeder.d.ts
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Seeder — populate the database with default / reference / test data.
|
|
3
3
|
*
|
|
4
|
-
* The canonical pattern:
|
|
4
|
+
* The canonical pattern (idempotent via `upsert`, keyed on a unique column):
|
|
5
5
|
*
|
|
6
6
|
* export default class CountrySeeder extends BaseSeeder {
|
|
7
7
|
* async run() {
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* const countries = new BaseRepository(Country, this.db)
|
|
9
|
+
* // Conflict on isoCode → update name. Safe to re-run.
|
|
10
|
+
* await countries.upsert(
|
|
11
|
+
* [
|
|
12
|
+
* { isoCode: 'FR', name: 'France' },
|
|
13
|
+
* { isoCode: 'IN', name: 'India' },
|
|
14
|
+
* ],
|
|
15
|
+
* ['isoCode'],
|
|
16
|
+
* ['name'],
|
|
17
|
+
* )
|
|
13
18
|
* }
|
|
14
19
|
* }
|
|
15
20
|
*
|
|
@@ -25,7 +30,7 @@ import type { DatabaseConnection } from "../BaseRepository.js";
|
|
|
25
30
|
export declare abstract class BaseSeeder {
|
|
26
31
|
protected db: DatabaseConnection;
|
|
27
32
|
constructor(db: DatabaseConnection);
|
|
28
|
-
/** The seeder body. Should be idempotent — `
|
|
33
|
+
/** The seeder body. Should be idempotent — `repo.upsert(...)` is the recommended pattern. */
|
|
29
34
|
abstract run(): Promise<void> | void;
|
|
30
35
|
}
|
|
31
36
|
/** Legacy alias kept for code using the previous API. */
|
|
@@ -35,7 +40,7 @@ export declare const Seeder: typeof BaseSeeder;
|
|
|
35
40
|
* sequentially so ordering is deterministic and side effects are visible to
|
|
36
41
|
* subsequent seeders.
|
|
37
42
|
*/
|
|
38
|
-
export declare function runSeeders(seeders: BaseSeeder[]
|
|
43
|
+
export declare function runSeeders(seeders: BaseSeeder[]): Promise<void>;
|
|
39
44
|
/**
|
|
40
45
|
* Discover seeder files under `dir`, import them in alphabetical order, build
|
|
41
46
|
* instances with the given DB connection, and run them sequentially.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Seeder.d.ts","sourceRoot":"","sources":["../../src/schema/Seeder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Seeder.d.ts","sourceRoot":"","sources":["../../src/schema/Seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ/D;;;;;GAKG;AACH,8BAAsB,UAAU;IAC/B,SAAS,CAAC,EAAE,EAAE,kBAAkB,CAAC;gBAErB,EAAE,EAAE,kBAAkB;IAIlC,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CACpC;AAED,yDAAyD;AACzD,eAAO,MAAM,MAAM,mBAAa,CAAC;AAEjC;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACvC,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,kBAAkB,EACtB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAqDnB"}
|
package/dist/schema/Seeder.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Seeder — populate the database with default / reference / test data.
|
|
3
3
|
*
|
|
4
|
-
* The canonical pattern:
|
|
4
|
+
* The canonical pattern (idempotent via `upsert`, keyed on a unique column):
|
|
5
5
|
*
|
|
6
6
|
* export default class CountrySeeder extends BaseSeeder {
|
|
7
7
|
* async run() {
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* const countries = new BaseRepository(Country, this.db)
|
|
9
|
+
* // Conflict on isoCode → update name. Safe to re-run.
|
|
10
|
+
* await countries.upsert(
|
|
11
|
+
* [
|
|
12
|
+
* { isoCode: 'FR', name: 'France' },
|
|
13
|
+
* { isoCode: 'IN', name: 'India' },
|
|
14
|
+
* ],
|
|
15
|
+
* ['isoCode'],
|
|
16
|
+
* ['name'],
|
|
17
|
+
* )
|
|
13
18
|
* }
|
|
14
19
|
* }
|
|
15
20
|
*
|
|
@@ -38,7 +43,7 @@ export const Seeder = BaseSeeder;
|
|
|
38
43
|
* sequentially so ordering is deterministic and side effects are visible to
|
|
39
44
|
* subsequent seeders.
|
|
40
45
|
*/
|
|
41
|
-
export async function runSeeders(seeders
|
|
46
|
+
export async function runSeeders(seeders) {
|
|
42
47
|
for (const seeder of seeders) {
|
|
43
48
|
await seeder.run();
|
|
44
49
|
}
|
|
@@ -70,7 +75,7 @@ export async function runSeederDirectory(dir, db, options) {
|
|
|
70
75
|
const executed = [];
|
|
71
76
|
for (const file of selected) {
|
|
72
77
|
assertSafeName(file, "E_SEEDER_INVALID", "seeder");
|
|
73
|
-
const resolved = assertPathInsideBase(dir, file, "E_SEEDER_INVALID_PATH", "Seeder");
|
|
78
|
+
const resolved = await assertPathInsideBase(dir, file, "E_SEEDER_INVALID_PATH", "Seeder");
|
|
74
79
|
// `pathToFileURL` is required on Windows where bare `C:\…` paths
|
|
75
80
|
// trip ESM's ERR_UNSUPPORTED_ESM_URL_SCHEME on dynamic import.
|
|
76
81
|
const mod = await import(pathToFileURL(resolved).href);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Seeder.js","sourceRoot":"","sources":["../../src/schema/Seeder.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Seeder.js","sourceRoot":"","sources":["../../src/schema/Seeder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACN,oBAAoB,EACpB,cAAc,EACd,UAAU,GACV,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,OAAgB,UAAU;IACrB,EAAE,CAAqB;IAEjC,YAAY,EAAsB;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,CAAC;CAID;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAqB;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,GAAW,EACX,EAAsB,EACtB,OAAuC;IAEvC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,UAAU,CACnB,wBAAwB,EACxB,+BAA+B,GAAG,EAAE,EACpC;YACC,IAAI,EAAE,uEAAuE;SAC7E,CACD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACvC,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACvE;SACA,IAAI,EAAE,CAAC;IAET,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK;QAC9B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CACpD;QACF,CAAC,CAAC,QAAQ,CAAC;IAEZ,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAC1C,GAAG,EACH,IAAI,EACJ,uBAAuB,EACvB,QAAQ,CACR,CAAC;QAEF,iEAAiE;QACjE,+DAA+D;QAC/D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,UAAU,CACnB,kBAAkB,EAClB,UAAU,IAAI,mDAAmD,EACjE;gBACC,IAAI,EAAE,uFAAuF;aAC7F,CACD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAe,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
package/dist/services/db.d.ts
CHANGED
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
import type { AsyncDatabaseConnection } from "../adapters/NapiDbAdapter.js";
|
|
16
16
|
/** @internal Bind the singleton (called by AtlasProvider). */
|
|
17
17
|
export declare function setDb(connection: AsyncDatabaseConnection): void;
|
|
18
|
+
/**
|
|
19
|
+
* @internal Unbind the singleton IF it still points at `connection` (called by
|
|
20
|
+
* `AtlasProvider.shutdown()`). Ownership-guarded: when a second provider rebound
|
|
21
|
+
* the singleton, the older provider's shutdown must not clear the newer binding.
|
|
22
|
+
* Without this, `db.*` after shutdown would dereference a closed connection.
|
|
23
|
+
*/
|
|
24
|
+
export declare function clearDb(connection: AsyncDatabaseConnection): void;
|
|
18
25
|
/** @internal Read the singleton (or `undefined` pre-boot). */
|
|
19
26
|
export declare function getDb(): AsyncDatabaseConnection | undefined;
|
|
20
27
|
declare const db: AsyncDatabaseConnection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAI5E,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,KAAK,IAAI,uBAAuB,GAAG,SAAS,CAE3D;AAED,QAAA,MAAM,EAAE,EAAE,uBAaR,CAAC;AAEH,eAAe,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAI5E,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAEjE;AAED,8DAA8D;AAC9D,wBAAgB,KAAK,IAAI,uBAAuB,GAAG,SAAS,CAE3D;AAED,QAAA,MAAM,EAAE,EAAE,uBAaR,CAAC;AAEH,eAAe,EAAE,CAAC"}
|
package/dist/services/db.js
CHANGED
|
@@ -17,6 +17,16 @@ let instance;
|
|
|
17
17
|
export function setDb(connection) {
|
|
18
18
|
instance = connection;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal Unbind the singleton IF it still points at `connection` (called by
|
|
22
|
+
* `AtlasProvider.shutdown()`). Ownership-guarded: when a second provider rebound
|
|
23
|
+
* the singleton, the older provider's shutdown must not clear the newer binding.
|
|
24
|
+
* Without this, `db.*` after shutdown would dereference a closed connection.
|
|
25
|
+
*/
|
|
26
|
+
export function clearDb(connection) {
|
|
27
|
+
if (instance === connection)
|
|
28
|
+
instance = undefined;
|
|
29
|
+
}
|
|
20
30
|
/** @internal Read the singleton (or `undefined` pre-boot). */
|
|
21
31
|
export function getDb() {
|
|
22
32
|
return instance;
|
package/dist/services/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,IAAI,QAA6C,CAAC;AAElD,8DAA8D;AAC9D,MAAM,UAAU,KAAK,CAAC,UAAmC;IACxD,QAAQ,GAAG,UAAU,CAAC;AACvB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,KAAK;IACpB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,EAAE,GAA4B,IAAI,KAAK,CAAC,EAA6B,EAAE;IAC5E,GAAG,CAAC,OAAO,EAAE,IAAI;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACd,iEAAiE;gBAChE,gEAAgE;gBAChE,+DAA+D;gBAC/D,aAAa,CACd,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/services/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,IAAI,QAA6C,CAAC;AAElD,8DAA8D;AAC9D,MAAM,UAAU,KAAK,CAAC,UAAmC;IACxD,QAAQ,GAAG,UAAU,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,UAAmC;IAC1D,IAAI,QAAQ,KAAK,UAAU;QAAE,QAAQ,GAAG,SAAS,CAAC;AACnD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,KAAK;IACpB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,EAAE,GAA4B,IAAI,KAAK,CAAC,EAA6B,EAAE;IAC5E,GAAG,CAAC,OAAO,EAAE,IAAI;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACd,iEAAiE;gBAChE,gEAAgE;gBAChE,+DAA+D;gBAC/D,aAAa,CACd,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,EAAE,CAAC"}
|
|
@@ -21,15 +21,14 @@ type StateFn<D> = (data: D) => void;
|
|
|
21
21
|
export interface FactoryBuilder<T extends BaseEntity> {
|
|
22
22
|
/** Override specific fields for the next call (reset after consumption). */
|
|
23
23
|
merge(overrides: Partial<Record<string, unknown>>): FactoryBuilder<T>;
|
|
24
|
-
/**
|
|
25
|
-
* Declare a named variation of this factory. States are stored on the
|
|
26
|
-
* factory itself and don't mutate the caller — `apply()` returns a child
|
|
27
|
-
* builder with the state active.
|
|
28
|
-
*/
|
|
24
|
+
/** Declare a named variation of this factory, stored on the factory's state map. */
|
|
29
25
|
state(name: string, fn: StateFn<Record<string, unknown>>): FactoryBuilder<T>;
|
|
30
26
|
/**
|
|
31
|
-
* Activate one or more declared states for the
|
|
32
|
-
* compose (all
|
|
27
|
+
* Activate one or more declared states for the NEXT build. Multiple applies
|
|
28
|
+
* compose (all fire, in order). NOTE: this mutates the builder's shared
|
|
29
|
+
* pending state and returns the SAME builder for chaining — there is no
|
|
30
|
+
* isolated child builder. The pending set is reset after each make/create
|
|
31
|
+
* (audit 2026-06-13). `merge()` behaves the same way.
|
|
33
32
|
*/
|
|
34
33
|
apply(...stateNames: string[]): FactoryBuilder<T>;
|
|
35
34
|
/** Create and persist a single entity (fires lifecycle hooks via `repo.create`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/testing/Factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,KAAK,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,CAAC;AAE3D,mEAAmE;AACnE,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpC,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU;IACnD,4EAA4E;IAC5E,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtE
|
|
1
|
+
{"version":3,"file":"Factory.d.ts","sourceRoot":"","sources":["../../src/testing/Factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,KAAK,iBAAiB,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,CAAC;AAE3D,mEAAmE;AACnE,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAEpC,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,UAAU;IACnD,4EAA4E;IAC5E,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtE,oFAAoF;IACpF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAElD,oFAAoF;IACpF,MAAM,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3C,kEAAkE;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAEhE,oFAAoF;IACpF,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAEnD;;;OAGG;IACH,WAAW,IAAI,CAAC,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,UAAU,EAC3C,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,EACjC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,cAAc,CAAC,CAAC,CAAC,CA0FnB"}
|
package/dist/testing/Factory.js
CHANGED
|
@@ -64,13 +64,11 @@ export function factory(entityClass, defaults) {
|
|
|
64
64
|
return data;
|
|
65
65
|
},
|
|
66
66
|
makeMany(count) {
|
|
67
|
-
// Re-evaluate defaults for each row so `Date.now()` / faker generate
|
|
67
|
+
// Re-evaluate defaults for each row so `Date.now()` / faker generate
|
|
68
|
+
// distinct values. `buildData()` reads (never mutates) the pending
|
|
69
|
+
// overrides/states, so they stay stable across iterations on their own.
|
|
68
70
|
const rows = [];
|
|
69
|
-
const capturedOverrides = pendingOverrides;
|
|
70
|
-
const capturedStates = pendingStates;
|
|
71
71
|
for (let i = 0; i < count; i++) {
|
|
72
|
-
pendingOverrides = capturedOverrides;
|
|
73
|
-
pendingStates = capturedStates;
|
|
74
72
|
rows.push(buildData());
|
|
75
73
|
}
|
|
76
74
|
resetPending();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/testing/Factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,cAAc,EAA2B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Factory.js","sourceRoot":"","sources":["../../src/testing/Factory.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/safePath.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export declare function assertSafeName(name: string, errorCode: string, kind: st
|
|
|
17
17
|
* Resolve `fileName` inside `baseDir` and throw if the resulting path escapes
|
|
18
18
|
* the base — guards against symlink / `../` traversal attacks when loading
|
|
19
19
|
* migration or seeder files dynamically.
|
|
20
|
+
*
|
|
21
|
+
* Two layers: (1) a logical `path.resolve` check that catches `../` walks, and
|
|
22
|
+
* (2) a `realpath` check that follows symlinks — a symlink FILE sitting inside
|
|
23
|
+
* the base but pointing at `/etc/passwd` passes the logical check yet is caught
|
|
24
|
+
* here. When the file doesn't exist yet (ENOENT), only the logical check
|
|
25
|
+
* applies and the caller's own existence check produces the not-found error.
|
|
20
26
|
*/
|
|
21
|
-
export declare function assertPathInsideBase(baseDir: string, fileName: string, errorCode: string, kind: string): string
|
|
27
|
+
export declare function assertPathInsideBase(baseDir: string, fileName: string, errorCode: string, kind: string): Promise<string>;
|
|
22
28
|
//# sourceMappingURL=safePath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safePath.d.ts","sourceRoot":"","sources":["../../src/utils/safePath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,uGAAuG;AACvG,wBAAsB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACV,IAAI,CAIN;AAED
|
|
1
|
+
{"version":3,"file":"safePath.d.ts","sourceRoot":"","sources":["../../src/utils/safePath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,uGAAuG;AACvG,wBAAsB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACV,IAAI,CAIN;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CA6BjB"}
|
package/dist/utils/safePath.js
CHANGED
|
@@ -34,13 +34,36 @@ export function assertSafeName(name, errorCode, kind) {
|
|
|
34
34
|
* Resolve `fileName` inside `baseDir` and throw if the resulting path escapes
|
|
35
35
|
* the base — guards against symlink / `../` traversal attacks when loading
|
|
36
36
|
* migration or seeder files dynamically.
|
|
37
|
+
*
|
|
38
|
+
* Two layers: (1) a logical `path.resolve` check that catches `../` walks, and
|
|
39
|
+
* (2) a `realpath` check that follows symlinks — a symlink FILE sitting inside
|
|
40
|
+
* the base but pointing at `/etc/passwd` passes the logical check yet is caught
|
|
41
|
+
* here. When the file doesn't exist yet (ENOENT), only the logical check
|
|
42
|
+
* applies and the caller's own existence check produces the not-found error.
|
|
37
43
|
*/
|
|
38
|
-
export function assertPathInsideBase(baseDir, fileName, errorCode, kind) {
|
|
44
|
+
export async function assertPathInsideBase(baseDir, fileName, errorCode, kind) {
|
|
39
45
|
const resolved = path.resolve(baseDir, fileName);
|
|
40
46
|
const base = path.resolve(baseDir);
|
|
41
47
|
if (!resolved.startsWith(base + path.sep) && resolved !== base) {
|
|
42
48
|
throw new AtlasError(errorCode, `${kind} path escapes directory: ${fileName}`);
|
|
43
49
|
}
|
|
50
|
+
// Symlink-aware check: resolve real targets and re-verify containment.
|
|
51
|
+
try {
|
|
52
|
+
const realBase = await fsp.realpath(base);
|
|
53
|
+
const realResolved = await fsp.realpath(resolved);
|
|
54
|
+
if (!realResolved.startsWith(realBase + path.sep) &&
|
|
55
|
+
realResolved !== realBase) {
|
|
56
|
+
throw new AtlasError(errorCode, `${kind} path escapes directory via symlink: ${fileName}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
// File not yet created — the logical check above stands; let the caller's
|
|
61
|
+
// existence check report the missing file. Re-throw real traversal errors.
|
|
62
|
+
if (err instanceof AtlasError)
|
|
63
|
+
throw err;
|
|
64
|
+
if (err.code !== "ENOENT")
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
44
67
|
return resolved;
|
|
45
68
|
}
|
|
46
69
|
//# sourceMappingURL=safePath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safePath.js","sourceRoot":"","sources":["../../src/utils/safePath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAS;IACzC,IAAI,CAAC;QACJ,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAY,EACZ,SAAiB,EACjB,IAAY;IAEZ,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,WAAW,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"safePath.js","sourceRoot":"","sources":["../../src/utils/safePath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAS;IACzC,IAAI,CAAC;QACJ,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAY,EACZ,SAAiB,EACjB,IAAY;IAEZ,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,WAAW,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,IAAY;IAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,UAAU,CACnB,SAAS,EACT,GAAG,IAAI,4BAA4B,QAAQ,EAAE,CAC7C,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClD,IACC,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YAC7C,YAAY,KAAK,QAAQ,EACxB,CAAC;YACF,MAAM,IAAI,UAAU,CACnB,SAAS,EACT,GAAG,IAAI,wCAAwC,QAAQ,EAAE,CACzD,CAAC;QACH,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,GAAG,YAAY,UAAU;YAAE,MAAM,GAAG,CAAC;QACzC,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;IACjE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
package/index.darwin-arm64.node
CHANGED
|
Binary file
|
package/index.darwin-x64.node
CHANGED
|
Binary file
|
|
Binary file
|
package/index.linux-x64-gnu.node
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/src/AtlasProvider.ts
CHANGED
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
type AsyncDatabaseConnection,
|
|
26
26
|
createNapiConnection,
|
|
27
27
|
} from "./adapters/NapiDbAdapter.js";
|
|
28
|
-
import { setAtlasDialect } from "./query/native.js";
|
|
28
|
+
import { clearCastRegistry, setAtlasDialect } from "./query/native.js";
|
|
29
29
|
import {
|
|
30
30
|
type DatabaseAdapter,
|
|
31
31
|
MigrationRunner,
|
|
@@ -221,6 +221,14 @@ export default class AtlasProvider {
|
|
|
221
221
|
const named = [...this.#connections.entries()];
|
|
222
222
|
const results = await Promise.allSettled(named.map(([, c]) => c.close()));
|
|
223
223
|
this.#connections.clear();
|
|
224
|
+
|
|
225
|
+
// Release the module-level singletons this provider populated at boot so a
|
|
226
|
+
// re-boot starts clean and `db.*` can't dereference a now-closed handle.
|
|
227
|
+
// `clearDb` is ownership-guarded, so clearing every connection only unbinds
|
|
228
|
+
// the one still owning the singleton.
|
|
229
|
+
const { clearDb } = await import("./services/db.js");
|
|
230
|
+
for (const [, conn] of named) clearDb(conn);
|
|
231
|
+
clearCastRegistry();
|
|
224
232
|
const errors = results
|
|
225
233
|
.map((r, i) =>
|
|
226
234
|
r.status === "rejected" ? { name: named[i][0], error: r.reason } : null,
|
package/src/BaseEntity.ts
CHANGED
|
@@ -11,18 +11,23 @@
|
|
|
11
11
|
* @implements FR29, FR35, stories 32.1 through 32.5
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
import { getRelationMetadata } from "./decorators/entity.js";
|
|
14
15
|
import { MassAssignmentError } from "./errors.js";
|
|
16
|
+
import {
|
|
17
|
+
COLUMN_SERIALIZE_KEY,
|
|
18
|
+
COMPUTED_KEY,
|
|
19
|
+
type ColumnSerializeConfig,
|
|
20
|
+
} from "./metadata-keys.js";
|
|
15
21
|
|
|
16
22
|
export interface DomainEvent {
|
|
17
23
|
name: string;
|
|
18
24
|
data: Record<string, unknown>;
|
|
19
25
|
}
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export const COLUMN_SERIALIZE_KEY = Symbol.for("atlas:columnSerialize");
|
|
27
|
+
// COMPUTED_KEY / COLUMN_SERIALIZE_KEY / ColumnSerializeConfig moved to
|
|
28
|
+
// ./metadata-keys.js to break the BaseEntity ↔ entity-decorator runtime cycle
|
|
29
|
+
// (fallow 2026-06-14). Re-exported here for backward compatibility.
|
|
30
|
+
export { COLUMN_SERIALIZE_KEY, COMPUTED_KEY };
|
|
26
31
|
|
|
27
32
|
/** Symbol property key used by entities to back-reference their hydrating repo. */
|
|
28
33
|
export const REPO_REF = Symbol.for("atlas:repoRef");
|
|
@@ -115,13 +120,7 @@ export type RelationProxy =
|
|
|
115
120
|
| BelongsToRelationProxy
|
|
116
121
|
| ManyToManyRelationProxy;
|
|
117
122
|
|
|
118
|
-
|
|
119
|
-
export interface ColumnSerializeConfig {
|
|
120
|
-
/** Rename this column at toJSON time (e.g. `password` → `passwordHash`). Null = hidden. */
|
|
121
|
-
serializeAs?: string | null;
|
|
122
|
-
/** Transform function applied to the value at toJSON time. */
|
|
123
|
-
serialize?: (value: unknown) => unknown;
|
|
124
|
-
}
|
|
123
|
+
export type { ColumnSerializeConfig };
|
|
125
124
|
|
|
126
125
|
/**
|
|
127
126
|
* Internal reserved keys on BaseEntity that must never be treated as database
|
|
@@ -495,6 +494,13 @@ export class BaseEntity {
|
|
|
495
494
|
ctor.visible && ctor.visible.length > 0 ? new Set(ctor.visible) : null;
|
|
496
495
|
|
|
497
496
|
const serializeConfig = getColumnSerializeConfig(ctor);
|
|
497
|
+
// Relation `serializeAs` overrides — a preloaded relation is a plain
|
|
498
|
+
// property on the instance, so it shows up in `Object.keys` below. Without
|
|
499
|
+
// this map the `serializeAs` declared on @HasOne/@HasMany/etc. was silently
|
|
500
|
+
// ignored (the relation always serialized under its property name).
|
|
501
|
+
const relByKey = new Map(
|
|
502
|
+
getRelationMetadata(ctor).map((r) => [r.propertyKey, r]),
|
|
503
|
+
);
|
|
498
504
|
const result: Record<string, unknown> = {};
|
|
499
505
|
|
|
500
506
|
// Regular columns (respecting hidden/visible + serialize overrides)
|
|
@@ -503,6 +509,15 @@ export class BaseEntity {
|
|
|
503
509
|
if (visible && !visible.has(key)) continue;
|
|
504
510
|
if (hidden.has(key)) continue;
|
|
505
511
|
|
|
512
|
+
// Preloaded relation: honour its `serializeAs` (rename, or `null` hides
|
|
513
|
+
// it from the JSON). The nested entity serializes via its own toJSON.
|
|
514
|
+
const rel = relByKey.get(key);
|
|
515
|
+
if (rel) {
|
|
516
|
+
if (rel.serializeAs === null) continue;
|
|
517
|
+
result[rel.serializeAs ?? key] = this[key];
|
|
518
|
+
continue;
|
|
519
|
+
}
|
|
520
|
+
|
|
506
521
|
const cfg = serializeConfig[key];
|
|
507
522
|
if (cfg?.serializeAs === null) continue; // explicit hide
|
|
508
523
|
|