@proteinjs/db 1.32.3 → 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.
Files changed (79) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/generated/index.js +1 -1
  3. package/dist/generated/index.js.map +1 -1
  4. package/dist/generated/test/index.d.ts.map +1 -1
  5. package/dist/generated/test/index.js +15 -1
  6. package/dist/generated/test/index.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +6 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/src/Db.d.ts +2 -0
  12. package/dist/src/Db.d.ts.map +1 -1
  13. package/dist/src/Db.js +33 -62
  14. package/dist/src/Db.js.map +1 -1
  15. package/dist/src/MigrationRunner.d.ts +14 -3
  16. package/dist/src/MigrationRunner.d.ts.map +1 -1
  17. package/dist/src/MigrationRunner.js +56 -28
  18. package/dist/src/MigrationRunner.js.map +1 -1
  19. package/dist/src/ReverseCascadeEdgeIndex.d.ts +51 -0
  20. package/dist/src/ReverseCascadeEdgeIndex.d.ts.map +1 -0
  21. package/dist/src/ReverseCascadeEdgeIndex.js +108 -0
  22. package/dist/src/ReverseCascadeEdgeIndex.js.map +1 -0
  23. package/dist/src/Table.d.ts +34 -7
  24. package/dist/src/Table.d.ts.map +1 -1
  25. package/dist/src/Table.js +2 -7
  26. package/dist/src/Table.js.map +1 -1
  27. package/dist/src/schema/TableManager.d.ts +26 -0
  28. package/dist/src/schema/TableManager.d.ts.map +1 -1
  29. package/dist/src/schema/TableManager.js +154 -13
  30. package/dist/src/schema/TableManager.js.map +1 -1
  31. package/dist/src/source/SourceRecordLoader.d.ts +18 -1
  32. package/dist/src/source/SourceRecordLoader.d.ts.map +1 -1
  33. package/dist/src/source/SourceRecordLoader.js +187 -68
  34. package/dist/src/source/SourceRecordLoader.js.map +1 -1
  35. package/dist/src/tables/MigrationTable.d.ts +10 -6
  36. package/dist/src/tables/MigrationTable.d.ts.map +1 -1
  37. package/dist/src/tables/MigrationTable.js +3 -1
  38. package/dist/src/tables/MigrationTable.js.map +1 -1
  39. package/dist/test/index.d.ts +2 -0
  40. package/dist/test/index.d.ts.map +1 -1
  41. package/dist/test/index.js +2 -0
  42. package/dist/test/index.js.map +1 -1
  43. package/dist/test/reusable/CascadeDeleteTests.d.ts.map +1 -1
  44. package/dist/test/reusable/CascadeDeleteTests.js +59 -0
  45. package/dist/test/reusable/CascadeDeleteTests.js.map +1 -1
  46. package/dist/test/reusable/SourceRecordSyncTests.d.ts +11 -0
  47. package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -0
  48. package/dist/test/reusable/SourceRecordSyncTests.js +483 -0
  49. package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -0
  50. package/dist/test/util/DbTestEnvironment.d.ts.map +1 -1
  51. package/dist/test/util/DbTestEnvironment.js +2 -1
  52. package/dist/test/util/DbTestEnvironment.js.map +1 -1
  53. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts +46 -0
  54. package/dist/test/util/tables/cascadeDeleteTestTables.d.ts.map +1 -1
  55. package/dist/test/util/tables/cascadeDeleteTestTables.js +51 -1
  56. package/dist/test/util/tables/cascadeDeleteTestTables.js.map +1 -1
  57. package/dist/test/util/tables/crudTestTables.d.ts +1 -1
  58. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts +82 -0
  59. package/dist/test/util/tables/sourceRecordSyncTestTables.d.ts.map +1 -0
  60. package/dist/test/util/tables/sourceRecordSyncTestTables.js +90 -0
  61. package/dist/test/util/tables/sourceRecordSyncTestTables.js.map +1 -0
  62. package/dist/test/util/tables/transactionTestTables.d.ts +1 -1
  63. package/generated/index.ts +1 -1
  64. package/generated/test/index.ts +15 -1
  65. package/index.ts +4 -0
  66. package/package.json +2 -2
  67. package/src/Db.ts +32 -57
  68. package/src/MigrationRunner.ts +29 -4
  69. package/src/ReverseCascadeEdgeIndex.ts +126 -0
  70. package/src/Table.ts +32 -9
  71. package/src/schema/TableManager.ts +98 -1
  72. package/src/source/SourceRecordLoader.ts +133 -23
  73. package/src/tables/MigrationTable.ts +12 -2
  74. package/test/index.ts +2 -0
  75. package/test/reusable/CascadeDeleteTests.ts +46 -0
  76. package/test/reusable/SourceRecordSyncTests.ts +288 -0
  77. package/test/util/DbTestEnvironment.ts +2 -0
  78. package/test/util/tables/cascadeDeleteTestTables.ts +48 -0
  79. package/test/util/tables/sourceRecordSyncTestTables.ts +84 -0
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ReverseCascadeEdgeIndex = void 0;
13
+ var Table_1 = require("./Table");
14
+ /**
15
+ * Derived in-memory reverse-cascade edge index over the static table registry.
16
+ *
17
+ * Maps the referenced-target dimension (`referencedTableName → [(referencingTable,
18
+ * columnProperty, refKind)]`) for every column flagged `reverseCascadeDelete: true`, so
19
+ * `Db.delete` consults an O(edges-for-target) lookup instead of re-scanning every registered
20
+ * table's columns on every delete. Table definitions are the source of truth and are static
21
+ * per process, so the index is built once — lazily on first use — and never invalidated.
22
+ *
23
+ * Edge derivation mirrors the three reference column shapes:
24
+ * - `ReferenceColumn` / `ReferenceArrayColumn` edges are keyed under their declared
25
+ * `referenceTable` — they can only ever point at that one target.
26
+ * - `DynamicReferenceColumn` edges are target-agnostic (the target table name lives in a
27
+ * sibling column per row), so they apply to every target table and are returned for all
28
+ * lookups; the per-row table-name condition stays in the delete query, exactly as the
29
+ * pre-index scan issued it.
30
+ */
31
+ var ReverseCascadeEdgeIndex = /** @class */ (function () {
32
+ function ReverseCascadeEdgeIndex() {
33
+ this.edgesByTargetTable = new Map();
34
+ this.dynamicEdges = [];
35
+ this.build();
36
+ }
37
+ ReverseCascadeEdgeIndex.get = function () {
38
+ if (!ReverseCascadeEdgeIndex.instance) {
39
+ ReverseCascadeEdgeIndex.instance = new ReverseCascadeEdgeIndex();
40
+ }
41
+ return ReverseCascadeEdgeIndex.instance;
42
+ };
43
+ /**
44
+ * All reverse-cascade edges that can point at `targetTableName`: the edges keyed under it
45
+ * plus every dynamic (target-agnostic) edge, in the same registry-walk order the pre-index
46
+ * all-tables scan visited them.
47
+ */
48
+ ReverseCascadeEdgeIndex.prototype.getEdges = function (targetTableName) {
49
+ var _a;
50
+ var exactEdges = (_a = this.edgesByTargetTable.get(targetTableName)) !== null && _a !== void 0 ? _a : [];
51
+ if (exactEdges.length === 0) {
52
+ return this.dynamicEdges;
53
+ }
54
+ if (this.dynamicEdges.length === 0) {
55
+ return exactEdges;
56
+ }
57
+ return __spreadArray(__spreadArray([], exactEdges, true), this.dynamicEdges, true).sort(function (a, b) { return a.order - b.order; });
58
+ };
59
+ ReverseCascadeEdgeIndex.prototype.build = function () {
60
+ var _a;
61
+ var order = 0;
62
+ for (var _i = 0, _b = (0, Table_1.getTables)(); _i < _b.length; _i++) {
63
+ var referencingTable = _b[_i];
64
+ for (var columnPropertyName in referencingTable.columns) {
65
+ var column = referencingTable.columns[columnPropertyName];
66
+ if (!column || column.reverseCascadeDelete !== true) {
67
+ continue;
68
+ }
69
+ // DynamicReferenceColumn: identified by its sibling table-name column pointer
70
+ if (typeof column.dynamicRefTableColName === 'string' && column.dynamicRefTableColName.length > 0) {
71
+ var dynamicRefTableColumnPropertyName = (0, Table_1.getColumnPropertyName)(referencingTable, column.dynamicRefTableColName);
72
+ if (!dynamicRefTableColumnPropertyName) {
73
+ continue;
74
+ }
75
+ this.dynamicEdges.push({
76
+ referencingTable: referencingTable,
77
+ columnPropertyName: columnPropertyName,
78
+ refKind: 'dynamicReference',
79
+ dynamicRefTableColumnPropertyName: dynamicRefTableColumnPropertyName,
80
+ order: order++,
81
+ });
82
+ continue;
83
+ }
84
+ if (typeof column.referenceTable !== 'string') {
85
+ continue;
86
+ }
87
+ var ctorName = (_a = column.constructor) === null || _a === void 0 ? void 0 : _a.name;
88
+ var refKind = ctorName === 'ReferenceColumn'
89
+ ? 'reference'
90
+ : ctorName === 'ReferenceArrayColumn'
91
+ ? 'referenceArray'
92
+ : undefined;
93
+ if (!refKind) {
94
+ continue;
95
+ }
96
+ var targetEdges = this.edgesByTargetTable.get(column.referenceTable);
97
+ if (!targetEdges) {
98
+ targetEdges = [];
99
+ this.edgesByTargetTable.set(column.referenceTable, targetEdges);
100
+ }
101
+ targetEdges.push({ referencingTable: referencingTable, columnPropertyName: columnPropertyName, refKind: refKind, order: order++ });
102
+ }
103
+ }
104
+ };
105
+ return ReverseCascadeEdgeIndex;
106
+ }());
107
+ exports.ReverseCascadeEdgeIndex = ReverseCascadeEdgeIndex;
108
+ //# sourceMappingURL=ReverseCascadeEdgeIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReverseCascadeEdgeIndex.js","sourceRoot":"","sources":["../../src/ReverseCascadeEdgeIndex.ts"],"names":[],"mappings":"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"}
@@ -33,11 +33,8 @@ export declare abstract class Table<T extends Record> implements Loadable, Custo
33
33
  table: string;
34
34
  referenceColumn: string;
35
35
  }[];
36
- /**
37
- * Options for configuring SourceRecords
38
- * @param doNotDeleteSourceRecordsFromDb if true, the SourceRecordLoader will not delete source records from the db if they no longer exist on the file system
39
- */
40
- sourceRecordOptions: SourceRecordOptions;
36
+ /** Options for configuring SourceRecords (see {@link SourceRecordOptions}) */
37
+ sourceRecordOptions: SourceRecordOptions<T>;
41
38
  auth?: {
42
39
  db?: TableOperationsAuth;
43
40
  service?: TableOperationsAuth;
@@ -116,8 +113,38 @@ export type ColumnOptions = {
116
113
  hidden?: boolean;
117
114
  };
118
115
  };
119
- export type SourceRecordOptions = {
120
- doNotDeleteSourceRecordsFromDb?: boolean;
116
+ export type SourceRecordOptions<T = any> = {
117
+ /**
118
+ * What the source-record sync does with rows it previously loaded from source
119
+ * (`is_loaded_from_source = true`) whose declaration no longer exists:
120
+ * - `'delete'` (default): delete the rows.
121
+ * - `'keep'`: leave the rows untouched (e.g. the migration ledger — run history outlives the
122
+ * migration class).
123
+ * - `{ update }`: apply the patch to the removed rows — e.g. a machine-account table flagging
124
+ * removed accounts `{ update: { status: 'deactivated' } }` instead of deleting them. The
125
+ * patch is applied only to rows whose fields actually differ (idempotent boots), through
126
+ * `Db.update`, so table watchers observe the write. Re-declaring the record reverts the
127
+ * patch via normal drift reversion — removal is reversible in source.
128
+ *
129
+ * Rows never loaded from source are structurally untouchable by every policy: the removed
130
+ * reconcile only ever matches `is_loaded_from_source = true`.
131
+ */
132
+ onSourceRemoved?: 'delete' | 'keep' | {
133
+ update: Partial<T>;
134
+ };
135
+ /**
136
+ * When set, the sync keys records on this column instead of `id` — matching, adoption, and
137
+ * the removed reconcile all use it. An existing row matched by natural key is ADOPTED in
138
+ * place: it keeps its id (the declared id is used only for fresh inserts — existing ids may
139
+ * be referenced from other tables), gets stamped `is_loaded_from_source = true`, and has its
140
+ * declared fields reverted to source. Drift comparison excludes `id`, so adoption converges.
141
+ *
142
+ * Preconditions, validated at boot by the loader (loud failures):
143
+ * - the column is declared unique (`ColumnOptions.unique` or a single-column unique index in
144
+ * {@link Table.indexes});
145
+ * - every declaration provides the natural key, and no two declarations share a value.
146
+ */
147
+ naturalKey?: keyof T & string;
121
148
  ui?: {
122
149
  hideColumns?: boolean;
123
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
package/dist/src/Table.js CHANGED
@@ -154,13 +154,8 @@ var Table = /** @class */ (function () {
154
154
  this.indexes = [];
155
155
  /** When records are deleted, delete records having references pointing to deleted records */
156
156
  this.cascadeDeleteReferences = function () { return []; };
157
- /**
158
- * Options for configuring SourceRecords
159
- * @param doNotDeleteSourceRecordsFromDb if true, the SourceRecordLoader will not delete source records from the db if they no longer exist on the file system
160
- */
161
- this.sourceRecordOptions = {
162
- doNotDeleteSourceRecordsFromDb: false,
163
- };
157
+ /** Options for configuring SourceRecords (see {@link SourceRecordOptions}) */
158
+ this.sourceRecordOptions = {};
164
159
  }
165
160
  return Table;
166
161
  }());
@@ -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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"}
@@ -2,6 +2,16 @@ import { Column, Table } from '../Table';
2
2
  import { SchemaOperations } from './SchemaOperations';
3
3
  import { SchemaMetadata } from './SchemaMetadata';
4
4
  import { DbDriver } from '../Db';
5
+ /**
6
+ * Thrown by the pre-sync duplicate check when a unique index is about to be added to an existing
7
+ * table whose data already violates it. Without the preflight the backend's index backfill fails
8
+ * with an opaque driver error mid-boot; this names the table, the columns, and sample offending
9
+ * values so the operator can resolve the duplicates and boot again.
10
+ */
11
+ export declare class DuplicateValuesForUniqueIndexError extends Error {
12
+ constructor(tableName: string, columnNames: string[], duplicateValues: unknown[]);
13
+ static readonly MAX_REPORTED_VALUES = 20;
14
+ }
5
15
  export interface ColumnTypeFactory {
6
16
  getType(column: Column<any, any>): string;
7
17
  }
@@ -15,6 +25,7 @@ export declare class TableManager {
15
25
  private static readonly RECONCILE_VERIFY_ATTEMPTS;
16
26
  private static readonly RECONCILE_VERIFY_RETRY_DELAY_MS;
17
27
  private logger;
28
+ private dbDriver;
18
29
  columnTypeFactory: ColumnTypeFactory;
19
30
  schemaOperations: SchemaOperations;
20
31
  schemaMetadata: SchemaMetadata;
@@ -86,5 +97,20 @@ export declare class TableManager {
86
97
  private shouldAlterTable;
87
98
  private getTableChanges;
88
99
  private getIndexOperations;
100
+ /**
101
+ * Pre-sync duplicate check: before an alter adds a unique index (via `ColumnOptions.unique` or
102
+ * a unique entry in `Table.indexes`) to an EXISTING table, verify the data can satisfy it.
103
+ * Existing duplicates would otherwise surface as an opaque backend backfill failure mid-boot;
104
+ * this throws {@link DuplicateValuesForUniqueIndexError} naming the table, columns, and sample
105
+ * offending values instead. Runs only on the alter path (a freshly created table has no rows),
106
+ * and only when a unique index is actually being added — steady-state boots never pay for it.
107
+ */
108
+ private preflightUniqueIndexAdditions;
109
+ /**
110
+ * Read the key column(s) of every row (NULLs excluded — a unique index admits them) and group
111
+ * in memory. A full-column read is acceptable here: it runs once, at boot, only when a NEW
112
+ * unique index is being added over existing data.
113
+ */
114
+ private assertNoDuplicateValues;
89
115
  }
90
116
  //# sourceMappingURL=TableManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAO;IAC9D,OAAO,CAAC,MAAM,CAA2F;IAClG,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAO3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAInC;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBnC,mBAAmB;IAajC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;YACW,+BAA+B;IAiB7C;;;;;;;;;;;OAWG;YACW,wBAAwB;IAyCtC;sEACkE;IAClE,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;CA8CjC"}
1
+ {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAoC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIjC;;;;;GAKG;AACH,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;IAYhF,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;CAC1C;AAKD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAO;IAC9D,OAAO,CAAC,MAAM,CAA2F;IACzG,OAAO,CAAC,QAAQ,CAAW;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAQ3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAInC;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBnC,mBAAmB;IAcjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;YACW,+BAA+B;IAiB7C;;;;;;;;;;;OAWG;YACW,wBAAwB;IAyCtC;sEACkE;IAClE,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;IA+ChC;;;;;;;OAOG;YACW,6BAA6B;IAe3C;;;;OAIG;YACW,uBAAuB;CAyCtC"}
@@ -1,4 +1,19 @@
1
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
+ })();
2
17
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
18
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
19
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -36,16 +51,41 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
51
  }
37
52
  };
38
53
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.TableManager = void 0;
54
+ exports.TableManager = exports.DuplicateValuesForUniqueIndexError = void 0;
40
55
  var logger_1 = require("@proteinjs/logger");
56
+ var db_query_1 = require("@proteinjs/db-query");
41
57
  var Table_1 = require("../Table");
42
58
  var SchemaMetadata_1 = require("./SchemaMetadata");
59
+ var StatementConfigFactory_1 = require("../StatementConfigFactory");
60
+ /**
61
+ * Thrown by the pre-sync duplicate check when a unique index is about to be added to an existing
62
+ * table whose data already violates it. Without the preflight the backend's index backfill fails
63
+ * with an opaque driver error mid-boot; this names the table, the columns, and sample offending
64
+ * values so the operator can resolve the duplicates and boot again.
65
+ */
66
+ var DuplicateValuesForUniqueIndexError = /** @class */ (function (_super) {
67
+ __extends(DuplicateValuesForUniqueIndexError, _super);
68
+ function DuplicateValuesForUniqueIndexError(tableName, columnNames, duplicateValues) {
69
+ var _this = _super.call(this, "(".concat(tableName, ") Cannot create a unique index on (").concat(columnNames.join(', '), "): existing rows hold duplicate ") +
70
+ "values. Resolve the duplicates, then boot again. Duplicate values (up to " +
71
+ "".concat(DuplicateValuesForUniqueIndexError.MAX_REPORTED_VALUES, " shown): ").concat(JSON.stringify(duplicateValues))) || this;
72
+ _this.name = 'DuplicateValuesForUniqueIndexError';
73
+ // ES5 down-leveled `extends Error` loses the subclass prototype — restore it so
74
+ // `instanceof DuplicateValuesForUniqueIndexError` holds for catchers.
75
+ Object.setPrototypeOf(_this, DuplicateValuesForUniqueIndexError.prototype);
76
+ return _this;
77
+ }
78
+ DuplicateValuesForUniqueIndexError.MAX_REPORTED_VALUES = 20;
79
+ return DuplicateValuesForUniqueIndexError;
80
+ }(Error));
81
+ exports.DuplicateValuesForUniqueIndexError = DuplicateValuesForUniqueIndexError;
43
82
  var getEnvVar = function (key) {
44
83
  return typeof process !== 'undefined' && process.env ? process.env[key] : undefined;
45
84
  };
46
85
  var TableManager = /** @class */ (function () {
47
86
  function TableManager(dbDriver, columnTypeFactory, schemaOperations, schemaMetadata) {
48
87
  this.logger = new logger_1.Logger({ name: this.constructor.name, logLevel: getEnvVar('DB_LOG_LEVEL') });
88
+ this.dbDriver = dbDriver;
49
89
  this.columnTypeFactory = columnTypeFactory;
50
90
  this.schemaOperations = schemaOperations;
51
91
  this.schemaMetadata = schemaMetadata ? schemaMetadata : new SchemaMetadata_1.SchemaMetadata(dbDriver);
@@ -176,25 +216,28 @@ var TableManager = /** @class */ (function () {
176
216
  case 0: return [4 /*yield*/, this.getTableChanges(table)];
177
217
  case 1:
178
218
  tableChanges = _a.sent();
179
- if (!this.shouldAlterTable(tableChanges)) return [3 /*break*/, 7];
180
- this.logger.info({ message: "Altering table: ".concat(table.name) });
181
- _a.label = 2;
219
+ if (!this.shouldAlterTable(tableChanges)) return [3 /*break*/, 8];
220
+ return [4 /*yield*/, this.preflightUniqueIndexAdditions(table, tableChanges)];
182
221
  case 2:
183
- _a.trys.push([2, 4, , 6]);
184
- return [4 /*yield*/, this.schemaOperations.alterTable(table, tableChanges)];
185
- case 3:
186
222
  _a.sent();
187
- return [3 /*break*/, 6];
223
+ this.logger.info({ message: "Altering table: ".concat(table.name) });
224
+ _a.label = 3;
225
+ case 3:
226
+ _a.trys.push([3, 5, , 7]);
227
+ return [4 /*yield*/, this.schemaOperations.alterTable(table, tableChanges)];
188
228
  case 4:
229
+ _a.sent();
230
+ return [3 /*break*/, 7];
231
+ case 5:
189
232
  error_3 = _a.sent();
190
233
  return [4 /*yield*/, this.reconcileConcurrentSchemaChange([table], error_3)];
191
- case 5:
192
- _a.sent();
193
- return [3 /*break*/, 6];
194
234
  case 6:
235
+ _a.sent();
236
+ return [3 /*break*/, 7];
237
+ case 7:
195
238
  this.logger.info({ message: "Finished altering table: ".concat(table.name) });
196
- _a.label = 7;
197
- case 7: return [2 /*return*/];
239
+ _a.label = 8;
240
+ case 8: return [2 /*return*/];
198
241
  }
199
242
  });
200
243
  });
@@ -533,6 +576,104 @@ var TableManager = /** @class */ (function () {
533
576
  });
534
577
  });
535
578
  };
579
+ /**
580
+ * Pre-sync duplicate check: before an alter adds a unique index (via `ColumnOptions.unique` or
581
+ * a unique entry in `Table.indexes`) to an EXISTING table, verify the data can satisfy it.
582
+ * Existing duplicates would otherwise surface as an opaque backend backfill failure mid-boot;
583
+ * this throws {@link DuplicateValuesForUniqueIndexError} naming the table, columns, and sample
584
+ * offending values instead. Runs only on the alter path (a freshly created table has no rows),
585
+ * and only when a unique index is actually being added — steady-state boots never pay for it.
586
+ */
587
+ TableManager.prototype.preflightUniqueIndexAdditions = function (table, tableChanges) {
588
+ return __awaiter(this, void 0, void 0, function () {
589
+ var uniqueAdditions, _i, _a, index, _b, uniqueAdditions_1, columnNames;
590
+ return __generator(this, function (_c) {
591
+ switch (_c.label) {
592
+ case 0:
593
+ uniqueAdditions = tableChanges.columnsWithUniqueConstraintsToCreate.map(function (columnName) { return [
594
+ columnName,
595
+ ]; });
596
+ for (_i = 0, _a = tableChanges.indexesToCreate; _i < _a.length; _i++) {
597
+ index = _a[_i];
598
+ if (index.unique) {
599
+ uniqueAdditions.push(Array.isArray(index.columns) ? index.columns : [index.columns]);
600
+ }
601
+ }
602
+ _b = 0, uniqueAdditions_1 = uniqueAdditions;
603
+ _c.label = 1;
604
+ case 1:
605
+ if (!(_b < uniqueAdditions_1.length)) return [3 /*break*/, 4];
606
+ columnNames = uniqueAdditions_1[_b];
607
+ return [4 /*yield*/, this.assertNoDuplicateValues(table, columnNames)];
608
+ case 2:
609
+ _c.sent();
610
+ _c.label = 3;
611
+ case 3:
612
+ _b++;
613
+ return [3 /*break*/, 1];
614
+ case 4: return [2 /*return*/];
615
+ }
616
+ });
617
+ });
618
+ };
619
+ /**
620
+ * Read the key column(s) of every row (NULLs excluded — a unique index admits them) and group
621
+ * in memory. A full-column read is acceptable here: it runs once, at boot, only when a NEW
622
+ * unique index is being added over existing data.
623
+ */
624
+ TableManager.prototype.assertNoDuplicateValues = function (table, columnNames) {
625
+ var _a;
626
+ return __awaiter(this, void 0, void 0, function () {
627
+ var propertyNames, qb, _i, propertyNames_1, propertyName, statementConfigFactory, rows, counts, _loop_1, _b, rows_1, row, duplicates, _c, _d, entry;
628
+ return __generator(this, function (_e) {
629
+ switch (_e.label) {
630
+ case 0:
631
+ propertyNames = columnNames.map(function (columnName) {
632
+ var propertyName = (0, Table_1.getColumnPropertyName)(table, columnName);
633
+ if (!propertyName) {
634
+ throw new Error("(".concat(table.name, ") Unable to resolve a column property for column: ").concat(columnName));
635
+ }
636
+ return propertyName;
637
+ });
638
+ qb = new db_query_1.QueryBuilder(table.name).select({ fields: propertyNames });
639
+ for (_i = 0, propertyNames_1 = propertyNames; _i < propertyNames_1.length; _i++) {
640
+ propertyName = propertyNames_1[_i];
641
+ qb.condition({ field: propertyName, operator: 'IS NOT NULL' });
642
+ }
643
+ statementConfigFactory = new StatementConfigFactory_1.StatementConfigFactory(this.dbDriver.getDbName());
644
+ return [4 /*yield*/, this.dbDriver.runQuery(function (config) { return qb.toSql(statementConfigFactory.getStatementConfig(config)); })];
645
+ case 1:
646
+ rows = _e.sent();
647
+ counts = new Map();
648
+ _loop_1 = function (row) {
649
+ var values = columnNames.map(function (columnName) { return row[columnName]; });
650
+ var key = JSON.stringify(values);
651
+ var entry = (_a = counts.get(key)) !== null && _a !== void 0 ? _a : { count: 0, values: values };
652
+ entry.count += 1;
653
+ counts.set(key, entry);
654
+ };
655
+ for (_b = 0, rows_1 = rows; _b < rows_1.length; _b++) {
656
+ row = rows_1[_b];
657
+ _loop_1(row);
658
+ }
659
+ duplicates = [];
660
+ for (_c = 0, _d = Array.from(counts.values()); _c < _d.length; _c++) {
661
+ entry = _d[_c];
662
+ if (entry.count > 1) {
663
+ duplicates.push(entry.values.length === 1 ? entry.values[0] : entry.values);
664
+ if (duplicates.length >= DuplicateValuesForUniqueIndexError.MAX_REPORTED_VALUES) {
665
+ break;
666
+ }
667
+ }
668
+ }
669
+ if (duplicates.length > 0) {
670
+ throw new DuplicateValuesForUniqueIndexError(table.name, columnNames, duplicates);
671
+ }
672
+ return [2 /*return*/];
673
+ }
674
+ });
675
+ });
676
+ };
536
677
  /**
537
678
  * Bounded verification re-reads for {@link reconcileConcurrentSchemaChange}: an already-exists
538
679
  * DDL error proves the conflicting schema change COMMITTED, but INFORMATION_SCHEMA on this
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA2C;AAC3C,gDAAmD;AACnD,kCAA2E;AAE3E,mDAAkD;AAGlD,oEAAmE;AAEnE;;;;;GAKG;AACH;IAAwD,sDAAK;IAC3D,4CAAY,SAAiB,EAAE,WAAqB,EAAE,eAA0B;QAAhF,YACE,kBACE,WAAI,SAAS,gDAAsC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAkC;YACzG,2EAA2E;YAC3E,UAAG,kCAAkC,CAAC,mBAAmB,sBAAY,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAE,CACzG,SAKF;QAJC,KAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;QACjD,gFAAgF;QAChF,sEAAsE;QACtE,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,kCAAkC,CAAC,SAAS,CAAC,CAAC;;IAC5E,CAAC;IAEe,sDAAmB,GAAG,EAAE,CAAC;IAC3C,yCAAC;CAAA,AAdD,CAAwD,KAAK,GAc5D;AAdY,gFAAkC;AAgB/C,IAAM,SAAS,GAAG,UAAC,GAAW;IAC5B,OAAA,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;AAA5E,CAA4E,CAAC;AAM/E;IAeE,sBACE,QAAkB,EAClB,iBAAoC,EACpC,gBAAkC,EAClC,cAA+B;QAVzB,WAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAQ,EAAE,CAAC,CAAC;QAYvG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,+BAAc,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAEK,kCAAW,GAAjB,UAAkB,KAAiB;;;;4BAC1B,qBAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;4BAAnD,sBAAO,SAA4C,EAAC;;;;KACrD;IAED;;;;;;OAMG;IACG,iCAAU,GAAhB;;;;;;wBACQ,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;wBACrB,YAAY,GAAiB,EAAE,CAAC;wBAChC,cAAc,GAAiB,EAAE,CAAC;8BACd,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACd,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;wBACxC,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;;wBAAjC,IAAI,SAA6B,EAAE;4BACjC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC5B;6BAAM;4BACL,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC1B;;;wBANiB,IAAM,CAAA;;;6BAStB,CAAA,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA,EAAvB,yBAAuB;wBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAAoB,YAAY,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,EAAE,CAAC,CAAC;;;;wBAEtG,qBAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAA;;wBAAtD,SAAsD,CAAC;;;;wBAEvD,qBAAM,IAAI,CAAC,+BAA+B,CAAC,YAAY,EAAE,OAAK,CAAC,EAAA;;wBAA/D,SAA+D,CAAC;;;wBAElE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,4BAAqB,YAAY,CAAC,MAAM,YAAS,EAAE,CAAC,CAAC;;;8BAGjD,EAAd,iCAAc;;;6BAAd,CAAA,4BAAc,CAAA;wBAAvB,KAAK;wBACd,qBAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAA;;wBAArC,SAAqC,CAAC;;;wBADpB,IAAc,CAAA;;;;;;KAGnC;IAEK,gCAAS,GAAf,UAAgB,KAAiB;;;;;;wBAC/B,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;wBAExC,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;;6BAA7B,SAA6B,EAA7B,wBAA6B;wBAC/B,qBAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAA;;wBAArC,SAAqC,CAAC;;;wBAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAAmB,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC;;;;wBAE7D,qBAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;;;wBAElD,qBAAM,IAAI,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,EAAE,OAAK,CAAC,EAAA;;wBAA1D,SAA0D,CAAC;;;wBAE7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mCAA4B,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC;;;;;;KAE3E;IAEa,0CAAmB,GAAjC,UAAkC,KAAiB;;;;;4BAC5B,qBAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAA;;wBAAhD,YAAY,GAAG,SAAiC;6BAClD,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAnC,wBAAmC;wBACrC,qBAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,YAAY,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;wBAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAAmB,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC;;;;wBAE7D,qBAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,EAAA;;wBAA3D,SAA2D,CAAC;;;;wBAE5D,qBAAM,IAAI,CAAC,+BAA+B,CAAC,CAAC,KAAK,CAAC,EAAE,OAAK,CAAC,EAAA;;wBAA1D,SAA0D,CAAC;;;wBAE7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mCAA4B,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC;;;;;;KAE3E;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACW,sDAA+B,GAA7C,UAA8C,MAAoB,EAAE,KAAc;;;;;;;wBAChF,IAAI,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,gBAAgB,EAAC,oBAAoB,mDAAG,KAAK,CAAC,CAAA,EAAE;4BACxD,MAAM,KAAK,CAAC;yBACb;wBAEK,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1D,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;8BAEnB,EAAN,iBAAM;;;6BAAN,CAAA,oBAAM,CAAA;wBAAf,KAAK;wBACd,qBAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAA;;wBAArE,SAAqE,CAAC;;;wBADpD,IAAM,CAAA;;;wBAI1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,+EAAwE,UAAU,uJAAwI,MAAM,CAAE;yBAC5O,CAAC,CAAC;;;;;KACJ;IAED;;;;;;;;;;;OAWG;IACW,+CAAwB,GAAtC,UACE,KAAiB,EACjB,UAAkB,EAClB,MAAc,EACd,KAAc;;;;;;wBAGL,OAAO,GAAG,CAAC;;;6BAAE,CAAA,OAAO,IAAI,YAAY,CAAC,yBAAyB,CAAA;6BACjE,CAAA,OAAO,GAAG,CAAC,CAAA,EAAX,wBAAW;wBACb,qBAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,+BAA+B,CAAC,EAAA;;wBAA9D,SAA8D,CAAC;;4BAG3D,qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;;wBAAnC,IAAI,CAAC,CAAC,SAA6B,CAAC,EAAE;4BACpC,gBAAgB,GAAG,SAAS,CAAC;4BAC7B,wBAAS;yBACV;wBAEkB,qBAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAA;;wBAApD,gBAAgB,GAAG,SAAiC,CAAC;wBACrD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;4BAC5C,sBAAO,CAAC,iDAAiD;yBAC1D;;;wBAbsE,OAAO,EAAE,CAAA;;;wBAgBlF,IAAI,CAAC,gBAAgB,EAAE;4BACrB,0FAA0F;4BAC1F,gCAAgC;4BAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gCACf,OAAO,EAAE,iEAA0D,UAAU,oBAAU,KAAK,CAAC,IAAI,qCAA2B,YAAY,CAAC,yBAAyB,2EAA4D,MAAM,CAAE;6BACvO,CAAC,CAAC;4BACH,MAAM,KAAK,CAAC;yBACb;wBAED,yFAAyF;wBACzF,mFAAmF;wBACnF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE,8DAAuD,KAAK,CAAC,IAAI,gFAAsE,YAAY,CAAC,yBAAyB,sEAAuD,MAAM,CAAE;4BACrP,GAAG,EAAE,EAAE,gBAAgB,kBAAA,EAAE;yBAC1B,CAAC,CAAC;wBACH,MAAM,KAAK,CAAC;;;;KACb;IAED;sEACkE;IAC1D,wCAAiB,GAAzB,UAA0B,KAAc;;QACtC,IAAM,SAAS,GAAG,KAA6D,CAAC;QAChF,OAAO,MAAM,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,mCAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,mCAAI,KAAK,CAAC,CAAC;IACnE,CAAC;IAEO,4BAAK,GAAb,UAAc,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAvB,CAAuB,CAAC,CAAC;IAC3D,CAAC;IAEO,sDAA+B,GAAvC,UAAwC,KAAiB;QACvD,IAAM,kBAAkB,GAAG,UAAC,MAAW;YACrC,OAAA,OAAO,MAAM,CAAC,sBAAsB,KAAK,QAAQ;QAAjD,CAAiD,CAAC;QAEpD,IAAM,2BAA2B,GAAG,UAAC,MAAW;YAC9C,OAAA,OAAO,MAAM,CAAC,mBAAmB,KAAK,QAAQ;QAA9C,CAA8C,CAAC;QAEjD,yDAAyD;QACzD,IAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACzD,UAAC,MAAM,IAAK,OAAA,kBAAkB,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAjE,CAAiE,CAC9E,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO;SACR;QAOD,IAAM,iBAAiB,GAA2B,EAAE,CAAC;QACrD,IAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;QAErD,gEAAgE;QAChE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAW;gBAAV,CAAC,QAAA,EAAE,MAAM,QAAA;YAC/C,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;gBAC9B,iBAAiB,CAAC,IAAI,CAAC;oBACrB,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,eAAe,EAAE,MAAM,CAAC,sBAAsB;iBAC/C,CAAC,CAAC;aACJ;iBAAM,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE;gBAC9C,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,iBAAiB,CAAC,OAAO,CAAC,UAAC,EAA+B;gBAA7B,UAAU,gBAAA,EAAE,eAAe,qBAAA;YACtD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;gBACpD,MAAM,IAAI,KAAK,CACb,gBAAS,KAAK,CAAC,IAAI,4CAAkC,UAAU,4EAAkE,eAAe,MAAG,CACpJ,CAAC;aACH;YACD,kEAAkE;YAClE,0BAA0B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,0BAA0B,CAAC,IAAI,GAAG,CAAC,EAAE;YACvC,IAAM,YAAY,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YACtE,MAAM,IAAI,KAAK,CACb,gBAAS,KAAK,CAAC,IAAI,qDAA2C,YAAY,kDAA+C,CAC1H,CAAC;SACH;IACH,CAAC;IAEO,uCAAgB,GAAxB,UAAyB,YAA0B;QACjD,IACE,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC;YACxC,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC;YACxC,YAAY,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC;YACvC,YAAY,CAAC,4BAA4B,CAAC,MAAM,IAAI,CAAC;YACrD,YAAY,CAAC,kCAAkC,CAAC,MAAM,IAAI,CAAC;YAC3D,YAAY,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC;YACxC,YAAY,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EACtC;YACA,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEa,sCAAe,GAA7B,UAA8B,KAAiB;;;;;;4BACF,qBAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAA;;wBAAzE,KAAqC,SAAoC,EAAvE,eAAe,qBAAA,EAAE,aAAa,mBAAA;wBAChC,YAAY,GAAiB;4BACjC,eAAe,EAAE,EAAE;4BACnB,eAAe,EAAE,EAAE;4BACnB,cAAc,EAAE,EAAE;4BAClB,iBAAiB,EAAE,EAAE;4BACrB,qBAAqB,EAAE,EAAE;4BACzB,8BAA8B,EAAE,EAAE;4BAClC,mBAAmB,EAAE,EAAE;4BACvB,4BAA4B,EAAE,EAAE;4BAChC,iBAAiB,EAAE,EAAE;4BACrB,oCAAoC,EAAE,EAAE;4BACxC,kCAAkC,EAAE,EAAE;4BACtC,eAAe,iBAAA;4BACf,aAAa,eAAA;yBACd,CAAC;wBAEqB,qBAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAA;;wBAAnE,cAAc,GAAG,SAAkD;wBACnD,qBAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAA;;wBAAjE,aAAa,GAAG,SAAiD;wBACnD,qBAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,EAAA;;wBAA7D,WAAW,GAAG,SAA+C;wBACnE,KAAW,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;4BACxC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;4BACjD,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gCAC3B,KAAK,GAAG,KAAK,CAAC;gCACZ,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gCACpD,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gCAC5D,IAAI,UAAU,IAAI,kBAAkB,EAAE;oCACpC,mDAAmD;oCACnD,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;oCAC7G,KAAK,GAAG,IAAI,CAAC;iCACd;gCAED,IACE,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,QAAQ,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;oCACrE,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,QAAQ,MAAK,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAC9E;oCACA,0CAA0C;oCAC1C,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;oCAC3G,KAAK,GAAG,IAAI,CAAC;iCACd;gCAED,IAAI,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,0CAAE,MAAM,MAAK,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oCACnF,gDAAgD;oCAChD,YAAY,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oCAClE,KAAK,GAAG,IAAI,CAAC;iCACd;qCAAM,IAAI,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,0CAAE,MAAM,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oCACjF,YAAY,CAAC,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oCACpE,KAAK,GAAG,IAAI,CAAC;iCACd;gCAED,IACE,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,UAAU,CAAA,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oCACzD,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,UAAU;wCACzB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;wCACxB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAClF;oCACA,4CAA4C;oCAC5C,YAAY,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oCAC5D,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC;wCAClC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB;wCACnD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB;wCACrD,kBAAkB,EAAE,MAAM,CAAC,IAAI;qCAChC,CAAC,CAAC;oCACH,KAAK,GAAG,IAAI,CAAC;iCACd;qCAAM,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,UAAU,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oCAClE,YAAY,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oCAC9D,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC;wCACpC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;wCACtC,MAAM,EAAE,IAAI;wCACZ,kBAAkB,EAAE,MAAM,CAAC,IAAI;qCAChC,CAAC,CAAC;oCACH,KAAK,GAAG,IAAI,CAAC;iCACd;gCAED,IAAI,KAAK,EAAE;oCACT,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;iCACtD;gCAED,SAAS;6BACV;4BAED,IAAI,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gCACpD,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gCACtD,SAAS;6BACV;4BAED,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;yBACvD;wBAED,sBAAO,YAAY,EAAC;;;;KACrB;IAEa,yCAAkB,GAAhC,UAAiC,KAAiB;;;;;4BACxB,qBAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAA;;wBAA7D,eAAe,GAAG,SAA2C;wBAC7D,aAAa,GAIb,EAAE,CAAC;wBACH,eAAe,GAIf,EAAE,CAAC;wBACH,eAAe,GAA6C,EAAE,CAAC;wBAC/D,gBAAgB,GAA6C,EAAE,CAAC;wBACtE,KAAW,OAAO,IAAI,eAAe,EAAE;4BACrC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;yBACnE;wBAED,IAAI,KAAK,CAAC,OAAO,EAAE;4BACjB,WAAiC,EAAb,KAAA,KAAK,CAAC,OAAO,EAAb,cAAa,EAAb,IAAa,EAAE;gCAAxB,KAAK;gCACR,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,CAAW,CAAE,CAAC,IAAI,EAAhC,CAAgC,CAAC,CAAC;gCACrE,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gCAClD,eAAe,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;gCAC1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE;oCACxC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,SAAA,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;iCAC3E;6BACF;yBACF;wBAED,KAAW,OAAO,IAAI,eAAe,EAAE;4BAC/B,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;4BACzC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;4BACxD,IACE,CAAC,eAAe,CAAC,iBAAiB,CAAC;gCACnC,OAAO,IAAI,SAAS;gCACpB,OAAO,IAAI,aAAa;gCACxB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gCAC5B,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gCAC7B,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAC3B;gCACA,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;6BAC/D;yBACF;wBAED,sBAAO,EAAE,eAAe,iBAAA,EAAE,aAAa,eAAA,EAAE,EAAC;;;;KAC3C;IAED;;;;;;;OAOG;IACW,oDAA6B,GAA3C,UAA4C,KAAiB,EAAE,YAA0B;;;;;;wBACjF,eAAe,GAAe,YAAY,CAAC,oCAAoC,CAAC,GAAG,CAAC,UAAC,UAAU,IAAK,OAAA;4BACxG,UAAU;yBACX,EAFyG,CAEzG,CAAC,CAAC;wBACH,WAAgD,EAA5B,KAAA,YAAY,CAAC,eAAe,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;4BAAvC,KAAK;4BACd,IAAI,KAAK,CAAC,MAAM,EAAE;gCAChB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;6BACtF;yBACF;8BAEwC,EAAf,mCAAe;;;6BAAf,CAAA,6BAAe,CAAA;wBAA9B,WAAW;wBACpB,qBAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAA;;wBAAtD,SAAsD,CAAC;;;wBAD/B,IAAe,CAAA;;;;;;KAG1C;IAED;;;;OAIG;IACW,8CAAuB,GAArC,UAAsC,KAAiB,EAAE,WAAqB;;;;;;;wBACtE,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,UAAU;4BAC/C,IAAM,YAAY,GAAG,IAAA,6BAAqB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;4BAC9D,IAAI,CAAC,YAAY,EAAE;gCACjB,MAAM,IAAI,KAAK,CAAC,WAAI,KAAK,CAAC,IAAI,+DAAqD,UAAU,CAAE,CAAC,CAAC;6BAClG;4BAED,OAAO,YAAY,CAAC;wBACtB,CAAC,CAAC,CAAC;wBAEG,EAAE,GAAG,IAAI,uBAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;wBAC1E,WAAwC,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;4BAA/B,YAAY;4BACrB,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;yBAChE;wBAEK,sBAAsB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;wBACxE,qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAC,MAAM,IAAK,OAAA,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAA3D,CAA2D,CAAC,EAAA;;wBAA5G,IAAI,GAAG,SAAqG;wBAE5G,MAAM,GAAG,IAAI,GAAG,EAAgD,CAAC;4CAC5D,GAAG;4BACZ,IAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,UAAU,IAAK,OAAC,GAAW,CAAC,UAAU,CAAC,EAAxB,CAAwB,CAAC,CAAC;4BACzE,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BACnC,IAAM,KAAK,GAAG,MAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC;4BACtD,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;4BACjB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;wBALzB,WAAsB,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI;4BAAX,GAAG;oCAAH,GAAG;yBAMb;wBAEK,UAAU,GAAc,EAAE,CAAC;wBACjC,WAA+C,EAA3B,KAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAA3B,cAA2B,EAA3B,IAA2B,EAAE;4BAAtC,KAAK;4BACd,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;gCACnB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCAC5E,IAAI,UAAU,CAAC,MAAM,IAAI,kCAAkC,CAAC,mBAAmB,EAAE;oCAC/E,MAAM;iCACP;6BACF;yBACF;wBAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;4BACzB,MAAM,IAAI,kCAAkC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;yBACnF;;;;;KACF;IA1eD;;;;;OAKG;IACqB,sCAAyB,GAAG,CAAC,AAAJ,CAAK;IAC9B,4CAA+B,GAAG,GAAG,AAAN,CAAO;IAoehE,mBAAC;CAAA,AA5eD,IA4eC;AA5eY,oCAAY"}
@@ -1,9 +1,26 @@
1
1
  export declare class SourceRecordLoader {
2
2
  private logger;
3
3
  load(): Promise<void>;
4
+ /**
5
+ * The removed-reconcile leg: rows previously loaded from source whose declaration no longer
6
+ * exists (`is_loaded_from_source = true AND <key> NOT IN declared`), handled per the table's
7
+ * `onSourceRemoved` policy — delete (default), keep, or update with a patch. The update leg
8
+ * applies the patch only to rows whose fields actually differ (idempotent boots), through
9
+ * `Db.update` so table watchers observe each write.
10
+ */
11
+ private reconcileRemoved;
12
+ /**
13
+ * Resolve and validate the property the sync keys on: `id` unless the table declares
14
+ * `sourceRecordOptions.naturalKey`. A natural key must be schema-unique (a `ColumnOptions.unique`
15
+ * column or a single-column unique index in `Table.indexes`), present on every declaration, and
16
+ * unambiguous across declarations — each violation fails boot loudly by name.
17
+ */
18
+ private validateSyncKey;
4
19
  /**
5
20
  * Compare source record fields against the existing DB record to detect actual changes.
6
- * Only fields present on the source record are compared (ignoring `created`, `updated`).
21
+ * Only fields present on the source record are compared, ignoring `id`, `created`, `updated`
22
+ * (`id` because natural-key adoption keeps the existing row's id — the declared id must not
23
+ * register as perpetual drift; `Db.update` never writes id anyway).
7
24
  * Uses serialization to normalize values (e.g. Reference objects, Moment, JSON) before
8
25
  * comparison, then delegates to {@link findMismatchPath}.
9
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AAYA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAEvD,IAAI;IAmDV;;;;;;;;;OASG;YACW,UAAU;YAmBV,mBAAmB;IA0BjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;CAkB3B"}
1
+ {"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AAYA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAEvD,IAAI;IAiEV;;;;;;OAMG;YACW,gBAAgB;IAoC9B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA+CvB;;;;;;;;;;;OAWG;YACW,UAAU;YAmBV,mBAAmB;IAwBjC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB;CAkB3B"}