holosphere 2.0.0-alpha2 → 2.0.0-alpha5

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 (98) hide show
  1. package/dist/2019-D2OG2idw.js +6680 -0
  2. package/dist/2019-D2OG2idw.js.map +1 -0
  3. package/dist/2019-EION3wKo.cjs +8 -0
  4. package/dist/2019-EION3wKo.cjs.map +1 -0
  5. package/dist/_commonjsHelpers-C37NGDzP.cjs +2 -0
  6. package/dist/_commonjsHelpers-C37NGDzP.cjs.map +1 -0
  7. package/dist/_commonjsHelpers-CUmg6egw.js +7 -0
  8. package/dist/_commonjsHelpers-CUmg6egw.js.map +1 -0
  9. package/dist/browser-BSniCNqO.js +3058 -0
  10. package/dist/browser-BSniCNqO.js.map +1 -0
  11. package/dist/browser-Cq59Ij19.cjs +2 -0
  12. package/dist/browser-Cq59Ij19.cjs.map +1 -0
  13. package/dist/cjs/holosphere.cjs +1 -1
  14. package/dist/esm/holosphere.js +50 -53
  15. package/dist/index-BG8FStkt.cjs +12 -0
  16. package/dist/index-BG8FStkt.cjs.map +1 -0
  17. package/dist/index-Bbey4GkP.js +37869 -0
  18. package/dist/index-Bbey4GkP.js.map +1 -0
  19. package/dist/index-Cp3xctq8.js +15104 -0
  20. package/dist/index-Cp3xctq8.js.map +1 -0
  21. package/dist/index-hfVGRwSr.cjs +5 -0
  22. package/dist/index-hfVGRwSr.cjs.map +1 -0
  23. package/dist/indexeddb-storage-BD70pN7q.cjs +2 -0
  24. package/dist/indexeddb-storage-BD70pN7q.cjs.map +1 -0
  25. package/dist/{indexeddb-storage-CMW4qRQS.js → indexeddb-storage-Bjg84U5R.js} +49 -13
  26. package/dist/indexeddb-storage-Bjg84U5R.js.map +1 -0
  27. package/dist/{memory-storage-DQzcAZlf.js → memory-storage-CD0XFayE.js} +6 -2
  28. package/dist/memory-storage-CD0XFayE.js.map +1 -0
  29. package/dist/{memory-storage-DmePEP2q.cjs → memory-storage-DmMyJtOo.cjs} +2 -2
  30. package/dist/memory-storage-DmMyJtOo.cjs.map +1 -0
  31. package/dist/{secp256k1-vOXp40Fx.js → secp256k1-69sS9O-P.js} +2 -393
  32. package/dist/secp256k1-69sS9O-P.js.map +1 -0
  33. package/dist/secp256k1-TcN6vWGh.cjs +12 -0
  34. package/dist/secp256k1-TcN6vWGh.cjs.map +1 -0
  35. package/docs/CONTRACTS.md +797 -0
  36. package/examples/demo.html +47 -0
  37. package/package.json +10 -5
  38. package/src/contracts/abis/Appreciative.json +1280 -0
  39. package/src/contracts/abis/AppreciativeFactory.json +101 -0
  40. package/src/contracts/abis/Bundle.json +1435 -0
  41. package/src/contracts/abis/BundleFactory.json +106 -0
  42. package/src/contracts/abis/Holon.json +881 -0
  43. package/src/contracts/abis/Holons.json +330 -0
  44. package/src/contracts/abis/Managed.json +1262 -0
  45. package/src/contracts/abis/ManagedFactory.json +149 -0
  46. package/src/contracts/abis/Membrane.json +261 -0
  47. package/src/contracts/abis/Splitter.json +1624 -0
  48. package/src/contracts/abis/SplitterFactory.json +220 -0
  49. package/src/contracts/abis/TestToken.json +321 -0
  50. package/src/contracts/abis/Zoned.json +1461 -0
  51. package/src/contracts/abis/ZonedFactory.json +154 -0
  52. package/src/contracts/chain-manager.js +375 -0
  53. package/src/contracts/deployer.js +443 -0
  54. package/src/contracts/event-listener.js +507 -0
  55. package/src/contracts/holon-contracts.js +344 -0
  56. package/src/contracts/index.js +83 -0
  57. package/src/contracts/networks.js +224 -0
  58. package/src/contracts/operations.js +670 -0
  59. package/src/contracts/queries.js +589 -0
  60. package/src/core/holosphere.js +453 -1
  61. package/src/crypto/nostr-utils.js +263 -0
  62. package/src/federation/handshake.js +455 -0
  63. package/src/federation/hologram.js +1 -1
  64. package/src/hierarchical/upcast.js +6 -5
  65. package/src/index.js +463 -1939
  66. package/src/lib/ai-methods.js +308 -0
  67. package/src/lib/contract-methods.js +293 -0
  68. package/src/lib/errors.js +23 -0
  69. package/src/lib/federation-methods.js +238 -0
  70. package/src/lib/index.js +26 -0
  71. package/src/spatial/h3-operations.js +2 -2
  72. package/src/storage/backends/gundb-backend.js +377 -46
  73. package/src/storage/global-tables.js +28 -1
  74. package/src/storage/gun-auth.js +303 -0
  75. package/src/storage/gun-federation.js +776 -0
  76. package/src/storage/gun-references.js +198 -0
  77. package/src/storage/gun-schema.js +291 -0
  78. package/src/storage/gun-wrapper.js +347 -31
  79. package/src/storage/indexeddb-storage.js +49 -11
  80. package/src/storage/memory-storage.js +5 -0
  81. package/src/storage/nostr-async.js +194 -37
  82. package/src/storage/nostr-client.js +580 -51
  83. package/src/storage/persistent-storage.js +6 -1
  84. package/src/storage/unified-storage.js +119 -0
  85. package/src/subscriptions/manager.js +1 -1
  86. package/types/index.d.ts +133 -0
  87. package/dist/index-CDfIuXew.js +0 -15974
  88. package/dist/index-CDfIuXew.js.map +0 -1
  89. package/dist/index-ifOgtDvd.cjs +0 -3
  90. package/dist/index-ifOgtDvd.cjs.map +0 -1
  91. package/dist/indexeddb-storage-CMW4qRQS.js.map +0 -1
  92. package/dist/indexeddb-storage-DLZOgetM.cjs +0 -2
  93. package/dist/indexeddb-storage-DLZOgetM.cjs.map +0 -1
  94. package/dist/memory-storage-DQzcAZlf.js.map +0 -1
  95. package/dist/memory-storage-DmePEP2q.cjs.map +0 -1
  96. package/dist/secp256k1-CP0ZkpAx.cjs +0 -13
  97. package/dist/secp256k1-CP0ZkpAx.cjs.map +0 -1
  98. package/dist/secp256k1-vOXp40Fx.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-hfVGRwSr.cjs");class t extends e.PersistentStorage{constructor(){super(),this.db=null,this.dbName="",this.storeName="events"}async init(e){return this.dbName=`holosphere_${e}`,new Promise((e,t)=>{const r=indexedDB.open(this.dbName,1);r.onerror=()=>t(r.error),r.onsuccess=()=>{this.db=r.result,e(void 0)},r.onupgradeneeded=e=>{const t=e.target.result;if(!t.objectStoreNames.contains(this.storeName)){t.createObjectStore(this.storeName,{keyPath:"key"}).createIndex("key","key",{unique:!1})}}})}async put(e,t){return new Promise((r,s)=>{if(!this.db)return void s(new Error("Database not initialized"));const o=this.db.transaction([this.storeName],"readwrite").objectStore(this.storeName).put({key:e,event:t,timestamp:Date.now()});o.onsuccess=()=>r(void 0),o.onerror=()=>s(o.error)})}async get(e){return new Promise((t,r)=>{if(!this.db)return void r(new Error("Database not initialized"));const s=this.db.transaction([this.storeName],"readonly").objectStore(this.storeName).get(e);s.onsuccess=()=>{const e=s.result;t(e?e.event:null)},s.onerror=()=>r(s.error)})}async getAll(e){return new Promise((t,r)=>{if(!this.db)return void r(new Error("Database not initialized"));const s=this.db.transaction([this.storeName],"readonly").objectStore(this.storeName),o=[];let n;if(e){const t=IDBKeyRange.bound(e,e+"￿",!1,!1);n=s.openCursor(t)}else n=s.openCursor();n.onsuccess=e=>{const r=e.target.result;r?(o.push(r.value.event),r.continue()):t(o)},n.onerror=()=>r(n.error)})}async delete(e){return new Promise((t,r)=>{if(!this.db)return void r(new Error("Database not initialized"));const s=this.db.transaction([this.storeName],"readwrite").objectStore(this.storeName).delete(e);s.onsuccess=()=>t(void 0),s.onerror=()=>r(s.error)})}async clear(){return new Promise((e,t)=>{if(!this.db)return void t(new Error("Database not initialized"));const r=this.db.transaction([this.storeName],"readwrite").objectStore(this.storeName).clear();r.onsuccess=()=>e(void 0),r.onerror=()=>t(r.error)})}async close(){this.db&&(this.db.close(),this.db=null)}}exports.IndexedDBStorage=t;
2
+ //# sourceMappingURL=indexeddb-storage-BD70pN7q.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-storage-BD70pN7q.cjs","sources":["../src/storage/indexeddb-storage.js"],"sourcesContent":["/**\n * IndexedDB storage adapter for browsers\n * Provides persistent storage with good performance\n */\n\nimport { PersistentStorage } from './persistent-storage.js';\n\nexport class IndexedDBStorage extends PersistentStorage {\n constructor() {\n super();\n /** @type {IDBDatabase|null} */\n this.db = null;\n /** @type {string} */\n this.dbName = '';\n this.storeName = 'events';\n }\n\n async init(namespace) {\n this.dbName = `holosphere_${namespace}`;\n\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.dbName, 1);\n\n request.onerror = () => reject(request.error);\n request.onsuccess = () => {\n this.db = request.result;\n resolve(undefined);\n };\n\n request.onupgradeneeded = (event) => {\n const target = /** @type {IDBOpenDBRequest} */ (event.target);\n const db = target.result;\n\n // Create object store if it doesn't exist\n if (!db.objectStoreNames.contains(this.storeName)) {\n const objectStore = db.createObjectStore(this.storeName, { keyPath: 'key' });\n // Create index for prefix queries\n objectStore.createIndex('key', 'key', { unique: false });\n }\n };\n });\n }\n\n async put(key, event) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.put({ key, event, timestamp: Date.now() });\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async get(key) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readonly');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.get(key);\n\n request.onsuccess = () => {\n const result = request.result;\n resolve(result ? result.event : null);\n };\n request.onerror = () => reject(request.error);\n });\n }\n\n /**\n * @param {string} prefix\n * @returns {Promise<any[]>}\n */\n async getAll(prefix) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readonly');\n const objectStore = transaction.objectStore(this.storeName);\n\n /** @type {any[]} */\n const results = [];\n\n // Use IDBKeyRange for efficient prefix query instead of full table scan\n // This creates a range from \"prefix\" to \"prefix\\uffff\" (highest unicode char)\n // which efficiently uses the B-tree index\n let request;\n if (prefix) {\n const range = IDBKeyRange.bound(prefix, prefix + '\\uffff', false, false);\n request = objectStore.openCursor(range);\n } else {\n // No prefix = get all\n request = objectStore.openCursor();\n }\n\n request.onsuccess = (event) => {\n const target = /** @type {IDBRequest} */ (event.target);\n const cursor = target.result;\n if (cursor) {\n results.push(cursor.value.event);\n cursor.continue();\n } else {\n resolve(results);\n }\n };\n\n request.onerror = () => reject(request.error);\n });\n }\n\n async delete(key) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.delete(key);\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async clear() {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.clear();\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async close() {\n if (this.db) {\n this.db.close();\n this.db = null;\n }\n }\n}\n"],"names":["IndexedDBStorage","PersistentStorage","constructor","super","this","db","dbName","storeName","init","namespace","Promise","resolve","reject","request","indexedDB","open","onerror","error","onsuccess","result","onupgradeneeded","event","objectStoreNames","contains","createObjectStore","keyPath","createIndex","unique","put","key","Error","transaction","objectStore","timestamp","Date","now","get","getAll","prefix","results","range","IDBKeyRange","bound","openCursor","cursor","push","value","continue","delete","clear","close"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { P as PersistentStorage } from "./index-CDfIuXew.js";
1
+ import { aZ as PersistentStorage } from "./index-Bbey4GkP.js";
2
2
  class IndexedDBStorage extends PersistentStorage {
3
3
  constructor() {
4
4
  super();
5
5
  this.db = null;
6
- this.dbName = null;
6
+ this.dbName = "";
7
7
  this.storeName = "events";
8
8
  }
9
9
  async init(namespace) {
@@ -13,10 +13,14 @@ class IndexedDBStorage extends PersistentStorage {
13
13
  request.onerror = () => reject(request.error);
14
14
  request.onsuccess = () => {
15
15
  this.db = request.result;
16
- resolve();
16
+ resolve(void 0);
17
17
  };
18
18
  request.onupgradeneeded = (event) => {
19
- const db = event.target.result;
19
+ const target = (
20
+ /** @type {IDBOpenDBRequest} */
21
+ event.target
22
+ );
23
+ const db = target.result;
20
24
  if (!db.objectStoreNames.contains(this.storeName)) {
21
25
  const objectStore = db.createObjectStore(this.storeName, { keyPath: "key" });
22
26
  objectStore.createIndex("key", "key", { unique: false });
@@ -26,15 +30,23 @@ class IndexedDBStorage extends PersistentStorage {
26
30
  }
27
31
  async put(key, event) {
28
32
  return new Promise((resolve, reject) => {
33
+ if (!this.db) {
34
+ reject(new Error("Database not initialized"));
35
+ return;
36
+ }
29
37
  const transaction = this.db.transaction([this.storeName], "readwrite");
30
38
  const objectStore = transaction.objectStore(this.storeName);
31
39
  const request = objectStore.put({ key, event, timestamp: Date.now() });
32
- request.onsuccess = () => resolve();
40
+ request.onsuccess = () => resolve(void 0);
33
41
  request.onerror = () => reject(request.error);
34
42
  });
35
43
  }
36
44
  async get(key) {
37
45
  return new Promise((resolve, reject) => {
46
+ if (!this.db) {
47
+ reject(new Error("Database not initialized"));
48
+ return;
49
+ }
38
50
  const transaction = this.db.transaction([this.storeName], "readonly");
39
51
  const objectStore = transaction.objectStore(this.storeName);
40
52
  const request = objectStore.get(key);
@@ -45,18 +57,34 @@ class IndexedDBStorage extends PersistentStorage {
45
57
  request.onerror = () => reject(request.error);
46
58
  });
47
59
  }
60
+ /**
61
+ * @param {string} prefix
62
+ * @returns {Promise<any[]>}
63
+ */
48
64
  async getAll(prefix) {
49
65
  return new Promise((resolve, reject) => {
66
+ if (!this.db) {
67
+ reject(new Error("Database not initialized"));
68
+ return;
69
+ }
50
70
  const transaction = this.db.transaction([this.storeName], "readonly");
51
71
  const objectStore = transaction.objectStore(this.storeName);
52
72
  const results = [];
53
- const request = objectStore.openCursor();
73
+ let request;
74
+ if (prefix) {
75
+ const range = IDBKeyRange.bound(prefix, prefix + "￿", false, false);
76
+ request = objectStore.openCursor(range);
77
+ } else {
78
+ request = objectStore.openCursor();
79
+ }
54
80
  request.onsuccess = (event) => {
55
- const cursor = event.target.result;
81
+ const target = (
82
+ /** @type {IDBRequest} */
83
+ event.target
84
+ );
85
+ const cursor = target.result;
56
86
  if (cursor) {
57
- if (cursor.value.key.startsWith(prefix)) {
58
- results.push(cursor.value.event);
59
- }
87
+ results.push(cursor.value.event);
60
88
  cursor.continue();
61
89
  } else {
62
90
  resolve(results);
@@ -67,19 +95,27 @@ class IndexedDBStorage extends PersistentStorage {
67
95
  }
68
96
  async delete(key) {
69
97
  return new Promise((resolve, reject) => {
98
+ if (!this.db) {
99
+ reject(new Error("Database not initialized"));
100
+ return;
101
+ }
70
102
  const transaction = this.db.transaction([this.storeName], "readwrite");
71
103
  const objectStore = transaction.objectStore(this.storeName);
72
104
  const request = objectStore.delete(key);
73
- request.onsuccess = () => resolve();
105
+ request.onsuccess = () => resolve(void 0);
74
106
  request.onerror = () => reject(request.error);
75
107
  });
76
108
  }
77
109
  async clear() {
78
110
  return new Promise((resolve, reject) => {
111
+ if (!this.db) {
112
+ reject(new Error("Database not initialized"));
113
+ return;
114
+ }
79
115
  const transaction = this.db.transaction([this.storeName], "readwrite");
80
116
  const objectStore = transaction.objectStore(this.storeName);
81
117
  const request = objectStore.clear();
82
- request.onsuccess = () => resolve();
118
+ request.onsuccess = () => resolve(void 0);
83
119
  request.onerror = () => reject(request.error);
84
120
  });
85
121
  }
@@ -93,4 +129,4 @@ class IndexedDBStorage extends PersistentStorage {
93
129
  export {
94
130
  IndexedDBStorage
95
131
  };
96
- //# sourceMappingURL=indexeddb-storage-CMW4qRQS.js.map
132
+ //# sourceMappingURL=indexeddb-storage-Bjg84U5R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-storage-Bjg84U5R.js","sources":["../src/storage/indexeddb-storage.js"],"sourcesContent":["/**\n * IndexedDB storage adapter for browsers\n * Provides persistent storage with good performance\n */\n\nimport { PersistentStorage } from './persistent-storage.js';\n\nexport class IndexedDBStorage extends PersistentStorage {\n constructor() {\n super();\n /** @type {IDBDatabase|null} */\n this.db = null;\n /** @type {string} */\n this.dbName = '';\n this.storeName = 'events';\n }\n\n async init(namespace) {\n this.dbName = `holosphere_${namespace}`;\n\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(this.dbName, 1);\n\n request.onerror = () => reject(request.error);\n request.onsuccess = () => {\n this.db = request.result;\n resolve(undefined);\n };\n\n request.onupgradeneeded = (event) => {\n const target = /** @type {IDBOpenDBRequest} */ (event.target);\n const db = target.result;\n\n // Create object store if it doesn't exist\n if (!db.objectStoreNames.contains(this.storeName)) {\n const objectStore = db.createObjectStore(this.storeName, { keyPath: 'key' });\n // Create index for prefix queries\n objectStore.createIndex('key', 'key', { unique: false });\n }\n };\n });\n }\n\n async put(key, event) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.put({ key, event, timestamp: Date.now() });\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async get(key) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readonly');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.get(key);\n\n request.onsuccess = () => {\n const result = request.result;\n resolve(result ? result.event : null);\n };\n request.onerror = () => reject(request.error);\n });\n }\n\n /**\n * @param {string} prefix\n * @returns {Promise<any[]>}\n */\n async getAll(prefix) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readonly');\n const objectStore = transaction.objectStore(this.storeName);\n\n /** @type {any[]} */\n const results = [];\n\n // Use IDBKeyRange for efficient prefix query instead of full table scan\n // This creates a range from \"prefix\" to \"prefix\\uffff\" (highest unicode char)\n // which efficiently uses the B-tree index\n let request;\n if (prefix) {\n const range = IDBKeyRange.bound(prefix, prefix + '\\uffff', false, false);\n request = objectStore.openCursor(range);\n } else {\n // No prefix = get all\n request = objectStore.openCursor();\n }\n\n request.onsuccess = (event) => {\n const target = /** @type {IDBRequest} */ (event.target);\n const cursor = target.result;\n if (cursor) {\n results.push(cursor.value.event);\n cursor.continue();\n } else {\n resolve(results);\n }\n };\n\n request.onerror = () => reject(request.error);\n });\n }\n\n async delete(key) {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.delete(key);\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async clear() {\n return new Promise((resolve, reject) => {\n if (!this.db) {\n reject(new Error('Database not initialized'));\n return;\n }\n const transaction = this.db.transaction([this.storeName], 'readwrite');\n const objectStore = transaction.objectStore(this.storeName);\n\n const request = objectStore.clear();\n\n request.onsuccess = () => resolve(undefined);\n request.onerror = () => reject(request.error);\n });\n }\n\n async close() {\n if (this.db) {\n this.db.close();\n this.db = null;\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { P as PersistentStorage } from "./index-CDfIuXew.js";
1
+ import { aZ as PersistentStorage } from "./index-Bbey4GkP.js";
2
2
  class MemoryStorage extends PersistentStorage {
3
3
  constructor() {
4
4
  super();
@@ -22,6 +22,10 @@ class MemoryStorage extends PersistentStorage {
22
22
  const data = this.data.get(key);
23
23
  return data ? JSON.parse(JSON.stringify(data)) : null;
24
24
  }
25
+ /**
26
+ * @param {string} prefix
27
+ * @returns {Promise<any[]>}
28
+ */
25
29
  async getAll(prefix) {
26
30
  const results = [];
27
31
  for (const [key, value] of this.data.entries()) {
@@ -44,4 +48,4 @@ MemoryStorage._globalStore = null;
44
48
  export {
45
49
  MemoryStorage
46
50
  };
47
- //# sourceMappingURL=memory-storage-DQzcAZlf.js.map
51
+ //# sourceMappingURL=memory-storage-CD0XFayE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-storage-CD0XFayE.js","sources":["../src/storage/memory-storage.js"],"sourcesContent":["/**\n * Memory-only storage adapter (fallback, no actual persistence)\n */\n\nimport { PersistentStorage } from './persistent-storage.js';\n\nexport class MemoryStorage extends PersistentStorage {\n constructor() {\n super();\n this.data = new Map();\n this.namespace = null;\n }\n\n async init(namespace) {\n this.namespace = namespace;\n // Check if there's existing data for this namespace\n if (!MemoryStorage._globalStore) {\n MemoryStorage._globalStore = new Map();\n }\n if (!MemoryStorage._globalStore.has(namespace)) {\n MemoryStorage._globalStore.set(namespace, new Map());\n }\n this.data = MemoryStorage._globalStore.get(namespace);\n }\n\n async put(key, event) {\n this.data.set(key, JSON.parse(JSON.stringify(event))); // Deep clone\n }\n\n async get(key) {\n const data = this.data.get(key);\n return data ? JSON.parse(JSON.stringify(data)) : null; // Deep clone\n }\n\n /**\n * @param {string} prefix\n * @returns {Promise<any[]>}\n */\n async getAll(prefix) {\n /** @type {any[]} */\n const results = [];\n for (const [key, value] of this.data.entries()) {\n if (key.startsWith(prefix)) {\n results.push(JSON.parse(JSON.stringify(value)));\n }\n }\n return results;\n }\n\n async delete(key) {\n this.data.delete(key);\n }\n\n async clear() {\n this.data.clear();\n }\n\n async close() {\n // Nothing to close for memory storage\n }\n}\n\n// Global store shared across instances with same namespace\nMemoryStorage._globalStore = null;\n"],"names":[],"mappings":";AAMO,MAAM,sBAAsB,kBAAkB;AAAA,EACnD,cAAc;AACZ,UAAK;AACL,SAAK,OAAO,oBAAI,IAAG;AACnB,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,MAAM,KAAK,WAAW;AACpB,SAAK,YAAY;AAEjB,QAAI,CAAC,cAAc,cAAc;AAC/B,oBAAc,eAAe,oBAAI,IAAG;AAAA,IACtC;AACA,QAAI,CAAC,cAAc,aAAa,IAAI,SAAS,GAAG;AAC9C,oBAAc,aAAa,IAAI,WAAW,oBAAI,IAAG,CAAE;AAAA,IACrD;AACA,SAAK,OAAO,cAAc,aAAa,IAAI,SAAS;AAAA,EACtD;AAAA,EAEA,MAAM,IAAI,KAAK,OAAO;AACpB,SAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC;AAAA,EACtD;AAAA,EAEA,MAAM,IAAI,KAAK;AACb,UAAM,OAAO,KAAK,KAAK,IAAI,GAAG;AAC9B,WAAO,OAAO,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC,IAAI;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAO,QAAQ;AAEnB,UAAM,UAAU,CAAA;AAChB,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,WAAW;AAC9C,UAAI,IAAI,WAAW,MAAM,GAAG;AAC1B,gBAAQ,KAAK,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC;AAAA,MAChD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,OAAO,KAAK;AAChB,SAAK,KAAK,OAAO,GAAG;AAAA,EACtB;AAAA,EAEA,MAAM,QAAQ;AACZ,SAAK,KAAK,MAAK;AAAA,EACjB;AAAA,EAEA,MAAM,QAAQ;AAAA,EAEd;AACF;AAGA,cAAc,eAAe;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-ifOgtDvd.cjs");class e extends t.PersistentStorage{constructor(){super(),this.data=new Map,this.namespace=null}async init(t){this.namespace=t,e._globalStore||(e._globalStore=new Map),e._globalStore.has(t)||e._globalStore.set(t,new Map),this.data=e._globalStore.get(t)}async put(t,e){this.data.set(t,JSON.parse(JSON.stringify(e)))}async get(t){const e=this.data.get(t);return e?JSON.parse(JSON.stringify(e)):null}async getAll(t){const e=[];for(const[s,a]of this.data.entries())s.startsWith(t)&&e.push(JSON.parse(JSON.stringify(a)));return e}async delete(t){this.data.delete(t)}async clear(){this.data.clear()}async close(){}}e._globalStore=null,exports.MemoryStorage=e;
2
- //# sourceMappingURL=memory-storage-DmePEP2q.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index-hfVGRwSr.cjs");class e extends t.PersistentStorage{constructor(){super(),this.data=new Map,this.namespace=null}async init(t){this.namespace=t,e._globalStore||(e._globalStore=new Map),e._globalStore.has(t)||e._globalStore.set(t,new Map),this.data=e._globalStore.get(t)}async put(t,e){this.data.set(t,JSON.parse(JSON.stringify(e)))}async get(t){const e=this.data.get(t);return e?JSON.parse(JSON.stringify(e)):null}async getAll(t){const e=[];for(const[s,a]of this.data.entries())s.startsWith(t)&&e.push(JSON.parse(JSON.stringify(a)));return e}async delete(t){this.data.delete(t)}async clear(){this.data.clear()}async close(){}}e._globalStore=null,exports.MemoryStorage=e;
2
+ //# sourceMappingURL=memory-storage-DmMyJtOo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-storage-DmMyJtOo.cjs","sources":["../src/storage/memory-storage.js"],"sourcesContent":["/**\n * Memory-only storage adapter (fallback, no actual persistence)\n */\n\nimport { PersistentStorage } from './persistent-storage.js';\n\nexport class MemoryStorage extends PersistentStorage {\n constructor() {\n super();\n this.data = new Map();\n this.namespace = null;\n }\n\n async init(namespace) {\n this.namespace = namespace;\n // Check if there's existing data for this namespace\n if (!MemoryStorage._globalStore) {\n MemoryStorage._globalStore = new Map();\n }\n if (!MemoryStorage._globalStore.has(namespace)) {\n MemoryStorage._globalStore.set(namespace, new Map());\n }\n this.data = MemoryStorage._globalStore.get(namespace);\n }\n\n async put(key, event) {\n this.data.set(key, JSON.parse(JSON.stringify(event))); // Deep clone\n }\n\n async get(key) {\n const data = this.data.get(key);\n return data ? JSON.parse(JSON.stringify(data)) : null; // Deep clone\n }\n\n /**\n * @param {string} prefix\n * @returns {Promise<any[]>}\n */\n async getAll(prefix) {\n /** @type {any[]} */\n const results = [];\n for (const [key, value] of this.data.entries()) {\n if (key.startsWith(prefix)) {\n results.push(JSON.parse(JSON.stringify(value)));\n }\n }\n return results;\n }\n\n async delete(key) {\n this.data.delete(key);\n }\n\n async clear() {\n this.data.clear();\n }\n\n async close() {\n // Nothing to close for memory storage\n }\n}\n\n// Global store shared across instances with same namespace\nMemoryStorage._globalStore = null;\n"],"names":["MemoryStorage","PersistentStorage","constructor","super","this","data","Map","namespace","init","_globalStore","has","set","get","put","key","event","JSON","parse","stringify","getAll","prefix","results","value","entries","startsWith","push","delete","clear","close"],"mappings":"wHAMO,MAAMA,UAAsBC,EAAAA,kBACjC,WAAAC,GACEC,QACAC,KAAKC,SAAWC,IAChBF,KAAKG,UAAY,IACnB,CAEA,UAAMC,CAAKD,GACTH,KAAKG,UAAYA,EAEZP,EAAcS,eACjBT,EAAcS,iBAAmBH,KAE9BN,EAAcS,aAAaC,IAAIH,IAClCP,EAAcS,aAAaE,IAAIJ,EAAW,IAAID,KAEhDF,KAAKC,KAAOL,EAAcS,aAAaG,IAAIL,EAC7C,CAEA,SAAMM,CAAIC,EAAKC,GACbX,KAAKC,KAAKM,IAAIG,EAAKE,KAAKC,MAAMD,KAAKE,UAAUH,IAC/C,CAEA,SAAMH,CAAIE,GACR,MAAMT,EAAOD,KAAKC,KAAKO,IAAIE,GAC3B,OAAOT,EAAOW,KAAKC,MAAMD,KAAKE,UAAUb,IAAS,IACnD,CAMA,YAAMc,CAAOC,GAEX,MAAMC,EAAU,GAChB,IAAA,MAAYP,EAAKQ,KAAUlB,KAAKC,KAAKkB,UAC/BT,EAAIU,WAAWJ,IACjBC,EAAQI,KAAKT,KAAKC,MAAMD,KAAKE,UAAUI,KAG3C,OAAOD,CACT,CAEA,YAAM,CAAOP,GACXV,KAAKC,KAAKqB,OAAOZ,EACnB,CAEA,WAAMa,GACJvB,KAAKC,KAAKsB,OACZ,CAEA,WAAMC,GAEN,EAIF5B,EAAcS,aAAe"}
@@ -1,395 +1,4 @@
1
- const crypto = typeof globalThis === "object" && "crypto" in globalThis ? globalThis.crypto : void 0;
2
- /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
3
- function isBytes(a) {
4
- return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
5
- }
6
- function anumber(n) {
7
- if (!Number.isSafeInteger(n) || n < 0)
8
- throw new Error("positive integer expected, got " + n);
9
- }
10
- function abytes(b, ...lengths) {
11
- if (!isBytes(b))
12
- throw new Error("Uint8Array expected");
13
- if (lengths.length > 0 && !lengths.includes(b.length))
14
- throw new Error("Uint8Array expected of length " + lengths + ", got length=" + b.length);
15
- }
16
- function ahash(h) {
17
- if (typeof h !== "function" || typeof h.create !== "function")
18
- throw new Error("Hash should be wrapped by utils.createHasher");
19
- anumber(h.outputLen);
20
- anumber(h.blockLen);
21
- }
22
- function aexists(instance, checkFinished = true) {
23
- if (instance.destroyed)
24
- throw new Error("Hash instance has been destroyed");
25
- if (checkFinished && instance.finished)
26
- throw new Error("Hash#digest() has already been called");
27
- }
28
- function aoutput(out, instance) {
29
- abytes(out);
30
- const min = instance.outputLen;
31
- if (out.length < min) {
32
- throw new Error("digestInto() expects output buffer of length at least " + min);
33
- }
34
- }
35
- function clean(...arrays) {
36
- for (let i = 0; i < arrays.length; i++) {
37
- arrays[i].fill(0);
38
- }
39
- }
40
- function createView(arr) {
41
- return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
42
- }
43
- function rotr(word, shift) {
44
- return word << 32 - shift | word >>> shift;
45
- }
46
- const hasHexBuiltin = /* @__PURE__ */ (() => (
47
- // @ts-ignore
48
- typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function"
49
- ))();
50
- const hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
51
- function bytesToHex(bytes) {
52
- abytes(bytes);
53
- if (hasHexBuiltin)
54
- return bytes.toHex();
55
- let hex = "";
56
- for (let i = 0; i < bytes.length; i++) {
57
- hex += hexes[bytes[i]];
58
- }
59
- return hex;
60
- }
61
- const asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };
62
- function asciiToBase16(ch) {
63
- if (ch >= asciis._0 && ch <= asciis._9)
64
- return ch - asciis._0;
65
- if (ch >= asciis.A && ch <= asciis.F)
66
- return ch - (asciis.A - 10);
67
- if (ch >= asciis.a && ch <= asciis.f)
68
- return ch - (asciis.a - 10);
69
- return;
70
- }
71
- function hexToBytes(hex) {
72
- if (typeof hex !== "string")
73
- throw new Error("hex string expected, got " + typeof hex);
74
- if (hasHexBuiltin)
75
- return Uint8Array.fromHex(hex);
76
- const hl = hex.length;
77
- const al = hl / 2;
78
- if (hl % 2)
79
- throw new Error("hex string expected, got unpadded hex of length " + hl);
80
- const array = new Uint8Array(al);
81
- for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {
82
- const n1 = asciiToBase16(hex.charCodeAt(hi));
83
- const n2 = asciiToBase16(hex.charCodeAt(hi + 1));
84
- if (n1 === void 0 || n2 === void 0) {
85
- const char = hex[hi] + hex[hi + 1];
86
- throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi);
87
- }
88
- array[ai] = n1 * 16 + n2;
89
- }
90
- return array;
91
- }
92
- function utf8ToBytes(str) {
93
- if (typeof str !== "string")
94
- throw new Error("string expected");
95
- return new Uint8Array(new TextEncoder().encode(str));
96
- }
97
- function toBytes(data) {
98
- if (typeof data === "string")
99
- data = utf8ToBytes(data);
100
- abytes(data);
101
- return data;
102
- }
103
- function concatBytes(...arrays) {
104
- let sum = 0;
105
- for (let i = 0; i < arrays.length; i++) {
106
- const a = arrays[i];
107
- abytes(a);
108
- sum += a.length;
109
- }
110
- const res = new Uint8Array(sum);
111
- for (let i = 0, pad = 0; i < arrays.length; i++) {
112
- const a = arrays[i];
113
- res.set(a, pad);
114
- pad += a.length;
115
- }
116
- return res;
117
- }
118
- class Hash {
119
- }
120
- function createHasher(hashCons) {
121
- const hashC = (msg) => hashCons().update(toBytes(msg)).digest();
122
- const tmp = hashCons();
123
- hashC.outputLen = tmp.outputLen;
124
- hashC.blockLen = tmp.blockLen;
125
- hashC.create = () => hashCons();
126
- return hashC;
127
- }
128
- function randomBytes(bytesLength = 32) {
129
- if (crypto && typeof crypto.getRandomValues === "function") {
130
- return crypto.getRandomValues(new Uint8Array(bytesLength));
131
- }
132
- if (crypto && typeof crypto.randomBytes === "function") {
133
- return Uint8Array.from(crypto.randomBytes(bytesLength));
134
- }
135
- throw new Error("crypto.getRandomValues must be defined");
136
- }
137
- function setBigUint64(view, byteOffset, value, isLE) {
138
- if (typeof view.setBigUint64 === "function")
139
- return view.setBigUint64(byteOffset, value, isLE);
140
- const _32n = BigInt(32);
141
- const _u32_max = BigInt(4294967295);
142
- const wh = Number(value >> _32n & _u32_max);
143
- const wl = Number(value & _u32_max);
144
- const h = isLE ? 4 : 0;
145
- const l = isLE ? 0 : 4;
146
- view.setUint32(byteOffset + h, wh, isLE);
147
- view.setUint32(byteOffset + l, wl, isLE);
148
- }
149
- function Chi(a, b, c) {
150
- return a & b ^ ~a & c;
151
- }
152
- function Maj(a, b, c) {
153
- return a & b ^ a & c ^ b & c;
154
- }
155
- class HashMD extends Hash {
156
- constructor(blockLen, outputLen, padOffset, isLE) {
157
- super();
158
- this.finished = false;
159
- this.length = 0;
160
- this.pos = 0;
161
- this.destroyed = false;
162
- this.blockLen = blockLen;
163
- this.outputLen = outputLen;
164
- this.padOffset = padOffset;
165
- this.isLE = isLE;
166
- this.buffer = new Uint8Array(blockLen);
167
- this.view = createView(this.buffer);
168
- }
169
- update(data) {
170
- aexists(this);
171
- data = toBytes(data);
172
- abytes(data);
173
- const { view, buffer, blockLen } = this;
174
- const len = data.length;
175
- for (let pos = 0; pos < len; ) {
176
- const take = Math.min(blockLen - this.pos, len - pos);
177
- if (take === blockLen) {
178
- const dataView = createView(data);
179
- for (; blockLen <= len - pos; pos += blockLen)
180
- this.process(dataView, pos);
181
- continue;
182
- }
183
- buffer.set(data.subarray(pos, pos + take), this.pos);
184
- this.pos += take;
185
- pos += take;
186
- if (this.pos === blockLen) {
187
- this.process(view, 0);
188
- this.pos = 0;
189
- }
190
- }
191
- this.length += data.length;
192
- this.roundClean();
193
- return this;
194
- }
195
- digestInto(out) {
196
- aexists(this);
197
- aoutput(out, this);
198
- this.finished = true;
199
- const { buffer, view, blockLen, isLE } = this;
200
- let { pos } = this;
201
- buffer[pos++] = 128;
202
- clean(this.buffer.subarray(pos));
203
- if (this.padOffset > blockLen - pos) {
204
- this.process(view, 0);
205
- pos = 0;
206
- }
207
- for (let i = pos; i < blockLen; i++)
208
- buffer[i] = 0;
209
- setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);
210
- this.process(view, 0);
211
- const oview = createView(out);
212
- const len = this.outputLen;
213
- if (len % 4)
214
- throw new Error("_sha2: outputLen should be aligned to 32bit");
215
- const outLen = len / 4;
216
- const state = this.get();
217
- if (outLen > state.length)
218
- throw new Error("_sha2: outputLen bigger than state");
219
- for (let i = 0; i < outLen; i++)
220
- oview.setUint32(4 * i, state[i], isLE);
221
- }
222
- digest() {
223
- const { buffer, outputLen } = this;
224
- this.digestInto(buffer);
225
- const res = buffer.slice(0, outputLen);
226
- this.destroy();
227
- return res;
228
- }
229
- _cloneInto(to) {
230
- to || (to = new this.constructor());
231
- to.set(...this.get());
232
- const { blockLen, buffer, length, finished, destroyed, pos } = this;
233
- to.destroyed = destroyed;
234
- to.finished = finished;
235
- to.length = length;
236
- to.pos = pos;
237
- if (length % blockLen)
238
- to.buffer.set(buffer);
239
- return to;
240
- }
241
- clone() {
242
- return this._cloneInto();
243
- }
244
- }
245
- const SHA256_IV = /* @__PURE__ */ Uint32Array.from([
246
- 1779033703,
247
- 3144134277,
248
- 1013904242,
249
- 2773480762,
250
- 1359893119,
251
- 2600822924,
252
- 528734635,
253
- 1541459225
254
- ]);
255
- const SHA256_K = /* @__PURE__ */ Uint32Array.from([
256
- 1116352408,
257
- 1899447441,
258
- 3049323471,
259
- 3921009573,
260
- 961987163,
261
- 1508970993,
262
- 2453635748,
263
- 2870763221,
264
- 3624381080,
265
- 310598401,
266
- 607225278,
267
- 1426881987,
268
- 1925078388,
269
- 2162078206,
270
- 2614888103,
271
- 3248222580,
272
- 3835390401,
273
- 4022224774,
274
- 264347078,
275
- 604807628,
276
- 770255983,
277
- 1249150122,
278
- 1555081692,
279
- 1996064986,
280
- 2554220882,
281
- 2821834349,
282
- 2952996808,
283
- 3210313671,
284
- 3336571891,
285
- 3584528711,
286
- 113926993,
287
- 338241895,
288
- 666307205,
289
- 773529912,
290
- 1294757372,
291
- 1396182291,
292
- 1695183700,
293
- 1986661051,
294
- 2177026350,
295
- 2456956037,
296
- 2730485921,
297
- 2820302411,
298
- 3259730800,
299
- 3345764771,
300
- 3516065817,
301
- 3600352804,
302
- 4094571909,
303
- 275423344,
304
- 430227734,
305
- 506948616,
306
- 659060556,
307
- 883997877,
308
- 958139571,
309
- 1322822218,
310
- 1537002063,
311
- 1747873779,
312
- 1955562222,
313
- 2024104815,
314
- 2227730452,
315
- 2361852424,
316
- 2428436474,
317
- 2756734187,
318
- 3204031479,
319
- 3329325298
320
- ]);
321
- const SHA256_W = /* @__PURE__ */ new Uint32Array(64);
322
- class SHA256 extends HashMD {
323
- constructor(outputLen = 32) {
324
- super(64, outputLen, 8, false);
325
- this.A = SHA256_IV[0] | 0;
326
- this.B = SHA256_IV[1] | 0;
327
- this.C = SHA256_IV[2] | 0;
328
- this.D = SHA256_IV[3] | 0;
329
- this.E = SHA256_IV[4] | 0;
330
- this.F = SHA256_IV[5] | 0;
331
- this.G = SHA256_IV[6] | 0;
332
- this.H = SHA256_IV[7] | 0;
333
- }
334
- get() {
335
- const { A, B, C, D, E, F, G, H } = this;
336
- return [A, B, C, D, E, F, G, H];
337
- }
338
- // prettier-ignore
339
- set(A, B, C, D, E, F, G, H) {
340
- this.A = A | 0;
341
- this.B = B | 0;
342
- this.C = C | 0;
343
- this.D = D | 0;
344
- this.E = E | 0;
345
- this.F = F | 0;
346
- this.G = G | 0;
347
- this.H = H | 0;
348
- }
349
- process(view, offset) {
350
- for (let i = 0; i < 16; i++, offset += 4)
351
- SHA256_W[i] = view.getUint32(offset, false);
352
- for (let i = 16; i < 64; i++) {
353
- const W15 = SHA256_W[i - 15];
354
- const W2 = SHA256_W[i - 2];
355
- const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ W15 >>> 3;
356
- const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ W2 >>> 10;
357
- SHA256_W[i] = s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16] | 0;
358
- }
359
- let { A, B, C, D, E, F, G, H } = this;
360
- for (let i = 0; i < 64; i++) {
361
- const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);
362
- const T1 = H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i] | 0;
363
- const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);
364
- const T2 = sigma0 + Maj(A, B, C) | 0;
365
- H = G;
366
- G = F;
367
- F = E;
368
- E = D + T1 | 0;
369
- D = C;
370
- C = B;
371
- B = A;
372
- A = T1 + T2 | 0;
373
- }
374
- A = A + this.A | 0;
375
- B = B + this.B | 0;
376
- C = C + this.C | 0;
377
- D = D + this.D | 0;
378
- E = E + this.E | 0;
379
- F = F + this.F | 0;
380
- G = G + this.G | 0;
381
- H = H + this.H | 0;
382
- this.set(A, B, C, D, E, F, G, H);
383
- }
384
- roundClean() {
385
- clean(SHA256_W);
386
- }
387
- destroy() {
388
- this.set(0, 0, 0, 0, 0, 0, 0, 0);
389
- clean(this.buffer);
390
- }
391
- }
392
- const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());
1
+ import { H as Hash, a as ahash, t as toBytes, c as clean, b as aexists, d as abytes, e as bytesToHex, i as isBytes, h as hexToBytes, f as concatBytes, g as anumber, r as randomBytes, s as sha256 } from "./index-Bbey4GkP.js";
393
2
  class HMAC extends Hash {
394
3
  constructor(hash, _key) {
395
4
  super();
@@ -2278,4 +1887,4 @@ const secp256k1 = createCurve({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo:
2278
1887
  export {
2279
1888
  secp256k1
2280
1889
  };
2281
- //# sourceMappingURL=secp256k1-vOXp40Fx.js.map
1890
+ //# sourceMappingURL=secp256k1-69sS9O-P.js.map