@spine-event-engine/storage-postgres 2.0.0-snapshot.23 → 2.0.0-snapshot.24
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 +5 -4
- package/REFERENCE.md +27 -5
- package/dist/postgres/agent-execution.d.ts +3 -2
- package/dist/postgres/agent-execution.d.ts.map +1 -1
- package/dist/postgres/agent-execution.js +3 -3
- package/dist/postgres/agent-execution.js.map +1 -1
- package/dist/postgres/entity-commit.d.ts +16 -51
- package/dist/postgres/entity-commit.d.ts.map +1 -1
- package/dist/postgres/entity-commit.js +83 -154
- package/dist/postgres/entity-commit.js.map +1 -1
- package/dist/postgres/entity-history.d.ts.map +1 -1
- package/dist/postgres/entity-history.js +60 -232
- package/dist/postgres/entity-history.js.map +1 -1
- package/dist/postgres/errors.d.ts +1 -1
- package/dist/postgres/errors.d.ts.map +1 -1
- package/dist/postgres/errors.js +5 -3
- package/dist/postgres/errors.js.map +1 -1
- package/dist/postgres/record-storage.d.ts +87 -111
- package/dist/postgres/record-storage.d.ts.map +1 -1
- package/dist/postgres/record-storage.js +159 -186
- package/dist/postgres/record-storage.js.map +1 -1
- package/dist/postgres/storage-factory.d.ts +2 -8
- package/dist/postgres/storage-factory.d.ts.map +1 -1
- package/dist/postgres/storage-factory.js +4 -23
- package/dist/postgres/storage-factory.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/postgres/delivery-cleanup.d.ts +0 -76
- package/dist/postgres/delivery-cleanup.d.ts.map +0 -1
- package/dist/postgres/delivery-cleanup.js +0 -224
- package/dist/postgres/delivery-cleanup.js.map +0 -1
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* the License.
|
|
13
13
|
*/
|
|
14
14
|
import { fromBinary, ScalarType, toBinary } from "@bufbuild/protobuf";
|
|
15
|
-
import { createHash } from "node:crypto";
|
|
16
15
|
import { StringifierRegistry } from "@spine-event-engine/core";
|
|
17
|
-
import { ColumnMappings, defaultQueryCandidateLimit, RecordStorage, } from "@spine-event-engine/storage";
|
|
16
|
+
import { ColumnMappings, defaultQueryCandidateLimit, RecordQuery, RecordStorage, } from "@spine-event-engine/storage";
|
|
17
|
+
import { createHash } from "node:crypto";
|
|
18
18
|
import { PostgresColumnMapping } from "./column-mapping.js";
|
|
19
|
-
import { PostgresStorageDataError, PostgresStorageOperationError,
|
|
19
|
+
import { PostgresStorageDataError, PostgresStorageOperationError, PostgresClientDisposal, } from "./errors.js";
|
|
20
20
|
import { PostgresIdColumn } from "./id-column.js";
|
|
21
21
|
import { PostgresTableInitializer } from "./table-initializer.js";
|
|
22
22
|
const maximumNormalizedPlanBinds = 1_000;
|
|
@@ -31,7 +31,7 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
31
31
|
lifecycle;
|
|
32
32
|
onClose;
|
|
33
33
|
/**
|
|
34
|
-
* Reports that compare-and-set uses
|
|
34
|
+
* Reports that compare-and-set uses a conditional SQL mutation.
|
|
35
35
|
*/
|
|
36
36
|
atomicCompareAndSet = true;
|
|
37
37
|
#idColumn;
|
|
@@ -66,7 +66,7 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
66
66
|
return this.table.tableName;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
* Prepares this table before
|
|
69
|
+
* Prepares this table before a record operation.
|
|
70
70
|
*
|
|
71
71
|
* @returns A promise that resolves after compatible initialization.
|
|
72
72
|
*/
|
|
@@ -85,15 +85,17 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
85
85
|
transaction: (work) => this.transaction(work),
|
|
86
86
|
using: (work) => this.using(work),
|
|
87
87
|
read: (client, id, lock) => this.readOn(client, id, lock === "for-update"),
|
|
88
|
-
assertImmutable: (client, record) =>
|
|
88
|
+
assertImmutable: async (client, record) => {
|
|
89
|
+
const existing = await this.readOn(client, this.recordSpec.idValueIn(record));
|
|
90
|
+
if (existing !== undefined && !this.same(existing, record))
|
|
91
|
+
throw new PostgresStorageOperationError("PostgreSQL immutable record collides.");
|
|
92
|
+
},
|
|
89
93
|
appendImmutable: (client, record) => this.appendImmutableOn(client, record),
|
|
90
94
|
write: (client, record) => this.writeOn(client, record),
|
|
91
|
-
delete: (client, id) => this.deleteOn(client, id),
|
|
92
95
|
query: (client, sql, values) => this.historyEntries(client, sql, values),
|
|
93
96
|
column: (name, value) => this.historyColumn(name, value),
|
|
94
97
|
table: () => this.qualified(),
|
|
95
98
|
lock: (domain, ...identity) => this.historyKey(domain, identity),
|
|
96
|
-
lockRecord: (id) => this.casKey(id),
|
|
97
99
|
};
|
|
98
100
|
}
|
|
99
101
|
/**
|
|
@@ -112,11 +114,7 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
112
114
|
* @returns A promise that resolves when the payload is stored or confirmed.
|
|
113
115
|
*/
|
|
114
116
|
async writeImmutable(record) {
|
|
115
|
-
|
|
116
|
-
await this.transaction(async (client) => {
|
|
117
|
-
await this.lockSlot(client, id);
|
|
118
|
-
await this.appendImmutableOn(client, record, true);
|
|
119
|
-
}).catch((error) => {
|
|
117
|
+
await this.using((client) => this.appendImmutableOn(client, record)).catch((error) => {
|
|
120
118
|
throw operationError(error);
|
|
121
119
|
});
|
|
122
120
|
}
|
|
@@ -139,7 +137,7 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
139
137
|
* @returns Whether a stored record was deleted.
|
|
140
138
|
*/
|
|
141
139
|
async deleteRecord(id) {
|
|
142
|
-
return this.
|
|
140
|
+
return this.using(async (client) => this.deleteOn(client, id)).catch((error) => {
|
|
143
141
|
throw operationError(error);
|
|
144
142
|
});
|
|
145
143
|
}
|
|
@@ -186,48 +184,30 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
186
184
|
return this.using((client) => this.entries(client, compiled));
|
|
187
185
|
}
|
|
188
186
|
/**
|
|
189
|
-
* Compares and
|
|
187
|
+
* Compares and conditionally mutates one row with a raw-byte SQL guard.
|
|
190
188
|
*
|
|
191
|
-
* @param id Identifies the record
|
|
189
|
+
* @param id Identifies the record slot.
|
|
192
190
|
* @param expected Specifies the current materialized record required to write.
|
|
193
191
|
* @param next Specifies the replacement record, or absence for deletion.
|
|
194
192
|
* @returns Whether the current stored payload matched the expected payload.
|
|
195
193
|
*/
|
|
196
194
|
async compareAndSetRecord(id, expected, next) {
|
|
197
|
-
for (let attempt = 0; attempt
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
catch (error) {
|
|
202
|
-
if (attempt === 0 && retryable(error))
|
|
203
|
-
continue;
|
|
204
|
-
throw operationError(error);
|
|
205
|
-
}
|
|
195
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
196
|
+
const result = await this.using((client) => this.casOnce(client, id, expected, next));
|
|
197
|
+
if (result !== undefined)
|
|
198
|
+
return result;
|
|
206
199
|
}
|
|
207
|
-
throw new PostgresStorageOperationError("PostgreSQL record
|
|
200
|
+
throw new PostgresStorageOperationError("PostgreSQL record compare-and-set contention exceeded.");
|
|
208
201
|
}
|
|
209
202
|
/**
|
|
210
|
-
* Writes all supplied materialized records in source order
|
|
203
|
+
* Writes all supplied materialized records independently in source order.
|
|
211
204
|
*
|
|
212
205
|
* @param records Provides the materialized records to write.
|
|
213
|
-
* @returns A promise that resolves after
|
|
206
|
+
* @returns A promise that resolves after all writes complete.
|
|
214
207
|
*/
|
|
215
208
|
async writeAllRecords(records) {
|
|
216
|
-
for (
|
|
217
|
-
|
|
218
|
-
await this.transaction(async (client) => {
|
|
219
|
-
await this.lockSlots(client, records.map((record) => this.recordSpec.idValueIn(record.record)));
|
|
220
|
-
for (const record of records)
|
|
221
|
-
await this.writeOn(client, record.record, undefined, true);
|
|
222
|
-
});
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
catch (error) {
|
|
226
|
-
if (attempt === 0 && PostgresTransactionErrors.retryable(error))
|
|
227
|
-
continue;
|
|
228
|
-
throw operationError(error);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
209
|
+
for (const record of records)
|
|
210
|
+
await this.writeRecord(record);
|
|
231
211
|
}
|
|
232
212
|
/**
|
|
233
213
|
* Writes one materialized record.
|
|
@@ -236,61 +216,77 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
236
216
|
* @returns A promise that resolves after PostgreSQL applies the upsert.
|
|
237
217
|
*/
|
|
238
218
|
writeRecord(record) {
|
|
239
|
-
return this.
|
|
219
|
+
return this.using((client) => this.writeOn(client, record.record)).catch((error) => {
|
|
240
220
|
throw operationError(error);
|
|
241
221
|
});
|
|
242
222
|
}
|
|
243
223
|
/**
|
|
244
|
-
* Applies one compare-and-set attempt
|
|
224
|
+
* Applies one compare-and-set attempt using a conditional statement.
|
|
245
225
|
*
|
|
226
|
+
* @param client Provides the operation client.
|
|
246
227
|
* @param id Identifies the guarded record.
|
|
247
228
|
* @param expected Supplies the required current materialization.
|
|
248
229
|
* @param next Supplies the replacement or requests deletion when absent.
|
|
249
|
-
* @returns Whether the current record matched
|
|
250
|
-
*/
|
|
251
|
-
async casOnce(id, expected, next) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
if (
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
230
|
+
* @returns Whether the current record matched, or undefined after a guard miss.
|
|
231
|
+
*/
|
|
232
|
+
async casOnce(client, id, expected, next) {
|
|
233
|
+
const raw = await this.rawOn(client, id);
|
|
234
|
+
const current = raw === undefined ? undefined : this.decode(raw);
|
|
235
|
+
if (!this.same(current, expected?.record))
|
|
236
|
+
return false;
|
|
237
|
+
if (next === undefined) {
|
|
238
|
+
if (raw === undefined)
|
|
239
|
+
return true;
|
|
240
|
+
const deleted = await client.query(`DELETE FROM ${this.qualified()} WHERE "ID" = $1 AND "bytes" = $2`, [this.id(id), raw]);
|
|
241
|
+
return deleted.rowCount === 1 ? true : undefined;
|
|
242
|
+
}
|
|
243
|
+
if (this.same(current, next.record))
|
|
261
244
|
return true;
|
|
262
|
-
|
|
245
|
+
if (raw === undefined) {
|
|
246
|
+
const inserted = await client.query(`${this.insertSql()} ON CONFLICT ("ID") DO NOTHING`, this.values(next.record, id));
|
|
247
|
+
return inserted.rowCount === 1 ? true : undefined;
|
|
248
|
+
}
|
|
249
|
+
const changed = await client.query(this.casUpdateSql(), [
|
|
250
|
+
this.id(id),
|
|
251
|
+
raw,
|
|
252
|
+
...this.values(next.record, id).slice(1),
|
|
253
|
+
]);
|
|
254
|
+
return changed.rowCount === 1 ? true : undefined;
|
|
263
255
|
}
|
|
264
256
|
/**
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
* @
|
|
268
|
-
* @
|
|
269
|
-
* @returns The value returned by the work after a successful commit.
|
|
257
|
+
* Reads the exact bytes used as a conditional-mutation guard.
|
|
258
|
+
* @param client Provides the operation client.
|
|
259
|
+
* @param id Identifies the row.
|
|
260
|
+
* @returns Stored bytes, if present.
|
|
270
261
|
*/
|
|
271
|
-
async
|
|
272
|
-
await this.
|
|
273
|
-
|
|
274
|
-
|
|
262
|
+
async rawOn(client, id) {
|
|
263
|
+
const result = await client.query(`SELECT "bytes" FROM ${this.qualified()} WHERE "ID" = $1`, [this.id(id)]);
|
|
264
|
+
return result.rows[0] === undefined ? undefined : bytes(result.rows[0].bytes);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Decodes one stored record with the provider's data-error boundary.
|
|
268
|
+
* @param raw Supplies exact stored bytes.
|
|
269
|
+
* @returns Decoded Protobuf record.
|
|
270
|
+
*/
|
|
271
|
+
decode(raw) {
|
|
275
272
|
try {
|
|
276
|
-
|
|
277
|
-
const result = await work(client);
|
|
278
|
-
await client.query("COMMIT");
|
|
279
|
-
return result;
|
|
273
|
+
return fromBinary(this.recordSpec.recordType, raw);
|
|
280
274
|
}
|
|
281
275
|
catch (error) {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
discard = PostgresRollbackErrors.discard(error);
|
|
287
|
-
}
|
|
288
|
-
throw error;
|
|
289
|
-
}
|
|
290
|
-
finally {
|
|
291
|
-
client.release(discard);
|
|
276
|
+
throw new PostgresStorageDataError("Stored PostgreSQL record data is invalid.", {
|
|
277
|
+
cause: error,
|
|
278
|
+
});
|
|
292
279
|
}
|
|
293
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Builds a conditional update that changes bytes and materialized columns together.
|
|
283
|
+
* @returns Parameterized update SQL.
|
|
284
|
+
*/
|
|
285
|
+
casUpdateSql() {
|
|
286
|
+
const names = ["bytes", ...this.recordSpec.columns.map(({ name }) => name)];
|
|
287
|
+
const assignments = names.map((name, index) => `${quote(name)} = $${String(index + 3)}`);
|
|
288
|
+
return `UPDATE ${this.qualified()} SET ${assignments.join(", ")} WHERE "ID" = $1 AND "bytes" = $2`;
|
|
289
|
+
}
|
|
294
290
|
/**
|
|
295
291
|
* Executes work with one prepared and automatically released client.
|
|
296
292
|
*
|
|
@@ -310,19 +306,67 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
310
306
|
throw operationError(error);
|
|
311
307
|
}
|
|
312
308
|
finally {
|
|
313
|
-
client.release(discard ? new Error("PostgreSQL client discarded after
|
|
309
|
+
client.release(discard ? new Error("PostgreSQL client discarded after provider failure.") : undefined);
|
|
314
310
|
}
|
|
315
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Executes Agent-scoped record work under one PostgreSQL transaction.
|
|
314
|
+
*
|
|
315
|
+
* @typeParam T Result of the transaction work.
|
|
316
|
+
* @param work Operations to run on the acquired client.
|
|
317
|
+
* @returns Result after commit.
|
|
318
|
+
*/
|
|
319
|
+
async transaction(work) {
|
|
320
|
+
await this.prepare();
|
|
321
|
+
const client = await this.lifecycle.acquire();
|
|
322
|
+
let releaseFailure;
|
|
323
|
+
try {
|
|
324
|
+
await client.query("BEGIN");
|
|
325
|
+
const result = await work(client);
|
|
326
|
+
await client.query("COMMIT");
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
try {
|
|
331
|
+
await client.query("ROLLBACK");
|
|
332
|
+
}
|
|
333
|
+
catch {
|
|
334
|
+
releaseFailure = new Error("PostgreSQL Agent transaction rollback failed.");
|
|
335
|
+
}
|
|
336
|
+
throw error;
|
|
337
|
+
}
|
|
338
|
+
finally {
|
|
339
|
+
client.release(releaseFailure);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Calculates a stable Agent advisory key in this database and schema.
|
|
344
|
+
*
|
|
345
|
+
* @param domain Lock namespace within the provider.
|
|
346
|
+
* @param identity Components of the lock identity.
|
|
347
|
+
* @returns Stable advisory lock key.
|
|
348
|
+
*/
|
|
349
|
+
historyKey(domain, identity) {
|
|
350
|
+
return createHash("sha256")
|
|
351
|
+
.update(`spine-postgres-${domain}\0`)
|
|
352
|
+
.update(this.lifecycle.databaseName)
|
|
353
|
+
.update("\0")
|
|
354
|
+
.update(this.lifecycle.schema)
|
|
355
|
+
.update("\0")
|
|
356
|
+
.update(identity.join("\0"))
|
|
357
|
+
.digest()
|
|
358
|
+
.readBigInt64BE();
|
|
359
|
+
}
|
|
316
360
|
/**
|
|
317
361
|
* Reads and decodes one record on the supplied client.
|
|
318
362
|
*
|
|
319
363
|
* @param client Provides the active client.
|
|
320
364
|
* @param id Identifies the record.
|
|
321
|
-
* @param
|
|
365
|
+
* @param locked Whether to lock the selected row in the Agent transaction.
|
|
322
366
|
* @returns The decoded record, when present.
|
|
323
367
|
*/
|
|
324
|
-
async readOn(client, id,
|
|
325
|
-
const result = await client.query(`SELECT "bytes" FROM ${this.qualified()} WHERE "ID" = $1${
|
|
368
|
+
async readOn(client, id, locked = false) {
|
|
369
|
+
const result = await client.query(`SELECT "bytes" FROM ${this.qualified()} WHERE "ID" = $1${locked ? " FOR UPDATE" : ""}`, [this.id(id)]);
|
|
326
370
|
if (result.rows[0] === undefined)
|
|
327
371
|
return undefined;
|
|
328
372
|
try {
|
|
@@ -355,90 +399,48 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
355
399
|
});
|
|
356
400
|
}
|
|
357
401
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Acquires the transaction lock for one record slot.
|
|
360
|
-
*
|
|
361
|
-
* @param client Provides the active transaction client.
|
|
362
|
-
* @param id Identifies the record slot.
|
|
363
|
-
* @returns A promise that resolves after lock acquisition.
|
|
364
|
-
*/
|
|
365
|
-
lockSlot(client, id) {
|
|
366
|
-
return client
|
|
367
|
-
.query("SELECT pg_advisory_xact_lock($1)", [this.casKey(id)])
|
|
368
|
-
.then(() => undefined);
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Acquires record-slot locks in stable order to avoid deadlocks.
|
|
372
|
-
*
|
|
373
|
-
* @param client Provides the active transaction client.
|
|
374
|
-
* @param ids Identify the record slots.
|
|
375
|
-
* @returns A promise that resolves after every lock is acquired.
|
|
376
|
-
*/
|
|
377
|
-
async lockSlots(client, ids) {
|
|
378
|
-
const keys = [...new Set(ids.map((id) => this.casKey(id)))];
|
|
379
|
-
keys.sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
|
|
380
|
-
for (const key of keys)
|
|
381
|
-
await client.query("SELECT pg_advisory_xact_lock($1)", [key]);
|
|
382
|
-
}
|
|
383
402
|
/**
|
|
384
403
|
* Writes one record on a caller-managed client.
|
|
385
404
|
*
|
|
386
|
-
* @param client Provides the
|
|
405
|
+
* @param client Provides the acquired client.
|
|
387
406
|
* @param record Supplies the record to write.
|
|
388
|
-
* @param id Identifies the record.
|
|
389
|
-
* @param locked Whether the caller already holds the record lock.
|
|
390
407
|
* @returns A promise that resolves after the upsert.
|
|
391
408
|
*/
|
|
392
|
-
async writeOn(client, record
|
|
393
|
-
|
|
394
|
-
await this.lockSlot(client, id);
|
|
409
|
+
async writeOn(client, record) {
|
|
410
|
+
const id = this.recordSpec.idValueIn(record);
|
|
395
411
|
await client.query(this.upsertSql(), this.values(record, id));
|
|
396
412
|
}
|
|
397
413
|
/**
|
|
398
414
|
* Deletes one record on a caller-managed client.
|
|
399
415
|
*
|
|
400
|
-
* @param client Provides the
|
|
416
|
+
* @param client Provides the acquired client.
|
|
401
417
|
* @param id Identifies the record.
|
|
402
|
-
* @param locked Whether the caller already holds the record lock.
|
|
403
418
|
* @returns Whether PostgreSQL deleted a row.
|
|
404
419
|
*/
|
|
405
|
-
async deleteOn(client, id
|
|
406
|
-
if (!locked)
|
|
407
|
-
await this.lockSlot(client, id);
|
|
420
|
+
async deleteOn(client, id) {
|
|
408
421
|
return (await client.query(this.deleteSql(), [this.id(id)])).rowCount === 1;
|
|
409
422
|
}
|
|
410
423
|
/**
|
|
411
424
|
* Stores an immutable record or confirms an identical existing record.
|
|
412
425
|
*
|
|
413
|
-
* @param client Provides the
|
|
426
|
+
* @param client Provides the acquired client.
|
|
414
427
|
* @param record Supplies the immutable record.
|
|
415
|
-
* @param locked Whether the caller already holds the record lock.
|
|
416
428
|
* @returns A promise that resolves after insertion or identity confirmation.
|
|
417
429
|
*/
|
|
418
|
-
async appendImmutableOn(client, record
|
|
430
|
+
async appendImmutableOn(client, record) {
|
|
419
431
|
const id = this.recordSpec.idValueIn(record);
|
|
420
|
-
|
|
421
|
-
await this.
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
*
|
|
433
|
-
* @param client Provides the active client.
|
|
434
|
-
* @param record Supplies the immutable record.
|
|
435
|
-
* @returns A promise that rejects for a conflicting stored payload.
|
|
436
|
-
*/
|
|
437
|
-
async assertImmutableOn(client, record) {
|
|
438
|
-
const existing = await this.readOn(client, this.recordSpec.idValueIn(record));
|
|
439
|
-
if (existing === undefined || this.same(existing, record))
|
|
440
|
-
return;
|
|
441
|
-
throw new PostgresStorageOperationError("PostgreSQL immutable record collides.");
|
|
432
|
+
for (let attempt = 0; attempt < 3; attempt += 1) {
|
|
433
|
+
const inserted = await client.query(this.immutableSql(), this.values(record));
|
|
434
|
+
if (inserted.rowCount === 1)
|
|
435
|
+
return;
|
|
436
|
+
const existing = await this.readOn(client, id);
|
|
437
|
+
if (existing === undefined)
|
|
438
|
+
continue;
|
|
439
|
+
if (this.same(existing, record))
|
|
440
|
+
return;
|
|
441
|
+
throw new PostgresStorageOperationError("PostgreSQL immutable record collides.");
|
|
442
|
+
}
|
|
443
|
+
throw new PostgresStorageOperationError("PostgreSQL immutable record contention exceeded.");
|
|
442
444
|
}
|
|
443
445
|
/**
|
|
444
446
|
* Executes provider SQL and decodes its record rows.
|
|
@@ -472,24 +474,6 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
472
474
|
throw new PostgresStorageOperationError(`PostgreSQL history column is not declared: ${name}`);
|
|
473
475
|
return ColumnMappings.value(this.#columns, column.type, value);
|
|
474
476
|
}
|
|
475
|
-
/**
|
|
476
|
-
* Calculates a stable advisory-lock key within the selected database and schema.
|
|
477
|
-
*
|
|
478
|
-
* @param domain Separates lock purposes.
|
|
479
|
-
* @param identity Identifies the protected resource.
|
|
480
|
-
* @returns A signed PostgreSQL advisory-lock key.
|
|
481
|
-
*/
|
|
482
|
-
historyKey(domain, identity) {
|
|
483
|
-
return createHash("sha256")
|
|
484
|
-
.update(`spine-postgres-${domain}\0`)
|
|
485
|
-
.update(this.lifecycle.databaseName)
|
|
486
|
-
.update("\0")
|
|
487
|
-
.update(this.lifecycle.schema)
|
|
488
|
-
.update("\0")
|
|
489
|
-
.update(identity.join("\0"))
|
|
490
|
-
.digest()
|
|
491
|
-
.readBigInt64BE();
|
|
492
|
-
}
|
|
493
477
|
/**
|
|
494
478
|
* Encodes one record as ordered table-column values.
|
|
495
479
|
*
|
|
@@ -667,9 +651,16 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
667
651
|
const clauses = [];
|
|
668
652
|
if (query.ids !== undefined)
|
|
669
653
|
clauses.push(`"ID" IN (${query.ids.map((id) => bind.add(this.id(id))).join(", ")})`);
|
|
670
|
-
for (const filter of query.filters ?? [])
|
|
671
|
-
|
|
672
|
-
|
|
654
|
+
for (const filter of query.filters ?? []) {
|
|
655
|
+
const column = this.column(filter.column === "id" ? "ID" : filter.column);
|
|
656
|
+
const accepted = RecordQuery.acceptedValues(filter);
|
|
657
|
+
const alternatives = accepted.map((value) => `${column} IS NOT DISTINCT FROM ${bind.add(this.value(filter.column, value))}`);
|
|
658
|
+
clauses.push(accepted.length === 0
|
|
659
|
+
? "1=0"
|
|
660
|
+
: accepted.length === 1
|
|
661
|
+
? (alternatives[0] ?? "1=0")
|
|
662
|
+
: `(${alternatives.join(" OR ")})`);
|
|
663
|
+
}
|
|
673
664
|
return clauses;
|
|
674
665
|
}
|
|
675
666
|
/**
|
|
@@ -857,15 +848,6 @@ export class PostgresRecordStorage extends RecordStorage {
|
|
|
857
848
|
offsetSql(bind, offset) {
|
|
858
849
|
return ` LIMIT ${bind.add(9223372036854775807n)} OFFSET ${bind.add(offset)}`;
|
|
859
850
|
}
|
|
860
|
-
/**
|
|
861
|
-
* Calculates the advisory key for one record mutation.
|
|
862
|
-
*
|
|
863
|
-
* @param id Identifies the record.
|
|
864
|
-
* @returns The signed advisory-lock key.
|
|
865
|
-
*/
|
|
866
|
-
casKey(id) {
|
|
867
|
-
return this.historyKey("record-mutation", [this.table.tableName, String(this.id(id))]);
|
|
868
|
-
}
|
|
869
851
|
}
|
|
870
852
|
/**
|
|
871
853
|
* Allocates PostgreSQL placeholders and collects their values.
|
|
@@ -937,15 +919,6 @@ function operator(value) {
|
|
|
937
919
|
throw new PostgresStorageOperationError("PostgreSQL query operator is invalid.");
|
|
938
920
|
})());
|
|
939
921
|
}
|
|
940
|
-
/**
|
|
941
|
-
* Reports whether a failed transaction may be attempted once more.
|
|
942
|
-
*
|
|
943
|
-
* @param error Supplies the failure.
|
|
944
|
-
* @returns Whether PostgreSQL classified it as retryable.
|
|
945
|
-
*/
|
|
946
|
-
function retryable(error) {
|
|
947
|
-
return PostgresTransactionErrors.retryable(error);
|
|
948
|
-
}
|
|
949
922
|
/**
|
|
950
923
|
* Converts an arbitrary failure to the package's record-operation error.
|
|
951
924
|
*
|
|
@@ -955,6 +928,6 @@ function retryable(error) {
|
|
|
955
928
|
function operationError(error) {
|
|
956
929
|
return error instanceof PostgresStorageOperationError || error instanceof PostgresStorageDataError
|
|
957
930
|
? error
|
|
958
|
-
: new PostgresStorageOperationError("PostgreSQL record operation failed.");
|
|
931
|
+
: new PostgresStorageOperationError("PostgreSQL record operation failed.", { cause: error });
|
|
959
932
|
}
|
|
960
933
|
//# sourceMappingURL=record-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-storage.js","sourceRoot":"","sources":["../../src/postgres/record-storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record-storage.js","sourceRoot":"","sources":["../../src/postgres/record-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,WAAW,EACX,aAAa,GAQd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAoIzC;;;;;GAKG;AACH,MAAM,OAAO,qBAA4C,SAAQ,aAAmB;IA0B/D;IACA;IACA;IA3BnB;;OAEG;IACe,mBAAmB,GAAG,IAAI,CAAC;IAEpC,SAAS,CAAsB;IAE/B,QAAQ,CAAmC;IAE3C,YAAY,CAA2B;IAEhD;;;;;;;;;;OAUG;IACH,YACE,OAAuB,EACvB,IAAsB,EACL,KAA8B,EAC9B,SAAkC,EAClC,OAAmB,EACpC,MAAqB,EACrB,eAAoC,IAAI,mBAAmB,EAAE;QAE7D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QANJ,UAAK,GAAL,KAAK,CAAyB;QAC9B,cAAS,GAAT,SAAS,CAAyB;QAClC,YAAO,GAAP,OAAO,CAAY;QAKpC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,wBAAwB,CAC9C,SAAS,EACT,KAAK,CAAC,MAAM,EACZ,KAAc,EACd,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,KAAK,YAAY,CAAC;YAC1E,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;oBACxD,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;YACrF,CAAC;YACD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3E,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;YACvD,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;YACxE,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC;YACxD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACM,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO;QAC3B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAS;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5F,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,MAAS;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YAAE,OAAO;QAClE,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;IACnF,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,YAAY,CAAC,EAAK;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtF,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACO,UAAU,CAAC,EAAK;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAqB;QACtD,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACgB,iBAAiB;QAClC,OAAO;YACL,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,CAAC;YAClF,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;SACjD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACgB,KAAK,CAAC,sBAAsB,CAC7C,IAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,mBAAmB,CACjC,EAAK,EACL,QAAwC,EACxC,IAAoC;QAEpC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YACtF,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;QAC1C,CAAC;QACD,MAAM,IAAI,6BAA6B,CACrC,wDAAwD,CACzD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,eAAe,CAAC,OAAsC;QACpE,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACO,WAAW,CAAC,MAA0B;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1F,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,OAAO,CACnB,MAAkB,EAClB,EAAK,EACL,QAAwC,EACxC,IAAoC;QAEpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAChC,eAAe,IAAI,CAAC,SAAS,EAAE,mCAAmC,EAClE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CACnB,CAAC;YACF,OAAO,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,GAAG,IAAI,CAAC,SAAS,EAAE,gCAAgC,EACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,CAAC;YACF,OAAO,QAAQ,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACtD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACX,GAAG;YACH,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACzC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,KAAK,CAAC,MAAkB,EAAE,EAAK;QAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,uBAAuB,IAAI,CAAC,SAAS,EAAE,kBAAkB,EACzD,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACd,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,GAAe;QAC5B,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,2CAA2C,EAAE;gBAC9E,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,YAAY;QAClB,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,UAAU,IAAI,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC;IACrG,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,KAAK,CAAI,IAAwC;QAC7D,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CACZ,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,SAAS,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW,CAAI,IAAwC;QACnE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,cAAiC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,GAAG,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,MAAc,EAAE,QAA2B;QAC5D,OAAO,UAAU,CAAC,QAAQ,CAAC;aACxB,MAAM,CAAC,kBAAkB,MAAM,IAAI,CAAC;aACpC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;aACnC,MAAM,CAAC,IAAI,CAAC;aACZ,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,MAAM,CAAC,IAAI,CAAC;aACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC3B,MAAM,EAAE;aACR,cAAc,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,MAAM,CAAC,MAAkB,EAAE,EAAK,EAAE,MAAM,GAAG,KAAK;QAC5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,uBAAuB,IAAI,CAAC,SAAS,EAAE,mBAAmB,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EACvF,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACd,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,2CAA2C,EAAE;gBAC9E,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,OAAO,CACnB,MAAkB,EAClB,KAAe;QAEf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAM,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjE,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,2CAA2C,EAAE;gBAC9E,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,MAAS;QACjD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,QAAQ,CAAC,MAAkB,EAAE,EAAK;QAC9C,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAAkB,EAAE,MAAS;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,IAAI,QAAQ,CAAC,QAAQ,KAAK,CAAC;gBAAE,OAAO;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAS;YACrC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAAE,OAAO;YACxC,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,IAAI,6BAA6B,CAAC,kDAAkD,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,cAAc,CAC1B,MAAkB,EAClB,GAAW,EACX,MAAoC;QAEpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAM,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,2CAA2C,EAAE;gBAC9E,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,IAAY,EAAE,KAAc;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpF,IAAI,MAAM,KAAK,SAAS;YACtB,MAAM,IAAI,6BAA6B,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;QAChG,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,MAAS,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO;YACL,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5C,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACxC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CACxF;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,KAAqB;QACvC,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,GAAG,GAAG,6BAA6B,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,EAAE,CAAC;QAC7F,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,GAAG,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAC5B,GAAG;gBACD,KAAK,CAAC,KAAK,KAAK,SAAS;oBACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;oBACpC,CAAC,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,IAA4B;QAC5C,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACnB,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,0BAA0B,CAAC;QAC1F,MAAM,SAAS,GACb,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;QAChG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,0BAA0B;YAClD,MAAM,IAAI,6BAA6B,CACrC,qEAAqE,CACtE,CAAC;QACJ,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CACvB,CAAC,IAAI,EAAE,EAAE,CACP,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CACrG;YACD,UAAU;SACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;YAC3B,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,gBAAgB,EACrC,CAAC,IAAI,CAAC,cAAc,IAAI,0BAA0B,CAAC,GAAG,CAAC,CACxD,CAAC;QACN,MAAM,UAAU,GACd,CAAC,IAAI,CAAC,UAAU;YAChB,CAAC,CAAC,OAAO,IAAI,aAAa,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,MAAM,WAAW,GAAG,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,IAAI,CACd,6BAA6B,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,aAAa,KAAK,EAAE,GAAG,WAAW,CAC5F,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CACzB,SAAkD;QAElD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,YAAY,CAAC;YACxF,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC;gBAC9D,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC;gBAC5D,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ;YAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC5E,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,KAAK,EAAwC,EAAE,CAAC,KAAK,KAAK,SAAS,CACrE,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAC9B,SAAuE;QAEvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAC7C,EAAE,YAAY,CAAC;QAChB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,OAAO,CACL,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;YACpD,CAAC,OAAO,KAAK,SAAS;gBACpB,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,SAAS;gBAC9D,CAAC,CAAC,OAAO,KAAK,QAAQ;oBACpB,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;oBAC3B,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAChE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAAC,IAA4B;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,YAAY,CAAC;QACvF,IAAI,CAAC,CACH,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC;YACxD,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,CAC5D;YACC,OAAO,KAAK,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CACxC,EAAE,YAAY,CAAC;YAChB,OAAO,CACL,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC;gBAC3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAChD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,MAAc,EAAE,OAA2B;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC;QAC1F,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5D,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC;QAClE,IAAI,OAAO,KAAK,KAAK;YACnB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1F,OAAO,CACL,OAAO,KAAK,QAAQ;YACpB,CAAC,IAAI,CAAC,YAAY;YAClB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CACjF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,SAAkD;QAC3E,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACtC,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1D,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;OAMG;IACK,aAAa,CAAC,KAAqB,EAAE,IAAW;QACtD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YACzB,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,yBAAyB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAC1F,CAAC;YACF,OAAO,CAAC,IAAI,CACV,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACnB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACrB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oBAC5B,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACvC,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,KAAqB;QACvC,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CACvB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACpD,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAC1E;YACD,UAAU;SACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,KAAqB,EAAE,IAAW;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QACxC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI;iBAChB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACf,GAAG,CACF,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CACjB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAC1D,wBAAwB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAC5F,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YACxF,KAAK,CAAC,IAAI,CACR,IAAI;gBACF,GAAG,MAAM;gBACT,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;aAC5E,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CACnB,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;YAC1D,wBAAwB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CACzF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrF,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACnC,CAAC;IAED;;;;;;;;OAQG;IACK,SAAS,CACf,MAAc,EACd,SAAiB,EACjB,KAAwB,EACxB,IAAW;QAEX,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,cAAc,CAAC;QACpF,OAAO,IAAI,MAAM,oBAAoB,MAAM,IAAI,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;IACxG,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CAAC,SAAsC,EAAE,IAAW;QACnE,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;YAC1B,OAAO,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACpF,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY;YACjC,OAAO,CACL,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;gBACnE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CACxD,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAC9F,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,IAAY;QACzB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;YACjE,MAAM,IAAI,6BAA6B,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,IAAY,EAAE,KAAc;QACxC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,EAAE,CAAC,KAAU,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpF,IAAI,MAAM,KAAK,SAAS;YACtB,MAAM,IAAI,6BAA6B,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;QAC9F,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;;;OAKG;IACK,EAAE,CAAC,EAAK;QACd,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,IAAI,CAAC,IAAmB,EAAE,KAAoB;QACpD,OAAO,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAC9C,CAAC,CAAC,IAAI,KAAK,KAAK;YAChB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAC5D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CACzD,CAAC;IACR,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,OAAO,eAAe,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACK,YAAY;QAClB,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtF,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,eAAe,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,aAAa,MAAM,GAAG,CAAC;IAC3E,CAAC;IAED;;;;;;OAMG;IACK,SAAS,CAAC,IAAW,EAAE,MAAc;QAC3C,OAAO,UAAU,IAAI,CAAC,GAAG,CAAC,oBAA0B,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACrF,CAAC;CACF;AA0BD;;GAEG;AACH,MAAM,KAAK;IACA,MAAM,GAAwB,EAAE,CAAC;IAE1C;;;;;OAKG;IACH,GAAG,CAAC,KAAwB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,GAAW;QACd,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,OAA0B;IACvC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,KAAK,CAAC,KAA0B;IACvC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,CAEH;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,GAAG;QACb,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,IAAI;KAEpB,CAAC,KAAK,CAAC;QACR,CAAC,GAAG,EAAE;YACJ,MAAM,IAAI,6BAA6B,CAAC,uCAAuC,CAAC,CAAC;QACnF,CAAC,CAAC,EAAE,CACL,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,6BAA6B,IAAI,KAAK,YAAY,wBAAwB;QAChG,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,6BAA6B,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACjG,CAAC"}
|