@aztec/kv-store 0.0.1-commit.a072138 → 0.0.1-commit.a4600f49

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 (145) hide show
  1. package/README.md +10 -1
  2. package/dest/bench/shared_map_bench.d.ts +19 -0
  3. package/dest/bench/shared_map_bench.d.ts.map +1 -0
  4. package/dest/bench/shared_map_bench.js +91 -0
  5. package/dest/deprecated/indexeddb/array.d.ts +22 -0
  6. package/dest/deprecated/indexeddb/array.d.ts.map +1 -0
  7. package/dest/{indexeddb → deprecated/indexeddb}/array.js +18 -6
  8. package/dest/deprecated/indexeddb/index.d.ts +13 -0
  9. package/dest/deprecated/indexeddb/index.d.ts.map +1 -0
  10. package/dest/{indexeddb → deprecated/indexeddb}/index.js +8 -4
  11. package/dest/deprecated/indexeddb/map.d.ts +38 -0
  12. package/dest/deprecated/indexeddb/map.d.ts.map +1 -0
  13. package/dest/{indexeddb → deprecated/indexeddb}/map.js +23 -13
  14. package/dest/deprecated/indexeddb/multi_map.d.ts +14 -0
  15. package/dest/deprecated/indexeddb/multi_map.d.ts.map +1 -0
  16. package/dest/{indexeddb → deprecated/indexeddb}/multi_map.js +16 -1
  17. package/dest/deprecated/indexeddb/set.d.ts +17 -0
  18. package/dest/deprecated/indexeddb/set.d.ts.map +1 -0
  19. package/dest/deprecated/indexeddb/singleton.d.ts +17 -0
  20. package/dest/deprecated/indexeddb/singleton.d.ts.map +1 -0
  21. package/dest/{indexeddb → deprecated/indexeddb}/singleton.js +3 -1
  22. package/dest/deprecated/indexeddb/store.d.ts +98 -0
  23. package/dest/deprecated/indexeddb/store.d.ts.map +1 -0
  24. package/dest/{indexeddb → deprecated/indexeddb}/store.js +8 -4
  25. package/dest/interfaces/array_test_suite.d.ts +1 -1
  26. package/dest/interfaces/array_test_suite.d.ts.map +1 -1
  27. package/dest/interfaces/array_test_suite.js +33 -34
  28. package/dest/interfaces/index.d.ts +2 -2
  29. package/dest/interfaces/index.d.ts.map +1 -1
  30. package/dest/interfaces/map_test_suite.d.ts +1 -1
  31. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  32. package/dest/interfaces/map_test_suite.js +74 -29
  33. package/dest/interfaces/multi_map_test_suite.d.ts +1 -1
  34. package/dest/interfaces/multi_map_test_suite.d.ts.map +1 -1
  35. package/dest/interfaces/multi_map_test_suite.js +84 -60
  36. package/dest/interfaces/set_test_suite.d.ts +1 -1
  37. package/dest/interfaces/set_test_suite.d.ts.map +1 -1
  38. package/dest/interfaces/set_test_suite.js +13 -14
  39. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  40. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
  41. package/dest/interfaces/singleton_test_suite.js +6 -7
  42. package/dest/lmdb/index.d.ts +2 -2
  43. package/dest/lmdb/index.d.ts.map +1 -1
  44. package/dest/lmdb/index.js +2 -2
  45. package/dest/lmdb/store.d.ts +3 -3
  46. package/dest/lmdb/store.d.ts.map +1 -1
  47. package/dest/lmdb/store.js +12 -8
  48. package/dest/lmdb-v2/factory.d.ts +30 -4
  49. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  50. package/dest/lmdb-v2/factory.js +62 -10
  51. package/dest/lmdb-v2/read_transaction.js +21 -19
  52. package/dest/lmdb-v2/store.d.ts +2 -2
  53. package/dest/lmdb-v2/store.d.ts.map +1 -1
  54. package/dest/lmdb-v2/store.js +4 -4
  55. package/dest/sqlite-opfs/array.d.ts +21 -0
  56. package/dest/sqlite-opfs/array.d.ts.map +1 -0
  57. package/dest/sqlite-opfs/array.js +128 -0
  58. package/dest/sqlite-opfs/errors.d.ts +27 -0
  59. package/dest/sqlite-opfs/errors.d.ts.map +1 -0
  60. package/dest/sqlite-opfs/errors.js +34 -0
  61. package/dest/sqlite-opfs/index.d.ts +16 -0
  62. package/dest/sqlite-opfs/index.d.ts.map +1 -0
  63. package/dest/sqlite-opfs/index.js +22 -0
  64. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts +32 -0
  65. package/dest/sqlite-opfs/internal/ordered-binary-browser.d.ts.map +1 -0
  66. package/dest/sqlite-opfs/internal/ordered-binary-browser.js +448 -0
  67. package/dest/sqlite-opfs/map.d.ts +35 -0
  68. package/dest/sqlite-opfs/map.d.ts.map +1 -0
  69. package/dest/sqlite-opfs/map.js +163 -0
  70. package/dest/sqlite-opfs/messages.d.ts +66 -0
  71. package/dest/sqlite-opfs/messages.d.ts.map +1 -0
  72. package/dest/sqlite-opfs/messages.js +5 -0
  73. package/dest/sqlite-opfs/multi_map.d.ts +16 -0
  74. package/dest/sqlite-opfs/multi_map.d.ts.map +1 -0
  75. package/dest/sqlite-opfs/multi_map.js +67 -0
  76. package/dest/sqlite-opfs/set.d.ts +13 -0
  77. package/dest/sqlite-opfs/set.d.ts.map +1 -0
  78. package/dest/sqlite-opfs/set.js +19 -0
  79. package/dest/sqlite-opfs/singleton.d.ts +13 -0
  80. package/dest/sqlite-opfs/singleton.d.ts.map +1 -0
  81. package/dest/sqlite-opfs/singleton.js +48 -0
  82. package/dest/sqlite-opfs/store.d.ts +79 -0
  83. package/dest/sqlite-opfs/store.d.ts.map +1 -0
  84. package/dest/sqlite-opfs/store.js +281 -0
  85. package/dest/sqlite-opfs/worker.d.ts +2 -0
  86. package/dest/sqlite-opfs/worker.d.ts.map +1 -0
  87. package/dest/sqlite-opfs/worker.js +248 -0
  88. package/dest/stores/l2_tips_store.d.ts +7 -13
  89. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  90. package/dest/stores/l2_tips_store.js +24 -43
  91. package/dest/utils.d.ts +1 -1
  92. package/dest/utils.d.ts.map +1 -1
  93. package/dest/utils.js +7 -1
  94. package/package.json +30 -26
  95. package/src/bench/shared_map_bench.ts +111 -0
  96. package/src/{indexeddb → deprecated/indexeddb}/array.ts +6 -6
  97. package/src/{indexeddb → deprecated/indexeddb}/index.ts +9 -3
  98. package/src/{indexeddb → deprecated/indexeddb}/map.ts +26 -13
  99. package/src/{indexeddb → deprecated/indexeddb}/multi_map.ts +17 -3
  100. package/src/{indexeddb → deprecated/indexeddb}/set.ts +2 -2
  101. package/src/{indexeddb → deprecated/indexeddb}/singleton.ts +3 -3
  102. package/src/{indexeddb → deprecated/indexeddb}/store.ts +23 -15
  103. package/src/interfaces/array_test_suite.ts +33 -35
  104. package/src/interfaces/index.ts +1 -1
  105. package/src/interfaces/map_test_suite.ts +56 -30
  106. package/src/interfaces/multi_map_test_suite.ts +88 -58
  107. package/src/interfaces/set_test_suite.ts +13 -15
  108. package/src/interfaces/singleton_test_suite.ts +6 -8
  109. package/src/lmdb/index.ts +3 -3
  110. package/src/lmdb/store.ts +12 -8
  111. package/src/lmdb-v2/factory.ts +86 -10
  112. package/src/lmdb-v2/read_transaction.ts +23 -23
  113. package/src/lmdb-v2/store.ts +4 -2
  114. package/src/sqlite-opfs/array.ts +124 -0
  115. package/src/sqlite-opfs/errors.ts +44 -0
  116. package/src/sqlite-opfs/index.ts +39 -0
  117. package/src/sqlite-opfs/internal/ordered-binary-browser.js +465 -0
  118. package/src/sqlite-opfs/map.ts +163 -0
  119. package/src/sqlite-opfs/messages.ts +39 -0
  120. package/src/sqlite-opfs/multi_map.ts +74 -0
  121. package/src/sqlite-opfs/set.ts +29 -0
  122. package/src/sqlite-opfs/singleton.ts +48 -0
  123. package/src/sqlite-opfs/store.ts +296 -0
  124. package/src/sqlite-opfs/worker.ts +230 -0
  125. package/src/stores/l2_tips_store.ts +20 -41
  126. package/src/utils.ts +10 -0
  127. package/dest/config.d.ts +0 -17
  128. package/dest/config.d.ts.map +0 -1
  129. package/dest/config.js +0 -26
  130. package/dest/indexeddb/array.d.ts +0 -22
  131. package/dest/indexeddb/array.d.ts.map +0 -1
  132. package/dest/indexeddb/index.d.ts +0 -7
  133. package/dest/indexeddb/index.d.ts.map +0 -1
  134. package/dest/indexeddb/map.d.ts +0 -32
  135. package/dest/indexeddb/map.d.ts.map +0 -1
  136. package/dest/indexeddb/multi_map.d.ts +0 -13
  137. package/dest/indexeddb/multi_map.d.ts.map +0 -1
  138. package/dest/indexeddb/set.d.ts +0 -17
  139. package/dest/indexeddb/set.d.ts.map +0 -1
  140. package/dest/indexeddb/singleton.d.ts +0 -17
  141. package/dest/indexeddb/singleton.d.ts.map +0 -1
  142. package/dest/indexeddb/store.d.ts +0 -96
  143. package/dest/indexeddb/store.d.ts.map +0 -1
  144. package/src/config.ts +0 -36
  145. /package/dest/{indexeddb → deprecated/indexeddb}/set.js +0 -0
@@ -7,6 +7,8 @@ import { IndexedDBAztecSet } from './set.js';
7
7
  import { IndexedDBAztecSingleton } from './singleton.js';
8
8
  /**
9
9
  * A key-value store backed by IndexedDB.
10
+ *
11
+ * @deprecated The IndexedDB backend is being retired. Use `@aztec/kv-store/sqlite-opfs` instead.
10
12
  */ export class AztecIndexedDBStore {
11
13
  isEphemeral;
12
14
  #rootDB;
@@ -145,10 +147,11 @@ import { IndexedDBAztecSingleton } from './singleton.js';
145
147
  */ async clear() {
146
148
  await this.#rootDB.transaction('data', 'readwrite').store.clear();
147
149
  }
148
- /** Deletes this store and removes the database */ delete() {
150
+ /** Deletes this store and removes the database */ async delete() {
149
151
  this.#containers.clear();
152
+ await this.#txQueue.end();
150
153
  this.#rootDB.close();
151
- return deleteDB(this.#name);
154
+ await deleteDB(this.#name);
152
155
  }
153
156
  estimateSize() {
154
157
  return Promise.resolve({
@@ -158,8 +161,9 @@ import { IndexedDBAztecSingleton } from './singleton.js';
158
161
  numItems: 0
159
162
  });
160
163
  }
161
- close() {
162
- return Promise.resolve();
164
+ async close() {
165
+ await this.#txQueue.end();
166
+ this.#rootDB.close();
163
167
  }
164
168
  backupTo(_dstPath, _compact) {
165
169
  throw new Error('Method not implemented.');
@@ -1,3 +1,3 @@
1
1
  import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
2
2
  export declare function describeAztecArray(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXJyYXlfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEUsd0JBQWdCLGtCQUFrQixDQUNoQyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQ3pELFVBQVUsR0FBRSxPQUFlLFFBc0g1QiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlfdGVzdF9zdWl0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvYXJyYXlfdGVzdF9zdWl0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHbEUsd0JBQWdCLGtCQUFrQixDQUNoQyxRQUFRLEVBQUUsTUFBTSxFQUNoQixRQUFRLEVBQUUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQ3pELFVBQVUsR0FBRSxPQUFlLFFBc0g1QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"array_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/array_test_suite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAsH5B"}
1
+ {"version":3,"file":"array_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/array_test_suite.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAsH5B"}
@@ -1,5 +1,4 @@
1
1
  import { toArray } from '@aztec/foundation/iterable';
2
- import { expect } from 'chai';
3
2
  import { isSyncStore } from './utils.js';
4
3
  export function describeAztecArray(testName, getStore, forceAsync = false) {
5
4
  describe(testName, ()=>{
@@ -28,56 +27,56 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
28
27
  await arr.push(1);
29
28
  await arr.push(2);
30
29
  await arr.push(3);
31
- expect(await length()).to.equal(3);
32
- expect(await arr.pop()).to.equal(3);
33
- expect(await arr.pop()).to.equal(2);
34
- expect(await arr.pop()).to.equal(1);
35
- expect(await arr.pop()).to.equal(undefined);
30
+ expect(await length()).toBe(3);
31
+ expect(await arr.pop()).toBe(3);
32
+ expect(await arr.pop()).toBe(2);
33
+ expect(await arr.pop()).toBe(1);
34
+ expect(await arr.pop()).toBe(undefined);
36
35
  });
37
36
  it('should be able to get values by index', async ()=>{
38
37
  await arr.push(1);
39
38
  await arr.push(2);
40
39
  await arr.push(3);
41
- expect(await at(0)).to.equal(1);
42
- expect(await at(1)).to.equal(2);
43
- expect(await at(2)).to.equal(3);
44
- expect(await at(3)).to.equal(undefined);
45
- expect(await at(-1)).to.equal(3);
46
- expect(await at(-2)).to.equal(2);
47
- expect(await at(-3)).to.equal(1);
48
- expect(await at(-4)).to.equal(undefined);
40
+ expect(await at(0)).toBe(1);
41
+ expect(await at(1)).toBe(2);
42
+ expect(await at(2)).toBe(3);
43
+ expect(await at(3)).toBe(undefined);
44
+ expect(await at(-1)).toBe(3);
45
+ expect(await at(-2)).toBe(2);
46
+ expect(await at(-3)).toBe(1);
47
+ expect(await at(-4)).toBe(undefined);
49
48
  });
50
49
  it('should be able to set values by index', async ()=>{
51
50
  await arr.push(1);
52
51
  await arr.push(2);
53
52
  await arr.push(3);
54
- expect(await arr.setAt(0, 4)).to.equal(true);
55
- expect(await arr.setAt(1, 5)).to.equal(true);
56
- expect(await arr.setAt(2, 6)).to.equal(true);
57
- expect(await arr.setAt(3, 7)).to.equal(false);
58
- expect(await at(0)).to.equal(4);
59
- expect(await at(1)).to.equal(5);
60
- expect(await at(2)).to.equal(6);
61
- expect(await at(3)).to.equal(undefined);
62
- expect(await arr.setAt(-1, 8)).to.equal(true);
63
- expect(await arr.setAt(-2, 9)).to.equal(true);
64
- expect(await arr.setAt(-3, 10)).to.equal(true);
65
- expect(await arr.setAt(-4, 11)).to.equal(false);
66
- expect(await at(-1)).to.equal(8);
67
- expect(await at(-2)).to.equal(9);
68
- expect(await at(-3)).to.equal(10);
69
- expect(await at(-4)).to.equal(undefined);
53
+ expect(await arr.setAt(0, 4)).toBe(true);
54
+ expect(await arr.setAt(1, 5)).toBe(true);
55
+ expect(await arr.setAt(2, 6)).toBe(true);
56
+ expect(await arr.setAt(3, 7)).toBe(false);
57
+ expect(await at(0)).toBe(4);
58
+ expect(await at(1)).toBe(5);
59
+ expect(await at(2)).toBe(6);
60
+ expect(await at(3)).toBe(undefined);
61
+ expect(await arr.setAt(-1, 8)).toBe(true);
62
+ expect(await arr.setAt(-2, 9)).toBe(true);
63
+ expect(await arr.setAt(-3, 10)).toBe(true);
64
+ expect(await arr.setAt(-4, 11)).toBe(false);
65
+ expect(await at(-1)).toBe(8);
66
+ expect(await at(-2)).toBe(9);
67
+ expect(await at(-3)).toBe(10);
68
+ expect(await at(-4)).toBe(undefined);
70
69
  });
71
70
  it('should be able to iterate over values', async ()=>{
72
71
  await arr.push(1);
73
72
  await arr.push(2);
74
73
  await arr.push(3);
75
- expect(await values()).to.deep.equal([
74
+ expect(await values()).toEqual([
76
75
  1,
77
76
  2,
78
77
  3
79
78
  ]);
80
- expect(await entries()).to.deep.equal([
79
+ expect(await entries()).toEqual([
81
80
  [
82
81
  0,
83
82
  1
@@ -97,8 +96,8 @@ export function describeAztecArray(testName, getStore, forceAsync = false) {
97
96
  await arr.push(2);
98
97
  await arr.push(3);
99
98
  const arr2 = store.openArray('test');
100
- expect(await length(arr2)).to.equal(3);
101
- expect(await values(arr2)).to.deep.equal(await values());
99
+ expect(await length(arr2)).toBe(3);
100
+ expect(await values(arr2)).toEqual(await values());
102
101
  });
103
102
  });
104
103
  }
@@ -6,5 +6,5 @@ export * from './store.js';
6
6
  export * from './set.js';
7
7
  export * from './multi_map.js';
8
8
  export { mapRange } from './common.js';
9
- export type { CustomRange, Range, StoreSize } from './common.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQyJ9
9
+ export type { CustomRange, Key, Range, StoreSize } from './common.js';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
2
2
  export declare function describeAztecMap(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IsZ0JBQWdCLENBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUErSjVCIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IsZ0JBQWdCLENBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUEyTDVCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QA+J5B"}
1
+ {"version":3,"file":"map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/map_test_suite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QA2L5B"}
@@ -1,5 +1,4 @@
1
1
  import { toArray } from '@aztec/foundation/iterable';
2
- import { expect } from 'chai';
3
2
  import { isSyncStore } from './utils.js';
4
3
  export function describeAztecMap(testName, getStore, forceAsync = false) {
5
4
  describe(testName, ()=>{
@@ -30,9 +29,9 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
30
29
  it('should be able to set and get values', async ()=>{
31
30
  await map.set('foo', 'bar');
32
31
  await map.set('baz', 'qux');
33
- expect(await get('foo')).to.equal('bar');
34
- expect(await get('baz')).to.equal('qux');
35
- expect(await get('quux')).to.equal(undefined);
32
+ expect(await get('foo')).toBe('bar');
33
+ expect(await get('baz')).toBe('qux');
34
+ expect(await get('quux')).toBe(undefined);
36
35
  });
37
36
  it('should be able to set many values', async ()=>{
38
37
  const pairs = Array.from({
@@ -43,41 +42,62 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
43
42
  }));
44
43
  await map.setMany(pairs);
45
44
  for (const { key, value } of pairs){
46
- expect(await get(key)).to.equal(value);
45
+ expect(await get(key)).toBe(value);
47
46
  }
48
47
  });
49
48
  it('should be able to overwrite values', async ()=>{
50
49
  await map.set('foo', 'bar');
51
50
  await map.set('foo', 'baz');
52
- expect(await get('foo')).to.equal('baz');
51
+ expect(await get('foo')).toBe('baz');
53
52
  });
54
53
  it('should be able to set values if they do not exist', async ()=>{
55
- expect(await map.setIfNotExists('foo', 'bar')).to.equal(true);
56
- expect(await map.setIfNotExists('foo', 'baz')).to.equal(false);
57
- expect(await get('foo')).to.equal('bar');
54
+ expect(await map.setIfNotExists('foo', 'bar')).toBe(true);
55
+ expect(await map.setIfNotExists('foo', 'baz')).toBe(false);
56
+ expect(await get('foo')).toBe('bar');
58
57
  });
59
58
  it('should be able to delete values', async ()=>{
60
59
  await map.set('foo', 'bar');
61
60
  await map.set('baz', 'qux');
62
61
  await map.delete('foo');
63
- expect(await get('foo')).to.equal(undefined);
64
- expect(await get('baz')).to.equal('qux');
62
+ expect(await get('foo')).toBe(undefined);
63
+ expect(await get('baz')).toBe('qux');
65
64
  });
66
65
  it('should be able to return size of the map', async ()=>{
67
66
  await map.set('foo', 'bar');
68
- expect(await size()).to.equal(1);
67
+ expect(await size()).toBe(1);
69
68
  await map.set('baz', 'qux');
70
- expect(await size()).to.equal(2);
69
+ expect(await size()).toBe(2);
71
70
  await map.delete('foo');
72
- expect(await size()).to.equal(1);
71
+ expect(await size()).toBe(1);
72
+ });
73
+ it('returns 0 for empty map size', async ()=>{
74
+ expect(await size()).toBe(0);
75
+ });
76
+ it('calculates size correctly across multiple operations', async ()=>{
77
+ expect(await size()).toBe(0);
78
+ // Add items
79
+ await map.set('a', 'value1');
80
+ await map.set('b', 'value2');
81
+ await map.set('c', 'value3');
82
+ expect(await size()).toBe(3);
83
+ // Update existing (size should not change)
84
+ await map.set('b', 'updated');
85
+ expect(await size()).toBe(3);
86
+ // Delete some
87
+ await map.delete('a');
88
+ expect(await size()).toBe(2);
89
+ // Delete all
90
+ await map.delete('b');
91
+ await map.delete('c');
92
+ expect(await size()).toBe(0);
73
93
  });
74
94
  it('should be able to iterate over entries when there are no keys', async ()=>{
75
- expect(await entries()).to.deep.equal([]);
95
+ expect(await entries()).toEqual([]);
76
96
  });
77
97
  it('should be able to iterate over entries', async ()=>{
78
98
  await map.set('foo', 'bar');
79
99
  await map.set('baz', 'qux');
80
- expect(await entries()).to.deep.equal([
100
+ expect(await entries()).toEqual([
81
101
  [
82
102
  'baz',
83
103
  'qux'
@@ -91,7 +111,7 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
91
111
  it('should be able to iterate over values', async ()=>{
92
112
  await map.set('foo', 'bar');
93
113
  await map.set('baz', 'quux');
94
- expect(await values()).to.deep.equal([
114
+ expect(await values()).toEqual([
95
115
  'quux',
96
116
  'bar'
97
117
  ]);
@@ -99,7 +119,7 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
99
119
  it('should be able to iterate over keys', async ()=>{
100
120
  await map.set('foo', 'bar');
101
121
  await map.set('baz', 'qux');
102
- expect(await keys()).to.deep.equal([
122
+ expect(await keys()).toEqual([
103
123
  'baz',
104
124
  'foo'
105
125
  ]);
@@ -107,7 +127,7 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
107
127
  it('should be able to iterate over string keys that represent numbers', async ()=>{
108
128
  await map.set('0x22', 'bar');
109
129
  await map.set('0x31', 'qux');
110
- expect(await keys()).to.deep.equal([
130
+ expect(await keys()).toEqual([
111
131
  '0x22',
112
132
  '0x31'
113
133
  ]);
@@ -131,8 +151,15 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
131
151
  4
132
152
  ]
133
153
  ],
134
- // disabled because indexeddb sorts lexigographically
135
- // ['negative numbers', [-4, -3, -2, -1]],
154
+ [
155
+ 'negative numbers',
156
+ [
157
+ -4,
158
+ -3,
159
+ -2,
160
+ -1
161
+ ]
162
+ ],
136
163
  [
137
164
  'strings',
138
165
  [
@@ -150,6 +177,24 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
150
177
  2,
151
178
  3
152
179
  ]
180
+ ],
181
+ [
182
+ 'large numbers',
183
+ [
184
+ 100,
185
+ 999,
186
+ 1000,
187
+ 1001
188
+ ]
189
+ ],
190
+ [
191
+ 'mixed negative and positive',
192
+ [
193
+ -1000,
194
+ -1,
195
+ 1,
196
+ 1000
197
+ ]
153
198
  ]
154
199
  ]){
155
200
  it(`supports range queries over ${name} keys`, async ()=>{
@@ -158,7 +203,7 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
158
203
  await map.set(b, 'b');
159
204
  await map.set(c, 'c');
160
205
  await map.set(d, 'd');
161
- expect(await keys()).to.deep.equal([
206
+ expect(await keys()).toEqual([
162
207
  a,
163
208
  b,
164
209
  c,
@@ -167,19 +212,19 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
167
212
  expect(await keys({
168
213
  start: b,
169
214
  end: c
170
- })).to.deep.equal([
215
+ })).toEqual([
171
216
  b
172
217
  ]);
173
218
  expect(await keys({
174
219
  start: b
175
- })).to.deep.equal([
220
+ })).toEqual([
176
221
  b,
177
222
  c,
178
223
  d
179
224
  ]);
180
225
  expect(await keys({
181
226
  end: c
182
- })).to.deep.equal([
227
+ })).toEqual([
183
228
  a,
184
229
  b
185
230
  ]);
@@ -187,26 +232,26 @@ export function describeAztecMap(testName, getStore, forceAsync = false) {
187
232
  start: b,
188
233
  end: c,
189
234
  reverse: true
190
- })).to.deep.equal([
235
+ })).toEqual([
191
236
  c
192
237
  ]);
193
238
  expect(await keys({
194
239
  start: b,
195
240
  limit: 1
196
- })).to.deep.equal([
241
+ })).toEqual([
197
242
  b
198
243
  ]);
199
244
  expect(await keys({
200
245
  start: b,
201
246
  reverse: true
202
- })).to.deep.equal([
247
+ })).toEqual([
203
248
  d,
204
249
  c
205
250
  ]);
206
251
  expect(await keys({
207
252
  end: b,
208
253
  reverse: true
209
- })).to.deep.equal([
254
+ })).toEqual([
210
255
  b,
211
256
  a
212
257
  ]);
@@ -1,3 +1,3 @@
1
1
  import type { AztecAsyncKVStore, AztecKVStore } from './store.js';
2
2
  export declare function describeAztecMultiMap(testName: string, getStore: () => AztecKVStore | Promise<AztecAsyncKVStore>, forceAsync?: boolean): void;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL211bHRpX21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IscUJBQXFCLENBQ25DLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUF5VTVCIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfbWFwX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL211bHRpX21hcF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSx3QkFBZ0IscUJBQXFCLENBQ25DLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDekQsVUFBVSxHQUFFLE9BQWUsUUF5VzVCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"multi_map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/multi_map_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAyU5B"}
1
+ {"version":3,"file":"multi_map_test_suite.d.ts","sourceRoot":"","sources":["../../src/interfaces/multi_map_test_suite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,EACzD,UAAU,GAAE,OAAe,QAyW5B"}