@proteinjs/db 1.42.0 → 1.44.0

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 (41) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/generated/test/index.d.ts.map +1 -1
  5. package/dist/generated/test/index.js +3 -1
  6. package/dist/generated/test/index.js.map +1 -1
  7. package/dist/src/Table.d.ts +50 -1
  8. package/dist/src/Table.d.ts.map +1 -1
  9. package/dist/src/Table.js.map +1 -1
  10. package/dist/src/source/SourceRecord.d.ts +2 -3
  11. package/dist/src/source/SourceRecord.d.ts.map +1 -1
  12. package/dist/src/source/SourceRecord.js +16 -2
  13. package/dist/src/source/SourceRecord.js.map +1 -1
  14. package/dist/src/source/SourceRecordLoader.d.ts +41 -0
  15. package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
  16. package/dist/src/source/SourceRecordLoader.js +153 -57
  17. package/dist/src/source/SourceRecordLoader.js.map +1 -1
  18. package/dist/src/tables/MigrationTable.d.ts +22 -4
  19. package/dist/src/tables/MigrationTable.d.ts.map +1 -1
  20. package/dist/src/tables/MigrationTable.js +38 -16
  21. package/dist/src/tables/MigrationTable.js.map +1 -1
  22. package/dist/test/SourceRecordLoader.test.js +151 -0
  23. package/dist/test/SourceRecordLoader.test.js.map +1 -1
  24. package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
  25. package/dist/test/reusable/SourceRecordSyncTests.js +234 -0
  26. package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
  27. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts +17 -0
  28. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts.map +1 -1
  29. package/dist/test/util/tables/sourceRecordSyncTestTables.js +26 -1
  30. package/dist/test/util/tables/sourceRecordSyncTestTables.js.map +1 -1
  31. package/generated/index.ts +1 -1
  32. package/generated/test/index.ts +3 -1
  33. package/jest.config.js +8 -0
  34. package/package.json +2 -2
  35. package/src/Table.ts +51 -1
  36. package/src/source/SourceRecord.ts +17 -4
  37. package/src/source/SourceRecordLoader.ts +110 -4
  38. package/src/tables/MigrationTable.ts +43 -16
  39. package/test/SourceRecordLoader.test.ts +90 -0
  40. package/test/reusable/SourceRecordSyncTests.ts +141 -0
  41. package/test/util/tables/sourceRecordSyncTestTables.ts +25 -0
@@ -60,9 +60,26 @@ export declare class InheritedStampTable extends Table<InheritedStampRecord> {
60
60
  name: string;
61
61
  columns: Table<InheritedStampRecord>['columns'];
62
62
  }
63
+ export interface SyncDerivedNameRecord extends SourceRecord {
64
+ /** Derived by the sync from the DECLARATION (its loader's name) — never typed into the record. */
65
+ name?: string | null;
66
+ email: string;
67
+ }
68
+ /**
69
+ * The migration-ledger shape: a `name` column the sync fills from the declaration itself
70
+ * (`sourceRecordOptions.fromDeclaration` — the declaring loader's class name), kept on removal
71
+ * like the ledger. The options literal is cast so the suite compiles red-first against a
72
+ * loader that does not yet know the option.
73
+ */
74
+ export declare class SyncDerivedNameTable extends Table<SyncDerivedNameRecord> {
75
+ name: string;
76
+ columns: Table<SyncDerivedNameRecord>['columns'];
77
+ sourceRecordOptions: import("@proteinjs/db").SourceRecordOptions<SyncDerivedNameRecord>;
78
+ }
63
79
  export declare const sourceRecordSyncTestTables: {
64
80
  SyncMachineAccount: Table<SyncMachineAccount>;
65
81
  SyncDefaultPolicy: Table<SyncDefaultPolicyRecord>;
66
82
  InheritedStamp: Table<InheritedStampRecord>;
83
+ SyncDerivedName: Table<SyncDerivedNameRecord>;
67
84
  };
68
85
  //# sourceMappingURL=sourceRecordSyncTestTables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRecordSyncTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,QAAQ,EAClB,YAAY,EAEZ,KAAK,EAGN,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kGAAkG;AAClG,qBAAa,uBAAwB,SAAQ,KAAK,CAAC,kBAAkB,CAAC;IACpE,IAAI,SAAkC;IACtC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAO1C;IACH,mBAAmB,kEAGmC;CACvD;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qFAAqF;AACrF,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,uBAAuB,CAAC;IACxE,IAAI,SAAiC;IACrC,OAAO,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAG/C;CACJ;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAChE,IAAI,SAA4B;IAChC,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAE3C;CACJ;AAED,6FAA6F;AAC7F,qBAAa,6BAA8B,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAC3E,IAAI,SAA4B;IAChC,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAE3C;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,oBAAoB,CAAC;IAClE,IAAI,SAAkC;IACtC,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAE5C;CACJ;AAED,eAAO,MAAM,0BAA0B;;;;CAItC,CAAC"}
1
+ {"version":3,"file":"sourceRecordSyncTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,QAAQ,EAClB,YAAY,EAEZ,KAAK,EAGN,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kGAAkG;AAClG,qBAAa,uBAAwB,SAAQ,KAAK,CAAC,kBAAkB,CAAC;IACpE,IAAI,SAAkC;IACtC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAO1C;IACH,mBAAmB,kEAGmC;CACvD;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qFAAqF;AACrF,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,uBAAuB,CAAC;IACxE,IAAI,SAAiC;IACrC,OAAO,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAG/C;CACJ;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAChE,IAAI,SAA4B;IAChC,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAE3C;CACJ;AAED,6FAA6F;AAC7F,qBAAa,6BAA8B,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAC3E,IAAI,SAA4B;IAChC,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAE3C;CACJ;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,oBAAoB,CAAC;IAClE,IAAI,SAAkC;IACtC,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAE5C;CACJ;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,kGAAkG;IAClG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,qBAAqB,CAAC;IACpE,IAAI,SAA+B;IACnC,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAG7C;IACH,mBAAmB,qEAGsC;CAC1D;AAED,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC"}
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  };
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.sourceRecordSyncTestTables = exports.InheritedStampTable = exports.DupePreflightUniqueEmailTable = exports.DupePreflightTable = exports.SyncDefaultPolicyTable = exports.SyncMachineAccountTable = void 0;
18
+ exports.sourceRecordSyncTestTables = exports.SyncDerivedNameTable = exports.InheritedStampTable = exports.DupePreflightUniqueEmailTable = exports.DupePreflightTable = exports.SyncDefaultPolicyTable = exports.SyncMachineAccountTable = void 0;
19
19
  var db_1 = require("@proteinjs/db");
20
20
  /** The machine-account shape: natural-key adoption by email, removed rows flagged not deleted. */
21
21
  var SyncMachineAccountTable = /** @class */ (function (_super) {
@@ -104,9 +104,34 @@ var InheritedStampTable = /** @class */ (function (_super) {
104
104
  return InheritedStampTable;
105
105
  }(db_1.Table));
106
106
  exports.InheritedStampTable = InheritedStampTable;
107
+ /**
108
+ * The migration-ledger shape: a `name` column the sync fills from the declaration itself
109
+ * (`sourceRecordOptions.fromDeclaration` — the declaring loader's class name), kept on removal
110
+ * like the ledger. The options literal is cast so the suite compiles red-first against a
111
+ * loader that does not yet know the option.
112
+ */
113
+ var SyncDerivedNameTable = /** @class */ (function (_super) {
114
+ __extends(SyncDerivedNameTable, _super);
115
+ function SyncDerivedNameTable() {
116
+ var _this = _super !== null && _super.apply(this, arguments) || this;
117
+ _this.name = 'db_test_sync_derived_name';
118
+ _this.columns = (0, db_1.withSourceRecordColumns)({
119
+ name: new db_1.StringColumn('name'),
120
+ email: new db_1.StringColumn('email'),
121
+ });
122
+ _this.sourceRecordOptions = {
123
+ onSourceRemoved: 'keep',
124
+ fromDeclaration: function (declaration) { return ({ name: declaration.name }); },
125
+ };
126
+ return _this;
127
+ }
128
+ return SyncDerivedNameTable;
129
+ }(db_1.Table));
130
+ exports.SyncDerivedNameTable = SyncDerivedNameTable;
107
131
  exports.sourceRecordSyncTestTables = {
108
132
  SyncMachineAccount: new SyncMachineAccountTable(),
109
133
  SyncDefaultPolicy: new SyncDefaultPolicyTable(),
110
134
  InheritedStamp: new InheritedStampTable(),
135
+ SyncDerivedName: new SyncDerivedNameTable(),
111
136
  };
112
137
  //# sourceMappingURL=sourceRecordSyncTestTables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRecordSyncTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oCAOuB;AAsBvB,kGAAkG;AAClG;IAA6C,2CAAyB;IAAtE;QAAA,qEAcC;QAbC,UAAI,GAAG,8BAA8B,CAAC;QACtC,aAAO,GAAyC,IAAA,4BAAuB,EAAqB;YAC1F,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE;gBAC/B,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,2CAA2C,EAAE;aACjF,CAAC;YACF,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;YAC7C,MAAM,EAAE,IAAI,iBAAY,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,yBAAmB,GAAG;YACpB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;SACH,CAAC;;IACxD,CAAC;IAAD,8BAAC;AAAD,CAAC,AAdD,CAA6C,UAAK,GAcjD;AAdY,0DAAuB;AAqBpC,qFAAqF;AACrF;IAA4C,0CAA8B;IAA1E;QAAA,qEAMC;QALC,UAAI,GAAG,6BAA6B,CAAC;QACrC,aAAO,GAA8C,IAAA,4BAAuB,EAA0B;YACpG,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;;IACL,CAAC;IAAD,6BAAC;AAAD,CAAC,AAND,CAA4C,UAAK,GAMhD;AANY,wDAAsB;AAYnC,qFAAqF;AACrF;IAAwC,sCAA0B;IAAlE;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAA0C,IAAA,sBAAiB,EAAsB;YACtF,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,yBAAC;AAAD,CAAC,AALD,CAAwC,UAAK,GAK5C;AALY,gDAAkB;AAO/B,6FAA6F;AAC7F;IAAmD,iDAA0B;IAA7E;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAA0C,IAAA,sBAAiB,EAAsB;YACtF,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,CAAC;SACjH,CAAC,CAAC;;IACL,CAAC;IAAD,oCAAC;AAAD,CAAC,AALD,CAAmD,UAAK,GAKvD;AALY,sEAA6B;AAW1C;;;;;;;GAOG;AACH;IAAyC,uCAA2B;IAApE;QAAA,qEAKC;QAJC,UAAI,GAAG,8BAA8B,CAAC;QACtC,aAAO,GAA2C,IAAA,4BAAuB,EAAuB;YAC9F,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,0BAAC;AAAD,CAAC,AALD,CAAyC,UAAK,GAK7C;AALY,kDAAmB;AAOnB,QAAA,0BAA0B,GAAG;IACxC,kBAAkB,EAAE,IAAI,uBAAuB,EAA+B;IAC9E,iBAAiB,EAAE,IAAI,sBAAsB,EAAoC;IACjF,cAAc,EAAE,IAAI,mBAAmB,EAAiC;CACzE,CAAC"}
1
+ {"version":3,"file":"sourceRecordSyncTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oCAOuB;AAsBvB,kGAAkG;AAClG;IAA6C,2CAAyB;IAAtE;QAAA,qEAcC;QAbC,UAAI,GAAG,8BAA8B,CAAC;QACtC,aAAO,GAAyC,IAAA,4BAAuB,EAAqB;YAC1F,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE;gBAC/B,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,2CAA2C,EAAE;aACjF,CAAC;YACF,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;YAC7C,MAAM,EAAE,IAAI,iBAAY,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,yBAAmB,GAAG;YACpB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;SACH,CAAC;;IACxD,CAAC;IAAD,8BAAC;AAAD,CAAC,AAdD,CAA6C,UAAK,GAcjD;AAdY,0DAAuB;AAqBpC,qFAAqF;AACrF;IAA4C,0CAA8B;IAA1E;QAAA,qEAMC;QALC,UAAI,GAAG,6BAA6B,CAAC;QACrC,aAAO,GAA8C,IAAA,4BAAuB,EAA0B;YACpG,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;;IACL,CAAC;IAAD,6BAAC;AAAD,CAAC,AAND,CAA4C,UAAK,GAMhD;AANY,wDAAsB;AAYnC,qFAAqF;AACrF;IAAwC,sCAA0B;IAAlE;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAA0C,IAAA,sBAAiB,EAAsB;YACtF,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,yBAAC;AAAD,CAAC,AALD,CAAwC,UAAK,GAK5C;AALY,gDAAkB;AAO/B,6FAA6F;AAC7F;IAAmD,iDAA0B;IAA7E;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAA0C,IAAA,sBAAiB,EAAsB;YACtF,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,CAAC;SACjH,CAAC,CAAC;;IACL,CAAC;IAAD,oCAAC;AAAD,CAAC,AALD,CAAmD,UAAK,GAKvD;AALY,sEAA6B;AAW1C;;;;;;;GAOG;AACH;IAAyC,uCAA2B;IAApE;QAAA,qEAKC;QAJC,UAAI,GAAG,8BAA8B,CAAC;QACtC,aAAO,GAA2C,IAAA,4BAAuB,EAAuB;YAC9F,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,0BAAC;AAAD,CAAC,AALD,CAAyC,UAAK,GAK7C;AALY,kDAAmB;AAahC;;;;;GAKG;AACH;IAA0C,wCAA4B;IAAtE;QAAA,qEAUC;QATC,UAAI,GAAG,2BAA2B,CAAC;QACnC,aAAO,GAA4C,IAAA,4BAAuB,EAAwB;YAChG,IAAI,EAAE,IAAI,iBAAY,CAAC,MAAM,CAAC;YAC9B,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;QACH,yBAAmB,GAAG;YACpB,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,UAAC,WAA6B,IAAK,OAAA,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAA5B,CAA4B;SAC1B,CAAC;;IAC3D,CAAC;IAAD,2BAAC;AAAD,CAAC,AAVD,CAA0C,UAAK,GAU9C;AAVY,oDAAoB;AAYpB,QAAA,0BAA0B,GAAG;IACxC,kBAAkB,EAAE,IAAI,uBAAuB,EAA+B;IAC9E,iBAAiB,EAAE,IAAI,sBAAsB,EAAoC;IACjF,cAAc,EAAE,IAAI,mBAAmB,EAAiC;IACxE,eAAe,EAAE,IAAI,oBAAoB,EAAkC;CAC5E,CAAC"}