@harperfast/harper-pro 5.0.17 → 5.0.18
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/core/resources/RecordEncoder.ts +15 -12
- package/core/resources/RocksTransactionLogStore.ts +51 -0
- package/core/resources/Table.ts +17 -15
- package/core/resources/auditStore.ts +97 -5
- package/core/resources/databases.ts +67 -7
- package/dist/cloneNode/cloneNode.js +13 -8
- package/dist/cloneNode/cloneNode.js.map +1 -1
- package/dist/core/resources/RecordEncoder.js +1 -1
- package/dist/core/resources/RecordEncoder.js.map +1 -1
- package/dist/core/resources/RocksTransactionLogStore.js.map +1 -1
- package/dist/core/resources/Table.js +17 -17
- package/dist/core/resources/Table.js.map +1 -1
- package/dist/core/resources/auditStore.js +82 -5
- package/dist/core/resources/auditStore.js.map +1 -1
- package/dist/core/resources/databases.js +68 -5
- package/dist/core/resources/databases.js.map +1 -1
- package/dist/replication/replicationConnection.js +63 -18
- package/dist/replication/replicationConnection.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/replication/replicationConnection.ts +66 -20
- package/studio/web/assets/{index-DhLu-DHX.js → index-Tv7e9k8K.js} +5 -5
- package/studio/web/assets/{index-DhLu-DHX.js.map → index-Tv7e9k8K.js.map} +1 -1
- package/studio/web/assets/{index.lazy-DBjOisCz.js → index.lazy-De4JGuec.js} +2 -2
- package/studio/web/assets/{index.lazy-DBjOisCz.js.map → index.lazy-De4JGuec.js.map} +1 -1
- package/studio/web/assets/{profile-DSL-499E.js → profile-voeNsl4C.js} +2 -2
- package/studio/web/assets/{profile-DSL-499E.js.map → profile-voeNsl4C.js.map} +1 -1
- package/studio/web/assets/{status-BRW5QtzY.js → status-110CCE-v.js} +2 -2
- package/studio/web/assets/{status-BRW5QtzY.js.map → status-110CCE-v.js.map} +1 -1
- package/studio/web/index.html +1 -1
|
@@ -195,20 +195,23 @@ export class RecordEncoder extends Encoder {
|
|
|
195
195
|
const superGetStructures = this.getStructures;
|
|
196
196
|
this.saveStructures = function (structures, isCompatible): boolean | undefined {
|
|
197
197
|
if (this.isRocksDB) {
|
|
198
|
-
return this.rootStore.transactionSync(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
if (
|
|
198
|
+
return this.rootStore.transactionSync(
|
|
199
|
+
(txn) => {
|
|
200
|
+
const sharedStructuresKey = [Symbol.for('structures'), this.name];
|
|
201
|
+
const existingStructuresBuffer = txn.getBinarySync(sharedStructuresKey);
|
|
202
|
+
const existingStructures = existingStructuresBuffer ? this.decode(existingStructuresBuffer) : undefined;
|
|
203
|
+
if (typeof isCompatible == 'function') {
|
|
204
|
+
if (!isCompatible(existingStructures)) {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
} else if (existingStructures && existingStructures.length !== isCompatible) {
|
|
204
208
|
return false;
|
|
205
209
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
});
|
|
210
|
+
txn.putSync(sharedStructuresKey, structures);
|
|
211
|
+
this.structureUpdate = structures;
|
|
212
|
+
},
|
|
213
|
+
{ retryOnBusy: true }
|
|
214
|
+
);
|
|
212
215
|
} else {
|
|
213
216
|
const result = superSaveStructures.call(this, structures, isCompatible);
|
|
214
217
|
this.structureUpdate = structures;
|
|
@@ -5,6 +5,7 @@ import { Decoder, readAuditEntry, ENTRY_DATAVIEW, AuditRecord, createAuditEntry
|
|
|
5
5
|
import { isMainThread } from 'node:worker_threads';
|
|
6
6
|
import { EventEmitter } from 'node:events';
|
|
7
7
|
import { asBinary } from 'lmdb';
|
|
8
|
+
import * as harperLogger from '../utility/logging/harper_logger.ts';
|
|
8
9
|
|
|
9
10
|
if (!process.env.HARPER_NO_FLUSH_ON_EXIT && isMainThread) {
|
|
10
11
|
// we want to be able to test log replay
|
|
@@ -288,6 +289,7 @@ export class RocksTransactionLogStore extends EventEmitter {
|
|
|
288
289
|
iterable.iterate = () => aggregateIterator;
|
|
289
290
|
}
|
|
290
291
|
const mappedAggregateIterable = iterable.map(({ timestamp, data, endTxn }: TransactionEntry) => {
|
|
292
|
+
<<<<<<< HEAD
|
|
291
293
|
const decoder = new Decoder(data.buffer, data.byteOffset, data.byteLength);
|
|
292
294
|
data.dataView = decoder;
|
|
293
295
|
// This represents the data that shouldn't be transferred for replication
|
|
@@ -311,6 +313,55 @@ export class RocksTransactionLogStore extends EventEmitter {
|
|
|
311
313
|
auditRecord.previousVersion = previousVersion;
|
|
312
314
|
auditRecord.structureVersion = structureVersion & 0x00ffffff;
|
|
313
315
|
return auditRecord;
|
|
316
|
+
=======
|
|
317
|
+
// Per-entry try/catch: a corrupt rocks prelude (first 4-16 bytes) would otherwise
|
|
318
|
+
// throw a raw `RangeError: Offset is outside the bounds of the DataView` out
|
|
319
|
+
// through `iterable.map`, escape the for-of consumer, and land as an
|
|
320
|
+
// uncaughtException on a later tick — stalling outgoing replication at the
|
|
321
|
+
// failing offset on every catch-up attempt. On error, yield a sentinel record
|
|
322
|
+
// with the timestamp preserved so iteration advances past the bad entry;
|
|
323
|
+
// downstream consumers already skip records with no `tableId`/`type`.
|
|
324
|
+
try {
|
|
325
|
+
const decoder = new Decoder(data.buffer, data.byteOffset, data.byteLength);
|
|
326
|
+
(data as any).dataView = decoder;
|
|
327
|
+
// This represents the data that shouldn't be transferred for replication
|
|
328
|
+
let structureVersion = decoder.getUint32(0);
|
|
329
|
+
let position = 4;
|
|
330
|
+
let previousResidencyId: number;
|
|
331
|
+
let previousVersion: number;
|
|
332
|
+
if (structureVersion & HAS_PREVIOUS_RESIDENCY_ID) {
|
|
333
|
+
previousResidencyId = decoder.getUint32(position);
|
|
334
|
+
position += 4;
|
|
335
|
+
}
|
|
336
|
+
if (structureVersion & HAS_PREVIOUS_VERSION) {
|
|
337
|
+
// does previous residency id and version actually require separate flags?
|
|
338
|
+
previousVersion = decoder.getFloat64(position);
|
|
339
|
+
position += 8;
|
|
340
|
+
}
|
|
341
|
+
const auditRecord = readAuditEntry(data, position, undefined);
|
|
342
|
+
auditRecord.version = timestamp;
|
|
343
|
+
auditRecord.endTxn = endTxn;
|
|
344
|
+
auditRecord.previousResidencyId = previousResidencyId;
|
|
345
|
+
auditRecord.previousVersion = previousVersion;
|
|
346
|
+
auditRecord.structureVersion = structureVersion & 0x00ffffff;
|
|
347
|
+
return auditRecord;
|
|
348
|
+
} catch (error) {
|
|
349
|
+
harperLogger.error('Failed to decode rocks transaction log entry; skipping', error, {
|
|
350
|
+
timestamp,
|
|
351
|
+
byteLength: data?.byteLength,
|
|
352
|
+
});
|
|
353
|
+
return {
|
|
354
|
+
version: timestamp,
|
|
355
|
+
endTxn,
|
|
356
|
+
type: undefined,
|
|
357
|
+
tableId: undefined,
|
|
358
|
+
recordId: undefined,
|
|
359
|
+
getValue: () => undefined,
|
|
360
|
+
getBinaryValue: () => undefined,
|
|
361
|
+
getBinaryRecordId: () => undefined,
|
|
362
|
+
} as unknown as AuditRecord;
|
|
363
|
+
}
|
|
364
|
+
>>>>>>> b84fbbd (fix: skip corrupt audit entries during iteration instead of throwing)
|
|
314
365
|
});
|
|
315
366
|
// Add methods to the mapped iterable if we have an aggregate iterator
|
|
316
367
|
if (aggregateIterator?.addLog) {
|
package/core/resources/Table.ts
CHANGED
|
@@ -805,23 +805,23 @@ export function makeTable(options) {
|
|
|
805
805
|
/**
|
|
806
806
|
* Set TTL expiration for records in this table. On retrieval, record timestamps are checked for expiration.
|
|
807
807
|
* This also informs the scheduling for record eviction.
|
|
808
|
-
* @param
|
|
809
|
-
*
|
|
808
|
+
* @param opts Time in seconds until records expire, or an options object with `expiration`, `eviction`,
|
|
809
|
+
* and `scanInterval` (all in seconds, all optional). Number form preserves any previously configured
|
|
810
|
+
* eviction/scanInterval; object form replaces all three.
|
|
810
811
|
*/
|
|
811
|
-
static setTTLExpiration(
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
if (typeof
|
|
815
|
-
expirationMs =
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
} else throw new Error('Invalid expiration value type');
|
|
812
|
+
static setTTLExpiration(opts: number | { expiration?: number; eviction?: number; scanInterval?: number }) {
|
|
813
|
+
if (opts == null || (typeof opts !== 'number' && typeof opts !== 'object'))
|
|
814
|
+
throw new Error('Invalid expiration value type');
|
|
815
|
+
if (typeof opts === 'number') {
|
|
816
|
+
expirationMs = opts * 1000;
|
|
817
|
+
} else {
|
|
818
|
+
// `??` so an explicit 0 is treated as the user's chosen value, not as "missing"
|
|
819
|
+
expirationMs = (opts.expiration ?? 0) * 1000;
|
|
820
|
+
evictionMs = (opts.eviction ?? 0) * 1000;
|
|
821
|
+
cleanupInterval = (opts.scanInterval ?? 0) * 1000;
|
|
822
|
+
}
|
|
823
823
|
if (expirationMs < 0) throw new Error('Expiration can not be negative');
|
|
824
|
-
// default to one quarter of the total eviction
|
|
824
|
+
// default to one quarter of the total expiration+eviction window
|
|
825
825
|
cleanupInterval = cleanupInterval || (expirationMs + evictionMs) / 4;
|
|
826
826
|
scheduleCleanup();
|
|
827
827
|
}
|
|
@@ -4245,6 +4245,8 @@ export function makeTable(options) {
|
|
|
4245
4245
|
Boolean(invalidated),
|
|
4246
4246
|
auditRecord
|
|
4247
4247
|
);
|
|
4248
|
+
// arm the eviction scanner, mirroring the .put() path
|
|
4249
|
+
if (sourceContext.expiresAt) scheduleCleanup();
|
|
4248
4250
|
} else if (existingEntry) {
|
|
4249
4251
|
logger.trace?.(
|
|
4250
4252
|
`Deleting resolved record from source with id: ${id}, timestamp: ${new Date(txnTime).toISOString()}`
|
|
@@ -49,7 +49,15 @@ export type AuditRecord = {
|
|
|
49
49
|
previousNodeId?: number;
|
|
50
50
|
previousAdditionalAuditRefs?: Array<{ version: number; nodeId: number }>;
|
|
51
51
|
endTxn?: boolean;
|
|
52
|
+
<<<<<<< HEAD
|
|
52
53
|
structureVersion?: number;
|
|
54
|
+
=======
|
|
55
|
+
getBinaryRecordId?: any;
|
|
56
|
+
<<<<<<< HEAD
|
|
57
|
+
corrupt?: boolean;
|
|
58
|
+
>>>>>>> b84fbbd (fix: skip corrupt audit entries during iteration instead of throwing)
|
|
59
|
+
=======
|
|
60
|
+
>>>>>>> 6b6192c (test: cover lmdb keyEncoder and rocks-prelude paths; drop unused corrupt flag)
|
|
53
61
|
};
|
|
54
62
|
|
|
55
63
|
const ENTRY_HEADER = Buffer.alloc(2816); // this is sized to be large enough for the maximum key size (1976) plus large usernames. We may want to consider some limits on usernames to ensure this all fits
|
|
@@ -73,6 +81,16 @@ export const transactionKeyEncoder = {
|
|
|
73
81
|
if (buffer[start] === 66) {
|
|
74
82
|
const dataView =
|
|
75
83
|
buffer.dataView || (buffer.dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength));
|
|
84
|
+
// Without this bounds check, a truncated key buffer escapes as RangeError up
|
|
85
|
+
// through lmdb-js's iterator and lands as an uncaughtException on a later tick,
|
|
86
|
+
// stalling outgoing replication for the affected (peer, db) pair.
|
|
87
|
+
if (start + 8 > buffer.byteLength) {
|
|
88
|
+
harperLogger.warn('Audit key buffer too short for float64 read; returning NaN sentinel', {
|
|
89
|
+
start,
|
|
90
|
+
byteLength: buffer.byteLength,
|
|
91
|
+
});
|
|
92
|
+
return NaN;
|
|
93
|
+
}
|
|
76
94
|
return dataView.getFloat64(start);
|
|
77
95
|
} else {
|
|
78
96
|
return readKey(buffer, start, end);
|
|
@@ -439,6 +457,15 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
439
457
|
const nodeId = decoder.readInt();
|
|
440
458
|
const tableId = decoder.readInt();
|
|
441
459
|
let length = decoder.readInt();
|
|
460
|
+
// A corrupt length field (e.g., a 0xff-prefixed uint32) would otherwise push
|
|
461
|
+
// decoder.position hundreds of megabytes past the buffer; the next readFloat64
|
|
462
|
+
// then throws with the bogus position in the message. Failing fast here keeps
|
|
463
|
+
// the throw inside this try/catch so we surface a sentinel instead.
|
|
464
|
+
if (length < 0 || decoder.position + length > buffer.byteLength) {
|
|
465
|
+
throw new RangeError(
|
|
466
|
+
`Audit entry recordId length ${length} exceeds remaining buffer (position ${decoder.position}, byteLength ${buffer.byteLength})`
|
|
467
|
+
);
|
|
468
|
+
}
|
|
442
469
|
const recordIdStart = decoder.position;
|
|
443
470
|
const recordIdEnd = (decoder.position += length);
|
|
444
471
|
// TODO: Once we support multiple format versions, we can conditionally read the version (and the previousResidencyId)
|
|
@@ -469,6 +496,11 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
469
496
|
}
|
|
470
497
|
}
|
|
471
498
|
length = decoder.readInt();
|
|
499
|
+
if (length < 0 || decoder.position + length > buffer.byteLength) {
|
|
500
|
+
throw new RangeError(
|
|
501
|
+
`Audit entry username length ${length} exceeds remaining buffer (position ${decoder.position}, byteLength ${buffer.byteLength})`
|
|
502
|
+
);
|
|
503
|
+
}
|
|
472
504
|
const usernameStart = decoder.position;
|
|
473
505
|
const usernameEnd = (decoder.position += length);
|
|
474
506
|
let value: any;
|
|
@@ -477,8 +509,17 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
477
509
|
tableId,
|
|
478
510
|
nodeId,
|
|
479
511
|
get recordId() {
|
|
480
|
-
//
|
|
481
|
-
|
|
512
|
+
// The recordId is decoded lazily and lives outside readAuditEntry's try/catch,
|
|
513
|
+
// so a corrupt recordId region would otherwise escape as an uncaught RangeError
|
|
514
|
+
// on property access. Catch and return undefined; callers already treat missing
|
|
515
|
+
// recordId as a skip-eligible entry.
|
|
516
|
+
try {
|
|
517
|
+
// use a subarray to protect against the underlying buffer being modified
|
|
518
|
+
return readKey(buffer.subarray(0, recordIdEnd), recordIdStart, recordIdEnd);
|
|
519
|
+
} catch (error) {
|
|
520
|
+
harperLogger.warn('Failed to decode audit recordId; treating as corrupt', error);
|
|
521
|
+
return undefined;
|
|
522
|
+
}
|
|
482
523
|
},
|
|
483
524
|
getBinaryRecordId() {
|
|
484
525
|
return buffer.subarray(recordIdStart, recordIdEnd);
|
|
@@ -486,9 +527,14 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
486
527
|
version,
|
|
487
528
|
previousVersion,
|
|
488
529
|
get user() {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
530
|
+
try {
|
|
531
|
+
return usernameEnd > usernameStart
|
|
532
|
+
? readKey(buffer.subarray(0, usernameEnd), usernameStart, usernameEnd)
|
|
533
|
+
: undefined;
|
|
534
|
+
} catch (error) {
|
|
535
|
+
harperLogger.warn('Failed to decode audit username; treating as corrupt', error);
|
|
536
|
+
return undefined;
|
|
537
|
+
}
|
|
492
538
|
},
|
|
493
539
|
get encoded() {
|
|
494
540
|
return start ? buffer.subarray(start, end) : buffer;
|
|
@@ -523,10 +569,56 @@ export function readAuditEntry(buffer: Uint8Array, start = 0, end = undefined):
|
|
|
523
569
|
};
|
|
524
570
|
} catch (error) {
|
|
525
571
|
harperLogger.error('Reading audit entry error', error, buffer);
|
|
572
|
+
<<<<<<< HEAD
|
|
526
573
|
return {};
|
|
574
|
+
=======
|
|
575
|
+
return createCorruptAuditSentinel(buffer, start, end);
|
|
576
|
+
>>>>>>> b84fbbd (fix: skip corrupt audit entries during iteration instead of throwing)
|
|
527
577
|
}
|
|
528
578
|
}
|
|
529
579
|
|
|
580
|
+
/**
|
|
581
|
+
* Build a structurally complete audit record for an entry that failed to decode. The fields
|
|
582
|
+
* mirror the happy-path shape so downstream consumers that access (e.g.) `getValue` or the
|
|
583
|
+
* `recordId` getter don't blow up with a `TypeError: not a function` / `undefined.is(...)`
|
|
584
|
+
* after the header decode already failed. Consumers identify these by the undefined
|
|
585
|
+
* `tableId`/`type` (the same signal lmdb has produced from this catch since before this
|
|
586
|
+
* change) and skip them — `classifyAuditEntryForReplay` calls them out as `corrupt-header`,
|
|
587
|
+
* and the dispatch loops in Table.ts / transactionBroadcast.ts filter via tableId guards.
|
|
588
|
+
*/
|
|
589
|
+
function createCorruptAuditSentinel(buffer: Uint8Array, start: number, end: number | undefined): AuditRecord {
|
|
590
|
+
return {
|
|
591
|
+
type: undefined,
|
|
592
|
+
tableId: undefined,
|
|
593
|
+
nodeId: undefined,
|
|
594
|
+
recordId: undefined,
|
|
595
|
+
version: undefined,
|
|
596
|
+
previousVersion: undefined,
|
|
597
|
+
user: undefined,
|
|
598
|
+
extendedType: undefined,
|
|
599
|
+
residencyId: undefined,
|
|
600
|
+
previousResidencyId: undefined,
|
|
601
|
+
expiresAt: undefined,
|
|
602
|
+
originatingOperation: undefined,
|
|
603
|
+
previousAdditionalAuditRefs: undefined,
|
|
604
|
+
get encoded() {
|
|
605
|
+
return start ? buffer.subarray(start, end) : buffer;
|
|
606
|
+
},
|
|
607
|
+
get size() {
|
|
608
|
+
return start !== undefined && end !== undefined ? end - start : buffer.byteLength;
|
|
609
|
+
},
|
|
610
|
+
getBinaryRecordId() {
|
|
611
|
+
return undefined;
|
|
612
|
+
},
|
|
613
|
+
getValue() {
|
|
614
|
+
return undefined;
|
|
615
|
+
},
|
|
616
|
+
getBinaryValue() {
|
|
617
|
+
return undefined;
|
|
618
|
+
},
|
|
619
|
+
} as any;
|
|
620
|
+
}
|
|
621
|
+
|
|
530
622
|
export class Decoder extends DataView<ArrayBufferLike> {
|
|
531
623
|
position = 0;
|
|
532
624
|
readInt() {
|
|
@@ -1063,6 +1063,7 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1063
1063
|
const dbi = openIndex(dbiKey, rootStore, attribute);
|
|
1064
1064
|
if (
|
|
1065
1065
|
changed ||
|
|
1066
|
+
attributeDescriptor.indexingFailed ||
|
|
1066
1067
|
(attributeDescriptor.indexingPID && attributeDescriptor.indexingPID !== process.pid) ||
|
|
1067
1068
|
attributeDescriptor.restartNumber < workerData?.restartNumber
|
|
1068
1069
|
) {
|
|
@@ -1071,6 +1072,7 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1071
1072
|
attributeDescriptor = attributesDbi.getSync(dbiKey);
|
|
1072
1073
|
if (
|
|
1073
1074
|
changed ||
|
|
1075
|
+
attributeDescriptor.indexingFailed ||
|
|
1074
1076
|
(attributeDescriptor.indexingPID && attributeDescriptor.indexingPID !== process.pid) ||
|
|
1075
1077
|
attributeDescriptor.restartNumber < workerData?.restartNumber
|
|
1076
1078
|
) {
|
|
@@ -1084,14 +1086,20 @@ export function table<TableResourceType>(tableDefinition: TableDefinition): Tabl
|
|
|
1084
1086
|
if (hasExistingData) {
|
|
1085
1087
|
attribute.lastIndexedKey = attributeDescriptor?.lastIndexedKey ?? undefined;
|
|
1086
1088
|
attribute.indexingPID = process.pid;
|
|
1089
|
+
delete attribute.indexingFailed; // clear failure flag for the new run
|
|
1087
1090
|
dbi.isIndexing = true;
|
|
1088
|
-
Object.defineProperty(attribute, 'dbi', { value: dbi });
|
|
1091
|
+
Object.defineProperty(attribute, 'dbi', { value: dbi, configurable: true, enumerable: false });
|
|
1089
1092
|
// we only set indexing nulls to true if new or reindexing, we can't have partial indexing of null
|
|
1090
1093
|
attributesToIndex.push(attribute);
|
|
1091
1094
|
}
|
|
1092
1095
|
}
|
|
1093
1096
|
attributesDbi.put(dbiKey, attribute);
|
|
1094
1097
|
}
|
|
1098
|
+
// If a migration is in progress (indexingPID set), any newly opened dbi must also
|
|
1099
|
+
// reflect isIndexing = true. A resetDatabases() during an active runIndexing creates
|
|
1100
|
+
// a new dbi object; without this, queries could use the new dbi (isIndexing = false)
|
|
1101
|
+
// and return incomplete results while the backfill is still running.
|
|
1102
|
+
if (attributeDescriptor?.indexingPID) dbi.isIndexing = true;
|
|
1095
1103
|
if (attributeDescriptor?.indexNulls && attribute.indexNulls === undefined) attribute.indexNulls = true;
|
|
1096
1104
|
dbi.indexNulls = attribute.indexNulls;
|
|
1097
1105
|
indices[attribute.name] = dbi;
|
|
@@ -1162,6 +1170,7 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1162
1170
|
lastResolution = index.drop();
|
|
1163
1171
|
}
|
|
1164
1172
|
let interrupted;
|
|
1173
|
+
let hadIndexingErrors = false;
|
|
1165
1174
|
const attributeErrorReported = {};
|
|
1166
1175
|
let indexed = 0;
|
|
1167
1176
|
const attributesLength = attributes.length;
|
|
@@ -1215,6 +1224,7 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1215
1224
|
}
|
|
1216
1225
|
}
|
|
1217
1226
|
} catch (error) {
|
|
1227
|
+
hadIndexingErrors = true;
|
|
1218
1228
|
if (!attributeErrorReported[property]) {
|
|
1219
1229
|
// just report an indexing error once per attribute so we don't spam the logs
|
|
1220
1230
|
attributeErrorReported[property] = true;
|
|
@@ -1227,6 +1237,7 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1227
1237
|
() => outstanding--,
|
|
1228
1238
|
(error) => {
|
|
1229
1239
|
outstanding--;
|
|
1240
|
+
hadIndexingErrors = true;
|
|
1230
1241
|
logger.error(error);
|
|
1231
1242
|
}
|
|
1232
1243
|
);
|
|
@@ -1244,20 +1255,69 @@ async function runIndexing(Table, attributes, indicesToRemove) {
|
|
|
1244
1255
|
if (outstanding > MAX_OUTSTANDING_INDEXING) await lastResolution;
|
|
1245
1256
|
else if (outstanding > MIN_OUTSTANDING_INDEXING) await new Promise((resolve) => setImmediate(resolve)); // yield event turn, don't want to use all computation
|
|
1246
1257
|
}
|
|
1258
|
+
}
|
|
1259
|
+
// Await the last pending put. If it rejects, that is also an indexing error.
|
|
1260
|
+
// Note: the when() calls above already attach rejection handlers to each record's
|
|
1261
|
+
// last-put promise; this try-catch specifically handles the case where lastResolution
|
|
1262
|
+
// itself rejects (i.e. the very last put in the loop failed) which would otherwise
|
|
1263
|
+
// throw past the hadIndexingErrors check to the outer catch. The broader issue of
|
|
1264
|
+
// unhandled rejections from non-last puts in multi-value attributes is pre-existing
|
|
1265
|
+
// and out of scope for this fix.
|
|
1266
|
+
try {
|
|
1267
|
+
await lastResolution;
|
|
1268
|
+
} catch (error) {
|
|
1269
|
+
hadIndexingErrors = true;
|
|
1270
|
+
logger.error(error);
|
|
1271
|
+
}
|
|
1272
|
+
// Yield one more event turn so any queued when() error callbacks (which fire as
|
|
1273
|
+
// microtasks when their tracked promise settles) have a chance to set hadIndexingErrors
|
|
1274
|
+
// before we decide whether to mark indexing as complete.
|
|
1275
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
1276
|
+
if (hadIndexingErrors) {
|
|
1277
|
+
// Some records failed to index. Persist the failure marker in the descriptor so
|
|
1278
|
+
// the next call to table() (including after a restart with a fresh PID) re-triggers
|
|
1279
|
+
// the backfill from the last checkpoint. Do NOT clear indexingPID or isIndexing —
|
|
1280
|
+
// leave the index in its incomplete state so queries return 503 "not indexed yet"
|
|
1281
|
+
// rather than silently returning partial results. This is the key fix for the
|
|
1282
|
+
// serent-canopy issue #135 fingerprint: a completed migration with transient errors
|
|
1283
|
+
// (e.g. ERR_BUSY from RocksDB under load) leaving gaps while appearing successful.
|
|
1284
|
+
for (const attribute of attributes) {
|
|
1285
|
+
attribute.indexingFailed = true;
|
|
1286
|
+
// Preserve lastIndexedKey so the retry resumes from the last checkpoint.
|
|
1287
|
+
lastResolution = Table.dbisDB.put(attribute.key, attribute);
|
|
1288
|
+
// Keep isIndexing = true on both the attribute.dbi and the currently-active dbi
|
|
1289
|
+
// in Table.indices (which may differ if resetDatabases() ran during this pass).
|
|
1290
|
+
attribute.dbi.isIndexing = true;
|
|
1291
|
+
const activeDbi = Table.indices[attribute.name];
|
|
1292
|
+
if (activeDbi) activeDbi.isIndexing = true;
|
|
1293
|
+
}
|
|
1294
|
+
await lastResolution;
|
|
1295
|
+
logger.warn(
|
|
1296
|
+
`Indexing of ${Table.tableName} encountered errors on some records - index will remain incomplete. ` +
|
|
1297
|
+
`On next restart the migration will be retried from the last checkpoint (indexingFailed=true). ` +
|
|
1298
|
+
`Affected attributes: ${attributes.map((a) => a.name).join(', ')}`
|
|
1299
|
+
);
|
|
1300
|
+
} else {
|
|
1247
1301
|
// update the attributes to indicate that we are finished
|
|
1248
1302
|
for (const attribute of attributes) {
|
|
1249
1303
|
delete attribute.lastIndexedKey;
|
|
1250
1304
|
delete attribute.indexingPID;
|
|
1305
|
+
delete attribute.indexingFailed;
|
|
1251
1306
|
attribute.dbi.isIndexing = false;
|
|
1307
|
+
// Also clear isIndexing on the currently-active dbi in Table.indices, which may
|
|
1308
|
+
// differ from attribute.dbi if a resetDatabases() call during this migration
|
|
1309
|
+
// opened a new dbi and registered it there.
|
|
1310
|
+
const activeDbi = Table.indices[attribute.name];
|
|
1311
|
+
if (activeDbi) activeDbi.isIndexing = false;
|
|
1252
1312
|
lastResolution = Table.dbisDB.put(attribute.key, attribute);
|
|
1253
1313
|
}
|
|
1314
|
+
await lastResolution;
|
|
1315
|
+
// now notify all the threads that we are done and the index is ready to use
|
|
1316
|
+
await signalling.signalSchemaChange(
|
|
1317
|
+
new SchemaEventMsg(process.pid, 'indexing-finished', Table.databaseName, Table.tableName)
|
|
1318
|
+
);
|
|
1319
|
+
logger.info(`Finished indexing ${Table.tableName} attributes`, attributes);
|
|
1254
1320
|
}
|
|
1255
|
-
await lastResolution;
|
|
1256
|
-
// now notify all the threads that we are done and the index is ready to use
|
|
1257
|
-
await signalling.signalSchemaChange(
|
|
1258
|
-
new SchemaEventMsg(process.pid, 'indexing-finished', Table.databaseName, Table.tableName)
|
|
1259
|
-
);
|
|
1260
|
-
logger.info(`Finished indexing ${Table.tableName} attributes`, attributes);
|
|
1261
1321
|
} catch (error) {
|
|
1262
1322
|
logger.error('Error in indexing', error);
|
|
1263
1323
|
}
|
|
@@ -241,14 +241,6 @@ async function cloneNode() {
|
|
|
241
241
|
};
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
else {
|
|
245
|
-
// We delete the clone-temp-admin user because now that HDB is installed we want user to come from the leader via replication
|
|
246
|
-
// systemExists check will show if this is the first time clone is being run.
|
|
247
|
-
if (!systemExists) {
|
|
248
|
-
const { databases } = await import('../core/resources/databases.js');
|
|
249
|
-
await databases.system.hdb_user.delete({ username: 'clone-temp-admin' });
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
244
|
// Restarting workers to ensure new configuration it loaded.
|
|
253
245
|
log('Restarting workers to apply new configuration');
|
|
254
246
|
const { restartWorkers } = await import('../core/server/threads/manageThreads.js');
|
|
@@ -264,6 +256,19 @@ async function cloneNode() {
|
|
|
264
256
|
await cloneSSHKeys();
|
|
265
257
|
// Monitor the synchronization status of the databases after cloning and update availability status once sync is complete
|
|
266
258
|
await monitorSync();
|
|
259
|
+
// Delete clone-temp-admin only after monitorSync() so that the account remains valid while
|
|
260
|
+
// the leader establishes replication and syncs real users. Deleting it earlier leaves the
|
|
261
|
+
// node with no users during setNode(), which prevents replication from being established.
|
|
262
|
+
// Runs on retry too (when systemExists but cloned not yet set) via !hdbConfig?.cloned.
|
|
263
|
+
if ((usingCertAuth || leaderToken) && (!systemExists || !hdbConfig?.cloned)) {
|
|
264
|
+
try {
|
|
265
|
+
const { databases } = await import('../core/resources/databases.js');
|
|
266
|
+
await databases.system.hdb_user.delete({ username: 'clone-temp-admin' });
|
|
267
|
+
}
|
|
268
|
+
catch (err) {
|
|
269
|
+
log(`Warning: failed to delete clone-temp-admin: ${err}`, 'error');
|
|
270
|
+
}
|
|
271
|
+
}
|
|
267
272
|
// Set a config value to indicate that this node has been cloned, which can be used by other processes to check clone status and prevent duplicate cloning
|
|
268
273
|
(0, configUtils_js_1.updateConfigValue)(hdbTerms_ts_1.CONFIG_PARAMS.CLONED, true);
|
|
269
274
|
log(`Clone from leader node ${leaderURL} complete`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloneNode.js","sourceRoot":"","sources":["../../cloneNode/cloneNode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiKA,8BAyIC;AA1SD,yCAAsC;AACtC,qCAA6E;AAC7E,yCAA0C;AAC1C,qCAAkC;AAClC,6CAA0C;AAC1C,mDAA2D;AAC3D,2CAAqD;AACrD,yCAAmD;AACnD,gDAAwB;AACxB,mCAA8C;AAE9C,8GAAuE;AACvE,iFAAmE;AACnE,qEAAiE;AACjE,kEAAqH;AACrH,wGAA6E;AAE7E,6DAWqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAExC,MAAM,4BAA4B,GAAG;IACpC,mBAAmB,EAAE,IAAI;IACzB,kCAAkC,EAAE,IAAI;IACxC,0BAA0B,EAAE,IAAI;IAChC,yBAAyB,EAAE,IAAI;IAC/B,mCAAmC,EAAE,IAAI;IACzC,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,qBAAqB,EAAE,IAAI;IAC3B,kCAAkC,EAAE,IAAI;IACxC,6BAA6B,EAAE,IAAI;IACnC,4BAA4B,EAAE,IAAI;IAClC,sCAAsC,EAAE,IAAI;IAC5C,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,IAAI;IACf,sCAAsC,EAAE,IAAI;IAC5C,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,wBAAwB,EAAE,IAAI;IAC9B,oBAAoB,EAAE,IAAI;IAC1B,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;CACnB,CAAC;AAkBF,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAS,EAAC;IAC5B,OAAO,EAAE;QACR,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACxC;IACD,MAAM,EAAE,KAAK;CACb,CAA6B,CAAC;AAE/B,MAAM,SAAS,GAAW,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAC7E,MAAM,cAAc,GAAW,MAAM,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC5F,MAAM,cAAc,GAAW,MAAM,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC5F,MAAM,WAAW,GAAW,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACnF,MAAM,eAAe,GAAY,MAAM,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC;AAC/G,MAAM,aAAa,GAAW,IAAI,CAAC,GAAG,CACrC,CAAC,EACD,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,uBAAuB,CACjG,CAAC;AACF,MAAM,eAAe,GAAW,MAAM,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAC3F,MAAM,WAAW,GAAY,MAAM,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;AACnG,MAAM,WAAW,GAAY,MAAM,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC;AACnG,MAAM,UAAU,GAAY,MAAM,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;AACxF,MAAM,eAAe,GAAY,MAAM,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AACzG,MAAM,YAAY,GAAW,MAAM,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACtH,IAAI,QAAQ,GAAW,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxF,MAAM,aAAa,GAAY,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACnF,IAAI,YAAiB,CAAC;AACtB,IAAI,oBAA4B,CAAC;AACjC,IAAI,SAAS,GAAwB,EAAE,CAAC;AACxC,IAAI,UAAU,GAAY,KAAK,CAAC;AAEzB,KAAK,UAAU,SAAS;IAC9B,gGAAgG;IAChG,GAAG,CAAC,oCAAoC,SAAS,UAAU,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC;IAEhH,mJAAmJ;IACnJ,eAAe,EAAE,CAAC;IAElB,uEAAuE;IACvE,iHAAiH;IACjH,+BAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhC,oBAAoB,GAAG,SAAS;SAC9B,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;SAC7B,OAAO,CAAC,QAAQ,EAAE,IAAI,eAAe,IAAI,wBAAwB,EAAE,CAAC,CAAC;IAEvE,kFAAkF;IAClF,MAAM,OAAO,GAAW,IAAA,gBAAI,EAAC,QAAQ,EAAE,gCAAkB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAW,IAAA,gBAAI,EAAC,QAAQ,EAAE,6BAAe,CAAC,CAAC;IAC3D,IAAI,gBAAoC,CAAC;IACzC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,gBAAgB,GAAG,OAAO,CAAC;QAC3B,GAAG,CAAC,iCAAiC,OAAO,iCAAiC,CAAC,CAAC;IAChF,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,gBAAgB,GAAG,UAAU,CAAC;QAC9B,GAAG,CAAC,iCAAiC,UAAU,iCAAiC,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACP,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACtB,IAAI,CAAC;YACJ,MAAM,WAAW,GAAW,IAAA,sBAAY,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,aAAa,GAAwB,cAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACnE,SAAS,GAAG,IAAA,8BAAa,EAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,sCAAsC,gBAAgB,cAAc,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAED,4HAA4H;IAC5H,IAAI,SAAS,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QAC3E,+BAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpD,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,wFAAwF;QACxF,sGAAsG;QACtG,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,6BAAe,CAAC,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,mFAAmF;IACnF,MAAM,YAAY,GAAW,SAAS,CAAC,gCAAkB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAY,UAAU,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,+CAA+C;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,IAAI,EAAE,CAAC;IAEb,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEjD,oIAAoI;IACpI,MAAM,WAAW,EAAE,CAAC;IAEpB,yFAAyF;IACzF,MAAM,iBAAiB,EAAE,CAAC;IAe1B,MAAM,cAAc,GAAmB;QACtC,SAAS,EAAE,6BAAe,CAAC,QAAQ;QACnC,UAAU,EAAE,KAAK,EAAE,iEAAiE;QACpF,GAAG,EAAE,oBAAoB;KACzB,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,0JAA0J;QAC1J,IAAI,WAAW,EAAE,CAAC;YACjB,cAAc,CAAC,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,cAAc,CAAC,aAAa,GAAG;gBAC9B,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,cAAc;aACxB,CAAC;QACH,CAAC;IACF,CAAC;SAAM,CAAC;QACP,6HAA6H;QAC7H,6EAA6E;QAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACrE,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAC,+CAA+C,CAAC,CAAC;IACrD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IACnF,MAAM,cAAc,EAAE,CAAC;IAEvB,sHAAsH;IACtH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAE9D,qEAAqE;IACrE,yFAAyF;IACzF,GAAG,CAAC,mFAAmF,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACtD,GAAG,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;IAElD,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,YAAY,EAAE,CAAC;IAErB,yHAAyH;IACzH,MAAM,WAAW,EAAE,CAAC;IAEpB,0JAA0J;IAC1J,IAAA,kCAAiB,EAAC,2BAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE9C,GAAG,CAAC,0BAA0B,SAAS,WAAW,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW;IACzB,IAAI,eAAe;QAAE,OAAO;IAC5B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAC1E,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAE1E,kEAAkE;IAClE,iGAAiG;IACjG,MAAM,gBAAgB,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACtD,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,gEAAgE,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO;IACR,CAAC;IAED,GAAG,CACF,qDAAqD,8BAA8B,gBAAgB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAC9I,CAAC;IAEF,MAAM,SAAS,GAAW,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;IACrD,IAAI,YAAY,GAAY,KAAK,CAAC;IAClC,IAAI,SAAS,GAAW,CAAC,CAAC;IAE1B,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC;YACJ,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAEtE,IAAI,YAAY,EAAE,CAAC;gBAClB,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAElC,IAAI,CAAC;oBACJ,MAAM,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,0DAA0D;oBAC1D,GAAG,CAAC,yCAAyC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;gBAC9D,CAAC;gBAED,MAAM,CAAC,+BAA+B;YACvC,CAAC;YAED,4CAA4C;YAC5C,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,gCAAgC,8BAA8B,IAAI,CAAC,CAAC;YACzE,CAAC;YAED,SAAS,EAAE,CAAC;YACZ,MAAM,IAAA,qBAAK,EAAC,8BAA8B,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,+BAA+B,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAA,qBAAK,EAAC,8BAA8B,CAAC,CAAC,CAAC,sBAAsB;QACpE,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAC7B,gBAAwC,EACxC,aAAiC;IAEjC,MAAM,eAAe,GAAG,MAAM,aAAa,EAAE,CAAC;IAC9C,GAAG,CAAC,6CAA6C,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;IAE7E,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC1C,GAAG,CAAC,gFAAgF,CAAC,CAAC;QACtF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAEvG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,GAAG,CAAC,0EAA0E,CAAC,CAAC;QAChF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAChD,GAAG,CAAC,mDAAmD,gBAAgB,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,6CAA6C;IAC7C,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE5C,2CAA2C;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,GAAG,CAAC,YAAY,MAAM,4CAA4C,EAAE,OAAO,CAAC,CAAC;YAC7E,SAAS;QACV,CAAC;QAED,gFAAgF;QAChF,+EAA+E;QAC/E,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAEnD,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,GAAG,CAAC,yDAAyD,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,eAAe,GAAG,UAAU,EAAE,CAAC;YAClC,GAAG,CACF,YAAY,MAAM,qCAAqC,eAAe,aAAa,UAAU,UAAU,UAAU,GAAG,eAAe,KAAK,CACxI,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,GAAG,CAAC,YAAY,MAAM,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB;IAClC,GAAG,CAAC,wDAAwD,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAwB,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClH,WAAW,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAwB,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IACtF,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,6DAA6D;QAC7D,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC5C,WAAW,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,mBAAmB,GAAW,IAAA,gBAAI,EAAC,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC9E,GAAG,CAAC,gDAAgD,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;IACpF,aAAa,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAEhD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,KAA0B;IAC1D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,6DAA6D;QAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI;YAAE,SAAS;QAC/D,IAAI,QAAQ,CAAC,mBAAmB,GAAG,UAAU,EAAE,CAAC;YAC/C,UAAU,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY;IAC1B,IAAI,WAAW;QAAE,OAAO;IAExB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IACtE,IAAI,CAAC;QACJ,MAAM,IAAI,GAAwB,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACnB,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACjD,OAAO;QACR,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAwB,MAAM,aAAa,CAAC;gBACxD,SAAS,EAAE,aAAa;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;aAClB,CAAC,CAAC;YAEH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,2BAA2B,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY;IAC1B,IAAI,WAAW;QAAE,OAAO;IAExB,IAAI,CAAC;QACJ,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,QAAQ,EAAE,kCAAoB,CAAC,CAAC;QAErD,MAAM,SAAS,GAAwB,MAAM,aAAa,CAAC;YAC1D,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,YAAY;SAClB,CAAC,CAAC;QACH,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAwB,MAAM,aAAa,CAAC;YAC3D,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,aAAa;SACnB,CAAC,CAAC;QACH,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAQ,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhF,MAAM,OAAO,GAAwB,MAAM,aAAa,CAAC;YACxD,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,UAAU;SAChB,CAAC,CAAC;QACH,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,2BAA2B,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,WAAW;IACzB,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAClC,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,6BAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACrG,CAAC;IAED,uDAAuD;IACvD,MAAM,UAAU,GAAwB;QACvC,QAAQ,EAAE,QAAQ;QAClB,aAAa,EAAE,YAAY;KAC3B,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACrB,UAAU,CAAC,2BAAa,CAAC,gBAAgB,CAAC,GAAG,eAAe,CAAC;IAC9D,CAAC;IAED,MAAM,qBAAqB,GAAwB,IAAA,8BAAa,EAAC,gBAAgB,CAAC,CAAC;IACnF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACpE,kEAAkE;QAClE,MAAM,gBAAgB,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9F,IAAI,gBAAgB,IAAI,4BAA4B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,SAAS;QACV,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpG,SAAS;QACV,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,8FAA8F;IAC9F,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,gBAAgB,GAAG,KAAK,KAAK,WAAW,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrG,IAAI,gBAAgB,EAAE,CAAC;YACtB,SAAS;QACV,CAAC;QAED,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,IAAA,kCAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,8BAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEnC,oCAAoC;IACpC,IAAA,iCAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB;IAC/B,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAExD,IAAI,oBAAyC,CAAC;IAC9C,IAAI,CAAC;QACJ,oBAAoB,GAAG,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,6BAAe,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,2CAA2C,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAA+B,oBAAoB,EAAE,OAAO,IAAI,EAAE,CAAC;IAChF,kEAAkE;IAClE,MAAM,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7G,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAChE,OAAO;IACR,CAAC;IAED,GAAG,CAAC,WAAW,0BAA0B,CAAC,MAAM,iDAAiD,CAAC,CAAC;IAEnG,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;IAE9F,KAAK,MAAM,KAAK,IAAI,0BAA0B,EAAE,CAAC;QAChD,MAAM,eAAe,GAAW,KAAK,CAAC,IAAI,CAAC;QAC3C,GAAG,CAAC,wBAAwB,eAAe,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC;YACJ,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC;gBAC3C,SAAS,EAAE,6BAAe,CAAC,iBAAiB;gBAC5C,OAAO,EAAE,eAAe;gBACxB,iBAAiB,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;gBACnC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,eAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YAEH,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;YACtC,GAAG,CAAC,oCAAoC,eAAe,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,gCAAgC,eAAe,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,SAAoD;IAChF,IAAI,aAAa,EAAE,CAAC;QACnB,qGAAqG;QACrG,qCAAqC;QACrC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC7E,OAAO,mBAAmB,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE;YACpE,kBAAkB,EAAE,CAAC,eAAe;SACpC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAA2B;QACvC,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,kBAAkB;KAC5B,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,aAAa,GAAG,UAAU,WAAW,EAAE,CAAC;IACjD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,aAAa,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1G,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IACvC,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAEjF,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,OAAO,CAK/E,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAG,CAAC,GAAwC,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAClB,OAAO,CAAC;gBACP,UAAU,EAAE,GAAG,CAAC,UAAW;gBAC3B,aAAa,EAAE,GAAG,CAAC,aAAc;gBACjC,WAAW,EAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAY,IAAI,EAAE;gBAC1D,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aACnC,CAAC,CACF,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,OAAO;YAClB,CAAC,CAAC,IAAA,oBAAY,EACZ;gBACC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI;gBACJ,IAAI;gBACJ,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,cAAc;gBACvB,kBAAkB,EAAE,CAAC,eAAe;aACpC,EACD,QAAQ,CACR;YACF,CAAC,CAAC,IAAA,mBAAW,EAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1G,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,IAAI,aAAa,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAA,eAAU,EAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC;AAQD,SAAS,GAAG,CAAC,OAAe,EAAE,QAAkB,QAAQ;IACvD,MAAM,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC;IAClC,IAAI,YAAY,EAAE,CAAC;QAClB,IAAI,OAAO;YAAE,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;aACtC,IAAI,OAAO,EAAE,CAAC;YAClB,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO;QACR,CAAC;;YAAM,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa;IAC3B,GAAG,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;IAEzD,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;QAClC,0GAA0G;QAC1G,sGAAsG;QACtG,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;SAAM,CAAC;QACP,wDAAwD;QACxD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,cAAc,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEhC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;IAE5F,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,OAAO,EAAE,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAY;IAC/B,IAAI,CAAC;QACJ,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,IAAS;IAC7C,IAAI,CAAC;QACJ,uCAAuC;QACvC,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAA,uBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,yBAAyB,IAAI,KAAK,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAc;IAChC,MAAM,QAAQ,GAAG,+BAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO,QAAQ,EAAE,IAAI,IAAI,+BAAM,CAAC,GAAG,CAAC,2BAAa,CAAC,YAAY,CAAC,IAAI,IAAA,gBAAI,EAAC,QAAQ,EAAE,gCAAkB,CAAC,CAAC;AACvG,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe;IACvB,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,aAAa,QAAQ,uCAAuC,CAAC,CAAC;YAClE,UAAU,GAAG,IAAI,CAAC;QACnB,CAAC;IACF,CAAC;SAAM,IAAI,IAAA,gCAAc,EAAC,+BAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,sEAAsE,CAAC,CAAC;QAC5E,IAAI,CAAC;YACJ,sHAAsH;YACtH,MAAM,MAAM,GAAwB,IAAA,iCAAgB,GAAE,CAAC;YACvD,QAAQ,GAAG,MAAM,CAAC,2BAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACd,qHAAqH,GAAG,EAAE,CAC1H,CAAC;QACH,CAAC;IACF,CAAC;SAAM,CAAC;QACP,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACrD,UAAU,GAAG,IAAI,CAAC;QAClB,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,+BAAiB,CAAC,CAAC;QAC9C,GAAG,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"cloneNode.js","sourceRoot":"","sources":["../../cloneNode/cloneNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,7 +222,7 @@ class RecordEncoder extends msgpackr_1.Encoder {
|
|
|
222
222
|
}
|
|
223
223
|
txn.putSync(sharedStructuresKey, structures);
|
|
224
224
|
this.structureUpdate = structures;
|
|
225
|
-
});
|
|
225
|
+
}, { retryOnBusy: true });
|
|
226
226
|
}
|
|
227
227
|
else {
|
|
228
228
|
const result = superSaveStructures.call(this, structures, isCompatible);
|