@quereus/store 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,12 +9,26 @@
9
9
  * - Index stores: {schema}.{table}_idx_{name} - one per secondary index
10
10
  * - Stats store: __stats__ - unified store for all table statistics, keyed by {schema}.{table}
11
11
  */
12
- import { VirtualTable, IndexConstraintOp, ConflictResolution, QuereusError, StatusCode, } from '@quereus/quereus';
12
+ import { VirtualTable, IndexConstraintOp, ConflictResolution, QuereusError, StatusCode, compareSqlValues, validateAndParse, } from '@quereus/quereus';
13
13
  import { StoreConnection } from './store-connection.js';
14
14
  import { buildDataKey, buildIndexKey, buildFullScanBounds, buildStatsKey, } from './key-builder.js';
15
15
  import { serializeRow, deserializeRow, serializeStats, deserializeStats, } from './serialization.js';
16
16
  /** Number of mutations before persisting statistics. */
17
17
  const STATS_FLUSH_INTERVAL = 100;
18
+ /** Hex-encode a key for use as a Map/Set lookup. */
19
+ function bytesToHex(key) {
20
+ return Array.from(key).map(b => b.toString(16).padStart(2, '0')).join('');
21
+ }
22
+ /** Byte-wise equality check for Uint8Arrays. */
23
+ function bytesEqual(a, b) {
24
+ if (a.length !== b.length)
25
+ return false;
26
+ for (let i = 0; i < a.length; i++) {
27
+ if (a[i] !== b[i])
28
+ return false;
29
+ }
30
+ return true;
31
+ }
18
32
  /**
19
33
  * Generic KVStore-backed virtual table.
20
34
  *
@@ -33,6 +47,7 @@ export class StoreTable extends VirtualTable {
33
47
  connection = null;
34
48
  eventEmitter;
35
49
  encodeOptions;
50
+ pkDirections;
36
51
  ddlSaved = false;
37
52
  // Statistics tracking
38
53
  cachedStats = null;
@@ -47,6 +62,7 @@ export class StoreTable extends VirtualTable {
47
62
  this.config = config;
48
63
  this.eventEmitter = eventEmitter;
49
64
  this.encodeOptions = { collation: config.collation || 'NOCASE' };
65
+ this.pkDirections = tableSchema.primaryKeyDefinition.map(pk => !!pk.desc);
50
66
  this.ddlSaved = isConnected;
51
67
  }
52
68
  /** Get the table configuration. */
@@ -60,6 +76,18 @@ export class StoreTable extends VirtualTable {
60
76
  /** Update the table schema after an ALTER TABLE operation. */
61
77
  updateSchema(newSchema) {
62
78
  this.tableSchema = newSchema;
79
+ this.pkDirections = newSchema.primaryKeyDefinition.map(pk => !!pk.desc);
80
+ }
81
+ /**
82
+ * Returns true if the table has at least one stored row. Stops after the first hit.
83
+ */
84
+ async hasAnyRows() {
85
+ const store = await this.ensureStore();
86
+ const bounds = buildFullScanBounds();
87
+ for await (const _entry of store.iterate(bounds)) {
88
+ return true;
89
+ }
90
+ return false;
63
91
  }
64
92
  /**
65
93
  * Scan every row, checking whether the column at `colIndex` ever holds NULL.
@@ -96,6 +124,42 @@ export class StoreTable extends VirtualTable {
96
124
  }
97
125
  await batch.write();
98
126
  }
127
+ /**
128
+ * Re-key every stored row under a new primary-key definition.
129
+ *
130
+ * Two-pass: the first pass reads every row and computes the new data keys,
131
+ * tracking duplicates. On collision we throw `CONSTRAINT` without touching
132
+ * the store. The second pass batches deletes of displaced old keys and puts
133
+ * of new (key, row) pairs. Rows whose new key matches the old key are no-ops.
134
+ *
135
+ * Only the data store is rewritten — secondary indexes are rebuilt by the
136
+ * caller (the keys embed the PK suffix, so they must be rebuilt whenever
137
+ * the PK changes).
138
+ */
139
+ async rekeyRows(newPkDef) {
140
+ const store = await this.ensureStore();
141
+ const bounds = buildFullScanBounds();
142
+ const pending = new Map();
143
+ const newPkDirections = newPkDef.map(pk => !!pk.desc);
144
+ for await (const entry of store.iterate(bounds)) {
145
+ const row = deserializeRow(entry.value);
146
+ const newPkValues = newPkDef.map(pk => row[pk.index]);
147
+ const newKey = buildDataKey(newPkValues, this.encodeOptions, newPkDirections);
148
+ const hex = bytesToHex(newKey);
149
+ if (pending.has(hex)) {
150
+ throw new QuereusError(`UNIQUE constraint failed: duplicate primary key on rekey of '${this.schemaName}.${this.tableName}'`, StatusCode.CONSTRAINT);
151
+ }
152
+ pending.set(hex, { newKey, oldKey: entry.key, row });
153
+ }
154
+ const batch = store.batch();
155
+ for (const { newKey, oldKey, row } of pending.values()) {
156
+ if (!bytesEqual(oldKey, newKey)) {
157
+ batch.delete(oldKey);
158
+ batch.put(newKey, serializeRow(row));
159
+ }
160
+ }
161
+ await batch.write();
162
+ }
99
163
  /**
100
164
  * Migrate all stored rows from the old column layout to a new one.
101
165
  * The remap array maps newColumnIndex -> oldColumnIndex | -1.
@@ -236,12 +300,25 @@ export class StoreTable extends VirtualTable {
236
300
  const schema = this.tableSchema;
237
301
  return schema.primaryKeyDefinition.map(pk => row[pk.index]);
238
302
  }
303
+ /**
304
+ * Coerce each cell in `row` to its declared column logical type.
305
+ * Mirrors the memory-table path (MemoryTableManager.performInsert/performUpdate)
306
+ * so INTEGER/REAL affinity is applied and JSON columns are parsed into native
307
+ * objects before PK extraction, serialization, and index-key construction.
308
+ */
309
+ coerceRow(row) {
310
+ const cols = this.tableSchema.columns;
311
+ if (row.length > cols.length) {
312
+ throw new QuereusError(`Too many values for ${this.schemaName}.${this.tableName}: expected ${cols.length}, got ${row.length}`, StatusCode.ERROR);
313
+ }
314
+ return row.map((v, i) => validateAndParse(v, cols[i].logicalType, cols[i].name));
315
+ }
239
316
  /** Query the table with optional filters. */
240
317
  async *query(filterInfo) {
241
318
  const store = await this.ensureStore();
242
319
  const pkAccess = this.analyzePKAccess(filterInfo);
243
320
  if (pkAccess.type === 'point') {
244
- const key = buildDataKey(pkAccess.values, this.encodeOptions);
321
+ const key = buildDataKey(pkAccess.values, this.encodeOptions, this.pkDirections);
245
322
  const value = await store.get(key);
246
323
  if (value) {
247
324
  const row = deserializeRow(value);
@@ -362,8 +439,9 @@ export class StoreTable extends VirtualTable {
362
439
  case 'insert': {
363
440
  if (!values)
364
441
  throw new QuereusError('INSERT requires values', StatusCode.MISUSE);
365
- const pk = this.extractPK(values);
366
- const key = buildDataKey(pk, this.encodeOptions);
442
+ const coerced = args.preCoerced ? values : this.coerceRow(values);
443
+ const pk = this.extractPK(coerced);
444
+ const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
367
445
  // Check for existing row (for conflict handling)
368
446
  const existing = await store.get(key);
369
447
  if (existing) {
@@ -380,8 +458,12 @@ export class StoreTable extends VirtualTable {
380
458
  };
381
459
  }
382
460
  }
461
+ // Enforce non-PK UNIQUE constraints
462
+ const ucResult = await this.checkUniqueConstraints(inTransaction, coerced, [pk], args.onConflict);
463
+ if (ucResult)
464
+ return ucResult;
383
465
  const oldRow = existing ? deserializeRow(existing) : null;
384
- const serializedRow = serializeRow(values);
466
+ const serializedRow = serializeRow(coerced);
385
467
  if (inTransaction) {
386
468
  coordinator.put(key, serializedRow);
387
469
  }
@@ -389,7 +471,7 @@ export class StoreTable extends VirtualTable {
389
471
  await store.put(key, serializedRow);
390
472
  }
391
473
  // Update secondary indexes
392
- await this.updateSecondaryIndexes(inTransaction, oldRow, values, pk);
474
+ await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, pk);
393
475
  // Track statistics (only count as new if not replacing)
394
476
  if (!existing) {
395
477
  this.trackMutation(+1, inTransaction);
@@ -403,7 +485,7 @@ export class StoreTable extends VirtualTable {
403
485
  tableName: schema.name,
404
486
  key: pk,
405
487
  oldRow,
406
- newRow: values,
488
+ newRow: coerced,
407
489
  };
408
490
  if (inTransaction) {
409
491
  coordinator.queueEvent(updateEvent);
@@ -418,7 +500,7 @@ export class StoreTable extends VirtualTable {
418
500
  schemaName: schema.schemaName,
419
501
  tableName: schema.name,
420
502
  key: pk,
421
- newRow: values,
503
+ newRow: coerced,
422
504
  };
423
505
  if (inTransaction) {
424
506
  coordinator.queueEvent(insertEvent);
@@ -427,20 +509,52 @@ export class StoreTable extends VirtualTable {
427
509
  this.eventEmitter?.emitDataChange(insertEvent);
428
510
  }
429
511
  }
430
- return { status: 'ok', row: values, replacedRow: oldRow ?? undefined };
512
+ return { status: 'ok', row: coerced, replacedRow: oldRow ?? undefined };
431
513
  }
432
514
  case 'update': {
433
515
  if (!values || !oldKeyValues)
434
516
  throw new QuereusError('UPDATE requires values and oldKeyValues', StatusCode.MISUSE);
517
+ const coerced = args.preCoerced ? values : this.coerceRow(values);
435
518
  const oldPk = this.extractPK(oldKeyValues);
436
- const newPk = this.extractPK(values);
437
- const oldKey = buildDataKey(oldPk, this.encodeOptions);
438
- const newKey = buildDataKey(newPk, this.encodeOptions);
519
+ const newPk = this.extractPK(coerced);
520
+ const oldKey = buildDataKey(oldPk, this.encodeOptions, this.pkDirections);
521
+ const newKey = buildDataKey(newPk, this.encodeOptions, this.pkDirections);
439
522
  // Get old row for index updates
440
523
  const oldRowData = await store.get(oldKey);
441
524
  const oldRow = oldRowData ? deserializeRow(oldRowData) : null;
525
+ const pkChanged = !this.keysEqual(oldPk, newPk);
526
+ // PK-change UPDATE collides like an INSERT at the new key
527
+ if (pkChanged) {
528
+ const existingAtNew = await store.get(newKey);
529
+ if (existingAtNew) {
530
+ if (args.onConflict === ConflictResolution.IGNORE) {
531
+ return { status: 'ok', row: undefined };
532
+ }
533
+ if (args.onConflict !== ConflictResolution.REPLACE) {
534
+ return {
535
+ status: 'constraint',
536
+ constraint: 'unique',
537
+ message: 'UNIQUE constraint failed: primary key',
538
+ existingRow: deserializeRow(existingAtNew),
539
+ };
540
+ }
541
+ }
542
+ }
543
+ // Enforce non-PK UNIQUE constraints. For same-PK UPDATE, only check
544
+ // constraints whose covered columns actually changed; pass [oldPk]
545
+ // (= newPk) to skip self. For PK-change UPDATE, treat as relocation:
546
+ // skip both old and new PK so we don't false-conflict against the
547
+ // row we're moving.
548
+ const selfPks = pkChanged ? [oldPk, newPk] : [oldPk];
549
+ const shouldCheckUniques = pkChanged
550
+ || (oldRow ? this.uniqueColumnsChanged(oldRow, coerced) : true);
551
+ if (shouldCheckUniques) {
552
+ const ucResult = await this.checkUniqueConstraints(inTransaction, coerced, selfPks, args.onConflict);
553
+ if (ucResult)
554
+ return ucResult;
555
+ }
442
556
  // Delete old key if PK changed
443
- if (!this.keysEqual(oldPk, newPk)) {
557
+ if (pkChanged) {
444
558
  if (inTransaction) {
445
559
  coordinator.delete(oldKey);
446
560
  }
@@ -448,7 +562,7 @@ export class StoreTable extends VirtualTable {
448
562
  await store.delete(oldKey);
449
563
  }
450
564
  }
451
- const serializedRow = serializeRow(values);
565
+ const serializedRow = serializeRow(coerced);
452
566
  if (inTransaction) {
453
567
  coordinator.put(newKey, serializedRow);
454
568
  }
@@ -456,7 +570,7 @@ export class StoreTable extends VirtualTable {
456
570
  await store.put(newKey, serializedRow);
457
571
  }
458
572
  // Update secondary indexes
459
- await this.updateSecondaryIndexes(inTransaction, oldRow, values, newPk);
573
+ await this.updateSecondaryIndexes(inTransaction, oldRow, coerced, newPk);
460
574
  // Queue or emit event
461
575
  const updateEvent = {
462
576
  type: 'update',
@@ -464,7 +578,7 @@ export class StoreTable extends VirtualTable {
464
578
  tableName: schema.name,
465
579
  key: newPk,
466
580
  oldRow: oldRow || undefined,
467
- newRow: values,
581
+ newRow: coerced,
468
582
  };
469
583
  if (inTransaction) {
470
584
  coordinator.queueEvent(updateEvent);
@@ -472,13 +586,13 @@ export class StoreTable extends VirtualTable {
472
586
  else {
473
587
  this.eventEmitter?.emitDataChange(updateEvent);
474
588
  }
475
- return { status: 'ok', row: values };
589
+ return { status: 'ok', row: coerced };
476
590
  }
477
591
  case 'delete': {
478
592
  if (!oldKeyValues)
479
593
  throw new QuereusError('DELETE requires oldKeyValues', StatusCode.MISUSE);
480
594
  const pk = this.extractPK(oldKeyValues);
481
- const key = buildDataKey(pk, this.encodeOptions);
595
+ const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
482
596
  // Get old row for index cleanup
483
597
  const oldRowData = await store.get(key);
484
598
  const oldRow = oldRowData ? deserializeRow(oldRowData) : null;
@@ -520,10 +634,11 @@ export class StoreTable extends VirtualTable {
520
634
  for (const index of indexes) {
521
635
  const indexStore = await this.ensureIndexStore(index.name);
522
636
  const indexCols = index.columns.map(c => c.index);
637
+ const indexDirections = index.columns.map(c => !!c.desc);
523
638
  // Remove old index entry
524
639
  if (oldRow) {
525
640
  const oldIndexValues = indexCols.map(i => oldRow[i]);
526
- const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions);
641
+ const oldIndexKey = buildIndexKey(oldIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
527
642
  if (inTransaction && this.coordinator) {
528
643
  this.coordinator.delete(oldIndexKey, indexStore);
529
644
  }
@@ -534,7 +649,7 @@ export class StoreTable extends VirtualTable {
534
649
  // Add new index entry
535
650
  if (newRow) {
536
651
  const newIndexValues = indexCols.map(i => newRow[i]);
537
- const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions);
652
+ const newIndexKey = buildIndexKey(newIndexValues, pk, this.encodeOptions, indexDirections, this.pkDirections);
538
653
  // Index value is empty - we just need the key for lookups
539
654
  const emptyValue = new Uint8Array(0);
540
655
  if (inTransaction && this.coordinator) {
@@ -556,6 +671,167 @@ export class StoreTable extends VirtualTable {
556
671
  }
557
672
  return true;
558
673
  }
674
+ /** Returns true if any column covered by a UNIQUE constraint differs between oldRow and newRow. */
675
+ uniqueColumnsChanged(oldRow, newRow) {
676
+ const ucs = this.tableSchema?.uniqueConstraints;
677
+ if (!ucs || ucs.length === 0)
678
+ return false;
679
+ for (const uc of ucs) {
680
+ for (const colIdx of uc.columns) {
681
+ if (compareSqlValues(oldRow[colIdx], newRow[colIdx]) !== 0)
682
+ return true;
683
+ }
684
+ }
685
+ return false;
686
+ }
687
+ /**
688
+ * Enforce table-level UNIQUE constraints against the prospective newRow.
689
+ * Honors `onConflict`: IGNORE returns an ok-with-undefined-row; REPLACE
690
+ * deletes the conflicting row(s) and continues; otherwise returns a
691
+ * constraint result. Returns null when all constraints pass.
692
+ *
693
+ * Rows whose PK is in `selfPks` are skipped (the row being inserted/updated).
694
+ * NULL in any covered column skips that constraint (multiple NULLs are allowed
695
+ * per SQL standard).
696
+ *
697
+ * Reads through the transaction coordinator's pending writes when active so
698
+ * intra-transaction duplicates are detected.
699
+ */
700
+ async checkUniqueConstraints(inTransaction, newRow, selfPks, onConflict) {
701
+ const schema = this.tableSchema;
702
+ const uniqueConstraints = schema.uniqueConstraints;
703
+ if (!uniqueConstraints || uniqueConstraints.length === 0)
704
+ return null;
705
+ for (const uc of uniqueConstraints) {
706
+ if (uc.columns.some(idx => newRow[idx] === null))
707
+ continue;
708
+ const conflict = await this.findUniqueConflict(uc.columns, newRow, selfPks);
709
+ if (!conflict)
710
+ continue;
711
+ if (onConflict === ConflictResolution.IGNORE) {
712
+ return { status: 'ok', row: undefined };
713
+ }
714
+ if (onConflict === ConflictResolution.REPLACE) {
715
+ await this.deleteRowAt(inTransaction, conflict.pk, conflict.row);
716
+ continue;
717
+ }
718
+ const colNames = uc.columns.map(i => schema.columns[i].name).join(', ');
719
+ return {
720
+ status: 'constraint',
721
+ constraint: 'unique',
722
+ message: `UNIQUE constraint failed: ${schema.name} (${colNames})`,
723
+ existingRow: conflict.row,
724
+ };
725
+ }
726
+ return null;
727
+ }
728
+ /**
729
+ * Scan committed + pending data rows for a row matching `newRow` on
730
+ * `constrainedCols` whose PK is not in `selfPks`. Returns the first match
731
+ * or null.
732
+ */
733
+ async findUniqueConflict(constrainedCols, newRow, selfPks) {
734
+ const store = await this.ensureStore();
735
+ const pending = this.coordinator?.isInTransaction()
736
+ ? this.coordinator.getPendingOpsForStore(store)
737
+ : null;
738
+ const matches = (candidate) => {
739
+ const pk = this.extractPK(candidate);
740
+ for (const skip of selfPks) {
741
+ if (this.keysEqual(pk, skip))
742
+ return null;
743
+ }
744
+ for (const idx of constrainedCols) {
745
+ if (compareSqlValues(newRow[idx], candidate[idx]) !== 0)
746
+ return null;
747
+ }
748
+ return { pk, row: candidate };
749
+ };
750
+ const seen = new Set();
751
+ const bounds = buildFullScanBounds();
752
+ for await (const entry of store.iterate(bounds)) {
753
+ const hex = bytesToHex(entry.key);
754
+ seen.add(hex);
755
+ if (pending?.deletes.has(hex))
756
+ continue;
757
+ const overlay = pending?.puts.get(hex);
758
+ const value = overlay ? overlay.value : entry.value;
759
+ const found = matches(deserializeRow(value));
760
+ if (found)
761
+ return found;
762
+ }
763
+ if (pending) {
764
+ for (const [hex, op] of pending.puts) {
765
+ if (seen.has(hex))
766
+ continue;
767
+ const found = matches(deserializeRow(op.value));
768
+ if (found)
769
+ return found;
770
+ }
771
+ }
772
+ return null;
773
+ }
774
+ /**
775
+ * Fully delete the row at `pk` (data + secondary indexes + stats + delete event).
776
+ * Used by REPLACE conflict resolution to evict a conflicting unique row before
777
+ * the caller's insert/update proceeds.
778
+ */
779
+ async deleteRowAt(inTransaction, pk, oldRow) {
780
+ const store = await this.ensureStore();
781
+ const key = buildDataKey(pk, this.encodeOptions, this.pkDirections);
782
+ if (inTransaction && this.coordinator) {
783
+ this.coordinator.delete(key);
784
+ }
785
+ else {
786
+ await store.delete(key);
787
+ }
788
+ await this.updateSecondaryIndexes(inTransaction, oldRow, null, pk);
789
+ this.trackMutation(-1, inTransaction);
790
+ const schema = this.tableSchema;
791
+ const deleteEvent = {
792
+ type: 'delete',
793
+ schemaName: schema.schemaName,
794
+ tableName: schema.name,
795
+ key: pk,
796
+ oldRow,
797
+ };
798
+ if (inTransaction && this.coordinator) {
799
+ this.coordinator.queueEvent(deleteEvent);
800
+ }
801
+ else {
802
+ this.eventEmitter?.emitDataChange(deleteEvent);
803
+ }
804
+ }
805
+ /**
806
+ * Begin a table-scoped transaction by ensuring the coordinator is active.
807
+ *
808
+ * Used by the isolation layer's flush path, which treats the underlying
809
+ * write as an independent mini-transaction. Idempotent: if the coordinator
810
+ * is already in a transaction (e.g. started by a registered connection),
811
+ * this is a no-op.
812
+ */
813
+ async begin() {
814
+ const coordinator = await this.ensureCoordinator();
815
+ coordinator.begin();
816
+ }
817
+ /**
818
+ * Commits a table-scoped transaction, flushing any buffered writes to the KV store.
819
+ * No-op if the coordinator is not currently in a transaction.
820
+ */
821
+ async commit() {
822
+ if (this.coordinator?.isInTransaction()) {
823
+ await this.coordinator.commit();
824
+ }
825
+ }
826
+ /**
827
+ * Rolls back a table-scoped transaction, discarding any buffered writes.
828
+ * No-op if the coordinator is not currently in a transaction.
829
+ */
830
+ async rollback() {
831
+ if (this.coordinator?.isInTransaction()) {
832
+ this.coordinator.rollback();
833
+ }
834
+ }
559
835
  /** Disconnect from the store. */
560
836
  async disconnect() {
561
837
  // Called by Quereus after each scan completes.
@@ -1 +1 @@
1
- {"version":3,"file":"store-table.js","sourceRoot":"","sources":["../../../src/common/store-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-table.js","sourceRoot":"","sources":["../../../src/common/store-table.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,18 @@
6
6
  */
7
7
  import type { DataChangeEvent, StoreEventEmitter } from './events.js';
8
8
  import type { KVStore } from './kv-store.js';
9
+ /**
10
+ * View of buffered ops targeting a specific store, with last-write-wins semantics.
11
+ */
12
+ export interface PendingStoreOps {
13
+ /** Pending puts (key/value) for this store, keyed by hex-encoded key. */
14
+ puts: Map<string, {
15
+ key: Uint8Array;
16
+ value: Uint8Array;
17
+ }>;
18
+ /** Hex-encoded keys with a pending delete for this store. */
19
+ deletes: Set<string>;
20
+ }
9
21
  /** Callback for transaction lifecycle events. */
10
22
  export interface TransactionCallbacks {
11
23
  onCommit: () => void;
@@ -53,5 +65,11 @@ export declare class TransactionCoordinator {
53
65
  private clearTransaction;
54
66
  /** Get the underlying store for direct reads. */
55
67
  getStore(): KVStore;
68
+ /**
69
+ * Snapshot pending ops targeting the given store (or the default if omitted),
70
+ * collapsed to last-write-wins. Used by reads that need to see
71
+ * intra-transaction writes (e.g. UNIQUE constraint checks).
72
+ */
73
+ getPendingOpsForStore(store?: KVStore): PendingStoreOps;
56
74
  }
57
75
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAgB7C,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,YAAY,CAAC,CAAoB;IAGzC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,SAAS,CAA8B;gBAEnC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,iBAAiB;IAK5D,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAIxD,wCAAwC;IACxC,eAAe,IAAI,OAAO;IAI1B,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAWb,8FAA8F;IAC9F,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9D,iGAAiG;IACjG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9C,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IASxC,8BAA8B;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C7B,gCAAgC;IAChC,QAAQ,IAAI,IAAI;IAahB,6CAA6C;IAC7C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWrC,mDAAmD;IACnD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3C,6EAA6E;IAC7E,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAe9C,mCAAmC;IACnC,OAAO,CAAC,gBAAgB;IAOxB,iDAAiD;IACjD,QAAQ,IAAI,OAAO;CAGpB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/common/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAe7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAC1D,6DAA6D;IAC7D,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB;AAQD,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,YAAY,CAAC,CAAoB;IAGzC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,SAAS,CAA8B;gBAEnC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,iBAAiB;IAK5D,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAIxD,wCAAwC;IACxC,eAAe,IAAI,OAAO;IAI1B,2BAA2B;IAC3B,KAAK,IAAI,IAAI;IAWb,8FAA8F;IAC9F,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9D,iGAAiG;IACjG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAO9C,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IASxC,8BAA8B;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C7B,gCAAgC;IAChC,QAAQ,IAAI,IAAI;IAahB,6CAA6C;IAC7C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAWrC,mDAAmD;IACnD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI3C,6EAA6E;IAC7E,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAe9C,mCAAmC;IACnC,OAAO,CAAC,gBAAgB;IAOxB,iDAAiD;IACjD,QAAQ,IAAI,OAAO;IAInB;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,eAAe;CAkBxD"}