@proteinjs/db 1.34.2 → 1.34.4

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 (74) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/generated/index.d.ts +0 -4
  3. package/dist/generated/index.d.ts.map +1 -1
  4. package/dist/generated/index.js +1 -5
  5. package/dist/generated/index.js.map +1 -1
  6. package/dist/generated/test/index.d.ts +0 -4
  7. package/dist/generated/test/index.d.ts.map +1 -1
  8. package/dist/generated/test/index.js +3 -5
  9. package/dist/generated/test/index.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/src/Db.d.ts +12 -0
  15. package/dist/src/Db.d.ts.map +1 -1
  16. package/dist/src/Db.js +132 -22
  17. package/dist/src/Db.js.map +1 -1
  18. package/dist/src/RecordAccessError.d.ts +18 -0
  19. package/dist/src/RecordAccessError.d.ts.map +1 -0
  20. package/dist/src/RecordAccessError.js +46 -0
  21. package/dist/src/RecordAccessError.js.map +1 -0
  22. package/dist/src/Table.d.ts +28 -1
  23. package/dist/src/Table.d.ts.map +1 -1
  24. package/dist/src/source/SourceRecord.d.ts +35 -2
  25. package/dist/src/source/SourceRecord.d.ts.map +1 -1
  26. package/dist/src/source/SourceRecord.js +8 -1
  27. package/dist/src/source/SourceRecord.js.map +1 -1
  28. package/dist/src/source/SourceRecordLoader.d.ts +98 -7
  29. package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
  30. package/dist/src/source/SourceRecordLoader.js +348 -93
  31. package/dist/src/source/SourceRecordLoader.js.map +1 -1
  32. package/dist/src/tables/MigrationTable.d.ts +2 -0
  33. package/dist/src/tables/MigrationTable.d.ts.map +1 -1
  34. package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
  35. package/dist/test/reusable/SourceRecordSyncTests.js +803 -27
  36. package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
  37. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +15 -115
  38. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -1
  39. package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -1
  40. package/dist/test/util/tables/crudTestTables.d.ts +2 -22
  41. package/dist/test/util/tables/crudTestTables.d.ts.map +1 -1
  42. package/dist/test/util/tables/crudTestTables.js.map +1 -1
  43. package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts +4 -36
  44. package/dist/test/util/tables/dynamicReferenceColumnTestTables.d.ts.map +1 -1
  45. package/dist/test/util/tables/dynamicReferenceColumnTestTables.js.map +1 -1
  46. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts +20 -34
  47. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts.map +1 -1
  48. package/dist/test/util/tables/sourceRecordSyncTestTables.js +23 -1
  49. package/dist/test/util/tables/sourceRecordSyncTestTables.js.map +1 -1
  50. package/dist/test/util/tables/tableManagerTestTables.d.ts +3 -38
  51. package/dist/test/util/tables/tableManagerTestTables.d.ts.map +1 -1
  52. package/dist/test/util/tables/tableManagerTestTables.js.map +1 -1
  53. package/dist/test/util/tables/transactionTestTables.d.ts +2 -22
  54. package/dist/test/util/tables/transactionTestTables.d.ts.map +1 -1
  55. package/dist/test/util/tables/transactionTestTables.js.map +1 -1
  56. package/generated/index.ts +1 -5
  57. package/generated/test/index.ts +3 -5
  58. package/index.ts +1 -0
  59. package/package.json +5 -5
  60. package/src/Db.ts +65 -2
  61. package/src/RecordAccessError.ts +22 -0
  62. package/src/Table.ts +33 -1
  63. package/src/source/SourceRecord.ts +42 -4
  64. package/src/source/SourceRecordLoader.ts +333 -48
  65. package/test/reusable/SourceRecordSyncTests.ts +462 -11
  66. package/test/util/tables/cascadeDeleteTestTables.ts +15 -15
  67. package/test/util/tables/crudTestTables.ts +2 -2
  68. package/test/util/tables/dynamicReferenceColumnTestTables.ts +4 -4
  69. package/test/util/tables/sourceRecordSyncTestTables.ts +24 -4
  70. package/test/util/tables/tableManagerTestTables.ts +3 -3
  71. package/test/util/tables/transactionTestTables.ts +2 -2
  72. package/test.d.ts +2 -0
  73. package/test.js +4 -0
  74. package/tsconfig.json +2 -1
@@ -57,42 +57,94 @@ var Record_1 = require("../Record");
57
57
  var SourceRecordLoader = /** @class */ (function () {
58
58
  function SourceRecordLoader() {
59
59
  this.logger = new logger_1.Logger({ name: this.constructor.name });
60
+ /** Memo of resolved package versions — one resolution (and at most one warning) per source. */
61
+ this.sourceVersions = new Map();
60
62
  }
63
+ /**
64
+ * One boot of the source-record sync, per source-record table in this build. Returns what it
65
+ * did to each table (also logged).
66
+ *
67
+ * Ownership model — every row has one owner, the package that declares it, ordered by that
68
+ * package's version:
69
+ * - A boot speaks only for the packages it carries. Rows owned by a package this build does
70
+ * not carry are never touched: several servers running different builds against one shared
71
+ * database coexist without pruning each other's rows.
72
+ * - Within a package, a boot speaks only for its own version or older. A row stamped by a
73
+ * NEWER version of the same package is left exactly as it is — neither pruned nor rewritten —
74
+ * so ordinary version skew (an older build restarting against rows a newer build added or
75
+ * redefined) cannot delete or churn data. The newest version stays authoritative for
76
+ * genuine removals and redefinitions.
77
+ * - A package in the build is authoritative for all of its rows on every table, including
78
+ * tables it no longer declares anything for: dropping the last declaration is a removal.
79
+ * - Rows with no owner stamp (written before `source_package` existed) are claimed by the
80
+ * declaration that still matches them; the rest are reported as unowned and left alone.
81
+ *
82
+ * Accepted residuals: a package removed from every build leaves its rows behind (no surviving
83
+ * boot carries its authority — clean up explicitly); two builds of one package at the SAME
84
+ * version with differing sets (uncommitted local skew) are last-writer-wins, since versions
85
+ * cannot order them.
86
+ */
61
87
  SourceRecordLoader.prototype.load = function () {
62
88
  return __awaiter(this, void 0, void 0, function () {
63
- var sourceRecordsMap, db, _loop_1, this_1, _a, _b, _c, _i, tableName;
64
- return __generator(this, function (_d) {
65
- switch (_d.label) {
66
- case 0: return [4 /*yield*/, this.getSourceRecordsMap()];
89
+ var _a, tables, buildSources, db, summary, _loop_1, this_1, _b, _c, _d, _i, tableName;
90
+ return __generator(this, function (_e) {
91
+ switch (_e.label) {
92
+ case 0: return [4 /*yield*/, this.getDeclarations()];
67
93
  case 1:
68
- sourceRecordsMap = _d.sent();
94
+ _a = _e.sent(), tables = _a.tables, buildSources = _a.buildSources;
69
95
  db = (0, Db_1.getDbAsSystem)();
96
+ summary = {};
70
97
  _loop_1 = function (tableName) {
71
- var _e, table, records, keyProperty, declaredKeys, _f, deleteCount, removedUpdateCount, insertCount, updateCount, unchangedCount, adoptedCount, _g, records_1, sourceRecord, existingRecord, dbSourceRecord;
72
- var _h, _j;
73
- return __generator(this, function (_k) {
74
- switch (_k.label) {
98
+ var _f, table, records, keyProperty, allDeclaredKeys, removed, insertCount, updateCount, unchangedCount, adoptedCount, skippedNewer, _g, records_1, _h, source, record, sourceRecord, sourceVersion, existingRecord, dbSourceRecord, unowned;
99
+ var _j, _k;
100
+ return __generator(this, function (_l) {
101
+ switch (_l.label) {
75
102
  case 0:
76
- _e = sourceRecordsMap[tableName], table = _e.table, records = _e.records;
77
- keyProperty = this_1.validateSyncKey(table, records);
78
- declaredKeys = records.map(function (record) { return record[keyProperty]; });
79
- return [4 /*yield*/, this_1.reconcileRemoved(db, table, keyProperty, declaredKeys)];
103
+ _f = tables[tableName], table = _f.table, records = _f.records;
104
+ keyProperty = this_1.validateSyncKey(table, records.map(function (_a) {
105
+ var record = _a.record;
106
+ return record;
107
+ }));
108
+ allDeclaredKeys = records.map(function (_a) {
109
+ var record = _a.record;
110
+ return record[keyProperty];
111
+ });
112
+ return [4 /*yield*/, this_1.reconcileRemoved(db, table, keyProperty, buildSources, allDeclaredKeys)];
80
113
  case 1:
81
- _f = _k.sent(), deleteCount = _f.deleteCount, removedUpdateCount = _f.removedUpdateCount;
114
+ removed = _l.sent();
82
115
  insertCount = 0;
83
116
  updateCount = 0;
84
117
  unchangedCount = 0;
85
118
  adoptedCount = 0;
119
+ skippedNewer = removed.skippedNewer;
86
120
  _g = 0, records_1 = records;
87
- _k.label = 2;
121
+ _l.label = 2;
88
122
  case 2:
89
123
  if (!(_g < records_1.length)) return [3 /*break*/, 12];
90
- sourceRecord = records_1[_g];
124
+ _h = records_1[_g], source = _h.source, record = _h.record;
125
+ sourceRecord = record;
91
126
  sourceRecord.isLoadedFromSource = true;
92
- return [4 /*yield*/, db.get(table, (_h = {}, _h[keyProperty] = sourceRecord[keyProperty], _h))];
127
+ // Ownership stamp: the declaring package (and its version) claims the row. Stamped
128
+ // before the drift comparison so pre-existing rows (including pre-source_package legacy
129
+ // rows and rows whose declaration moved packages) converge to the current owner on
130
+ // their next boot.
131
+ sourceRecord.sourcePackage = source;
132
+ sourceVersion = this_1.sourceVersion(source);
133
+ if (sourceVersion !== undefined) {
134
+ sourceRecord.sourcePackageVersion = sourceVersion;
135
+ }
136
+ return [4 /*yield*/, db.get(table, (_j = {}, _j[keyProperty] = sourceRecord[keyProperty], _j))];
93
137
  case 3:
94
- existingRecord = _k.sent();
138
+ existingRecord = _l.sent();
95
139
  if (!existingRecord) return [3 /*break*/, 8];
140
+ if (existingRecord.sourcePackage === source &&
141
+ this_1.isNewerStamp(existingRecord.sourcePackageVersion, sourceVersion)) {
142
+ // A newer version of this very package already defined the row: this build's older
143
+ // definition does not land, and the row's stamp is not downgraded.
144
+ skippedNewer += 1;
145
+ new SourceRecordRepo_1.SourceRecordRepo().loadSourceRecord(table.name, existingRecord);
146
+ return [3 /*break*/, 11];
147
+ }
96
148
  if (existingRecord.id !== sourceRecord.id) {
97
149
  // Adopt in place: the existing row keeps its id — other tables may reference it.
98
150
  // The declared id is only ever used for fresh inserts.
@@ -104,127 +156,192 @@ var SourceRecordLoader = /** @class */ (function () {
104
156
  adoptedCount += 1;
105
157
  this_1.logger.info({
106
158
  message: "(".concat(table.name, ") Adopting existing record into source ownership"),
107
- obj: (_j = {}, _j[keyProperty] = sourceRecord[keyProperty], _j.id = existingRecord.id, _j),
159
+ obj: (_k = {}, _k[keyProperty] = sourceRecord[keyProperty], _k.id = existingRecord.id, _k),
108
160
  });
109
161
  }
110
162
  return [4 /*yield*/, this_1.hasChanges(table, sourceRecord, existingRecord)];
111
163
  case 4:
112
- if (!_k.sent()) return [3 /*break*/, 6];
164
+ if (!_l.sent()) return [3 /*break*/, 6];
113
165
  return [4 /*yield*/, db.update(table, sourceRecord)];
114
166
  case 5:
115
- _k.sent();
167
+ _l.sent();
116
168
  updateCount += 1;
117
169
  return [3 /*break*/, 7];
118
170
  case 6:
119
171
  unchangedCount += 1;
120
- _k.label = 7;
172
+ _l.label = 7;
121
173
  case 7: return [3 /*break*/, 10];
122
174
  case 8: return [4 /*yield*/, db.insert(table, sourceRecord)];
123
175
  case 9:
124
- dbSourceRecord = _k.sent();
176
+ dbSourceRecord = _l.sent();
125
177
  sourceRecord = __assign(__assign({}, sourceRecord), dbSourceRecord);
126
178
  insertCount += 1;
127
- _k.label = 10;
179
+ _l.label = 10;
128
180
  case 10:
129
181
  // Registered under the DB id (= the adopted id when an existing row matched by natural key).
130
182
  new SourceRecordRepo_1.SourceRecordRepo().loadSourceRecord(table.name, sourceRecord);
131
- _k.label = 11;
183
+ _l.label = 11;
132
184
  case 11:
133
185
  _g++;
134
186
  return [3 /*break*/, 2];
135
- case 12:
187
+ case 12: return [4 /*yield*/, this_1.countUnowned(db, table, keyProperty)];
188
+ case 13:
189
+ unowned = _l.sent();
190
+ summary[table.name] = {
191
+ inserts: insertCount,
192
+ updates: updateCount,
193
+ unchanged: unchangedCount,
194
+ adopted: adoptedCount,
195
+ deletes: removed.deleteCount,
196
+ removedUpdates: removed.removedUpdateCount,
197
+ skippedNewer: skippedNewer,
198
+ unowned: unowned,
199
+ };
136
200
  this_1.logger.info({
137
201
  message: "(".concat(table.name, ") Loaded ").concat(records.length, " ").concat(records.length == 1 ? 'record' : 'records', " from source"),
138
- obj: {
139
- inserts: insertCount,
140
- updates: updateCount,
141
- unchanged: unchangedCount,
142
- adopted: adoptedCount,
143
- deletes: deleteCount,
144
- removedUpdates: removedUpdateCount,
145
- },
202
+ obj: summary[table.name],
146
203
  });
147
204
  return [2 /*return*/];
148
205
  }
149
206
  });
150
207
  };
151
208
  this_1 = this;
152
- _a = sourceRecordsMap;
153
- _b = [];
154
- for (_c in _a)
155
- _b.push(_c);
209
+ _b = tables;
210
+ _c = [];
211
+ for (_d in _b)
212
+ _c.push(_d);
156
213
  _i = 0;
157
- _d.label = 2;
214
+ _e.label = 2;
158
215
  case 2:
159
- if (!(_i < _b.length)) return [3 /*break*/, 5];
160
- _c = _b[_i];
161
- if (!(_c in _a)) return [3 /*break*/, 4];
162
- tableName = _c;
216
+ if (!(_i < _c.length)) return [3 /*break*/, 5];
217
+ _d = _c[_i];
218
+ if (!(_d in _b)) return [3 /*break*/, 4];
219
+ tableName = _d;
163
220
  return [5 /*yield**/, _loop_1(tableName)];
164
221
  case 3:
165
- _d.sent();
166
- _d.label = 4;
222
+ _e.sent();
223
+ _e.label = 4;
167
224
  case 4:
168
225
  _i++;
169
226
  return [3 /*break*/, 2];
170
- case 5: return [2 /*return*/];
227
+ case 5: return [2 /*return*/, summary];
171
228
  }
172
229
  });
173
230
  });
174
231
  };
175
232
  /**
176
- * The removed-reconcile leg: rows previously loaded from source whose declaration no longer
177
- * exists (`is_loaded_from_source = true AND <key> NOT IN declared`), handled per the table's
178
- * `onSourceRemoved` policy delete (default), keep, or update with a patch. The update leg
179
- * applies the patch only to rows whose fields actually differ (idempotent boots), through
180
- * `Db.update` so table watchers observe each write.
233
+ * The removed-reconcile leg: rows owned by a package this build carries, at that package's
234
+ * version or older, that NO package in this build still declares
235
+ * (`is_loaded_from_source = true AND source_package IN <build's packages> AND <key> NOT IN
236
+ * <build's declared keys for the table>`, minus rows stamped by a newer version of their
237
+ * package) are handled per the table's `onSourceRemoved` policy delete (default), keep, or
238
+ * update with a patch. The update leg applies the patch only to rows whose fields actually
239
+ * differ (idempotent boots), through `Db.update` so table watchers observe each write.
240
+ * See {@link load} for the ownership model.
181
241
  */
182
- SourceRecordLoader.prototype.reconcileRemoved = function (db, table, keyProperty, declaredKeys) {
242
+ SourceRecordLoader.prototype.reconcileRemoved = function (db, table, keyProperty, buildSources, allDeclaredKeys) {
183
243
  var _a;
184
244
  return __awaiter(this, void 0, void 0, function () {
185
- var policy, qb, removedUpdateCount, removedRecords, _i, removedRecords_1, removedRecord;
186
- var _b, _c;
187
- return __generator(this, function (_d) {
188
- switch (_d.label) {
245
+ var policy, qb, candidates, stampedNewer, removedRecords, skippedNewer, deleteQb, removedUpdateCount, _i, removedRecords_1, removedRecord;
246
+ var _b, _c, _d;
247
+ var _this = this;
248
+ return __generator(this, function (_e) {
249
+ switch (_e.label) {
189
250
  case 0:
190
251
  policy = (_a = table.sourceRecordOptions.onSourceRemoved) !== null && _a !== void 0 ? _a : 'delete';
191
- if (policy === 'keep') {
192
- return [2 /*return*/, { deleteCount: 0, removedUpdateCount: 0 }];
252
+ if (policy === 'keep' || buildSources.size == 0) {
253
+ return [2 /*return*/, { deleteCount: 0, removedUpdateCount: 0, skippedNewer: 0 }];
193
254
  }
194
255
  qb = db_query_1.QueryBuilder.fromObject({ isLoadedFromSource: true }, table.name);
195
- if (declaredKeys.length > 0) {
196
- qb.condition({ field: keyProperty, operator: 'NOT IN', value: declaredKeys });
256
+ qb.condition({ field: 'sourcePackage', operator: 'IN', value: Array.from(buildSources) });
257
+ if (allDeclaredKeys.length > 0) {
258
+ qb.condition({ field: keyProperty, operator: 'NOT IN', value: allDeclaredKeys });
197
259
  }
198
- if (!(policy === 'delete')) return [3 /*break*/, 2];
199
- _b = {};
200
- return [4 /*yield*/, db.delete(table, qb)];
201
- case 1: return [2 /*return*/, (_b.deleteCount = _d.sent(), _b.removedUpdateCount = 0, _b)];
202
- case 2:
203
- removedUpdateCount = 0;
204
260
  return [4 /*yield*/, db.query(table, qb)];
261
+ case 1:
262
+ candidates = _e.sent();
263
+ stampedNewer = function (candidate) {
264
+ return _this.isNewerStamp(candidate.sourcePackageVersion, _this.sourceVersion(candidate.sourcePackage));
265
+ };
266
+ removedRecords = candidates.filter(function (candidate) { return !stampedNewer(candidate); });
267
+ skippedNewer = candidates.length - removedRecords.length;
268
+ if (skippedNewer > 0) {
269
+ this.logger.info({
270
+ message: "(".concat(table.name, ") Left ").concat(skippedNewer, " record").concat(skippedNewer == 1 ? '' : 's', " stamped by a newer version of ").concat(skippedNewer == 1 ? 'its' : 'their', " package \u2014 not treated as removed"),
271
+ obj: (_b = {}, _b[keyProperty] = candidates.filter(stampedNewer).map(function (candidate) { return candidate[keyProperty]; }), _b),
272
+ });
273
+ }
274
+ if (removedRecords.length == 0) {
275
+ return [2 /*return*/, { deleteCount: 0, removedUpdateCount: 0, skippedNewer: skippedNewer }];
276
+ }
277
+ if (!(policy === 'delete')) return [3 /*break*/, 3];
278
+ deleteQb = db_query_1.QueryBuilder.fromObject({ isLoadedFromSource: true }, table.name);
279
+ deleteQb.condition({ field: 'id', operator: 'IN', value: removedRecords.map(function (record) { return record.id; }) });
280
+ _c = {};
281
+ return [4 /*yield*/, db.delete(table, deleteQb)];
282
+ case 2: return [2 /*return*/, (_c.deleteCount = _e.sent(), _c.removedUpdateCount = 0, _c.skippedNewer = skippedNewer, _c)];
205
283
  case 3:
206
- removedRecords = _d.sent();
284
+ removedUpdateCount = 0;
207
285
  _i = 0, removedRecords_1 = removedRecords;
208
- _d.label = 4;
286
+ _e.label = 4;
209
287
  case 4:
210
288
  if (!(_i < removedRecords_1.length)) return [3 /*break*/, 8];
211
289
  removedRecord = removedRecords_1[_i];
212
290
  return [4 /*yield*/, this.hasChanges(table, policy.update, removedRecord)];
213
291
  case 5:
214
- if (!_d.sent()) return [3 /*break*/, 7];
292
+ if (!_e.sent()) return [3 /*break*/, 7];
215
293
  return [4 /*yield*/, db.update(table, __assign({ id: removedRecord.id }, policy.update))];
216
294
  case 6:
217
- _d.sent();
295
+ _e.sent();
218
296
  removedUpdateCount += 1;
219
297
  this.logger.info({
220
298
  message: "(".concat(table.name, ") Applied onSourceRemoved update to record removed from source"),
221
- obj: (_c = { id: removedRecord.id }, _c[keyProperty] = removedRecord[keyProperty], _c),
299
+ obj: (_d = {
300
+ id: removedRecord.id
301
+ },
302
+ _d[keyProperty] = removedRecord[keyProperty],
303
+ _d.source = removedRecord.sourcePackage,
304
+ _d),
222
305
  });
223
- _d.label = 7;
306
+ _e.label = 7;
224
307
  case 7:
225
308
  _i++;
226
309
  return [3 /*break*/, 4];
227
- case 8: return [2 /*return*/, { deleteCount: 0, removedUpdateCount: removedUpdateCount }];
310
+ case 8: return [2 /*return*/, { deleteCount: 0, removedUpdateCount: removedUpdateCount, skippedNewer: skippedNewer }];
311
+ }
312
+ });
313
+ });
314
+ };
315
+ /**
316
+ * Source-loaded rows with no owner stamp that no declaration in this build claimed on this
317
+ * boot (the stamp leg has already run). They predate `source_package`, or their declaring
318
+ * package is not in this build; nobody prunes them. Reported so they are visible, never acted
319
+ * on. Tables that keep removed rows (`onSourceRemoved: 'keep'`) opted out of removal
320
+ * semantics altogether, so there is nothing to explain there.
321
+ */
322
+ SourceRecordLoader.prototype.countUnowned = function (db, table, keyProperty) {
323
+ var _a;
324
+ return __awaiter(this, void 0, void 0, function () {
325
+ var qb, unowned;
326
+ var _b;
327
+ return __generator(this, function (_c) {
328
+ switch (_c.label) {
329
+ case 0:
330
+ if (((_a = table.sourceRecordOptions.onSourceRemoved) !== null && _a !== void 0 ? _a : 'delete') === 'keep') {
331
+ return [2 /*return*/, 0];
332
+ }
333
+ qb = db_query_1.QueryBuilder.fromObject({ isLoadedFromSource: true }, table.name);
334
+ qb.condition({ field: 'sourcePackage', operator: 'IS NULL' });
335
+ return [4 /*yield*/, db.query(table, qb)];
336
+ case 1:
337
+ unowned = _c.sent();
338
+ if (unowned.length > 0) {
339
+ this.logger.warn({
340
+ message: "(".concat(table.name, ") ").concat(unowned.length, " source-loaded ").concat(unowned.length == 1 ? 'record has' : 'records have', " no owning package and no declaration in this build \u2014 left untouched"),
341
+ obj: (_b = {}, _b[keyProperty] = unowned.map(function (record) { return record[keyProperty]; }), _b),
342
+ });
343
+ }
344
+ return [2 /*return*/, unowned.length];
228
345
  }
229
346
  });
230
347
  });
@@ -307,30 +424,29 @@ var SourceRecordLoader = /** @class */ (function () {
307
424
  });
308
425
  });
309
426
  };
310
- SourceRecordLoader.prototype.getSourceRecordsMap = function () {
427
+ /**
428
+ * Every source-record table in this build with the records declared for it, plus the set of
429
+ * packages that declare ANY source record in this build — the packages this boot speaks for.
430
+ */
431
+ SourceRecordLoader.prototype.getDeclarations = function () {
311
432
  return __awaiter(this, void 0, void 0, function () {
312
- var sourceRecordsMap, sourceRecordTables, _i, sourceRecordTables_1, sourceRecordTable, sourceRecordLoaders, _a, sourceRecordLoaders_1, sourceRecordLoader;
313
- return __generator(this, function (_b) {
314
- sourceRecordsMap = {};
315
- sourceRecordTables = (0, SourceRecord_1.getSourceRecordTables)();
316
- for (_i = 0, sourceRecordTables_1 = sourceRecordTables; _i < sourceRecordTables_1.length; _i++) {
317
- sourceRecordTable = sourceRecordTables_1[_i];
318
- if (!sourceRecordsMap[sourceRecordTable.name]) {
319
- sourceRecordsMap[sourceRecordTable.name] = { table: sourceRecordTable, records: [] };
320
- }
433
+ var tables, _i, _a, table, buildSources, _b, _c, _d, source, loader;
434
+ return __generator(this, function (_e) {
435
+ tables = {};
436
+ for (_i = 0, _a = (0, SourceRecord_1.getSourceRecordTables)(); _i < _a.length; _i++) {
437
+ table = _a[_i];
438
+ tables[table.name] = { table: table, records: [] };
321
439
  }
322
- sourceRecordLoaders = (0, SourceRecord_1.getSourceRecordLoaders)();
323
- for (_a = 0, sourceRecordLoaders_1 = sourceRecordLoaders; _a < sourceRecordLoaders_1.length; _a++) {
324
- sourceRecordLoader = sourceRecordLoaders_1[_a];
325
- if (!sourceRecordsMap[sourceRecordLoader.table.name]) {
326
- sourceRecordsMap[sourceRecordLoader.table.name] = {
327
- table: sourceRecordLoader.table,
328
- records: [],
329
- };
440
+ buildSources = new Set();
441
+ for (_b = 0, _c = (0, SourceRecord_1.getSourceRecordLoaders)(); _b < _c.length; _b++) {
442
+ _d = _c[_b], source = _d.source, loader = _d.loader;
443
+ buildSources.add(source);
444
+ if (!tables[loader.table.name]) {
445
+ tables[loader.table.name] = { table: loader.table, records: [] };
330
446
  }
331
- sourceRecordsMap[sourceRecordLoader.table.name].records.push(sourceRecordLoader.record);
447
+ tables[loader.table.name].records.push({ source: source, record: loader.record });
332
448
  }
333
- return [2 /*return*/, sourceRecordsMap];
449
+ return [2 /*return*/, { tables: tables, buildSources: buildSources }];
334
450
  });
335
451
  });
336
452
  };
@@ -421,6 +537,145 @@ var SourceRecordLoader = /** @class */ (function () {
421
537
  .sort();
422
538
  return '{' + keys.map(function (k) { return JSON.stringify(k) + ':' + _this.canonicalStringify(obj[k]); }).join(',') + '}';
423
539
  };
540
+ /** Memoized {@link resolveSourceVersion} — one resolution (and at most one warning) per source. */
541
+ SourceRecordLoader.prototype.sourceVersion = function (source) {
542
+ if (!this.sourceVersions.has(source)) {
543
+ this.sourceVersions.set(source, this.resolveSourceVersion(source));
544
+ }
545
+ return this.sourceVersions.get(source);
546
+ };
547
+ /**
548
+ * The declaring package's version, read from its own package.json at runtime. Resolution runs
549
+ * from the process cwd — the booting server's package, the one dependency tree every declaring
550
+ * package is reachable from (`@proteinjs/db` itself does not depend on the packages that
551
+ * declare records, so module-relative resolution could never find them). The package's entry
552
+ * is resolved (honoring exports maps, where `<pkg>/package.json` is usually not requireable),
553
+ * then the nearest package.json whose `name` matches is read walking up from it.
554
+ *
555
+ * Returns undefined where resolution is impossible — no Node `require` (browser bundles), or a
556
+ * package not resolvable from cwd. The sync then has no place in the version order for that
557
+ * package: it never touches its version-stamped rows, and what it writes is unversioned
558
+ * (see {@link isNewerStamp}). Logged once per boot so a misconfigured cwd is visible.
559
+ */
560
+ SourceRecordLoader.prototype.resolveSourceVersion = function (source) {
561
+ // The ambient CJS `require` — the only require carrying `.resolve` (module.require does
562
+ // not). Every use below goes through the variable, so bundlers never see a statically
563
+ // analyzable `require(...)` call; in a browser bundle the runtime attempts throw into
564
+ // their catches and the method degrades to undefined.
565
+ var nodeRequire = typeof require === 'function' && typeof require.resolve === 'function' ? require : undefined;
566
+ var cwd = typeof process !== 'undefined' && typeof process.cwd === 'function' ? process.cwd() : undefined;
567
+ if (nodeRequire && cwd) {
568
+ try {
569
+ var entryPath = nodeRequire.resolve(source, { paths: [cwd] });
570
+ var path = nodeRequire('path');
571
+ var fs = nodeRequire('fs');
572
+ // Walk up from the entry file to the package's own package.json (the name check skips
573
+ // nested stubs like a dist/package.json); stop at the filesystem root.
574
+ for (var directory = path.dirname(entryPath);; directory = path.dirname(directory)) {
575
+ var candidate = path.join(directory, 'package.json');
576
+ if (fs.existsSync(candidate)) {
577
+ var packageJson = JSON.parse(fs.readFileSync(candidate, 'utf8'));
578
+ if ((packageJson === null || packageJson === void 0 ? void 0 : packageJson.name) === source && typeof packageJson.version === 'string') {
579
+ return packageJson.version;
580
+ }
581
+ }
582
+ if (path.dirname(directory) === directory) {
583
+ break;
584
+ }
585
+ }
586
+ }
587
+ catch (error) {
588
+ // Unresolvable from cwd — reported below.
589
+ }
590
+ }
591
+ this.logger.warn({
592
+ message: "Could not resolve a version for source package '".concat(source, "' from '").concat(cwd, "' \u2014 its records sync without version ordering (this build never touches its version-stamped rows)"),
593
+ });
594
+ return undefined;
595
+ };
596
+ /**
597
+ * Whether a row's version stamp is strictly newer than the reconciling build's version of the
598
+ * same package — the guard that makes version skew of one package safe on a shared database:
599
+ * an older build never prunes (or flags) rows a newer build of the same package declared.
600
+ *
601
+ * Unversioned stamps (NULL — legacy rows, or builds whose version could not be resolved)
602
+ * carry no ordering and stay reconcilable (last-writer-wins, the pre-version behavior). A
603
+ * build whose OWN version is unresolvable cannot place itself in the order, so it never
604
+ * touches a version-stamped row — conservative: prefer leaving a removed row behind over
605
+ * deleting one that might be newer.
606
+ */
607
+ SourceRecordLoader.prototype.isNewerStamp = function (stampedVersion, reconcilingVersion) {
608
+ if (stampedVersion == null) {
609
+ return false;
610
+ }
611
+ if (reconcilingVersion == null) {
612
+ return true;
613
+ }
614
+ var comparison = this.compareVersions(stampedVersion, reconcilingVersion);
615
+ return comparison === undefined ? true : comparison > 0;
616
+ };
617
+ /**
618
+ * Semver comparison (major.minor.patch, prerelease-aware): negative when a < b, 0 when equal,
619
+ * positive when a > b, and undefined when either side does not parse as semver (unorderable —
620
+ * the caller treats that conservatively).
621
+ */
622
+ SourceRecordLoader.prototype.compareVersions = function (a, b) {
623
+ var parse = function (version) {
624
+ var _a;
625
+ var match = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?/.exec(version.trim());
626
+ if (!match) {
627
+ return undefined;
628
+ }
629
+ return { main: [Number(match[1]), Number(match[2]), Number(match[3])], prerelease: (_a = match[4]) === null || _a === void 0 ? void 0 : _a.split('.') };
630
+ };
631
+ var parsedA = parse(a);
632
+ var parsedB = parse(b);
633
+ if (!parsedA || !parsedB) {
634
+ return undefined;
635
+ }
636
+ for (var i = 0; i < 3; i++) {
637
+ if (parsedA.main[i] !== parsedB.main[i]) {
638
+ return parsedA.main[i] - parsedB.main[i];
639
+ }
640
+ }
641
+ if (!parsedA.prerelease && !parsedB.prerelease) {
642
+ return 0;
643
+ }
644
+ if (!parsedA.prerelease) {
645
+ return 1; // a release outranks any prerelease of the same triple
646
+ }
647
+ if (!parsedB.prerelease) {
648
+ return -1;
649
+ }
650
+ var length = Math.max(parsedA.prerelease.length, parsedB.prerelease.length);
651
+ for (var i = 0; i < length; i++) {
652
+ var identifierA = parsedA.prerelease[i];
653
+ var identifierB = parsedB.prerelease[i];
654
+ if (identifierA === undefined) {
655
+ return -1; // fewer identifiers sorts first when all shared ones are equal
656
+ }
657
+ if (identifierB === undefined) {
658
+ return 1;
659
+ }
660
+ var numericA = /^\d+$/.test(identifierA) ? Number(identifierA) : undefined;
661
+ var numericB = /^\d+$/.test(identifierB) ? Number(identifierB) : undefined;
662
+ if (numericA !== undefined && numericB !== undefined) {
663
+ if (numericA !== numericB) {
664
+ return numericA - numericB;
665
+ }
666
+ }
667
+ else if (numericA !== undefined) {
668
+ return -1; // numeric identifiers sort before alphanumeric ones
669
+ }
670
+ else if (numericB !== undefined) {
671
+ return 1;
672
+ }
673
+ else if (identifierA !== identifierB) {
674
+ return identifierA < identifierB ? -1 : 1;
675
+ }
676
+ }
677
+ return 0;
678
+ };
424
679
  return SourceRecordLoader;
425
680
  }());
426
681
  exports.SourceRecordLoader = SourceRecordLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"SourceRecordLoader.js","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceRecordLoader.js","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAAmD;AACnD,+CAA6F;AAE7F,4BAA0C;AAC1C,uDAAsD;AACtD,oCAA6C;AA4B7C;IAAA;QACU,WAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,+FAA+F;QACvF,mBAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;IA4jBjE,CAAC;IA1jBC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,iCAAI,GAAV;;;;;4BACmC,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;wBAAvD,KAA2B,SAA4B,EAArD,MAAM,YAAA,EAAE,YAAY,kBAAA;wBACtB,EAAE,GAAG,IAAA,kBAAa,GAAE,CAAC;wBACrB,OAAO,GAA4B,EAAE,CAAC;4CACjC,SAAS;;;;;;wCACZ,KAAqB,MAAM,CAAC,SAAS,CAAC,EAApC,KAAK,WAAA,EAAE,OAAO,aAAA,CAAuB;wCAGvC,WAAW,GAAG,OAAK,eAAe,CACtC,KAAK,EACL,OAAO,CAAC,GAAG,CAAC,UAAC,EAAU;gDAAR,MAAM,YAAA;4CAAO,OAAA,MAAM;wCAAN,CAAM,CAAC,CACpC,CAAC;wCAII,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,EAAU;gDAAR,MAAM,YAAA;4CAAO,OAAC,MAAc,CAAC,WAAW,CAAC;wCAA5B,CAA4B,CAAC,CAAC;wCAClE,qBAAM,OAAK,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,EAAA;;wCAA5F,OAAO,GAAG,SAAkF;wCAE9F,WAAW,GAAG,CAAC,CAAC;wCAChB,WAAW,GAAG,CAAC,CAAC;wCAChB,cAAc,GAAG,CAAC,CAAC;wCACnB,YAAY,GAAG,CAAC,CAAC;wCACjB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;8CACA,EAAP,mBAAO;;;6CAAP,CAAA,qBAAO,CAAA;wCAA7B,kBAAkB,EAAhB,MAAM,YAAA,EAAE,MAAM,YAAA;wCACrB,YAAY,GAAG,MAAM,CAAC;wCAC1B,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;wCACvC,mFAAmF;wCACnF,wFAAwF;wCACxF,mFAAmF;wCACnF,mBAAmB;wCACnB,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;wCAC9B,aAAa,GAAG,OAAK,aAAa,CAAC,MAAM,CAAC,CAAC;wCACjD,IAAI,aAAa,KAAK,SAAS,EAAE;4CAC/B,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC;yCACnD;wCACsB,qBAAM,EAAE,CAAC,GAAG,CAAC,KAAK,YAAI,GAAC,WAAW,IAAI,YAAoB,CAAC,WAAW,CAAC,MAAG,EAAA;;wCAA3F,cAAc,GAAG,SAA0E;6CAC7F,cAAc,EAAd,wBAAc;wCAChB,IACE,cAAc,CAAC,aAAa,KAAK,MAAM;4CACvC,OAAK,YAAY,CAAC,cAAc,CAAC,oBAAoB,EAAE,aAAa,CAAC,EACrE;4CACA,mFAAmF;4CACnF,mEAAmE;4CACnE,YAAY,IAAI,CAAC,CAAC;4CAClB,IAAI,mCAAgB,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;4CACpE,yBAAS;yCACV;wCAED,IAAI,cAAc,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,EAAE;4CACzC,iFAAiF;4CACjF,uDAAuD;4CACvD,YAAY,yBAAQ,YAAY,KAAE,EAAE,EAAE,cAAc,CAAC,EAAE,GAAE,CAAC;yCAC3D;wCAED,IAAI,cAAc,CAAC,kBAAkB,KAAK,IAAI,EAAE;4CAC9C,8EAA8E;4CAC9E,+EAA+E;4CAC/E,YAAY,IAAI,CAAC,CAAC;4CAClB,OAAK,MAAM,CAAC,IAAI,CAAC;gDACf,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,qDAAkD;gDACzE,GAAG,YAAI,GAAC,WAAW,IAAI,YAAoB,CAAC,WAAW,CAAC,EAAE,KAAE,GAAE,cAAc,CAAC,EAAE,KAAE;6CAClF,CAAC,CAAC;yCACJ;wCAEG,qBAAM,OAAK,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,EAAA;;6CAA1D,SAA0D,EAA1D,wBAA0D;wCAC5D,qBAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAA;;wCAApC,SAAoC,CAAC;wCACrC,WAAW,IAAI,CAAC,CAAC;;;wCAEjB,cAAc,IAAI,CAAC,CAAC;;;4CAGC,qBAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAA;;wCAArD,cAAc,GAAG,SAAoC;wCAC3D,YAAY,yBAAQ,YAAY,GAAK,cAAc,CAAE,CAAC;wCACtD,WAAW,IAAI,CAAC,CAAC;;;wCAGnB,6FAA6F;wCAC7F,IAAI,mCAAgB,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAmB,CAAC,CAAC;;;wCAtD1C,IAAO,CAAA;;6CAyDxB,qBAAM,OAAK,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,EAAA;;wCAAzD,OAAO,GAAG,SAA+C;wCAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;4CACpB,OAAO,EAAE,WAAW;4CACpB,OAAO,EAAE,WAAW;4CACpB,SAAS,EAAE,cAAc;4CACzB,OAAO,EAAE,YAAY;4CACrB,OAAO,EAAE,OAAO,CAAC,WAAW;4CAC5B,cAAc,EAAE,OAAO,CAAC,kBAAkB;4CAC1C,YAAY,cAAA;4CACZ,OAAO,SAAA;yCACR,CAAC;wCACF,OAAK,MAAM,CAAC,IAAI,CAAC;4CACf,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,sBAAY,OAAO,CAAC,MAAM,cAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,iBAAc;4CAC7G,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;yCACzB,CAAC,CAAC;;;;;;6BA1FmB,MAAM;;;;;;;;;;;sDAAnB,SAAS;;;;;;;4BA6FpB,sBAAO,OAAO,EAAC;;;;KAChB;IAED;;;;;;;;;OASG;IACW,6CAAgB,GAA9B,UACE,EAAM,EACN,KAAiB,EACjB,WAAmB,EACnB,YAAyB,EACzB,eAA0B;;;;;;;;;wBAEpB,MAAM,GAAG,MAAA,KAAK,CAAC,mBAAmB,CAAC,eAAe,mCAAI,QAAQ,CAAC;wBACrE,IAAI,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,IAAI,CAAC,EAAE;4BAC/C,sBAAO,EAAE,WAAW,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAC;yBACnE;wBAEK,EAAE,GAAG,uBAAY,CAAC,UAAU,CAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3F,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAQ,EAAE,CAAC,CAAC;wBACjG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC9B,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAsB,EAAE,CAAC,CAAC;yBAChG;wBAEkC,qBAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,EAAA;;wBAAtD,UAAU,GAAmB,SAAyB;wBACtD,YAAY,GAAG,UAAC,SAAuB;4BAC3C,OAAA,KAAI,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAuB,CAAC,CAAC;wBAAxG,CAAwG,CAAC;wBACrG,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,SAAS,IAAK,OAAA,CAAC,YAAY,CAAC,SAAS,CAAC,EAAxB,CAAwB,CAAC,CAAC;wBAC5E,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;wBAC/D,IAAI,YAAY,GAAG,CAAC,EAAE;4BACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gCACf,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,oBAAU,YAAY,oBAAU,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,4CAAkC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,2CAAmC;gCAC3L,GAAG,YAAI,GAAC,WAAW,IAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAC,SAAS,IAAK,OAAC,SAAiB,CAAC,WAAW,CAAC,EAA/B,CAA+B,CAAC,KAAE;6BAC5G,CAAC,CAAC;yBACJ;wBAED,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;4BAC9B,sBAAO,EAAE,WAAW,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,YAAY,cAAA,EAAE,EAAC;yBAChE;6BAEG,CAAA,MAAM,KAAK,QAAQ,CAAA,EAAnB,wBAAmB;wBACf,QAAQ,GAAG,uBAAY,CAAC,UAAU,CAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,EAAE,CAAC,CAAC;;wBAChF,qBAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAA;4BAAtD,uBAAS,cAAW,GAAE,SAAgC,EAAE,qBAAkB,GAAE,CAAC,EAAE,eAAY,eAAA,OAAG;;wBAG5F,kBAAkB,GAAG,CAAC,CAAC;8BACe,EAAd,iCAAc;;;6BAAd,CAAA,4BAAc,CAAA;wBAA/B,aAAa;wBAClB,qBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAA;;6BAA1D,SAA0D,EAA1D,wBAA0D;wBAC5D,qBAAM,EAAE,CAAC,MAAM,CAAC,KAAK,aAAI,EAAE,EAAE,aAAa,CAAC,EAAE,IAAK,MAAM,CAAC,MAAM,EAAG,EAAA;;wBAAlE,SAAkE,CAAC;wBACnE,kBAAkB,IAAI,CAAC,CAAC;wBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,mEAAgE;4BACvF,GAAG;oCACD,EAAE,EAAE,aAAa,CAAC,EAAE;;gCACpB,GAAC,WAAW,IAAI,aAAqB,CAAC,WAAW,CAAC;gCAClD,SAAM,GAAE,aAAa,CAAC,aAAa;mCACpC;yBACF,CAAC,CAAC;;;wBAXqB,IAAc,CAAA;;4BAe1C,sBAAO,EAAE,WAAW,EAAE,CAAC,EAAE,kBAAkB,oBAAA,EAAE,YAAY,cAAA,EAAE,EAAC;;;;KAC7D;IAED;;;;;;OAMG;IACW,yCAAY,GAA1B,UAA2B,EAAM,EAAE,KAAiB,EAAE,WAAmB;;;;;;;;wBACvE,IAAI,CAAC,MAAA,KAAK,CAAC,mBAAmB,CAAC,eAAe,mCAAI,QAAQ,CAAC,KAAK,MAAM,EAAE;4BACtE,sBAAO,CAAC,EAAC;yBACV;wBAEK,EAAE,GAAG,uBAAY,CAAC,UAAU,CAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC3F,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC9B,qBAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,EAAA;;wBAAnD,OAAO,GAAmB,SAAyB;wBACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gCACf,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,eAAK,OAAO,CAAC,MAAM,4BAAkB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,8EAAsE;gCACrL,GAAG,YAAI,GAAC,WAAW,IAAG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAC,MAAc,CAAC,WAAW,CAAC,EAA5B,CAA4B,CAAC,KAAE;6BAC9E,CAAC,CAAC;yBACJ;wBAED,sBAAO,OAAO,CAAC,MAAM,EAAC;;;;KACvB;IAED;;;;;OAKG;IACK,4CAAe,GAAvB,UAAwB,KAAiB,EAAE,OAAoD;;QAC7F,IAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,IAAM,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,WAAI,KAAK,CAAC,IAAI,+CAAqC,UAAU,4CAAyC,CACvG,CAAC;SACH;QAED,IAAM,cAAc,GAAG,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,0CAAE,MAAM,MAAK,IAAI,CAAC;QAC/D,IAAM,aAAa,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,IAAI,CAC9C,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,EAA9F,CAA8F,CAC1G,CAAC;QACF,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE;YACrC,MAAM,IAAI,KAAK,CACb,WAAI,KAAK,CAAC,IAAI,+CAAqC,UAAU,+CAAuC;gBAClG,2FAA2F;gBAC3F,+CAA+C,CAClD,CAAC;SACH;QAED,IAAM,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;QACtC,KAAqB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;YAAzB,IAAM,MAAM,gBAAA;YACf,IAAM,KAAK,GAAI,MAAc,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBACzC,MAAM,IAAI,KAAK,CACb,WAAI,KAAK,CAAC,IAAI,uEAA6D,UAAU,8BAAoB,MAAM,CAAC,EAAE,OAAI,CACvH,CAAC;aACH;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACnB,MAAM,IAAI,KAAK,CACb,WAAI,KAAK,CAAC,IAAI,qEAA2D,UAAU,kBAAQ,KAAK,cAAM;oBACpG,4CAA4C,CAC/C,CAAC;aACH;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACvB;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACW,uCAAU,GAAxB,UAAyB,KAAiB,EAAE,YAAiB,EAAE,cAAmB;;;;;;wBAC1E,UAAU,GAAG,IAAI,yBAAgB,CAAC,KAAK,CAAC,CAAC;wBACtB,qBAAM,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAA;;wBAA3D,gBAAgB,GAAG,SAAwC;wBACtC,qBAAM,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,EAAA;;wBAA/D,kBAAkB,GAAG,SAA0C;wBACrE,KAAW,UAAU,IAAI,gBAAgB,EAAE;4BACzC,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;gCAC/E,SAAS;6BACV;4BAEK,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;4BAC3C,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;4BACrD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE;gCACjE,sBAAO,IAAI,EAAC;6BACb;yBACF;wBAED,sBAAO,KAAK,EAAC;;;;KACd;IAED;;;OAGG;IACW,4CAAe,GAA7B;;;;gBACQ,MAAM,GAAqB,EAAE,CAAC;gBACpC,WAA2C,EAAvB,SAAA,oCAAqB,GAAE,EAAvB,cAAuB,EAAvB,IAAuB,EAAE;oBAAlC,KAAK;oBACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,OAAA,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBAC7C;gBAEK,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBACvC,WAAyD,EAAxB,SAAA,qCAAsB,GAAE,EAAxB,cAAwB,EAAxB,IAAwB,EAAE;oBAAhD,WAAkB,EAAhB,MAAM,YAAA,EAAE,MAAM,YAAA;oBACzB,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;qBAClE;oBAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC3E;gBAED,sBAAO,EAAE,MAAM,QAAA,EAAE,YAAY,cAAA,EAAE,EAAC;;;KACjC;IAED;;;;;;;;;;;;OAYG;IACK,6CAAgB,GAAxB,UAAyB,MAAW,EAAE,QAAa,EAAE,IAAY;QAC/D,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACtC,IAAI,MAAM,IAAI,QAAQ,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;YACD,OAAO,UAAG,IAAI,sBAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAE,CAAC;SAC1F;QAED,IAAI,OAAO,MAAM,KAAK,OAAO,QAAQ,EAAE;YACrC,OAAO,UAAG,IAAI,qCAA2B,OAAO,MAAM,wBAAc,OAAO,QAAQ,CAAE,CAAC;SACvF;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9G,IAAM,WAAW,GACf,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtG,OAAO,UAAG,IAAI,sBAAY,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAc,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAE,CAAC;SAChG;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrD,OAAO,UAAG,IAAI,8CAAoC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAsB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAE,CAAC;SACxH;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;gBACrC,OAAO,UAAG,IAAI,oCAA0B,MAAM,CAAC,MAAM,wBAAc,QAAQ,CAAC,MAAM,CAAE,CAAC;aACtF;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAG,IAAI,cAAI,CAAC,MAAG,CAAC,CAAC;gBAC9E,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;YACD,OAAO,IAAI,CAAC;SACb;QAED,8EAA8E;QAC9E,2EAA2E;QAC3E,6EAA6E;QAC7E,mCAAmC;QACnC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;YACzE,OAAO,UAAG,IAAI,qBAAkB,CAAC;SAClC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,+CAAkB,GAA1B,UAA2B,KAAc;QAAzC,iBAiBC;QAhBC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,uEAAuE;YACvE,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAvD,CAAuD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;SACxG;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,+DAA+D;QAC/D,IAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aAC1B,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAApB,CAAoB,CAAC;aACnC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAzD,CAAyD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1G,CAAC;IAED,mGAAmG;IAC3F,0CAAa,GAArB,UAAsB,MAAc;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,iDAAoB,GAA5B,UAA6B,MAAc;QACzC,wFAAwF;QACxF,sFAAsF;QACtF,sFAAsF;QACtF,sDAAsD;QACtD,IAAM,WAAW,GACf,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,IAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5G,IAAI,WAAW,IAAI,GAAG,EAAE;YACtB,IAAI;gBACF,IAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChE,IAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC7B,sFAAsF;gBACtF,uEAAuE;gBACvE,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBACnF,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;oBACvD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;wBAC5B,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;wBACnE,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,MAAK,MAAM,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE;4BAC3E,OAAO,WAAW,CAAC,OAAO,CAAC;yBAC5B;qBACF;oBAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;wBACzC,MAAM;qBACP;iBACF;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,0CAA0C;aAC3C;SACF;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,0DAAmD,MAAM,qBAAW,GAAG,2GAAmG;SACpL,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;OAUG;IACK,yCAAY,GAApB,UAAqB,cAAyC,EAAE,kBAAsC;QACpG,IAAI,cAAc,IAAI,IAAI,EAAE;YAC1B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,kBAAkB,IAAI,IAAI,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC5E,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACK,4CAAe,GAAvB,UAAwB,CAAS,EAAE,CAAS;QAC1C,IAAM,KAAK,GAAG,UAAC,OAAe;;YAC5B,IAAM,KAAK,GAAG,+DAA+D,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YAED,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5G,CAAC,CAAC;QAEF,IAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;YACxB,OAAO,SAAS,CAAC;SAClB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1C;SACF;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC9C,OAAO,CAAC,CAAC;SACV;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,OAAO,CAAC,CAAC,CAAC,uDAAuD;SAClE;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,OAAO,CAAC,CAAC,CAAC;SACX;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,+DAA+D;aAC3E;YACD,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,CAAC;aACV;YAED,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACpD,IAAI,QAAQ,KAAK,QAAQ,EAAE;oBACzB,OAAO,QAAQ,GAAG,QAAQ,CAAC;iBAC5B;aACF;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACjC,OAAO,CAAC,CAAC,CAAC,CAAC,oDAAoD;aAChE;iBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACjC,OAAO,CAAC,CAAC;aACV;iBAAM,IAAI,WAAW,KAAK,WAAW,EAAE;gBACtC,OAAO,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;SACF;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IACH,yBAAC;AAAD,CAAC,AAhkBD,IAgkBC;AAhkBY,gDAAkB"}
@@ -43,6 +43,8 @@ export declare class MigrationTable extends Table<Migration> {
43
43
  created: import("../Table").Column<Moment, any>;
44
44
  updated: import("../Table").Column<Moment, any>;
45
45
  isLoadedFromSource: import("../Table").Column<boolean | undefined, any>;
46
+ sourcePackage: import("../Table").Column<string | undefined, any>;
47
+ sourcePackageVersion: import("../Table").Column<string | undefined, any>;
46
48
  } & {} & {
47
49
  description: import("../Table").Column<string, any>;
48
50
  manual: import("../Table").Column<boolean | undefined, any>;