@proteinjs/db 1.18.1 → 1.19.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.
package/dist/src/Db.d.ts CHANGED
@@ -54,6 +54,22 @@ export declare class Db<R extends Record = Record> implements DbService<R> {
54
54
  delete<T extends R>(table: Table<T>, query: Query<T>): Promise<number>;
55
55
  private runColumnBeforeDeletes;
56
56
  private runCascadeDeletions;
57
+ /**
58
+ * Reverse cascades driven by column-level flags on reference columns only.
59
+ * Supports:
60
+ * - ReferenceColumn
61
+ * - DynamicReferenceColumn
62
+ * - ReferenceArrayColumn (stringified JSON) via LIKE-prefilter + exact check
63
+ */
64
+ private runColumnReverseCascadeDeletions;
65
+ /**
66
+ * Reverse cascade for ReferenceArrayColumn that stores stringified JSON array of IDs.
67
+ * Strategy:
68
+ * 1) LIKE prefilter with %"<id>"% in chunks
69
+ * 2) Exact check in memory via deserialized ReferenceArray._ids
70
+ * 3) Delete by primary key in chunks
71
+ */
72
+ private reverseDeleteReferenceArrayHolders;
57
73
  query<T extends R>(table: Table<T>, query: Query<T>, options?: QueryOptions<T>): Promise<T[]>;
58
74
  private _query;
59
75
  private preloadReferences;
@@ -85,5 +101,6 @@ export declare class Db<R extends Record = Record> implements DbService<R> {
85
101
  * ```
86
102
  */
87
103
  runTransaction<T>(fn: () => Promise<T>): Promise<T>;
104
+ private chunk;
88
105
  }
89
106
  //# sourceMappingURL=Db.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
package/dist/src/Db.js CHANGED
@@ -224,7 +224,7 @@ var Db = /** @class */ (function () {
224
224
  };
225
225
  Db.prototype.delete = function (table, query) {
226
226
  return __awaiter(this, void 0, void 0, function () {
227
- var _query, qb, recordsToDelete, recordsToDeleteIds, deleteQb, generateDelete, recordDeleteCount;
227
+ var qb, recordsToDelete, recordsToDeleteIds, deleteQb, generateDelete, recordDeleteCount;
228
228
  var _this = this;
229
229
  return __generator(this, function (_a) {
230
230
  switch (_a.label) {
@@ -232,35 +232,6 @@ var Db = /** @class */ (function () {
232
232
  if (!this.runAsSystem) {
233
233
  this.auth.canDelete(table);
234
234
  }
235
- _query = function (table, query) { return __awaiter(_this, void 0, void 0, function () {
236
- var qb, generateQuery, serializedRecords, recordSerializer, records;
237
- var _this = this;
238
- return __generator(this, function (_a) {
239
- switch (_a.label) {
240
- case 0:
241
- qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(table, query);
242
- return [4 /*yield*/, this.addColumnQueries(table, qb, 'delete')];
243
- case 1:
244
- _a.sent();
245
- generateQuery = function (config) {
246
- return qb.toSql(_this.statementConfigFactory.getStatementConfig(config));
247
- };
248
- return [4 /*yield*/, this.dbDriver.runQuery(generateQuery, this.currentTransaction)];
249
- case 2:
250
- serializedRecords = _a.sent();
251
- recordSerializer = new Record_1.RecordSerializer(table);
252
- return [4 /*yield*/, Promise.all(serializedRecords.map(function (serializedRecord) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
253
- return [2 /*return*/, recordSerializer.deserialize(serializedRecord)];
254
- }); }); }))];
255
- case 3:
256
- records = _a.sent();
257
- return [4 /*yield*/, this.preloadReferences(records)];
258
- case 4:
259
- _a.sent();
260
- return [2 /*return*/, records];
261
- }
262
- });
263
- }); };
264
235
  qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(table, query);
265
236
  return [4 /*yield*/, this.addColumnQueries(table, qb, 'delete')];
266
237
  case 1:
@@ -289,8 +260,11 @@ var Db = /** @class */ (function () {
289
260
  return [4 /*yield*/, this.runCascadeDeletions(table, recordsToDelete)];
290
261
  case 6:
291
262
  _a.sent();
292
- return [4 /*yield*/, this.tableWatcherRunner.runAfterDeleteTableWatchers(table, recordDeleteCount, recordsToDelete, qb, deleteQb)];
263
+ return [4 /*yield*/, this.runColumnReverseCascadeDeletions(table, recordsToDelete)];
293
264
  case 7:
265
+ _a.sent();
266
+ return [4 /*yield*/, this.tableWatcherRunner.runAfterDeleteTableWatchers(table, recordDeleteCount, recordsToDelete, qb, deleteQb)];
267
+ case 8:
294
268
  _a.sent();
295
269
  return [2 /*return*/, recordDeleteCount];
296
270
  }
@@ -378,6 +352,191 @@ var Db = /** @class */ (function () {
378
352
  });
379
353
  });
380
354
  };
355
+ /**
356
+ * Reverse cascades driven by column-level flags on reference columns only.
357
+ * Supports:
358
+ * - ReferenceColumn
359
+ * - DynamicReferenceColumn
360
+ * - ReferenceArrayColumn (stringified JSON) via LIKE-prefilter + exact check
361
+ */
362
+ Db.prototype.runColumnReverseCascadeDeletions = function (table, deletedRecords) {
363
+ var _a;
364
+ return __awaiter(this, void 0, void 0, function () {
365
+ var deletedIds, deletedIdSet, allTables, _i, allTables_1, referencingTable, _b, _c, _d, _e, colPropName, col, dynTableProp, qb, deleteCount, ctorName, qb, deleteCount;
366
+ return __generator(this, function (_f) {
367
+ switch (_f.label) {
368
+ case 0:
369
+ deletedIds = deletedRecords.map(function (r) { return r.id; });
370
+ if (deletedIds.length === 0) {
371
+ return [2 /*return*/];
372
+ }
373
+ deletedIdSet = new Set(deletedIds);
374
+ allTables = (0, Table_1.getTables)();
375
+ _i = 0, allTables_1 = allTables;
376
+ _f.label = 1;
377
+ case 1:
378
+ if (!(_i < allTables_1.length)) return [3 /*break*/, 13];
379
+ referencingTable = allTables_1[_i];
380
+ _b = referencingTable.columns;
381
+ _c = [];
382
+ for (_d in _b)
383
+ _c.push(_d);
384
+ _e = 0;
385
+ _f.label = 2;
386
+ case 2:
387
+ if (!(_e < _c.length)) return [3 /*break*/, 12];
388
+ _d = _c[_e];
389
+ if (!(_d in _b)) return [3 /*break*/, 11];
390
+ colPropName = _d;
391
+ col = referencingTable.columns[colPropName];
392
+ // Only act if the column explicitly opted in
393
+ if (!col || col.reverseCascadeDelete !== true) {
394
+ return [3 /*break*/, 11];
395
+ }
396
+ if (!(typeof col.dynamicRefTableColName === 'string' && col.dynamicRefTableColName.length > 0)) return [3 /*break*/, 5];
397
+ dynTableProp = (0, Table_1.getColumnPropertyName)(referencingTable, col.dynamicRefTableColName);
398
+ if (!dynTableProp) {
399
+ return [3 /*break*/, 11];
400
+ }
401
+ qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(referencingTable);
402
+ return [4 /*yield*/, this.addColumnQueries(referencingTable, qb, 'read')];
403
+ case 3:
404
+ _f.sent();
405
+ qb.condition({ field: dynTableProp, operator: '=', value: table.name });
406
+ qb.condition({ field: colPropName, operator: 'IN', value: deletedIds });
407
+ this.logger.info({
408
+ message: "Executing reverse cascade (dynamic) for table: ".concat(table.name),
409
+ obj: { referencingTable: referencingTable.name, columnPropertyName: colPropName, deletedIds: deletedIds },
410
+ });
411
+ return [4 /*yield*/, this.delete(referencingTable, qb)];
412
+ case 4:
413
+ deleteCount = _f.sent();
414
+ this.logger.info({
415
+ message: "Reverse cascade (dynamic) deleted ".concat(deleteCount, " record").concat(deleteCount == 1 ? '' : 's'),
416
+ });
417
+ return [3 /*break*/, 11];
418
+ case 5:
419
+ // ReferenceColumn/ReferenceArrayColumn must match the target table
420
+ if (col.referenceTable !== table.name) {
421
+ return [3 /*break*/, 11];
422
+ }
423
+ ctorName = (_a = col.constructor) === null || _a === void 0 ? void 0 : _a.name;
424
+ if (!(ctorName === 'ReferenceColumn')) return [3 /*break*/, 8];
425
+ qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(referencingTable);
426
+ return [4 /*yield*/, this.addColumnQueries(referencingTable, qb, 'read')];
427
+ case 6:
428
+ _f.sent();
429
+ qb.condition({ field: colPropName, operator: 'IN', value: deletedIds });
430
+ this.logger.info({
431
+ message: "Executing reverse cascade (ReferenceColumn) for table: ".concat(table.name),
432
+ obj: { referencingTable: referencingTable.name, columnPropertyName: colPropName, deletedIds: deletedIds },
433
+ });
434
+ return [4 /*yield*/, this.delete(referencingTable, qb)];
435
+ case 7:
436
+ deleteCount = _f.sent();
437
+ this.logger.info({
438
+ message: "Reverse cascade (ReferenceColumn) deleted ".concat(deleteCount, " record").concat(deleteCount == 1 ? '' : 's'),
439
+ });
440
+ return [3 /*break*/, 11];
441
+ case 8:
442
+ if (!(ctorName === 'ReferenceArrayColumn')) return [3 /*break*/, 10];
443
+ return [4 /*yield*/, this.reverseDeleteReferenceArrayHolders(referencingTable, colPropName, deletedIds, deletedIdSet)];
444
+ case 9:
445
+ _f.sent();
446
+ return [3 /*break*/, 11];
447
+ case 10: return [3 /*break*/, 11];
448
+ case 11:
449
+ _e++;
450
+ return [3 /*break*/, 2];
451
+ case 12:
452
+ _i++;
453
+ return [3 /*break*/, 1];
454
+ case 13: return [2 /*return*/];
455
+ }
456
+ });
457
+ });
458
+ };
459
+ /**
460
+ * Reverse cascade for ReferenceArrayColumn that stores stringified JSON array of IDs.
461
+ * Strategy:
462
+ * 1) LIKE prefilter with %"<id>"% in chunks
463
+ * 2) Exact check in memory via deserialized ReferenceArray._ids
464
+ * 3) Delete by primary key in chunks
465
+ */
466
+ Db.prototype.reverseDeleteReferenceArrayHolders = function (referencingTable, columnPropertyName, deletedIds, deletedIdSet) {
467
+ return __awaiter(this, void 0, void 0, function () {
468
+ var likeChunkSize, deleteChunkSize, _i, _a, idsChunk, qb, likeConds, candidates, holderIdsToDelete, _b, candidates_1, rec, refArr, ids, uniqueIds, _c, _d, delChunk, delQb, deleteCount;
469
+ return __generator(this, function (_e) {
470
+ switch (_e.label) {
471
+ case 0:
472
+ likeChunkSize = 100;
473
+ deleteChunkSize = 1000;
474
+ this.logger.info({
475
+ message: "Executing reverse cascade (ReferenceArrayColumn) for table",
476
+ obj: { referencingTable: referencingTable.name, columnPropertyName: columnPropertyName, deletedIdsCount: deletedIds.length },
477
+ });
478
+ _i = 0, _a = this.chunk(deletedIds, likeChunkSize);
479
+ _e.label = 1;
480
+ case 1:
481
+ if (!(_i < _a.length)) return [3 /*break*/, 8];
482
+ idsChunk = _a[_i];
483
+ qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(referencingTable);
484
+ return [4 /*yield*/, this.addColumnQueries(referencingTable, qb, 'read')];
485
+ case 2:
486
+ _e.sent();
487
+ qb.select({ fields: ['id', columnPropertyName] });
488
+ qb.and([{ field: columnPropertyName, operator: 'IS NOT NULL' }]);
489
+ likeConds = idsChunk.map(function (id) {
490
+ var escaped = String(id).replace(/"/g, '\\"');
491
+ return { field: columnPropertyName, operator: 'LIKE', value: "%\"".concat(escaped, "\"%") };
492
+ });
493
+ qb.or(likeConds);
494
+ return [4 /*yield*/, this._query(referencingTable, qb)];
495
+ case 3:
496
+ candidates = _e.sent();
497
+ holderIdsToDelete = [];
498
+ for (_b = 0, candidates_1 = candidates; _b < candidates_1.length; _b++) {
499
+ rec = candidates_1[_b];
500
+ refArr = rec[columnPropertyName];
501
+ ids = (refArr && refArr._ids ? refArr._ids : []);
502
+ if (!(ids === null || ids === void 0 ? void 0 : ids.length)) {
503
+ continue;
504
+ }
505
+ if (ids.some(function (x) { return deletedIdSet.has(x); })) {
506
+ holderIdsToDelete.push(rec.id);
507
+ }
508
+ }
509
+ if (holderIdsToDelete.length === 0) {
510
+ return [3 /*break*/, 7];
511
+ }
512
+ uniqueIds = Array.from(new Set(holderIdsToDelete));
513
+ _c = 0, _d = this.chunk(uniqueIds, deleteChunkSize);
514
+ _e.label = 4;
515
+ case 4:
516
+ if (!(_c < _d.length)) return [3 /*break*/, 7];
517
+ delChunk = _d[_c];
518
+ delQb = new QueryBuilderFactory_1.QueryBuilderFactory()
519
+ .getQueryBuilder(referencingTable)
520
+ .condition({ field: 'id', operator: 'IN', value: delChunk });
521
+ return [4 /*yield*/, this.delete(referencingTable, delQb)];
522
+ case 5:
523
+ deleteCount = _e.sent();
524
+ this.logger.info({
525
+ message: "Reverse cascade (ReferenceArrayColumn) deleted ".concat(deleteCount, " record").concat(deleteCount == 1 ? '' : 's'),
526
+ obj: { referencingTable: referencingTable.name, columnPropertyName: columnPropertyName, batchSize: delChunk.length },
527
+ });
528
+ _e.label = 6;
529
+ case 6:
530
+ _c++;
531
+ return [3 /*break*/, 4];
532
+ case 7:
533
+ _i++;
534
+ return [3 /*break*/, 1];
535
+ case 8: return [2 /*return*/];
536
+ }
537
+ });
538
+ });
539
+ };
381
540
  Db.prototype.query = function (table, query, options) {
382
541
  return __awaiter(this, void 0, void 0, function () {
383
542
  var qb;
@@ -626,6 +785,17 @@ var Db = /** @class */ (function () {
626
785
  });
627
786
  });
628
787
  };
788
+ // Utility: simple chunker
789
+ Db.prototype.chunk = function (arr, size) {
790
+ if (size <= 0) {
791
+ return [arr];
792
+ }
793
+ var out = [];
794
+ for (var i = 0; i < arr.length; i += size) {
795
+ out.push(arr.slice(i, i + size));
796
+ }
797
+ return out;
798
+ };
629
799
  return Db;
630
800
  }());
631
801
  exports.Db = Db;
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { DbDriver } from '../../src/Db';
2
+ import { Table } from '../../src/Table';
3
+ import { Record } from '../../src/Record';
4
+ import { Reference } from '../../src/reference/Reference';
5
+ import { ReferenceArray } from '../../src/reference/ReferenceArray';
6
+ import { DefaultTransactionContextFactory } from '../../src/transaction/TransactionContextFactory';
7
+ /**
8
+ * ---------- Test Entities ----------
9
+ * (Isolated per scenario so we never mount multiple cascade columns
10
+ * to the same target on a single table.)
11
+ */
12
+ interface MemberRef extends Record {
13
+ name: string;
14
+ }
15
+ interface GroupRef extends Record {
16
+ groupName: string;
17
+ memberRef?: Reference<MemberRef> | null;
18
+ }
19
+ interface MemberArr extends Record {
20
+ name: string;
21
+ }
22
+ interface GroupArr extends Record {
23
+ groupName: string;
24
+ memberRefs?: ReferenceArray<MemberArr> | null;
25
+ }
26
+ interface MemberDyn extends Record {
27
+ name: string;
28
+ }
29
+ interface GroupDyn extends Record {
30
+ groupName: string;
31
+ memberDynTableName?: string | null;
32
+ memberDynRef?: Reference<MemberDyn> | null;
33
+ }
34
+ interface Post extends Record {
35
+ title: string;
36
+ }
37
+ interface Comment extends Record {
38
+ text: string;
39
+ postRef?: Reference<Post> | null;
40
+ }
41
+ interface MemberArrRev extends Record {
42
+ name: string;
43
+ }
44
+ interface GroupArrRev extends Record {
45
+ groupName: string;
46
+ memberRefs?: ReferenceArray<MemberArrRev> | null;
47
+ }
48
+ interface Worker extends Record {
49
+ name: string;
50
+ }
51
+ interface Task extends Record {
52
+ title: string;
53
+ assigneeTableName?: string | null;
54
+ assigneeRef?: Reference<Worker> | null;
55
+ }
56
+ /**
57
+ * ---------- Table Classes ----------
58
+ */
59
+ export declare class MemberRefTable extends Table<MemberRef> {
60
+ name: string;
61
+ columns: {
62
+ id: import("../../src/Table").Column<string, any>;
63
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
64
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
65
+ } & {} & {
66
+ name: import("../../src/Table").Column<string, any>;
67
+ } & {};
68
+ }
69
+ export declare class GroupRefTable extends Table<GroupRef> {
70
+ name: string;
71
+ columns: {
72
+ id: import("../../src/Table").Column<string, any>;
73
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
74
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
75
+ } & {} & {
76
+ groupName: import("../../src/Table").Column<string, any>;
77
+ memberRef: import("../../src/Table").Column<Reference<MemberRef> | null | undefined, any>;
78
+ } & {};
79
+ }
80
+ export declare class MemberArrTable extends Table<MemberArr> {
81
+ name: string;
82
+ columns: {
83
+ id: import("../../src/Table").Column<string, any>;
84
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
85
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
86
+ } & {} & {
87
+ name: import("../../src/Table").Column<string, any>;
88
+ } & {};
89
+ }
90
+ export declare class GroupArrTable extends Table<GroupArr> {
91
+ name: string;
92
+ columns: {
93
+ id: import("../../src/Table").Column<string, any>;
94
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
95
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
96
+ } & {} & {
97
+ groupName: import("../../src/Table").Column<string, any>;
98
+ memberRefs: import("../../src/Table").Column<ReferenceArray<MemberArr> | null | undefined, any>;
99
+ } & {};
100
+ }
101
+ export declare class MemberDynTable extends Table<MemberDyn> {
102
+ name: string;
103
+ columns: {
104
+ id: import("../../src/Table").Column<string, any>;
105
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
106
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
107
+ } & {} & {
108
+ name: import("../../src/Table").Column<string, any>;
109
+ } & {};
110
+ }
111
+ export declare class GroupDynTable extends Table<GroupDyn> {
112
+ name: string;
113
+ columns: {
114
+ id: import("../../src/Table").Column<string, any>;
115
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
116
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
117
+ } & {} & {
118
+ groupName: import("../../src/Table").Column<string, any>;
119
+ memberDynTableName: import("../../src/Table").Column<string | null | undefined, any>;
120
+ memberDynRef: import("../../src/Table").Column<Reference<MemberDyn> | null | undefined, any>;
121
+ } & {};
122
+ }
123
+ export declare class PostTable extends Table<Post> {
124
+ name: string;
125
+ columns: {
126
+ id: import("../../src/Table").Column<string, any>;
127
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
128
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
129
+ } & {} & {
130
+ title: import("../../src/Table").Column<string, any>;
131
+ } & {};
132
+ }
133
+ export declare class CommentTable extends Table<Comment> {
134
+ name: string;
135
+ columns: {
136
+ id: import("../../src/Table").Column<string, any>;
137
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
138
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
139
+ } & {} & {
140
+ text: import("../../src/Table").Column<string, any>;
141
+ postRef: import("../../src/Table").Column<Reference<Post> | null | undefined, any>;
142
+ } & {};
143
+ }
144
+ export declare class MemberArrRevTable extends Table<MemberArrRev> {
145
+ name: string;
146
+ columns: {
147
+ id: import("../../src/Table").Column<string, any>;
148
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
149
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
150
+ } & {} & {
151
+ name: import("../../src/Table").Column<string, any>;
152
+ } & {};
153
+ }
154
+ export declare class GroupArrRevTable extends Table<GroupArrRev> {
155
+ name: string;
156
+ columns: {
157
+ id: import("../../src/Table").Column<string, any>;
158
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
159
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
160
+ } & {} & {
161
+ groupName: import("../../src/Table").Column<string, any>;
162
+ memberRefs: import("../../src/Table").Column<ReferenceArray<MemberArrRev> | null | undefined, any>;
163
+ } & {};
164
+ }
165
+ export declare class WorkerTable extends Table<Worker> {
166
+ name: string;
167
+ columns: {
168
+ id: import("../../src/Table").Column<string, any>;
169
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
170
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
171
+ } & {} & {
172
+ name: import("../../src/Table").Column<string, any>;
173
+ } & {};
174
+ }
175
+ export declare class TaskTable extends Table<Task> {
176
+ name: string;
177
+ columns: {
178
+ id: import("../../src/Table").Column<string, any>;
179
+ created: import("../../src/Table").Column<import("moment").Moment, any>;
180
+ updated: import("../../src/Table").Column<import("moment").Moment, any>;
181
+ } & {} & {
182
+ title: import("../../src/Table").Column<string, any>;
183
+ assigneeTableName: import("../../src/Table").Column<string | null | undefined, any>;
184
+ assigneeRef: import("../../src/Table").Column<Reference<Worker> | null | undefined, any>;
185
+ } & {};
186
+ }
187
+ /** getTable resolver for Db */
188
+ export declare const getCascadeDeleteTestTable: (tableName: string) => MemberRefTable | GroupRefTable | MemberArrTable | GroupArrTable | MemberDynTable | GroupDynTable | PostTable | CommentTable | MemberArrRevTable | GroupArrRevTable | WorkerTable | TaskTable;
189
+ /**
190
+ * Public test suite factory.
191
+ */
192
+ export declare const cascadeDeleteTests: (driver: DbDriver, transactionContextFactory: DefaultTransactionContextFactory, dropTable: (table: Table<any>) => Promise<void>) => () => void;
193
+ export {};
194
+ //# sourceMappingURL=CascadeDeleteTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeDeleteTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/CascadeDeleteTests.ts"],"names":[],"mappings":"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"}