@proteinjs/db 1.33.0 → 1.34.1
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 +24 -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/MigrationRunner.d.ts +10 -0
- package/dist/src/MigrationRunner.d.ts.map +1 -1
- package/dist/src/MigrationRunner.js +21 -2
- package/dist/src/MigrationRunner.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/MigrationRunner.ts +21 -2
- 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
|
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.cascadeDeleteTestTables = 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;
|
|
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;
|
|
19
19
|
var db_1 = require("@proteinjs/db");
|
|
20
20
|
/**
|
|
21
21
|
* ---------- Table Names ----------
|
|
@@ -38,6 +38,10 @@ var GROUP_ARR_REV_TABLE = 'db_test_cd_groups_arr_rev';
|
|
|
38
38
|
// Reverse (DynamicReferenceColumn)
|
|
39
39
|
var WORKER_TABLE = 'db_test_cd_workers';
|
|
40
40
|
var TASK_TABLE = 'db_test_cd_tasks';
|
|
41
|
+
// Reverse (DynamicReferenceColumn, multiple targets)
|
|
42
|
+
var PILOT_TABLE = 'db_test_cd_pilots';
|
|
43
|
+
var ROBOT_TABLE = 'db_test_cd_robots';
|
|
44
|
+
var MISSION_TABLE = 'db_test_cd_missions';
|
|
41
45
|
/**
|
|
42
46
|
* ---------- Table Classes ----------
|
|
43
47
|
*/
|
|
@@ -217,6 +221,49 @@ var TaskTable = /** @class */ (function (_super) {
|
|
|
217
221
|
return TaskTable;
|
|
218
222
|
}(db_1.Table));
|
|
219
223
|
exports.TaskTable = TaskTable;
|
|
224
|
+
// Reverse: DynamicReferenceColumn across multiple target tables
|
|
225
|
+
var PilotTable = /** @class */ (function (_super) {
|
|
226
|
+
__extends(PilotTable, _super);
|
|
227
|
+
function PilotTable() {
|
|
228
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
229
|
+
_this.name = PILOT_TABLE;
|
|
230
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
231
|
+
name: new db_1.StringColumn('name'),
|
|
232
|
+
});
|
|
233
|
+
return _this;
|
|
234
|
+
}
|
|
235
|
+
return PilotTable;
|
|
236
|
+
}(db_1.Table));
|
|
237
|
+
exports.PilotTable = PilotTable;
|
|
238
|
+
var RobotTable = /** @class */ (function (_super) {
|
|
239
|
+
__extends(RobotTable, _super);
|
|
240
|
+
function RobotTable() {
|
|
241
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
242
|
+
_this.name = ROBOT_TABLE;
|
|
243
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
244
|
+
name: new db_1.StringColumn('name'),
|
|
245
|
+
});
|
|
246
|
+
return _this;
|
|
247
|
+
}
|
|
248
|
+
return RobotTable;
|
|
249
|
+
}(db_1.Table));
|
|
250
|
+
exports.RobotTable = RobotTable;
|
|
251
|
+
var MissionTable = /** @class */ (function (_super) {
|
|
252
|
+
__extends(MissionTable, _super);
|
|
253
|
+
function MissionTable() {
|
|
254
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
255
|
+
_this.name = MISSION_TABLE;
|
|
256
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
257
|
+
title: new db_1.StringColumn('title'),
|
|
258
|
+
assigneeTableName: new db_1.DynamicReferenceTableNameColumn('assignee_table_name', 'assignee_ref'),
|
|
259
|
+
assigneeRef: new db_1.DynamicReferenceColumn('assignee_ref', 'assignee_table_name', false, { reverseCascadeDelete: true } // reverse: deleting a Pilot OR a Robot deletes its Missions
|
|
260
|
+
),
|
|
261
|
+
});
|
|
262
|
+
return _this;
|
|
263
|
+
}
|
|
264
|
+
return MissionTable;
|
|
265
|
+
}(db_1.Table));
|
|
266
|
+
exports.MissionTable = MissionTable;
|
|
220
267
|
exports.cascadeDeleteTestTables = {
|
|
221
268
|
MemberRef: new MemberRefTable(),
|
|
222
269
|
GroupRef: new GroupRefTable(),
|
|
@@ -230,5 +277,8 @@ exports.cascadeDeleteTestTables = {
|
|
|
230
277
|
GroupArrRev: new GroupArrRevTable(),
|
|
231
278
|
Worker: new WorkerTable(),
|
|
232
279
|
Task: new TaskTable(),
|
|
280
|
+
Pilot: new PilotTable(),
|
|
281
|
+
Robot: new RobotTable(),
|
|
282
|
+
Mission: new MissionTable(),
|
|
233
283
|
};
|
|
234
284
|
//# sourceMappingURL=cascadeDeleteTestTables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cascadeDeleteTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oCAWuB;
|
|
1
|
+
{"version":3,"file":"cascadeDeleteTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/cascadeDeleteTestTables.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,8 +36,8 @@ export declare class ReservedWordTestTable extends Table<ReservedWordTest> {
|
|
|
36
36
|
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
37
37
|
} & {} & {
|
|
38
38
|
select: import("@proteinjs/db").Column<string | undefined, any>;
|
|
39
|
-
name: import("@proteinjs/db").Column<string, any>;
|
|
40
39
|
join: import("@proteinjs/db").Column<string | undefined, any>;
|
|
40
|
+
name: import("@proteinjs/db").Column<string, any>;
|
|
41
41
|
order: import("@proteinjs/db").Column<string | undefined, any>;
|
|
42
42
|
} & {};
|
|
43
43
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Record as DbRecord, SourceRecord, Table } from '@proteinjs/db';
|
|
2
|
+
/**
|
|
3
|
+
* Fixtures for the source-record sync suites ({@link sourceRecordSyncTests}): a machine-account-
|
|
4
|
+
* shaped mixed table (natural-key adoption + flag-on-removed), a default-policy table (removed =
|
|
5
|
+
* deleted), a misdeclared natural-key table (non-unique column), and the two-generation table
|
|
6
|
+
* pair driving the unique-index duplicate preflight.
|
|
7
|
+
*
|
|
8
|
+
* The `sourceRecordOptions` literals are `as`-cast to the table's options type (not inferred):
|
|
9
|
+
* the cast also compiles against PRE-change `@proteinjs/db`, so the suites can run red-before-
|
|
10
|
+
* green against the old loader (which ignores these options) instead of failing at compile time.
|
|
11
|
+
*/
|
|
12
|
+
export interface SyncMachineAccount extends SourceRecord {
|
|
13
|
+
email: string;
|
|
14
|
+
displayName?: string | null;
|
|
15
|
+
/** Declared by the loaders ('active') and patched by onSourceRemoved ('deactivated'). */
|
|
16
|
+
status?: string | null;
|
|
17
|
+
/** Runtime-owned: never declared, must survive every boot sync (the credential stand-in). */
|
|
18
|
+
runtimeNote?: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** The machine-account shape: natural-key adoption by email, removed rows flagged not deleted. */
|
|
21
|
+
export declare class SyncMachineAccountTable extends Table<SyncMachineAccount> {
|
|
22
|
+
name: string;
|
|
23
|
+
columns: {
|
|
24
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
25
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
26
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
27
|
+
isLoadedFromSource: import("@proteinjs/db").Column<boolean | undefined, any>;
|
|
28
|
+
} & {} & {
|
|
29
|
+
status: import("@proteinjs/db").Column<string | null | undefined, any>;
|
|
30
|
+
email: import("@proteinjs/db").Column<string, any>;
|
|
31
|
+
displayName: import("@proteinjs/db").Column<string | null | undefined, any>;
|
|
32
|
+
runtimeNote: import("@proteinjs/db").Column<string | null | undefined, any>;
|
|
33
|
+
} & {};
|
|
34
|
+
sourceRecordOptions: import("@proteinjs/db").SourceRecordOptions<SyncMachineAccount>;
|
|
35
|
+
}
|
|
36
|
+
export interface SyncDefaultPolicyRecord extends SourceRecord {
|
|
37
|
+
email: string;
|
|
38
|
+
displayName?: string | null;
|
|
39
|
+
}
|
|
40
|
+
/** Default options: id-keyed, removed source rows are deleted (today's behavior). */
|
|
41
|
+
export declare class SyncDefaultPolicyTable extends Table<SyncDefaultPolicyRecord> {
|
|
42
|
+
name: string;
|
|
43
|
+
columns: {
|
|
44
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
45
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
46
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
47
|
+
isLoadedFromSource: import("@proteinjs/db").Column<boolean | undefined, any>;
|
|
48
|
+
} & {} & {
|
|
49
|
+
email: import("@proteinjs/db").Column<string, any>;
|
|
50
|
+
displayName: import("@proteinjs/db").Column<string | null | undefined, any>;
|
|
51
|
+
} & {};
|
|
52
|
+
}
|
|
53
|
+
export interface DupePreflightRecord extends DbRecord {
|
|
54
|
+
email: string;
|
|
55
|
+
}
|
|
56
|
+
/** Generation 1: no uniqueness — the table under which duplicate rows accumulate. */
|
|
57
|
+
export declare class DupePreflightTable extends Table<DupePreflightRecord> {
|
|
58
|
+
name: string;
|
|
59
|
+
columns: {
|
|
60
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
61
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
62
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
63
|
+
} & {} & {
|
|
64
|
+
email: import("@proteinjs/db").Column<string, any>;
|
|
65
|
+
} & {};
|
|
66
|
+
}
|
|
67
|
+
/** Generation 2: same table, email now unique — loading it runs the alter-path preflight. */
|
|
68
|
+
export declare class DupePreflightUniqueEmailTable extends Table<DupePreflightRecord> {
|
|
69
|
+
name: string;
|
|
70
|
+
columns: {
|
|
71
|
+
id: import("@proteinjs/db").Column<string, any>;
|
|
72
|
+
created: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
73
|
+
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
74
|
+
} & {} & {
|
|
75
|
+
email: import("@proteinjs/db").Column<string, any>;
|
|
76
|
+
} & {};
|
|
77
|
+
}
|
|
78
|
+
export declare const sourceRecordSyncTestTables: {
|
|
79
|
+
SyncMachineAccount: Table<SyncMachineAccount>;
|
|
80
|
+
SyncDefaultPolicy: Table<SyncDefaultPolicyRecord>;
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=sourceRecordSyncTestTables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceRecordSyncTestTables.d.ts","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,QAAQ,EAClB,YAAY,EAEZ,KAAK,EAGN,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kGAAkG;AAClG,qBAAa,uBAAwB,SAAQ,KAAK,CAAC,kBAAkB,CAAC;IACpE,IAAI,SAAkC;IACtC,OAAO;;;;;;;;;;WAOJ;IACH,mBAAmB,kEAGmC;CACvD;AAED,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qFAAqF;AACrF,qBAAa,sBAAuB,SAAQ,KAAK,CAAC,uBAAuB,CAAC;IACxE,IAAI,SAAiC;IACrC,OAAO;;;;;;;;WAGJ;CACJ;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAChE,IAAI,SAA4B;IAChC,OAAO;;;;;;WAEJ;CACJ;AAED,6FAA6F;AAC7F,qBAAa,6BAA8B,SAAQ,KAAK,CAAC,mBAAmB,CAAC;IAC3E,IAAI,SAA4B;IAChC,OAAO;;;;;;WAEJ;CACJ;AAED,eAAO,MAAM,0BAA0B;;;CAGtC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.sourceRecordSyncTestTables = exports.DupePreflightUniqueEmailTable = exports.DupePreflightTable = exports.SyncDefaultPolicyTable = exports.SyncMachineAccountTable = void 0;
|
|
19
|
+
var db_1 = require("@proteinjs/db");
|
|
20
|
+
/** The machine-account shape: natural-key adoption by email, removed rows flagged not deleted. */
|
|
21
|
+
var SyncMachineAccountTable = /** @class */ (function (_super) {
|
|
22
|
+
__extends(SyncMachineAccountTable, _super);
|
|
23
|
+
function SyncMachineAccountTable() {
|
|
24
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
25
|
+
_this.name = 'db_test_sync_machine_account';
|
|
26
|
+
_this.columns = (0, db_1.withSourceRecordColumns)({
|
|
27
|
+
email: new db_1.StringColumn('email', {
|
|
28
|
+
unique: { unique: true, indexName: 'db_test_sync_machine_account_email_unique' },
|
|
29
|
+
}),
|
|
30
|
+
displayName: new db_1.StringColumn('display_name'),
|
|
31
|
+
status: new db_1.StringColumn('status'),
|
|
32
|
+
runtimeNote: new db_1.StringColumn('runtime_note'),
|
|
33
|
+
});
|
|
34
|
+
_this.sourceRecordOptions = {
|
|
35
|
+
naturalKey: 'email',
|
|
36
|
+
onSourceRemoved: { update: { status: 'deactivated' } },
|
|
37
|
+
};
|
|
38
|
+
return _this;
|
|
39
|
+
}
|
|
40
|
+
return SyncMachineAccountTable;
|
|
41
|
+
}(db_1.Table));
|
|
42
|
+
exports.SyncMachineAccountTable = SyncMachineAccountTable;
|
|
43
|
+
/** Default options: id-keyed, removed source rows are deleted (today's behavior). */
|
|
44
|
+
var SyncDefaultPolicyTable = /** @class */ (function (_super) {
|
|
45
|
+
__extends(SyncDefaultPolicyTable, _super);
|
|
46
|
+
function SyncDefaultPolicyTable() {
|
|
47
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
48
|
+
_this.name = 'db_test_sync_default_policy';
|
|
49
|
+
_this.columns = (0, db_1.withSourceRecordColumns)({
|
|
50
|
+
email: new db_1.StringColumn('email'),
|
|
51
|
+
displayName: new db_1.StringColumn('display_name'),
|
|
52
|
+
});
|
|
53
|
+
return _this;
|
|
54
|
+
}
|
|
55
|
+
return SyncDefaultPolicyTable;
|
|
56
|
+
}(db_1.Table));
|
|
57
|
+
exports.SyncDefaultPolicyTable = SyncDefaultPolicyTable;
|
|
58
|
+
/** Generation 1: no uniqueness — the table under which duplicate rows accumulate. */
|
|
59
|
+
var DupePreflightTable = /** @class */ (function (_super) {
|
|
60
|
+
__extends(DupePreflightTable, _super);
|
|
61
|
+
function DupePreflightTable() {
|
|
62
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
63
|
+
_this.name = 'db_test_dupe_preflight';
|
|
64
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
65
|
+
email: new db_1.StringColumn('email'),
|
|
66
|
+
});
|
|
67
|
+
return _this;
|
|
68
|
+
}
|
|
69
|
+
return DupePreflightTable;
|
|
70
|
+
}(db_1.Table));
|
|
71
|
+
exports.DupePreflightTable = DupePreflightTable;
|
|
72
|
+
/** Generation 2: same table, email now unique — loading it runs the alter-path preflight. */
|
|
73
|
+
var DupePreflightUniqueEmailTable = /** @class */ (function (_super) {
|
|
74
|
+
__extends(DupePreflightUniqueEmailTable, _super);
|
|
75
|
+
function DupePreflightUniqueEmailTable() {
|
|
76
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
77
|
+
_this.name = 'db_test_dupe_preflight';
|
|
78
|
+
_this.columns = (0, db_1.withRecordColumns)({
|
|
79
|
+
email: new db_1.StringColumn('email', { unique: { unique: true, indexName: 'db_test_dupe_preflight_email_unique' } }),
|
|
80
|
+
});
|
|
81
|
+
return _this;
|
|
82
|
+
}
|
|
83
|
+
return DupePreflightUniqueEmailTable;
|
|
84
|
+
}(db_1.Table));
|
|
85
|
+
exports.DupePreflightUniqueEmailTable = DupePreflightUniqueEmailTable;
|
|
86
|
+
exports.sourceRecordSyncTestTables = {
|
|
87
|
+
SyncMachineAccount: new SyncMachineAccountTable(),
|
|
88
|
+
SyncDefaultPolicy: new SyncDefaultPolicyTable(),
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=sourceRecordSyncTestTables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceRecordSyncTestTables.js","sourceRoot":"","sources":["../../../../test/util/tables/sourceRecordSyncTestTables.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,oCAOuB;AAsBvB,kGAAkG;AAClG;IAA6C,2CAAyB;IAAtE;QAAA,qEAcC;QAbC,UAAI,GAAG,8BAA8B,CAAC;QACtC,aAAO,GAAG,IAAA,4BAAuB,EAAqB;YACpD,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE;gBAC/B,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,2CAA2C,EAAE;aACjF,CAAC;YACF,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;YAC7C,MAAM,EAAE,IAAI,iBAAY,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,yBAAmB,GAAG;YACpB,UAAU,EAAE,OAAO;YACnB,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;SACH,CAAC;;IACxD,CAAC;IAAD,8BAAC;AAAD,CAAC,AAdD,CAA6C,UAAK,GAcjD;AAdY,0DAAuB;AAqBpC,qFAAqF;AACrF;IAA4C,0CAA8B;IAA1E;QAAA,qEAMC;QALC,UAAI,GAAG,6BAA6B,CAAC;QACrC,aAAO,GAAG,IAAA,4BAAuB,EAA0B;YACzD,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,IAAI,iBAAY,CAAC,cAAc,CAAC;SAC9C,CAAC,CAAC;;IACL,CAAC;IAAD,6BAAC;AAAD,CAAC,AAND,CAA4C,UAAK,GAMhD;AANY,wDAAsB;AAYnC,qFAAqF;AACrF;IAAwC,sCAA0B;IAAlE;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAAG,IAAA,sBAAiB,EAAsB;YAC/C,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;;IACL,CAAC;IAAD,yBAAC;AAAD,CAAC,AALD,CAAwC,UAAK,GAK5C;AALY,gDAAkB;AAO/B,6FAA6F;AAC7F;IAAmD,iDAA0B;IAA7E;QAAA,qEAKC;QAJC,UAAI,GAAG,wBAAwB,CAAC;QAChC,aAAO,GAAG,IAAA,sBAAiB,EAAsB;YAC/C,KAAK,EAAE,IAAI,iBAAY,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,qCAAqC,EAAE,EAAE,CAAC;SACjH,CAAC,CAAC;;IACL,CAAC;IAAD,oCAAC;AAAD,CAAC,AALD,CAAmD,UAAK,GAKvD;AALY,sEAA6B;AAO7B,QAAA,0BAA0B,GAAG;IACxC,kBAAkB,EAAE,IAAI,uBAAuB,EAA+B;IAC9E,iBAAiB,EAAE,IAAI,sBAAsB,EAAoC;CAClF,CAAC"}
|
|
@@ -36,8 +36,8 @@ export declare class TransactionReservedWordTestTable extends Table<TransactionR
|
|
|
36
36
|
updated: import("@proteinjs/db").Column<import("moment").Moment, any>;
|
|
37
37
|
} & {} & {
|
|
38
38
|
select: import("@proteinjs/db").Column<string | undefined, any>;
|
|
39
|
-
name: import("@proteinjs/db").Column<string, any>;
|
|
40
39
|
join: import("@proteinjs/db").Column<string | undefined, any>;
|
|
40
|
+
name: import("@proteinjs/db").Column<string, any>;
|
|
41
41
|
order: import("@proteinjs/db").Column<string | undefined, any>;
|
|
42
42
|
} & {};
|
|
43
43
|
}
|