@quereus/isolation 4.13.0 → 4.14.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/dist/src/alter-migration.d.ts +48 -21
- package/dist/src/alter-migration.d.ts.map +1 -1
- package/dist/src/alter-migration.js +123 -49
- package/dist/src/alter-migration.js.map +1 -1
- package/dist/src/filter-info.d.ts +12 -4
- package/dist/src/filter-info.d.ts.map +1 -1
- package/dist/src/filter-info.js +11 -3
- package/dist/src/filter-info.js.map +1 -1
- package/dist/src/flush.d.ts.map +1 -1
- package/dist/src/flush.js +14 -10
- package/dist/src/flush.js.map +1 -1
- package/dist/src/isolated-table.d.ts +58 -55
- package/dist/src/isolated-table.d.ts.map +1 -1
- package/dist/src/isolated-table.js +111 -164
- package/dist/src/isolated-table.js.map +1 -1
- package/dist/src/isolation-module.d.ts +27 -3
- package/dist/src/isolation-module.d.ts.map +1 -1
- package/dist/src/isolation-module.js +64 -23
- package/dist/src/isolation-module.js.map +1 -1
- package/dist/src/pk-probe.d.ts +71 -0
- package/dist/src/pk-probe.d.ts.map +1 -0
- package/dist/src/pk-probe.js +73 -0
- package/dist/src/pk-probe.js.map +1 -0
- package/package.json +3 -3
|
@@ -128,6 +128,18 @@ export declare class IsolationModule implements VirtualTableModule<IsolatedTable
|
|
|
128
128
|
ensureBackingForAttach?: (db: Database, schemaName: string, tableName: string, backingSchema: TableSchema) => Promise<void>;
|
|
129
129
|
retireBackingForAttach?: (db: Database, schemaName: string, tableName: string, plainSchema: TableSchema) => Promise<void>;
|
|
130
130
|
discardBackingForAttach?: (db: Database, schemaName: string, tableName: string) => Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Create-time schema-normalization forward
|
|
133
|
+
* (see {@link VirtualTableModule.normalizeCreateSchema}) — assigned only when the
|
|
134
|
+
* underlying implements it, mirroring presence like the seams above. MUST be
|
|
135
|
+
* forwarded: the wrapper's {@link create} delegates to the underlying's `create`,
|
|
136
|
+
* which applies the rewrite, so a wrapper that did NOT advertise the hook would
|
|
137
|
+
* make the engine's "what would this schema become?" probe answer `verbatim` while
|
|
138
|
+
* the actual create still rewrote — the exact asymmetry the hook exists to close
|
|
139
|
+
* (a materialized view over a store-hosted backing would refill on every reopen).
|
|
140
|
+
* Pure schema→schema, no overlay bookkeeping.
|
|
141
|
+
*/
|
|
142
|
+
normalizeCreateSchema?: (tableSchema: TableSchema) => TableSchema;
|
|
131
143
|
constructor(config: IsolationModuleConfig);
|
|
132
144
|
/**
|
|
133
145
|
* Forwards a concurrency-mode hint so a host that wraps a reentrant module
|
|
@@ -609,6 +621,17 @@ export declare class IsolationModule implements VirtualTableModule<IsolatedTable
|
|
|
609
621
|
* only recover by rolling back.
|
|
610
622
|
*/
|
|
611
623
|
private issuerEffectiveRows;
|
|
624
|
+
/**
|
|
625
|
+
* The rows the underlying's OWN data-dependent DDL decisions read when
|
|
626
|
+
* {@link issuerEffectiveRows} hands it nothing: its committed rows. Behind this layer a
|
|
627
|
+
* connection's writes reach the underlying only at commit, so with nothing staged by the
|
|
628
|
+
* issuer the underlying's effective view IS the committed set — for both bundled
|
|
629
|
+
* underlyings (the memory table's DDL-connection view, the store's buffered-plus-committed
|
|
630
|
+
* scan). Used to mirror the `set not null` backfill gate the underlying will apply
|
|
631
|
+
* (`deriveAlterMigrationPlan`), which decides whether the committed keys move. Undefined
|
|
632
|
+
* when the underlying is not connected or cannot be scanned.
|
|
633
|
+
*/
|
|
634
|
+
private committedRowsOf;
|
|
612
635
|
/**
|
|
613
636
|
* Creates an index on the underlying table, then hands the same index to every
|
|
614
637
|
* per-connection overlay so it (and, for a UNIQUE index, the constraint derived from it)
|
|
@@ -755,9 +778,10 @@ export declare class IsolationModule implements VirtualTableModule<IsolatedTable
|
|
|
755
778
|
* `runtime/emit/alter-table.ts`.
|
|
756
779
|
*
|
|
757
780
|
* **Row-content validation.** The row-validating arms (`add constraint … unique`,
|
|
758
|
-
* `alter column … set collate`
|
|
759
|
-
* underlying's committed ones — see
|
|
760
|
-
* check before it mutates anything,
|
|
781
|
+
* `alter column … set collate` / `set not null` on a key member) judge the ISSUING
|
|
782
|
+
* connection's effective rows, not the underlying's committed ones — see
|
|
783
|
+
* {@link issuerEffectiveRows}. The underlying runs that check before it mutates anything,
|
|
784
|
+
* so the atomic-abort guarantee above still holds.
|
|
761
785
|
*/
|
|
762
786
|
alterTable(db: Database, schemaName: string, tableName: string, change: SchemaChangeInfo, rows?: EffectiveRowSource): Promise<TableSchema>;
|
|
763
787
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolation-module.d.ts","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,IAAI,WAAW,EAAE,kBAAkB,EAAgB,qBAAqB,EAAE,oBAAoB,EAAE,gBAAgB,EAAO,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9Y,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3H,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"isolation-module.d.ts","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { MemoryTableModule, PhysicalType, QuereusError, StatusCode } from '@quer
|
|
|
2
2
|
import { IsolatedTable } from './isolated-table.js';
|
|
3
3
|
import { applyOverlayToUnderlying } from './flush.js';
|
|
4
4
|
import { iterateEffectiveRows, makePkKeySerializer } from './overlay-rows.js';
|
|
5
|
+
import { makeFullScanFilterInfo } from './filter-info.js';
|
|
5
6
|
import { applyPkRekeyMarkerDrops, assertColumnNameNotTombstone, buildAlterPoisonMessage, deriveAlterMigrationPlan, migrateOverlayForward, planPkRekeyMarkerDrops, reinsertPkRekeyMarkers, validateOverlayMigration, } from './alter-migration.js';
|
|
6
7
|
let overlayIdCounter = 0;
|
|
7
8
|
/**
|
|
@@ -147,6 +148,18 @@ export class IsolationModule {
|
|
|
147
148
|
ensureBackingForAttach;
|
|
148
149
|
retireBackingForAttach;
|
|
149
150
|
discardBackingForAttach;
|
|
151
|
+
/**
|
|
152
|
+
* Create-time schema-normalization forward
|
|
153
|
+
* (see {@link VirtualTableModule.normalizeCreateSchema}) — assigned only when the
|
|
154
|
+
* underlying implements it, mirroring presence like the seams above. MUST be
|
|
155
|
+
* forwarded: the wrapper's {@link create} delegates to the underlying's `create`,
|
|
156
|
+
* which applies the rewrite, so a wrapper that did NOT advertise the hook would
|
|
157
|
+
* make the engine's "what would this schema become?" probe answer `verbatim` while
|
|
158
|
+
* the actual create still rewrote — the exact asymmetry the hook exists to close
|
|
159
|
+
* (a materialized view over a store-hosted backing would refill on every reopen).
|
|
160
|
+
* Pure schema→schema, no overlay bookkeeping.
|
|
161
|
+
*/
|
|
162
|
+
normalizeCreateSchema;
|
|
150
163
|
constructor(config) {
|
|
151
164
|
this.underlying = config.underlying;
|
|
152
165
|
this.overlayModule = config.overlay ?? new MemoryTableModule();
|
|
@@ -155,6 +168,10 @@ export class IsolationModule {
|
|
|
155
168
|
if (underlyingGetBackingHost) {
|
|
156
169
|
this.getBackingHost = (db, schemaName, tableName) => underlyingGetBackingHost.call(this.underlying, db, schemaName, tableName);
|
|
157
170
|
}
|
|
171
|
+
const underlyingNormalize = this.underlying.normalizeCreateSchema;
|
|
172
|
+
if (underlyingNormalize) {
|
|
173
|
+
this.normalizeCreateSchema = (tableSchema) => underlyingNormalize.call(this.underlying, tableSchema);
|
|
174
|
+
}
|
|
158
175
|
const underlyingCreateBacking = this.underlying.createBacking;
|
|
159
176
|
if (underlyingCreateBacking) {
|
|
160
177
|
this.createBacking = async (db, tableSchema) => {
|
|
@@ -976,6 +993,22 @@ export class IsolationModule {
|
|
|
976
993
|
return undefined;
|
|
977
994
|
return this.effectiveRowsFor(db, underlyingTable, overlayState);
|
|
978
995
|
}
|
|
996
|
+
/**
|
|
997
|
+
* The rows the underlying's OWN data-dependent DDL decisions read when
|
|
998
|
+
* {@link issuerEffectiveRows} hands it nothing: its committed rows. Behind this layer a
|
|
999
|
+
* connection's writes reach the underlying only at commit, so with nothing staged by the
|
|
1000
|
+
* issuer the underlying's effective view IS the committed set — for both bundled
|
|
1001
|
+
* underlyings (the memory table's DDL-connection view, the store's buffered-plus-committed
|
|
1002
|
+
* scan). Used to mirror the `set not null` backfill gate the underlying will apply
|
|
1003
|
+
* (`deriveAlterMigrationPlan`), which decides whether the committed keys move. Undefined
|
|
1004
|
+
* when the underlying is not connected or cannot be scanned.
|
|
1005
|
+
*/
|
|
1006
|
+
committedRowsOf(state) {
|
|
1007
|
+
const table = state?.underlyingTable;
|
|
1008
|
+
if (!table?.query)
|
|
1009
|
+
return undefined;
|
|
1010
|
+
return () => table.query(makeFullScanFilterInfo());
|
|
1011
|
+
}
|
|
979
1012
|
/**
|
|
980
1013
|
* Creates an index on the underlying table, then hands the same index to every
|
|
981
1014
|
* per-connection overlay so it (and, for a UNIQUE index, the constraint derived from it)
|
|
@@ -1228,9 +1261,10 @@ export class IsolationModule {
|
|
|
1228
1261
|
* `runtime/emit/alter-table.ts`.
|
|
1229
1262
|
*
|
|
1230
1263
|
* **Row-content validation.** The row-validating arms (`add constraint … unique`,
|
|
1231
|
-
* `alter column … set collate`
|
|
1232
|
-
* underlying's committed ones — see
|
|
1233
|
-
* check before it mutates anything,
|
|
1264
|
+
* `alter column … set collate` / `set not null` on a key member) judge the ISSUING
|
|
1265
|
+
* connection's effective rows, not the underlying's committed ones — see
|
|
1266
|
+
* {@link issuerEffectiveRows}. The underlying runs that check before it mutates anything,
|
|
1267
|
+
* so the atomic-abort guarantee above still holds.
|
|
1234
1268
|
*/
|
|
1235
1269
|
async alterTable(db, schemaName, tableName, change, rows) {
|
|
1236
1270
|
if (!this.underlying.alterTable) {
|
|
@@ -1281,7 +1315,7 @@ export class IsolationModule {
|
|
|
1281
1315
|
// The engine treats an UNSUPPORTED `alterTable` refusal as "use the shadow-table
|
|
1282
1316
|
// rebuild fallback" (see runAlterPrimaryKey in runtime/emit/alter-table.ts), which
|
|
1283
1317
|
// copies committed rows only — it would silently drop this transaction's staged
|
|
1284
|
-
// writes. See docs/module-authoring.md § alterPrimaryKey.
|
|
1318
|
+
// writes. See docs/module-authoring-schema-changes.md § alterPrimaryKey.
|
|
1285
1319
|
//
|
|
1286
1320
|
// NOTE: an already-poisoned own overlay leaves `ownEntry` undefined (skipped above), so this
|
|
1287
1321
|
// refusal never fires for it — harmless while poison is terminal (rollback is the only exit,
|
|
@@ -1291,11 +1325,23 @@ export class IsolationModule {
|
|
|
1291
1325
|
throw new QuereusError(`Cannot alter the primary key of '${schemaName}.${tableName}' while this transaction has uncommitted changes staged for it; commit or roll back first.`, StatusCode.BUSY);
|
|
1292
1326
|
}
|
|
1293
1327
|
assertColumnNameNotTombstone(this, schemaName, tableName, change);
|
|
1328
|
+
const underlyingState = this.getUnderlyingState(schemaName, tableName);
|
|
1329
|
+
// Hand the underlying the issuer's effective rows so its own row-content checks
|
|
1330
|
+
// (`add constraint … unique`, `alter column … set collate` / `set not null`) see the
|
|
1331
|
+
// transaction's pending rows and skip the ones it has deleted. An outer wrapper's source
|
|
1332
|
+
// wins if one was supplied. Built before the migration plan, which reads the same stream
|
|
1333
|
+
// to learn whether a `set not null` backfill will actually move the committed keys.
|
|
1334
|
+
let rowSource = rows ?? (underlyingState
|
|
1335
|
+
? this.issuerEffectiveRows(db, schemaName, tableName, underlyingState.underlyingTable)
|
|
1336
|
+
: undefined);
|
|
1294
1337
|
// Precompute every per-change-type migration constant, from the PRE-alter schema — so the
|
|
1295
1338
|
// whole plan is valid here, before the underlying is mutated, and the same plan drives the
|
|
1296
1339
|
// post-mutation migration. The attribute arms read a to-be-migrated overlay's schema, never
|
|
1297
|
-
// a skipped poisoned overlay's (possibly stale pre-alter) one.
|
|
1298
|
-
|
|
1340
|
+
// a skipped poisoned overlay's (possibly stale pre-alter) one. The plan is also told which
|
|
1341
|
+
// rows the underlying's own data-dependent decisions will read — the issuer's effective rows
|
|
1342
|
+
// when it has staged work, else the committed set — so the `set not null` re-key arm gates
|
|
1343
|
+
// exactly as the underlying's backfill does.
|
|
1344
|
+
const migration = await deriveAlterMigrationPlan(change, db, tableName, toMigrate, rowSource ?? this.committedRowsOf(underlyingState));
|
|
1299
1345
|
// Tier 2: validate the ISSUER's own overlay BEFORE mutating the shared underlying.
|
|
1300
1346
|
// Any throw here (CONSTRAINT backfill, MISMATCH conversion, or INTERNAL tombstone guard)
|
|
1301
1347
|
// propagates while underlying + catalog + every overlay are still untouched — the companion
|
|
@@ -1303,28 +1349,23 @@ export class IsolationModule {
|
|
|
1303
1349
|
if (ownEntry) {
|
|
1304
1350
|
await validateOverlayMigration(this, ownEntry[1], migration);
|
|
1305
1351
|
}
|
|
1306
|
-
|
|
1307
|
-
//
|
|
1308
|
-
//
|
|
1309
|
-
//
|
|
1310
|
-
//
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
//
|
|
1315
|
-
//
|
|
1316
|
-
//
|
|
1317
|
-
// the new collation) — and it runs in the migrate step, AFTER the underlying has
|
|
1318
|
-
// irreversibly re-keyed. So dry-run it here, against the exact state the migrate step
|
|
1319
|
-
// will see: drop the collapsed markers first (saving them), pre-flight the overlay's
|
|
1320
|
-
// `alterSchema` in validate-only mode, and on ANY later refusal — the pre-flight's or
|
|
1321
|
-
// the underlying's — reinsert the markers and rethrow with everything net-untouched.
|
|
1352
|
+
// Tier 2, PRIMARY-KEY re-key arm forwarded through the overlay's `alterSchema` (`set
|
|
1353
|
+
// collate`): that call is itself fallible — its module re-validates the re-key against
|
|
1354
|
+
// the overlay's layer chain (e.g. the memory module's representability BUSY when a
|
|
1355
|
+
// savepoint could restore rows that collide under the new collation) — and it runs in
|
|
1356
|
+
// the migrate step, AFTER the underlying has irreversibly re-keyed. So dry-run it here,
|
|
1357
|
+
// against the exact state the migrate step will see: drop the collapsed markers first
|
|
1358
|
+
// (saving them), pre-flight the overlay's `alterSchema` in validate-only mode, and on ANY
|
|
1359
|
+
// later refusal — the pre-flight's or the underlying's — reinsert the markers and rethrow
|
|
1360
|
+
// with everything net-untouched. The `set not null` re-key never comes here: it reaches
|
|
1361
|
+
// the overlay through ordinary writes (nothing to pre-flight), and its marker drop runs
|
|
1362
|
+
// in the migrate step only — see `PkRekeyContext.forwardedViaAlterSchema`.
|
|
1322
1363
|
//
|
|
1323
1364
|
// The drops happen BEFORE `underlying.alterTable`, and a dropped marker un-shadows the
|
|
1324
1365
|
// committed row it deletes in `issuerEffectiveRows`'s merged stream — so the effective
|
|
1325
1366
|
// rows are SNAPSHOTTED first, and the underlying judges the pre-drop view.
|
|
1326
1367
|
let droppedMarkerRows = [];
|
|
1327
|
-
if (migration.pkRekey && ownEntry && ownEntry[1].hasChanges && ownEntry[1].overlayTable.alterSchema) {
|
|
1368
|
+
if (migration.pkRekey?.forwardedViaAlterSchema && ownEntry && ownEntry[1].hasChanges && ownEntry[1].overlayTable.alterSchema) {
|
|
1328
1369
|
const ownOverlayState = ownEntry[1];
|
|
1329
1370
|
const pkRekeyCtx = migration.pkRekey;
|
|
1330
1371
|
const plan = await planPkRekeyMarkerDrops(this, ownOverlayState, pkRekeyCtx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isolation-module.js","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EACN,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAChC,OAAO,EAAE,gBAAgB,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAAwC;IACtD,MAAM,EAAE,CAAC;IACT,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,CAAsB,EAAE,CAAsB;IACxE,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAyB;IAC9D,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,eAAe;IAClB,UAAU,CAA+B;IACzC,aAAa,CAA+B;IAC5C,eAAe,CAAS;IAEjC,wEAAwE;IACvD,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE5E;;;OAGG;IACc,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEhF;;;;;;OAMG;IACc,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACc,kBAAkB,GAAG,IAAI,GAAG,EAA2C,CAAC;IAEzF;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAoF;IAElG;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAsE;IAEnF;;;oEAGgE;IAChE,sBAAsB,CAAsG;IAC5H,sBAAsB,CAAoG;IAC1H,uBAAuB,CAA0E;IAEjG,YAAY,MAA6B;QACxC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,iBAAiB,EAAE,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,YAAY,CAAC;QAE9D,MAAM,wBAAwB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAChE,IAAI,wBAAwB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CACnD,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC9D,IAAI,uBAAuB,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;gBAC9C,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;gBAC7F,MAAM,KAAK,GAAyB,EAAE,eAAe,EAAE,CAAC;gBACxD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzE,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC/F,CAAC,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,oEAAoE;QACpE,EAAE;QACF,oEAAoE;QACpE,kFAAkF;QAClF,+EAA+E;QAC/E,kFAAkF;QAClF,mFAAmF;QACnF,kFAAkF;QAClF,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE;gBAChF,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;gBACvF,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;gBAC9E,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACrF,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,GAAG,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;gBAClE,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACzE,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,eAAe;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,QAAQ,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,IAAI,QAAQ,CAAC;QAC/D,OAAO,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAqB,KAAK,IAAI,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAkB,EAAE,SAAiB;QACvD,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,UAAkB,EAAE,SAAiB,EAAE,KAA2B;QAC5F,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,UAAkB,EAAE,SAAiB;QAClE,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB,EAAE,KAA6B;QACtG,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,mBAAmB,CAAC,KAA6B;QAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAC/B,KAAK,CAAC,EAAE,EACR,SAAS,EACT,aAAa,CAAC,cAAc,EAC5B,aAAa,CAAC,UAAU,EACxB,aAAa,CAAC,IAAI,CAClB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,oEAAoE;IACpE,yBAAyB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;OASG;IACK,oBAAoB,CAAC,GAAiC,EAAE,UAAkB,EAAE,SAAiB;QACpG,MAAM,MAAM,GAAG,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,KAAK,CAAC,wBAAwB,CAAC,EAAY;QAC1C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;QACtC,MAAM,OAAO,GAAoF,EAAE,CAAC;QACpG,oFAAoF;QACpF,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,SAAS;YACtC,4EAA4E;YAC5E,6EAA6E;YAC7E,0EAA0E;YAC1E,8DAA8D;YAC9D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YACrE,CAAC;YACD,6EAA6E;YAC7E,wDAAwD;YACxD,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACtB,MAAM,IAAI,YAAY,CACrB,oCAAoC,GAAG,8BAA8B,aAAa,cAAc;0BAC9F,wGAAwG,EAC1G,UAAU,CAAC,QAAQ,CACnB,CAAC;gBACH,CAAC;gBACD,yEAAyE;gBACzE,yEAAyE;gBACzE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,SAAS;YACV,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,4EAA4E;QAC5E,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,IAAI,CAAC;YACJ,KAAK,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,OAAO,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,UAAU;oBAAE,SAAS;gBAChC,2EAA2E;gBAC3E,0EAA0E;gBAC1E,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC9B,MAAM,wBAAwB,CAAC,eAAe,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3F,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,6EAA6E;YAC7E,+EAA+E;YAC/E,+EAA+E;YAC/E,gFAAgF;YAChF,mFAAmF;YACnF,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC;QACb,CAAC;QAED,+EAA+E;QAC/E,8EAA8E;QAC9E,yDAAyD;QACzD,KAAK,MAAM,eAAe,IAAI,OAAO,EAAE,CAAC;YACvC,MAAM,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,+EAA+E;QAC/E,yEAAyE;QACzE,kFAAkF;QAClF,+EAA+E;QAC/E,4EAA4E;QAC5E,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,uBAAuB,CACtB,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,KAA4C;QAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,GAAS,EAAE;YACxB,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,EAAY,EAAE,UAAkB,EAAE,SAAiB;QACnF,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,GAAG,IAAI,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,CAAC;IAED,yDAAyD;IACjD,MAAM,CAAC,OAAO,GAAG,IAAI,OAAO,EAAoB,CAAC;IACjD,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;IAEpB,OAAO,CAAC,EAAY;QAC3B,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YAChC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;;;;OASG;IACH,eAAe;QACd,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC;QACjE,OAAO;YACN,GAAG,cAAc;YACjB,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SAChB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,wBAAwB,CAAC,EAAY,EAAE,WAAmB;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAY,EAAE,UAAkB;QACtD,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,EAAY,EAAE,UAAkB,EAAE,KAAe;QACrE,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oBAAoB,CAAC,EAAY,EAAE,iBAAyB,EAAE,QAAgC;QACnG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAY,EAAE,UAAkB;QAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;OAUG;IACH,8BAA8B,CAAC,EAAY,EAAE,IAAuB,EAAE,MAAgC;QACrG,IAAI,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAChB,EAAY,EACZ,SAAsB,EACtB,OAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACxC,oFAAoF;YACpF,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;YAC3C,OAAO;gBACN,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;gBAChD,IAAI;gBACJ,IAAI,EAAE,IAAI;aACV,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,EAAY,EAAE,WAAwB;QAClD,iCAAiC;QACjC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtE,wEAAwE;QACxE,MAAM,KAAK,GAAyB,EAAE,eAAe,EAAE,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzE,2EAA2E;QAC3E,wFAAwF;QACxF,0FAA0F;QAC1F,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,OAAO,CACZ,EAAY,EACZ,IAAa,EACb,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,OAAyB,EACzB,WAAyB;QAEzB,mFAAmF;QACnF,+EAA+E;QAC/E,MAAM,aAAa,GAAI,OAAoD,EAAE,cAAc,KAAK,IAAI,CAAC;QAErG,IAAI,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACjG,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,yCAAyC;YACzC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CACpD,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CACjE,CAAC;YAEF,KAAK,GAAG,EAAE,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,sEAAsE;QACtE,oFAAoF;QACpF,uFAAuF;QACvF,kFAAkF;QAClF,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACK,KAAK,CAAC,gBAAgB,CAC7B,EAAY,EACZ,IAAa,EACb,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,OAAyB,EACzB,WAAyB;QAEzB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CACxD,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CACjE,CAAC;QACF,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkDG;IACH,KAAK,CAAC,OAAO,CACZ,EAAY,EACZ,IAAa,EACb,UAAkB,EAClB,UAAkB,EAClB,SAAiB;QAEjB,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAChD,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnB,KAAK,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;gBAChF,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,SAAS;YACV,CAAC;YACD,mFAAmF;YACnF,+EAA+E;YAC/E,mFAAmF;YACnF,yDAAyD;YACzD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACK,oBAAoB,CAAC,CAAU,EAAE,aAAsC,EAAE,SAAiB;QACjG,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACxG,2FAA2F;QAC3F,0FAA0F;QAC1F,2FAA2F;QAC3F,0FAA0F;QAC1F,oFAAoF;QACpF,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACV,CAAC;IAED;;;;;;;;;OASG;IACK,uBAAuB,CAC9B,UAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,KAAmB;QAEnB,OAAO,IAAI,YAAY,CACtB,6BAA6B,cAAc,2CAA2C;cACpF,IAAI,UAAU,IAAI,SAAS,aAAa,KAAK,CAAC,OAAO,gDAAgD;cACrG,qFAAqF,EACvF,UAAU,CAAC,QAAQ,EACnB,KAAK,CACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,8BAA8B,CAAC,UAAkB,EAAE,SAAiB,EAAE,cAAsB,EAAE,KAAa;QAClH,OAAO,wBAAwB,cAAc,QAAQ,UAAU,IAAI,SAAS,4CAA4C;cACrH,6BAA6B,KAAK,gCAAgC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAAC,UAAkB,EAAE,SAAiB;QACnE,OAAO,UAAU,UAAU,IAAI,SAAS,8HAA8H,CAAC;IACxK,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACb,0EAA0E;QAC1E,gFAAgF;QAChF,iFAAiF;QACjF,sEAAsE;QACtE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAgD,CAAC;QAClF,IAAI,OAAO,mBAAmB,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACxD,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,gBAAgB,CACvB,EAAY,EACZ,eAA6B,EAC7B,YAAoC;QAEpC,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,YAAY,CAAC,iDAAiD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5G,CAAC;IAED;;;;;;;;;;OAUG;IACK,mBAAmB,CAC1B,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,eAA6B;QAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QACvF,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CAChB,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,WAAwB,EACxB,IAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7D,qFAAqF;QACrF,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE3H,IAAI,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC;YACxC,iEAAiE;YACjE,MAAM,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,+EAA+E;QACxF,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,oFAAoF;QACpF,oFAAoF;QACpF,wFAAwF;QACxF,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,GAC9C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,0BAA0B,CACpC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,WAAW,CAAC,IAAI,GAAG,EAC/D,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAClF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,kBAAkB,CAC/B,YAAoC,EACpC,QAAgB,EAChB,WAAwB;QAExB,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QAC/C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,aAAa;YAAE,OAAO;QACxD,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC;YAAE,OAAO;QACjE,MAAM,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED;;;;;;;;;;OAUG;IACK,kBAAkB,CACzB,eAA6B,EAC7B,UAAkB,EAClB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,YAAY,CACrB,sCAAsC,UAAU,IAAI,SAAS,iDAAiD;kBAC5G,mBAAmB,SAAS,+EAA+E;kBAC3G,qFAAqF,EACvF,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,mFAAmF;IAC3E,eAAe,CAAC,MAAmB,EAAE,SAAiB;QAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,+GAA+G;IAC/G,cAAc,CAAC,MAAmB,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,SAAS,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CACd,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,0EAA0E;QACnF,CAAC;QAED,MAAM,IAAI,CAAC,0BAA0B,CACpC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,SAAS,GAAG,EACtD,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAAC,YAAoC,EAAE,SAAiB;QACrF,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QAC/C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,aAAa;YAAE,OAAO;QACtD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,CAAC;YAAE,OAAO;QAC3D,MAAM,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACK,KAAK,CAAC,0BAA0B,CACvC,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,KAA8D;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YACvD,IAAI,YAAY,CAAC,MAAM;gBAAE,SAAS;YAClC,MAAM,IAAI,CAAC,yBAAyB,CACnC,GAAG,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EACnE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CACzB,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,yBAAyB,CACtC,QAAiB,EACjB,YAAoC,EACpC,UAAkB,EAClB,SAAiB,EACjB,cAAsB,EACtB,KAA0B;QAE1B,IAAI,CAAC;YACJ,MAAM,KAAK,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,uFAAuF;YACvF,sFAAsF;YACtF,sFAAsF;YACtF,8EAA8E;YAC9E,kFAAkF;YAClF,+EAA+E;YAC/E,IAAI,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,CAAC;YAC9G,mFAAmF;YACnF,qFAAqF;YACrF,gDAAgD;YAChD,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC/E,IAAI,QAAQ,EAAE,CAAC;gBACd,2EAA2E;gBAC3E,4EAA4E;gBAC5E,+EAA+E;gBAC/E,yEAAyE;gBACzE,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI;oBAAE,MAAM,CAAC,CAAC;gBACxC,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;YACD,oFAAoF;YACpF,8EAA8E;YAC9E,iFAAiF;YACjF,gFAAgF;YAChF,mFAAmF;YACnF,mFAAmF;YACnF,YAAY,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1H,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,UAAU,CACf,EAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,MAAwB,EACxB,IAAyB;QAEzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CACrB,uDAAuD,UAAU,IAAI,SAAS,GAAG,EACjF,UAAU,CAAC,WAAW,CACtB,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,kFAAkF;QAClF,iFAAiF;QACjF,kFAAkF;QAClF,iFAAiF;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,QAAsD,CAAC;QAC3D,MAAM,OAAO,GAAuC,EAAE,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAChD,oFAAoF;YACpF,iFAAiF;YACjF,iFAAiF;YACjF,6EAA6E;YAC7E,yFAAyF;YACzF,IAAI,KAAK,CAAC,MAAM;gBAAE,SAAS;YAC3B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACpB,QAAQ,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC;QAED,iFAAiF;QACjF,gFAAgF;QAChF,iEAAiE;QACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9D,gFAAgF;QAChF,oFAAoF;QACpF,mFAAmF;QACnF,oFAAoF;QACpF,iFAAiF;QACjF,8DAA8D;QAC9D,4EAA4E;QAC5E,kFAAkF;QAClF,mFAAmF;QACnF,iDAAiD;QACjD,EAAE;QACF,oFAAoF;QACpF,iFAAiF;QACjF,mFAAmF;QACnF,gFAAgF;QAChF,0DAA0D;QAC1D,EAAE;QACF,6FAA6F;QAC7F,6FAA6F;QAC7F,6FAA6F;QAC7F,wCAAwC;QACxC,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACnE,MAAM,IAAI,YAAY,CACrB,oCAAoC,UAAU,IAAI,SAAS,4FAA4F,EACvJ,UAAU,CAAC,IAAI,CACf,CAAC;QACH,CAAC;QAED,4BAA4B,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAElE,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,+DAA+D;QAC/D,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAE7E,mFAAmF;QACnF,yFAAyF;QACzF,4FAA4F;QAC5F,uEAAuE;QACvE,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEvE,gFAAgF;QAChF,kFAAkF;QAClF,mFAAmF;QACnF,oBAAoB;QACpB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe;YACvC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,eAAe,CAAC;YACtF,CAAC,CAAC,SAAS,CAAC,CAAC;QAEd,uFAAuF;QACvF,wFAAwF;QACxF,wFAAwF;QACxF,iFAAiF;QACjF,sFAAsF;QACtF,qFAAqF;QACrF,sFAAsF;QACtF,qFAAqF;QACrF,EAAE;QACF,uFAAuF;QACvF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAI,iBAAiB,GAAU,EAAE,CAAC;QAClC,IAAI,SAAS,CAAC,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACrG,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,SAAS,EAAE,CAAC;oBACf,8EAA8E;oBAC9E,yEAAyE;oBACzE,8EAA8E;oBAC9E,6BAA6B;oBAC7B,MAAM,QAAQ,GAAU,EAAE,CAAC;oBAC3B,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,SAAS,EAAE;wBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxD,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,CAAC;gBACD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,uBAAuB,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,CAAC;gBACJ,iFAAiF;gBACjF,+EAA+E;gBAC/E,6EAA6E;gBAC7E,iFAAiF;gBACjF,gFAAgF;gBAChF,MAAM,eAAe,CAAC,YAAY,CAAC,WAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACzF,CAAC;QACF,CAAC;QAED,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,QAAQ;gBAAE,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAC3E,MAAM,CAAC,CAAC;QACT,CAAC;QAED,4EAA4E;QAC5E,+EAA+E;QAC/E,6EAA6E;QAC7E,0EAA0E;QAC1E,iFAAiF;QACjF,gFAAgF;QAChF,IAAI,eAAe;YAAE,eAAe,CAAC,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC;QAE3E,MAAM,cAAc,GAAG,gBAAgB,MAAM,CAAC,IAAI,GAAG,CAAC;QAEtD,kFAAkF;QAClF,qFAAqF;QACrF,oFAAoF;QACpF,gEAAgE;QAChE,MAAM,cAAc,GAAG,KAAK,EAAE,GAAW,EAAE,KAA6B,EAAE,QAAiB,EAAiB,EAAE;YAC7G,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACvC,MAAM,IAAI,CAAC,iCAAiC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3G,OAAO;YACR,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,CAAC;YAC7B,MAAM,IAAI,CAAC,yBAAyB,CACnC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EACtD,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAC3E,CAAC;QACH,CAAC,CAAC;QAEF,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,6DAA6D;QAC7D,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,8EAA8E;QAC9E,iFAAiF;QACjF,qFAAqF;QACrF,wFAAwF;QACxF,wFAAwF;QACxF,yFAAyF;QACzF,0FAA0F;QAC1F,oFAAoF;QACpF,yFAAyF;QACzF,wFAAwF;QACxF,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,MAAM,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvG,QAAQ,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;oBACtF,SAAS,CAAC,2DAA2D;gBACtE,CAAC;gBACD,MAAM,CAAC,CAAC;YACT,CAAC;YACD,MAAM,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,WAAW,CAChB,EAAY,EACZ,UAAkB,EAClB,OAAe,EACf,OAAe,EACf,GAAY;QAEZ,gFAAgF;QAChF,8EAA8E;QAC9E,oEAAoE;QACpE,iFAAiF;QACjF,MAAM,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACjC,iFAAiF;YACjF,yEAAyE;YACzE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,qBAAqB;QACrB,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEhD,8EAA8E;QAC9E,+EAA+E;QAC/E,4EAA4E;QAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE3G,mFAAmF;QACnF,oEAAoE;QACpE,gFAAgF;QAChF,2EAA2E;QAC3E,+EAA+E;QAC/E,gFAAgF;QAChF,yEAAyE;QACzE,+EAA+E;QAC/E,gFAAgF;QAChF,2EAA2E;QAC3E,kFAAkF;QAClF,6EAA6E;QAC7E,2EAA2E;QAC3E,8EAA8E;QAC9E,qCAAqC;QAErC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,8BAA8B,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QACrF,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CACnB,EAAY,EACZ,UAAkB,EAClB,OAAe,EACf,OAAe;QAEf,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,8BAA8B,CAC3C,EAAY,EACZ,UAAkB,EAClB,OAAe,EACf,eAAwC;QAExC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,IAAI,YAAY,CACrB,oEAAoE,UAAU,IAAI,OAAO,MAAM;kBAC7F,+EAA+E,EACjF,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAgB,EAAE,GAAG,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CACpD,EAAE,EACF,SAAS,EACT,eAAe,CAAC,cAAc,EAC9B,UAAU,EACV,OAAO,EACP,eAAe,CAAC,QAAQ,IAAI,EAAE,EAC9B,aAAa,CACb,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAC/B,GAAmB,EACnB,UAAkB,EAClB,OAAe,EACf,OAAe;QAEf,mFAAmF;QACnF,wEAAwE;QACxE,MAAM,eAAe,GAAG,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,iCAAiC,CAC9C,GAAW,EACX,KAA6B,EAC7B,QAAiB,EACjB,UAAkB,EAClB,SAAiB,EACjB,aAA0B,EAC1B,MAAwB;QAExB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,YAAY,CACrB,8CAA8C,UAAU,IAAI,SAAS,oHAAoH,EACzL,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YACD,KAAK,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACnF,OAAO;QACR,CAAC;QACD,yFAAyF;QACzF,oFAAoF;QACpF,iFAAiF;QACjF,qFAAqF;QACrF,uFAAuF;QACvF,uFAAuF;QACvF,mFAAmF;QACnF,sDAAsD;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,mBAAmB,CAAC,UAAuB;QAC1C,MAAM,eAAe,GAAG;YACvB,IAAI,EAAE,IAAI,CAAC,eAAe;YAC1B,WAAW,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,YAAY,CAAC,OAAO;aAClC;YACD,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,CAAC;YACV,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC7D,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEjF,gEAAgE;QAChE,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,YAAY,UAAU,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QAE/D,OAAO;YACN,GAAG,UAAU;YACb,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,UAAU;YACnB,cAAc,EAAE,iBAAiB;YACjC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACzG,iBAAiB,EAAE,UAAU,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3D,GAAG,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;aAC5E,CAAC,CAAC;SACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,wBAAwB,CAAC,GAAgB,EAAE,QAAgB,EAAE,WAAmB;QACvF,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,IAA2B,EAAE,QAAgB,EAAE,WAAmB;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,OAAO,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB;QACvB,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE;YACpD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;SACpC,CAAC;IACH,CAAC;;AAGF,SAAS,YAAY,CAAC,IAA2B,EAAE,KAAgB;IAClE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,IAAe,EAAE,QAAgB,EAAE,MAAc;IACnF,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,CAAU,EAAW,EAAE;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;YACrG,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAc,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"isolation-module.js","sourceRoot":"","sources":["../../src/isolation-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { CollationResolver, Row, SqlValue, TableSchema, VirtualTable } from '@quereus/quereus';
|
|
2
|
+
/** Compares one primary-key column's values. Returns <0 / 0 / >0 like `compareSqlValues`. */
|
|
3
|
+
type ColumnCompare = (a: SqlValue, b: SqlValue) => number;
|
|
4
|
+
/**
|
|
5
|
+
* Per-primary-key-column comparison functions plus each column's declared sort direction.
|
|
6
|
+
*
|
|
7
|
+
* Each comparator is the type's own `compare` for a semantic-ordering column (TIMESPAN,
|
|
8
|
+
* JSON — see the engine's `hasSemanticOrdering`), else `compareSqlValuesFast` under the
|
|
9
|
+
* column's declared collation. Both backends collapse semantically-equal spellings onto
|
|
10
|
+
* one row (the memory table's typed BTree; the store's `groupKey`-transformed key bytes)
|
|
11
|
+
* and key rows collation-aware, so the isolation layer must call 'PT1H' and 'PT60M' — and
|
|
12
|
+
* 'apple' and 'APPLE' under NOCASE — the same key too.
|
|
13
|
+
*
|
|
14
|
+
* `directions` is the ORDERING half and is positionally aligned with `compares`; equality
|
|
15
|
+
* ignores it, since direction cannot change whether two values are equal.
|
|
16
|
+
*
|
|
17
|
+
* Build this ONCE per schema, above any row loop: the collation resolver throws on an
|
|
18
|
+
* unregistered name and is not inlinable. Resolution is not retroactive — a collation
|
|
19
|
+
* registered *after* the shape was built is not picked up, the same contract
|
|
20
|
+
* `Database.registerCollation` documents engine-wide.
|
|
21
|
+
*
|
|
22
|
+
* NOTE: these are the *comparison* collations only. The store's physical key bytes are
|
|
23
|
+
* produced by the key NORMALIZER of the same collation, resolved through the same
|
|
24
|
+
* connection's registry, so the two agree on equality — but only on ORDER for a collation
|
|
25
|
+
* asserting `orderPreserving` (see docs/store.md § Order preservation).
|
|
26
|
+
*/
|
|
27
|
+
export interface PkKeyShape {
|
|
28
|
+
readonly compares: ReadonlyArray<ColumnCompare>;
|
|
29
|
+
readonly directions: readonly boolean[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The shape of a schema that has not been populated yet; never mutated. An empty shape
|
|
33
|
+
* degrades every key position to BINARY, matching the "no PK definition" behaviour.
|
|
34
|
+
*/
|
|
35
|
+
export declare const EMPTY_PK_KEY_SHAPE: PkKeyShape;
|
|
36
|
+
/** Builds the {@link PkKeyShape} for `schema`'s primary key. */
|
|
37
|
+
export declare function makePkKeyShape(schema: TableSchema | undefined, resolveCollation: CollationResolver): PkKeyShape;
|
|
38
|
+
/**
|
|
39
|
+
* Equality over a primary-key tuple: each column under its declared collation, and a
|
|
40
|
+
* semantic-ordering type through its own comparator.
|
|
41
|
+
*/
|
|
42
|
+
export type PkEquals = (a: readonly SqlValue[], b: readonly SqlValue[]) => boolean;
|
|
43
|
+
/** Derives the equality test from an already-built {@link PkKeyShape}. */
|
|
44
|
+
export declare function pkEqualsFromShape(shape: PkKeyShape): PkEquals;
|
|
45
|
+
/**
|
|
46
|
+
* Builds a {@link PkEquals} for `schema`'s primary key. Memoize the result per schema —
|
|
47
|
+
* this sits on the per-write path.
|
|
48
|
+
*/
|
|
49
|
+
export declare function makePkEquals(schema: TableSchema | undefined, resolveCollation: CollationResolver): PkEquals;
|
|
50
|
+
/**
|
|
51
|
+
* Finds the row of `table` carrying `pk`, driving the primary-key index when the module
|
|
52
|
+
* can serve it.
|
|
53
|
+
*
|
|
54
|
+
* A hand-built FilterInfo is a REQUEST, not a contract: the module never negotiated these
|
|
55
|
+
* constraints through `getBestAccessPlan`, so it may legitimately answer with any superset
|
|
56
|
+
* of the requested rows — up to the whole table — and there is no engine above a direct
|
|
57
|
+
* `query()` call to reapply the constraints as a residual. Every yielded row is therefore
|
|
58
|
+
* checked against `pk` before it is believed.
|
|
59
|
+
*
|
|
60
|
+
* The check runs over the WHOLE iteration rather than stopping at row #1: stopping would
|
|
61
|
+
* turn a false positive ("some unrelated row exists ⇒ the key is taken") into a false
|
|
62
|
+
* negative ("row #1 is not it ⇒ the key is free"), which lets a genuine duplicate key
|
|
63
|
+
* through. For a module that actually seeks, the iteration is one row and nothing changes.
|
|
64
|
+
*
|
|
65
|
+
* NOTE: a module that cannot seek the primary key now pays a full scan per probe instead
|
|
66
|
+
* of returning a wrong answer. If a scan-only backend ever shows up as slow on
|
|
67
|
+
* write-heavy transactions, cache the probe per statement — do not restore the trust.
|
|
68
|
+
*/
|
|
69
|
+
export declare function probeRowByPk(table: VirtualTable, pkIndices: readonly number[], pk: readonly SqlValue[], pkEquals: PkEquals): Promise<Row | undefined>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=pk-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-probe.d.ts","sourceRoot":"","sources":["../../src/pk-probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUvH,6FAA6F;AAC7F,KAAK,aAAa,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;AAK1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAA6C,CAAC;AAE/E,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,UAAU,CAc/G;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,QAAQ,EAAE,EAAE,CAAC,EAAE,SAAS,QAAQ,EAAE,KAAK,OAAO,CAAC;AAEnF,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAS7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,QAAQ,CAE3G;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,EAAE,EAAE,SAAS,QAAQ,EAAE,EACvB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAM1B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BINARY_COLLATION, compareSqlValuesFast, createTypedComparator, hasSemanticOrdering, resolveCollationFunctions, } from '@quereus/quereus';
|
|
2
|
+
import { makePkPointLookupFilter } from './filter-info.js';
|
|
3
|
+
/** Fallback for a key position past the end of the primary-key definition. */
|
|
4
|
+
const BINARY_COMPARE = (a, b) => compareSqlValuesFast(a, b, BINARY_COLLATION);
|
|
5
|
+
/**
|
|
6
|
+
* The shape of a schema that has not been populated yet; never mutated. An empty shape
|
|
7
|
+
* degrades every key position to BINARY, matching the "no PK definition" behaviour.
|
|
8
|
+
*/
|
|
9
|
+
export const EMPTY_PK_KEY_SHAPE = { compares: [], directions: [] };
|
|
10
|
+
/** Builds the {@link PkKeyShape} for `schema`'s primary key. */
|
|
11
|
+
export function makePkKeyShape(schema, resolveCollation) {
|
|
12
|
+
if (!schema)
|
|
13
|
+
return EMPTY_PK_KEY_SHAPE;
|
|
14
|
+
const pkDef = schema.primaryKeyDefinition ?? [];
|
|
15
|
+
const collations = resolveCollationFunctions(resolveCollation, pkDef.map(pk => schema.columns[pk.index]?.collation));
|
|
16
|
+
const compares = pkDef.map((pk, i) => {
|
|
17
|
+
const logicalType = schema.columns[pk.index]?.logicalType;
|
|
18
|
+
if (hasSemanticOrdering(logicalType))
|
|
19
|
+
return createTypedComparator(logicalType);
|
|
20
|
+
const collation = collations[i] ?? BINARY_COLLATION;
|
|
21
|
+
return (a, b) => compareSqlValuesFast(a, b, collation);
|
|
22
|
+
});
|
|
23
|
+
return { compares, directions: pkDef.map(pk => !!pk.desc) };
|
|
24
|
+
}
|
|
25
|
+
/** Derives the equality test from an already-built {@link PkKeyShape}. */
|
|
26
|
+
export function pkEqualsFromShape(shape) {
|
|
27
|
+
const { compares } = shape;
|
|
28
|
+
return (a, b) => {
|
|
29
|
+
if (a.length !== b.length)
|
|
30
|
+
return false;
|
|
31
|
+
for (let i = 0; i < a.length; i++) {
|
|
32
|
+
if ((compares[i] ?? BINARY_COMPARE)(a[i], b[i]) !== 0)
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Builds a {@link PkEquals} for `schema`'s primary key. Memoize the result per schema —
|
|
40
|
+
* this sits on the per-write path.
|
|
41
|
+
*/
|
|
42
|
+
export function makePkEquals(schema, resolveCollation) {
|
|
43
|
+
return pkEqualsFromShape(makePkKeyShape(schema, resolveCollation));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Finds the row of `table` carrying `pk`, driving the primary-key index when the module
|
|
47
|
+
* can serve it.
|
|
48
|
+
*
|
|
49
|
+
* A hand-built FilterInfo is a REQUEST, not a contract: the module never negotiated these
|
|
50
|
+
* constraints through `getBestAccessPlan`, so it may legitimately answer with any superset
|
|
51
|
+
* of the requested rows — up to the whole table — and there is no engine above a direct
|
|
52
|
+
* `query()` call to reapply the constraints as a residual. Every yielded row is therefore
|
|
53
|
+
* checked against `pk` before it is believed.
|
|
54
|
+
*
|
|
55
|
+
* The check runs over the WHOLE iteration rather than stopping at row #1: stopping would
|
|
56
|
+
* turn a false positive ("some unrelated row exists ⇒ the key is taken") into a false
|
|
57
|
+
* negative ("row #1 is not it ⇒ the key is free"), which lets a genuine duplicate key
|
|
58
|
+
* through. For a module that actually seeks, the iteration is one row and nothing changes.
|
|
59
|
+
*
|
|
60
|
+
* NOTE: a module that cannot seek the primary key now pays a full scan per probe instead
|
|
61
|
+
* of returning a wrong answer. If a scan-only backend ever shows up as slow on
|
|
62
|
+
* write-heavy transactions, cache the probe per statement — do not restore the trust.
|
|
63
|
+
*/
|
|
64
|
+
export async function probeRowByPk(table, pkIndices, pk, pkEquals) {
|
|
65
|
+
if (!table.query)
|
|
66
|
+
return undefined;
|
|
67
|
+
for await (const row of table.query(makePkPointLookupFilter(pkIndices, pk))) {
|
|
68
|
+
if (pkEquals(pkIndices.map(i => row[i]), pk))
|
|
69
|
+
return row;
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=pk-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pk-probe.js","sourceRoot":"","sources":["../../src/pk-probe.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quereus/isolation",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.14.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Generic transaction isolation layer for Quereus virtual table modules",
|
|
6
6
|
"keywords": [
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
"test:single": "cd ../.. && node --import ./packages/quereus-isolation/register.mjs node_modules/mocha/bin/mocha.js --bail"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@quereus/quereus": "^4.
|
|
44
|
+
"@quereus/quereus": "^4.14.0"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@quereus/quereus": "^4.
|
|
47
|
+
"@quereus/quereus": "^4.14.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/mocha": "^10.0.10",
|