@proteinjs/db 1.47.3 → 1.49.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 (113) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.prettierignore +2 -1
  3. package/CHANGELOG.md +37 -0
  4. package/dist/generated/index.d.ts.map +1 -1
  5. package/dist/generated/index.js +1 -3
  6. package/dist/generated/index.js.map +1 -1
  7. package/dist/generated/test/index.d.ts.map +1 -1
  8. package/dist/generated/test/index.js +1 -3
  9. package/dist/generated/test/index.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -5
  13. package/dist/index.js.map +1 -1
  14. package/dist/src/Db.d.ts +9 -0
  15. package/dist/src/Db.d.ts.map +1 -1
  16. package/dist/src/Db.js +2 -2
  17. package/dist/src/Db.js.map +1 -1
  18. package/dist/src/MigrationRunner.js +2 -2
  19. package/dist/src/MigrationRunner.js.map +1 -1
  20. package/dist/src/Table.d.ts +16 -1
  21. package/dist/src/Table.d.ts.map +1 -1
  22. package/dist/src/Table.js +14 -0
  23. package/dist/src/Table.js.map +1 -1
  24. package/dist/src/auth/TableAuth.d.ts +4 -0
  25. package/dist/src/auth/TableAuth.d.ts.map +1 -1
  26. package/dist/src/auth/TableAuth.js +12 -0
  27. package/dist/src/auth/TableAuth.js.map +1 -1
  28. package/dist/src/auth/TableServiceAuth.d.ts.map +1 -1
  29. package/dist/src/auth/TableServiceAuth.js +5 -0
  30. package/dist/src/auth/TableServiceAuth.js.map +1 -1
  31. package/dist/src/schema/SchemaOperations.d.ts +4 -3
  32. package/dist/src/schema/SchemaOperations.d.ts.map +1 -1
  33. package/dist/src/schema/TableManager.d.ts +24 -6
  34. package/dist/src/schema/TableManager.d.ts.map +1 -1
  35. package/dist/src/schema/TableManager.js +93 -26
  36. package/dist/src/schema/TableManager.js.map +1 -1
  37. package/dist/src/services/TransactionRunnerService.d.ts +20 -1
  38. package/dist/src/services/TransactionRunnerService.d.ts.map +1 -1
  39. package/dist/src/source/SourceRecord.d.ts +2 -2
  40. package/dist/src/source/{SourceRecordLoader.d.ts → SourceRecordSyncRunner.d.ts} +15 -7
  41. package/dist/src/source/SourceRecordSyncRunner.d.ts.map +1 -0
  42. package/dist/src/source/{SourceRecordLoader.js → SourceRecordSyncRunner.js} +46 -31
  43. package/dist/src/source/SourceRecordSyncRunner.js.map +1 -0
  44. package/dist/src/tables/MigrationTable.d.ts +10 -2
  45. package/dist/src/tables/MigrationTable.d.ts.map +1 -1
  46. package/dist/src/tables/MigrationTable.js +12 -4
  47. package/dist/src/tables/MigrationTable.js.map +1 -1
  48. package/dist/src/transaction/Transaction.d.ts +6 -1
  49. package/dist/src/transaction/Transaction.d.ts.map +1 -1
  50. package/dist/src/transaction/Transaction.js +13 -2
  51. package/dist/src/transaction/Transaction.js.map +1 -1
  52. package/dist/src/transaction/TransactionRunner.d.ts +45 -2
  53. package/dist/src/transaction/TransactionRunner.d.ts.map +1 -1
  54. package/dist/src/transaction/TransactionRunner.js +227 -26
  55. package/dist/src/transaction/TransactionRunner.js.map +1 -1
  56. package/dist/test/DurableTable.test.d.ts +2 -0
  57. package/dist/test/DurableTable.test.d.ts.map +1 -0
  58. package/dist/test/DurableTable.test.js +172 -0
  59. package/dist/test/DurableTable.test.js.map +1 -0
  60. package/dist/test/MigrationAuth.test.js +12 -9
  61. package/dist/test/MigrationAuth.test.js.map +1 -1
  62. package/dist/test/SchemaReconcileLines.test.d.ts +2 -0
  63. package/dist/test/SchemaReconcileLines.test.d.ts.map +1 -0
  64. package/dist/test/SchemaReconcileLines.test.js +176 -0
  65. package/dist/test/SchemaReconcileLines.test.js.map +1 -0
  66. package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts +2 -0
  67. package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts.map +1 -0
  68. package/dist/test/SourceRecordLoaderQualifiedName.test.js +79 -0
  69. package/dist/test/SourceRecordLoaderQualifiedName.test.js.map +1 -0
  70. package/dist/test/SourceRecordSyncRunner.test.d.ts +2 -0
  71. package/dist/test/SourceRecordSyncRunner.test.d.ts.map +1 -0
  72. package/dist/test/{SourceRecordLoader.test.js → SourceRecordSyncRunner.test.js} +63 -7
  73. package/dist/test/SourceRecordSyncRunner.test.js.map +1 -0
  74. package/dist/test/TableManagerCreateOrder.test.d.ts +2 -0
  75. package/dist/test/TableManagerCreateOrder.test.d.ts.map +1 -0
  76. package/dist/test/TableManagerCreateOrder.test.js +66 -0
  77. package/dist/test/TableManagerCreateOrder.test.js.map +1 -0
  78. package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
  79. package/dist/test/reusable/SourceRecordSyncTests.js +3 -5
  80. package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
  81. package/dist/test/reusable/TableManagerTests.d.ts.map +1 -1
  82. package/dist/test/reusable/TableManagerTests.js +180 -0
  83. package/dist/test/reusable/TableManagerTests.js.map +1 -1
  84. package/generated/index.ts +20 -19
  85. package/generated/test/index.ts +54 -53
  86. package/index.ts +3 -4
  87. package/package.json +4 -4
  88. package/src/Db.ts +11 -2
  89. package/src/MigrationRunner.ts +2 -2
  90. package/src/Table.ts +16 -1
  91. package/src/auth/TableAuth.ts +14 -0
  92. package/src/auth/TableServiceAuth.ts +6 -1
  93. package/src/schema/SchemaOperations.ts +4 -3
  94. package/src/schema/TableManager.ts +84 -26
  95. package/src/services/TransactionRunnerService.ts +21 -1
  96. package/src/source/SourceRecord.ts +2 -2
  97. package/src/source/{SourceRecordLoader.ts → SourceRecordSyncRunner.ts} +31 -13
  98. package/src/tables/MigrationTable.ts +12 -4
  99. package/src/transaction/Transaction.ts +11 -2
  100. package/src/transaction/TransactionRunner.ts +174 -3
  101. package/test/DurableTable.test.ts +156 -0
  102. package/test/MigrationAuth.test.ts +7 -5
  103. package/test/SchemaReconcileLines.test.ts +127 -0
  104. package/test/SourceRecordLoaderQualifiedName.test.ts +63 -0
  105. package/test/{SourceRecordLoader.test.ts → SourceRecordSyncRunner.test.ts} +75 -8
  106. package/test/TableManagerCreateOrder.test.ts +78 -0
  107. package/test/reusable/SourceRecordSyncTests.ts +3 -5
  108. package/test/reusable/TableManagerTests.ts +95 -0
  109. package/dist/src/source/SourceRecordLoader.d.ts.map +0 -1
  110. package/dist/src/source/SourceRecordLoader.js.map +0 -1
  111. package/dist/test/SourceRecordLoader.test.d.ts +0 -2
  112. package/dist/test/SourceRecordLoader.test.d.ts.map +0 -1
  113. package/dist/test/SourceRecordLoader.test.js.map +0 -1
@@ -34,9 +34,10 @@ export declare class TableManager {
34
34
  /**
35
35
  * Reconcile every registered table with the live schema. Absent tables are created as ONE
36
36
  * batch (a single schema-update operation on drivers that support it — the prod-boot win),
37
- * preserving their registration order so foreign keys to other absent tables resolve; existing
38
- * tables are altered individually after, so an alter that adds a foreign key to a
39
- * just-created table sees it live.
37
+ * ordered by their foreign-key references ({@link orderByReferences}) so each table's foreign
38
+ * keys resolve against tables created before it — the registry's enumeration order carries no
39
+ * such guarantee; existing tables are altered individually after, so an alter that adds a
40
+ * foreign key to a just-created table sees it live.
40
41
  */
41
42
  loadTables(): Promise<void>;
42
43
  loadTable(table: Table<any>): Promise<void>;
@@ -49,6 +50,22 @@ export declare class TableManager {
49
50
  * text-holding column must declare `encrypted` — registration fails loudly here otherwise.
50
51
  */
51
52
  private prepareTablesForLoad;
53
+ /**
54
+ * The order to create `tables` in: every table after the tables its foreign keys reference
55
+ * (`ColumnOptions.references`), so each foreign key a CREATE declares resolves against a table
56
+ * already created — one statement batch or one statement at a time alike. Tables are grouped by
57
+ * rank (0: references no other table in the set; otherwise one more than the highest rank it
58
+ * references) and keep their given order within a rank, so a deterministic input gives a
59
+ * deterministic output. A reference to the table itself, or to a table outside the set (already
60
+ * created, or not registered), does not constrain the order. A cycle of references cannot be
61
+ * created in any order: it is refused, naming the cycle and every table it blocks.
62
+ */
63
+ private orderByReferences;
64
+ /**
65
+ * Every table in `blocked` references another table in `blocked`, so walking those references
66
+ * from any of them must revisit a table: the walk from the first yields one cycle to name.
67
+ */
68
+ private referenceCycleMessage;
52
69
  private requireEncryptedDeclarations;
53
70
  private alterTableIfChanged;
54
71
  /**
@@ -84,6 +101,10 @@ export declare class TableManager {
84
101
  * never calls it). Every outcome that reaches the intended-definition gate is logged LOUDLY at
85
102
  * WARN — tolerance fired (treated as applied) OR the re-read failed (genuine conflict / still
86
103
  * absent, re-throwing) — so an unexpected activation is visible in prod logs rather than silent.
104
+ * Each of those lines carries the ERROR itself (`obj.error`), never text copied out of it: the
105
+ * backend words a schema error itself and can quote row data in it (a failed backfill names the
106
+ * duplicate key), and only an error OBJECT can be recognized by the logger as one its driver
107
+ * marked to print as a status and a sentence (`LogLineErrors`).
87
108
  */
88
109
  private reconcileConcurrentSchemaChange;
89
110
  /**
@@ -99,9 +120,6 @@ export declare class TableManager {
99
120
  * conflict — logged at WARN, then the ORIGINAL error re-throws.
100
121
  */
101
122
  private verifyIntendedDefinition;
102
- /** Concise, loggable reason from a schema-update error: the backend names the offending object
103
- * in `details` (validation phase) or `message` (apply phase). */
104
- private schemaErrorReason;
105
123
  private delay;
106
124
  private validateDynamicReferenceColumns;
107
125
  private shouldAlterTable;
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAoC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC;;;;;GAKG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;IAYhF,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;CAC1C;AAKD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAO;IAC9D,OAAO,CAAC,MAAM,CAA2F;IACzG,OAAO,CAAC,QAAQ,CAAW;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAQ3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAInC;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAMnC,eAAe;IAgB7B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,4BAA4B;YAQtB,mBAAmB;IAcjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;YACW,+BAA+B;IAiB7C;;;;;;;;;;;OAWG;YACW,wBAAwB;IAyCtC;sEACkE;IAClE,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;IA+ChC;;;;;;;OAOG;YACW,6BAA6B;IAe3C;;;;OAIG;YACW,uBAAuB;CAyCtC"}
1
+ {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAoC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC;;;;;GAKG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;IAYhF,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;CAC1C;AAKD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAO;IAC9D,OAAO,CAAC,MAAM,CAA2F;IACzG,OAAO,CAAC,QAAQ,CAAW;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAQ3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAInC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAMnC,eAAe;IAgB7B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,4BAA4B;YAQtB,mBAAmB;IAcjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;YACW,+BAA+B;IAiB7C;;;;;;;;;;;OAWG;YACW,wBAAwB;IAqCtC,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;IA+ChC;;;;;;;OAOG;YACW,6BAA6B;IAe3C;;;;OAIG;YACW,uBAAuB;CAyCtC"}
@@ -50,6 +50,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
50
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
51
  }
52
52
  };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
53
62
  Object.defineProperty(exports, "__esModule", { value: true });
54
63
  exports.TableManager = exports.DuplicateValuesForUniqueIndexError = void 0;
55
64
  var logger_1 = require("@proteinjs/logger");
@@ -105,13 +114,14 @@ var TableManager = /** @class */ (function () {
105
114
  /**
106
115
  * Reconcile every registered table with the live schema. Absent tables are created as ONE
107
116
  * batch (a single schema-update operation on drivers that support it — the prod-boot win),
108
- * preserving their registration order so foreign keys to other absent tables resolve; existing
109
- * tables are altered individually after, so an alter that adds a foreign key to a
110
- * just-created table sees it live.
117
+ * ordered by their foreign-key references ({@link orderByReferences}) so each table's foreign
118
+ * keys resolve against tables created before it — the registry's enumeration order carries no
119
+ * such guarantee; existing tables are altered individually after, so an alter that adds a
120
+ * foreign key to a just-created table sees it live.
111
121
  */
112
122
  TableManager.prototype.loadTables = function () {
113
123
  return __awaiter(this, void 0, void 0, function () {
114
- var tables, absentTables, existingTables, _i, tables_1, table, error_1, _a, existingTables_1, table;
124
+ var tables, absentTables, existingTables, _i, tables_1, table, tablesToCreate, error_1, _a, existingTables_1, table;
115
125
  return __generator(this, function (_b) {
116
126
  switch (_b.label) {
117
127
  case 0:
@@ -138,22 +148,23 @@ var TableManager = /** @class */ (function () {
138
148
  return [3 /*break*/, 1];
139
149
  case 4:
140
150
  if (!(absentTables.length > 0)) return [3 /*break*/, 10];
141
- this.logger.info({ message: "Creating tables: ".concat(absentTables.map(function (table) { return table.name; }).join(', ')) });
151
+ tablesToCreate = this.orderByReferences(absentTables);
152
+ this.logger.info({ message: "Creating tables: ".concat(tablesToCreate.map(function (table) { return table.name; }).join(', ')) });
142
153
  _b.label = 5;
143
154
  case 5:
144
155
  _b.trys.push([5, 7, , 9]);
145
- return [4 /*yield*/, this.schemaOperations.createTables(absentTables)];
156
+ return [4 /*yield*/, this.schemaOperations.createTables(tablesToCreate)];
146
157
  case 6:
147
158
  _b.sent();
148
159
  return [3 /*break*/, 9];
149
160
  case 7:
150
161
  error_1 = _b.sent();
151
- return [4 /*yield*/, this.reconcileConcurrentSchemaChange(absentTables, error_1)];
162
+ return [4 /*yield*/, this.reconcileConcurrentSchemaChange(tablesToCreate, error_1)];
152
163
  case 8:
153
164
  _b.sent();
154
165
  return [3 /*break*/, 9];
155
166
  case 9:
156
- this.logger.info({ message: "Finished creating ".concat(absentTables.length, " tables") });
167
+ this.logger.info({ message: "Finished creating ".concat(tablesToCreate.length, " tables") });
157
168
  _b.label = 10;
158
169
  case 10:
159
170
  _a = 0, existingTables_1 = existingTables;
@@ -258,6 +269,64 @@ var TableManager = /** @class */ (function () {
258
269
  }
259
270
  return prepared;
260
271
  };
272
+ /**
273
+ * The order to create `tables` in: every table after the tables its foreign keys reference
274
+ * (`ColumnOptions.references`), so each foreign key a CREATE declares resolves against a table
275
+ * already created — one statement batch or one statement at a time alike. Tables are grouped by
276
+ * rank (0: references no other table in the set; otherwise one more than the highest rank it
277
+ * references) and keep their given order within a rank, so a deterministic input gives a
278
+ * deterministic output. A reference to the table itself, or to a table outside the set (already
279
+ * created, or not registered), does not constrain the order. A cycle of references cannot be
280
+ * created in any order: it is refused, naming the cycle and every table it blocks.
281
+ */
282
+ TableManager.prototype.orderByReferences = function (tables) {
283
+ var _a, _b;
284
+ var tableNames = new Set(tables.map(function (table) { return table.name; }));
285
+ var referencedTables = new Map();
286
+ for (var _i = 0, tables_3 = tables; _i < tables_3.length; _i++) {
287
+ var table = tables_3[_i];
288
+ var referenced = new Set();
289
+ for (var _c = 0, _d = Object.values(table.columns); _c < _d.length; _c++) {
290
+ var column = _d[_c];
291
+ var referencedTable = (_b = (_a = column.options) === null || _a === void 0 ? void 0 : _a.references) === null || _b === void 0 ? void 0 : _b.table;
292
+ if (referencedTable && referencedTable !== table.name && tableNames.has(referencedTable)) {
293
+ referenced.add(referencedTable);
294
+ }
295
+ }
296
+ referencedTables.set(table.name, Array.from(referenced));
297
+ }
298
+ var ordered = [];
299
+ var created = new Set();
300
+ var remaining = tables;
301
+ while (remaining.length > 0) {
302
+ // One rank: every remaining table whose references were all created by EARLIER ranks.
303
+ var rank = remaining.filter(function (table) { return referencedTables.get(table.name).every(function (name) { return created.has(name); }); });
304
+ if (rank.length === 0) {
305
+ throw new Error(this.referenceCycleMessage(remaining, referencedTables));
306
+ }
307
+ ordered.push.apply(ordered, rank);
308
+ rank.forEach(function (table) { return created.add(table.name); });
309
+ remaining = remaining.filter(function (table) { return !created.has(table.name); });
310
+ }
311
+ return ordered;
312
+ };
313
+ /**
314
+ * Every table in `blocked` references another table in `blocked`, so walking those references
315
+ * from any of them must revisit a table: the walk from the first yields one cycle to name.
316
+ */
317
+ TableManager.prototype.referenceCycleMessage = function (blocked, referencedTables) {
318
+ var blockedNames = blocked.map(function (table) { return table.name; });
319
+ var walk = [];
320
+ var current = blockedNames[0];
321
+ while (!walk.includes(current)) {
322
+ walk.push(current);
323
+ current = referencedTables.get(current).find(function (name) { return blockedNames.includes(name); });
324
+ }
325
+ var cycle = __spreadArray(__spreadArray([], walk.slice(walk.indexOf(current)), true), [current], false);
326
+ return ("Cannot create tables whose foreign keys form a cycle: ".concat(cycle.join(' -> '), ". A foreign key can only ") +
327
+ "reference a table created before it, so no creation order exists \u2014 declare one of these references " +
328
+ "once the tables exist (an alter adds it). Tables it blocks: ".concat(blockedNames.join(', ')));
329
+ };
261
330
  TableManager.prototype.requireEncryptedDeclarations = function () {
262
331
  var _a;
263
332
  if (getEnvVar('DB_REQUIRE_ENCRYPTED_DECLARATIONS') === 'true') {
@@ -332,11 +401,15 @@ var TableManager = /** @class */ (function () {
332
401
  * never calls it). Every outcome that reaches the intended-definition gate is logged LOUDLY at
333
402
  * WARN — tolerance fired (treated as applied) OR the re-read failed (genuine conflict / still
334
403
  * absent, re-throwing) — so an unexpected activation is visible in prod logs rather than silent.
404
+ * Each of those lines carries the ERROR itself (`obj.error`), never text copied out of it: the
405
+ * backend words a schema error itself and can quote row data in it (a failed backfill names the
406
+ * duplicate key), and only an error OBJECT can be recognized by the logger as one its driver
407
+ * marked to print as a status and a sentence (`LogLineErrors`).
335
408
  */
336
409
  TableManager.prototype.reconcileConcurrentSchemaChange = function (tables, error) {
337
410
  var _a, _b;
338
411
  return __awaiter(this, void 0, void 0, function () {
339
- var tableNames, reason, _i, tables_3, table;
412
+ var tableNames, _i, tables_4, table;
340
413
  return __generator(this, function (_c) {
341
414
  switch (_c.label) {
342
415
  case 0:
@@ -344,13 +417,12 @@ var TableManager = /** @class */ (function () {
344
417
  throw error;
345
418
  }
346
419
  tableNames = tables.map(function (table) { return table.name; }).join(', ');
347
- reason = this.schemaErrorReason(error);
348
- _i = 0, tables_3 = tables;
420
+ _i = 0, tables_4 = tables;
349
421
  _c.label = 1;
350
422
  case 1:
351
- if (!(_i < tables_3.length)) return [3 /*break*/, 4];
352
- table = tables_3[_i];
353
- return [4 /*yield*/, this.verifyIntendedDefinition(table, tableNames, reason, error)];
423
+ if (!(_i < tables_4.length)) return [3 /*break*/, 4];
424
+ table = tables_4[_i];
425
+ return [4 /*yield*/, this.verifyIntendedDefinition(table, tableNames, error)];
354
426
  case 2:
355
427
  _c.sent();
356
428
  _c.label = 3;
@@ -359,7 +431,8 @@ var TableManager = /** @class */ (function () {
359
431
  return [3 /*break*/, 1];
360
432
  case 4:
361
433
  this.logger.warn({
362
- message: "[schema reconcile] tolerated concurrent ALREADY_EXISTS for table(s) '".concat(tableNames, "' \u2014 re-read verified the object present with the intended definition, treating as applied (a concurrent actor won the race). reason: ").concat(reason),
434
+ message: "[schema reconcile] tolerated concurrent ALREADY_EXISTS for table(s) '".concat(tableNames, "' \u2014 re-read verified the object present with the intended definition, treating as applied (a concurrent actor won the race)."),
435
+ obj: { error: error },
363
436
  });
364
437
  return [2 /*return*/];
365
438
  }
@@ -378,7 +451,7 @@ var TableManager = /** @class */ (function () {
378
451
  * success; only a definition still absent or mismatched after every attempt is a genuine
379
452
  * conflict — logged at WARN, then the ORIGINAL error re-throws.
380
453
  */
381
- TableManager.prototype.verifyIntendedDefinition = function (table, tableNames, reason, error) {
454
+ TableManager.prototype.verifyIntendedDefinition = function (table, tableNames, error) {
382
455
  return __awaiter(this, void 0, void 0, function () {
383
456
  var remainingChanges, attempt;
384
457
  return __generator(this, function (_a) {
@@ -414,28 +487,22 @@ var TableManager = /** @class */ (function () {
414
487
  // Still absent after every re-read — not the concurrent-winner case; surface the original
415
488
  // error rather than masking it.
416
489
  this.logger.warn({
417
- message: "[schema reconcile] caught ALREADY_EXISTS for table(s) '".concat(tableNames, "' but '").concat(table.name, "' is still absent after ").concat(TableManager.RECONCILE_VERIFY_ATTEMPTS, " re-reads \u2014 NOT a concurrent apply; re-throwing. reason: ").concat(reason),
490
+ message: "[schema reconcile] caught ALREADY_EXISTS for table(s) '".concat(tableNames, "' but '").concat(table.name, "' is still absent after ").concat(TableManager.RECONCILE_VERIFY_ATTEMPTS, " re-reads \u2014 NOT a concurrent apply; re-throwing."),
491
+ obj: { error: error },
418
492
  });
419
493
  throw error;
420
494
  }
421
495
  // The object exists but the live schema still differs from the intended definition, so a
422
496
  // concurrent actor did NOT apply our exact change (a genuine conflict). Propagate.
423
497
  this.logger.warn({
424
- message: "[schema reconcile] caught ALREADY_EXISTS for table '".concat(table.name, "' but the live schema does NOT match the intended definition after ").concat(TableManager.RECONCILE_VERIFY_ATTEMPTS, " re-reads (genuine conflict) \u2014 re-throwing. reason: ").concat(reason),
425
- obj: { remainingChanges: remainingChanges },
498
+ message: "[schema reconcile] caught ALREADY_EXISTS for table '".concat(table.name, "' but the live schema does NOT match the intended definition after ").concat(TableManager.RECONCILE_VERIFY_ATTEMPTS, " re-reads (genuine conflict) \u2014 re-throwing."),
499
+ obj: { remainingChanges: remainingChanges, error: error },
426
500
  });
427
501
  throw error;
428
502
  }
429
503
  });
430
504
  });
431
505
  };
432
- /** Concise, loggable reason from a schema-update error: the backend names the offending object
433
- * in `details` (validation phase) or `message` (apply phase). */
434
- TableManager.prototype.schemaErrorReason = function (error) {
435
- var _a, _b;
436
- var candidate = error;
437
- return String((_b = (_a = candidate === null || candidate === void 0 ? void 0 : candidate.details) !== null && _a !== void 0 ? _a : candidate === null || candidate === void 0 ? void 0 : candidate.message) !== null && _b !== void 0 ? _b : error);
438
- };
439
506
  TableManager.prototype.delay = function (ms) {
440
507
  return new Promise(function (resolve) { return setTimeout(resolve, ms); });
441
508
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
1
  import { Service } from '@proteinjs/service';
2
2
  import { Operation } from '../transaction/Transaction';
3
3
  export declare const getTransactionRunnerService: () => TransactionRunnerService;
4
+ /**
5
+ * What a write declares about the rows it depends on.
6
+ *
7
+ * A client that releases a queued write because its page is going away cannot order that write
8
+ * behind the writes it depends on — the page is gone before their answers arrive. The server
9
+ * outlives the page, so the write DECLARES its dependencies and the server honours them.
10
+ */
11
+ export type TransactionRunOptions = {
12
+ /**
13
+ * Ids of rows the operations depend on that may not exist yet: the row an update or a
14
+ * membership update targets while its insert is still in flight, the permission source a
15
+ * child row attaches to while the root's own insert (and the owner grant that commits with
16
+ * it) is still landing. Every id must be a row the operations themselves reference. The
17
+ * runner waits, bounded, for each to exist AND be visible to the caller before running the
18
+ * operations; a row that never appears fails the request with a plain clause — never a
19
+ * silent zero-row write, never a hang.
20
+ */
21
+ afterRows?: string[];
22
+ };
4
23
  export interface TransactionRunnerService extends Service {
5
- run(ops: Operation<any>[]): Promise<void>;
24
+ run(ops: Operation<any>[], options?: TransactionRunOptions): Promise<void>;
6
25
  }
7
26
  //# sourceMappingURL=TransactionRunnerService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRunnerService.d.ts","sourceRoot":"","sources":["../../../src/services/TransactionRunnerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,2BAA2B,gCAEvC,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,OAAO;IACvD,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
1
+ {"version":3,"file":"TransactionRunnerService.d.ts","sourceRoot":"","sources":["../../../src/services/TransactionRunnerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,2BAA2B,gCAEvC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,OAAO;IACvD,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E"}
@@ -4,7 +4,7 @@ import { Record as DbRecord } from '../Record';
4
4
  /**
5
5
  * A source record declaration paired with its owning source: the package that compiled the
6
6
  * declaration into this build (from the declaration's reflection qualified name). The source is
7
- * the ownership grain of the sync — {@link SourceRecordLoader} stamps it on every row it writes
7
+ * the ownership grain of the sync — {@link SourceRecordSyncRunner} stamps it on every row it writes
8
8
  * and prunes only within it, so servers running different builds against one shared database
9
9
  * never delete each other's rows.
10
10
  */
@@ -18,7 +18,7 @@ export interface SourceRecord extends DbRecord {
18
18
  isLoadedFromSource?: boolean;
19
19
  /**
20
20
  * The package whose declaration owns this row (the declaring loader's package, from its
21
- * reflection qualified name). Stamped by {@link SourceRecordLoader} on every row it writes;
21
+ * reflection qualified name). Stamped by {@link SourceRecordSyncRunner} on every row it writes;
22
22
  * the removed-reconcile prunes only rows whose `sourcePackage` matches a package the running
23
23
  * build actually declares from — so a build never deletes rows owned by a package it does not
24
24
  * carry (e.g. another server's types on a shared database). Rows written before this column
@@ -21,7 +21,7 @@ export type SourceRecordTableLoadSummary = {
21
21
  export type SourceRecordLoadSummary = {
22
22
  [tableName: string]: SourceRecordTableLoadSummary;
23
23
  };
24
- export declare class SourceRecordLoader {
24
+ export declare class SourceRecordSyncRunner {
25
25
  private logger;
26
26
  /** Memo of resolved package versions — one resolution (and at most one warning) per source. */
27
27
  private sourceVersions;
@@ -154,7 +154,7 @@ export declare class SourceRecordLoader {
154
154
  * For object-valued fields (e.g. a `JsonColumn` blob), source is treated as
155
155
  * fully authoritative: any structural drift — extra keys in existing, missing
156
156
  * keys in existing, or value differences anywhere in the subtree — produces
157
- * a mismatch. Comparison goes through {@link SourceRecordLoader.canonicalStringify}
157
+ * a mismatch. Comparison goes through {@link SourceRecordSyncRunner.canonicalStringify}
158
158
  * so that key ordering (which backing stores may canonicalize alphabetically)
159
159
  * does not cause false positives.
160
160
  *
@@ -181,16 +181,24 @@ export declare class SourceRecordLoader {
181
181
  * The declaring package's version, read from its own package.json at runtime. Resolution runs
182
182
  * from the process cwd — the booting server's package, the one dependency tree every declaring
183
183
  * package is reachable from (`@proteinjs/db` itself does not depend on the packages that
184
- * declare records, so module-relative resolution could never find them). The package's entry
185
- * is resolved (honoring exports maps, where `<pkg>/package.json` is usually not requireable),
186
- * then the nearest package.json whose `name` matches is read walking up from it.
184
+ * declare records, so module-relative resolution could never find them).
187
185
  *
188
- * Returns undefined where resolution is impossible — no Node `require` (browser bundles), or a
186
+ * Two roads, in order:
187
+ * 1. The booting package itself: `<cwd>/package.json`, when its `name` is `source`. A lookup by
188
+ * name from cwd searches cwd's node_modules chain, which never contains the package cwd IS,
189
+ * so without this read the server's own records would sync unversioned.
190
+ * 2. Any other package: its entry is resolved from cwd (honoring exports maps, where
191
+ * `<pkg>/package.json` is usually not requireable), then the nearest package.json whose
192
+ * `name` matches is read walking up from it.
193
+ *
194
+ * Returns undefined where neither road resolves — no Node `require` (browser bundles), or a
189
195
  * package not resolvable from cwd. The sync then has no place in the version order for that
190
196
  * package: it never touches its version-stamped rows, and what it writes is unversioned
191
197
  * (see {@link isNewerStamp}). Logged once per boot so a misconfigured cwd is visible.
192
198
  */
193
199
  private resolveSourceVersion;
200
+ /** The `version` of the package.json at `packageJsonPath` when it exists and names `source`. */
201
+ private packageVersionAt;
194
202
  /**
195
203
  * Whether a row's version stamp is strictly newer than the reconciling build's version of the
196
204
  * same package — the guard that makes version skew of one package safe on a shared database:
@@ -210,4 +218,4 @@ export declare class SourceRecordLoader {
210
218
  */
211
219
  private compareVersions;
212
220
  }
213
- //# sourceMappingURL=SourceRecordLoader.d.ts.map
221
+ //# sourceMappingURL=SourceRecordSyncRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordSyncRunner.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordSyncRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkBjC,gEAAgE;AAChE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAAA;CAAE,CAAC;AAE5F,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAA+C;IAE7D,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAyC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA0JpE;;;;;;;;;OASG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,kCAAkC;IA0BhD;;;;;;OAMG;YACW,YAAY;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;;;;;;;;;;;;;;;;;OAmBG;YACW,UAAU;IAwBxB;;;OAGG;YACW,eAAe;IAmB7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,mGAAmG;IACnG,OAAO,CAAC,aAAa;IAQrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,oBAAoB;IAyC5B,gGAAgG;IAChG,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAapB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CA4DxB"}