@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.
- package/CHANGELOG.md +22 -0
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/test/index.d.ts.map +1 -1
- package/dist/generated/test/index.js +13 -1
- package/dist/generated/test/index.js.map +1 -1
- package/dist/src/Columns.d.ts +20 -2
- package/dist/src/Columns.d.ts.map +1 -1
- package/dist/src/Columns.js +46 -45
- package/dist/src/Columns.js.map +1 -1
- package/dist/src/Db.d.ts +17 -0
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +28 -9
- package/dist/src/Db.js.map +1 -1
- package/dist/src/TableWatcher.d.ts +15 -6
- package/dist/src/TableWatcher.d.ts.map +1 -1
- package/dist/src/TableWatcher.js.map +1 -1
- package/dist/src/TableWatcherRunner.d.ts +14 -6
- package/dist/src/TableWatcherRunner.d.ts.map +1 -1
- package/dist/src/TableWatcherRunner.js +19 -12
- package/dist/src/TableWatcherRunner.js.map +1 -1
- package/dist/test/index.d.ts +2 -0
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +2 -0
- package/dist/test/index.js.map +1 -1
- package/dist/test/reusable/CascadeDeleteTests.d.ts.map +1 -1
- package/dist/test/reusable/CascadeDeleteTests.js +132 -0
- package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
- package/dist/test/reusable/TableWatcherAuthorityTests.d.ts +13 -0
- package/dist/test/reusable/TableWatcherAuthorityTests.d.ts.map +1 -0
- package/dist/test/reusable/TableWatcherAuthorityTests.js +392 -0
- package/dist/test/reusable/TableWatcherAuthorityTests.js.map +1 -0
- package/dist/test/util/DbTestEnvironment.d.ts.map +1 -1
- package/dist/test/util/DbTestEnvironment.js +3 -2
- package/dist/test/util/DbTestEnvironment.js.map +1 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +38 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.js +119 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -1
- package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts +35 -0
- package/dist/test/util/tables/tableWatcherAuthorityTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/tableWatcherAuthorityTestTables.js +113 -0
- package/dist/test/util/tables/tableWatcherAuthorityTestTables.js.map +1 -0
- package/generated/index.ts +1 -1
- package/generated/test/index.ts +13 -1
- package/package.json +2 -2
- package/src/Columns.ts +50 -27
- package/src/Db.ts +42 -15
- package/src/TableWatcher.ts +17 -6
- package/src/TableWatcherRunner.ts +25 -12
- package/test/index.ts +2 -0
- package/test/reusable/CascadeDeleteTests.ts +90 -0
- package/test/reusable/TableWatcherAuthorityTests.ts +204 -0
- package/test/util/DbTestEnvironment.ts +2 -0
- package/test/util/tables/cascadeDeleteTestTables.ts +85 -0
- package/test/util/tables/tableWatcherAuthorityTestTables.ts +61 -0
|
@@ -54,6 +54,24 @@ export interface Mission extends Record {
|
|
|
54
54
|
assigneeTableName?: string | null;
|
|
55
55
|
assigneeRef?: Reference<Pilot | Robot> | null;
|
|
56
56
|
}
|
|
57
|
+
export interface GuardedMember extends Record {
|
|
58
|
+
name: string;
|
|
59
|
+
}
|
|
60
|
+
export interface GuardedHolderRef extends Record {
|
|
61
|
+
holderName: string;
|
|
62
|
+
memberRef?: Reference<GuardedMember> | null;
|
|
63
|
+
}
|
|
64
|
+
export interface GuardedHolderArr extends Record {
|
|
65
|
+
holderName: string;
|
|
66
|
+
memberRefs?: ReferenceArray<GuardedMember> | null;
|
|
67
|
+
}
|
|
68
|
+
export interface GuardedHolderDyn extends Record {
|
|
69
|
+
holderName: string;
|
|
70
|
+
memberDynTableName?: string | null;
|
|
71
|
+
memberDynRef?: Reference<GuardedMember> | null;
|
|
72
|
+
}
|
|
73
|
+
/** The guarded table's refusal of a non-system query — the words a suite asserts on. */
|
|
74
|
+
export declare const GUARDED_QUERY_REFUSAL = "no user in scope";
|
|
57
75
|
/**
|
|
58
76
|
* ---------- Table Classes ----------
|
|
59
77
|
*/
|
|
@@ -117,6 +135,22 @@ export declare class MissionTable extends Table<Mission> {
|
|
|
117
135
|
name: string;
|
|
118
136
|
columns: Table<Mission>['columns'];
|
|
119
137
|
}
|
|
138
|
+
export declare class GuardedMemberTable extends Table<GuardedMember> {
|
|
139
|
+
name: string;
|
|
140
|
+
columns: Table<GuardedMember>['columns'];
|
|
141
|
+
}
|
|
142
|
+
export declare class GuardedHolderRefTable extends Table<GuardedHolderRef> {
|
|
143
|
+
name: string;
|
|
144
|
+
columns: Table<GuardedHolderRef>['columns'];
|
|
145
|
+
}
|
|
146
|
+
export declare class GuardedHolderArrTable extends Table<GuardedHolderArr> {
|
|
147
|
+
name: string;
|
|
148
|
+
columns: Table<GuardedHolderArr>['columns'];
|
|
149
|
+
}
|
|
150
|
+
export declare class GuardedHolderDynTable extends Table<GuardedHolderDyn> {
|
|
151
|
+
name: string;
|
|
152
|
+
columns: Table<GuardedHolderDyn>['columns'];
|
|
153
|
+
}
|
|
120
154
|
export declare const cascadeDeleteTestTables: {
|
|
121
155
|
MemberRef: Table<MemberRef>;
|
|
122
156
|
GroupRef: Table<GroupRef>;
|
|
@@ -133,5 +167,9 @@ export declare const cascadeDeleteTestTables: {
|
|
|
133
167
|
Pilot: Table<Pilot>;
|
|
134
168
|
Robot: Table<Robot>;
|
|
135
169
|
Mission: Table<Mission>;
|
|
170
|
+
GuardedMember: Table<GuardedMember>;
|
|
171
|
+
GuardedHolderRef: Table<GuardedHolderRef>;
|
|
172
|
+
GuardedHolderArr: Table<GuardedHolderArr>;
|
|
173
|
+
GuardedHolderDyn: Table<GuardedHolderDyn>;
|
|
136
174
|
};
|
|
137
175
|
//# sourceMappingURL=cascadeDeleteTestTables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascadeDeleteTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAEL,MAAM,EACN,SAAS,EACT,cAAc,EACf,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CACzC;AAGD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAC/C;AAGD,MAAM,WAAW,SAAU,SAAQ,MAAM;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,QAAS,SAAQ,MAAM;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;CAC5C;AAGD,MAAM,WAAW,IAAK,SAAQ,MAAM;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,OAAQ,SAAQ,MAAM;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClC;AAGD,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;CAClD;AAGD,MAAM,WAAW,MAAO,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,IAAK,SAAQ,MAAM;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACxC;AAGD,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,OAAQ,SAAQ,MAAM;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;CAC/C;
|
|
1
|
+
{"version":3,"file":"cascadeDeleteTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,44 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
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
|
+
};
|
|
17
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.cascadeDeleteTestTables = exports.MissionTable = exports.RobotTable = exports.PilotTable = exports.TaskTable = exports.WorkerTable = exports.GroupArrRevTable = exports.MemberArrRevTable = exports.CommentTable = exports.PostTable = exports.GroupDynTable = exports.MemberDynTable = exports.GroupArrTable = exports.MemberArrTable = exports.GroupRefTable = exports.MemberRefTable = void 0;
|
|
54
|
+
exports.cascadeDeleteTestTables = exports.GuardedHolderDynTable = exports.GuardedHolderArrTable = exports.GuardedHolderRefTable = exports.GuardedMemberTable = exports.MissionTable = exports.RobotTable = exports.PilotTable = exports.TaskTable = exports.WorkerTable = exports.GroupArrRevTable = exports.MemberArrRevTable = exports.CommentTable = exports.PostTable = exports.GroupDynTable = exports.MemberDynTable = exports.GroupArrTable = exports.MemberArrTable = exports.GroupRefTable = exports.MemberRefTable = exports.GUARDED_QUERY_REFUSAL = void 0;
|
|
19
55
|
var db_1 = require("@proteinjs/db");
|
|
20
56
|
/**
|
|
21
57
|
* ---------- Table Names ----------
|
|
@@ -42,6 +78,13 @@ var TASK_TABLE = 'db_test_cd_tasks';
|
|
|
42
78
|
var PILOT_TABLE = 'db_test_cd_pilots';
|
|
43
79
|
var ROBOT_TABLE = 'db_test_cd_robots';
|
|
44
80
|
var MISSION_TABLE = 'db_test_cd_missions';
|
|
81
|
+
// Cascade under the write's authority (guarded child)
|
|
82
|
+
var GUARDED_MEMBER_TABLE = 'db_test_cd_guarded_members';
|
|
83
|
+
var GUARDED_HOLDER_REF_TABLE = 'db_test_cd_guarded_holders_ref';
|
|
84
|
+
var GUARDED_HOLDER_ARR_TABLE = 'db_test_cd_guarded_holders_arr';
|
|
85
|
+
var GUARDED_HOLDER_DYN_TABLE = 'db_test_cd_guarded_holders_dyn';
|
|
86
|
+
/** The guarded table's refusal of a non-system query — the words a suite asserts on. */
|
|
87
|
+
exports.GUARDED_QUERY_REFUSAL = 'no user in scope';
|
|
45
88
|
/**
|
|
46
89
|
* ---------- Table Classes ----------
|
|
47
90
|
*/
|
|
@@ -264,6 +307,77 @@ var MissionTable = /** @class */ (function (_super) {
|
|
|
264
307
|
return MissionTable;
|
|
265
308
|
}(db_1.Table));
|
|
266
309
|
exports.MissionTable = MissionTable;
|
|
310
|
+
// Cascade under the write's authority: the guarded child and its three holders
|
|
311
|
+
var GuardedMemberTable = /** @class */ (function (_super) {
|
|
312
|
+
__extends(GuardedMemberTable, _super);
|
|
313
|
+
function GuardedMemberTable() {
|
|
314
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
315
|
+
_this.name = GUARDED_MEMBER_TABLE;
|
|
316
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
317
|
+
name: new db_1.StringColumn('name', {
|
|
318
|
+
// The scoped-table contract without a dependency on it: a non-system query of this table
|
|
319
|
+
// would need the context's user to scope it to, and there is none — refuse it by name.
|
|
320
|
+
addToQuery: function (qb, runAsSystem) { return __awaiter(_this, void 0, void 0, function () {
|
|
321
|
+
return __generator(this, function (_a) {
|
|
322
|
+
if (!runAsSystem) {
|
|
323
|
+
throw new Error(exports.GUARDED_QUERY_REFUSAL);
|
|
324
|
+
}
|
|
325
|
+
return [2 /*return*/];
|
|
326
|
+
});
|
|
327
|
+
}); },
|
|
328
|
+
}),
|
|
329
|
+
});
|
|
330
|
+
return _this;
|
|
331
|
+
}
|
|
332
|
+
return GuardedMemberTable;
|
|
333
|
+
}(db_1.Table));
|
|
334
|
+
exports.GuardedMemberTable = GuardedMemberTable;
|
|
335
|
+
var GuardedHolderRefTable = /** @class */ (function (_super) {
|
|
336
|
+
__extends(GuardedHolderRefTable, _super);
|
|
337
|
+
function GuardedHolderRefTable() {
|
|
338
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
339
|
+
_this.name = GUARDED_HOLDER_REF_TABLE;
|
|
340
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
341
|
+
holderName: new db_1.StringColumn('holder_name'),
|
|
342
|
+
memberRef: new db_1.ReferenceColumn('member_id', GUARDED_MEMBER_TABLE, true // cascade: deleting the holder deletes the referenced GuardedMember
|
|
343
|
+
),
|
|
344
|
+
});
|
|
345
|
+
return _this;
|
|
346
|
+
}
|
|
347
|
+
return GuardedHolderRefTable;
|
|
348
|
+
}(db_1.Table));
|
|
349
|
+
exports.GuardedHolderRefTable = GuardedHolderRefTable;
|
|
350
|
+
var GuardedHolderArrTable = /** @class */ (function (_super) {
|
|
351
|
+
__extends(GuardedHolderArrTable, _super);
|
|
352
|
+
function GuardedHolderArrTable() {
|
|
353
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
354
|
+
_this.name = GUARDED_HOLDER_ARR_TABLE;
|
|
355
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
356
|
+
holderName: new db_1.StringColumn('holder_name'),
|
|
357
|
+
memberRefs: new db_1.ReferenceArrayColumn('member_ids', GUARDED_MEMBER_TABLE, true // cascade: deleting the holder deletes every referenced GuardedMember
|
|
358
|
+
),
|
|
359
|
+
});
|
|
360
|
+
return _this;
|
|
361
|
+
}
|
|
362
|
+
return GuardedHolderArrTable;
|
|
363
|
+
}(db_1.Table));
|
|
364
|
+
exports.GuardedHolderArrTable = GuardedHolderArrTable;
|
|
365
|
+
var GuardedHolderDynTable = /** @class */ (function (_super) {
|
|
366
|
+
__extends(GuardedHolderDynTable, _super);
|
|
367
|
+
function GuardedHolderDynTable() {
|
|
368
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
369
|
+
_this.name = GUARDED_HOLDER_DYN_TABLE;
|
|
370
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
371
|
+
holderName: new db_1.StringColumn('holder_name'),
|
|
372
|
+
memberDynTableName: new db_1.DynamicReferenceTableNameColumn('member_dyn_table_name', 'member_dyn_ref'),
|
|
373
|
+
memberDynRef: new db_1.DynamicReferenceColumn('member_dyn_ref', 'member_dyn_table_name', true // cascade: deleting the holder deletes the dynamically referenced GuardedMember
|
|
374
|
+
),
|
|
375
|
+
});
|
|
376
|
+
return _this;
|
|
377
|
+
}
|
|
378
|
+
return GuardedHolderDynTable;
|
|
379
|
+
}(db_1.Table));
|
|
380
|
+
exports.GuardedHolderDynTable = GuardedHolderDynTable;
|
|
267
381
|
exports.cascadeDeleteTestTables = {
|
|
268
382
|
MemberRef: new MemberRefTable(),
|
|
269
383
|
GroupRef: new GroupRefTable(),
|
|
@@ -280,5 +394,9 @@ exports.cascadeDeleteTestTables = {
|
|
|
280
394
|
Pilot: new PilotTable(),
|
|
281
395
|
Robot: new RobotTable(),
|
|
282
396
|
Mission: new MissionTable(),
|
|
397
|
+
GuardedMember: new GuardedMemberTable(),
|
|
398
|
+
GuardedHolderRef: new GuardedHolderRefTable(),
|
|
399
|
+
GuardedHolderArr: new GuardedHolderArrTable(),
|
|
400
|
+
GuardedHolderDyn: new GuardedHolderDynTable(),
|
|
283
401
|
};
|
|
284
402
|
//# sourceMappingURL=cascadeDeleteTestTables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascadeDeleteTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cascadeDeleteTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Table, Record } from '@proteinjs/db';
|
|
2
|
+
/** The watched table: a plain row whose writes fire the suite's journaling watcher. */
|
|
3
|
+
export interface WatchedNote extends Record {
|
|
4
|
+
title: string;
|
|
5
|
+
}
|
|
6
|
+
/** The watcher's journal: one row per hook run, writable and readable as system only. */
|
|
7
|
+
export interface GuardedJournal extends Record {
|
|
8
|
+
/** The watched row's id. */
|
|
9
|
+
note: string;
|
|
10
|
+
/** The hook that wrote the row (`beforeInsert` … `afterDelete`). */
|
|
11
|
+
hook: string;
|
|
12
|
+
/** The scoped-table contract in miniature — see {@link GuardedJournalTable}. */
|
|
13
|
+
principal: string;
|
|
14
|
+
}
|
|
15
|
+
/** The journal's refusal of a non-system write or query, by name. */
|
|
16
|
+
export declare const WATCHER_GUARDED_REFUSAL = "no user in scope (journal)";
|
|
17
|
+
export declare class WatchedNoteTable extends Table<WatchedNote> {
|
|
18
|
+
name: string;
|
|
19
|
+
columns: Table<WatchedNote>['columns'];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A scoped table's shape without a dependency on one: a non-system write needs the context's
|
|
23
|
+
* user to stamp the row with, a non-system query needs it to scope the query to — there is none
|
|
24
|
+
* in a session-less context, so both refuse by name. A system write supplies the principal itself
|
|
25
|
+
* and a system query is not scoped, exactly as `@proteinjs/user`'s ScopedRecord columns behave.
|
|
26
|
+
*/
|
|
27
|
+
export declare class GuardedJournalTable extends Table<GuardedJournal> {
|
|
28
|
+
name: string;
|
|
29
|
+
columns: Table<GuardedJournal>['columns'];
|
|
30
|
+
}
|
|
31
|
+
export declare const tableWatcherAuthorityTestTables: {
|
|
32
|
+
WatchedNote: Table<WatchedNote>;
|
|
33
|
+
GuardedJournal: Table<GuardedJournal>;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=tableWatcherAuthorityTestTables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableWatcherAuthorityTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/tableWatcherAuthorityTestTables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAI/E,uFAAuF;AACvF,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yFAAyF;AACzF,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAEpE,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,WAAW,CAAC;IACtD,IAAI,SAAsB;IAC1B,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAEnC;CACJ;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC;IAC5D,IAAI,SAAyB;IAC7B,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CActC;CACJ;AAED,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
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
|
+
exports.tableWatcherAuthorityTestTables = exports.GuardedJournalTable = exports.WatchedNoteTable = exports.WATCHER_GUARDED_REFUSAL = void 0;
|
|
55
|
+
var db_1 = require("@proteinjs/db");
|
|
56
|
+
var WATCHED_NOTE_TABLE = 'db_test_tw_notes';
|
|
57
|
+
var GUARDED_JOURNAL_TABLE = 'db_test_tw_guarded_journal';
|
|
58
|
+
/** The journal's refusal of a non-system write or query, by name. */
|
|
59
|
+
exports.WATCHER_GUARDED_REFUSAL = 'no user in scope (journal)';
|
|
60
|
+
var WatchedNoteTable = /** @class */ (function (_super) {
|
|
61
|
+
__extends(WatchedNoteTable, _super);
|
|
62
|
+
function WatchedNoteTable() {
|
|
63
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
64
|
+
_this.name = WATCHED_NOTE_TABLE;
|
|
65
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
66
|
+
title: new db_1.StringColumn('title'),
|
|
67
|
+
});
|
|
68
|
+
return _this;
|
|
69
|
+
}
|
|
70
|
+
return WatchedNoteTable;
|
|
71
|
+
}(db_1.Table));
|
|
72
|
+
exports.WatchedNoteTable = WatchedNoteTable;
|
|
73
|
+
/**
|
|
74
|
+
* A scoped table's shape without a dependency on one: a non-system write needs the context's
|
|
75
|
+
* user to stamp the row with, a non-system query needs it to scope the query to — there is none
|
|
76
|
+
* in a session-less context, so both refuse by name. A system write supplies the principal itself
|
|
77
|
+
* and a system query is not scoped, exactly as `@proteinjs/user`'s ScopedRecord columns behave.
|
|
78
|
+
*/
|
|
79
|
+
var GuardedJournalTable = /** @class */ (function (_super) {
|
|
80
|
+
__extends(GuardedJournalTable, _super);
|
|
81
|
+
function GuardedJournalTable() {
|
|
82
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
83
|
+
_this.name = GUARDED_JOURNAL_TABLE;
|
|
84
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
85
|
+
note: new db_1.StringColumn('note'),
|
|
86
|
+
hook: new db_1.StringColumn('hook'),
|
|
87
|
+
principal: new db_1.StringColumn('principal', {
|
|
88
|
+
defaultValue: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
89
|
+
return __generator(this, function (_a) {
|
|
90
|
+
throw new Error(exports.WATCHER_GUARDED_REFUSAL);
|
|
91
|
+
});
|
|
92
|
+
}); },
|
|
93
|
+
forceDefaultValue: function (runAsSystem) { return !runAsSystem; },
|
|
94
|
+
addToQuery: function (qb, runAsSystem) { return __awaiter(_this, void 0, void 0, function () {
|
|
95
|
+
return __generator(this, function (_a) {
|
|
96
|
+
if (!runAsSystem) {
|
|
97
|
+
throw new Error(exports.WATCHER_GUARDED_REFUSAL);
|
|
98
|
+
}
|
|
99
|
+
return [2 /*return*/];
|
|
100
|
+
});
|
|
101
|
+
}); },
|
|
102
|
+
}),
|
|
103
|
+
});
|
|
104
|
+
return _this;
|
|
105
|
+
}
|
|
106
|
+
return GuardedJournalTable;
|
|
107
|
+
}(db_1.Table));
|
|
108
|
+
exports.GuardedJournalTable = GuardedJournalTable;
|
|
109
|
+
exports.tableWatcherAuthorityTestTables = {
|
|
110
|
+
WatchedNote: new WatchedNoteTable(),
|
|
111
|
+
GuardedJournal: new GuardedJournalTable(),
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=tableWatcherAuthorityTestTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableWatcherAuthorityTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/tableWatcherAuthorityTestTables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA+E;AAmB/E,IAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAC9C,IAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAE3D,qEAAqE;AACxD,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AAEpE;IAAsC,oCAAkB;IAAxD;QAAA,qEAKC;QAJC,UAAI,GAAG,kBAAkB,CAAC;QAC1B,aAAO,GAAkC,IAAA,sBAAiB,EAAc;YACtE,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,uBAAC;AAAD,CAAC,AALD,CAAsC,UAAK,GAK1C;AALY,4CAAgB;AAO7B;;;;;GAKG;AACH;IAAyC,uCAAqB;IAA9D;QAAA,qEAiBC;QAhBC,UAAI,GAAG,qBAAqB,CAAC;QAC7B,aAAO,GAAqC,IAAA,sBAAiB,EAAiB;YAC5E,IAAI,EAAE,IAAI,iBAAY,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAE,IAAI,iBAAY,CAAC,MAAM,CAAC;YAC9B,SAAS,EAAE,IAAI,iBAAY,CAAC,WAAW,EAAE;gBACvC,YAAY,EAAE;;wBACZ,MAAM,IAAI,KAAK,CAAC,+BAAuB,CAAC,CAAC;;qBAC1C;gBACD,iBAAiB,EAAE,UAAC,WAAW,IAAK,OAAA,CAAC,WAAW,EAAZ,CAAY;gBAChD,UAAU,EAAE,UAAO,EAAE,EAAE,WAAW;;wBAChC,IAAI,CAAC,WAAW,EAAE;4BAChB,MAAM,IAAI,KAAK,CAAC,+BAAuB,CAAC,CAAC;yBAC1C;;;qBACF;aACF,CAAC;SACH,CAAC,CAAC;;IACL,CAAC;IAAD,0BAAC;AAAD,CAAC,AAjBD,CAAyC,UAAK,GAiB7C;AAjBY,kDAAmB;AAmBnB,QAAA,+BAA+B,GAAG;IAC7C,WAAW,EAAE,IAAI,gBAAgB,EAAwB;IACzD,cAAc,EAAE,IAAI,mBAAmB,EAA2B;CACnE,CAAC"}
|