@quereus/store 4.5.0 → 4.7.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/README.md +34 -6
- package/dist/src/common/encoding.d.ts +4 -3
- package/dist/src/common/encoding.d.ts.map +1 -1
- package/dist/src/common/encoding.js +17 -13
- package/dist/src/common/encoding.js.map +1 -1
- package/dist/src/common/events.d.ts +31 -25
- package/dist/src/common/events.d.ts.map +1 -1
- package/dist/src/common/events.js +38 -39
- package/dist/src/common/events.js.map +1 -1
- package/dist/src/common/implicit-unique-index.d.ts +80 -0
- package/dist/src/common/implicit-unique-index.d.ts.map +1 -0
- package/dist/src/common/implicit-unique-index.js +148 -0
- package/dist/src/common/implicit-unique-index.js.map +1 -0
- package/dist/src/common/index.d.ts +7 -3
- package/dist/src/common/index.d.ts.map +1 -1
- package/dist/src/common/index.js +5 -2
- package/dist/src/common/index.js.map +1 -1
- package/dist/src/common/json-key.d.ts +30 -2
- package/dist/src/common/json-key.d.ts.map +1 -1
- package/dist/src/common/json-key.js +49 -2
- package/dist/src/common/json-key.js.map +1 -1
- package/dist/src/common/key-builder.d.ts +40 -20
- package/dist/src/common/key-builder.d.ts.map +1 -1
- package/dist/src/common/key-builder.js +31 -23
- package/dist/src/common/key-builder.js.map +1 -1
- package/dist/src/common/kv-store.d.ts +10 -0
- package/dist/src/common/kv-store.d.ts.map +1 -1
- package/dist/src/common/pk-key-resolution.d.ts +348 -0
- package/dist/src/common/pk-key-resolution.d.ts.map +1 -0
- package/dist/src/common/pk-key-resolution.js +481 -0
- package/dist/src/common/pk-key-resolution.js.map +1 -0
- package/dist/src/common/store-module-access-plan.d.ts +32 -0
- package/dist/src/common/store-module-access-plan.d.ts.map +1 -0
- package/dist/src/common/store-module-access-plan.js +428 -0
- package/dist/src/common/store-module-access-plan.js.map +1 -0
- package/dist/src/common/store-module-alter-column.d.ts +23 -0
- package/dist/src/common/store-module-alter-column.d.ts.map +1 -0
- package/dist/src/common/store-module-alter-column.js +389 -0
- package/dist/src/common/store-module-alter-column.js.map +1 -0
- package/dist/src/common/store-module-alter.d.ts +55 -0
- package/dist/src/common/store-module-alter.d.ts.map +1 -0
- package/dist/src/common/store-module-alter.js +504 -0
- package/dist/src/common/store-module-alter.js.map +1 -0
- package/dist/src/common/store-module-base.d.ts +268 -0
- package/dist/src/common/store-module-base.d.ts.map +1 -0
- package/dist/src/common/store-module-base.js +362 -0
- package/dist/src/common/store-module-base.js.map +1 -0
- package/dist/src/common/store-module-catalog.d.ts +269 -0
- package/dist/src/common/store-module-catalog.d.ts.map +1 -0
- package/dist/src/common/store-module-catalog.js +462 -0
- package/dist/src/common/store-module-catalog.js.map +1 -0
- package/dist/src/common/store-module-index-build.d.ts +88 -0
- package/dist/src/common/store-module-index-build.d.ts.map +1 -0
- package/dist/src/common/store-module-index-build.js +280 -0
- package/dist/src/common/store-module-index-build.js.map +1 -0
- package/dist/src/common/store-module-index.d.ts +116 -0
- package/dist/src/common/store-module-index.d.ts.map +1 -0
- package/dist/src/common/store-module-index.js +373 -0
- package/dist/src/common/store-module-index.js.map +1 -0
- package/dist/src/common/store-module-rename.d.ts +49 -0
- package/dist/src/common/store-module-rename.d.ts.map +1 -0
- package/dist/src/common/store-module-rename.js +268 -0
- package/dist/src/common/store-module-rename.js.map +1 -0
- package/dist/src/common/store-module-schema-rewrite.d.ts +57 -0
- package/dist/src/common/store-module-schema-rewrite.d.ts.map +1 -0
- package/dist/src/common/store-module-schema-rewrite.js +140 -0
- package/dist/src/common/store-module-schema-rewrite.js.map +1 -0
- package/dist/src/common/store-module-schema-sync.d.ts +232 -0
- package/dist/src/common/store-module-schema-sync.d.ts.map +1 -0
- package/dist/src/common/store-module-schema-sync.js +529 -0
- package/dist/src/common/store-module-schema-sync.js.map +1 -0
- package/dist/src/common/store-module.d.ts +43 -909
- package/dist/src/common/store-module.d.ts.map +1 -1
- package/dist/src/common/store-module.js +184 -3276
- package/dist/src/common/store-module.js.map +1 -1
- package/dist/src/common/store-table-base.d.ts +539 -0
- package/dist/src/common/store-table-base.d.ts.map +1 -0
- package/dist/src/common/store-table-base.js +900 -0
- package/dist/src/common/store-table-base.js.map +1 -0
- package/dist/src/common/store-table-constraints.d.ts +237 -0
- package/dist/src/common/store-table-constraints.d.ts.map +1 -0
- package/dist/src/common/store-table-constraints.js +624 -0
- package/dist/src/common/store-table-constraints.js.map +1 -0
- package/dist/src/common/store-table-scan.d.ts +452 -0
- package/dist/src/common/store-table-scan.d.ts.map +1 -0
- package/dist/src/common/store-table-scan.js +901 -0
- package/dist/src/common/store-table-scan.js.map +1 -0
- package/dist/src/common/store-table.d.ts +71 -1144
- package/dist/src/common/store-table.d.ts.map +1 -1
- package/dist/src/common/store-table.js +168 -2385
- package/dist/src/common/store-table.js.map +1 -1
- package/dist/src/testing/index.d.ts +12 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +12 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/kv-assert.d.ts +19 -0
- package/dist/src/testing/kv-assert.d.ts.map +1 -0
- package/dist/src/testing/kv-assert.js +25 -0
- package/dist/src/testing/kv-assert.js.map +1 -0
- package/dist/src/testing/kv-conformance.d.ts.map +1 -1
- package/dist/src/testing/kv-conformance.js +1 -15
- package/dist/src/testing/kv-conformance.js.map +1 -1
- package/dist/src/testing/kv-provider-conformance.d.ts +54 -0
- package/dist/src/testing/kv-provider-conformance.d.ts.map +1 -0
- package/dist/src/testing/kv-provider-conformance.js +183 -0
- package/dist/src/testing/kv-provider-conformance.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-table-base.js","sourceRoot":"","sources":["../../../src/common/store-table-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secondary-index maintenance and UNIQUE enforcement for the KVStore-backed
|
|
3
|
+
* virtual table — the two halves of keeping a table's indexes and uniqueness
|
|
4
|
+
* invariants true across a write. Index upkeep is how UNIQUE is enforced (a
|
|
5
|
+
* conflict is answered by a seek when an index soundly covers the constraint's
|
|
6
|
+
* enforcement collations, and by a data-store scan otherwise), and a REPLACE
|
|
7
|
+
* eviction needs both.
|
|
8
|
+
*
|
|
9
|
+
* Third layer of the store-table chain:
|
|
10
|
+
* StoreTableBase -> StoreTableScan -> StoreTableConstraints -> StoreTable
|
|
11
|
+
*/
|
|
12
|
+
import { ConflictResolution, type Row, type SqlValue, type UpdateResult, type BackingRowChange } from '@quereus/quereus';
|
|
13
|
+
import { StoreTableScan } from './store-table-scan.js';
|
|
14
|
+
/**
|
|
15
|
+
* Index-maintenance and UNIQUE-enforcement layer of the generic KVStore-backed
|
|
16
|
+
* virtual table.
|
|
17
|
+
*
|
|
18
|
+
* Conflict detection compares under the constraint's ENFORCEMENT collations,
|
|
19
|
+
* which need not match the collations the index keys under — every index-seek
|
|
20
|
+
* shortcut here is gated on that agreement and falls back to the data-store scan
|
|
21
|
+
* when it cannot be shown.
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class StoreTableConstraints extends StoreTableScan {
|
|
24
|
+
private readonly predicateCache;
|
|
25
|
+
private readonly indexPredicateCache;
|
|
26
|
+
/**
|
|
27
|
+
* Update secondary indexes after a row change.
|
|
28
|
+
*
|
|
29
|
+
* For PK-change UPDATE, `oldPk` (where the existing entry lives) and `newPk`
|
|
30
|
+
* (where the relocated entry will live) differ; using a single pk for both
|
|
31
|
+
* sides leaks the old entry. Other paths pass the same pk for both.
|
|
32
|
+
*/
|
|
33
|
+
protected updateSecondaryIndexes(inTransaction: boolean, oldRow: Row | null, newRow: Row | null, oldPk: SqlValue[], newPk?: SqlValue[]): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the compiled predicate for a partial-UNIQUE constraint, or undefined
|
|
36
|
+
* when the constraint covers the full table. Compilation is memoized per
|
|
37
|
+
* UniqueConstraintSchema instance so the hot UNIQUE-check path doesn't recompile.
|
|
38
|
+
*/
|
|
39
|
+
private compileFor;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the compiled predicate for a partial secondary index, or undefined
|
|
42
|
+
* for a full index. Compilation is memoized per IndexSchema instance so the hot
|
|
43
|
+
* DML index-maintenance path doesn't recompile.
|
|
44
|
+
*/
|
|
45
|
+
private compileIndexFor;
|
|
46
|
+
/**
|
|
47
|
+
* Check if two PK arrays name the same row. A semantic-ordering member compares
|
|
48
|
+
* through its type's `compare` (see {@link resolvePkSemanticEquality}) so
|
|
49
|
+
* differently-spelled equal values ('PT1H' / 'PT60M') answer "same row",
|
|
50
|
+
* agreeing with the physical key identity {@link encodeDataKey} produces; every
|
|
51
|
+
* other member keeps the original strict `!==`.
|
|
52
|
+
*/
|
|
53
|
+
protected keysEqual(a: SqlValue[], b: SqlValue[]): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Per-constrained-column comparison functions for one UNIQUE constraint: the
|
|
56
|
+
* type's `compare` for a semantic-ordering column (so 'PT1H' conflicts with
|
|
57
|
+
* 'PT60M', matching the memory backend's typed BTree), else the enforcement
|
|
58
|
+
* collation the caller resolved (`resolveUniqueEnforcementCollations`) through
|
|
59
|
+
* `compareSqlValuesFast` — the exact comparison every finder used before.
|
|
60
|
+
*
|
|
61
|
+
* Thin wrapper over the engine's `uniqueEnforcementComparators`, which memory
|
|
62
|
+
* and the isolation overlay share so the three backends cannot drift.
|
|
63
|
+
*/
|
|
64
|
+
private uniqueColumnComparators;
|
|
65
|
+
/**
|
|
66
|
+
* Returns true if any column covered by a UNIQUE constraint differs between
|
|
67
|
+
* oldRow and newRow, or — for partial UNIQUE — any column referenced by the
|
|
68
|
+
* partial predicate differs (which can transition the row across the
|
|
69
|
+
* predicate scope and re-trigger the uniqueness check).
|
|
70
|
+
*/
|
|
71
|
+
protected uniqueColumnsChanged(oldRow: Row, newRow: Row): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Enforce table-level UNIQUE constraints against the prospective newRow.
|
|
74
|
+
* Honors `onConflict`: IGNORE returns an ok-with-undefined-row; REPLACE
|
|
75
|
+
* deletes the conflicting row(s) and continues; otherwise returns a
|
|
76
|
+
* constraint result. Returns null when all constraints pass.
|
|
77
|
+
*
|
|
78
|
+
* Rows whose PK is in `selfPks` are skipped (the row being inserted/updated).
|
|
79
|
+
* NULL in any covered column skips that constraint (multiple NULLs are allowed
|
|
80
|
+
* per SQL standard).
|
|
81
|
+
*
|
|
82
|
+
* Reads through the transaction coordinator's pending writes when active so
|
|
83
|
+
* intra-transaction duplicates are detected.
|
|
84
|
+
*
|
|
85
|
+
* REPLACE evictions (rows at OTHER PKs) are deleted from storage and pushed onto
|
|
86
|
+
* `evicted` so the DML executor runs the full delete pipeline for each
|
|
87
|
+
* (change-tracking, row-time MV maintenance, FK cascade, auto-events).
|
|
88
|
+
*/
|
|
89
|
+
protected checkUniqueConstraints(inTransaction: boolean, newRow: Row, selfPks: SqlValue[][], onConflict: ConflictResolution | undefined, evicted: Row[]): Promise<UpdateResult | null>;
|
|
90
|
+
/**
|
|
91
|
+
* Route one UNIQUE constraint's conflict search to the cheapest SOUND finder,
|
|
92
|
+
* in descending preference:
|
|
93
|
+
*
|
|
94
|
+
* 1. A linked row-time covering MV — its backing table (hosted by any
|
|
95
|
+
* backing-host-capable module — memory by default, this store module under
|
|
96
|
+
* `using store` — queried through the db with reads-own-writes) answers the
|
|
97
|
+
* uniqueness question, mirroring the memory enforcement path.
|
|
98
|
+
* 2. A physical secondary index realizing the constraint — one prefix seek
|
|
99
|
+
* instead of a full table scan (see {@link findIndexForUniqueConstraint}).
|
|
100
|
+
* 3. The full data-store scan ({@link findUniqueConflict}) — always correct,
|
|
101
|
+
* O(rows) per checked row.
|
|
102
|
+
*
|
|
103
|
+
* Every finder returns the SAME `{pk, row}` shape, so the caller's conflict
|
|
104
|
+
* action (ABORT / IGNORE / REPLACE eviction) is finder-independent.
|
|
105
|
+
*/
|
|
106
|
+
private findUniqueConflictFor;
|
|
107
|
+
/**
|
|
108
|
+
* The `schema.indexes` entry whose physical index store can serve `uc`'s
|
|
109
|
+
* conflict search as a point seek, or undefined when none can.
|
|
110
|
+
*
|
|
111
|
+
* Every non-derived UNIQUE is realized by an index in the materialized schema
|
|
112
|
+
* — a hidden `_uc_*`, or the explicit index it reuses when one covers the same
|
|
113
|
+
* columns (see {@link withImplicitUniqueIndexes} /
|
|
114
|
+
* {@link findReusableIndexForUnique}) — so, like the memory backend, a plain
|
|
115
|
+
* column- or table-level `UNIQUE` is index-servable, not only an explicit
|
|
116
|
+
* `CREATE INDEX`. A UC is index-servable when:
|
|
117
|
+
*
|
|
118
|
+
* - it is index-derived (`derivedFromIndex`, from `CREATE UNIQUE INDEX`) and
|
|
119
|
+
* its named index is still present — the index's partial predicate then
|
|
120
|
+
* equals the constraint's by construction (`appendIndexToTableSchema`); or
|
|
121
|
+
* - some index's columns equal `uc.columns` positionally AND whose predicate
|
|
122
|
+
* is the SAME object as `uc.predicate` (reference identity — the implicit
|
|
123
|
+
* materializer sets it that way). For a FULL UNIQUE that is
|
|
124
|
+
* `undefined === undefined`, which also admits any user full index over the
|
|
125
|
+
* same columns. For a PARTIAL `unique(...) where p` it admits only the
|
|
126
|
+
* co-scoped `_uc_*` (which holds exactly the in-scope rows); an arbitrary
|
|
127
|
+
* user partial index with a DIFFERENT predicate object stays conservative
|
|
128
|
+
* (declined → full scan), because it physically omits rows the constraint
|
|
129
|
+
* still covers. The serving index need not be UNIQUE — a plain index over
|
|
130
|
+
* the constrained columns still holds every in-scope row.
|
|
131
|
+
*
|
|
132
|
+
* Collation guard (see {@link indexSeekHonorsEnforcementCollation}) may still
|
|
133
|
+
* reject the found index, which routes the check back to the full scan.
|
|
134
|
+
*/
|
|
135
|
+
private findIndexForUniqueConstraint;
|
|
136
|
+
/**
|
|
137
|
+
* True when a point seek into `index` returns a SUPERSET of `uc`'s true conflict
|
|
138
|
+
* set — the only condition under which the seek may replace the full scan.
|
|
139
|
+
*
|
|
140
|
+
* An index key's leading (index-column) bytes are encoded under the index's own
|
|
141
|
+
* per-column key collations (`resolveIndexKeyCollations`), and the constraint
|
|
142
|
+
* re-validates candidates under its enforcement collations
|
|
143
|
+
* (`uniqueEnforcementCollations` — the index's per-column COLLATE for an
|
|
144
|
+
* index-derived UC, else the declared column collation). For every index a
|
|
145
|
+
* *designed* path can hand this method, the two resolve identically by
|
|
146
|
+
* construction — the seek window is then exactly the C-equal set — so the check
|
|
147
|
+
* is a plain per-column equality of the two resolutions (upper-cased; never-text
|
|
148
|
+
* columns exempt, their bytes being type-native).
|
|
149
|
+
*
|
|
150
|
+
* Kept rather than deleted because one undesigned path can still disagree:
|
|
151
|
+
* `withImplicitUniqueIndexes` skips materializing a `_uc_*` whose NAME is already
|
|
152
|
+
* taken (a user index literally named `_uc_email`, or a named UC colliding with an
|
|
153
|
+
* index name), and the column-set fallback in
|
|
154
|
+
* {@link findIndexForUniqueConstraint} can then hand this a same-columns index
|
|
155
|
+
* whose key collations differ from the enforcement collations. A false `true`
|
|
156
|
+
* there silently accepts a duplicate; a decline only costs the full scan.
|
|
157
|
+
*/
|
|
158
|
+
private indexSeekHonorsEnforcementCollation;
|
|
159
|
+
/**
|
|
160
|
+
* The index analogue of {@link findUniqueConflict}: seek the index realizing
|
|
161
|
+
* `uc` at the point formed by `newRow`'s constrained-column values, and
|
|
162
|
+
* re-validate each resolved candidate exactly as the full scan does.
|
|
163
|
+
*
|
|
164
|
+
* The seek encodes ALL of `uc.columns` (positionally aligned with the index's
|
|
165
|
+
* columns, guaranteed by `appendIndexToTableSchema` / the column-set match in
|
|
166
|
+
* {@link findIndexForUniqueConstraint}) as a leading prefix of the index key,
|
|
167
|
+
* under the same key collation and per-column DESC directions
|
|
168
|
+
* {@link updateSecondaryIndexes} used to write it. The remaining suffix is the
|
|
169
|
+
* row's PK, so the window spans every entry sharing those column values.
|
|
170
|
+
* {@link iterateEffective} merges this transaction's pending index puts/deletes
|
|
171
|
+
* over the committed entries, giving read-your-own-writes; each entry resolves
|
|
172
|
+
* to its LIVE row through the data key stored as the entry's value.
|
|
173
|
+
*
|
|
174
|
+
* The seek only narrows the CANDIDATE set to a superset (guaranteed by
|
|
175
|
+
* {@link indexSeekHonorsEnforcementCollation}); the authoritative comparison is
|
|
176
|
+
* the identical self-PK exclusion, per-column enforcement-collation compare,
|
|
177
|
+
* and partial-predicate scope check the full scan performs. A partial index
|
|
178
|
+
* already excludes out-of-scope rows physically — the predicate re-check is
|
|
179
|
+
* kept as defense in depth.
|
|
180
|
+
*
|
|
181
|
+
* Returns {@link INDEX_UNUSABLE} rather than a (possibly wrong) answer when an
|
|
182
|
+
* entry carries a legacy empty value.
|
|
183
|
+
*/
|
|
184
|
+
private findUniqueConflictViaIndex;
|
|
185
|
+
/**
|
|
186
|
+
* Scan committed + pending data rows for a row matching `newRow` on
|
|
187
|
+
* `uc.columns` whose PK is not in `selfPks`. For partial UNIQUE, candidates
|
|
188
|
+
* whose row does not satisfy the predicate are skipped. Returns the first
|
|
189
|
+
* match or null.
|
|
190
|
+
*/
|
|
191
|
+
private findUniqueConflict;
|
|
192
|
+
/**
|
|
193
|
+
* Find a UNIQUE conflict through a linked row-time covering MV's backing table
|
|
194
|
+
* (the store analogue of the memory `checkUniqueViaMaterializedView`). The
|
|
195
|
+
* backing scan yields candidate conflicting **source** PKs (reads-own-writes via
|
|
196
|
+
* the backing's coordinated connection); each is validated against the *live*
|
|
197
|
+
* store row (committed + this transaction's pending overlay) so a backing entry
|
|
198
|
+
* that lags a row deleted/updated internally this statement is skipped rather
|
|
199
|
+
* than raised as a false conflict. Returns the first real conflict or null.
|
|
200
|
+
*/
|
|
201
|
+
private findUniqueConflictViaCoveringMv;
|
|
202
|
+
/**
|
|
203
|
+
* Declared secondary-UNIQUE enforcement for maintenance writes — the store
|
|
204
|
+
* mirror of the memory manager's `enforceSecondaryUniqueOnMaintenance` (see
|
|
205
|
+
* `vtab/backing-host.ts` § Constraint validation for the contract and
|
|
206
|
+
* docs/mv-constraints.md § Derived-row constraint validation for the
|
|
207
|
+
* semantics). Called by `StoreBackingHost.applyMaintenance` AFTER the op
|
|
208
|
+
* batch lands in the coordinator's pending state: post-batch is load-bearing
|
|
209
|
+
* (a `replace-all` diff applies puts before deletes, so a per-op check would
|
|
210
|
+
* false-positive when the derived set moves a unique value between primary
|
|
211
|
+
* keys), and checking only the WRITTEN images is complete (pre-existing
|
|
212
|
+
* contents already satisfied the constraint).
|
|
213
|
+
*
|
|
214
|
+
* Reuses {@link findUniqueConflict} — pending-overlay reads, per-column
|
|
215
|
+
* collations, NULL-pass, partial-predicate scope, self-PK exclusion — with
|
|
216
|
+
* the covering-MV route deliberately bypassed: a covering MV over THIS table
|
|
217
|
+
* is cascade-maintained only after the batch returns, so it lags the batch
|
|
218
|
+
* and would miss a same-batch colliding pair. The conflict action is a hard
|
|
219
|
+
* abort (a derivation write carries no user OR clause, and a declared
|
|
220
|
+
* `on conflict replace`/`ignore` default must not evict or drop derived
|
|
221
|
+
* rows). Per-image cost is one effective full scan: unlike the DML path
|
|
222
|
+
* ({@link findUniqueConflictFor}), this one is NOT routed through
|
|
223
|
+
* {@link findUniqueConflictViaIndex}, because a backing table keeps no
|
|
224
|
+
* secondary indexes by design — there is never an index store to seek.
|
|
225
|
+
*
|
|
226
|
+
* Zero overhead when the table declares no secondary UNIQUE (every MV-sugar
|
|
227
|
+
* backing, and most maintained tables): one empty-array check.
|
|
228
|
+
*/
|
|
229
|
+
enforceSecondaryUniqueForMaintenance(changes: readonly BackingRowChange[]): Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Fully delete the row at `pk` (data + secondary indexes + stats + delete event).
|
|
232
|
+
* Used by REPLACE conflict resolution to evict a conflicting unique row before
|
|
233
|
+
* the caller's insert/update proceeds.
|
|
234
|
+
*/
|
|
235
|
+
protected deleteRowAt(inTransaction: boolean, pk: SqlValue[], oldRow: Row): Promise<void>;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=store-table-constraints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-table-constraints.d.ts","sourceRoot":"","sources":["../../../src/common/store-table-constraints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACN,kBAAkB,EAalB,KAAK,GAAG,EACR,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,MAAM,kBAAkB,CAAC;AAc1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAavD;;;;;;;;GAQG;AACH,8BAAsB,qBAAsB,SAAQ,cAAc;IAKjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqE;IAMpG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+D;IAEnG;;;;;;OAMG;cACa,sBAAsB,CACrC,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,GAAG,GAAG,IAAI,EAClB,MAAM,EAAE,GAAG,GAAG,IAAI,EAClB,KAAK,EAAE,QAAQ,EAAE,EACjB,KAAK,GAAE,QAAQ,EAAU,GACvB,OAAO,CAAC,IAAI,CAAC;IAqEhB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO;IAS1D;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAmBjE;;;;;;;;;;;;;;;;OAgBG;cACa,sBAAsB,CACrC,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,QAAQ,EAAE,EAAE,EACrB,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAC1C,OAAO,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA2C/B;;;;;;;;;;;;;;;OAeG;YACW,qBAAqB;IAkBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,OAAO,CAAC,4BAA4B;IAoCpC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,mCAAmC;IAe3C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;YACW,0BAA0B;IA8CxC;;;;;OAKG;YACW,kBAAkB;IAwDhC;;;;;;;;OAQG;YACW,+BAA+B;IAiC7C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,oCAAoC,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/F;;;;OAIG;cACa,WAAW,CAC1B,aAAa,EAAE,OAAO,EACtB,EAAE,EAAE,QAAQ,EAAE,EACd,MAAM,EAAE,GAAG,GACT,OAAO,CAAC,IAAI,CAAC;CAoBhB"}
|