@proteinjs/db 1.33.0 → 1.34.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 +13 -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 +15 -1
- package/dist/generated/test/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/src/Db.d.ts +2 -0
- package/dist/src/Db.d.ts.map +1 -1
- package/dist/src/Db.js +33 -62
- package/dist/src/Db.js.map +1 -1
- package/dist/src/ReverseCascadeEdgeIndex.d.ts +51 -0
- package/dist/src/ReverseCascadeEdgeIndex.d.ts.map +1 -0
- package/dist/src/ReverseCascadeEdgeIndex.js +108 -0
- package/dist/src/ReverseCascadeEdgeIndex.js.map +1 -0
- package/dist/src/Table.d.ts +34 -7
- package/dist/src/Table.d.ts.map +1 -1
- package/dist/src/Table.js +2 -7
- package/dist/src/Table.js.map +1 -1
- package/dist/src/schema/TableManager.d.ts +26 -0
- package/dist/src/schema/TableManager.d.ts.map +1 -1
- package/dist/src/schema/TableManager.js +154 -13
- package/dist/src/schema/TableManager.js.map +1 -1
- package/dist/src/source/SourceRecordLoader.d.ts +18 -1
- package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
- package/dist/src/source/SourceRecordLoader.js +187 -68
- package/dist/src/source/SourceRecordLoader.js.map +1 -1
- package/dist/src/tables/MigrationTable.d.ts +1 -6
- package/dist/src/tables/MigrationTable.d.ts.map +1 -1
- package/dist/src/tables/MigrationTable.js +2 -1
- package/dist/src/tables/MigrationTable.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 +59 -0
- package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
- package/dist/test/reusable/SourceRecordSyncTests.d.ts +11 -0
- package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -0
- package/dist/test/reusable/SourceRecordSyncTests.js +483 -0
- package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -0
- package/dist/test/util/DbTestEnvironment.d.ts.map +1 -1
- package/dist/test/util/DbTestEnvironment.js +2 -1
- package/dist/test/util/DbTestEnvironment.js.map +1 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +46 -0
- package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.js +51 -1
- package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -1
- package/dist/test/util/tables/crudTestTables.d.ts +1 -1
- package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts +82 -0
- package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts.map +1 -0
- package/dist/test/util/tables/sourceRecordSyncTestTables.js +90 -0
- package/dist/test/util/tables/sourceRecordSyncTestTables.js.map +1 -0
- package/dist/test/util/tables/transactionTestTables.d.ts +1 -1
- package/generated/index.ts +1 -1
- package/generated/test/index.ts +15 -1
- package/index.ts +4 -0
- package/package.json +2 -2
- package/src/Db.ts +32 -57
- package/src/ReverseCascadeEdgeIndex.ts +126 -0
- package/src/Table.ts +32 -9
- package/src/schema/TableManager.ts +98 -1
- package/src/source/SourceRecordLoader.ts +133 -23
- package/src/tables/MigrationTable.ts +3 -2
- package/test/index.ts +2 -0
- package/test/reusable/CascadeDeleteTests.ts +46 -0
- package/test/reusable/SourceRecordSyncTests.ts +288 -0
- package/test/util/DbTestEnvironment.ts +2 -0
- package/test/util/tables/cascadeDeleteTestTables.ts +48 -0
- package/test/util/tables/sourceRecordSyncTestTables.ts +84 -0
|
@@ -0,0 +1,483 @@
|
|
|
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 __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
38
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
39
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
40
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
41
|
+
function step(op) {
|
|
42
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
43
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
44
|
+
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;
|
|
45
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
46
|
+
switch (op[0]) {
|
|
47
|
+
case 0: case 1: t = op; break;
|
|
48
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
49
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
50
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
51
|
+
default:
|
|
52
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
53
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
54
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
55
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
56
|
+
if (t[2]) _.ops.pop();
|
|
57
|
+
_.trys.pop(); continue;
|
|
58
|
+
}
|
|
59
|
+
op = body.call(thisArg, _);
|
|
60
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
61
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
+
exports.sourceRecordSyncTests = void 0;
|
|
66
|
+
var reflection_1 = require("@proteinjs/reflection");
|
|
67
|
+
var db_1 = require("@proteinjs/db");
|
|
68
|
+
// Relative on purpose: the class shares its name with the SourceRecordLoader declaration
|
|
69
|
+
// interface exported from the package index, so it is not index-exported.
|
|
70
|
+
var SourceRecordLoader_1 = require("../../src/source/SourceRecordLoader");
|
|
71
|
+
var TableWatcherRunner_1 = require("../../src/TableWatcherRunner");
|
|
72
|
+
var DbTestEnvironment_1 = require("../util/DbTestEnvironment");
|
|
73
|
+
var sourceRecordSyncTestTables_1 = require("../util/tables/sourceRecordSyncTestTables");
|
|
74
|
+
/** Records afterUpdate payloads on the machine table — the watcher-visibility contract probe. */
|
|
75
|
+
var RecordingMachineAccountWatcher = /** @class */ (function () {
|
|
76
|
+
function RecordingMachineAccountWatcher() {
|
|
77
|
+
}
|
|
78
|
+
RecordingMachineAccountWatcher.prototype.name = function () {
|
|
79
|
+
return this.constructor.name;
|
|
80
|
+
};
|
|
81
|
+
RecordingMachineAccountWatcher.prototype.table = function () {
|
|
82
|
+
return sourceRecordSyncTestTables_1.sourceRecordSyncTestTables.SyncMachineAccount;
|
|
83
|
+
};
|
|
84
|
+
RecordingMachineAccountWatcher.prototype.afterUpdate = function (recordUpdateCount, record) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
+
return __generator(this, function (_a) {
|
|
87
|
+
RecordingMachineAccountWatcher.updates.push(__assign({}, record));
|
|
88
|
+
return [2 /*return*/];
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
RecordingMachineAccountWatcher.updates = [];
|
|
93
|
+
return RecordingMachineAccountWatcher;
|
|
94
|
+
}());
|
|
95
|
+
/**
|
|
96
|
+
* Emulator-backed outcome tests for the source-record sync's mixed-table semantics:
|
|
97
|
+
* declare-only ownership (human rows structurally untouchable), natural-key adoption
|
|
98
|
+
* (existing row keeps its id and runtime fields), `onSourceRemoved` policies (flag-not-delete
|
|
99
|
+
* through `Db.update` so watchers fire; default delete unchanged), boot-time natural-key
|
|
100
|
+
* validation, and the unique-index duplicate preflight.
|
|
101
|
+
*/
|
|
102
|
+
var sourceRecordSyncTests = function (driver, transactionContextFactory, dropTable) {
|
|
103
|
+
return function () {
|
|
104
|
+
var testEnv = new DbTestEnvironment_1.DbTestEnvironment(driver, dropTable);
|
|
105
|
+
var machineTable = sourceRecordSyncTestTables_1.sourceRecordSyncTestTables.SyncMachineAccount;
|
|
106
|
+
var defaultPolicyTable = sourceRecordSyncTestTables_1.sourceRecordSyncTestTables.SyncDefaultPolicy;
|
|
107
|
+
var objectCache = function () { return reflection_1.SourceRepository.get().objectCache; };
|
|
108
|
+
var originalWatchers;
|
|
109
|
+
/** Seed the boot declarations and run the sync — one boot of `Db.init`'s loader leg. */
|
|
110
|
+
var boot = function (declarations) { return __awaiter(void 0, void 0, void 0, function () {
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
switch (_a.label) {
|
|
113
|
+
case 0:
|
|
114
|
+
objectCache()['@proteinjs/db/SourceRecordLoader'] = declarations;
|
|
115
|
+
return [4 /*yield*/, new SourceRecordLoader_1.SourceRecordLoader().load()];
|
|
116
|
+
case 1:
|
|
117
|
+
_a.sent();
|
|
118
|
+
return [2 /*return*/];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}); };
|
|
122
|
+
var machineDeclaration = function (record) { return ({
|
|
123
|
+
table: machineTable,
|
|
124
|
+
record: __assign({ status: 'active' }, record),
|
|
125
|
+
}); };
|
|
126
|
+
var machineRows = function (query) {
|
|
127
|
+
if (query === void 0) { query = {}; }
|
|
128
|
+
return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
129
|
+
switch (_a.label) {
|
|
130
|
+
case 0: return [4 /*yield*/, (0, db_1.getDbAsSystem)().query(machineTable, query)];
|
|
131
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
132
|
+
}
|
|
133
|
+
}); });
|
|
134
|
+
};
|
|
135
|
+
beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
136
|
+
return __generator(this, function (_a) {
|
|
137
|
+
switch (_a.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
// The suite drives the loader exactly the way Db.init does — through the DEFAULT driver —
|
|
140
|
+
// so the driver under test must be the resolvable default (and any previously cached
|
|
141
|
+
// default must not leak in from earlier suites in this process).
|
|
142
|
+
objectCache()['@proteinjs/db/DefaultDbDriverFactory'] = [{ getDbDriver: function () { return driver; } }];
|
|
143
|
+
objectCache()['@proteinjs/db/DefaultTransactionContextFactory'] = [transactionContextFactory];
|
|
144
|
+
db_1.Db.defaultDbDriver = undefined;
|
|
145
|
+
// Only the recording watcher observes this run — and the runner's static map must be
|
|
146
|
+
// rebuilt from the seeded cache rather than whatever an earlier Db construction cached.
|
|
147
|
+
originalWatchers = objectCache()['@proteinjs/db/TableWatcher'];
|
|
148
|
+
objectCache()['@proteinjs/db/TableWatcher'] = [new RecordingMachineAccountWatcher()];
|
|
149
|
+
TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
|
|
150
|
+
return [4 /*yield*/, testEnv.beforeAll()];
|
|
151
|
+
case 1:
|
|
152
|
+
_a.sent();
|
|
153
|
+
return [2 /*return*/];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}); }, 60000);
|
|
157
|
+
afterAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
158
|
+
return __generator(this, function (_a) {
|
|
159
|
+
switch (_a.label) {
|
|
160
|
+
case 0: return [4 /*yield*/, testEnv.afterAll()];
|
|
161
|
+
case 1:
|
|
162
|
+
_a.sent();
|
|
163
|
+
delete objectCache()['@proteinjs/db/SourceRecordLoader'];
|
|
164
|
+
delete objectCache()['@proteinjs/db/DefaultDbDriverFactory'];
|
|
165
|
+
delete objectCache()['@proteinjs/db/DefaultTransactionContextFactory'];
|
|
166
|
+
if (originalWatchers) {
|
|
167
|
+
objectCache()['@proteinjs/db/TableWatcher'] = originalWatchers;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
delete objectCache()['@proteinjs/db/TableWatcher'];
|
|
171
|
+
}
|
|
172
|
+
TableWatcherRunner_1.TableWatcherRunner.tableWatcherMap = undefined;
|
|
173
|
+
db_1.Db.defaultDbDriver = undefined;
|
|
174
|
+
return [2 /*return*/];
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}); }, 60000);
|
|
178
|
+
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
179
|
+
var db;
|
|
180
|
+
return __generator(this, function (_a) {
|
|
181
|
+
switch (_a.label) {
|
|
182
|
+
case 0:
|
|
183
|
+
db = (0, db_1.getDbAsSystem)();
|
|
184
|
+
return [4 /*yield*/, db.delete(machineTable, {})];
|
|
185
|
+
case 1:
|
|
186
|
+
_a.sent();
|
|
187
|
+
return [4 /*yield*/, db.delete(defaultPolicyTable, {})];
|
|
188
|
+
case 2:
|
|
189
|
+
_a.sent();
|
|
190
|
+
RecordingMachineAccountWatcher.updates = [];
|
|
191
|
+
return [2 /*return*/];
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}); });
|
|
195
|
+
test('declare-only on a mixed table: declared records insert; human rows are untouched', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
196
|
+
var db, human, machine, humanAfter, _a;
|
|
197
|
+
return __generator(this, function (_b) {
|
|
198
|
+
switch (_b.label) {
|
|
199
|
+
case 0:
|
|
200
|
+
db = (0, db_1.getDbAsSystem)();
|
|
201
|
+
return [4 /*yield*/, db.insert(machineTable, {
|
|
202
|
+
email: 'human@test.local',
|
|
203
|
+
displayName: 'A human',
|
|
204
|
+
runtimeNote: 'human-owned',
|
|
205
|
+
})];
|
|
206
|
+
case 1:
|
|
207
|
+
human = _b.sent();
|
|
208
|
+
return [4 /*yield*/, boot([machineDeclaration({ id: 'machine-1', email: 'machine@test.local', displayName: 'Machine' })])];
|
|
209
|
+
case 2:
|
|
210
|
+
_b.sent();
|
|
211
|
+
return [4 /*yield*/, db.get(machineTable, { email: 'machine@test.local' })];
|
|
212
|
+
case 3:
|
|
213
|
+
machine = _b.sent();
|
|
214
|
+
expect(machine).toMatchObject({
|
|
215
|
+
id: 'machine-1',
|
|
216
|
+
displayName: 'Machine',
|
|
217
|
+
status: 'active',
|
|
218
|
+
isLoadedFromSource: true,
|
|
219
|
+
});
|
|
220
|
+
return [4 /*yield*/, db.get(machineTable, { id: human.id })];
|
|
221
|
+
case 4:
|
|
222
|
+
humanAfter = _b.sent();
|
|
223
|
+
expect(humanAfter).toBeDefined();
|
|
224
|
+
expect(humanAfter.isLoadedFromSource).toBeFalsy();
|
|
225
|
+
expect(humanAfter).toMatchObject({ displayName: 'A human', runtimeNote: 'human-owned' });
|
|
226
|
+
expect(humanAfter.status).toBeFalsy();
|
|
227
|
+
_a = expect;
|
|
228
|
+
return [4 /*yield*/, machineRows()];
|
|
229
|
+
case 5:
|
|
230
|
+
_a.apply(void 0, [_b.sent()]).toHaveLength(2);
|
|
231
|
+
return [2 /*return*/];
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}); });
|
|
235
|
+
test('declared fields revert on boot; runtime-owned fields survive; converged boots write nothing', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
236
|
+
var declarations, db, reverted, stampBefore, afterIdleBoot;
|
|
237
|
+
return __generator(this, function (_a) {
|
|
238
|
+
switch (_a.label) {
|
|
239
|
+
case 0:
|
|
240
|
+
declarations = [
|
|
241
|
+
machineDeclaration({ id: 'machine-1', email: 'machine@test.local', displayName: 'Machine' }),
|
|
242
|
+
];
|
|
243
|
+
return [4 /*yield*/, boot(declarations)];
|
|
244
|
+
case 1:
|
|
245
|
+
_a.sent();
|
|
246
|
+
db = (0, db_1.getDbAsSystem)();
|
|
247
|
+
return [4 /*yield*/, db.update(machineTable, { id: 'machine-1', displayName: 'Drifted', runtimeNote: 'provisioned' })];
|
|
248
|
+
case 2:
|
|
249
|
+
_a.sent();
|
|
250
|
+
return [4 /*yield*/, boot(declarations)];
|
|
251
|
+
case 3:
|
|
252
|
+
_a.sent();
|
|
253
|
+
return [4 /*yield*/, db.get(machineTable, { id: 'machine-1' })];
|
|
254
|
+
case 4:
|
|
255
|
+
reverted = _a.sent();
|
|
256
|
+
expect(reverted).toMatchObject({ displayName: 'Machine', runtimeNote: 'provisioned' });
|
|
257
|
+
stampBefore = reverted.updated.valueOf();
|
|
258
|
+
return [4 /*yield*/, boot(declarations)];
|
|
259
|
+
case 5:
|
|
260
|
+
_a.sent();
|
|
261
|
+
return [4 /*yield*/, db.get(machineTable, { id: 'machine-1' })];
|
|
262
|
+
case 6:
|
|
263
|
+
afterIdleBoot = _a.sent();
|
|
264
|
+
expect(afterIdleBoot.updated.valueOf()).toBe(stampBefore);
|
|
265
|
+
return [2 /*return*/];
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
}); });
|
|
269
|
+
test('natural-key adoption: an existing row is adopted in place — id and runtime fields preserved', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
270
|
+
var db, handMade, rows, _a, stampBefore, afterIdleBoot;
|
|
271
|
+
return __generator(this, function (_b) {
|
|
272
|
+
switch (_b.label) {
|
|
273
|
+
case 0:
|
|
274
|
+
db = (0, db_1.getDbAsSystem)();
|
|
275
|
+
return [4 /*yield*/, db.insert(machineTable, {
|
|
276
|
+
email: 'bridge@test.local',
|
|
277
|
+
displayName: 'Hand-made bridge',
|
|
278
|
+
runtimeNote: 'the-password-hash',
|
|
279
|
+
})];
|
|
280
|
+
case 1:
|
|
281
|
+
handMade = _b.sent();
|
|
282
|
+
return [4 /*yield*/, boot([machineDeclaration({ id: 'declared-id', email: 'bridge@test.local', displayName: 'Ops bridge' })])];
|
|
283
|
+
case 2:
|
|
284
|
+
_b.sent();
|
|
285
|
+
return [4 /*yield*/, machineRows({ email: 'bridge@test.local' })];
|
|
286
|
+
case 3:
|
|
287
|
+
rows = _b.sent();
|
|
288
|
+
expect(rows).toHaveLength(1);
|
|
289
|
+
// Adopted: the existing id survives (scoped rows reference it); declared fields reverted;
|
|
290
|
+
// runtime fields (the credential) preserved; the row is now source-owned.
|
|
291
|
+
expect(rows[0]).toMatchObject({
|
|
292
|
+
id: handMade.id,
|
|
293
|
+
displayName: 'Ops bridge',
|
|
294
|
+
status: 'active',
|
|
295
|
+
runtimeNote: 'the-password-hash',
|
|
296
|
+
isLoadedFromSource: true,
|
|
297
|
+
});
|
|
298
|
+
_a = expect;
|
|
299
|
+
return [4 /*yield*/, db.get(machineTable, { id: 'declared-id' })];
|
|
300
|
+
case 4:
|
|
301
|
+
_a.apply(void 0, [_b.sent()]).toBeUndefined();
|
|
302
|
+
// The in-process repo registers the record under the ADOPTED id, not the declared one.
|
|
303
|
+
expect(new db_1.SourceRecordRepo().getSourceRecord(machineTable.name, handMade.id)).toBeDefined();
|
|
304
|
+
expect(new db_1.SourceRecordRepo().getSourceRecord(machineTable.name, 'declared-id')).toBeUndefined();
|
|
305
|
+
stampBefore = rows[0].updated.valueOf();
|
|
306
|
+
return [4 /*yield*/, boot([machineDeclaration({ id: 'declared-id', email: 'bridge@test.local', displayName: 'Ops bridge' })])];
|
|
307
|
+
case 5:
|
|
308
|
+
_b.sent();
|
|
309
|
+
return [4 /*yield*/, db.get(machineTable, { id: handMade.id })];
|
|
310
|
+
case 6:
|
|
311
|
+
afterIdleBoot = _b.sent();
|
|
312
|
+
expect(afterIdleBoot.updated.valueOf()).toBe(stampBefore);
|
|
313
|
+
return [2 /*return*/];
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}); });
|
|
317
|
+
test('onSourceRemoved update: removed rows are flagged through Db.update (watchers fire), never deleted; re-declaring reverts', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
318
|
+
var db, human, removed, _a, _b;
|
|
319
|
+
return __generator(this, function (_c) {
|
|
320
|
+
switch (_c.label) {
|
|
321
|
+
case 0:
|
|
322
|
+
db = (0, db_1.getDbAsSystem)();
|
|
323
|
+
return [4 /*yield*/, db.insert(machineTable, { email: 'human@test.local', displayName: 'A human' })];
|
|
324
|
+
case 1:
|
|
325
|
+
human = _c.sent();
|
|
326
|
+
return [4 /*yield*/, boot([machineDeclaration({ id: 'machine-1', email: 'machine@test.local' })])];
|
|
327
|
+
case 2:
|
|
328
|
+
_c.sent();
|
|
329
|
+
RecordingMachineAccountWatcher.updates = [];
|
|
330
|
+
return [4 /*yield*/, boot([])];
|
|
331
|
+
case 3:
|
|
332
|
+
_c.sent();
|
|
333
|
+
return [4 /*yield*/, db.get(machineTable, { id: 'machine-1' })];
|
|
334
|
+
case 4:
|
|
335
|
+
removed = _c.sent();
|
|
336
|
+
expect(removed).toBeDefined();
|
|
337
|
+
expect(removed.status).toBe('deactivated');
|
|
338
|
+
expect(removed.isLoadedFromSource).toBe(true);
|
|
339
|
+
// The write went through Db.update — table watchers observed the deactivation.
|
|
340
|
+
expect(RecordingMachineAccountWatcher.updates).toHaveLength(1);
|
|
341
|
+
expect(RecordingMachineAccountWatcher.updates[0]).toMatchObject({ id: 'machine-1', status: 'deactivated' });
|
|
342
|
+
// The human row is structurally out of reach of the removed reconcile.
|
|
343
|
+
_a = expect;
|
|
344
|
+
return [4 /*yield*/, db.get(machineTable, { id: human.id })];
|
|
345
|
+
case 5:
|
|
346
|
+
// The human row is structurally out of reach of the removed reconcile.
|
|
347
|
+
_a.apply(void 0, [(_c.sent()).status]).toBeFalsy();
|
|
348
|
+
// Idempotent: an already-flagged row is not re-written on the next boot.
|
|
349
|
+
RecordingMachineAccountWatcher.updates = [];
|
|
350
|
+
return [4 /*yield*/, boot([])];
|
|
351
|
+
case 6:
|
|
352
|
+
_c.sent();
|
|
353
|
+
expect(RecordingMachineAccountWatcher.updates).toHaveLength(0);
|
|
354
|
+
// Removal is reversible in source: re-declaring reverts the patch via drift reversion.
|
|
355
|
+
return [4 /*yield*/, boot([machineDeclaration({ id: 'machine-1', email: 'machine@test.local' })])];
|
|
356
|
+
case 7:
|
|
357
|
+
// Removal is reversible in source: re-declaring reverts the patch via drift reversion.
|
|
358
|
+
_c.sent();
|
|
359
|
+
_b = expect;
|
|
360
|
+
return [4 /*yield*/, db.get(machineTable, { id: 'machine-1' })];
|
|
361
|
+
case 8:
|
|
362
|
+
_b.apply(void 0, [(_c.sent()).status]).toBe('active');
|
|
363
|
+
return [2 /*return*/];
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
}); });
|
|
367
|
+
test("onSourceRemoved default: removed source rows are deleted; human rows survive", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
368
|
+
var db, human, _a, _b, _c;
|
|
369
|
+
return __generator(this, function (_d) {
|
|
370
|
+
switch (_d.label) {
|
|
371
|
+
case 0:
|
|
372
|
+
db = (0, db_1.getDbAsSystem)();
|
|
373
|
+
return [4 /*yield*/, db.insert(defaultPolicyTable, { email: 'human@test.local' })];
|
|
374
|
+
case 1:
|
|
375
|
+
human = _d.sent();
|
|
376
|
+
return [4 /*yield*/, boot([{ table: defaultPolicyTable, record: { id: 'default-1', email: 'temp@test.local' } }])];
|
|
377
|
+
case 2:
|
|
378
|
+
_d.sent();
|
|
379
|
+
_a = expect;
|
|
380
|
+
return [4 /*yield*/, db.get(defaultPolicyTable, { id: 'default-1' })];
|
|
381
|
+
case 3:
|
|
382
|
+
_a.apply(void 0, [_d.sent()]).toBeDefined();
|
|
383
|
+
return [4 /*yield*/, boot([])];
|
|
384
|
+
case 4:
|
|
385
|
+
_d.sent();
|
|
386
|
+
_b = expect;
|
|
387
|
+
return [4 /*yield*/, db.get(defaultPolicyTable, { id: 'default-1' })];
|
|
388
|
+
case 5:
|
|
389
|
+
_b.apply(void 0, [_d.sent()]).toBeUndefined();
|
|
390
|
+
_c = expect;
|
|
391
|
+
return [4 /*yield*/, db.get(defaultPolicyTable, { id: human.id })];
|
|
392
|
+
case 6:
|
|
393
|
+
_c.apply(void 0, [_d.sent()]).toBeDefined();
|
|
394
|
+
return [2 /*return*/];
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
}); });
|
|
398
|
+
test('a natural key without a unique guarantee fails boot loudly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
399
|
+
var MisdeclaredNaturalKeyTable;
|
|
400
|
+
return __generator(this, function (_a) {
|
|
401
|
+
switch (_a.label) {
|
|
402
|
+
case 0:
|
|
403
|
+
MisdeclaredNaturalKeyTable = /** @class */ (function (_super) {
|
|
404
|
+
__extends(MisdeclaredNaturalKeyTable, _super);
|
|
405
|
+
function MisdeclaredNaturalKeyTable() {
|
|
406
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
407
|
+
_this.name = 'db_test_sync_misdeclared_natural_key';
|
|
408
|
+
_this.columns = (0, db_1.withSourceRecordColumns)({ nickname: new db_1.StringColumn('nickname') });
|
|
409
|
+
_this.sourceRecordOptions = { naturalKey: 'nickname' };
|
|
410
|
+
return _this;
|
|
411
|
+
}
|
|
412
|
+
return MisdeclaredNaturalKeyTable;
|
|
413
|
+
}(db_1.Table));
|
|
414
|
+
return [4 /*yield*/, expect(boot([{ table: new MisdeclaredNaturalKeyTable(), record: { id: 'm-1', nickname: 'dupe-prone' } }])).rejects.toThrow(/naturalKey 'nickname' requires the column to be unique/)];
|
|
415
|
+
case 1:
|
|
416
|
+
_a.sent();
|
|
417
|
+
return [2 /*return*/];
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
}); });
|
|
421
|
+
test('two declarations sharing a natural key fail boot loudly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
422
|
+
return __generator(this, function (_a) {
|
|
423
|
+
switch (_a.label) {
|
|
424
|
+
case 0: return [4 /*yield*/, expect(boot([
|
|
425
|
+
machineDeclaration({ id: 'machine-1', email: 'shared@test.local' }),
|
|
426
|
+
machineDeclaration({ id: 'machine-2', email: 'shared@test.local' }),
|
|
427
|
+
])).rejects.toThrow(/share the natural key 'email' = 'shared@test.local'/)];
|
|
428
|
+
case 1:
|
|
429
|
+
_a.sent();
|
|
430
|
+
return [2 /*return*/];
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
}); });
|
|
434
|
+
test('unique-index preflight: adding a unique index over duplicate data fails by name; clean data proceeds', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
435
|
+
var tableManager, generationOne, generationTwo, db, first;
|
|
436
|
+
return __generator(this, function (_a) {
|
|
437
|
+
switch (_a.label) {
|
|
438
|
+
case 0:
|
|
439
|
+
tableManager = driver.getTableManager();
|
|
440
|
+
generationOne = new sourceRecordSyncTestTables_1.DupePreflightTable();
|
|
441
|
+
generationTwo = new sourceRecordSyncTestTables_1.DupePreflightUniqueEmailTable();
|
|
442
|
+
_a.label = 1;
|
|
443
|
+
case 1:
|
|
444
|
+
_a.trys.push([1, , 9, 11]);
|
|
445
|
+
return [4 /*yield*/, tableManager.loadTable(generationOne)];
|
|
446
|
+
case 2:
|
|
447
|
+
_a.sent();
|
|
448
|
+
db = (0, db_1.getDbAsSystem)();
|
|
449
|
+
return [4 /*yield*/, db.insert(generationOne, { email: 'dupe@test.local' })];
|
|
450
|
+
case 3:
|
|
451
|
+
first = _a.sent();
|
|
452
|
+
return [4 /*yield*/, db.insert(generationOne, { email: 'dupe@test.local' })];
|
|
453
|
+
case 4:
|
|
454
|
+
_a.sent();
|
|
455
|
+
// The pre-sync duplicate check turns the opaque index-backfill failure into a named error.
|
|
456
|
+
return [4 /*yield*/, expect(tableManager.loadTable(generationTwo)).rejects.toThrow(db_1.DuplicateValuesForUniqueIndexError)];
|
|
457
|
+
case 5:
|
|
458
|
+
// The pre-sync duplicate check turns the opaque index-backfill failure into a named error.
|
|
459
|
+
_a.sent();
|
|
460
|
+
return [4 /*yield*/, expect(tableManager.loadTable(generationTwo)).rejects.toThrow(/dupe@test\.local/)];
|
|
461
|
+
case 6:
|
|
462
|
+
_a.sent();
|
|
463
|
+
// Resolve the duplicates and the same boot proceeds.
|
|
464
|
+
return [4 /*yield*/, db.delete(generationOne, { id: first.id })];
|
|
465
|
+
case 7:
|
|
466
|
+
// Resolve the duplicates and the same boot proceeds.
|
|
467
|
+
_a.sent();
|
|
468
|
+
return [4 /*yield*/, tableManager.loadTable(generationTwo)];
|
|
469
|
+
case 8:
|
|
470
|
+
_a.sent();
|
|
471
|
+
return [3 /*break*/, 11];
|
|
472
|
+
case 9: return [4 /*yield*/, dropTable(generationOne)];
|
|
473
|
+
case 10:
|
|
474
|
+
_a.sent();
|
|
475
|
+
return [7 /*endfinally*/];
|
|
476
|
+
case 11: return [2 /*return*/];
|
|
477
|
+
}
|
|
478
|
+
});
|
|
479
|
+
}); });
|
|
480
|
+
};
|
|
481
|
+
};
|
|
482
|
+
exports.sourceRecordSyncTests = sourceRecordSyncTests;
|
|
483
|
+
//# sourceMappingURL=SourceRecordSyncTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceRecordSyncTests.js","sourceRoot":"","sources":["../../../test/reusable/SourceRecordSyncTests.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;
|
|
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;AAsBhD;;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"}
|
|
@@ -52,9 +52,10 @@ var columnTypesTestTables_1 = require("./tables/columnTypesTestTables");
|
|
|
52
52
|
var crudTestTables_1 = require("./tables/crudTestTables");
|
|
53
53
|
var dynamicReferenceColumnTestTables_1 = require("./tables/dynamicReferenceColumnTestTables");
|
|
54
54
|
var recordIteratorTestTables_1 = require("./tables/recordIteratorTestTables");
|
|
55
|
+
var sourceRecordSyncTestTables_1 = require("./tables/sourceRecordSyncTestTables");
|
|
55
56
|
var tableManagerTestTables_1 = require("./tables/tableManagerTestTables");
|
|
56
57
|
var transactionTestTables_1 = require("./tables/transactionTestTables");
|
|
57
|
-
var TABLES = __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(tableManagerTestTables_1.tableManagerTestTables), true), Object.values(transactionTestTables_1.transactionTestTables), true);
|
|
58
|
+
var TABLES = __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), Object.values(tableManagerTestTables_1.tableManagerTestTables), true), Object.values(transactionTestTables_1.transactionTestTables), true);
|
|
58
59
|
/**
|
|
59
60
|
* Convenience functions for setting up a test environment
|
|
60
61
|
*/
|
|
@@ -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,0EAAyE;AACzE,wEAAuE;AAEvE,IAAM,MAAM,
|
|
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,0EAAyE;AACzE,wEAAuE;AAEvE,IAAM,MAAM,uHACP,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,SACzC,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"}
|
|
@@ -43,6 +43,17 @@ export interface Task extends Record {
|
|
|
43
43
|
assigneeTableName?: string | null;
|
|
44
44
|
assigneeRef?: Reference<Worker> | null;
|
|
45
45
|
}
|
|
46
|
+
export interface Pilot extends Record {
|
|
47
|
+
name: string;
|
|
48
|
+
}
|
|
49
|
+
export interface Robot extends Record {
|
|
50
|
+
name: string;
|
|
51
|
+
}
|
|
52
|
+
export interface Mission extends Record {
|
|
53
|
+
title: string;
|
|
54
|
+
assigneeTableName?: string | null;
|
|
55
|
+
assigneeRef?: Reference<Pilot | Robot> | null;
|
|
56
|
+
}
|
|
46
57
|
/**
|
|
47
58
|
* ---------- Table Classes ----------
|
|
48
59
|
*/
|
|
@@ -174,6 +185,38 @@ export declare class TaskTable extends Table<Task> {
|
|
|
174
185
|
assigneeRef: import("@proteinjs/db").Column<Reference<Worker> | null | undefined, any>;
|
|
175
186
|
} & {};
|
|
176
187
|
}
|
|
188
|
+
export declare class PilotTable extends Table<Pilot> {
|
|
189
|
+
name: string;
|
|
190
|
+
columns: {
|
|
191
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
192
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
193
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
194
|
+
} & {} & {
|
|
195
|
+
name: import("@proteinjs/db").Column<string, any>;
|
|
196
|
+
} & {};
|
|
197
|
+
}
|
|
198
|
+
export declare class RobotTable extends Table<Robot> {
|
|
199
|
+
name: string;
|
|
200
|
+
columns: {
|
|
201
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
202
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
203
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
204
|
+
} & {} & {
|
|
205
|
+
name: import("@proteinjs/db").Column<string, any>;
|
|
206
|
+
} & {};
|
|
207
|
+
}
|
|
208
|
+
export declare class MissionTable extends Table<Mission> {
|
|
209
|
+
name: string;
|
|
210
|
+
columns: {
|
|
211
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
212
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
213
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
214
|
+
} & {} & {
|
|
215
|
+
title: import("@proteinjs/db").Column<string, any>;
|
|
216
|
+
assigneeTableName: import("@proteinjs/db").Column<string | null | undefined, any>;
|
|
217
|
+
assigneeRef: import("@proteinjs/db").Column<Reference<Pilot | Robot> | null | undefined, any>;
|
|
218
|
+
} & {};
|
|
219
|
+
}
|
|
177
220
|
export declare const cascadeDeleteTestTables: {
|
|
178
221
|
MemberRef: Table<MemberRef>;
|
|
179
222
|
GroupRef: Table<GroupRef>;
|
|
@@ -187,5 +230,8 @@ export declare const cascadeDeleteTestTables: {
|
|
|
187
230
|
GroupArrRev: Table<GroupArrRev>;
|
|
188
231
|
Worker: Table<Worker>;
|
|
189
232
|
Task: Table<Task>;
|
|
233
|
+
Pilot: Table<Pilot>;
|
|
234
|
+
Robot: Table<Robot>;
|
|
235
|
+
Mission: Table<Mission>;
|
|
190
236
|
};
|
|
191
237
|
//# 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;
|
|
1
|
+
{"version":3,"file":"cascadeDeleteTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"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"}
|