@aztec/kv-store 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.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.
Files changed (122) hide show
  1. package/dest/config.d.ts +17 -0
  2. package/dest/config.d.ts.map +1 -0
  3. package/dest/config.js +7 -5
  4. package/dest/indexeddb/array.d.ts +21 -0
  5. package/dest/indexeddb/array.d.ts.map +1 -0
  6. package/dest/indexeddb/array.js +36 -44
  7. package/dest/indexeddb/index.d.ts +7 -0
  8. package/dest/indexeddb/index.d.ts.map +1 -0
  9. package/dest/indexeddb/index.js +4 -1
  10. package/dest/indexeddb/map.d.ts +26 -0
  11. package/dest/indexeddb/map.d.ts.map +1 -0
  12. package/dest/indexeddb/map.js +43 -72
  13. package/dest/indexeddb/set.d.ts +17 -0
  14. package/dest/indexeddb/set.d.ts.map +1 -0
  15. package/dest/indexeddb/set.js +4 -3
  16. package/dest/indexeddb/singleton.d.ts +16 -0
  17. package/dest/indexeddb/singleton.d.ts.map +1 -0
  18. package/dest/indexeddb/singleton.js +22 -17
  19. package/dest/indexeddb/store.d.ts +97 -0
  20. package/dest/indexeddb/store.d.ts.map +1 -0
  21. package/dest/indexeddb/store.js +93 -97
  22. package/dest/interfaces/array.d.ts +80 -0
  23. package/dest/interfaces/array.d.ts.map +1 -0
  24. package/dest/interfaces/array.js +2 -3
  25. package/dest/interfaces/array_test_suite.d.ts +3 -0
  26. package/dest/interfaces/array_test_suite.d.ts.map +1 -0
  27. package/dest/interfaces/array_test_suite.js +25 -29
  28. package/dest/interfaces/common.d.ts +23 -0
  29. package/dest/interfaces/common.d.ts.map +1 -0
  30. package/dest/interfaces/common.js +2 -3
  31. package/dest/interfaces/counter.d.ts +59 -0
  32. package/dest/interfaces/counter.d.ts.map +1 -0
  33. package/dest/interfaces/counter.js +2 -1
  34. package/dest/interfaces/index.d.ts +8 -0
  35. package/dest/interfaces/index.d.ts.map +1 -0
  36. package/dest/interfaces/index.js +1 -0
  37. package/dest/interfaces/map.d.ts +134 -0
  38. package/dest/interfaces/map.d.ts.map +1 -0
  39. package/dest/interfaces/map.js +2 -3
  40. package/dest/interfaces/map_test_suite.d.ts +3 -0
  41. package/dest/interfaces/map_test_suite.d.ts.map +1 -0
  42. package/dest/interfaces/map_test_suite.js +42 -87
  43. package/dest/interfaces/set.d.ts +44 -0
  44. package/dest/interfaces/set.d.ts.map +1 -0
  45. package/dest/interfaces/set.js +2 -1
  46. package/dest/interfaces/set_test_suite.d.ts +3 -0
  47. package/dest/interfaces/set_test_suite.d.ts.map +1 -0
  48. package/dest/interfaces/set_test_suite.js +22 -59
  49. package/dest/interfaces/singleton.d.ts +29 -0
  50. package/dest/interfaces/singleton.d.ts.map +1 -0
  51. package/dest/interfaces/singleton.js +2 -4
  52. package/dest/interfaces/singleton_test_suite.d.ts +3 -0
  53. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -0
  54. package/dest/interfaces/singleton_test_suite.js +10 -7
  55. package/dest/interfaces/store.d.ts +145 -0
  56. package/dest/interfaces/store.d.ts.map +1 -0
  57. package/dest/interfaces/store.js +2 -1
  58. package/dest/interfaces/store_test_suite.d.ts +3 -0
  59. package/dest/interfaces/store_test_suite.d.ts.map +1 -0
  60. package/dest/interfaces/store_test_suite.js +9 -6
  61. package/dest/interfaces/utils.d.ts +16 -0
  62. package/dest/interfaces/utils.d.ts.map +1 -0
  63. package/dest/interfaces/utils.js +15 -12
  64. package/dest/lmdb/array.d.ts +23 -0
  65. package/dest/lmdb/array.d.ts.map +1 -0
  66. package/dest/lmdb/array.js +41 -46
  67. package/dest/lmdb/counter.d.ts +19 -0
  68. package/dest/lmdb/counter.d.ts.map +1 -0
  69. package/dest/lmdb/counter.js +24 -18
  70. package/dest/lmdb/index.d.ts +12 -0
  71. package/dest/lmdb/index.d.ts.map +1 -0
  72. package/dest/lmdb/index.js +6 -2
  73. package/dest/lmdb/map.d.ts +52 -0
  74. package/dest/lmdb/map.d.ts.map +1 -0
  75. package/dest/lmdb/map.js +68 -90
  76. package/dest/lmdb/set.d.ts +18 -0
  77. package/dest/lmdb/set.d.ts.map +1 -0
  78. package/dest/lmdb/set.js +5 -4
  79. package/dest/lmdb/singleton.d.ts +14 -0
  80. package/dest/lmdb/singleton.d.ts.map +1 -0
  81. package/dest/lmdb/singleton.js +14 -13
  82. package/dest/lmdb/store.d.ts +110 -0
  83. package/dest/lmdb/store.d.ts.map +1 -0
  84. package/dest/lmdb/store.js +134 -124
  85. package/dest/lmdb-v2/factory.d.ts +9 -0
  86. package/dest/lmdb-v2/factory.d.ts.map +1 -0
  87. package/dest/lmdb-v2/factory.js +19 -22
  88. package/dest/lmdb-v2/index.d.ts +3 -0
  89. package/dest/lmdb-v2/index.d.ts.map +1 -0
  90. package/dest/lmdb-v2/index.js +1 -0
  91. package/dest/lmdb-v2/map.d.ts +86 -0
  92. package/dest/lmdb-v2/map.d.ts.map +1 -0
  93. package/dest/lmdb-v2/map.js +85 -82
  94. package/dest/lmdb-v2/message.d.ts +112 -0
  95. package/dest/lmdb-v2/message.d.ts.map +1 -0
  96. package/dest/lmdb-v2/message.js +7 -6
  97. package/dest/lmdb-v2/read_transaction.d.ts +14 -0
  98. package/dest/lmdb-v2/read_transaction.d.ts.map +1 -0
  99. package/dest/lmdb-v2/read_transaction.js +53 -65
  100. package/dest/lmdb-v2/singleton.d.ts +12 -0
  101. package/dest/lmdb-v2/singleton.d.ts.map +1 -0
  102. package/dest/lmdb-v2/singleton.js +5 -7
  103. package/dest/lmdb-v2/store.d.ts +43 -0
  104. package/dest/lmdb-v2/store.d.ts.map +1 -0
  105. package/dest/lmdb-v2/store.js +26 -27
  106. package/dest/lmdb-v2/utils.d.ts +19 -0
  107. package/dest/lmdb-v2/utils.d.ts.map +1 -0
  108. package/dest/lmdb-v2/utils.js +30 -30
  109. package/dest/lmdb-v2/write_transaction.d.ts +19 -0
  110. package/dest/lmdb-v2/write_transaction.d.ts.map +1 -0
  111. package/dest/lmdb-v2/write_transaction.js +110 -130
  112. package/dest/stores/index.d.ts +2 -0
  113. package/dest/stores/index.d.ts.map +1 -0
  114. package/dest/stores/index.js +1 -0
  115. package/dest/stores/l2_tips_store.d.ts +13 -0
  116. package/dest/stores/l2_tips_store.d.ts.map +1 -0
  117. package/dest/stores/l2_tips_store.js +12 -26
  118. package/dest/utils.d.ts +12 -0
  119. package/dest/utils.d.ts.map +1 -0
  120. package/dest/utils.js +7 -3
  121. package/package.json +6 -6
  122. package/src/interfaces/index.ts +1 -1
@@ -0,0 +1,17 @@
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
+ import { type EthAddress } from '@aztec/foundation/eth-address';
3
+ export type DataStoreConfig = {
4
+ dataDirectory: string | undefined;
5
+ dataStoreMapSizeKB: number;
6
+ l1Contracts?: {
7
+ rollupAddress: EthAddress;
8
+ };
9
+ };
10
+ export declare const dataConfigMappings: ConfigMappingsType<DataStoreConfig>;
11
+ /**
12
+ * Returns the archiver configuration from the environment variables.
13
+ * Note: If an environment variable is not set, the default value is used.
14
+ * @returns The archiver configuration.
15
+ */
16
+ export declare function getDataConfigFromEnv(): DataStoreConfig;
17
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,0BAA0B,CAAC;AAC9G,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE;QAAE,aAAa,EAAE,UAAU,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,CAAC,eAAe,CAclE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD"}
package/dest/config.js CHANGED
@@ -3,22 +3,24 @@ import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/con
3
3
  export const dataConfigMappings = {
4
4
  dataDirectory: {
5
5
  env: 'DATA_DIRECTORY',
6
- description: 'Optional dir to store data. If omitted will store in memory.'
6
+ description: 'Optional dir to store data. If omitted will store in memory.',
7
7
  },
8
8
  dataStoreMapSizeKB: {
9
9
  env: 'DATA_STORE_MAP_SIZE_KB',
10
10
  description: 'DB mapping size to be applied to all key/value stores',
11
- ...numberConfigHelper(128 * 1_024 * 1_024)
11
+ ...numberConfigHelper(128 * 1024 * 1024), // Defaulted to 128 GB
12
12
  },
13
13
  l1Contracts: {
14
14
  description: 'The deployed L1 contract addresses',
15
- nested: l1ContractAddressesMapping
16
- }
15
+ nested: l1ContractAddressesMapping,
16
+ },
17
17
  };
18
18
  /**
19
19
  * Returns the archiver configuration from the environment variables.
20
20
  * Note: If an environment variable is not set, the default value is used.
21
21
  * @returns The archiver configuration.
22
- */ export function getDataConfigFromEnv() {
22
+ */
23
+ export function getDataConfigFromEnv() {
23
24
  return getConfigFromMappings(dataConfigMappings);
24
25
  }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQTJCLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTOUcsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXdDO0lBQ3JFLGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxnQkFBZ0I7UUFDckIsV0FBVyxFQUFFLDhEQUE4RDtLQUM1RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx3QkFBd0I7UUFDN0IsV0FBVyxFQUFFLHVEQUF1RDtRQUNwRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxJQUFLLEdBQUcsSUFBSyxDQUFDLEVBQUUsc0JBQXNCO0tBQ25FO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsV0FBVyxFQUFFLG9DQUFvQztRQUNqRCxNQUFNLEVBQUUsMEJBQTBCO0tBQ25DO0NBQ0YsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU8scUJBQXFCLENBQWtCLGtCQUFrQixDQUFDLENBQUM7QUFDcEUsQ0FBQyJ9
@@ -0,0 +1,21 @@
1
+ import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
2
+ import { type AztecAsyncArray } from '../interfaces/array.js';
3
+ import { type AztecIDBSchema } from './store.js';
4
+ /**
5
+ * A persistent array backed by IndexedDB.
6
+ */
7
+ export declare class IndexedDBAztecArray<T> implements AztecAsyncArray<T> {
8
+ #private;
9
+ constructor(rootDB: IDBPDatabase<AztecIDBSchema>, name: string);
10
+ set db(db: IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'> | undefined);
11
+ get db(): IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'>;
12
+ lengthAsync(): Promise<number>;
13
+ push(...vals: T[]): Promise<number>;
14
+ pop(): Promise<T | undefined>;
15
+ atAsync(index: number): Promise<T | undefined>;
16
+ setAt(index: number, val: T): Promise<boolean>;
17
+ entriesAsync(): AsyncIterableIterator<[number, T]>;
18
+ valuesAsync(): AsyncIterableIterator<T>;
19
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
20
+ }
21
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/indexeddb/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,mBAAmB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;;gBAMnD,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM;IAM9D,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ9B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAenC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAa7B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAW9C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB7C,YAAY,IAAI,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAQlD,WAAW,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAM9C,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CAOnD"}
@@ -1,39 +1,39 @@
1
+ var _IndexedDBAztecArray_instances, _IndexedDBAztecArray__db, _IndexedDBAztecArray_rootDB, _IndexedDBAztecArray_container, _IndexedDBAztecArray_name, _IndexedDBAztecArray_slot;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  /**
2
4
  * A persistent array backed by IndexedDB.
3
- */ export class IndexedDBAztecArray {
4
- #_db;
5
- #rootDB;
6
- #container;
7
- #name;
8
- constructor(rootDB, name){
9
- this.#rootDB = rootDB;
10
- this.#name = name;
11
- this.#container = `array:${this.#name}`;
5
+ */
6
+ export class IndexedDBAztecArray {
7
+ constructor(rootDB, name) {
8
+ _IndexedDBAztecArray_instances.add(this);
9
+ _IndexedDBAztecArray__db.set(this, void 0);
10
+ _IndexedDBAztecArray_rootDB.set(this, void 0);
11
+ _IndexedDBAztecArray_container.set(this, void 0);
12
+ _IndexedDBAztecArray_name.set(this, void 0);
13
+ __classPrivateFieldSet(this, _IndexedDBAztecArray_rootDB, rootDB, "f");
14
+ __classPrivateFieldSet(this, _IndexedDBAztecArray_name, name, "f");
15
+ __classPrivateFieldSet(this, _IndexedDBAztecArray_container, `array:${__classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")}`, "f");
12
16
  }
13
17
  set db(db) {
14
- this.#_db = db;
18
+ __classPrivateFieldSet(this, _IndexedDBAztecArray__db, db, "f");
15
19
  }
16
20
  get db() {
17
- return this.#_db ? this.#_db : this.#rootDB.transaction('data', 'readwrite').store;
21
+ return __classPrivateFieldGet(this, _IndexedDBAztecArray__db, "f") ? __classPrivateFieldGet(this, _IndexedDBAztecArray__db, "f") : __classPrivateFieldGet(this, _IndexedDBAztecArray_rootDB, "f").transaction('data', 'readwrite').store;
18
22
  }
19
23
  async lengthAsync() {
20
- return await this.db.index('key').count(IDBKeyRange.bound([
21
- this.#container,
22
- this.#name
23
- ], [
24
- this.#container,
25
- this.#name
26
- ])) ?? 0;
24
+ return ((await this.db
25
+ .index('key')
26
+ .count(IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")], [__classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")]))) ?? 0);
27
27
  }
28
28
  async push(...vals) {
29
29
  let length = await this.lengthAsync();
30
- for (const val of vals){
30
+ for (const val of vals) {
31
31
  await this.db.put({
32
32
  value: val,
33
- container: this.#container,
34
- key: this.#name,
33
+ container: __classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"),
34
+ key: __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f"),
35
35
  keyCount: length + 1,
36
- slot: this.#slot(length)
36
+ slot: __classPrivateFieldGet(this, _IndexedDBAztecArray_instances, "m", _IndexedDBAztecArray_slot).call(this, length),
37
37
  });
38
38
  length += 1;
39
39
  }
@@ -44,7 +44,7 @@
44
44
  if (length === 0) {
45
45
  return undefined;
46
46
  }
47
- const slot = this.#slot(length - 1);
47
+ const slot = __classPrivateFieldGet(this, _IndexedDBAztecArray_instances, "m", _IndexedDBAztecArray_slot).call(this, length - 1);
48
48
  const data = await this.db.get(slot);
49
49
  await this.db.delete(slot);
50
50
  return data?.value;
@@ -54,7 +54,7 @@
54
54
  if (index < 0) {
55
55
  index = length + index;
56
56
  }
57
- const data = await this.db.get(this.#slot(index));
57
+ const data = await this.db.get(__classPrivateFieldGet(this, _IndexedDBAztecArray_instances, "m", _IndexedDBAztecArray_slot).call(this, index));
58
58
  return data?.value;
59
59
  }
60
60
  async setAt(index, val) {
@@ -67,38 +67,30 @@
67
67
  }
68
68
  await this.db.put({
69
69
  value: val,
70
- container: this.#container,
71
- key: this.#name,
70
+ container: __classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"),
71
+ key: __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f"),
72
72
  keyCount: index + 1,
73
- slot: this.#slot(index)
73
+ slot: __classPrivateFieldGet(this, _IndexedDBAztecArray_instances, "m", _IndexedDBAztecArray_slot).call(this, index),
74
74
  });
75
75
  return true;
76
76
  }
77
77
  async *entriesAsync() {
78
78
  const index = this.db.index('key');
79
- const rangeQuery = IDBKeyRange.bound([
80
- this.#container,
81
- this.#name
82
- ], [
83
- this.#container,
84
- this.#name
85
- ]);
86
- for await (const cursor of index.iterate(rangeQuery)){
87
- yield [
88
- cursor.value.keyCount - 1,
89
- cursor.value.value
90
- ];
79
+ const rangeQuery = IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")], [__classPrivateFieldGet(this, _IndexedDBAztecArray_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")]);
80
+ for await (const cursor of index.iterate(rangeQuery)) {
81
+ yield [cursor.value.keyCount - 1, cursor.value.value];
91
82
  }
92
83
  }
93
84
  async *valuesAsync() {
94
- for await (const [_, value] of this.entriesAsync()){
85
+ for await (const [_, value] of this.entriesAsync()) {
95
86
  yield value;
96
87
  }
97
88
  }
98
- [Symbol.asyncIterator]() {
89
+ [(_IndexedDBAztecArray__db = new WeakMap(), _IndexedDBAztecArray_rootDB = new WeakMap(), _IndexedDBAztecArray_container = new WeakMap(), _IndexedDBAztecArray_name = new WeakMap(), _IndexedDBAztecArray_instances = new WeakSet(), Symbol.asyncIterator)]() {
99
90
  return this.valuesAsync();
100
91
  }
101
- #slot(index) {
102
- return `array:${this.#name}:slot:${index}`;
103
- }
104
92
  }
93
+ _IndexedDBAztecArray_slot = function _IndexedDBAztecArray_slot(index) {
94
+ return `array:${__classPrivateFieldGet(this, _IndexedDBAztecArray_name, "f")}:slot:${index}`;
95
+ };
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL2FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQVksTUFBb0MsRUFBRSxJQUFZOztRQUw5RCwyQ0FBc0U7UUFDdEUsOENBQXNDO1FBQ3RDLGlEQUFtQjtRQUNuQiw0Q0FBYztRQUdaLHVCQUFBLElBQUksK0JBQVcsTUFBTSxNQUFBLENBQUM7UUFDdEIsdUJBQUEsSUFBSSw2QkFBUyxJQUFJLE1BQUEsQ0FBQztRQUNsQix1QkFBQSxJQUFJLGtDQUFjLFNBQVMsdUJBQUEsSUFBSSxpQ0FBTSxFQUFFLE1BQUEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsRUFBOEU7UUFDbkYsdUJBQUEsSUFBSSw0QkFBUSxFQUFFLE1BQUEsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyx1QkFBQSxJQUFJLGdDQUFLLENBQUMsQ0FBQyxDQUFDLHVCQUFBLElBQUksZ0NBQUssQ0FBQyxDQUFDLENBQUMsdUJBQUEsSUFBSSxtQ0FBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLE9BQU8sQ0FDTCxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7YUFDWCxLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ1osS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyx1QkFBQSxJQUFJLHNDQUFXLEVBQUUsdUJBQUEsSUFBSSxpQ0FBTSxDQUFDLEVBQUUsQ0FBQyx1QkFBQSxJQUFJLHNDQUFXLEVBQUUsdUJBQUEsSUFBSSxpQ0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNoRyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxJ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
@@ -0,0 +1,7 @@
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import { type DataStoreConfig } from '../config.js';
3
+ import { AztecIndexedDBStore } from './store.js';
4
+ export { AztecIndexedDBStore } from './store.js';
5
+ export declare function createStore(name: string, config: DataStoreConfig, log?: Logger): Promise<AztecIndexedDBStore>;
6
+ export declare function openTmpStore(ephemeral?: boolean): Promise<AztecIndexedDBStore>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexeddb/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,GAAE,MAAiC,gCAgB9G;AAED,wBAAgB,YAAY,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAErF"}
@@ -7,7 +7,9 @@ export async function createStore(name, config, log = createLogger('kv-store'))
7
7
  if (typeof dataDirectory !== 'undefined') {
8
8
  dataDirectory = `${dataDirectory}/${name}`;
9
9
  }
10
- log.info(dataDirectory ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKB} KB` : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKB} KB`);
10
+ log.info(dataDirectory
11
+ ? `Creating ${name} data store at directory ${dataDirectory} with map size ${config.dataStoreMapSizeKB} KB`
12
+ : `Creating ${name} ephemeral data store with map size ${config.dataStoreMapSizeKB} KB`);
11
13
  const store = await AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), dataDirectory ?? '', false);
12
14
  if (config.l1Contracts?.rollupAddress) {
13
15
  return initStoreForRollup(store, config.l1Contracts.rollupAddress, log);
@@ -17,3 +19,4 @@ export async function createStore(name, config, log = createLogger('kv-store'))
17
19
  export function openTmpStore(ephemeral = false) {
18
20
  return AztecIndexedDBStore.open(createLogger('kv-store:indexeddb'), undefined, ephemeral);
19
21
  }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXhlZGRiL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBdUIsRUFBRSxNQUFjLFlBQVksQ0FBQyxVQUFVLENBQUM7SUFDN0csSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMvQixJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLGFBQWEsR0FBRyxHQUFHLGFBQWEsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FDTixhQUFhO1FBQ1gsQ0FBQyxDQUFDLFlBQVksSUFBSSw0QkFBNEIsYUFBYSxrQkFBa0IsTUFBTSxDQUFDLGtCQUFrQixLQUFLO1FBQzNHLENBQUMsQ0FBQyxZQUFZLElBQUksdUNBQXVDLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxDQUMxRixDQUFDO0lBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsWUFBcUIsS0FBSztJQUNyRCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUYsQ0FBQyJ9
@@ -0,0 +1,26 @@
1
+ import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
2
+ import { type Key, type Range } from '../interfaces/common.js';
3
+ import { type AztecAsyncMultiMap } from '../interfaces/map.js';
4
+ import { type AztecIDBSchema } from './store.js';
5
+ /**
6
+ * A map backed by IndexedDB.
7
+ */
8
+ export declare class IndexedDBAztecMap<K extends Key, V> implements AztecAsyncMultiMap<K, V> {
9
+ #private;
10
+ protected name: string;
11
+ constructor(rootDB: IDBPDatabase<AztecIDBSchema>, mapName: string);
12
+ set db(db: IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'> | undefined);
13
+ get db(): IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'>;
14
+ getAsync(key: K): Promise<V | undefined>;
15
+ getValuesAsync(key: K): AsyncIterableIterator<V>;
16
+ hasAsync(key: K): Promise<boolean>;
17
+ set(key: K, val: V): Promise<void>;
18
+ swap(_key: K, _fn: (val: V | undefined) => V): Promise<void>;
19
+ setIfNotExists(key: K, val: V): Promise<boolean>;
20
+ delete(key: K): Promise<void>;
21
+ deleteValue(key: K, val: V): Promise<void>;
22
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<[K, V]>;
23
+ valuesAsync(range?: Range<K>): AsyncIterableIterator<V>;
24
+ keysAsync(range?: Range<K>): AsyncIterableIterator<K>;
25
+ }
26
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/indexeddb/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;;IAClF,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;gBAMX,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM;IAMjE,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKvC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAajD,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzC,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAkBjE,WAAW,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAM3D,SAAS,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAmBjE"}
@@ -1,85 +1,68 @@
1
+ var _IndexedDBAztecMap_instances, _IndexedDBAztecMap_container, _IndexedDBAztecMap__db, _IndexedDBAztecMap_rootDB, _IndexedDBAztecMap_denormalizeKey, _IndexedDBAztecMap_normalizeKey, _IndexedDBAztecMap_slot;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  /**
2
4
  * A map backed by IndexedDB.
3
- */ export class IndexedDBAztecMap {
4
- name;
5
- #container;
6
- #_db;
7
- #rootDB;
8
- constructor(rootDB, mapName){
5
+ */
6
+ export class IndexedDBAztecMap {
7
+ constructor(rootDB, mapName) {
8
+ _IndexedDBAztecMap_instances.add(this);
9
+ _IndexedDBAztecMap_container.set(this, void 0);
10
+ _IndexedDBAztecMap__db.set(this, void 0);
11
+ _IndexedDBAztecMap_rootDB.set(this, void 0);
9
12
  this.name = mapName;
10
- this.#container = `map:${mapName}`;
11
- this.#rootDB = rootDB;
13
+ __classPrivateFieldSet(this, _IndexedDBAztecMap_container, `map:${mapName}`, "f");
14
+ __classPrivateFieldSet(this, _IndexedDBAztecMap_rootDB, rootDB, "f");
12
15
  }
13
16
  set db(db) {
14
- this.#_db = db;
17
+ __classPrivateFieldSet(this, _IndexedDBAztecMap__db, db, "f");
15
18
  }
16
19
  get db() {
17
- return this.#_db ? this.#_db : this.#rootDB.transaction('data', 'readwrite').store;
20
+ return __classPrivateFieldGet(this, _IndexedDBAztecMap__db, "f") ? __classPrivateFieldGet(this, _IndexedDBAztecMap__db, "f") : __classPrivateFieldGet(this, _IndexedDBAztecMap_rootDB, "f").transaction('data', 'readwrite').store;
18
21
  }
19
22
  async getAsync(key) {
20
- const data = await this.db.get(this.#slot(key));
23
+ const data = await this.db.get(__classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_slot).call(this, key));
21
24
  return data?.value;
22
25
  }
23
26
  async *getValuesAsync(key) {
24
27
  const index = this.db.index('keyCount');
25
- const rangeQuery = IDBKeyRange.bound([
26
- this.#container,
27
- this.#normalizeKey(key),
28
- 0
29
- ], [
30
- this.#container,
31
- this.#normalizeKey(key),
32
- Number.MAX_SAFE_INTEGER
33
- ], false, false);
34
- for await (const cursor of index.iterate(rangeQuery)){
28
+ const rangeQuery = IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key), 0], [__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key), Number.MAX_SAFE_INTEGER], false, false);
29
+ for await (const cursor of index.iterate(rangeQuery)) {
35
30
  yield cursor.value.value;
36
31
  }
37
32
  }
38
33
  async hasAsync(key) {
39
- const result = await this.getAsync(key) !== undefined;
34
+ const result = (await this.getAsync(key)) !== undefined;
40
35
  return result;
41
36
  }
42
37
  async set(key, val) {
43
- const count = await this.db.index('key').count(IDBKeyRange.bound([
44
- this.#container,
45
- this.#normalizeKey(key)
46
- ], [
47
- this.#container,
48
- this.#normalizeKey(key)
49
- ]));
38
+ const count = await this.db
39
+ .index('key')
40
+ .count(IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key)], [__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key)]));
50
41
  await this.db.put({
51
42
  value: val,
52
- container: this.#container,
53
- key: this.#normalizeKey(key),
43
+ container: __classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"),
44
+ key: __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key),
54
45
  keyCount: count + 1,
55
- slot: this.#slot(key, count)
46
+ slot: __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_slot).call(this, key, count),
56
47
  });
57
48
  }
58
49
  swap(_key, _fn) {
59
50
  throw new Error('Not implemented');
60
51
  }
61
52
  async setIfNotExists(key, val) {
62
- if (!await this.hasAsync(key)) {
53
+ if (!(await this.hasAsync(key))) {
63
54
  await this.set(key, val);
64
55
  return true;
65
56
  }
66
57
  return false;
67
58
  }
68
59
  async delete(key) {
69
- await this.db.delete(this.#slot(key));
60
+ await this.db.delete(__classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_slot).call(this, key));
70
61
  }
71
62
  async deleteValue(key, val) {
72
63
  const index = this.db.index('keyCount');
73
- const rangeQuery = IDBKeyRange.bound([
74
- this.#container,
75
- this.#normalizeKey(key),
76
- 0
77
- ], [
78
- this.#container,
79
- this.#normalizeKey(key),
80
- Number.MAX_SAFE_INTEGER
81
- ], false, false);
82
- for await (const cursor of index.iterate(rangeQuery)){
64
+ const rangeQuery = IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key), 0], [__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key), Number.MAX_SAFE_INTEGER], false, false);
65
+ for await (const cursor of index.iterate(rangeQuery)) {
83
66
  if (JSON.stringify(cursor.value.value) === JSON.stringify(val)) {
84
67
  await cursor.delete();
85
68
  return;
@@ -88,46 +71,34 @@
88
71
  }
89
72
  async *entriesAsync(range = {}) {
90
73
  const index = this.db.index('key');
91
- const rangeQuery = IDBKeyRange.bound([
92
- this.#container,
93
- range.start ?? ''
94
- ], [
95
- this.#container,
96
- range.end ?? '\uffff'
97
- ], !!range.reverse, !range.reverse);
74
+ const rangeQuery = IDBKeyRange.bound([__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), range.start ?? ''], [__classPrivateFieldGet(this, _IndexedDBAztecMap_container, "f"), range.end ?? '\uffff'], !!range.reverse, !range.reverse);
98
75
  let count = 0;
99
- for await (const cursor of index.iterate(rangeQuery, range.reverse ? 'prev' : 'next')){
76
+ for await (const cursor of index.iterate(rangeQuery, range.reverse ? 'prev' : 'next')) {
100
77
  if (range.limit && count >= range.limit) {
101
78
  return;
102
79
  }
103
- yield [
104
- cursor.value.key,
105
- cursor.value.value
106
- ];
80
+ yield [cursor.value.key, cursor.value.value];
107
81
  count++;
108
82
  }
109
83
  }
110
84
  async *valuesAsync(range = {}) {
111
- for await (const [_, value] of this.entriesAsync(range)){
85
+ for await (const [_, value] of this.entriesAsync(range)) {
112
86
  yield value;
113
87
  }
114
88
  }
115
89
  async *keysAsync(range = {}) {
116
- for await (const [key, _] of this.entriesAsync(range)){
117
- yield this.#denormalizeKey(key);
90
+ for await (const [key, _] of this.entriesAsync(range)) {
91
+ yield __classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_denormalizeKey).call(this, key);
118
92
  }
119
93
  }
120
- #denormalizeKey(key) {
121
- const denormalizedKey = key.split(',').map((part)=>isNaN(parseInt(part)) ? part : parseInt(part));
122
- return denormalizedKey.length > 1 ? denormalizedKey : key;
123
- }
124
- #normalizeKey(key) {
125
- const arrayKey = Array.isArray(key) ? key : [
126
- key
127
- ];
128
- return arrayKey.join(',');
129
- }
130
- #slot(key, index = 0) {
131
- return `map:${this.name}:slot:${this.#normalizeKey(key)}:${index}`;
132
- }
133
94
  }
95
+ _IndexedDBAztecMap_container = new WeakMap(), _IndexedDBAztecMap__db = new WeakMap(), _IndexedDBAztecMap_rootDB = new WeakMap(), _IndexedDBAztecMap_instances = new WeakSet(), _IndexedDBAztecMap_denormalizeKey = function _IndexedDBAztecMap_denormalizeKey(key) {
96
+ const denormalizedKey = key.split(',').map(part => (isNaN(parseInt(part)) ? part : parseInt(part)));
97
+ return (denormalizedKey.length > 1 ? denormalizedKey : key);
98
+ }, _IndexedDBAztecMap_normalizeKey = function _IndexedDBAztecMap_normalizeKey(key) {
99
+ const arrayKey = Array.isArray(key) ? key : [key];
100
+ return arrayKey.join(',');
101
+ }, _IndexedDBAztecMap_slot = function _IndexedDBAztecMap_slot(key, index = 0) {
102
+ return `map:${this.name}:slot:${__classPrivateFieldGet(this, _IndexedDBAztecMap_instances, "m", _IndexedDBAztecMap_normalizeKey).call(this, key)}:${index}`;
103
+ };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4ZWRkYi9tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQTs7R0FFRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsWUFBWSxNQUFvQyxFQUFFLE9BQWU7O1FBTGpFLCtDQUFtQjtRQUVuQix5Q0FBc0U7UUFDdEUsNENBQXNDO1FBR3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3BCLHVCQUFBLElBQUksZ0NBQWMsT0FBTyxPQUFPLEVBQUUsTUFBQSxDQUFDO1FBQ25DLHVCQUFBLElBQUksNkJBQVcsTUFBTSxNQUFBLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksRUFBRSxDQUFDLEVBQThFO1FBQ25GLHVCQUFBLElBQUksMEJBQVEsRUFBRSxNQUFBLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLE9BQU8sdUJBQUEsSUFBSSw4QkFBSyxDQUFDLENBQUMsQ0FBQyx1QkFBQSxJQUFJLDhCQUFLLENBQUMsQ0FBQyxDQUFDLHVCQUFBLElBQUksaUNBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNyRixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFNO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQUEsSUFBSSw2REFBTSxNQUFWLElBQUksRUFBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxFQUFFLEtBQVUsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQU07UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEtB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
@@ -0,0 +1,17 @@
1
+ import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
2
+ import { type Key, type Range } from '../interfaces/common.js';
3
+ import { type AztecAsyncSet } from '../interfaces/set.js';
4
+ import { type AztecIDBSchema } from './store.js';
5
+ /**
6
+ * A set backed by IndexedDB.
7
+ */
8
+ export declare class IndexedDBAztecSet<K extends Key> implements AztecAsyncSet<K> {
9
+ private map;
10
+ constructor(rootDb: IDBPDatabase<AztecIDBSchema>, mapName: string);
11
+ set db(db: IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'> | undefined);
12
+ hasAsync(key: K): Promise<boolean>;
13
+ add(key: K): Promise<void>;
14
+ delete(key: K): Promise<void>;
15
+ entriesAsync(range?: Range<K>): AsyncIterableIterator<K>;
16
+ }
17
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/indexeddb/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,GAAG,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAgC;gBAE/B,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM;IAIjE,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAItB,YAAY,CAAC,KAAK,GAAE,KAAK,CAAC,CAAC,CAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;CAGpE"}
@@ -1,9 +1,9 @@
1
1
  import { IndexedDBAztecMap } from './map.js';
2
2
  /**
3
3
  * A set backed by IndexedDB.
4
- */ export class IndexedDBAztecSet {
5
- map;
6
- constructor(rootDb, mapName){
4
+ */
5
+ export class IndexedDBAztecSet {
6
+ constructor(rootDb, mapName) {
7
7
  this.map = new IndexedDBAztecMap(rootDb, mapName);
8
8
  }
9
9
  set db(db) {
@@ -22,3 +22,4 @@ import { IndexedDBAztecMap } from './map.js';
22
22
  yield* this.map.keysAsync(range);
23
23
  }
24
24
  }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4ZWRkYi9zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFZLE1BQW9DLEVBQUUsT0FBZTtRQUMvRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUE4RTtRQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQU07UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQU07UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBa0IsRUFBRTtRQUN0QyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,16 @@
1
+ import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
2
+ import { type AztecAsyncSingleton } from '../interfaces/singleton.js';
3
+ import { type AztecIDBSchema } from './store.js';
4
+ /**
5
+ * Stores a single value in IndexedDB.
6
+ */
7
+ export declare class IndexedDBAztecSingleton<T> implements AztecAsyncSingleton<T> {
8
+ #private;
9
+ constructor(rootDB: IDBPDatabase<AztecIDBSchema>, name: string);
10
+ set db(db: IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'> | undefined);
11
+ get db(): IDBPObjectStore<AztecIDBSchema, ['data'], 'data', 'readwrite'>;
12
+ getAsync(): Promise<T | undefined>;
13
+ set(val: T): Promise<boolean>;
14
+ delete(): Promise<boolean>;
15
+ }
16
+ //# sourceMappingURL=singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/indexeddb/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAE9D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,qBAAa,uBAAuB,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;;gBAM3D,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM;IAM9D,IAAI,EAAE,CAAC,EAAE,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EAEpF;IAED,IAAI,EAAE,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAEvE;IAEK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAIjC"}
@@ -1,37 +1,42 @@
1
+ var _IndexedDBAztecSingleton__db, _IndexedDBAztecSingleton_rootDB, _IndexedDBAztecSingleton_container, _IndexedDBAztecSingleton_slot;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  /**
2
4
  * Stores a single value in IndexedDB.
3
- */ export class IndexedDBAztecSingleton {
4
- #_db;
5
- #rootDB;
6
- #container;
7
- #slot;
8
- constructor(rootDB, name){
9
- this.#rootDB = rootDB;
10
- this.#container = `singleton:${name}`;
11
- this.#slot = `singleton:${name}:value`;
5
+ */
6
+ export class IndexedDBAztecSingleton {
7
+ constructor(rootDB, name) {
8
+ _IndexedDBAztecSingleton__db.set(this, void 0);
9
+ _IndexedDBAztecSingleton_rootDB.set(this, void 0);
10
+ _IndexedDBAztecSingleton_container.set(this, void 0);
11
+ _IndexedDBAztecSingleton_slot.set(this, void 0);
12
+ __classPrivateFieldSet(this, _IndexedDBAztecSingleton_rootDB, rootDB, "f");
13
+ __classPrivateFieldSet(this, _IndexedDBAztecSingleton_container, `singleton:${name}`, "f");
14
+ __classPrivateFieldSet(this, _IndexedDBAztecSingleton_slot, `singleton:${name}:value`, "f");
12
15
  }
13
16
  set db(db) {
14
- this.#_db = db;
17
+ __classPrivateFieldSet(this, _IndexedDBAztecSingleton__db, db, "f");
15
18
  }
16
19
  get db() {
17
- return this.#_db ? this.#_db : this.#rootDB.transaction('data', 'readwrite').store;
20
+ return __classPrivateFieldGet(this, _IndexedDBAztecSingleton__db, "f") ? __classPrivateFieldGet(this, _IndexedDBAztecSingleton__db, "f") : __classPrivateFieldGet(this, _IndexedDBAztecSingleton_rootDB, "f").transaction('data', 'readwrite').store;
18
21
  }
19
22
  async getAsync() {
20
- const data = await this.db.get(this.#slot);
23
+ const data = await this.db.get(__classPrivateFieldGet(this, _IndexedDBAztecSingleton_slot, "f"));
21
24
  return data?.value;
22
25
  }
23
26
  async set(val) {
24
27
  const result = await this.db.put({
25
- container: this.#container,
26
- slot: this.#slot,
27
- key: this.#slot,
28
+ container: __classPrivateFieldGet(this, _IndexedDBAztecSingleton_container, "f"),
29
+ slot: __classPrivateFieldGet(this, _IndexedDBAztecSingleton_slot, "f"),
30
+ key: __classPrivateFieldGet(this, _IndexedDBAztecSingleton_slot, "f"),
28
31
  keyCount: 1,
29
- value: val
32
+ value: val,
30
33
  });
31
34
  return result !== undefined;
32
35
  }
33
36
  async delete() {
34
- await this.db.delete(this.#slot);
37
+ await this.db.delete(__classPrivateFieldGet(this, _IndexedDBAztecSingleton_slot, "f"));
35
38
  return true;
36
39
  }
37
40
  }
41
+ _IndexedDBAztecSingleton__db = new WeakMap(), _IndexedDBAztecSingleton_rootDB = new WeakMap(), _IndexedDBAztecSingleton_container = new WeakMap(), _IndexedDBAztecSingleton_slot = new WeakMap();
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xldG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZGV4ZWRkYi9zaW5nbGV0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFNbEMsWUFBWSxNQUFvQyxFQUFFLElBQVk7UUFMOUQsK0NBQXNFO1FBQ3RFLGtEQUFzQztRQUN0QyxxREFBbUI7UUFDbkIsZ0RBQWM7UUFHWix1QkFBQSxJQUFJLG1DQUFXLE1BQU0sTUFBQSxDQUFDO1FBQ3RCLHVCQUFBLElBQUksc0NBQWMsYUFBYSxJQUFJLEVBQUUsTUFBQSxDQUFDO1FBQ3RDLHVCQUFBLElBQUksaUNBQVMsYUFBYSxJQUFJLFFBQVEsTUFBQSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUE4RTtRQUNuRix1QkFBQSxJQUFJLGdDQUFRLEVBQUUsTUFBQSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLHVCQUFBLElBQUksb0NBQUssQ0FBQyxDQUFDLENBQUMsdUJBQUEsSUFBSSxvQ0FBSyxDQUFDLENBQUMsQ0FBQyx1QkFBQSxJQUFJLHVDQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckYsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBQSxJQUFJLHFDQUFNLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksRUFBRSxLQUFVLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBTTtRQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDL0IsU0FBUyxFQUFFLHVCQUFBLElBQUksMENBQVc7WUFDMUIsSUFBSSxFQUFFLHVCQUFBLElBQUkscUNBQU07WUFDaEIsR0FBRyxFQUFFLHVCQUFBLElBQUkscUNBQU07WUFDZixRQUFRLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLEtBQUssU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsdUJBQUEsSUFBSSxxQ0FBTSxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YifQ==