@proteinjs/db 1.55.0 → 1.56.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 (56) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/generated/test/index.d.ts.map +1 -1
  5. package/dist/generated/test/index.js +13 -1
  6. package/dist/generated/test/index.js.map +1 -1
  7. package/dist/src/Columns.d.ts +20 -2
  8. package/dist/src/Columns.d.ts.map +1 -1
  9. package/dist/src/Columns.js +46 -45
  10. package/dist/src/Columns.js.map +1 -1
  11. package/dist/src/Db.d.ts +17 -0
  12. package/dist/src/Db.d.ts.map +1 -1
  13. package/dist/src/Db.js +28 -9
  14. package/dist/src/Db.js.map +1 -1
  15. package/dist/src/TableWatcher.d.ts +15 -6
  16. package/dist/src/TableWatcher.d.ts.map +1 -1
  17. package/dist/src/TableWatcher.js.map +1 -1
  18. package/dist/src/TableWatcherRunner.d.ts +14 -6
  19. package/dist/src/TableWatcherRunner.d.ts.map +1 -1
  20. package/dist/src/TableWatcherRunner.js +19 -12
  21. package/dist/src/TableWatcherRunner.js.map +1 -1
  22. package/dist/test/index.d.ts +2 -0
  23. package/dist/test/index.d.ts.map +1 -1
  24. package/dist/test/index.js +2 -0
  25. package/dist/test/index.js.map +1 -1
  26. package/dist/test/reusable/CascadeDeleteTests.d.ts.map +1 -1
  27. package/dist/test/reusable/CascadeDeleteTests.js +132 -0
  28. package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
  29. package/dist/test/reusable/TableWatcherAuthorityTests.d.ts +13 -0
  30. package/dist/test/reusable/TableWatcherAuthorityTests.d.ts.map +1 -0
  31. package/dist/test/reusable/TableWatcherAuthorityTests.js +392 -0
  32. package/dist/test/reusable/TableWatcherAuthorityTests.js.map +1 -0
  33. package/dist/test/util/DbTestEnvironment.d.ts.map +1 -1
  34. package/dist/test/util/DbTestEnvironment.js +3 -2
  35. package/dist/test/util/DbTestEnvironment.js.map +1 -1
  36. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +38 -0
  37. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -1
  38. package/dist/test/util/tables/cascadeDeleteTestTables.js +119 -1
  39. package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -1
  40. package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts +35 -0
  41. package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts.map +1 -0
  42. package/dist/test/util/tables/tableWatcherAuthorityTestTables.js +113 -0
  43. package/dist/test/util/tables/tableWatcherAuthorityTestTables.js.map +1 -0
  44. package/generated/index.ts +1 -1
  45. package/generated/test/index.ts +13 -1
  46. package/package.json +2 -2
  47. package/src/Columns.ts +50 -27
  48. package/src/Db.ts +42 -15
  49. package/src/TableWatcher.ts +17 -6
  50. package/src/TableWatcherRunner.ts +25 -12
  51. package/test/index.ts +2 -0
  52. package/test/reusable/CascadeDeleteTests.ts +90 -0
  53. package/test/reusable/TableWatcherAuthorityTests.ts +204 -0
  54. package/test/util/DbTestEnvironment.ts +2 -0
  55. package/test/util/tables/cascadeDeleteTestTables.ts +85 -0
  56. package/test/util/tables/tableWatcherAuthorityTestTables.ts +61 -0
@@ -339,6 +339,138 @@ var cascadeDeleteTests = function (driver, transactionContextFactory, dropTable)
339
339
  });
340
340
  }); });
341
341
  });
342
+ /**
343
+ * -------------------- Cascade Delete as system (holder → guarded referenced) --------------------
344
+ * A system delete's cascade runs with the authority of the write that fired it. The children's
345
+ * table refuses every non-system query (a scoped table's shape), and the delete runs in a fresh
346
+ * async context with no session — a background sweep's shape. Before the fix the cascade hooks
347
+ * ran as a non-system Db, and every case below failed with the guarded table's refusal.
348
+ */
349
+ describe('Cascade Delete as system', function () {
350
+ var systemDb = new db_1.Db(driver, undefined, transactionContextFactory, true);
351
+ var memberTable = cascadeDeleteTestTables_1.cascadeDeleteTestTables.GuardedMember;
352
+ /** A fresh async context with nothing inherited from the test's own — a background sweep's shape. */
353
+ var inFreshContext = function (fn) {
354
+ return new Promise(function (resolve, reject) {
355
+ setImmediate(function () {
356
+ fn().then(resolve, reject);
357
+ });
358
+ });
359
+ };
360
+ test('ReferenceColumn: a system delete of the holder deletes the guarded referenced record', function () { return __awaiter(void 0, void 0, void 0, function () {
361
+ var holderTable, m, h, delQb, deleted, _a;
362
+ return __generator(this, function (_b) {
363
+ switch (_b.label) {
364
+ case 0:
365
+ holderTable = cascadeDeleteTestTables_1.cascadeDeleteTestTables.GuardedHolderRef;
366
+ return [4 /*yield*/, systemDb.insert(memberTable, { name: 'Gail' })];
367
+ case 1:
368
+ m = _b.sent();
369
+ return [4 /*yield*/, systemDb.insert(holderTable, {
370
+ holderName: 'H-Ref',
371
+ memberRef: new db_1.Reference(memberTable.name, m.id),
372
+ })];
373
+ case 2:
374
+ h = _b.sent();
375
+ delQb = new db_query_1.QueryBuilder(holderTable.name).condition({
376
+ field: 'id',
377
+ operator: '=',
378
+ value: h.id,
379
+ });
380
+ return [4 /*yield*/, inFreshContext(function () { return systemDb.delete(holderTable, delQb); })];
381
+ case 3:
382
+ deleted = _b.sent();
383
+ expect(deleted).toBe(1);
384
+ _a = expect;
385
+ return [4 /*yield*/, systemDb.query(memberTable, { id: m.id })];
386
+ case 4:
387
+ _a.apply(void 0, [_b.sent()]).toHaveLength(0);
388
+ return [2 /*return*/];
389
+ }
390
+ });
391
+ }); });
392
+ test('ReferenceArrayColumn: a system delete of the holder deletes every guarded referenced record', function () { return __awaiter(void 0, void 0, void 0, function () {
393
+ var holderTable, m1, m2, m3, h, delQb, deleted, _a, _b, _c;
394
+ return __generator(this, function (_d) {
395
+ switch (_d.label) {
396
+ case 0:
397
+ holderTable = cascadeDeleteTestTables_1.cascadeDeleteTestTables.GuardedHolderArr;
398
+ return [4 /*yield*/, systemDb.insert(memberTable, { name: 'Gus' })];
399
+ case 1:
400
+ m1 = _d.sent();
401
+ return [4 /*yield*/, systemDb.insert(memberTable, { name: 'Greta' })];
402
+ case 2:
403
+ m2 = _d.sent();
404
+ return [4 /*yield*/, systemDb.insert(memberTable, { name: 'Glen' })];
405
+ case 3:
406
+ m3 = _d.sent();
407
+ return [4 /*yield*/, systemDb.insert(holderTable, {
408
+ holderName: 'H-Arr',
409
+ memberRefs: new db_1.ReferenceArray(memberTable.name, [m1.id, m2.id]),
410
+ })];
411
+ case 4:
412
+ h = _d.sent();
413
+ delQb = new db_query_1.QueryBuilder(holderTable.name).condition({
414
+ field: 'id',
415
+ operator: '=',
416
+ value: h.id,
417
+ });
418
+ return [4 /*yield*/, inFreshContext(function () { return systemDb.delete(holderTable, delQb); })];
419
+ case 5:
420
+ deleted = _d.sent();
421
+ expect(deleted).toBe(1);
422
+ _a = expect;
423
+ return [4 /*yield*/, systemDb.query(memberTable, { id: m1.id })];
424
+ case 6:
425
+ _a.apply(void 0, [_d.sent()]).toHaveLength(0);
426
+ _b = expect;
427
+ return [4 /*yield*/, systemDb.query(memberTable, { id: m2.id })];
428
+ case 7:
429
+ _b.apply(void 0, [_d.sent()]).toHaveLength(0);
430
+ // The unreferenced member stands: the cascade is the stored ids, nothing wider.
431
+ _c = expect;
432
+ return [4 /*yield*/, systemDb.query(memberTable, { id: m3.id })];
433
+ case 8:
434
+ // The unreferenced member stands: the cascade is the stored ids, nothing wider.
435
+ _c.apply(void 0, [_d.sent()]).toHaveLength(1);
436
+ return [2 /*return*/];
437
+ }
438
+ });
439
+ }); });
440
+ test('DynamicReferenceColumn: a system delete of the holder deletes the guarded dynamically referenced record', function () { return __awaiter(void 0, void 0, void 0, function () {
441
+ var holderTable, m, h, delQb, deleted, _a;
442
+ return __generator(this, function (_b) {
443
+ switch (_b.label) {
444
+ case 0:
445
+ holderTable = cascadeDeleteTestTables_1.cascadeDeleteTestTables.GuardedHolderDyn;
446
+ return [4 /*yield*/, systemDb.insert(memberTable, { name: 'Gwen' })];
447
+ case 1:
448
+ m = _b.sent();
449
+ return [4 /*yield*/, systemDb.insert(holderTable, {
450
+ holderName: 'H-Dyn',
451
+ memberDynTableName: memberTable.name,
452
+ memberDynRef: new db_1.Reference(memberTable.name, m.id),
453
+ })];
454
+ case 2:
455
+ h = _b.sent();
456
+ delQb = new db_query_1.QueryBuilder(holderTable.name).condition({
457
+ field: 'id',
458
+ operator: '=',
459
+ value: h.id,
460
+ });
461
+ return [4 /*yield*/, inFreshContext(function () { return systemDb.delete(holderTable, delQb); })];
462
+ case 3:
463
+ deleted = _b.sent();
464
+ expect(deleted).toBe(1);
465
+ _a = expect;
466
+ return [4 /*yield*/, systemDb.query(memberTable, { id: m.id })];
467
+ case 4:
468
+ _a.apply(void 0, [_b.sent()]).toHaveLength(0);
469
+ return [2 /*return*/];
470
+ }
471
+ });
472
+ }); });
473
+ });
342
474
  };
343
475
  };
344
476
  exports.cascadeDeleteTests = cascadeDeleteTests;
@@ -1 +1 @@
1
- {"version":3,"file":"CascadeDeleteTests.js","sourceRoot":"","sources":["../../../test/reusable/CascadeDeleteTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CascadeDeleteTests.js","sourceRoot":"","sources":["../../../test/reusable/CascadeDeleteTests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { DbDriver, Table, DefaultTransactionContextFactory } from '@proteinjs/db';
2
+ /** The watcher's refusal when a hook arrives without the write's Db — the contract's first half. */
3
+ export declare const HOOK_HANDED_NO_DB = "the hook was handed no Db";
4
+ /**
5
+ * A table watcher's hooks run with the authority of the write that fired them: the Db hands every
6
+ * hook a Db carrying its driver, tables, transaction context and system mode. Before this the
7
+ * hooks were handed nothing and each watcher opened a session-scoped Db of its own, which a system
8
+ * write in a session-less context (an account purge, a sweep) could not use — the topic links of a
9
+ * purged message and the file of a system-deleted media row stayed behind, and the activity bump
10
+ * of a system-inserted message threw.
11
+ */
12
+ export declare const tableWatcherAuthorityTests: (driver: DbDriver, transactionContextFactory: DefaultTransactionContextFactory, dropTable: (table: Table<any>) => Promise<void>) => () => void;
13
+ //# sourceMappingURL=TableWatcherAuthorityTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcherAuthorityTests.d.ts","sourceRoot":"","sources":["../../../test/reusable/TableWatcherAuthorityTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,QAAQ,EAAE,KAAK,EAAgB,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAmBpG,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AA2F7D;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,WAC7B,QAAQ,6BACW,gCAAgC,qBACxC,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eAiFhD,CAAC"}
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.tableWatcherAuthorityTests = exports.HOOK_HANDED_NO_DB = void 0;
49
+ var db_1 = require("@proteinjs/db");
50
+ var reflection_1 = require("@proteinjs/reflection");
51
+ var DbTestEnvironment_1 = require("../util/DbTestEnvironment");
52
+ var TableWatcherRunner_1 = require("../../src/TableWatcherRunner");
53
+ var tableWatcherAuthorityTestTables_1 = require("../util/tables/tableWatcherAuthorityTestTables");
54
+ var objectCache = function () { return reflection_1.SourceRepository.get().objectCache; };
55
+ var resetTableWatcherMap = function () {
56
+ TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
57
+ };
58
+ /** The watcher's refusal when a hook arrives without the write's Db — the contract's first half. */
59
+ exports.HOOK_HANDED_NO_DB = 'the hook was handed no Db';
60
+ var HOOKS = ['beforeInsert', 'afterInsert', 'beforeUpdate', 'afterUpdate', 'beforeDelete', 'afterDelete'];
61
+ /**
62
+ * Journals every hook run through the HANDED Db and nothing else — the way a watcher is written
63
+ * once the Db hands one (chat's topic watcher deleting a deleted message's topic links, the media
64
+ * watcher deleting a deleted row's file, the activity watcher bumping the chat a message landed
65
+ * in). The journal is a guarded table, so the hook's write and read succeed only with a system
66
+ * Db: the one the write made, carrying its own authority.
67
+ */
68
+ var JournalingWatcher = /** @class */ (function () {
69
+ function JournalingWatcher() {
70
+ }
71
+ JournalingWatcher.prototype.name = function () {
72
+ return 'JournalingWatcher';
73
+ };
74
+ JournalingWatcher.prototype.table = function () {
75
+ return tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables.WatchedNote;
76
+ };
77
+ JournalingWatcher.prototype.beforeInsert = function (record, db) {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0: return [4 /*yield*/, this.journal(db, record.id, 'beforeInsert')];
82
+ case 1:
83
+ _a.sent();
84
+ return [2 /*return*/, record];
85
+ }
86
+ });
87
+ });
88
+ };
89
+ JournalingWatcher.prototype.afterInsert = function (record, db) {
90
+ return __awaiter(this, void 0, void 0, function () {
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0: return [4 /*yield*/, this.journal(db, record.id, 'afterInsert')];
94
+ case 1:
95
+ _a.sent();
96
+ return [2 /*return*/];
97
+ }
98
+ });
99
+ });
100
+ };
101
+ JournalingWatcher.prototype.beforeUpdate = function (record, qb, db) {
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ var _i, _a, row;
104
+ return __generator(this, function (_b) {
105
+ switch (_b.label) {
106
+ case 0:
107
+ _i = 0;
108
+ return [4 /*yield*/, this.handed(db).query(this.table(), qb)];
109
+ case 1:
110
+ _a = _b.sent();
111
+ _b.label = 2;
112
+ case 2:
113
+ if (!(_i < _a.length)) return [3 /*break*/, 5];
114
+ row = _a[_i];
115
+ return [4 /*yield*/, this.journal(db, row.id, 'beforeUpdate')];
116
+ case 3:
117
+ _b.sent();
118
+ _b.label = 4;
119
+ case 4:
120
+ _i++;
121
+ return [3 /*break*/, 2];
122
+ case 5: return [2 /*return*/, record];
123
+ }
124
+ });
125
+ });
126
+ };
127
+ JournalingWatcher.prototype.afterUpdate = function (recordUpdateCount, record, qb, db) {
128
+ return __awaiter(this, void 0, void 0, function () {
129
+ var _i, _a, row;
130
+ return __generator(this, function (_b) {
131
+ switch (_b.label) {
132
+ case 0:
133
+ _i = 0;
134
+ return [4 /*yield*/, this.handed(db).query(this.table(), qb)];
135
+ case 1:
136
+ _a = _b.sent();
137
+ _b.label = 2;
138
+ case 2:
139
+ if (!(_i < _a.length)) return [3 /*break*/, 5];
140
+ row = _a[_i];
141
+ return [4 /*yield*/, this.journal(db, row.id, 'afterUpdate')];
142
+ case 3:
143
+ _b.sent();
144
+ _b.label = 4;
145
+ case 4:
146
+ _i++;
147
+ return [3 /*break*/, 2];
148
+ case 5: return [2 /*return*/];
149
+ }
150
+ });
151
+ });
152
+ };
153
+ JournalingWatcher.prototype.beforeDelete = function (recordsToDelete, _initialQb, _deleteQb, db) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ var _i, recordsToDelete_1, row;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ _i = 0, recordsToDelete_1 = recordsToDelete;
160
+ _a.label = 1;
161
+ case 1:
162
+ if (!(_i < recordsToDelete_1.length)) return [3 /*break*/, 4];
163
+ row = recordsToDelete_1[_i];
164
+ return [4 /*yield*/, this.journal(db, row.id, 'beforeDelete')];
165
+ case 2:
166
+ _a.sent();
167
+ _a.label = 3;
168
+ case 3:
169
+ _i++;
170
+ return [3 /*break*/, 1];
171
+ case 4: return [2 /*return*/];
172
+ }
173
+ });
174
+ });
175
+ };
176
+ JournalingWatcher.prototype.afterDelete = function (_recordDeleteCount, deletedRecords, _initialQb, _deleteQb, db) {
177
+ return __awaiter(this, void 0, void 0, function () {
178
+ var _i, deletedRecords_1, row;
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ _i = 0, deletedRecords_1 = deletedRecords;
183
+ _a.label = 1;
184
+ case 1:
185
+ if (!(_i < deletedRecords_1.length)) return [3 /*break*/, 5];
186
+ row = deletedRecords_1[_i];
187
+ return [4 /*yield*/, this.journal(db, row.id, 'afterDelete')];
188
+ case 2:
189
+ _a.sent();
190
+ // The read half of the contract: a query through the handed Db over the guarded table.
191
+ return [4 /*yield*/, this.handed(db).query(tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables.GuardedJournal, { note: row.id })];
192
+ case 3:
193
+ // The read half of the contract: a query through the handed Db over the guarded table.
194
+ _a.sent();
195
+ _a.label = 4;
196
+ case 4:
197
+ _i++;
198
+ return [3 /*break*/, 1];
199
+ case 5: return [2 /*return*/];
200
+ }
201
+ });
202
+ });
203
+ };
204
+ JournalingWatcher.prototype.journal = function (db, note, hook) {
205
+ return __awaiter(this, void 0, void 0, function () {
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0: return [4 /*yield*/, this.handed(db).insert(tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables.GuardedJournal, {
209
+ note: note,
210
+ hook: hook,
211
+ principal: 'the write',
212
+ })];
213
+ case 1:
214
+ _a.sent();
215
+ return [2 /*return*/];
216
+ }
217
+ });
218
+ });
219
+ };
220
+ JournalingWatcher.prototype.handed = function (db) {
221
+ if (!db) {
222
+ throw new Error(exports.HOOK_HANDED_NO_DB);
223
+ }
224
+ return db;
225
+ };
226
+ return JournalingWatcher;
227
+ }());
228
+ /**
229
+ * A table watcher's hooks run with the authority of the write that fired them: the Db hands every
230
+ * hook a Db carrying its driver, tables, transaction context and system mode. Before this the
231
+ * hooks were handed nothing and each watcher opened a session-scoped Db of its own, which a system
232
+ * write in a session-less context (an account purge, a sweep) could not use — the topic links of a
233
+ * purged message and the file of a system-deleted media row stayed behind, and the activity bump
234
+ * of a system-inserted message threw.
235
+ */
236
+ var tableWatcherAuthorityTests = function (driver, transactionContextFactory, dropTable) {
237
+ return function () {
238
+ var testEnv = new DbTestEnvironment_1.DbTestEnvironment(driver, dropTable);
239
+ var notes = tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables.WatchedNote;
240
+ var journal = tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables.GuardedJournal;
241
+ // Constructed in beforeAll, AFTER the watcher registration below: a Db's construction builds
242
+ // the runner's static watcher map, and the map must be built from the registered watcher.
243
+ var systemDb;
244
+ var sessionDb;
245
+ var originalWatchers;
246
+ /** A fresh async hop — the shape of a background context that inherits no caller's state. */
247
+ var inFreshContext = function (fn) {
248
+ return new Promise(function (resolve, reject) {
249
+ setImmediate(function () {
250
+ fn().then(resolve, reject);
251
+ });
252
+ });
253
+ };
254
+ var journalHooksFor = function (noteId) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
255
+ switch (_a.label) {
256
+ case 0: return [4 /*yield*/, systemDb.query(journal, { note: noteId })];
257
+ case 1: return [2 /*return*/, (_a.sent()).map(function (row) { return row.hook; }).sort()];
258
+ }
259
+ }); }); };
260
+ beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
261
+ return __generator(this, function (_a) {
262
+ switch (_a.label) {
263
+ case 0:
264
+ originalWatchers = objectCache()['@proteinjs/db/TableWatcher'];
265
+ objectCache()['@proteinjs/db/TableWatcher'] = [new JournalingWatcher()];
266
+ resetTableWatcherMap();
267
+ systemDb = new db_1.Db(driver, undefined, transactionContextFactory, true);
268
+ sessionDb = new db_1.Db(driver, undefined, transactionContextFactory);
269
+ return [4 /*yield*/, testEnv.beforeAll()];
270
+ case 1:
271
+ _a.sent();
272
+ return [2 /*return*/];
273
+ }
274
+ });
275
+ }); }, 120000);
276
+ afterAll(function () { return __awaiter(void 0, void 0, void 0, function () {
277
+ return __generator(this, function (_a) {
278
+ switch (_a.label) {
279
+ case 0: return [4 /*yield*/, testEnv.afterAll()];
280
+ case 1:
281
+ _a.sent();
282
+ if (originalWatchers) {
283
+ objectCache()['@proteinjs/db/TableWatcher'] = originalWatchers;
284
+ }
285
+ else {
286
+ delete objectCache()['@proteinjs/db/TableWatcher'];
287
+ }
288
+ resetTableWatcherMap();
289
+ return [2 /*return*/];
290
+ }
291
+ });
292
+ }); }, 120000);
293
+ beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
294
+ return __generator(this, function (_a) {
295
+ switch (_a.label) {
296
+ case 0: return [4 /*yield*/, systemDb.delete(journal, {})];
297
+ case 1:
298
+ _a.sent();
299
+ return [4 /*yield*/, systemDb.delete(notes, {})];
300
+ case 2:
301
+ _a.sent();
302
+ return [2 /*return*/];
303
+ }
304
+ });
305
+ }); });
306
+ describe('Table watchers carry the write’s authority', function () {
307
+ test('a system insert, update and delete in a session-less context: all six hooks write and read the guarded journal through the handed Db', function () { return __awaiter(void 0, void 0, void 0, function () {
308
+ var noteId, _a, _b;
309
+ return __generator(this, function (_c) {
310
+ switch (_c.label) {
311
+ case 0: return [4 /*yield*/, inFreshContext(function () { return __awaiter(void 0, void 0, void 0, function () {
312
+ var note;
313
+ return __generator(this, function (_a) {
314
+ switch (_a.label) {
315
+ case 0: return [4 /*yield*/, systemDb.insert(notes, { title: 'Kept' })];
316
+ case 1:
317
+ note = _a.sent();
318
+ return [4 /*yield*/, systemDb.update(notes, { title: 'Kept, renamed' }, { id: note.id })];
319
+ case 2:
320
+ _a.sent();
321
+ return [4 /*yield*/, systemDb.delete(notes, { id: note.id })];
322
+ case 3:
323
+ _a.sent();
324
+ return [2 /*return*/, note.id];
325
+ }
326
+ });
327
+ }); })];
328
+ case 1:
329
+ noteId = _c.sent();
330
+ _a = expect;
331
+ return [4 /*yield*/, systemDb.query(notes, { id: noteId })];
332
+ case 2:
333
+ _a.apply(void 0, [_c.sent()]).toHaveLength(0);
334
+ _b = expect;
335
+ return [4 /*yield*/, journalHooksFor(noteId)];
336
+ case 3:
337
+ _b.apply(void 0, [_c.sent()]).toEqual(__spreadArray([], HOOKS, true).sort());
338
+ return [2 /*return*/];
339
+ }
340
+ });
341
+ }); });
342
+ test('a session write’s hooks run as the session, never as system: the guarded journal refuses the first hook and the write with it', function () { return __awaiter(void 0, void 0, void 0, function () {
343
+ var _a;
344
+ return __generator(this, function (_b) {
345
+ switch (_b.label) {
346
+ case 0: return [4 /*yield*/, expect(sessionDb.insert(notes, { title: 'Refused' })).rejects.toThrow(tableWatcherAuthorityTestTables_1.WATCHER_GUARDED_REFUSAL)];
347
+ case 1:
348
+ _b.sent();
349
+ _a = expect;
350
+ return [4 /*yield*/, systemDb.query(notes, { title: 'Refused' })];
351
+ case 2:
352
+ _a.apply(void 0, [_b.sent()]).toHaveLength(0);
353
+ return [2 /*return*/];
354
+ }
355
+ });
356
+ }); });
357
+ test('the handed Db rides the write’s transaction: a rolled-back system insert leaves no journal row', function () { return __awaiter(void 0, void 0, void 0, function () {
358
+ var noteId, _a, _b;
359
+ return __generator(this, function (_c) {
360
+ switch (_c.label) {
361
+ case 0: return [4 /*yield*/, expect(systemDb.runTransaction(function () { return __awaiter(void 0, void 0, void 0, function () {
362
+ var note;
363
+ return __generator(this, function (_a) {
364
+ switch (_a.label) {
365
+ case 0: return [4 /*yield*/, systemDb.insert(notes, { title: 'Rolled back' })];
366
+ case 1:
367
+ note = _a.sent();
368
+ noteId = note.id;
369
+ throw new Error('roll back');
370
+ }
371
+ });
372
+ }); })).rejects.toThrow('roll back')];
373
+ case 1:
374
+ _c.sent();
375
+ expect(noteId).toBeDefined();
376
+ _a = expect;
377
+ return [4 /*yield*/, systemDb.query(notes, { id: noteId })];
378
+ case 2:
379
+ _a.apply(void 0, [_c.sent()]).toHaveLength(0);
380
+ _b = expect;
381
+ return [4 /*yield*/, journalHooksFor(noteId)];
382
+ case 3:
383
+ _b.apply(void 0, [_c.sent()]).toEqual([]);
384
+ return [2 /*return*/];
385
+ }
386
+ });
387
+ }); });
388
+ });
389
+ };
390
+ };
391
+ exports.tableWatcherAuthorityTests = tableWatcherAuthorityTests;
392
+ //# sourceMappingURL=TableWatcherAuthorityTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcherAuthorityTests.js","sourceRoot":"","sources":["../../../test/reusable/TableWatcherAuthorityTests.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DbTestEnvironment.d.ts","sourceRoot":"","sources":["../../../test/util/DbTestEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAyBhD;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;gBADb,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAGvD,SAAS;IAaT,QAAQ;CAUf"}
1
+ {"version":3,"file":"DbTestEnvironment.d.ts","sourceRoot":"","sources":["../../../test/util/DbTestEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA2BhD;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;gBADb,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAGvD,SAAS;IAaT,QAAQ;CAUf"}
@@ -55,11 +55,12 @@ var recordIteratorTestTables_1 = require("./tables/recordIteratorTestTables");
55
55
  var sourceRecordSyncTestTables_1 = require("./tables/sourceRecordSyncTestTables");
56
56
  var storedValueContractTestTables_1 = require("./tables/storedValueContractTestTables");
57
57
  var tableManagerTestTables_1 = require("./tables/tableManagerTestTables");
58
+ var tableWatcherAuthorityTestTables_1 = require("./tables/tableWatcherAuthorityTestTables");
58
59
  var transactionTestTables_1 = require("./tables/transactionTestTables");
59
- var TABLES = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], Object.values(cascadeDeleteTestTables_1.cascadeDeleteTestTables), true), Object.values(columnTypesTestTables_1.columnTypesTestTables), true), Object.values(crudTestTables_1.crudTestTables), true), Object.values(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables), true), Object.values(recordIteratorTestTables_1.recordIteratorTestTables), true), Object.values(sourceRecordSyncTestTables_1.sourceRecordSyncTestTables), true), [
60
+ var TABLES = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], Object.values(cascadeDeleteTestTables_1.cascadeDeleteTestTables), true), Object.values(columnTypesTestTables_1.columnTypesTestTables), true), Object.values(crudTestTables_1.crudTestTables), true), Object.values(dynamicReferenceColumnTestTables_1.dynamicReferenceTestTables), true), Object.values(recordIteratorTestTables_1.recordIteratorTestTables), true), Object.values(sourceRecordSyncTestTables_1.sourceRecordSyncTestTables), true), [
60
61
  // The member tables are the stored-value suite's own: it builds each physical column order itself.
61
62
  storedValueContractTestTables_1.storedValueContractTestTables.Mixed
62
- ], false), Object.values(tableManagerTestTables_1.tableManagerTestTables), true), Object.values(transactionTestTables_1.transactionTestTables), true);
63
+ ], false), Object.values(tableManagerTestTables_1.tableManagerTestTables), true), Object.values(tableWatcherAuthorityTestTables_1.tableWatcherAuthorityTestTables), true), Object.values(transactionTestTables_1.transactionTestTables), true);
63
64
  /**
64
65
  * Convenience functions for setting up a test environment
65
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DbTestEnvironment.js","sourceRoot":"","sources":["../../../test/util/DbTestEnvironment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA6D;AAC7D,4EAA2E;AAC3E,wEAAuE;AACvE,0DAAyD;AACzD,8FAAuF;AACvF,8EAA6E;AAC7E,kFAAiF;AACjF,wFAAuF;AACvF,0EAAyE;AACzE,wEAAuE;AAEvE,IAAM,MAAM,qIACP,MAAM,CAAC,MAAM,CAAC,iDAAuB,CAAC,SACtC,MAAM,CAAC,MAAM,CAAC,6CAAqB,CAAC,SACpC,MAAM,CAAC,MAAM,CAAC,+BAAc,CAAC,SAC7B,MAAM,CAAC,MAAM,CAAC,6DAA0B,CAAC,SACzC,MAAM,CAAC,MAAM,CAAC,mDAAwB,CAAC,SACvC,MAAM,CAAC,MAAM,CAAC,uDAA0B,CAAC;IAC5C,mGAAmG;IACnG,6DAA6B,CAAC,KAAK;WAChC,MAAM,CAAC,MAAM,CAAC,+CAAsB,CAAC,SACrC,MAAM,CAAC,MAAM,CAAC,6CAAqB,CAAC,OACxC,CAAC;AAEF;;GAEG;AACH;IACE,2BACU,QAAkB,EAClB,aAAmD;QADnD,aAAQ,GAAR,QAAQ,CAAU;QAClB,kBAAa,GAAb,aAAa,CAAsC;IAC1D,CAAC;IAEE,qCAAS,GAAf;;;;;;wBACE,yFAAyF;wBACzF,+CAA+C;wBAC/C,IAAA,2BAAgB,GAAE,CAAC;6BACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAnB,wBAAmB;wBACrB,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAA;;wBAA3B,SAA2B,CAAC;;;8BAGJ,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACd,qBAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAA;;wBAAtD,SAAsD,CAAC;;;wBADrC,IAAM,CAAA;;;;;;KAG3B;IAEK,oCAAQ,GAAd;;;;;;wBACE,IAAA,wBAAa,GAAE,CAAC;8BACoB,EAAhB,KAAA,MAAM,CAAC,OAAO,EAAE;;;6BAAhB,CAAA,cAAgB,CAAA;wBAAzB,KAAK;wBACd,qBAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAA;;wBAA/B,SAA+B,CAAC;;;wBADd,IAAgB,CAAA;;;6BAIhC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAlB,wBAAkB;wBACpB,qBAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;;;;;;KAE9B;IACH,wBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,8CAAiB"}
1
+ {"version":3,"file":"DbTestEnvironment.js","sourceRoot":"","sources":["../../../test/util/DbTestEnvironment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA6D;AAC7D,4EAA2E;AAC3E,wEAAuE;AACvE,0DAAyD;AACzD,8FAAuF;AACvF,8EAA6E;AAC7E,kFAAiF;AACjF,wFAAuF;AACvF,0EAAyE;AACzE,4FAA2F;AAC3F,wEAAuE;AAEvE,IAAM,MAAM,mJACP,MAAM,CAAC,MAAM,CAAC,iDAAuB,CAAC,SACtC,MAAM,CAAC,MAAM,CAAC,6CAAqB,CAAC,SACpC,MAAM,CAAC,MAAM,CAAC,+BAAc,CAAC,SAC7B,MAAM,CAAC,MAAM,CAAC,6DAA0B,CAAC,SACzC,MAAM,CAAC,MAAM,CAAC,mDAAwB,CAAC,SACvC,MAAM,CAAC,MAAM,CAAC,uDAA0B,CAAC;IAC5C,mGAAmG;IACnG,6DAA6B,CAAC,KAAK;WAChC,MAAM,CAAC,MAAM,CAAC,+CAAsB,CAAC,SACrC,MAAM,CAAC,MAAM,CAAC,iEAA+B,CAAC,SAC9C,MAAM,CAAC,MAAM,CAAC,6CAAqB,CAAC,OACxC,CAAC;AAEF;;GAEG;AACH;IACE,2BACU,QAAkB,EAClB,aAAmD;QADnD,aAAQ,GAAR,QAAQ,CAAU;QAClB,kBAAa,GAAb,aAAa,CAAsC;IAC1D,CAAC;IAEE,qCAAS,GAAf;;;;;;wBACE,yFAAyF;wBACzF,+CAA+C;wBAC/C,IAAA,2BAAgB,GAAE,CAAC;6BACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAnB,wBAAmB;wBACrB,qBAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAA;;wBAA3B,SAA2B,CAAC;;;8BAGJ,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACd,qBAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAA;;wBAAtD,SAAsD,CAAC;;;wBADrC,IAAM,CAAA;;;;;;KAG3B;IAEK,oCAAQ,GAAd;;;;;;wBACE,IAAA,wBAAa,GAAE,CAAC;8BACoB,EAAhB,KAAA,MAAM,CAAC,OAAO,EAAE;;;6BAAhB,CAAA,cAAgB,CAAA;wBAAzB,KAAK;wBACd,qBAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAA;;wBAA/B,SAA+B,CAAC;;;wBADd,IAAgB,CAAA;;;6BAIhC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAlB,wBAAkB;wBACpB,qBAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;;;;;;KAE9B;IACH,wBAAC;AAAD,CAAC,AA7BD,IA6BC;AA7BY,8CAAiB"}