@proteinjs/db 1.42.0 → 1.44.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 +29 -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 +3 -1
- package/dist/generated/test/index.js.map +1 -1
- package/dist/src/Table.d.ts +50 -1
- package/dist/src/Table.d.ts.map +1 -1
- package/dist/src/Table.js.map +1 -1
- package/dist/src/source/SourceRecord.d.ts +2 -3
- package/dist/src/source/SourceRecord.d.ts.map +1 -1
- package/dist/src/source/SourceRecord.js +16 -2
- package/dist/src/source/SourceRecord.js.map +1 -1
- package/dist/src/source/SourceRecordLoader.d.ts +41 -0
- package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
- package/dist/src/source/SourceRecordLoader.js +153 -57
- package/dist/src/source/SourceRecordLoader.js.map +1 -1
- package/dist/src/tables/MigrationTable.d.ts +22 -4
- package/dist/src/tables/MigrationTable.d.ts.map +1 -1
- package/dist/src/tables/MigrationTable.js +38 -16
- package/dist/src/tables/MigrationTable.js.map +1 -1
- package/dist/test/SourceRecordLoader.test.js +151 -0
- package/dist/test/SourceRecordLoader.test.js.map +1 -1
- package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
- package/dist/test/reusable/SourceRecordSyncTests.js +234 -0
- package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
- package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts +17 -0
- package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts.map +1 -1
- package/dist/test/util/tables/sourceRecordSyncTestTables.js +26 -1
- package/dist/test/util/tables/sourceRecordSyncTestTables.js.map +1 -1
- package/generated/index.ts +1 -1
- package/generated/test/index.ts +3 -1
- package/jest.config.js +8 -0
- package/package.json +2 -2
- package/src/Table.ts +51 -1
- package/src/source/SourceRecord.ts +17 -4
- package/src/source/SourceRecordLoader.ts +110 -4
- package/src/tables/MigrationTable.ts +43 -16
- package/test/SourceRecordLoader.test.ts +90 -0
- package/test/reusable/SourceRecordSyncTests.ts +141 -0
- package/test/util/tables/sourceRecordSyncTestTables.ts +25 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../generated/test/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,+BAA6B;AAC7B,6BAA2B;AAC3B,iCAA+B;AAC/B,iCAA+B;AAC/B,8BAA4B;AAC5B,gCAA8B;AAG9B,4BAA4B;AAE5B,IAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../generated/test/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Table.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Loadable } from '@proteinjs/reflection';
|
|
2
2
|
import { CustomSerializableObject } from '@proteinjs/serializer';
|
|
3
3
|
import { Record } from './Record';
|
|
4
|
-
import { ColumnQueryTransform, QueryBuilder } from '@proteinjs/db-query';
|
|
4
|
+
import { ColumnQueryTransform, QueryBuilder, SortCriteria } from '@proteinjs/db-query';
|
|
5
5
|
import { Identity, TableOperationsAuth } from './auth/TableAuth';
|
|
6
6
|
import { Db } from './Db';
|
|
7
7
|
export declare const isTable: (obj: any) => boolean;
|
|
@@ -52,6 +52,13 @@ export declare abstract class Table<T extends Record> implements Loadable, Custo
|
|
|
52
52
|
* form still carries the full record).
|
|
53
53
|
*/
|
|
54
54
|
columns?: (keyof T & string)[];
|
|
55
|
+
/**
|
|
56
|
+
* The record table's default ordering (the sort its default loader applies before any
|
|
57
|
+
* user interaction). Undeclared tables keep the generic `updated` descending. Declare
|
|
58
|
+
* when the rows have a natural reading order the shared face can't know — e.g. the
|
|
59
|
+
* migration ledger reads most-recently-run first, never-run rows last.
|
|
60
|
+
*/
|
|
61
|
+
sort?: SortCriteria<T>[];
|
|
55
62
|
};
|
|
56
63
|
};
|
|
57
64
|
auth?: {
|
|
@@ -238,6 +245,14 @@ export type ColumnOptions = {
|
|
|
238
245
|
onZeroRowFilteredWrite?: (table: Table<any>, id: string, operation: 'write' | 'delete', runAsSystem: boolean) => Promise<void>;
|
|
239
246
|
ui?: {
|
|
240
247
|
hidden?: boolean;
|
|
248
|
+
/**
|
|
249
|
+
* The column's display label on the generic record surfaces (table header, form field,
|
|
250
|
+
* phone card label). Undeclared, the surfaces humanize the property name (`startTime` →
|
|
251
|
+
* "Start time"); declare when the property name is not how a human reads the value
|
|
252
|
+
* (the migration ledger's `startTime` reads as "Ran at"). One owner: both surfaces derive
|
|
253
|
+
* from it, so a label can never differ between the table and the form.
|
|
254
|
+
*/
|
|
255
|
+
label?: string;
|
|
241
256
|
/**
|
|
242
257
|
* Which section of the record form this column belongs to. The form derives a sane
|
|
243
258
|
* section from the column's type and name (identity strings up top, long text and
|
|
@@ -249,7 +264,28 @@ export type ColumnOptions = {
|
|
|
249
264
|
formGroup?: 'identity' | 'content' | 'details' | 'system' | (string & {});
|
|
250
265
|
};
|
|
251
266
|
};
|
|
267
|
+
/**
|
|
268
|
+
* The identity of one source-record declaration (a `SourceRecordLoader` in a build): the
|
|
269
|
+
* package that owns it, the reflection qualified name, and the declaration's own name — the
|
|
270
|
+
* loader's class name (or variable name), the part of the qualified name after the package.
|
|
271
|
+
* See `SourceRecordLoaderDeclaration` for the identity paired with the loader itself.
|
|
272
|
+
*/
|
|
273
|
+
export type SourceRecordDeclarationIdentity = {
|
|
274
|
+
source: string;
|
|
275
|
+
qualifiedName: string;
|
|
276
|
+
name: string;
|
|
277
|
+
};
|
|
252
278
|
export type SourceRecordOptions<T = any> = {
|
|
279
|
+
/**
|
|
280
|
+
* Fields the sync derives from the DECLARATION ITSELF rather than from its record — for
|
|
281
|
+
* tables whose rows carry facts about their declaration: the migration ledger's `name` is
|
|
282
|
+
* the declaring loader's class name, which no migration author should have to type twice.
|
|
283
|
+
* Called once per declaration per boot; the result is merged over the declared record
|
|
284
|
+
* BEFORE the drift comparison, so the derivation owns those fields (a value typed into the
|
|
285
|
+
* record does not survive it), an existing row missing a derived field is backfilled by the
|
|
286
|
+
* next boot exactly once, and an unchanged derivation never rewrites a row.
|
|
287
|
+
*/
|
|
288
|
+
fromDeclaration?: (declaration: SourceRecordDeclarationIdentity) => Partial<T>;
|
|
253
289
|
/**
|
|
254
290
|
* What the source-record sync does with rows it previously loaded from source
|
|
255
291
|
* (`is_loaded_from_source = true`) whose declaration no longer exists:
|
|
@@ -262,6 +298,19 @@ export type SourceRecordOptions<T = any> = {
|
|
|
262
298
|
* `Db.update`, so table watchers observe the write. Re-declaring the record reverts the
|
|
263
299
|
* patch via normal drift reversion — removal is reversible in source.
|
|
264
300
|
*
|
|
301
|
+
* THE SOFT-REMOVAL CONTRACT: a source-record table that soft-removes (keeps rows on removal —
|
|
302
|
+
* the `{ update }` policy) must adopt its soft-removed rows on re-declaration and re-derive
|
|
303
|
+
* their state from the declaration. Under the default (delete) lifecycle, re-declaration is a
|
|
304
|
+
* plain re-insert and naturally idempotent; a kept row instead still holds the declared id, so
|
|
305
|
+
* a re-declaration whose natural key no longer matches it (renamed while removed) would INSERT
|
|
306
|
+
* into a primary-key collision and fail the boot. The sync therefore widens adoption for these
|
|
307
|
+
* tables: a declaration whose natural key matches nothing re-claims the soft-removed row
|
|
308
|
+
* holding its declared id (same owning package only), reactivating it by re-deriving every
|
|
309
|
+
* declared field — declaration is the source of truth, so no removed-era state (grants,
|
|
310
|
+
* status, natural key) survives re-adoption, while runtime-owned fields the declaration never
|
|
311
|
+
* emits are preserved. Any future soft-removal table inherits this requirement; machine
|
|
312
|
+
* accounts (the `@proteinjs/user` user table) are the first implementer.
|
|
313
|
+
*
|
|
265
314
|
* Rows never loaded from source are structurally untouchable by every policy: the removed
|
|
266
315
|
* reconcile only ever matches `is_loaded_from_source = true`.
|
|
267
316
|
*/
|
package/dist/src/Table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAkB,MAAM,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
|
package/dist/src/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Loadable } from '@proteinjs/reflection';
|
|
2
|
-
import { Columns, Table } from '../Table';
|
|
2
|
+
import { Columns, SourceRecordDeclarationIdentity, Table } from '../Table';
|
|
3
3
|
import { Record as DbRecord } from '../Record';
|
|
4
4
|
/**
|
|
5
5
|
* A source record declaration paired with its owning source: the package that compiled the
|
|
@@ -8,8 +8,7 @@ import { Record as DbRecord } from '../Record';
|
|
|
8
8
|
* and prunes only within it, so servers running different builds against one shared database
|
|
9
9
|
* never delete each other's rows.
|
|
10
10
|
*/
|
|
11
|
-
export type SourceRecordLoaderDeclaration<T extends SourceRecord = SourceRecord> = {
|
|
12
|
-
source: string;
|
|
11
|
+
export type SourceRecordLoaderDeclaration<T extends SourceRecord = SourceRecord> = SourceRecordDeclarationIdentity & {
|
|
13
12
|
loader: SourceRecordLoader<T>;
|
|
14
13
|
};
|
|
15
14
|
export declare const getSourceRecordLoaders: <T extends SourceRecord = SourceRecord>() => SourceRecordLoaderDeclaration<T>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecord.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceRecord.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACtF,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAqB,MAAM,WAAW,CAAC;AAGlE;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,+BAA+B,GAAG;IACnH,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,iFAQ5B,CAAC;AAWR,wBAAgB,qBAAqB,iBAUpC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WASpD;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAUD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,YAAY,EAC5D,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,EAC7C,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,CAK9D;AAED,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpE,KAAK,4BAA4B,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAC5F,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAC/B,CAAC,EACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtD,CAAC,MAAM,CAAC,CAAC,CACX,CAAC;AACF,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAC/B,CAAC,EACD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACtD,CAAC,MAAM,CAAC,CAAC,CACX,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ;IAC1E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE;SACL,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CACzF,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC,CAAC,CAAC;KACL,GAAG;SACD,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAC1F,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC,CAAC,CAAC;KACL,CAAC;CACH"}
|
|
@@ -9,11 +9,25 @@ var getSourceRecordLoaders = function () {
|
|
|
9
9
|
return reflection_1.SourceRepository.get()
|
|
10
10
|
.objectsWithNames('@proteinjs/db/SourceRecordLoader')
|
|
11
11
|
.map(function (_a) {
|
|
12
|
-
var packageName = _a.packageName, object = _a.object;
|
|
13
|
-
return ({
|
|
12
|
+
var packageName = _a.packageName, qualifiedName = _a.qualifiedName, object = _a.object;
|
|
13
|
+
return ({
|
|
14
|
+
source: packageName,
|
|
15
|
+
qualifiedName: qualifiedName,
|
|
16
|
+
name: declarationName(qualifiedName, packageName),
|
|
17
|
+
loader: object,
|
|
18
|
+
});
|
|
14
19
|
});
|
|
15
20
|
};
|
|
16
21
|
exports.getSourceRecordLoaders = getSourceRecordLoaders;
|
|
22
|
+
/**
|
|
23
|
+
* The declaration's own name from its reflection qualified name (`<package>/<name>`): the
|
|
24
|
+
* loader's class name for a class declaration, the variable name for a variable one.
|
|
25
|
+
*/
|
|
26
|
+
var declarationName = function (qualifiedName, packageName) {
|
|
27
|
+
return qualifiedName.startsWith("".concat(packageName, "/"))
|
|
28
|
+
? qualifiedName.slice(packageName.length + 1)
|
|
29
|
+
: qualifiedName.slice(qualifiedName.lastIndexOf('/') + 1);
|
|
30
|
+
};
|
|
17
31
|
function getSourceRecordTables() {
|
|
18
32
|
var tables = (0, Table_1.getTables)();
|
|
19
33
|
var sourceRecordTables = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecord.js","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"SourceRecord.js","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,kCAAsF;AACtF,oCAAkE;AAClE,sCAAyD;AAalD,IAAM,sBAAsB,GAAG;IACpC,OAAA,6BAAgB,CAAC,GAAG,EAAE;SACnB,gBAAgB,CAAwB,kCAAkC,CAAC;SAC3E,GAAG,CAAC,UAAC,EAAsC;YAApC,WAAW,iBAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;QAAO,OAAA,CAAC;YAChD,MAAM,EAAE,WAAW;YACnB,aAAa,eAAA;YACb,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC;YACjD,MAAM,EAAE,MAAM;SACf,CAAC;IAL+C,CAK/C,CAAC;AAPL,CAOK,CAAC;AARK,QAAA,sBAAsB,0BAQ3B;AAER;;;GAGG;AACH,IAAM,eAAe,GAAG,UAAC,aAAqB,EAAE,WAAmB;IACjE,OAAA,aAAa,CAAC,UAAU,CAAC,UAAG,WAAW,MAAG,CAAC;QACzC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAF3D,CAE2D,CAAC;AAE9D,SAAgB,qBAAqB;IACnC,IAAM,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IAC3B,IAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAAvB,IAAM,KAAK,eAAA;QACd,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;KACF;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAVD,sDAUC;AAED,SAAgB,mBAAmB,CAAC,KAAiB;IACnD,KAAK,IAAM,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;QAC9C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,IAAI,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE;YACnE,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AATD,kDASC;AAwBD,IAAM,sBAAsB,GAAG,UAAC,UAAiB;IAAjB,2BAAA,EAAA,iBAAiB;IAC/C,OAAO;QACL,kBAAkB,EAAE,IAAI,uBAAa,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QAC9F,aAAa,EAAE,IAAI,sBAAY,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QACjF,oBAAoB,EAAE,IAAI,sBAAY,CAAC,wBAAwB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;KACjG,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CACrC,OAA6C,EAC7C,UAAoB;IAEpB,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,EACrD,IAAA,0BAAiB,EAAW,OAAO,CAAQ,CAC5C,CAAC;AACJ,CAAC;AARD,0DAQC"}
|
|
@@ -37,6 +37,10 @@ export declare class SourceRecordLoader {
|
|
|
37
37
|
* tables it no longer declares anything for: dropping the last declaration is a removal.
|
|
38
38
|
* - Rows with no owner stamp (written before `source_package` existed) are claimed by the
|
|
39
39
|
* declaration that still matches them; the rest are reported as unowned and left alone.
|
|
40
|
+
* - The version stamp records the version that last WROTE the row (its insert or its last
|
|
41
|
+
* redefinition). A newer version whose declaration is unchanged writes nothing — it neither
|
|
42
|
+
* re-stamps the version nor bumps `updated` — so a release that touches no declaration
|
|
43
|
+
* leaves every row byte-identical (see {@link hasChanges}).
|
|
40
44
|
*
|
|
41
45
|
* Accepted residuals: a package removed from every build leaves its rows behind (no surviving
|
|
42
46
|
* boot carries its authority — clean up explicitly); two builds of one package at the SAME
|
|
@@ -61,6 +65,35 @@ export declare class SourceRecordLoader {
|
|
|
61
65
|
* See {@link load} for the ownership model.
|
|
62
66
|
*/
|
|
63
67
|
private reconcileRemoved;
|
|
68
|
+
/**
|
|
69
|
+
* The widened adoption match for tables that SOFT-remove (keep rows on removal via the
|
|
70
|
+
* `onSourceRemoved` update policy): a declaration whose natural key matched nothing may still
|
|
71
|
+
* be a RE-declaration of a removed-and-kept row — the same stable declared id under a changed
|
|
72
|
+
* natural key (e.g. a machine account renamed while decommissioned). Without this, the insert
|
|
73
|
+
* leg collides with the kept row's primary key and the boot fails.
|
|
74
|
+
*
|
|
75
|
+
* Returns the soft-removed row the declaration re-claims, or undefined. The match is
|
|
76
|
+
* deliberately strict — all of:
|
|
77
|
+
* - the table keeps removed rows (`onSourceRemoved` is an update patch — soft removal);
|
|
78
|
+
* - a row holds the DECLARED id;
|
|
79
|
+
* - that row is source-owned (`is_loaded_from_source = true`) by THIS declaration's package
|
|
80
|
+
* (never adopt a human/runtime row, or another package's row, by id);
|
|
81
|
+
* - no declaration in this build claims the row by natural key (it is a removed row, not a
|
|
82
|
+
* duplicate-id declaration — that case still fails the boot loudly at insert).
|
|
83
|
+
*
|
|
84
|
+
* The caller then reactivates the row by re-deriving every declared field from the current
|
|
85
|
+
* declaration (natural key included) through the normal drift-reversion update — declaration
|
|
86
|
+
* is the source of truth, so nothing removed-era (grants, status, natural key) survives
|
|
87
|
+
* re-adoption; runtime-owned fields the declaration never emits are untouched. The version
|
|
88
|
+
* guard is the caller's existing stamped-newer branch, which applies to the returned row
|
|
89
|
+
* verbatim (same package by construction).
|
|
90
|
+
*
|
|
91
|
+
* This is the one-off form of a future generic `softRemoval` hook (adopt-including-removed +
|
|
92
|
+
* reactivate-from-declaration): graduating it means lifting this method behind a table-level
|
|
93
|
+
* seam, not rewriting the semantics. The contract lives on
|
|
94
|
+
* {@link SourceRecordOptions.onSourceRemoved}.
|
|
95
|
+
*/
|
|
96
|
+
private softRemovedRecordHoldingDeclaredId;
|
|
64
97
|
/**
|
|
65
98
|
* Source-loaded rows with no owner stamp that no declaration in this build claimed on this
|
|
66
99
|
* boot (the stamp leg has already run). They predate `source_package`, or their declaring
|
|
@@ -87,6 +120,14 @@ export declare class SourceRecordLoader {
|
|
|
87
120
|
* Object-valued fields (e.g. `JsonColumn` blobs) are treated as source-authoritative:
|
|
88
121
|
* any structural drift, including extra keys left behind by earlier source versions,
|
|
89
122
|
* triggers a rewrite. Primitive columns retain their existing semantics.
|
|
123
|
+
*
|
|
124
|
+
* The version stamp (`source_package_version`) is bookkeeping, not definition: it names the
|
|
125
|
+
* version that last WROTE the row and rides every source record (every release bumps the
|
|
126
|
+
* declaring package), so comparing it would rewrite every row on every release — the churn
|
|
127
|
+
* that bumped `updated` on migration ledger rows nobody had touched. A stamped row's version
|
|
128
|
+
* is therefore never drift by itself; it moves only when a genuine change rewrites the row.
|
|
129
|
+
* A row with NO stamp (written before versions existed, or by a build that could not resolve
|
|
130
|
+
* its version) still gets one — once — so version ordering can protect it from then on.
|
|
90
131
|
*/
|
|
91
132
|
private hasChanges;
|
|
92
133
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkBjC,gEAAgE;AAChE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,4BAA4B,CAAA;CAAE,CAAC;AAE5F,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAE7D,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAyC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAuIpE;;;;;;;;;OASG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,kCAAkC;IA0BhD;;;;;;OAMG;YACW,YAAY;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;;;;;;;;;;;;;;;;;OAmBG;YACW,UAAU;IAwBxB;;;OAGG;YACW,eAAe;IAmB7B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;IAmB1B,mGAAmG;IACnG,OAAO,CAAC,aAAa;IAQrB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY;IAapB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CA4DxB"}
|