@proteinjs/db 1.55.1 → 1.57.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 (47) 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 +5 -1
  6. package/dist/generated/test/index.js.map +1 -1
  7. package/dist/src/Db.d.ts +22 -6
  8. package/dist/src/Db.d.ts.map +1 -1
  9. package/dist/src/Db.js +35 -15
  10. package/dist/src/Db.js.map +1 -1
  11. package/dist/src/TableWatcher.d.ts +15 -6
  12. package/dist/src/TableWatcher.d.ts.map +1 -1
  13. package/dist/src/TableWatcher.js.map +1 -1
  14. package/dist/src/TableWatcherRunner.d.ts +14 -6
  15. package/dist/src/TableWatcherRunner.d.ts.map +1 -1
  16. package/dist/src/TableWatcherRunner.js +19 -12
  17. package/dist/src/TableWatcherRunner.js.map +1 -1
  18. package/dist/test/DbIsSystem.test.d.ts +2 -0
  19. package/dist/test/DbIsSystem.test.d.ts.map +1 -0
  20. package/dist/test/DbIsSystem.test.js +280 -0
  21. package/dist/test/DbIsSystem.test.js.map +1 -0
  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/TableWatcherAuthorityTests.d.ts +13 -0
  27. package/dist/test/reusable/TableWatcherAuthorityTests.d.ts.map +1 -0
  28. package/dist/test/reusable/TableWatcherAuthorityTests.js +392 -0
  29. package/dist/test/reusable/TableWatcherAuthorityTests.js.map +1 -0
  30. package/dist/test/util/DbTestEnvironment.d.ts.map +1 -1
  31. package/dist/test/util/DbTestEnvironment.js +3 -2
  32. package/dist/test/util/DbTestEnvironment.js.map +1 -1
  33. package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts +35 -0
  34. package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts.map +1 -0
  35. package/dist/test/util/tables/tableWatcherAuthorityTestTables.js +113 -0
  36. package/dist/test/util/tables/tableWatcherAuthorityTestTables.js.map +1 -0
  37. package/generated/index.ts +1 -1
  38. package/generated/test/index.ts +5 -1
  39. package/package.json +2 -2
  40. package/src/Db.ts +50 -21
  41. package/src/TableWatcher.ts +17 -6
  42. package/src/TableWatcherRunner.ts +25 -12
  43. package/test/DbIsSystem.test.ts +173 -0
  44. package/test/index.ts +2 -0
  45. package/test/reusable/TableWatcherAuthorityTests.ts +204 -0
  46. package/test/util/DbTestEnvironment.ts +2 -0
  47. package/test/util/tables/tableWatcherAuthorityTestTables.ts +61 -0
@@ -43,6 +43,13 @@ var db_query_1 = require("@proteinjs/db-query");
43
43
  var getEnvVar = function (key) {
44
44
  return typeof process !== 'undefined' && process.env ? process.env[key] : undefined;
45
45
  };
46
+ /**
47
+ * Runs a table's watchers around a write. Every hook is handed `db`, the Db the invoking write
48
+ * made for its hooks (`Db.newHookDb`): the write's driver, tables and transaction context AND its
49
+ * system mode, so a watcher's own reads and writes carry the authority of the write that fired
50
+ * it. A watcher never opens a Db of its own for the write's follow-on — a session-scoped Db ran
51
+ * as whoever the session held, which refused a system write's follow-on in a background context.
52
+ */
46
53
  var TableWatcherRunner = /** @class */ (function () {
47
54
  function TableWatcherRunner() {
48
55
  this.logger = new logger_1.Logger({ name: this.constructor.name, logLevel: getEnvVar('DB_LOG_LEVEL') });
@@ -50,7 +57,7 @@ var TableWatcherRunner = /** @class */ (function () {
50
57
  TableWatcherRunner.tableWatcherMap = (0, TableWatcher_1.getTableWatcherMap)();
51
58
  }
52
59
  }
53
- TableWatcherRunner.prototype.runBeforeInsertTableWatchers = function (table, record) {
60
+ TableWatcherRunner.prototype.runBeforeInsertTableWatchers = function (table, record, db) {
54
61
  return __awaiter(this, void 0, void 0, function () {
55
62
  var tableWatcherMap, tableWatchers, updatedRecord, _i, tableWatchers_1, tableWatcher;
56
63
  return __generator(this, function (_a) {
@@ -72,7 +79,7 @@ var TableWatcherRunner = /** @class */ (function () {
72
79
  if (!(_i < tableWatchers_1.length)) return [3 /*break*/, 4];
73
80
  tableWatcher = tableWatchers_1[_i];
74
81
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeInsert") });
75
- return [4 /*yield*/, tableWatcher.beforeInsert(updatedRecord)];
82
+ return [4 /*yield*/, tableWatcher.beforeInsert(updatedRecord, db)];
76
83
  case 2:
77
84
  updatedRecord = _a.sent();
78
85
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeInsert") });
@@ -87,7 +94,7 @@ var TableWatcherRunner = /** @class */ (function () {
87
94
  });
88
95
  });
89
96
  };
90
- TableWatcherRunner.prototype.runAfterInsertTableWatchers = function (table, record) {
97
+ TableWatcherRunner.prototype.runAfterInsertTableWatchers = function (table, record, db) {
91
98
  return __awaiter(this, void 0, void 0, function () {
92
99
  var tableWatcherMap, tableWatchers, _i, tableWatchers_2, tableWatcher;
93
100
  return __generator(this, function (_a) {
@@ -108,7 +115,7 @@ var TableWatcherRunner = /** @class */ (function () {
108
115
  if (!(_i < tableWatchers_2.length)) return [3 /*break*/, 4];
109
116
  tableWatcher = tableWatchers_2[_i];
110
117
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterInsert") });
111
- return [4 /*yield*/, tableWatcher.afterInsert(record)];
118
+ return [4 /*yield*/, tableWatcher.afterInsert(record, db)];
112
119
  case 2:
113
120
  _a.sent();
114
121
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterInsert") });
@@ -123,7 +130,7 @@ var TableWatcherRunner = /** @class */ (function () {
123
130
  });
124
131
  });
125
132
  };
126
- TableWatcherRunner.prototype.runBeforeUpdateTableWatchers = function (table, record, qb) {
133
+ TableWatcherRunner.prototype.runBeforeUpdateTableWatchers = function (table, record, qb, db) {
127
134
  return __awaiter(this, void 0, void 0, function () {
128
135
  var tableWatcherMap, tableWatchers, qbCopy, updatedRecord, _i, tableWatchers_3, tableWatcher;
129
136
  return __generator(this, function (_a) {
@@ -146,7 +153,7 @@ var TableWatcherRunner = /** @class */ (function () {
146
153
  if (!(_i < tableWatchers_3.length)) return [3 /*break*/, 4];
147
154
  tableWatcher = tableWatchers_3[_i];
148
155
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeUpdate") });
149
- return [4 /*yield*/, tableWatcher.beforeUpdate(updatedRecord, qbCopy)];
156
+ return [4 /*yield*/, tableWatcher.beforeUpdate(updatedRecord, qbCopy, db)];
150
157
  case 2:
151
158
  updatedRecord = _a.sent();
152
159
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeUpdate") });
@@ -161,7 +168,7 @@ var TableWatcherRunner = /** @class */ (function () {
161
168
  });
162
169
  });
163
170
  };
164
- TableWatcherRunner.prototype.runAfterUpdateTableWatchers = function (table, recordUpdateCount, record, qb) {
171
+ TableWatcherRunner.prototype.runAfterUpdateTableWatchers = function (table, recordUpdateCount, record, qb, db) {
165
172
  return __awaiter(this, void 0, void 0, function () {
166
173
  var tableWatcherMap, tableWatchers, qbCopy, _i, tableWatchers_4, tableWatcher;
167
174
  return __generator(this, function (_a) {
@@ -183,7 +190,7 @@ var TableWatcherRunner = /** @class */ (function () {
183
190
  if (!(_i < tableWatchers_4.length)) return [3 /*break*/, 4];
184
191
  tableWatcher = tableWatchers_4[_i];
185
192
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterUpdate") });
186
- return [4 /*yield*/, tableWatcher.afterUpdate(recordUpdateCount, record, qbCopy)];
193
+ return [4 /*yield*/, tableWatcher.afterUpdate(recordUpdateCount, record, qbCopy, db)];
187
194
  case 2:
188
195
  _a.sent();
189
196
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterUpdate") });
@@ -198,7 +205,7 @@ var TableWatcherRunner = /** @class */ (function () {
198
205
  });
199
206
  });
200
207
  };
201
- TableWatcherRunner.prototype.runBeforeDeleteTableWatchers = function (table, recordsToDelete, initialQb, deleteQb) {
208
+ TableWatcherRunner.prototype.runBeforeDeleteTableWatchers = function (table, recordsToDelete, initialQb, deleteQb, db) {
202
209
  return __awaiter(this, void 0, void 0, function () {
203
210
  var tableWatcherMap, tableWatchers, initialQbCopy, _i, tableWatchers_5, tableWatcher;
204
211
  return __generator(this, function (_a) {
@@ -220,7 +227,7 @@ var TableWatcherRunner = /** @class */ (function () {
220
227
  if (!(_i < tableWatchers_5.length)) return [3 /*break*/, 4];
221
228
  tableWatcher = tableWatchers_5[_i];
222
229
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeDelete") });
223
- return [4 /*yield*/, tableWatcher.beforeDelete(recordsToDelete, initialQbCopy, deleteQb)];
230
+ return [4 /*yield*/, tableWatcher.beforeDelete(recordsToDelete, initialQbCopy, deleteQb, db)];
224
231
  case 2:
225
232
  _a.sent();
226
233
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeDelete") });
@@ -235,7 +242,7 @@ var TableWatcherRunner = /** @class */ (function () {
235
242
  });
236
243
  });
237
244
  };
238
- TableWatcherRunner.prototype.runAfterDeleteTableWatchers = function (table, recordDeleteCount, deletedRecords, initialQb, deleteQb) {
245
+ TableWatcherRunner.prototype.runAfterDeleteTableWatchers = function (table, recordDeleteCount, deletedRecords, initialQb, deleteQb, db) {
239
246
  return __awaiter(this, void 0, void 0, function () {
240
247
  var tableWatcherMap, tableWatchers, initialQbCopy, _i, tableWatchers_6, tableWatcher;
241
248
  return __generator(this, function (_a) {
@@ -257,7 +264,7 @@ var TableWatcherRunner = /** @class */ (function () {
257
264
  if (!(_i < tableWatchers_6.length)) return [3 /*break*/, 4];
258
265
  tableWatcher = tableWatchers_6[_i];
259
266
  this.logger.info({ message: "(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterDelete") });
260
- return [4 /*yield*/, tableWatcher.afterDelete(recordDeleteCount, deletedRecords, initialQbCopy, deleteQb)];
267
+ return [4 /*yield*/, tableWatcher.afterDelete(recordDeleteCount, deletedRecords, initialQbCopy, deleteQb, db)];
261
268
  case 2:
262
269
  _a.sent();
263
270
  this.logger.info({ message: "(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterDelete") });
@@ -1 +1 @@
1
- {"version":3,"file":"TableWatcherRunner.js","sourceRoot":"","sources":["../../src/TableWatcherRunner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,+CAAqE;AAGrE,gDAAmD;AAEnD,IAAM,SAAS,GAAG,UAAC,GAAW;IAC5B,OAAA,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;AAA5E,CAA4E,CAAC;AAE/E;IAIE;QAFQ,WAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAQ,EAAE,CAAC,CAAC;QAGvG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACvC,kBAAkB,CAAC,eAAe,GAAG,IAAA,iCAAkB,GAAE,CAAC;SAC3D;IACH,CAAC;IAEK,yDAA4B,GAAlC,UACE,KAAe,EACf,MAAwB;;;;;;wBAElB,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO,MAAM,EAAC;yBACf;wBAEK,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC;wBACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO,MAAM,EAAC;yBACf;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,2CAAwC,EAAE,CAAC,CAAC;wBAClF,aAAa,GAAQ,MAAM,CAAC;8BACQ,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;wBAC7E,qBAAM,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,EAAA;;wBAA9D,aAAa,GAAG,SAA8C,CAAC;wBAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;;;wBAH7E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,oDAAiD,EAAE,CAAC,CAAC;wBAE/F,sBAAO,aAAa,EAAC;;;;KACtB;IAEK,wDAA2B,GAAjC,UAA+C,KAAe,EAAE,MAAS;;;;;;wBACjE,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO;yBACR;wBAEK,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC;wBAClD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO;yBACR;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,0CAAuC,EAAE,CAAC,CAAC;8BAC7C,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;wBAC5F,qBAAM,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;wBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;;;wBAH5E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,mDAAgD,EAAE,CAAC,CAAC;;;;;KAC/F;IAEK,yDAA4B,GAAlC,UACE,KAAe,EACf,MAAkB,EAClB,EAAmB;;;;;;wBAEb,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO,MAAM,EAAC;yBACf;wBAEK,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC;wBACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO,MAAM,EAAC;yBACf;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,2CAAwC,EAAE,CAAC,CAAC;wBAChF,MAAM,GAAG,uBAAY,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;wBACzD,aAAa,GAAQ,MAAM,CAAC;8BACQ,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;wBAC7E,qBAAM,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,EAAA;;wBAAtE,aAAa,GAAG,SAAsD,CAAC;wBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;;;wBAH7E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,oDAAiD,EAAE,CAAC,CAAC;wBAE/F,sBAAO,aAAa,EAAC;;;;KACtB;IAEK,wDAA2B,GAAjC,UACE,KAAe,EACf,iBAAyB,EACzB,MAAkB,EAClB,EAAmB;;;;;;wBAEb,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO;yBACR;wBAEK,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC;wBAClD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO;yBACR;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,0CAAuC,EAAE,CAAC,CAAC;wBAC/E,MAAM,GAAG,uBAAY,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;8BACrB,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;wBAC5F,qBAAM,YAAY,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAA;;wBAAjE,SAAiE,CAAC;wBAClE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;;;wBAH5E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,mDAAgD,EAAE,CAAC,CAAC;;;;;KAC/F;IAEK,yDAA4B,GAAlC,UACE,KAAe,EACf,eAAoB,EACpB,SAA0B,EAC1B,QAAyB;;;;;;wBAEnB,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO;yBACR;wBAEK,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC;wBACnD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO;yBACR;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,2CAAwC,EAAE,CAAC,CAAC;wBAChF,aAAa,GAAG,uBAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;8BACnC,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;wBAC7F,qBAAM,YAAY,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAA;;wBAAzE,SAAyE,CAAC;wBAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,kBAAe,EAAE,CAAC,CAAC;;;wBAH7E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,oDAAiD,EAAE,CAAC,CAAC;;;;;KAChG;IAEK,wDAA2B,GAAjC,UACE,KAAe,EACf,iBAAyB,EACzB,cAAmB,EACnB,SAA0B,EAC1B,QAAyB;;;;;;wBAEnB,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACvE,IAAI,CAAC,eAAe,EAAE;4BACpB,sBAAO;yBACR;wBAEK,aAAa,GAAG,eAAe,CAAC,WAAW,CAAC;wBAClD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,sBAAO;yBACR;wBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,0CAAuC,EAAE,CAAC,CAAC;wBAC/E,aAAa,GAAG,uBAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;8BACnC,EAAb,+BAAa;;;6BAAb,CAAA,2BAAa,CAAA;wBAA7B,YAAY;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,uBAAa,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;wBAC5F,qBAAM,YAAY,CAAC,WAAW,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAA;;wBAA1F,SAA0F,CAAC;wBAC3F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,gCAAsB,YAAY,CAAC,IAAI,EAAE,iBAAc,EAAE,CAAC,CAAC;;;wBAH5E,IAAa,CAAA;;;wBAKxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAI,KAAK,CAAC,IAAI,mDAAgD,EAAE,CAAC,CAAC;;;;;KAC/F;IACH,yBAAC;AAAD,CAAC,AAlKD,IAkKC;AAlKY,gDAAkB"}
1
+ {"version":3,"file":"TableWatcherRunner.js","sourceRoot":"","sources":["../../src/TableWatcherRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DbIsSystem.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbIsSystem.test.d.ts","sourceRoot":"","sources":["../../test/DbIsSystem.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,280 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ 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;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ var reflection_1 = require("@proteinjs/reflection");
55
+ var Db_1 = require("../src/Db");
56
+ var Table_1 = require("../src/Table");
57
+ var Record_1 = require("../src/Record");
58
+ var Columns_1 = require("../src/Columns");
59
+ var TableWatcherRunner_1 = require("../src/TableWatcherRunner");
60
+ var DocTable = /** @class */ (function (_super) {
61
+ __extends(DocTable, _super);
62
+ function DocTable() {
63
+ var _this = _super !== null && _super.apply(this, arguments) || this;
64
+ _this.name = 'is_system_doc';
65
+ /** Every door open to everyone: a session Db reaches the write with no user to resolve. */
66
+ _this.auth = { db: { all: 'public' } };
67
+ _this.columns = (0, Record_1.withRecordColumns)({
68
+ title: new Columns_1.StringColumn('title'),
69
+ });
70
+ return _this;
71
+ }
72
+ return DocTable;
73
+ }(Table_1.Table));
74
+ var docTable = new DocTable();
75
+ /** What each hook was handed: the mode of its trailing Db. */
76
+ var handed = [];
77
+ var ModeRecordingWatcher = /** @class */ (function () {
78
+ function ModeRecordingWatcher() {
79
+ }
80
+ ModeRecordingWatcher.prototype.name = function () {
81
+ return 'ModeRecordingWatcher';
82
+ };
83
+ ModeRecordingWatcher.prototype.table = function () {
84
+ return docTable;
85
+ };
86
+ ModeRecordingWatcher.prototype.beforeInsert = function (record, db) {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ return __generator(this, function (_a) {
89
+ handed.push({ phase: 'beforeInsert', mode: db === null || db === void 0 ? void 0 : db.isSystem() });
90
+ return [2 /*return*/, record];
91
+ });
92
+ });
93
+ };
94
+ ModeRecordingWatcher.prototype.afterInsert = function (_record, db) {
95
+ return __awaiter(this, void 0, void 0, function () {
96
+ return __generator(this, function (_a) {
97
+ handed.push({ phase: 'afterInsert', mode: db === null || db === void 0 ? void 0 : db.isSystem() });
98
+ return [2 /*return*/];
99
+ });
100
+ });
101
+ };
102
+ return ModeRecordingWatcher;
103
+ }());
104
+ var TestTransactionContextFactory = /** @class */ (function () {
105
+ function TestTransactionContextFactory() {
106
+ this.context = {};
107
+ }
108
+ TestTransactionContextFactory.prototype.getTransactionContext = function () {
109
+ return this.context;
110
+ };
111
+ TestTransactionContextFactory.prototype.runInContext = function (context, fn) {
112
+ return __awaiter(this, void 0, void 0, function () {
113
+ var previous;
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ previous = this.context;
118
+ this.context = context;
119
+ _a.label = 1;
120
+ case 1:
121
+ _a.trys.push([1, , 3, 4]);
122
+ return [4 /*yield*/, fn()];
123
+ case 2: return [2 /*return*/, _a.sent()];
124
+ case 3:
125
+ this.context = previous;
126
+ return [7 /*endfinally*/];
127
+ case 4: return [2 /*return*/];
128
+ }
129
+ });
130
+ });
131
+ };
132
+ return TestTransactionContextFactory;
133
+ }());
134
+ /** Accepts every statement; no database behind it. */
135
+ var AcceptingDriver = /** @class */ (function () {
136
+ function AcceptingDriver() {
137
+ }
138
+ AcceptingDriver.prototype.getDbName = function () {
139
+ return 'test';
140
+ };
141
+ AcceptingDriver.prototype.createDbIfNotExists = function () {
142
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
143
+ return [2 /*return*/];
144
+ }); });
145
+ };
146
+ AcceptingDriver.prototype.createDb = function () {
147
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
148
+ return [2 /*return*/];
149
+ }); });
150
+ };
151
+ AcceptingDriver.prototype.dropDb = function () {
152
+ return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
153
+ return [2 /*return*/];
154
+ }); });
155
+ };
156
+ AcceptingDriver.prototype.getTableManager = function () {
157
+ throw new Error('not used by these tests');
158
+ };
159
+ AcceptingDriver.prototype.runQuery = function () {
160
+ return __awaiter(this, void 0, void 0, function () {
161
+ return __generator(this, function (_a) {
162
+ return [2 /*return*/, []];
163
+ });
164
+ });
165
+ };
166
+ AcceptingDriver.prototype.runDml = function (generateStatement) {
167
+ return __awaiter(this, void 0, void 0, function () {
168
+ return __generator(this, function (_a) {
169
+ generateStatement({
170
+ useParams: true,
171
+ useNamedParams: true,
172
+ prefixTablesWithDb: false,
173
+ getDriverColumnType: function () { return 'STRING(MAX)'; },
174
+ });
175
+ return [2 /*return*/, 1];
176
+ });
177
+ });
178
+ };
179
+ AcceptingDriver.prototype.runTransaction = function (fn) {
180
+ return __awaiter(this, void 0, void 0, function () {
181
+ return __generator(this, function (_a) {
182
+ switch (_a.label) {
183
+ case 0: return [4 /*yield*/, fn({ id: 'transaction' })];
184
+ case 1: return [2 /*return*/, _a.sent()];
185
+ }
186
+ });
187
+ });
188
+ };
189
+ AcceptingDriver.prototype.getOperationDeadlineMs = function () {
190
+ return 1000;
191
+ };
192
+ return AcceptingDriver;
193
+ }());
194
+ var objectCache = function () { return reflection_1.SourceRepository.get().objectCache; };
195
+ var DEFAULT_DRIVER_GLOBAL = '__proteinjs_db_defaultDbDriver';
196
+ var driver = new AcceptingDriver();
197
+ var transactions = new TestTransactionContextFactory();
198
+ var modesHandedBy = function (db) { return __awaiter(void 0, void 0, void 0, function () {
199
+ return __generator(this, function (_a) {
200
+ switch (_a.label) {
201
+ case 0:
202
+ handed.length = 0;
203
+ return [4 /*yield*/, db.insert(docTable, { title: 'row' })];
204
+ case 1:
205
+ _a.sent();
206
+ expect(handed.map(function (_a) {
207
+ var phase = _a.phase;
208
+ return phase;
209
+ })).toEqual(['beforeInsert', 'afterInsert']);
210
+ return [2 /*return*/, handed.map(function (_a) {
211
+ var mode = _a.mode;
212
+ return mode;
213
+ })];
214
+ }
215
+ });
216
+ }); };
217
+ describe('Db.isSystem', function () {
218
+ var originalWatchers;
219
+ var originalFactories;
220
+ var originalTransactionFactories;
221
+ beforeAll(function () {
222
+ originalWatchers = objectCache()['@proteinjs/db/TableWatcher'];
223
+ originalFactories = objectCache()['@proteinjs/db/DefaultDbDriverFactory'];
224
+ originalTransactionFactories = objectCache()['@proteinjs/db/DefaultTransactionContextFactory'];
225
+ objectCache()['@proteinjs/db/TableWatcher'] = [new ModeRecordingWatcher()];
226
+ // The public factories resolve their driver and transaction context through reflection.
227
+ objectCache()['@proteinjs/db/DefaultDbDriverFactory'] = [{ getDbDriver: function () { return driver; } }];
228
+ objectCache()['@proteinjs/db/DefaultTransactionContextFactory'] = [transactions];
229
+ delete globalThis[DEFAULT_DRIVER_GLOBAL];
230
+ TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
231
+ });
232
+ afterAll(function () {
233
+ var restore = function (name, original) {
234
+ if (original) {
235
+ objectCache()[name] = original;
236
+ }
237
+ else {
238
+ delete objectCache()[name];
239
+ }
240
+ };
241
+ restore('@proteinjs/db/TableWatcher', originalWatchers);
242
+ restore('@proteinjs/db/DefaultDbDriverFactory', originalFactories);
243
+ restore('@proteinjs/db/DefaultTransactionContextFactory', originalTransactionFactories);
244
+ delete globalThis[DEFAULT_DRIVER_GLOBAL];
245
+ TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
246
+ });
247
+ test('a system Db answers true, a session Db false — on the public factories and on the constructor', function () {
248
+ expect((0, Db_1.getDbAsSystem)().isSystem()).toBe(true);
249
+ expect((0, Db_1.getDb)().isSystem()).toBe(false);
250
+ expect(new Db_1.Db(driver, function () { return docTable; }, transactions, true).isSystem()).toBe(true);
251
+ expect(new Db_1.Db(driver, function () { return docTable; }, transactions).isSystem()).toBe(false);
252
+ });
253
+ test("the Db a write hands its watchers answers for THAT write: a system write's hooks read true", function () { return __awaiter(void 0, void 0, void 0, function () {
254
+ var _a;
255
+ return __generator(this, function (_b) {
256
+ switch (_b.label) {
257
+ case 0:
258
+ _a = expect;
259
+ return [4 /*yield*/, modesHandedBy((0, Db_1.getDbAsSystem)())];
260
+ case 1:
261
+ _a.apply(void 0, [_b.sent()]).toEqual([true, true]);
262
+ return [2 /*return*/];
263
+ }
264
+ });
265
+ }); });
266
+ test("the Db a write hands its watchers answers for THAT write: a session write's hooks read false", function () { return __awaiter(void 0, void 0, void 0, function () {
267
+ var _a;
268
+ return __generator(this, function (_b) {
269
+ switch (_b.label) {
270
+ case 0:
271
+ _a = expect;
272
+ return [4 /*yield*/, modesHandedBy((0, Db_1.getDb)())];
273
+ case 1:
274
+ _a.apply(void 0, [_b.sent()]).toEqual([false, false]);
275
+ return [2 /*return*/];
276
+ }
277
+ });
278
+ }); });
279
+ });
280
+ //# sourceMappingURL=DbIsSystem.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbIsSystem.test.js","sourceRoot":"","sources":["../../test/DbIsSystem.test.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export * from './reusable/PreloadReferencesTests';
8
8
  export * from './reusable/RecordIteratorTests';
9
9
  export * from './reusable/SourceRecordSyncTests';
10
10
  export * from './reusable/StoredValueContractTests';
11
+ export * from './reusable/TableWatcherAuthorityTests';
11
12
  export * from './util/testUser';
12
13
  export * from './util/tables/cascadeDeleteTestTables';
13
14
  export * from './util/tables/columnTypesTestTables';
@@ -17,5 +18,6 @@ export * from './util/tables/recordIteratorTestTables';
17
18
  export * from './util/tables/sourceRecordSyncTestTables';
18
19
  export * from './util/tables/storedValueContractTestTables';
19
20
  export * from './util/tables/tableManagerTestTables';
21
+ export * from './util/tables/tableWatcherAuthorityTestTables';
20
22
  export * from './util/tables/transactionTestTables';
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC"}
@@ -24,6 +24,7 @@ __exportStar(require("./reusable/PreloadReferencesTests"), exports);
24
24
  __exportStar(require("./reusable/RecordIteratorTests"), exports);
25
25
  __exportStar(require("./reusable/SourceRecordSyncTests"), exports);
26
26
  __exportStar(require("./reusable/StoredValueContractTests"), exports);
27
+ __exportStar(require("./reusable/TableWatcherAuthorityTests"), exports);
27
28
  __exportStar(require("./util/testUser"), exports);
28
29
  __exportStar(require("./util/tables/cascadeDeleteTestTables"), exports);
29
30
  __exportStar(require("./util/tables/columnTypesTestTables"), exports);
@@ -33,5 +34,6 @@ __exportStar(require("./util/tables/recordIteratorTestTables"), exports);
33
34
  __exportStar(require("./util/tables/sourceRecordSyncTestTables"), exports);
34
35
  __exportStar(require("./util/tables/storedValueContractTestTables"), exports);
35
36
  __exportStar(require("./util/tables/tableManagerTestTables"), exports);
37
+ __exportStar(require("./util/tables/tableWatcherAuthorityTestTables"), exports);
36
38
  __exportStar(require("./util/tables/transactionTestTables"), exports);
37
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,uDAAqC;AACrC,8DAA4C;AAC5C,yEAAuD;AACvD,8DAA4C;AAC5C,gEAA8C;AAC9C,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AACjD,sEAAoD;AAEpD,kDAAgC;AAEhC,wEAAsD;AACtD,sEAAoD;AACpD,+DAA6C;AAC7C,iFAA+D;AAC/D,yEAAuD;AACvD,2EAAyD;AACzD,8EAA4D;AAC5D,uEAAqD;AACrD,sEAAoD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,uDAAqC;AACrC,8DAA4C;AAC5C,yEAAuD;AACvD,8DAA4C;AAC5C,gEAA8C;AAC9C,oEAAkD;AAClD,iEAA+C;AAC/C,mEAAiD;AACjD,sEAAoD;AACpD,wEAAsD;AAEtD,kDAAgC;AAEhC,wEAAsD;AACtD,sEAAoD;AACpD,+DAA6C;AAC7C,iFAA+D;AAC/D,yEAAuD;AACvD,2EAAyD;AACzD,8EAA4D;AAC5D,uEAAqD;AACrD,gFAA8D;AAC9D,sEAAoD"}
@@ -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"}