@nostrwatch/route66 0.0.1

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 (1522) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +346 -0
  3. package/adapters/cache/NostrSqliteAdapter/README.md +1 -0
  4. package/adapters/cache/NostrSqliteAdapter/build.js +64 -0
  5. package/adapters/cache/NostrSqliteAdapter/dist/browser/index.js +11789 -0
  6. package/adapters/cache/NostrSqliteAdapter/dist/browser/index.js.map +7 -0
  7. package/adapters/cache/NostrSqliteAdapter/dist/browser/workers/nostrsqlite.worker.js +9512 -0
  8. package/adapters/cache/NostrSqliteAdapter/dist/browser/workers/nostrsqlite.worker.js.map +7 -0
  9. package/adapters/cache/NostrSqliteAdapter/node_modules/.bin/esbuild +14 -0
  10. package/adapters/cache/NostrSqliteAdapter/node_modules/.bin/tsc +17 -0
  11. package/adapters/cache/NostrSqliteAdapter/node_modules/.bin/tsserver +17 -0
  12. package/adapters/cache/NostrSqliteAdapter/node_modules/.bin/vite +17 -0
  13. package/adapters/cache/NostrSqliteAdapter/package.json +49 -0
  14. package/adapters/cache/NostrSqliteAdapter/package.tgz +0 -0
  15. package/adapters/cache/NostrSqliteAdapter/src/NostrSqLiteMethods.ts +5 -0
  16. package/adapters/cache/NostrSqliteAdapter/src/NostrSqliteAdapter.ts +246 -0
  17. package/adapters/cache/NostrSqliteAdapter/src/NostrSqliteWorker.ts +113 -0
  18. package/adapters/cache/NostrSqliteAdapter/src/index.ts +1 -0
  19. package/adapters/cache/NostrSqliteAdapter/src/utils.ts +8 -0
  20. package/adapters/cache/NostrSqliteAdapter/src/workers/nostrsqlite.worker.ts +12 -0
  21. package/adapters/cache/NostrSqliteAdapter/tsconfig.json +26 -0
  22. package/adapters/websocket/NostrToolsAdapter/build.js +123 -0
  23. package/adapters/websocket/NostrToolsAdapter/dist/browser/index.js +1788 -0
  24. package/adapters/websocket/NostrToolsAdapter/dist/browser/index.js.map +7 -0
  25. package/adapters/websocket/NostrToolsAdapter/dist/node/index.js +1811 -0
  26. package/adapters/websocket/NostrToolsAdapter/dist/node/index.js.map +7 -0
  27. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/esbuild +14 -0
  28. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/eslint +17 -0
  29. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/jest +17 -0
  30. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/prettier +17 -0
  31. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/rollup +17 -0
  32. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/rollup-plugin-visualizer +17 -0
  33. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/tsc +17 -0
  34. package/adapters/websocket/NostrToolsAdapter/node_modules/.bin/tsserver +17 -0
  35. package/adapters/websocket/NostrToolsAdapter/node_modules/.cache/esbuild-plugin-inline-worker/nostrtools.worker.js +141 -0
  36. package/adapters/websocket/NostrToolsAdapter/package.json +79 -0
  37. package/adapters/websocket/NostrToolsAdapter/src/NostrToolsAdapter.ts +17 -0
  38. package/adapters/websocket/NostrToolsAdapter/src/NostrToolsWorker.ts +405 -0
  39. package/adapters/websocket/NostrToolsAdapter/src/index.ts +3 -0
  40. package/adapters/websocket/NostrToolsAdapter/src/shims/empty.js +1 -0
  41. package/adapters/websocket/NostrToolsAdapter/src/shims/node-module-shim.js +3 -0
  42. package/adapters/websocket/NostrToolsAdapter/src/workers/nostrtools.worker.ts +12 -0
  43. package/adapters/websocket/NostrToolsAdapter/tsconfig.json +28 -0
  44. package/build.js +72 -0
  45. package/dist/browser/_virtual/_commonjsHelpers.amd.js +2 -0
  46. package/dist/browser/_virtual/_commonjsHelpers.amd.js.map +1 -0
  47. package/dist/browser/_virtual/_commonjsHelpers.esm.js +2 -0
  48. package/dist/browser/_virtual/_commonjsHelpers.esm.js.map +1 -0
  49. package/dist/browser/_virtual/_tslib.amd.js +2 -0
  50. package/dist/browser/_virtual/_tslib.amd.js.map +1 -0
  51. package/dist/browser/_virtual/_tslib.esm.js +2 -0
  52. package/dist/browser/_virtual/_tslib.esm.js.map +1 -0
  53. package/dist/browser/_virtual/bake-collection.amd.js +2 -0
  54. package/dist/browser/_virtual/bake-collection.amd.js.map +1 -0
  55. package/dist/browser/_virtual/bake-collection.esm.js +2 -0
  56. package/dist/browser/_virtual/bake-collection.esm.js.map +1 -0
  57. package/dist/browser/_virtual/bolt11.amd.js +2 -0
  58. package/dist/browser/_virtual/bolt11.amd.js.map +1 -0
  59. package/dist/browser/_virtual/bolt11.esm.js +2 -0
  60. package/dist/browser/_virtual/bolt11.esm.js.map +1 -0
  61. package/dist/browser/_virtual/ee.amd.js +2 -0
  62. package/dist/browser/_virtual/ee.amd.js.map +1 -0
  63. package/dist/browser/_virtual/ee.esm.js +2 -0
  64. package/dist/browser/_virtual/ee.esm.js.map +1 -0
  65. package/dist/browser/_virtual/index.amd.js +2 -0
  66. package/dist/browser/_virtual/index.amd.js.map +1 -0
  67. package/dist/browser/_virtual/index.amd2.js +2 -0
  68. package/dist/browser/_virtual/index.amd2.js.map +1 -0
  69. package/dist/browser/_virtual/index.amd3.js +2 -0
  70. package/dist/browser/_virtual/index.amd3.js.map +1 -0
  71. package/dist/browser/_virtual/index.amd4.js +2 -0
  72. package/dist/browser/_virtual/index.amd4.js.map +1 -0
  73. package/dist/browser/_virtual/index.amd5.js +2 -0
  74. package/dist/browser/_virtual/index.amd5.js.map +1 -0
  75. package/dist/browser/_virtual/index.amd6.js +2 -0
  76. package/dist/browser/_virtual/index.amd6.js.map +1 -0
  77. package/dist/browser/_virtual/index.esm.js +2 -0
  78. package/dist/browser/_virtual/index.esm.js.map +1 -0
  79. package/dist/browser/_virtual/index.esm2.js +2 -0
  80. package/dist/browser/_virtual/index.esm2.js.map +1 -0
  81. package/dist/browser/_virtual/index.esm3.js +2 -0
  82. package/dist/browser/_virtual/index.esm3.js.map +1 -0
  83. package/dist/browser/_virtual/index.esm4.js +2 -0
  84. package/dist/browser/_virtual/index.esm4.js.map +1 -0
  85. package/dist/browser/_virtual/index.esm5.js +2 -0
  86. package/dist/browser/_virtual/index.esm5.js.map +1 -0
  87. package/dist/browser/_virtual/index.esm6.js +2 -0
  88. package/dist/browser/_virtual/index.esm6.js.map +1 -0
  89. package/dist/browser/_virtual/task-collection.amd.js +2 -0
  90. package/dist/browser/_virtual/task-collection.amd.js.map +1 -0
  91. package/dist/browser/_virtual/task-collection.esm.js +2 -0
  92. package/dist/browser/_virtual/task-collection.esm.js.map +1 -0
  93. package/dist/browser/_virtual/types.amd.js +2 -0
  94. package/dist/browser/_virtual/types.amd.js.map +1 -0
  95. package/dist/browser/_virtual/types.esm.js +2 -0
  96. package/dist/browser/_virtual/types.esm.js.map +1 -0
  97. package/dist/browser/_virtual/utils.amd.js +2 -0
  98. package/dist/browser/_virtual/utils.amd.js.map +1 -0
  99. package/dist/browser/_virtual/utils.amd2.js +2 -0
  100. package/dist/browser/_virtual/utils.amd2.js.map +1 -0
  101. package/dist/browser/_virtual/utils.esm.js +2 -0
  102. package/dist/browser/_virtual/utils.esm.js.map +1 -0
  103. package/dist/browser/_virtual/utils.esm2.js +2 -0
  104. package/dist/browser/_virtual/utils.esm2.js.map +1 -0
  105. package/dist/browser/core/Adapter.amd.js +2 -0
  106. package/dist/browser/core/Adapter.amd.js.map +1 -0
  107. package/dist/browser/core/Adapter.esm.js +2 -0
  108. package/dist/browser/core/Adapter.esm.js.map +1 -0
  109. package/dist/browser/core/AdapterCacheWorker.amd.js +2 -0
  110. package/dist/browser/core/AdapterCacheWorker.amd.js.map +1 -0
  111. package/dist/browser/core/AdapterCacheWorker.esm.js +2 -0
  112. package/dist/browser/core/AdapterCacheWorker.esm.js.map +1 -0
  113. package/dist/browser/core/AdapterWebsocketWorker.amd.js +2 -0
  114. package/dist/browser/core/AdapterWebsocketWorker.amd.js.map +1 -0
  115. package/dist/browser/core/AdapterWebsocketWorker.esm.js +2 -0
  116. package/dist/browser/core/AdapterWebsocketWorker.esm.js.map +1 -0
  117. package/dist/browser/core/AdapterWorker.amd.js +2 -0
  118. package/dist/browser/core/AdapterWorker.amd.js.map +1 -0
  119. package/dist/browser/core/AdapterWorker.esm.js +2 -0
  120. package/dist/browser/core/AdapterWorker.esm.js.map +1 -0
  121. package/dist/browser/core/Base.amd.js +2 -0
  122. package/dist/browser/core/Base.amd.js.map +1 -0
  123. package/dist/browser/core/Base.esm.js +2 -0
  124. package/dist/browser/core/Base.esm.js.map +1 -0
  125. package/dist/browser/core/Batcher.amd.js +2 -0
  126. package/dist/browser/core/Batcher.amd.js.map +1 -0
  127. package/dist/browser/core/Batcher.esm.js +2 -0
  128. package/dist/browser/core/Batcher.esm.js.map +1 -0
  129. package/dist/browser/core/CacheAdapter.amd.js +2 -0
  130. package/dist/browser/core/CacheAdapter.amd.js.map +1 -0
  131. package/dist/browser/core/CacheAdapter.esm.js +2 -0
  132. package/dist/browser/core/CacheAdapter.esm.js.map +1 -0
  133. package/dist/browser/core/LocalStorageWrapper.amd.js +2 -0
  134. package/dist/browser/core/LocalStorageWrapper.amd.js.map +1 -0
  135. package/dist/browser/core/LocalStorageWrapper.esm.js +2 -0
  136. package/dist/browser/core/LocalStorageWrapper.esm.js.map +1 -0
  137. package/dist/browser/core/Queue.amd.js +2 -0
  138. package/dist/browser/core/Queue.amd.js.map +1 -0
  139. package/dist/browser/core/Queue.esm.js +2 -0
  140. package/dist/browser/core/Queue.esm.js.map +1 -0
  141. package/dist/browser/core/WebsocketAdapter.amd.js +2 -0
  142. package/dist/browser/core/WebsocketAdapter.amd.js.map +1 -0
  143. package/dist/browser/core/WebsocketAdapter.esm.js +2 -0
  144. package/dist/browser/core/WebsocketAdapter.esm.js.map +1 -0
  145. package/dist/browser/core/Workers.amd.js +2 -0
  146. package/dist/browser/core/Workers.amd.js.map +1 -0
  147. package/dist/browser/core/Workers.esm.js +2 -0
  148. package/dist/browser/core/Workers.esm.js.map +1 -0
  149. package/dist/browser/core/index.amd.js +71 -0
  150. package/dist/browser/core/index.amd.js.map +1 -0
  151. package/dist/browser/core/index.esm.js +2 -0
  152. package/dist/browser/core/index.esm.js.map +1 -0
  153. package/dist/browser/factory/cache.shared.worker.amd.js +2 -0
  154. package/dist/browser/factory/cache.shared.worker.amd.js.map +1 -0
  155. package/dist/browser/factory/cache.shared.worker.esm.js +2 -0
  156. package/dist/browser/factory/cache.shared.worker.esm.js.map +1 -0
  157. package/dist/browser/factory/cache.worker.amd.js +2 -0
  158. package/dist/browser/factory/cache.worker.amd.js.map +1 -0
  159. package/dist/browser/factory/cache.worker.esm.js +2 -0
  160. package/dist/browser/factory/cache.worker.esm.js.map +1 -0
  161. package/dist/browser/factory/index.amd.js +71 -0
  162. package/dist/browser/factory/index.amd.js.map +1 -0
  163. package/dist/browser/factory/index.esm.js +2 -0
  164. package/dist/browser/factory/index.esm.js.map +1 -0
  165. package/dist/browser/index.amd.js +71 -0
  166. package/dist/browser/index.amd.js.map +1 -0
  167. package/dist/browser/index.esm.js +2 -0
  168. package/dist/browser/index.esm.js.map +1 -0
  169. package/dist/browser/interfaces/index.amd.js +71 -0
  170. package/dist/browser/interfaces/index.amd.js.map +1 -0
  171. package/dist/browser/interfaces/index.esm.js +2 -0
  172. package/dist/browser/interfaces/index.esm.js.map +1 -0
  173. package/dist/browser/internal/utils/dist/browser/_virtual/_tslib.esm.amd.js +2 -0
  174. package/dist/browser/internal/utils/dist/browser/_virtual/_tslib.esm.amd.js.map +1 -0
  175. package/dist/browser/internal/utils/dist/browser/_virtual/_tslib.esm.esm.js +2 -0
  176. package/dist/browser/internal/utils/dist/browser/_virtual/_tslib.esm.esm.js.map +1 -0
  177. package/dist/browser/internal/utils/dist/browser/config.esm.amd.js +2 -0
  178. package/dist/browser/internal/utils/dist/browser/config.esm.amd.js.map +1 -0
  179. package/dist/browser/internal/utils/dist/browser/config.esm.esm.js +2 -0
  180. package/dist/browser/internal/utils/dist/browser/config.esm.esm.js.map +1 -0
  181. package/dist/browser/internal/utils/dist/browser/controlflow.esm.amd.js +2 -0
  182. package/dist/browser/internal/utils/dist/browser/controlflow.esm.amd.js.map +1 -0
  183. package/dist/browser/internal/utils/dist/browser/controlflow.esm.esm.js +2 -0
  184. package/dist/browser/internal/utils/dist/browser/controlflow.esm.esm.js.map +1 -0
  185. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.amd.js +3 -0
  186. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.amd.js.map +1 -0
  187. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.esm.js +3 -0
  188. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.esm.js.map +1 -0
  189. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.amd.js +3 -0
  190. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.amd.js.map +1 -0
  191. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.esm.js +3 -0
  192. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.esm.js.map +1 -0
  193. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.amd.js +3 -0
  194. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.amd.js.map +1 -0
  195. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.esm.js +3 -0
  196. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.esm.js.map +1 -0
  197. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.amd.js +3 -0
  198. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.amd.js.map +1 -0
  199. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.esm.js +3 -0
  200. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.esm.js.map +1 -0
  201. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.amd.js +4 -0
  202. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.amd.js.map +1 -0
  203. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.esm.js +4 -0
  204. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.esm.js.map +1 -0
  205. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.amd.js +3 -0
  206. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.amd.js.map +1 -0
  207. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.esm.js +3 -0
  208. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.esm.js.map +1 -0
  209. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.amd.js +2 -0
  210. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.amd.js.map +1 -0
  211. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.esm.js +2 -0
  212. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.esm.js.map +1 -0
  213. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.amd.js +2 -0
  214. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.amd.js.map +1 -0
  215. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.esm.js +2 -0
  216. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.esm.js.map +1 -0
  217. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.amd.js +2 -0
  218. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.amd.js.map +1 -0
  219. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.esm.js +2 -0
  220. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.esm.js.map +1 -0
  221. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.amd.js +3 -0
  222. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.amd.js.map +1 -0
  223. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  224. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  225. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.amd.js +2 -0
  226. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.amd.js.map +1 -0
  227. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.esm.js +2 -0
  228. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.esm.js.map +1 -0
  229. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.amd.js +2 -0
  230. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.amd.js.map +1 -0
  231. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.esm.js +2 -0
  232. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.esm.js.map +1 -0
  233. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.amd.js +2 -0
  234. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.amd.js.map +1 -0
  235. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.esm.js +2 -0
  236. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.esm.js.map +1 -0
  237. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.amd.js +2 -0
  238. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.amd.js.map +1 -0
  239. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.esm.js +2 -0
  240. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.esm.js.map +1 -0
  241. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.amd.js +2 -0
  242. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.amd.js.map +1 -0
  243. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.esm.js +2 -0
  244. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.esm.js.map +1 -0
  245. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.amd.js +3 -0
  246. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.amd.js.map +1 -0
  247. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  248. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  249. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.amd.js +3 -0
  250. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.amd.js.map +1 -0
  251. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  252. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  253. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.amd.js +3 -0
  254. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.amd.js.map +1 -0
  255. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.esm.js +3 -0
  256. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.esm.js.map +1 -0
  257. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.amd.js +2 -0
  258. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.amd.js.map +1 -0
  259. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.esm.js +2 -0
  260. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.esm.js.map +1 -0
  261. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.amd.js +2 -0
  262. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.amd.js.map +1 -0
  263. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.esm.js +2 -0
  264. package/dist/browser/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.esm.js.map +1 -0
  265. package/dist/browser/managers/MonitorManager.amd.js +2 -0
  266. package/dist/browser/managers/MonitorManager.amd.js.map +1 -0
  267. package/dist/browser/managers/MonitorManager.esm.js +2 -0
  268. package/dist/browser/managers/MonitorManager.esm.js.map +1 -0
  269. package/dist/browser/managers/StateManager.amd.js +2 -0
  270. package/dist/browser/managers/StateManager.amd.js.map +1 -0
  271. package/dist/browser/managers/StateManager.esm.js +2 -0
  272. package/dist/browser/managers/StateManager.esm.js.map +1 -0
  273. package/dist/browser/managers/SyncStateManager.amd.js +2 -0
  274. package/dist/browser/managers/SyncStateManager.amd.js.map +1 -0
  275. package/dist/browser/managers/SyncStateManager.esm.js +2 -0
  276. package/dist/browser/managers/SyncStateManager.esm.js.map +1 -0
  277. package/dist/browser/models/DeltaEvent.amd.js +2 -0
  278. package/dist/browser/models/DeltaEvent.amd.js.map +1 -0
  279. package/dist/browser/models/DeltaEvent.esm.js +2 -0
  280. package/dist/browser/models/DeltaEvent.esm.js.map +1 -0
  281. package/dist/browser/models/Event.amd.js +2 -0
  282. package/dist/browser/models/Event.amd.js.map +1 -0
  283. package/dist/browser/models/Event.esm.js +2 -0
  284. package/dist/browser/models/Event.esm.js.map +1 -0
  285. package/dist/browser/models/Geocoded.amd.js +2 -0
  286. package/dist/browser/models/Geocoded.amd.js.map +1 -0
  287. package/dist/browser/models/Geocoded.esm.js +2 -0
  288. package/dist/browser/models/Geocoded.esm.js.map +1 -0
  289. package/dist/browser/models/Monitor.amd.js +2 -0
  290. package/dist/browser/models/Monitor.amd.js.map +1 -0
  291. package/dist/browser/models/Monitor.esm.js +2 -0
  292. package/dist/browser/models/Monitor.esm.js.map +1 -0
  293. package/dist/browser/models/MonitorRegistration.amd.js +2 -0
  294. package/dist/browser/models/MonitorRegistration.amd.js.map +1 -0
  295. package/dist/browser/models/MonitorRegistration.esm.js +2 -0
  296. package/dist/browser/models/MonitorRegistration.esm.js.map +1 -0
  297. package/dist/browser/models/Nip11.amd.js +2 -0
  298. package/dist/browser/models/Nip11.amd.js.map +1 -0
  299. package/dist/browser/models/Nip11.esm.js +2 -0
  300. package/dist/browser/models/Nip11.esm.js.map +1 -0
  301. package/dist/browser/models/Nip66CheckEvent.amd.js +2 -0
  302. package/dist/browser/models/Nip66CheckEvent.amd.js.map +1 -0
  303. package/dist/browser/models/Nip66CheckEvent.esm.js +2 -0
  304. package/dist/browser/models/Nip66CheckEvent.esm.js.map +1 -0
  305. package/dist/browser/models/PubkeyProfile.amd.js +2 -0
  306. package/dist/browser/models/PubkeyProfile.amd.js.map +1 -0
  307. package/dist/browser/models/PubkeyProfile.esm.js +2 -0
  308. package/dist/browser/models/PubkeyProfile.esm.js.map +1 -0
  309. package/dist/browser/models/PubkeyRelays.amd.js +2 -0
  310. package/dist/browser/models/PubkeyRelays.amd.js.map +1 -0
  311. package/dist/browser/models/PubkeyRelays.esm.js +2 -0
  312. package/dist/browser/models/PubkeyRelays.esm.js.map +1 -0
  313. package/dist/browser/models/RelayCheckAggregate.amd.js +2 -0
  314. package/dist/browser/models/RelayCheckAggregate.amd.js.map +1 -0
  315. package/dist/browser/models/RelayCheckAggregate.esm.js +2 -0
  316. package/dist/browser/models/RelayCheckAggregate.esm.js.map +1 -0
  317. package/dist/browser/models/_.amd.js +2 -0
  318. package/dist/browser/models/_.amd.js.map +1 -0
  319. package/dist/browser/models/_.esm.js +2 -0
  320. package/dist/browser/models/_.esm.js.map +1 -0
  321. package/dist/browser/models/index.amd.js +71 -0
  322. package/dist/browser/models/index.amd.js.map +1 -0
  323. package/dist/browser/models/index.esm.js +2 -0
  324. package/dist/browser/models/index.esm.js.map +1 -0
  325. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.amd.js +2 -0
  326. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.amd.js.map +1 -0
  327. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.esm.js +2 -0
  328. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.esm.js.map +1 -0
  329. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.amd.js +2 -0
  330. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.amd.js.map +1 -0
  331. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.esm.js +2 -0
  332. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.esm.js.map +1 -0
  333. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.amd.js +2 -0
  334. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.amd.js.map +1 -0
  335. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.esm.js +2 -0
  336. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.esm.js.map +1 -0
  337. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.amd.js +2 -0
  338. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.amd.js.map +1 -0
  339. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.esm.js +2 -0
  340. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.esm.js.map +1 -0
  341. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.amd.js +3 -0
  342. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.amd.js.map +1 -0
  343. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.esm.js +3 -0
  344. package/dist/browser/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.esm.js.map +1 -0
  345. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.amd.js +3 -0
  346. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.amd.js.map +1 -0
  347. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.js +4 -0
  348. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.js.map +1 -0
  349. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.amd.js +3 -0
  350. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.amd.js.map +1 -0
  351. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.js +4 -0
  352. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.js.map +1 -0
  353. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.amd.js +3 -0
  354. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.amd.js.map +1 -0
  355. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.js +4 -0
  356. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.js.map +1 -0
  357. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.amd.js +3 -0
  358. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.amd.js.map +1 -0
  359. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.js +3 -0
  360. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.js.map +1 -0
  361. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.amd.js +3 -0
  362. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.amd.js.map +1 -0
  363. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.js +4 -0
  364. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.js.map +1 -0
  365. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.amd.js +3 -0
  366. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.amd.js.map +1 -0
  367. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.js +3 -0
  368. package/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.js.map +1 -0
  369. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.amd.js +2 -0
  370. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.amd.js.map +1 -0
  371. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.js +2 -0
  372. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.js.map +1 -0
  373. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.amd.js +2 -0
  374. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.amd.js.map +1 -0
  375. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.js +2 -0
  376. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.js.map +1 -0
  377. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.amd.js +2 -0
  378. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.amd.js.map +1 -0
  379. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.esm.js +2 -0
  380. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.esm.js.map +1 -0
  381. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.amd.js +2 -0
  382. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.amd.js.map +1 -0
  383. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.esm.js +2 -0
  384. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.esm.js.map +1 -0
  385. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.amd.js +2 -0
  386. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.amd.js.map +1 -0
  387. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.esm.js +2 -0
  388. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.esm.js.map +1 -0
  389. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.amd.js +2 -0
  390. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.amd.js.map +1 -0
  391. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.js +2 -0
  392. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.js.map +1 -0
  393. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.amd.js +3 -0
  394. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.amd.js.map +1 -0
  395. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.js +4 -0
  396. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.js.map +1 -0
  397. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.amd.js +2 -0
  398. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.amd.js.map +1 -0
  399. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.js +2 -0
  400. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.js.map +1 -0
  401. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.amd.js +2 -0
  402. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.amd.js.map +1 -0
  403. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.js +2 -0
  404. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.js.map +1 -0
  405. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.amd.js +2 -0
  406. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.amd.js.map +1 -0
  407. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.js +2 -0
  408. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.js.map +1 -0
  409. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.amd.js +2 -0
  410. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.amd.js.map +1 -0
  411. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.js +2 -0
  412. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.js.map +1 -0
  413. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.amd.js +2 -0
  414. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.amd.js.map +1 -0
  415. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.js +2 -0
  416. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.js.map +1 -0
  417. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.amd.js +3 -0
  418. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.amd.js.map +1 -0
  419. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.js +4 -0
  420. package/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.js.map +1 -0
  421. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.amd.js +3 -0
  422. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.amd.js.map +1 -0
  423. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.js +3 -0
  424. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.js.map +1 -0
  425. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.amd.js +4 -0
  426. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.amd.js.map +1 -0
  427. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.esm.js +4 -0
  428. package/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.esm.js.map +1 -0
  429. package/dist/browser/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.amd.js +2 -0
  430. package/dist/browser/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.amd.js.map +1 -0
  431. package/dist/browser/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.esm.js +2 -0
  432. package/dist/browser/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.esm.js.map +1 -0
  433. package/dist/browser/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.amd.js +2 -0
  434. package/dist/browser/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.amd.js.map +1 -0
  435. package/dist/browser/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.esm.js +2 -0
  436. package/dist/browser/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.esm.js.map +1 -0
  437. package/dist/browser/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.amd.js +2 -0
  438. package/dist/browser/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.amd.js.map +1 -0
  439. package/dist/browser/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.esm.js +2 -0
  440. package/dist/browser/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.esm.js.map +1 -0
  441. package/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.amd.js +2 -0
  442. package/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.amd.js.map +1 -0
  443. package/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.esm.js +2 -0
  444. package/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.esm.js.map +1 -0
  445. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.amd.js +2 -0
  446. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.amd.js.map +1 -0
  447. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.esm.js +2 -0
  448. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.esm.js.map +1 -0
  449. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.amd.js +2 -0
  450. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.amd.js.map +1 -0
  451. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.esm.js +2 -0
  452. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.esm.js.map +1 -0
  453. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.amd.js +2 -0
  454. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.amd.js.map +1 -0
  455. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.esm.js +2 -0
  456. package/dist/browser/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.esm.js.map +1 -0
  457. package/dist/browser/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.amd.js +2 -0
  458. package/dist/browser/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.amd.js.map +1 -0
  459. package/dist/browser/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.esm.js +2 -0
  460. package/dist/browser/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.esm.js.map +1 -0
  461. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.amd.js +2 -0
  462. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.amd.js.map +1 -0
  463. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.esm.js +2 -0
  464. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.esm.js.map +1 -0
  465. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.amd.js +2 -0
  466. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.amd.js.map +1 -0
  467. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.esm.js +2 -0
  468. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.esm.js.map +1 -0
  469. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.amd.js +2 -0
  470. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.amd.js.map +1 -0
  471. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.esm.js +2 -0
  472. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.esm.js.map +1 -0
  473. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.amd.js +2 -0
  474. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.amd.js.map +1 -0
  475. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.esm.js +2 -0
  476. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.esm.js.map +1 -0
  477. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.amd.js +2 -0
  478. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.amd.js.map +1 -0
  479. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.esm.js +2 -0
  480. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.esm.js.map +1 -0
  481. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.amd.js +2 -0
  482. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.amd.js.map +1 -0
  483. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.esm.js +2 -0
  484. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.esm.js.map +1 -0
  485. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.amd.js +2 -0
  486. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.amd.js.map +1 -0
  487. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.esm.js +2 -0
  488. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.esm.js.map +1 -0
  489. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.amd.js +2 -0
  490. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.amd.js.map +1 -0
  491. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.esm.js +2 -0
  492. package/dist/browser/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.esm.js.map +1 -0
  493. package/dist/browser/services/AuditorService.amd.js +2 -0
  494. package/dist/browser/services/AuditorService.amd.js.map +1 -0
  495. package/dist/browser/services/AuditorService.esm.js +2 -0
  496. package/dist/browser/services/AuditorService.esm.js.map +1 -0
  497. package/dist/browser/services/ChronicleService.amd.js +2 -0
  498. package/dist/browser/services/ChronicleService.amd.js.map +1 -0
  499. package/dist/browser/services/ChronicleService.esm.js +2 -0
  500. package/dist/browser/services/ChronicleService.esm.js.map +1 -0
  501. package/dist/browser/services/MonitorService.amd.js +2 -0
  502. package/dist/browser/services/MonitorService.amd.js.map +1 -0
  503. package/dist/browser/services/MonitorService.esm.js +2 -0
  504. package/dist/browser/services/MonitorService.esm.js.map +1 -0
  505. package/dist/browser/services/RelayService.amd.js +2 -0
  506. package/dist/browser/services/RelayService.amd.js.map +1 -0
  507. package/dist/browser/services/RelayService.esm.js +2 -0
  508. package/dist/browser/services/RelayService.esm.js.map +1 -0
  509. package/dist/browser/services/Service.amd.js +2 -0
  510. package/dist/browser/services/Service.amd.js.map +1 -0
  511. package/dist/browser/services/Service.esm.js +2 -0
  512. package/dist/browser/services/Service.esm.js.map +1 -0
  513. package/dist/browser/services/index.amd.js +71 -0
  514. package/dist/browser/services/index.amd.js.map +1 -0
  515. package/dist/browser/services/index.esm.js +2 -0
  516. package/dist/browser/services/index.esm.js.map +1 -0
  517. package/dist/browser/transform/TransformCheck.amd.js +2 -0
  518. package/dist/browser/transform/TransformCheck.amd.js.map +1 -0
  519. package/dist/browser/transform/TransformCheck.esm.js +2 -0
  520. package/dist/browser/transform/TransformCheck.esm.js.map +1 -0
  521. package/dist/browser/transform/TransformEvent.amd.js +2 -0
  522. package/dist/browser/transform/TransformEvent.amd.js.map +1 -0
  523. package/dist/browser/transform/TransformEvent.esm.js +2 -0
  524. package/dist/browser/transform/TransformEvent.esm.js.map +1 -0
  525. package/dist/browser/transform/TransformMonitors.amd.js +2 -0
  526. package/dist/browser/transform/TransformMonitors.amd.js.map +1 -0
  527. package/dist/browser/transform/TransformMonitors.esm.js +2 -0
  528. package/dist/browser/transform/TransformMonitors.esm.js.map +1 -0
  529. package/dist/browser/transform/TransformRelays.amd.js +2 -0
  530. package/dist/browser/transform/TransformRelays.amd.js.map +1 -0
  531. package/dist/browser/transform/TransformRelays.esm.js +2 -0
  532. package/dist/browser/transform/TransformRelays.esm.js.map +1 -0
  533. package/dist/browser/transform/index.amd.js +71 -0
  534. package/dist/browser/transform/index.amd.js.map +1 -0
  535. package/dist/browser/transform/index.esm.js +2 -0
  536. package/dist/browser/transform/index.esm.js.map +1 -0
  537. package/dist/browser/utils/SyncKeys.amd.js +2 -0
  538. package/dist/browser/utils/SyncKeys.amd.js.map +1 -0
  539. package/dist/browser/utils/SyncKeys.esm.js +2 -0
  540. package/dist/browser/utils/SyncKeys.esm.js.map +1 -0
  541. package/dist/browser/utils/classes.amd.js +2 -0
  542. package/dist/browser/utils/classes.amd.js.map +1 -0
  543. package/dist/browser/utils/classes.esm.js +2 -0
  544. package/dist/browser/utils/classes.esm.js.map +1 -0
  545. package/dist/browser/utils/encoding.amd.js +2 -0
  546. package/dist/browser/utils/encoding.amd.js.map +1 -0
  547. package/dist/browser/utils/encoding.esm.js +2 -0
  548. package/dist/browser/utils/encoding.esm.js.map +1 -0
  549. package/dist/browser/utils/events.amd.js +2 -0
  550. package/dist/browser/utils/events.amd.js.map +1 -0
  551. package/dist/browser/utils/events.esm.js +2 -0
  552. package/dist/browser/utils/events.esm.js.map +1 -0
  553. package/dist/browser/utils/general.amd.js +2 -0
  554. package/dist/browser/utils/general.amd.js.map +1 -0
  555. package/dist/browser/utils/general.esm.js +2 -0
  556. package/dist/browser/utils/general.esm.js.map +1 -0
  557. package/dist/browser/utils/geo.amd.js +2 -0
  558. package/dist/browser/utils/geo.amd.js.map +1 -0
  559. package/dist/browser/utils/geo.esm.js +2 -0
  560. package/dist/browser/utils/geo.esm.js.map +1 -0
  561. package/dist/browser/utils/hash.amd.js +2 -0
  562. package/dist/browser/utils/hash.amd.js.map +1 -0
  563. package/dist/browser/utils/hash.esm.js +2 -0
  564. package/dist/browser/utils/hash.esm.js.map +1 -0
  565. package/dist/browser/utils/index.amd.js +71 -0
  566. package/dist/browser/utils/index.amd.js.map +1 -0
  567. package/dist/browser/utils/index.esm.js +2 -0
  568. package/dist/browser/utils/index.esm.js.map +1 -0
  569. package/dist/browser/utils/monitors.amd.js +2 -0
  570. package/dist/browser/utils/monitors.amd.js.map +1 -0
  571. package/dist/browser/utils/monitors.esm.js +2 -0
  572. package/dist/browser/utils/monitors.esm.js.map +1 -0
  573. package/dist/browser/utils/nostr.amd.js +2 -0
  574. package/dist/browser/utils/nostr.amd.js.map +1 -0
  575. package/dist/browser/utils/nostr.esm.js +2 -0
  576. package/dist/browser/utils/nostr.esm.js.map +1 -0
  577. package/dist/browser/utils/pfp.amd.js +2 -0
  578. package/dist/browser/utils/pfp.amd.js.map +1 -0
  579. package/dist/browser/utils/pfp.esm.js +2 -0
  580. package/dist/browser/utils/pfp.esm.js.map +1 -0
  581. package/dist/node/core/Adapter.js +205 -0
  582. package/dist/node/core/Adapter.js.map +1 -0
  583. package/dist/node/core/AdapterCacheWorker.js +170 -0
  584. package/dist/node/core/AdapterCacheWorker.js.map +1 -0
  585. package/dist/node/core/AdapterWebsocketQueue.js +27 -0
  586. package/dist/node/core/AdapterWebsocketQueue.js.map +1 -0
  587. package/dist/node/core/AdapterWebsocketWorker.js +374 -0
  588. package/dist/node/core/AdapterWebsocketWorker.js.map +1 -0
  589. package/dist/node/core/AdapterWorker.js +250 -0
  590. package/dist/node/core/AdapterWorker.js.map +1 -0
  591. package/dist/node/core/Base.js +359 -0
  592. package/dist/node/core/Base.js.map +1 -0
  593. package/dist/node/core/Batcher.js +63 -0
  594. package/dist/node/core/Batcher.js.map +1 -0
  595. package/dist/node/core/CacheAdapter.js +113 -0
  596. package/dist/node/core/CacheAdapter.js.map +1 -0
  597. package/dist/node/core/Checkpoints.js +52 -0
  598. package/dist/node/core/Checkpoints.js.map +1 -0
  599. package/dist/node/core/LocalStorageWrapper.js +109 -0
  600. package/dist/node/core/LocalStorageWrapper.js.map +1 -0
  601. package/dist/node/core/Loggerr.js +3 -0
  602. package/dist/node/core/Loggerr.js.map +1 -0
  603. package/dist/node/core/Memory.js +19 -0
  604. package/dist/node/core/Memory.js.map +1 -0
  605. package/dist/node/core/Queue.js +158 -0
  606. package/dist/node/core/Queue.js.map +1 -0
  607. package/dist/node/core/Routine.js +7 -0
  608. package/dist/node/core/Routine.js.map +1 -0
  609. package/dist/node/core/Subscriber.js +75 -0
  610. package/dist/node/core/Subscriber.js.map +1 -0
  611. package/dist/node/core/WebsocketAdapter.js +488 -0
  612. package/dist/node/core/WebsocketAdapter.js.map +1 -0
  613. package/dist/node/core/Workers.js +172 -0
  614. package/dist/node/core/Workers.js.map +1 -0
  615. package/dist/node/core/index.js +12 -0
  616. package/dist/node/core/index.js.map +1 -0
  617. package/dist/node/factory/cache.shared.worker.js +58 -0
  618. package/dist/node/factory/cache.shared.worker.js.map +1 -0
  619. package/dist/node/factory/cache.worker.js +4 -0
  620. package/dist/node/factory/cache.worker.js.map +1 -0
  621. package/dist/node/factory/index.js +3 -0
  622. package/dist/node/factory/index.js.map +1 -0
  623. package/dist/node/helpers/filters.js +7 -0
  624. package/dist/node/helpers/filters.js.map +1 -0
  625. package/dist/node/index.js +10 -0
  626. package/dist/node/index.js.map +1 -0
  627. package/dist/node/interfaces/IAdapterWorkerCommand.js +2 -0
  628. package/dist/node/interfaces/IAdapterWorkerCommand.js.map +1 -0
  629. package/dist/node/interfaces/IAdaptersArgument.js +2 -0
  630. package/dist/node/interfaces/IAdaptersArgument.js.map +1 -0
  631. package/dist/node/interfaces/ICacheAdapter.js +37 -0
  632. package/dist/node/interfaces/ICacheAdapter.js.map +1 -0
  633. package/dist/node/interfaces/ICacheAdapterSharedWorkerCommand.js +2 -0
  634. package/dist/node/interfaces/ICacheAdapterSharedWorkerCommand.js.map +1 -0
  635. package/dist/node/interfaces/INostrEvent.js +2 -0
  636. package/dist/node/interfaces/INostrEvent.js.map +1 -0
  637. package/dist/node/interfaces/ISharedWorkerGlobalScope.js +2 -0
  638. package/dist/node/interfaces/ISharedWorkerGlobalScope.js.map +1 -0
  639. package/dist/node/interfaces/IWorkerCommand.js +2 -0
  640. package/dist/node/interfaces/IWorkerCommand.js.map +1 -0
  641. package/dist/node/interfaces/IWorkerGlobalScope.js +2 -0
  642. package/dist/node/interfaces/IWorkerGlobalScope.js.map +1 -0
  643. package/dist/node/interfaces/TISO13166.js +2 -0
  644. package/dist/node/interfaces/TISO13166.js.map +1 -0
  645. package/dist/node/interfaces/index.js +2 -0
  646. package/dist/node/interfaces/index.js.map +1 -0
  647. package/dist/node/managers/MonitorManager.js +251 -0
  648. package/dist/node/managers/MonitorManager.js.map +1 -0
  649. package/dist/node/managers/StageManager.js +86 -0
  650. package/dist/node/managers/StageManager.js.map +1 -0
  651. package/dist/node/managers/StateManager.js +173 -0
  652. package/dist/node/managers/StateManager.js.map +1 -0
  653. package/dist/node/managers/SyncStateManager.js +56 -0
  654. package/dist/node/managers/SyncStateManager.js.map +1 -0
  655. package/dist/node/models/Check.js +2 -0
  656. package/dist/node/models/Check.js.map +1 -0
  657. package/dist/node/models/DeltaEvent.js +198 -0
  658. package/dist/node/models/DeltaEvent.js.map +1 -0
  659. package/dist/node/models/Event.js +209 -0
  660. package/dist/node/models/Event.js.map +1 -0
  661. package/dist/node/models/EventEncoded.js +2 -0
  662. package/dist/node/models/EventEncoded.js.map +1 -0
  663. package/dist/node/models/Geocode.js +2 -0
  664. package/dist/node/models/Geocode.js.map +1 -0
  665. package/dist/node/models/Geocoded.js +608 -0
  666. package/dist/node/models/Geocoded.js.map +1 -0
  667. package/dist/node/models/Geohash.js +2 -0
  668. package/dist/node/models/Geohash.js.map +1 -0
  669. package/dist/node/models/Monitor.js +493 -0
  670. package/dist/node/models/Monitor.js.map +1 -0
  671. package/dist/node/models/MonitorRegistration.js +54 -0
  672. package/dist/node/models/MonitorRegistration.js.map +1 -0
  673. package/dist/node/models/Nip11.js +352 -0
  674. package/dist/node/models/Nip11.js.map +1 -0
  675. package/dist/node/models/Nip66CheckEvent.js +532 -0
  676. package/dist/node/models/Nip66CheckEvent.js.map +1 -0
  677. package/dist/node/models/PubkeyProfile.js +121 -0
  678. package/dist/node/models/PubkeyProfile.js.map +1 -0
  679. package/dist/node/models/PubkeyRelays.js +32 -0
  680. package/dist/node/models/PubkeyRelays.js.map +1 -0
  681. package/dist/node/models/Relay.js +2 -0
  682. package/dist/node/models/Relay.js.map +1 -0
  683. package/dist/node/models/RelayCheckAggregate.js +220 -0
  684. package/dist/node/models/RelayCheckAggregate.js.map +1 -0
  685. package/dist/node/models/Ssl.js +2 -0
  686. package/dist/node/models/Ssl.js.map +1 -0
  687. package/dist/node/models/_.js +8 -0
  688. package/dist/node/models/_.js.map +1 -0
  689. package/dist/node/models/index.js +11 -0
  690. package/dist/node/models/index.js.map +1 -0
  691. package/dist/node/routines/PurgeInactiveMonitors.js +68 -0
  692. package/dist/node/routines/PurgeInactiveMonitors.js.map +1 -0
  693. package/dist/node/routines/PurgeOldChecks.js +68 -0
  694. package/dist/node/routines/PurgeOldChecks.js.map +1 -0
  695. package/dist/node/services/AuditorService.js +25 -0
  696. package/dist/node/services/AuditorService.js.map +1 -0
  697. package/dist/node/services/ChronicleService.js +788 -0
  698. package/dist/node/services/ChronicleService.js.map +1 -0
  699. package/dist/node/services/MonitorService.js +1020 -0
  700. package/dist/node/services/MonitorService.js.map +1 -0
  701. package/dist/node/services/RelayService.js +391 -0
  702. package/dist/node/services/RelayService.js.map +1 -0
  703. package/dist/node/services/Service.js +533 -0
  704. package/dist/node/services/Service.js.map +1 -0
  705. package/dist/node/services/index.js +6 -0
  706. package/dist/node/services/index.js.map +1 -0
  707. package/dist/node/transform/TransformCheck.js +51 -0
  708. package/dist/node/transform/TransformCheck.js.map +1 -0
  709. package/dist/node/transform/TransformEvent.js +33 -0
  710. package/dist/node/transform/TransformEvent.js.map +1 -0
  711. package/dist/node/transform/TransformMonitors.js +129 -0
  712. package/dist/node/transform/TransformMonitors.js.map +1 -0
  713. package/dist/node/transform/TransformRelays.js +339 -0
  714. package/dist/node/transform/TransformRelays.js.map +1 -0
  715. package/dist/node/transform/index.js +4 -0
  716. package/dist/node/transform/index.js.map +1 -0
  717. package/dist/node/utils/SyncKeys.js +17 -0
  718. package/dist/node/utils/SyncKeys.js.map +1 -0
  719. package/dist/node/utils/classes.js +41 -0
  720. package/dist/node/utils/classes.js.map +1 -0
  721. package/dist/node/utils/encoding.js +59 -0
  722. package/dist/node/utils/encoding.js.map +1 -0
  723. package/dist/node/utils/events.js +26 -0
  724. package/dist/node/utils/events.js.map +1 -0
  725. package/dist/node/utils/general.js +142 -0
  726. package/dist/node/utils/general.js.map +1 -0
  727. package/dist/node/utils/geo.js +14 -0
  728. package/dist/node/utils/geo.js.map +1 -0
  729. package/dist/node/utils/hash.js +103 -0
  730. package/dist/node/utils/hash.js.map +1 -0
  731. package/dist/node/utils/index.js +8 -0
  732. package/dist/node/utils/index.js.map +1 -0
  733. package/dist/node/utils/monitors.js +3 -0
  734. package/dist/node/utils/monitors.js.map +1 -0
  735. package/dist/node/utils/nostr.js +38 -0
  736. package/dist/node/utils/nostr.js.map +1 -0
  737. package/dist/node/utils/pfp.js +231 -0
  738. package/dist/node/utils/pfp.js.map +1 -0
  739. package/dist/node/workers/nocap.worker.js +2 -0
  740. package/dist/node/workers/nocap.worker.js.map +1 -0
  741. package/dist/server/_virtual/_commonjsHelpers.cjs.js +2 -0
  742. package/dist/server/_virtual/_commonjsHelpers.cjs.js.map +1 -0
  743. package/dist/server/_virtual/_commonjsHelpers.esm.js +2 -0
  744. package/dist/server/_virtual/_commonjsHelpers.esm.js.map +1 -0
  745. package/dist/server/_virtual/_tslib.cjs.js +2 -0
  746. package/dist/server/_virtual/_tslib.cjs.js.map +1 -0
  747. package/dist/server/_virtual/_tslib.esm.js +2 -0
  748. package/dist/server/_virtual/_tslib.esm.js.map +1 -0
  749. package/dist/server/_virtual/bake-collection.cjs.js +2 -0
  750. package/dist/server/_virtual/bake-collection.cjs.js.map +1 -0
  751. package/dist/server/_virtual/bake-collection.esm.js +2 -0
  752. package/dist/server/_virtual/bake-collection.esm.js.map +1 -0
  753. package/dist/server/_virtual/bolt11.cjs.js +2 -0
  754. package/dist/server/_virtual/bolt11.cjs.js.map +1 -0
  755. package/dist/server/_virtual/bolt11.esm.js +2 -0
  756. package/dist/server/_virtual/bolt11.esm.js.map +1 -0
  757. package/dist/server/_virtual/ee.cjs.js +2 -0
  758. package/dist/server/_virtual/ee.cjs.js.map +1 -0
  759. package/dist/server/_virtual/ee.esm.js +2 -0
  760. package/dist/server/_virtual/ee.esm.js.map +1 -0
  761. package/dist/server/_virtual/index.cjs.js +2 -0
  762. package/dist/server/_virtual/index.cjs.js.map +1 -0
  763. package/dist/server/_virtual/index.cjs2.js +2 -0
  764. package/dist/server/_virtual/index.cjs2.js.map +1 -0
  765. package/dist/server/_virtual/index.cjs3.js +2 -0
  766. package/dist/server/_virtual/index.cjs3.js.map +1 -0
  767. package/dist/server/_virtual/index.cjs4.js +2 -0
  768. package/dist/server/_virtual/index.cjs4.js.map +1 -0
  769. package/dist/server/_virtual/index.cjs5.js +2 -0
  770. package/dist/server/_virtual/index.cjs5.js.map +1 -0
  771. package/dist/server/_virtual/index.cjs6.js +2 -0
  772. package/dist/server/_virtual/index.cjs6.js.map +1 -0
  773. package/dist/server/_virtual/index.esm.js +2 -0
  774. package/dist/server/_virtual/index.esm.js.map +1 -0
  775. package/dist/server/_virtual/index.esm2.js +2 -0
  776. package/dist/server/_virtual/index.esm2.js.map +1 -0
  777. package/dist/server/_virtual/index.esm3.js +2 -0
  778. package/dist/server/_virtual/index.esm3.js.map +1 -0
  779. package/dist/server/_virtual/index.esm4.js +2 -0
  780. package/dist/server/_virtual/index.esm4.js.map +1 -0
  781. package/dist/server/_virtual/index.esm5.js +2 -0
  782. package/dist/server/_virtual/index.esm5.js.map +1 -0
  783. package/dist/server/_virtual/index.esm6.js +2 -0
  784. package/dist/server/_virtual/index.esm6.js.map +1 -0
  785. package/dist/server/_virtual/task-collection.cjs.js +2 -0
  786. package/dist/server/_virtual/task-collection.cjs.js.map +1 -0
  787. package/dist/server/_virtual/task-collection.esm.js +2 -0
  788. package/dist/server/_virtual/task-collection.esm.js.map +1 -0
  789. package/dist/server/_virtual/types.cjs.js +2 -0
  790. package/dist/server/_virtual/types.cjs.js.map +1 -0
  791. package/dist/server/_virtual/types.esm.js +2 -0
  792. package/dist/server/_virtual/types.esm.js.map +1 -0
  793. package/dist/server/_virtual/utils.cjs.js +2 -0
  794. package/dist/server/_virtual/utils.cjs.js.map +1 -0
  795. package/dist/server/_virtual/utils.cjs2.js +2 -0
  796. package/dist/server/_virtual/utils.cjs2.js.map +1 -0
  797. package/dist/server/_virtual/utils.esm.js +2 -0
  798. package/dist/server/_virtual/utils.esm.js.map +1 -0
  799. package/dist/server/_virtual/utils.esm2.js +2 -0
  800. package/dist/server/_virtual/utils.esm2.js.map +1 -0
  801. package/dist/server/core/Adapter.cjs.js +2 -0
  802. package/dist/server/core/Adapter.cjs.js.map +1 -0
  803. package/dist/server/core/Adapter.esm.js +2 -0
  804. package/dist/server/core/Adapter.esm.js.map +1 -0
  805. package/dist/server/core/AdapterCacheWorker.cjs.js +2 -0
  806. package/dist/server/core/AdapterCacheWorker.cjs.js.map +1 -0
  807. package/dist/server/core/AdapterCacheWorker.esm.js +2 -0
  808. package/dist/server/core/AdapterCacheWorker.esm.js.map +1 -0
  809. package/dist/server/core/AdapterWebsocketWorker.cjs.js +2 -0
  810. package/dist/server/core/AdapterWebsocketWorker.cjs.js.map +1 -0
  811. package/dist/server/core/AdapterWebsocketWorker.esm.js +2 -0
  812. package/dist/server/core/AdapterWebsocketWorker.esm.js.map +1 -0
  813. package/dist/server/core/AdapterWorker.cjs.js +2 -0
  814. package/dist/server/core/AdapterWorker.cjs.js.map +1 -0
  815. package/dist/server/core/AdapterWorker.esm.js +2 -0
  816. package/dist/server/core/AdapterWorker.esm.js.map +1 -0
  817. package/dist/server/core/Base.cjs.js +2 -0
  818. package/dist/server/core/Base.cjs.js.map +1 -0
  819. package/dist/server/core/Base.esm.js +2 -0
  820. package/dist/server/core/Base.esm.js.map +1 -0
  821. package/dist/server/core/Batcher.cjs.js +2 -0
  822. package/dist/server/core/Batcher.cjs.js.map +1 -0
  823. package/dist/server/core/Batcher.esm.js +2 -0
  824. package/dist/server/core/Batcher.esm.js.map +1 -0
  825. package/dist/server/core/CacheAdapter.cjs.js +2 -0
  826. package/dist/server/core/CacheAdapter.cjs.js.map +1 -0
  827. package/dist/server/core/CacheAdapter.esm.js +2 -0
  828. package/dist/server/core/CacheAdapter.esm.js.map +1 -0
  829. package/dist/server/core/LocalStorageWrapper.cjs.js +2 -0
  830. package/dist/server/core/LocalStorageWrapper.cjs.js.map +1 -0
  831. package/dist/server/core/LocalStorageWrapper.esm.js +2 -0
  832. package/dist/server/core/LocalStorageWrapper.esm.js.map +1 -0
  833. package/dist/server/core/Queue.cjs.js +2 -0
  834. package/dist/server/core/Queue.cjs.js.map +1 -0
  835. package/dist/server/core/Queue.esm.js +2 -0
  836. package/dist/server/core/Queue.esm.js.map +1 -0
  837. package/dist/server/core/WebsocketAdapter.cjs.js +2 -0
  838. package/dist/server/core/WebsocketAdapter.cjs.js.map +1 -0
  839. package/dist/server/core/WebsocketAdapter.esm.js +2 -0
  840. package/dist/server/core/WebsocketAdapter.esm.js.map +1 -0
  841. package/dist/server/core/Workers.cjs.js +2 -0
  842. package/dist/server/core/Workers.cjs.js.map +1 -0
  843. package/dist/server/core/Workers.esm.js +2 -0
  844. package/dist/server/core/Workers.esm.js.map +1 -0
  845. package/dist/server/core/index.cjs.js +2 -0
  846. package/dist/server/core/index.cjs.js.map +1 -0
  847. package/dist/server/core/index.esm.js +2 -0
  848. package/dist/server/core/index.esm.js.map +1 -0
  849. package/dist/server/factory/cache.shared.worker.cjs.js +2 -0
  850. package/dist/server/factory/cache.shared.worker.cjs.js.map +1 -0
  851. package/dist/server/factory/cache.shared.worker.esm.js +2 -0
  852. package/dist/server/factory/cache.shared.worker.esm.js.map +1 -0
  853. package/dist/server/factory/cache.worker.cjs.js +2 -0
  854. package/dist/server/factory/cache.worker.cjs.js.map +1 -0
  855. package/dist/server/factory/cache.worker.esm.js +2 -0
  856. package/dist/server/factory/cache.worker.esm.js.map +1 -0
  857. package/dist/server/factory/index.cjs.js +2 -0
  858. package/dist/server/factory/index.cjs.js.map +1 -0
  859. package/dist/server/factory/index.esm.js +2 -0
  860. package/dist/server/factory/index.esm.js.map +1 -0
  861. package/dist/server/index.cjs.js +2 -0
  862. package/dist/server/index.cjs.js.map +1 -0
  863. package/dist/server/index.esm.js +2 -0
  864. package/dist/server/index.esm.js.map +1 -0
  865. package/dist/server/interfaces/index.cjs.js +2 -0
  866. package/dist/server/interfaces/index.cjs.js.map +1 -0
  867. package/dist/server/interfaces/index.esm.js +2 -0
  868. package/dist/server/interfaces/index.esm.js.map +1 -0
  869. package/dist/server/internal/utils/dist/browser/_virtual/_tslib.esm.cjs.js +2 -0
  870. package/dist/server/internal/utils/dist/browser/_virtual/_tslib.esm.cjs.js.map +1 -0
  871. package/dist/server/internal/utils/dist/browser/_virtual/_tslib.esm.esm.js +2 -0
  872. package/dist/server/internal/utils/dist/browser/_virtual/_tslib.esm.esm.js.map +1 -0
  873. package/dist/server/internal/utils/dist/browser/config.esm.cjs.js +2 -0
  874. package/dist/server/internal/utils/dist/browser/config.esm.cjs.js.map +1 -0
  875. package/dist/server/internal/utils/dist/browser/config.esm.esm.js +2 -0
  876. package/dist/server/internal/utils/dist/browser/config.esm.esm.js.map +1 -0
  877. package/dist/server/internal/utils/dist/browser/controlflow.esm.cjs.js +2 -0
  878. package/dist/server/internal/utils/dist/browser/controlflow.esm.cjs.js.map +1 -0
  879. package/dist/server/internal/utils/dist/browser/controlflow.esm.esm.js +2 -0
  880. package/dist/server/internal/utils/dist/browser/controlflow.esm.esm.js.map +1 -0
  881. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.cjs.js +4 -0
  882. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.cjs.js.map +1 -0
  883. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.esm.js +3 -0
  884. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.esm.js.map +1 -0
  885. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.cjs.js +4 -0
  886. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.cjs.js.map +1 -0
  887. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.esm.js +3 -0
  888. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.esm.js.map +1 -0
  889. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.cjs.js +3 -0
  890. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.cjs.js.map +1 -0
  891. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.esm.js +3 -0
  892. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.esm.js.map +1 -0
  893. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.cjs.js +3 -0
  894. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.cjs.js.map +1 -0
  895. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.esm.js +3 -0
  896. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.esm.js.map +1 -0
  897. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.cjs.js +4 -0
  898. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.cjs.js.map +1 -0
  899. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.esm.js +4 -0
  900. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.esm.js.map +1 -0
  901. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.cjs.js +3 -0
  902. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.cjs.js.map +1 -0
  903. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.esm.js +3 -0
  904. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.esm.js.map +1 -0
  905. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.cjs.js +2 -0
  906. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.cjs.js.map +1 -0
  907. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.esm.js +2 -0
  908. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.esm.js.map +1 -0
  909. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.cjs.js +2 -0
  910. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.cjs.js.map +1 -0
  911. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.esm.js +2 -0
  912. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.esm.js.map +1 -0
  913. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.cjs.js +2 -0
  914. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.cjs.js.map +1 -0
  915. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.esm.js +2 -0
  916. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.esm.js.map +1 -0
  917. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.cjs.js +3 -0
  918. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.cjs.js.map +1 -0
  919. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  920. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  921. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.cjs.js +2 -0
  922. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.cjs.js.map +1 -0
  923. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.esm.js +2 -0
  924. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.esm.js.map +1 -0
  925. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.cjs.js +2 -0
  926. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.cjs.js.map +1 -0
  927. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.esm.js +2 -0
  928. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.esm.js.map +1 -0
  929. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.cjs.js +2 -0
  930. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.cjs.js.map +1 -0
  931. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.esm.js +2 -0
  932. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.esm.js.map +1 -0
  933. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.cjs.js +2 -0
  934. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.cjs.js.map +1 -0
  935. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.esm.js +2 -0
  936. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.esm.js.map +1 -0
  937. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.cjs.js +2 -0
  938. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.cjs.js.map +1 -0
  939. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.esm.js +2 -0
  940. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.esm.js.map +1 -0
  941. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.cjs.js +3 -0
  942. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.cjs.js.map +1 -0
  943. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  944. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  945. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.cjs.js +3 -0
  946. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.cjs.js.map +1 -0
  947. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.esm.js +3 -0
  948. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@noble_hashes@1.5.0/node_modules/@noble/hashes/esm/utils.esm.esm.js.map +1 -0
  949. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.cjs.js +3 -0
  950. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.cjs.js.map +1 -0
  951. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.esm.js +3 -0
  952. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.esm.js.map +1 -0
  953. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.cjs.js +2 -0
  954. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.cjs.js.map +1 -0
  955. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.esm.js +2 -0
  956. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/nip19.esm.esm.js.map +1 -0
  957. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.cjs.js +2 -0
  958. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.cjs.js.map +1 -0
  959. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.esm.js +2 -0
  960. package/dist/server/internal/utils/dist/browser/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/pure.esm.esm.js.map +1 -0
  961. package/dist/server/managers/MonitorManager.cjs.js +2 -0
  962. package/dist/server/managers/MonitorManager.cjs.js.map +1 -0
  963. package/dist/server/managers/MonitorManager.esm.js +2 -0
  964. package/dist/server/managers/MonitorManager.esm.js.map +1 -0
  965. package/dist/server/managers/StateManager.cjs.js +2 -0
  966. package/dist/server/managers/StateManager.cjs.js.map +1 -0
  967. package/dist/server/managers/StateManager.esm.js +2 -0
  968. package/dist/server/managers/StateManager.esm.js.map +1 -0
  969. package/dist/server/managers/SyncStateManager.cjs.js +2 -0
  970. package/dist/server/managers/SyncStateManager.cjs.js.map +1 -0
  971. package/dist/server/managers/SyncStateManager.esm.js +2 -0
  972. package/dist/server/managers/SyncStateManager.esm.js.map +1 -0
  973. package/dist/server/models/DeltaEvent.cjs.js +2 -0
  974. package/dist/server/models/DeltaEvent.cjs.js.map +1 -0
  975. package/dist/server/models/DeltaEvent.esm.js +2 -0
  976. package/dist/server/models/DeltaEvent.esm.js.map +1 -0
  977. package/dist/server/models/Event.cjs.js +2 -0
  978. package/dist/server/models/Event.cjs.js.map +1 -0
  979. package/dist/server/models/Event.esm.js +2 -0
  980. package/dist/server/models/Event.esm.js.map +1 -0
  981. package/dist/server/models/Geocoded.cjs.js +2 -0
  982. package/dist/server/models/Geocoded.cjs.js.map +1 -0
  983. package/dist/server/models/Geocoded.esm.js +2 -0
  984. package/dist/server/models/Geocoded.esm.js.map +1 -0
  985. package/dist/server/models/Monitor.cjs.js +2 -0
  986. package/dist/server/models/Monitor.cjs.js.map +1 -0
  987. package/dist/server/models/Monitor.esm.js +2 -0
  988. package/dist/server/models/Monitor.esm.js.map +1 -0
  989. package/dist/server/models/MonitorRegistration.cjs.js +2 -0
  990. package/dist/server/models/MonitorRegistration.cjs.js.map +1 -0
  991. package/dist/server/models/MonitorRegistration.esm.js +2 -0
  992. package/dist/server/models/MonitorRegistration.esm.js.map +1 -0
  993. package/dist/server/models/Nip11.cjs.js +2 -0
  994. package/dist/server/models/Nip11.cjs.js.map +1 -0
  995. package/dist/server/models/Nip11.esm.js +2 -0
  996. package/dist/server/models/Nip11.esm.js.map +1 -0
  997. package/dist/server/models/Nip66CheckEvent.cjs.js +2 -0
  998. package/dist/server/models/Nip66CheckEvent.cjs.js.map +1 -0
  999. package/dist/server/models/Nip66CheckEvent.esm.js +2 -0
  1000. package/dist/server/models/Nip66CheckEvent.esm.js.map +1 -0
  1001. package/dist/server/models/PubkeyProfile.cjs.js +2 -0
  1002. package/dist/server/models/PubkeyProfile.cjs.js.map +1 -0
  1003. package/dist/server/models/PubkeyProfile.esm.js +2 -0
  1004. package/dist/server/models/PubkeyProfile.esm.js.map +1 -0
  1005. package/dist/server/models/PubkeyRelays.cjs.js +2 -0
  1006. package/dist/server/models/PubkeyRelays.cjs.js.map +1 -0
  1007. package/dist/server/models/PubkeyRelays.esm.js +2 -0
  1008. package/dist/server/models/PubkeyRelays.esm.js.map +1 -0
  1009. package/dist/server/models/RelayCheckAggregate.cjs.js +2 -0
  1010. package/dist/server/models/RelayCheckAggregate.cjs.js.map +1 -0
  1011. package/dist/server/models/RelayCheckAggregate.esm.js +2 -0
  1012. package/dist/server/models/RelayCheckAggregate.esm.js.map +1 -0
  1013. package/dist/server/models/_.cjs.js +2 -0
  1014. package/dist/server/models/_.cjs.js.map +1 -0
  1015. package/dist/server/models/_.esm.js +2 -0
  1016. package/dist/server/models/_.esm.js.map +1 -0
  1017. package/dist/server/models/index.cjs.js +2 -0
  1018. package/dist/server/models/index.cjs.js.map +1 -0
  1019. package/dist/server/models/index.esm.js +2 -0
  1020. package/dist/server/models/index.esm.js.map +1 -0
  1021. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.cjs.js +2 -0
  1022. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.cjs.js.map +1 -0
  1023. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.esm.js +2 -0
  1024. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_arx.esm.js.map +1 -0
  1025. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.cjs.js +2 -0
  1026. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.cjs.js.map +1 -0
  1027. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.esm.js +2 -0
  1028. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/_assert.esm.js.map +1 -0
  1029. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.cjs.js +2 -0
  1030. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.cjs.js.map +1 -0
  1031. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.esm.js +2 -0
  1032. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.esm.js.map +1 -0
  1033. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.cjs.js +2 -0
  1034. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.cjs.js.map +1 -0
  1035. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.esm.js +2 -0
  1036. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.esm.js.map +1 -0
  1037. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.cjs.js +3 -0
  1038. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.cjs.js.map +1 -0
  1039. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.esm.js +3 -0
  1040. package/dist/server/node_modules/.pnpm/@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.esm.js.map +1 -0
  1041. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.cjs.js +4 -0
  1042. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.cjs.js.map +1 -0
  1043. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.js +4 -0
  1044. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/_shortw_utils.esm.js.map +1 -0
  1045. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.cjs.js +4 -0
  1046. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.cjs.js.map +1 -0
  1047. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.js +4 -0
  1048. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/curve.esm.js.map +1 -0
  1049. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.cjs.js +3 -0
  1050. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.cjs.js.map +1 -0
  1051. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.js +4 -0
  1052. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/modular.esm.js.map +1 -0
  1053. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.cjs.js +3 -0
  1054. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.cjs.js.map +1 -0
  1055. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.js +3 -0
  1056. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/utils.esm.js.map +1 -0
  1057. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.cjs.js +4 -0
  1058. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.cjs.js.map +1 -0
  1059. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.js +4 -0
  1060. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/abstract/weierstrass.esm.js.map +1 -0
  1061. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.cjs.js +4 -0
  1062. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.cjs.js.map +1 -0
  1063. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.js +3 -0
  1064. package/dist/server/node_modules/.pnpm/@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.js.map +1 -0
  1065. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.cjs.js +2 -0
  1066. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.cjs.js.map +1 -0
  1067. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.js +2 -0
  1068. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_assert.esm.js.map +1 -0
  1069. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.cjs.js +2 -0
  1070. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.cjs.js.map +1 -0
  1071. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.js +2 -0
  1072. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/_sha2.esm.js.map +1 -0
  1073. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.cjs.js +2 -0
  1074. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.cjs.js.map +1 -0
  1075. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.esm.js +2 -0
  1076. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/crypto.esm.js.map +1 -0
  1077. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.cjs.js +2 -0
  1078. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.cjs.js.map +1 -0
  1079. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.esm.js +2 -0
  1080. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.esm.js.map +1 -0
  1081. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.cjs.js +2 -0
  1082. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.cjs.js.map +1 -0
  1083. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.esm.js +2 -0
  1084. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.esm.js.map +1 -0
  1085. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.cjs.js +2 -0
  1086. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.cjs.js.map +1 -0
  1087. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.js +2 -0
  1088. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.js.map +1 -0
  1089. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.cjs.js +3 -0
  1090. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.cjs.js.map +1 -0
  1091. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.js +4 -0
  1092. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.js.map +1 -0
  1093. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.cjs.js +2 -0
  1094. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.cjs.js.map +1 -0
  1095. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.js +2 -0
  1096. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.esm.js.map +1 -0
  1097. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.cjs.js +2 -0
  1098. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.cjs.js.map +1 -0
  1099. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.js +2 -0
  1100. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/_sha2.esm.js.map +1 -0
  1101. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.cjs.js +2 -0
  1102. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.cjs.js.map +1 -0
  1103. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.js +2 -0
  1104. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/crypto.esm.js.map +1 -0
  1105. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.cjs.js +2 -0
  1106. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.cjs.js.map +1 -0
  1107. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.js +2 -0
  1108. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/hmac.esm.js.map +1 -0
  1109. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.cjs.js +2 -0
  1110. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.cjs.js.map +1 -0
  1111. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.js +2 -0
  1112. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/sha256.esm.js.map +1 -0
  1113. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.cjs.js +3 -0
  1114. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.cjs.js.map +1 -0
  1115. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.js +4 -0
  1116. package/dist/server/node_modules/.pnpm/@noble_hashes@1.3.2/node_modules/@noble/hashes/esm/utils.esm.js.map +1 -0
  1117. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.cjs.js +3 -0
  1118. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.cjs.js.map +1 -0
  1119. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.js +3 -0
  1120. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.js.map +1 -0
  1121. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.cjs.js +4 -0
  1122. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.cjs.js.map +1 -0
  1123. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.esm.js +4 -0
  1124. package/dist/server/node_modules/.pnpm/@scure_base@1.1.1/node_modules/@scure/base/lib/index.esm.js.map +1 -0
  1125. package/dist/server/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.cjs.js +2 -0
  1126. package/dist/server/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.cjs.js.map +1 -0
  1127. package/dist/server/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.esm.js +2 -0
  1128. package/dist/server/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.esm.js.map +1 -0
  1129. package/dist/server/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.cjs.js +2 -0
  1130. package/dist/server/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.cjs.js.map +1 -0
  1131. package/dist/server/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.esm.js +2 -0
  1132. package/dist/server/node_modules/.pnpm/jsurl2@2.2.0/node_modules/jsurl2/dist/index.esm.js.map +1 -0
  1133. package/dist/server/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.cjs.js +2 -0
  1134. package/dist/server/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.cjs.js.map +1 -0
  1135. package/dist/server/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.esm.js +2 -0
  1136. package/dist/server/node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.esm.js.map +1 -0
  1137. package/dist/server/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.cjs.js +2 -0
  1138. package/dist/server/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.cjs.js.map +1 -0
  1139. package/dist/server/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.esm.js +2 -0
  1140. package/dist/server/node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.esm.js.map +1 -0
  1141. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.cjs.js +2 -0
  1142. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.cjs.js.map +1 -0
  1143. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.esm.js +2 -0
  1144. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/index.esm.js.map +1 -0
  1145. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.cjs.js +2 -0
  1146. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.cjs.js.map +1 -0
  1147. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.esm.js +2 -0
  1148. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/lower-bound.esm.js.map +1 -0
  1149. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.cjs.js +2 -0
  1150. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.cjs.js.map +1 -0
  1151. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.esm.js +2 -0
  1152. package/dist/server/node_modules/.pnpm/p-queue@8.0.1/node_modules/p-queue/dist/priority-queue.esm.js.map +1 -0
  1153. package/dist/server/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.cjs.js +2 -0
  1154. package/dist/server/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.cjs.js.map +1 -0
  1155. package/dist/server/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.esm.js +2 -0
  1156. package/dist/server/node_modules/.pnpm/p-timeout@6.1.4/node_modules/p-timeout/index.esm.js.map +1 -0
  1157. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.cjs.js +2 -0
  1158. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.cjs.js.map +1 -0
  1159. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.esm.js +2 -0
  1160. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/ee.esm.js.map +1 -0
  1161. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.cjs.js +2 -0
  1162. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.cjs.js.map +1 -0
  1163. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.esm.js +2 -0
  1164. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/index.esm.js.map +1 -0
  1165. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.cjs.js +2 -0
  1166. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.cjs.js.map +1 -0
  1167. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.esm.js +2 -0
  1168. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/bake-collection.esm.js.map +1 -0
  1169. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.cjs.js +2 -0
  1170. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.cjs.js.map +1 -0
  1171. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.esm.js +2 -0
  1172. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/index.esm.js.map +1 -0
  1173. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.cjs.js +2 -0
  1174. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.cjs.js.map +1 -0
  1175. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.esm.js +2 -0
  1176. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/task-collection.esm.js.map +1 -0
  1177. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.cjs.js +2 -0
  1178. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.cjs.js.map +1 -0
  1179. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.esm.js +2 -0
  1180. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/task-collection/utils.esm.js.map +1 -0
  1181. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.cjs.js +2 -0
  1182. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.cjs.js.map +1 -0
  1183. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.esm.js +2 -0
  1184. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/types.esm.js.map +1 -0
  1185. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.cjs.js +2 -0
  1186. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.cjs.js.map +1 -0
  1187. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.esm.js +2 -0
  1188. package/dist/server/node_modules/.pnpm/tseep@1.3.1/node_modules/tseep/lib/utils.esm.js.map +1 -0
  1189. package/dist/server/services/AuditorService.cjs.js +2 -0
  1190. package/dist/server/services/AuditorService.cjs.js.map +1 -0
  1191. package/dist/server/services/AuditorService.esm.js +2 -0
  1192. package/dist/server/services/AuditorService.esm.js.map +1 -0
  1193. package/dist/server/services/ChronicleService.cjs.js +2 -0
  1194. package/dist/server/services/ChronicleService.cjs.js.map +1 -0
  1195. package/dist/server/services/ChronicleService.esm.js +2 -0
  1196. package/dist/server/services/ChronicleService.esm.js.map +1 -0
  1197. package/dist/server/services/MonitorService.cjs.js +2 -0
  1198. package/dist/server/services/MonitorService.cjs.js.map +1 -0
  1199. package/dist/server/services/MonitorService.esm.js +2 -0
  1200. package/dist/server/services/MonitorService.esm.js.map +1 -0
  1201. package/dist/server/services/RelayService.cjs.js +2 -0
  1202. package/dist/server/services/RelayService.cjs.js.map +1 -0
  1203. package/dist/server/services/RelayService.esm.js +2 -0
  1204. package/dist/server/services/RelayService.esm.js.map +1 -0
  1205. package/dist/server/services/Service.cjs.js +2 -0
  1206. package/dist/server/services/Service.cjs.js.map +1 -0
  1207. package/dist/server/services/Service.esm.js +2 -0
  1208. package/dist/server/services/Service.esm.js.map +1 -0
  1209. package/dist/server/services/index.cjs.js +2 -0
  1210. package/dist/server/services/index.cjs.js.map +1 -0
  1211. package/dist/server/services/index.esm.js +2 -0
  1212. package/dist/server/services/index.esm.js.map +1 -0
  1213. package/dist/server/transform/TransformCheck.cjs.js +2 -0
  1214. package/dist/server/transform/TransformCheck.cjs.js.map +1 -0
  1215. package/dist/server/transform/TransformCheck.esm.js +2 -0
  1216. package/dist/server/transform/TransformCheck.esm.js.map +1 -0
  1217. package/dist/server/transform/TransformEvent.cjs.js +2 -0
  1218. package/dist/server/transform/TransformEvent.cjs.js.map +1 -0
  1219. package/dist/server/transform/TransformEvent.esm.js +2 -0
  1220. package/dist/server/transform/TransformEvent.esm.js.map +1 -0
  1221. package/dist/server/transform/TransformMonitors.cjs.js +2 -0
  1222. package/dist/server/transform/TransformMonitors.cjs.js.map +1 -0
  1223. package/dist/server/transform/TransformMonitors.esm.js +2 -0
  1224. package/dist/server/transform/TransformMonitors.esm.js.map +1 -0
  1225. package/dist/server/transform/TransformRelays.cjs.js +2 -0
  1226. package/dist/server/transform/TransformRelays.cjs.js.map +1 -0
  1227. package/dist/server/transform/TransformRelays.esm.js +2 -0
  1228. package/dist/server/transform/TransformRelays.esm.js.map +1 -0
  1229. package/dist/server/transform/index.cjs.js +2 -0
  1230. package/dist/server/transform/index.cjs.js.map +1 -0
  1231. package/dist/server/transform/index.esm.js +2 -0
  1232. package/dist/server/transform/index.esm.js.map +1 -0
  1233. package/dist/server/utils/SyncKeys.cjs.js +2 -0
  1234. package/dist/server/utils/SyncKeys.cjs.js.map +1 -0
  1235. package/dist/server/utils/SyncKeys.esm.js +2 -0
  1236. package/dist/server/utils/SyncKeys.esm.js.map +1 -0
  1237. package/dist/server/utils/classes.cjs.js +2 -0
  1238. package/dist/server/utils/classes.cjs.js.map +1 -0
  1239. package/dist/server/utils/classes.esm.js +2 -0
  1240. package/dist/server/utils/classes.esm.js.map +1 -0
  1241. package/dist/server/utils/encoding.cjs.js +2 -0
  1242. package/dist/server/utils/encoding.cjs.js.map +1 -0
  1243. package/dist/server/utils/encoding.esm.js +2 -0
  1244. package/dist/server/utils/encoding.esm.js.map +1 -0
  1245. package/dist/server/utils/events.cjs.js +2 -0
  1246. package/dist/server/utils/events.cjs.js.map +1 -0
  1247. package/dist/server/utils/events.esm.js +2 -0
  1248. package/dist/server/utils/events.esm.js.map +1 -0
  1249. package/dist/server/utils/general.cjs.js +2 -0
  1250. package/dist/server/utils/general.cjs.js.map +1 -0
  1251. package/dist/server/utils/general.esm.js +2 -0
  1252. package/dist/server/utils/general.esm.js.map +1 -0
  1253. package/dist/server/utils/geo.cjs.js +2 -0
  1254. package/dist/server/utils/geo.cjs.js.map +1 -0
  1255. package/dist/server/utils/geo.esm.js +2 -0
  1256. package/dist/server/utils/geo.esm.js.map +1 -0
  1257. package/dist/server/utils/hash.cjs.js +2 -0
  1258. package/dist/server/utils/hash.cjs.js.map +1 -0
  1259. package/dist/server/utils/hash.esm.js +2 -0
  1260. package/dist/server/utils/hash.esm.js.map +1 -0
  1261. package/dist/server/utils/index.cjs.js +2 -0
  1262. package/dist/server/utils/index.cjs.js.map +1 -0
  1263. package/dist/server/utils/index.esm.js +2 -0
  1264. package/dist/server/utils/index.esm.js.map +1 -0
  1265. package/dist/server/utils/monitors.cjs.js +2 -0
  1266. package/dist/server/utils/monitors.cjs.js.map +1 -0
  1267. package/dist/server/utils/monitors.esm.js +2 -0
  1268. package/dist/server/utils/monitors.esm.js.map +1 -0
  1269. package/dist/server/utils/nostr.cjs.js +2 -0
  1270. package/dist/server/utils/nostr.cjs.js.map +1 -0
  1271. package/dist/server/utils/nostr.esm.js +2 -0
  1272. package/dist/server/utils/nostr.esm.js.map +1 -0
  1273. package/dist/server/utils/pfp.cjs.js +2 -0
  1274. package/dist/server/utils/pfp.cjs.js.map +1 -0
  1275. package/dist/server/utils/pfp.esm.js +2 -0
  1276. package/dist/server/utils/pfp.esm.js.map +1 -0
  1277. package/dist/types/core/Adapter.d.ts +58 -0
  1278. package/dist/types/core/Adapter.d.ts.map +1 -0
  1279. package/dist/types/core/AdapterCacheWorker.d.ts +28 -0
  1280. package/dist/types/core/AdapterCacheWorker.d.ts.map +1 -0
  1281. package/dist/types/core/AdapterWebsocketQueue.d.ts +7 -0
  1282. package/dist/types/core/AdapterWebsocketQueue.d.ts.map +1 -0
  1283. package/dist/types/core/AdapterWebsocketWorker.d.ts +78 -0
  1284. package/dist/types/core/AdapterWebsocketWorker.d.ts.map +1 -0
  1285. package/dist/types/core/AdapterWorker.d.ts +55 -0
  1286. package/dist/types/core/AdapterWorker.d.ts.map +1 -0
  1287. package/dist/types/core/Base.d.ts +53 -0
  1288. package/dist/types/core/Base.d.ts.map +1 -0
  1289. package/dist/types/core/Batcher.d.ts +19 -0
  1290. package/dist/types/core/Batcher.d.ts.map +1 -0
  1291. package/dist/types/core/CacheAdapter.d.ts +127 -0
  1292. package/dist/types/core/CacheAdapter.d.ts.map +1 -0
  1293. package/dist/types/core/Checkpoints.d.ts +8 -0
  1294. package/dist/types/core/Checkpoints.d.ts.map +1 -0
  1295. package/dist/types/core/LocalStorageWrapper.d.ts +19 -0
  1296. package/dist/types/core/LocalStorageWrapper.d.ts.map +1 -0
  1297. package/dist/types/core/Loggerr.d.ts +3 -0
  1298. package/dist/types/core/Loggerr.d.ts.map +1 -0
  1299. package/dist/types/core/Memory.d.ts +1 -0
  1300. package/dist/types/core/Memory.d.ts.map +1 -0
  1301. package/dist/types/core/Queue.d.ts +42 -0
  1302. package/dist/types/core/Queue.d.ts.map +1 -0
  1303. package/dist/types/core/Routine.d.ts +3 -0
  1304. package/dist/types/core/Routine.d.ts.map +1 -0
  1305. package/dist/types/core/Subscriber.d.ts +10 -0
  1306. package/dist/types/core/Subscriber.d.ts.map +1 -0
  1307. package/dist/types/core/WebsocketAdapter.d.ts +93 -0
  1308. package/dist/types/core/WebsocketAdapter.d.ts.map +1 -0
  1309. package/dist/types/core/Workers.d.ts +24 -0
  1310. package/dist/types/core/Workers.d.ts.map +1 -0
  1311. package/dist/types/core/index.d.ts +12 -0
  1312. package/dist/types/core/index.d.ts.map +1 -0
  1313. package/dist/types/factory/cache.shared.worker.d.ts +3 -0
  1314. package/dist/types/factory/cache.shared.worker.d.ts.map +1 -0
  1315. package/dist/types/factory/cache.worker.d.ts +11 -0
  1316. package/dist/types/factory/cache.worker.d.ts.map +1 -0
  1317. package/dist/types/factory/index.d.ts +3 -0
  1318. package/dist/types/factory/index.d.ts.map +1 -0
  1319. package/dist/types/helpers/filters.d.ts +4 -0
  1320. package/dist/types/helpers/filters.d.ts.map +1 -0
  1321. package/dist/types/index.d.ts +11 -0
  1322. package/dist/types/index.d.ts.map +1 -0
  1323. package/dist/types/interfaces/IAdapterWorkerCommand.d.ts +8 -0
  1324. package/dist/types/interfaces/IAdapterWorkerCommand.d.ts.map +1 -0
  1325. package/dist/types/interfaces/IAdaptersArgument.d.ts +7 -0
  1326. package/dist/types/interfaces/IAdaptersArgument.d.ts.map +1 -0
  1327. package/dist/types/interfaces/ICacheAdapter.d.ts +1 -0
  1328. package/dist/types/interfaces/ICacheAdapter.d.ts.map +1 -0
  1329. package/dist/types/interfaces/ICacheAdapterSharedWorkerCommand.d.ts +8 -0
  1330. package/dist/types/interfaces/ICacheAdapterSharedWorkerCommand.d.ts.map +1 -0
  1331. package/dist/types/interfaces/INostrEvent.d.ts +2 -0
  1332. package/dist/types/interfaces/INostrEvent.d.ts.map +1 -0
  1333. package/dist/types/interfaces/ISharedWorkerGlobalScope.d.ts +7 -0
  1334. package/dist/types/interfaces/ISharedWorkerGlobalScope.d.ts.map +1 -0
  1335. package/dist/types/interfaces/IWorkerCommand.d.ts +6 -0
  1336. package/dist/types/interfaces/IWorkerCommand.d.ts.map +1 -0
  1337. package/dist/types/interfaces/IWorkerGlobalScope.d.ts +7 -0
  1338. package/dist/types/interfaces/IWorkerGlobalScope.d.ts.map +1 -0
  1339. package/dist/types/interfaces/TISO13166.d.ts +15 -0
  1340. package/dist/types/interfaces/TISO13166.d.ts.map +1 -0
  1341. package/dist/types/interfaces/index.d.ts +8 -0
  1342. package/dist/types/interfaces/index.d.ts.map +1 -0
  1343. package/dist/types/managers/MonitorManager.d.ts +50 -0
  1344. package/dist/types/managers/MonitorManager.d.ts.map +1 -0
  1345. package/dist/types/managers/StageManager.d.ts +36 -0
  1346. package/dist/types/managers/StageManager.d.ts.map +1 -0
  1347. package/dist/types/managers/StateManager.d.ts +50 -0
  1348. package/dist/types/managers/StateManager.d.ts.map +1 -0
  1349. package/dist/types/managers/SyncStateManager.d.ts +22 -0
  1350. package/dist/types/managers/SyncStateManager.d.ts.map +1 -0
  1351. package/dist/types/models/Check.d.ts +28 -0
  1352. package/dist/types/models/Check.d.ts.map +1 -0
  1353. package/dist/types/models/DeltaEvent.d.ts +79 -0
  1354. package/dist/types/models/DeltaEvent.d.ts.map +1 -0
  1355. package/dist/types/models/Event.d.ts +61 -0
  1356. package/dist/types/models/Event.d.ts.map +1 -0
  1357. package/dist/types/models/EventEncoded.d.ts +8 -0
  1358. package/dist/types/models/EventEncoded.d.ts.map +1 -0
  1359. package/dist/types/models/Geocode.d.ts +7 -0
  1360. package/dist/types/models/Geocode.d.ts.map +1 -0
  1361. package/dist/types/models/Geocoded.d.ts +238 -0
  1362. package/dist/types/models/Geocoded.d.ts.map +1 -0
  1363. package/dist/types/models/Geohash.d.ts +6 -0
  1364. package/dist/types/models/Geohash.d.ts.map +1 -0
  1365. package/dist/types/models/Monitor.d.ts +96 -0
  1366. package/dist/types/models/Monitor.d.ts.map +1 -0
  1367. package/dist/types/models/MonitorRegistration.d.ts +8 -0
  1368. package/dist/types/models/MonitorRegistration.d.ts.map +1 -0
  1369. package/dist/types/models/Nip11.d.ts +155 -0
  1370. package/dist/types/models/Nip11.d.ts.map +1 -0
  1371. package/dist/types/models/Nip66CheckEvent.d.ts +63 -0
  1372. package/dist/types/models/Nip66CheckEvent.d.ts.map +1 -0
  1373. package/dist/types/models/PubkeyProfile.d.ts +19 -0
  1374. package/dist/types/models/PubkeyProfile.d.ts.map +1 -0
  1375. package/dist/types/models/PubkeyRelays.d.ts +5 -0
  1376. package/dist/types/models/PubkeyRelays.d.ts.map +1 -0
  1377. package/dist/types/models/Relay.d.ts +9 -0
  1378. package/dist/types/models/Relay.d.ts.map +1 -0
  1379. package/dist/types/models/RelayCheckAggregate.d.ts +92 -0
  1380. package/dist/types/models/RelayCheckAggregate.d.ts.map +1 -0
  1381. package/dist/types/models/Ssl.d.ts +9 -0
  1382. package/dist/types/models/Ssl.d.ts.map +1 -0
  1383. package/dist/types/models/_.d.ts +2 -0
  1384. package/dist/types/models/_.d.ts.map +1 -0
  1385. package/dist/types/models/index.d.ts +15 -0
  1386. package/dist/types/models/index.d.ts.map +1 -0
  1387. package/dist/types/routines/PurgeInactiveMonitors.d.ts +6 -0
  1388. package/dist/types/routines/PurgeInactiveMonitors.d.ts.map +1 -0
  1389. package/dist/types/routines/PurgeOldChecks.d.ts +6 -0
  1390. package/dist/types/routines/PurgeOldChecks.d.ts.map +1 -0
  1391. package/dist/types/services/AuditorService.d.ts +4 -0
  1392. package/dist/types/services/AuditorService.d.ts.map +1 -0
  1393. package/dist/types/services/ChronicleService.d.ts +177 -0
  1394. package/dist/types/services/ChronicleService.d.ts.map +1 -0
  1395. package/dist/types/services/MonitorService.d.ts +62 -0
  1396. package/dist/types/services/MonitorService.d.ts.map +1 -0
  1397. package/dist/types/services/RelayService.d.ts +39 -0
  1398. package/dist/types/services/RelayService.d.ts.map +1 -0
  1399. package/dist/types/services/Service.d.ts +56 -0
  1400. package/dist/types/services/Service.d.ts.map +1 -0
  1401. package/dist/types/services/index.d.ts +6 -0
  1402. package/dist/types/services/index.d.ts.map +1 -0
  1403. package/dist/types/transform/TransformCheck.d.ts +24 -0
  1404. package/dist/types/transform/TransformCheck.d.ts.map +1 -0
  1405. package/dist/types/transform/TransformEvent.d.ts +4 -0
  1406. package/dist/types/transform/TransformEvent.d.ts.map +1 -0
  1407. package/dist/types/transform/TransformMonitors.d.ts +10 -0
  1408. package/dist/types/transform/TransformMonitors.d.ts.map +1 -0
  1409. package/dist/types/transform/TransformRelays.d.ts +20 -0
  1410. package/dist/types/transform/TransformRelays.d.ts.map +1 -0
  1411. package/dist/types/transform/index.d.ts +4 -0
  1412. package/dist/types/transform/index.d.ts.map +1 -0
  1413. package/dist/types/utils/SyncKeys.d.ts +12 -0
  1414. package/dist/types/utils/SyncKeys.d.ts.map +1 -0
  1415. package/dist/types/utils/classes.d.ts +21 -0
  1416. package/dist/types/utils/classes.d.ts.map +1 -0
  1417. package/dist/types/utils/encoding.d.ts +4 -0
  1418. package/dist/types/utils/encoding.d.ts.map +1 -0
  1419. package/dist/types/utils/events.d.ts +7 -0
  1420. package/dist/types/utils/events.d.ts.map +1 -0
  1421. package/dist/types/utils/general.d.ts +8 -0
  1422. package/dist/types/utils/general.d.ts.map +1 -0
  1423. package/dist/types/utils/geo.d.ts +5 -0
  1424. package/dist/types/utils/geo.d.ts.map +1 -0
  1425. package/dist/types/utils/hash.d.ts +7 -0
  1426. package/dist/types/utils/hash.d.ts.map +1 -0
  1427. package/dist/types/utils/index.d.ts +8 -0
  1428. package/dist/types/utils/index.d.ts.map +1 -0
  1429. package/dist/types/utils/monitors.d.ts +2 -0
  1430. package/dist/types/utils/monitors.d.ts.map +1 -0
  1431. package/dist/types/utils/nostr.d.ts +9 -0
  1432. package/dist/types/utils/nostr.d.ts.map +1 -0
  1433. package/dist/types/utils/pfp.d.ts +17 -0
  1434. package/dist/types/utils/pfp.d.ts.map +1 -0
  1435. package/dist/types/workers/nocap.worker.d.ts +2 -0
  1436. package/dist/types/workers/nocap.worker.d.ts.map +1 -0
  1437. package/examples/basic.js +14 -0
  1438. package/package.json +133 -0
  1439. package/rollup.config.js +206 -0
  1440. package/src/core/Adapter.ts +182 -0
  1441. package/src/core/AdapterCacheWorker.ts +83 -0
  1442. package/src/core/AdapterWebsocketQueue.ts +20 -0
  1443. package/src/core/AdapterWebsocketWorker.ts +307 -0
  1444. package/src/core/AdapterWorker.ts +200 -0
  1445. package/src/core/Base.ts +212 -0
  1446. package/src/core/Batcher.ts +78 -0
  1447. package/src/core/CacheAdapter.ts +186 -0
  1448. package/src/core/Checkpoints.ts +11 -0
  1449. package/src/core/LocalStorageWrapper.ts +112 -0
  1450. package/src/core/Loggerr.ts +3 -0
  1451. package/src/core/Memory.ts +20 -0
  1452. package/src/core/Queue.ts +109 -0
  1453. package/src/core/Routine.ts +1 -0
  1454. package/src/core/Subscriber.ts +29 -0
  1455. package/src/core/WebsocketAdapter.ts +438 -0
  1456. package/src/core/Workers.ts +115 -0
  1457. package/src/core/index.ts +15 -0
  1458. package/src/factory/cache.shared.worker.ts +14 -0
  1459. package/src/factory/cache.worker.ts +13 -0
  1460. package/src/factory/index.ts +2 -0
  1461. package/src/helpers/filters.ts +9 -0
  1462. package/src/index.ts +13 -0
  1463. package/src/interfaces/IAdapterWorkerCommand.ts +8 -0
  1464. package/src/interfaces/IAdaptersArgument.ts +7 -0
  1465. package/src/interfaces/ICacheAdapter.ts +42 -0
  1466. package/src/interfaces/ICacheAdapterSharedWorkerCommand.ts +8 -0
  1467. package/src/interfaces/INostrEvent.ts +1 -0
  1468. package/src/interfaces/ISharedWorkerGlobalScope.ts +6 -0
  1469. package/src/interfaces/IWorkerCommand.ts +5 -0
  1470. package/src/interfaces/IWorkerGlobalScope.ts +6 -0
  1471. package/src/interfaces/TISO13166.ts +17 -0
  1472. package/src/interfaces/index.ts +7 -0
  1473. package/src/managers/MonitorManager.ts +232 -0
  1474. package/src/managers/StageManager.ts +83 -0
  1475. package/src/managers/StateManager.ts +176 -0
  1476. package/src/managers/SyncStateManager.ts +60 -0
  1477. package/src/models/Check.ts +34 -0
  1478. package/src/models/DeltaEvent.ts +152 -0
  1479. package/src/models/Event.ts +192 -0
  1480. package/src/models/EventEncoded.ts +7 -0
  1481. package/src/models/Geocode.ts +7 -0
  1482. package/src/models/Geocoded.ts +567 -0
  1483. package/src/models/Geohash.ts +6 -0
  1484. package/src/models/Monitor.ts +384 -0
  1485. package/src/models/MonitorRegistration.ts +25 -0
  1486. package/src/models/Nip11.ts +275 -0
  1487. package/src/models/Nip66CheckEvent.ts +316 -0
  1488. package/src/models/PubkeyProfile.ts +67 -0
  1489. package/src/models/PubkeyRelays.ts +9 -0
  1490. package/src/models/Relay.ts +8 -0
  1491. package/src/models/RelayCheckAggregate.ts +222 -0
  1492. package/src/models/Ssl.ts +8 -0
  1493. package/src/models/_.ts +7 -0
  1494. package/src/models/index.ts +14 -0
  1495. package/src/routines/PurgeInactiveMonitors.ts +10 -0
  1496. package/src/routines/PurgeOldChecks.ts +10 -0
  1497. package/src/services/AuditorService.ts +3 -0
  1498. package/src/services/ChronicleService.ts +722 -0
  1499. package/src/services/MonitorService.ts +719 -0
  1500. package/src/services/RelayService.ts +250 -0
  1501. package/src/services/Service.ts +370 -0
  1502. package/src/services/index.ts +5 -0
  1503. package/src/transform/TransformCheck.ts +62 -0
  1504. package/src/transform/TransformEvent.ts +26 -0
  1505. package/src/transform/TransformMonitors.ts +91 -0
  1506. package/src/transform/TransformRelays.ts +327 -0
  1507. package/src/transform/index.ts +3 -0
  1508. package/src/utils/SyncKeys.ts +12 -0
  1509. package/src/utils/classes.ts +48 -0
  1510. package/src/utils/encoding.ts +16 -0
  1511. package/src/utils/events.ts +29 -0
  1512. package/src/utils/general.ts +101 -0
  1513. package/src/utils/geo.ts +19 -0
  1514. package/src/utils/hash.ts +98 -0
  1515. package/src/utils/index.ts +7 -0
  1516. package/src/utils/monitors.ts +4 -0
  1517. package/src/utils/nostr.ts +45 -0
  1518. package/src/utils/pfp.ts +278 -0
  1519. package/src/workers/nocap.worker.ts +1 -0
  1520. package/tsconfig.browser.json +12 -0
  1521. package/tsconfig.json +35 -0
  1522. package/tsconfig.server.json +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bolt11.esm.js","sources":["../../../../../../../../../node_modules/.pnpm/light-bolt11-decoder@3.2.0/node_modules/light-bolt11-decoder/bolt11.js"],"sourcesContent":["const {bech32, hex, utf8} = require('@scure/base')\n\n// defaults for encode; default timestamp is current time at call\nconst DEFAULTNETWORK = {\n // default network is bitcoin\n bech32: 'bc',\n pubKeyHash: 0x00,\n scriptHash: 0x05,\n validWitnessVersions: [0]\n}\nconst TESTNETWORK = {\n bech32: 'tb',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n validWitnessVersions: [0]\n}\nconst SIGNETNETWORK = {\n bech32: 'tbs',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n validWitnessVersions: [0]\n}\nconst REGTESTNETWORK = {\n bech32: 'bcrt',\n pubKeyHash: 0x6f,\n scriptHash: 0xc4,\n validWitnessVersions: [0]\n}\nconst SIMNETWORK = {\n bech32: 'sb',\n pubKeyHash: 0x3f,\n scriptHash: 0x7b,\n validWitnessVersions: [0]\n}\n\nconst FEATUREBIT_ORDER = [\n 'option_data_loss_protect',\n 'initial_routing_sync',\n 'option_upfront_shutdown_script',\n 'gossip_queries',\n 'var_onion_optin',\n 'gossip_queries_ex',\n 'option_static_remotekey',\n 'payment_secret',\n 'basic_mpp',\n 'option_support_large_channel'\n]\n\nconst DIVISORS = {\n m: BigInt(1e3),\n u: BigInt(1e6),\n n: BigInt(1e9),\n p: BigInt(1e12)\n}\n\nconst MAX_MILLISATS = BigInt('2100000000000000000')\n\nconst MILLISATS_PER_BTC = BigInt(1e11)\n\nconst TAGCODES = {\n payment_hash: 1,\n payment_secret: 16,\n description: 13,\n payee: 19,\n description_hash: 23, // commit to longer descriptions (used by lnurl-pay)\n expiry: 6, // default: 3600 (1 hour)\n min_final_cltv_expiry: 24, // default: 9\n fallback_address: 9,\n route_hint: 3, // for extra routing info (private etc.)\n feature_bits: 5,\n metadata: 27\n}\n\n// reverse the keys and values of TAGCODES and insert into TAGNAMES\nconst TAGNAMES = {}\nfor (let i = 0, keys = Object.keys(TAGCODES); i < keys.length; i++) {\n const currentName = keys[i]\n const currentCode = TAGCODES[keys[i]].toString()\n TAGNAMES[currentCode] = currentName\n}\n\nconst TAGPARSERS = {\n 1: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 16: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 13: words => utf8.encode(bech32.fromWordsUnsafe(words)), // string variable length\n 19: words => hex.encode(bech32.fromWordsUnsafe(words)), // 264 bits\n 23: words => hex.encode(bech32.fromWordsUnsafe(words)), // 256 bits\n 27: words => hex.encode(bech32.fromWordsUnsafe(words)), // variable\n 6: wordsToIntBE, // default: 3600 (1 hour)\n 24: wordsToIntBE, // default: 9\n 3: routingInfoParser, // for extra routing info (private etc.)\n 5: featureBitsParser // keep feature bits as array of 5 bit words\n}\n\nfunction getUnknownParser(tagCode) {\n return words => ({\n tagCode: parseInt(tagCode),\n words: bech32.encode('unknown', words, Number.MAX_SAFE_INTEGER)\n })\n}\n\nfunction wordsToIntBE(words) {\n return words.reverse().reduce((total, item, index) => {\n return total + item * Math.pow(32, index)\n }, 0)\n}\n\n// first convert from words to buffer, trimming padding where necessary\n// parse in 51 byte chunks. See encoder for details.\nfunction routingInfoParser(words) {\n const routes = []\n let pubkey,\n shortChannelId,\n feeBaseMSats,\n feeProportionalMillionths,\n cltvExpiryDelta\n let routesBuffer = bech32.fromWordsUnsafe(words)\n while (routesBuffer.length > 0) {\n pubkey = hex.encode(routesBuffer.slice(0, 33)) // 33 bytes\n shortChannelId = hex.encode(routesBuffer.slice(33, 41)) // 8 bytes\n feeBaseMSats = parseInt(hex.encode(routesBuffer.slice(41, 45)), 16) // 4 bytes\n feeProportionalMillionths = parseInt(\n hex.encode(routesBuffer.slice(45, 49)),\n 16\n ) // 4 bytes\n cltvExpiryDelta = parseInt(hex.encode(routesBuffer.slice(49, 51)), 16) // 2 bytes\n\n routesBuffer = routesBuffer.slice(51)\n\n routes.push({\n pubkey,\n short_channel_id: shortChannelId,\n fee_base_msat: feeBaseMSats,\n fee_proportional_millionths: feeProportionalMillionths,\n cltv_expiry_delta: cltvExpiryDelta\n })\n }\n return routes\n}\n\nfunction featureBitsParser(words) {\n const bools = words\n .slice()\n .reverse()\n .map(word => [\n !!(word & 0b1),\n !!(word & 0b10),\n !!(word & 0b100),\n !!(word & 0b1000),\n !!(word & 0b10000)\n ])\n .reduce((finalArr, itemArr) => finalArr.concat(itemArr), [])\n while (bools.length < FEATUREBIT_ORDER.length * 2) {\n bools.push(false)\n }\n\n const featureBits = {}\n\n FEATUREBIT_ORDER.forEach((featureName, index) => {\n let status\n if (bools[index * 2]) {\n status = 'required'\n } else if (bools[index * 2 + 1]) {\n status = 'supported'\n } else {\n status = 'unsupported'\n }\n featureBits[featureName] = status\n })\n\n const extraBits = bools.slice(FEATUREBIT_ORDER.length * 2)\n featureBits.extra_bits = {\n start_bit: FEATUREBIT_ORDER.length * 2,\n bits: extraBits,\n has_required: extraBits.reduce(\n (result, bit, index) =>\n index % 2 !== 0 ? result || false : result || bit,\n false\n )\n }\n\n return featureBits\n}\n\nfunction hrpToMillisat(hrpString, outputString) {\n let divisor, value\n if (hrpString.slice(-1).match(/^[munp]$/)) {\n divisor = hrpString.slice(-1)\n value = hrpString.slice(0, -1)\n } else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {\n throw new Error('Not a valid multiplier for the amount')\n } else {\n value = hrpString\n }\n\n if (!value.match(/^\\d+$/))\n throw new Error('Not a valid human readable amount')\n\n const valueBN = BigInt(value)\n\n const millisatoshisBN = divisor\n ? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]\n : valueBN * MILLISATS_PER_BTC\n\n if (\n (divisor === 'p' && !(valueBN % BigInt(10) === BigInt(0))) ||\n millisatoshisBN > MAX_MILLISATS\n ) {\n throw new Error('Amount is outside of valid range')\n }\n\n return outputString ? millisatoshisBN.toString() : millisatoshisBN\n}\n\n// decode will only have extra comments that aren't covered in encode comments.\n// also if anything is hard to read I'll comment.\nfunction decode(paymentRequest, network) {\n if (typeof paymentRequest !== 'string')\n throw new Error('Lightning Payment Request must be string')\n if (paymentRequest.slice(0, 2).toLowerCase() !== 'ln')\n throw new Error('Not a proper lightning payment request')\n\n const sections = []\n const decoded = bech32.decode(paymentRequest, Number.MAX_SAFE_INTEGER)\n paymentRequest = paymentRequest.toLowerCase()\n const prefix = decoded.prefix\n let words = decoded.words\n let letters = paymentRequest.slice(prefix.length + 1)\n let sigWords = words.slice(-104)\n words = words.slice(0, -104)\n\n // Without reverse lookups, can't say that the multipier at the end must\n // have a number before it, so instead we parse, and if the second group\n // doesn't have anything, there's a good chance the last letter of the\n // coin type got captured by the third group, so just re-regex without\n // the number.\n let prefixMatches = prefix.match(/^ln(\\S+?)(\\d*)([a-zA-Z]?)$/)\n if (prefixMatches && !prefixMatches[2])\n prefixMatches = prefix.match(/^ln(\\S+)$/)\n if (!prefixMatches) {\n throw new Error('Not a proper lightning payment request')\n }\n\n // \"ln\" section\n sections.push({\n name: 'lightning_network',\n letters: 'ln'\n })\n\n // \"bc\" section\n const bech32Prefix = prefixMatches[1]\n let coinNetwork\n if (!network) {\n switch (bech32Prefix) {\n case DEFAULTNETWORK.bech32:\n coinNetwork = DEFAULTNETWORK\n break\n case TESTNETWORK.bech32:\n coinNetwork = TESTNETWORK\n break\n case SIGNETNETWORK.bech32:\n coinNetwork = SIGNETNETWORK\n break\n case REGTESTNETWORK.bech32:\n coinNetwork = REGTESTNETWORK\n break\n case SIMNETWORK.bech32:\n coinNetwork = SIMNETWORK\n break\n }\n } else {\n if (\n network.bech32 === undefined ||\n network.pubKeyHash === undefined ||\n network.scriptHash === undefined ||\n !Array.isArray(network.validWitnessVersions)\n )\n throw new Error('Invalid network')\n coinNetwork = network\n }\n if (!coinNetwork || coinNetwork.bech32 !== bech32Prefix) {\n throw new Error('Unknown coin bech32 prefix')\n }\n sections.push({\n name: 'coin_network',\n letters: bech32Prefix,\n value: coinNetwork\n })\n\n // amount section\n const value = prefixMatches[2]\n let millisatoshis\n if (value) {\n const divisor = prefixMatches[3]\n millisatoshis = hrpToMillisat(value + divisor, true)\n sections.push({\n name: 'amount',\n letters: prefixMatches[2] + prefixMatches[3],\n value: millisatoshis\n })\n } else {\n millisatoshis = null\n }\n\n // \"1\" separator\n sections.push({\n name: 'separator',\n letters: '1'\n })\n\n // timestamp\n const timestamp = wordsToIntBE(words.slice(0, 7))\n words = words.slice(7) // trim off the left 7 words\n sections.push({\n name: 'timestamp',\n letters: letters.slice(0, 7),\n value: timestamp\n })\n letters = letters.slice(7)\n\n let tagName, parser, tagLength, tagWords\n // we have no tag count to go on, so just keep hacking off words\n // until we have none.\n while (words.length > 0) {\n const tagCode = words[0].toString()\n tagName = TAGNAMES[tagCode] || 'unknown_tag'\n parser = TAGPARSERS[tagCode] || getUnknownParser(tagCode)\n words = words.slice(1)\n\n tagLength = wordsToIntBE(words.slice(0, 2))\n words = words.slice(2)\n\n tagWords = words.slice(0, tagLength)\n words = words.slice(tagLength)\n\n sections.push({\n name: tagName,\n tag: letters[0],\n letters: letters.slice(0, 1 + 2 + tagLength),\n value: parser(tagWords) // see: parsers for more comments\n })\n letters = letters.slice(1 + 2 + tagLength)\n }\n\n // signature\n sections.push({\n name: 'signature',\n letters: letters.slice(0, 104),\n value: hex.encode(bech32.fromWordsUnsafe(sigWords))\n })\n letters = letters.slice(104)\n\n // checksum\n sections.push({\n name: 'checksum',\n letters: letters\n })\n\n let result = {\n paymentRequest,\n sections,\n\n get expiry() {\n let exp = sections.find(s => s.name === 'expiry')\n if (exp) return getValue('timestamp') + exp.value\n },\n\n get route_hints() {\n return sections.filter(s => s.name === 'route_hint').map(s => s.value)\n }\n }\n\n for (let name in TAGCODES) {\n if (name === 'route_hint') {\n // route hints can be multiple, so this won't work for them\n continue\n }\n\n Object.defineProperty(result, name, {\n get() {\n return getValue(name)\n }\n })\n }\n\n return result\n\n function getValue(name) {\n let section = sections.find(s => s.name === name)\n return section ? section.value : undefined\n }\n}\n\nmodule.exports = {\n decode,\n hrpToMillisat\n}\n"],"names":["bech32","hex","utf8","require$$0","DEFAULTNETWORK","pubKeyHash","scriptHash","validWitnessVersions","TESTNETWORK","SIGNETNETWORK","REGTESTNETWORK","SIMNETWORK","FEATUREBIT_ORDER","DIVISORS","m","BigInt","u","n","p","MAX_MILLISATS","MILLISATS_PER_BTC","TAGCODES","payment_hash","payment_secret","description","payee","description_hash","expiry","min_final_cltv_expiry","fallback_address","route_hint","feature_bits","metadata","TAGNAMES","i","keys","Object","length","currentName","currentCode","toString","TAGPARSERS","words","encode","fromWordsUnsafe","wordsToIntBE","routingInfoParser","routes","pubkey","shortChannelId","feeBaseMSats","feeProportionalMillionths","cltvExpiryDelta","routesBuffer","slice","parseInt","push","short_channel_id","fee_base_msat","fee_proportional_millionths","cltv_expiry_delta","featureBitsParser","bools","reverse","map","word","reduce","finalArr","itemArr","concat","featureBits","forEach","featureName","index","status","extraBits","extra_bits","start_bit","bits","has_required","result","bit","getUnknownParser","tagCode","Number","MAX_SAFE_INTEGER","total","item","Math","pow","hrpToMillisat","hrpString","outputString","divisor","value","match","Error","valueBN","millisatoshisBN","bolt11","decode","paymentRequest","network","toLowerCase","sections","decoded","prefix","letters","sigWords","prefixMatches","name","bech32Prefix","coinNetwork","undefined","Array","isArray","millisatoshis","timestamp","tagName","parser","tagLength","tagWords","tag","exp","find","s","getValue","route_hints","filter","defineProperty","get","section"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ define(["exports","../../../../../@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.amd","../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.amd","../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.amd","../../../../../@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.amd","../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.amd","../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.amd","../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.amd","../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.amd","../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.amd"],(function(e,t,n,r,a,i,o,s,c,d){"use strict";var l=Object.defineProperty,__export=(e,t)=>{for(var n in t)l(e,n,{get:t[n],enumerable:!0})},u=Symbol("verified");function validateEvent(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("object"==typeof n[e])return!1}return!0}var h={};__export(h,{Queue:()=>v,QueueNode:()=>y,binarySearch:()=>binarySearch,insertEventIntoAscendingList:()=>insertEventIntoAscendingList,insertEventIntoDescendingList:()=>insertEventIntoDescendingList,normalizeURL:()=>normalizeURL,utf8Decoder:()=>p,utf8Encoder:()=>f});var p=new TextDecoder("utf-8"),f=new TextEncoder;function normalizeURL(e){-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}function insertEventIntoDescendingList(e,t){const[n,r]=binarySearch(e,(e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at));return r||e.splice(n,0,t),e}function insertEventIntoAscendingList(e,t){const[n,r]=binarySearch(e,(e=>t.id===e.id?0:t.created_at===e.created_at?-1:t.created_at-e.created_at));return r||e.splice(n,0,t),e}function binarySearch(e,t){let n=0,r=e.length-1;for(;n<=r;){const a=Math.floor((n+r)/2),i=t(e[a]);if(0===i)return[a,!0];i<0?r=a-1:n=a+1}return[n,!1]}var y=class{value;next=null;prev=null;constructor(e){this.value=e}},v=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new y(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,e.value}};function serializeEvent(e){if(!validateEvent(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}function getEventHash(e){let t=r.sha256(f.encode(serializeEvent(e)));return n.bytesToHex(t)}var g=new class{generateSecretKey(){return t.schnorr.utils.randomPrivateKey()}getPublicKey(e){return n.bytesToHex(t.schnorr.getPublicKey(e))}finalizeEvent(e,r){const a=e;return a.pubkey=n.bytesToHex(t.schnorr.getPublicKey(r)),a.id=getEventHash(a),a.sig=n.bytesToHex(t.schnorr.sign(getEventHash(a),r)),a[u]=!0,a}verifyEvent(e){if("boolean"==typeof e[u])return e[u];const n=getEventHash(e);if(n!==e.id)return e[u]=!1,!1;try{const r=t.schnorr.verify(e.sig,n,e.pubkey);return e[u]=r,r}catch(t){return e[u]=!1,!1}}},m=g.generateSecretKey,E=g.getPublicKey,w=g.finalizeEvent,b=g.verifyEvent,k={};function isRegularKind(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function isReplaceableKind(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function isEphemeralKind(e){return 2e4<=e&&e<3e4}function isAddressableKind(e){return 3e4<=e&&e<4e4}__export(k,{Application:()=>Oe,BadgeAward:()=>K,BadgeDefinition:()=>Ie,BlockedRelaysList:()=>de,BookmarkList:()=>oe,Bookmarksets:()=>Te,Calendar:()=>qe,CalendarEventRSVP:()=>ze,ChannelCreation:()=>U,ChannelHideMessage:()=>H,ChannelMessage:()=>$,ChannelMetadata:()=>C,ChannelMuteUser:()=>B,ClassifiedListing:()=>$e,ClientAuth:()=>ge,CommunitiesList:()=>se,CommunityDefinition:()=>je,CommunityPostApproval:()=>Z,Contacts:()=>S,CreateOrUpdateProduct:()=>Le,CreateOrUpdateStall:()=>Ae,Curationsets:()=>xe,Date:()=>Be,DirectMessageRelaysList:()=>pe,DraftClassifiedListing:()=>He,DraftLong:()=>Me,Emojisets:()=>Ne,EncryptedDirectMessage:()=>I,EventDeletion:()=>P,FileMetadata:()=>z,FileServerPreference:()=>fe,Followsets:()=>ke,GenericRepost:()=>O,Genericlists:()=>_e,GiftWrap:()=>q,HTTPAuth:()=>be,Handlerinformation:()=>Ve,Handlerrecommendation:()=>De,Highlights:()=>ne,InterestsList:()=>ue,Interestsets:()=>Pe,JobFeedback:()=>Q,JobRequest:()=>G,JobResult:()=>X,Label:()=>J,LightningPubRPC:()=>ve,LiveChatMessage:()=>D,LiveEvent:()=>Ue,LongFormArticle:()=>Ke,Metadata:()=>R,Mutelist:()=>re,NWCWalletInfo:()=>ye,NWCWalletRequest:()=>me,NWCWalletResponse:()=>Ee,NostrConnect:()=>we,OpenTimestamps:()=>W,Pinlist:()=>ae,PrivateDirectMessage:()=>N,ProblemTracker:()=>V,ProfileBadges:()=>Se,PublicChatsList:()=>ce,Reaction:()=>L,RecommendRelay:()=>x,RelayList:()=>ie,Relaysets:()=>Re,Report:()=>j,Reporting:()=>F,Repost:()=>A,Seal:()=>M,SearchRelaysList:()=>le,ShortTextNote:()=>T,Time:()=>We,UserEmojiList:()=>he,UserStatuses:()=>Ce,Zap:()=>te,ZapGoal:()=>Y,ZapRequest:()=>ee,classifyKind:()=>classifyKind,isAddressableKind:()=>isAddressableKind,isEphemeralKind:()=>isEphemeralKind,isKind:()=>isKind,isParameterizedReplaceableKind:()=>_,isRegularKind:()=>isRegularKind,isReplaceableKind:()=>isReplaceableKind});var _=isAddressableKind;function classifyKind(e){return isRegularKind(e)?"regular":isReplaceableKind(e)?"replaceable":isEphemeralKind(e)?"ephemeral":isAddressableKind(e)?"parameterized":"unknown"}function isKind(e,t){const n=t instanceof Array?t:[t];return validateEvent(e)&&n.includes(e.kind)||!1}var R=0,T=1,x=2,S=3,I=4,P=5,A=6,L=7,K=8,M=13,N=14,O=16,U=40,C=41,$=42,H=43,B=44,W=1040,q=1059,z=1063,D=1311,V=1971,j=1984,F=1984,J=1985,Z=4550,G=5999,X=6999,Q=7e3,Y=9041,ee=9734,te=9735,ne=9802,re=1e4,ae=10001,ie=10002,oe=10003,se=10004,ce=10005,de=10006,le=10007,ue=10015,he=10030,pe=10050,fe=10096,ye=13194,ve=21e3,ge=22242,me=23194,Ee=23195,we=24133,be=27235,ke=3e4,_e=30001,Re=30002,Te=30003,xe=30004,Se=30008,Ie=30009,Pe=30015,Ae=30017,Le=30018,Ke=30023,Me=30024,Ne=30030,Oe=30078,Ue=30311,Ce=30315,$e=30402,He=30403,Be=31922,We=31923,qe=31924,ze=31925,De=31989,Ve=31990,je=34550,Fe={};function getHex64(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,a=e.slice(r).indexOf('"')+r+1;return e.slice(a,a+64)}function getInt(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,a=e.slice(r),i=Math.min(a.indexOf(","),a.indexOf("}"));return parseInt(a.slice(0,i),10)}function getSubscriptionId(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,a=e.slice(r+1,80).indexOf('"');if(-1===a)return null;let i=r+1+a;return e.slice(r+1,i)}function matchEventId(e,t){return t===getHex64(e,"id")}function matchEventPubkey(e,t){return t===getHex64(e,"pubkey")}function matchEventKind(e,t){return t===getInt(e,"kind")}__export(Fe,{getHex64:()=>getHex64,getInt:()=>getInt,getSubscriptionId:()=>getSubscriptionId,matchEventId:()=>matchEventId,matchEventKind:()=>matchEventKind,matchEventPubkey:()=>matchEventPubkey});var Je={};function makeAuthEvent(e,t){return{kind:ge,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}__export(Je,{makeAuthEvent:()=>makeAuthEvent});try{WebSocket}catch{}try{WebSocket}catch{}var Ze={};__export(Ze,{BECH32_REGEX:()=>Qe,Bech32MaxSize:()=>Xe,NostrTypeGuard:()=>Ge,decode:()=>decode,decodeNostrURI:()=>decodeNostrURI,encodeBytes:()=>encodeBytes,naddrEncode:()=>naddrEncode,neventEncode:()=>neventEncode,noteEncode:()=>noteEncode,nprofileEncode:()=>nprofileEncode,npubEncode:()=>npubEncode,nsecEncode:()=>nsecEncode});var Ge={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},Xe=5e3,Qe=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function decodeNostrURI(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),decode(e)}catch(e){return{type:"invalid",data:null}}}function decode(e){let{prefix:t,words:r}=a.bech32.decode(e,Xe),i=new Uint8Array(a.bech32.fromWords(r));switch(t){case"nprofile":{let e=parseTLV(i);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:n.bytesToHex(e[0][0]),relays:e[1]?e[1].map((e=>p.decode(e))):[]}}}case"nevent":{let e=parseTLV(i);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:n.bytesToHex(e[0][0]),relays:e[1]?e[1].map((e=>p.decode(e))):[],author:e[2]?.[0]?n.bytesToHex(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(n.bytesToHex(e[3][0]),16):void 0}}}case"naddr":{let e=parseTLV(i);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:p.decode(e[0][0]),pubkey:n.bytesToHex(e[2][0]),kind:parseInt(n.bytesToHex(e[3][0]),16),relays:e[1]?e[1].map((e=>p.decode(e))):[]}}}case"nsec":return{type:t,data:i};case"npub":case"note":return{type:t,data:n.bytesToHex(i)};default:throw new Error(`unknown prefix ${t}`)}}function parseTLV(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],a=n.slice(2,2+r);if(n=n.slice(2+r),a.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(a)}return t}function nsecEncode(e){return encodeBytes("nsec",e)}function npubEncode(e){return encodeBytes("npub",n.hexToBytes(e))}function noteEncode(e){return encodeBytes("note",n.hexToBytes(e))}function encodeBech32(e,t){let n=a.bech32.toWords(t);return a.bech32.encode(e,n,Xe)}function encodeBytes(e,t){return encodeBech32(e,t)}function nprofileEncode(e){return encodeBech32("nprofile",encodeTLV({0:[n.hexToBytes(e.pubkey)],1:(e.relays||[]).map((e=>f.encode(e)))}))}function neventEncode(e){let t;return void 0!==e.kind&&(t=function integerToUint8Array(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t}(e.kind)),encodeBech32("nevent",encodeTLV({0:[n.hexToBytes(e.id)],1:(e.relays||[]).map((e=>f.encode(e))),2:e.author?[n.hexToBytes(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function naddrEncode(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),encodeBech32("naddr",encodeTLV({0:[f.encode(e.identifier)],1:(e.relays||[]).map((e=>f.encode(e))),2:[n.hexToBytes(e.pubkey)],3:[new Uint8Array(t)]}))}function encodeTLV(e){let t=[];return Object.entries(e).reverse().forEach((([e,n])=>{n.forEach((n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(e)],0),r.set([n.length],1),r.set(n,2),t.push(r)}))})),n.concatBytes(...t)}var Ye={};async function encrypt(e,r,o){const s=e instanceof Uint8Array?n.bytesToHex(e):e,c=getNormalizedX(t.secp256k1.getSharedSecret(s,"02"+r));let d=Uint8Array.from(n.randomBytes(16)),l=f.encode(o),u=i.cbc(c,d).encrypt(l);return`${a.base64.encode(new Uint8Array(u))}?iv=${a.base64.encode(new Uint8Array(d.buffer))}`}async function decrypt(e,r,o){const s=e instanceof Uint8Array?n.bytesToHex(e):e;let[c,d]=o.split("?iv="),l=getNormalizedX(t.secp256k1.getSharedSecret(s,"02"+r)),u=a.base64.decode(d),h=a.base64.decode(c),f=i.cbc(l,u).decrypt(h);return p.decode(f)}function getNormalizedX(e){return e.slice(1,33)}__export(Ye,{decrypt:()=>decrypt,encrypt:()=>encrypt});var et={};__export(et,{NIP05_REGEX:()=>nt,isNip05:()=>isNip05,isValid:()=>isValid,queryProfile:()=>queryProfile,searchDomain:()=>searchDomain,useFetchImplementation:()=>useFetchImplementation});var tt,nt=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,isNip05=e=>nt.test(e||"");try{tt=fetch}catch(e){}function useFetchImplementation(e){tt=e}async function searchDomain(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await tt(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(e){return{}}}async function queryProfile(e){const t=e.match(nt);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await tt(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const a=await t.json(),i=a.names[n];return i?{pubkey:i,relays:a.relays?.[i]}:null}catch(e){return null}}async function isValid(e,t){const n=await queryProfile(t);return!!n&&n.pubkey===e}var rt={};function parse(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let a=e.tags.length-1;a>=0;a--){const i=e.tags[a];if("e"===i[0]&&i[1]){const[e,a,o,s,c]=i,d={id:a,relays:o?[o]:[],author:c};if("root"===s){t.root=d;continue}if("reply"===s){t.reply=d;continue}if("mention"===s){t.mentions.push(d);continue}n?r=d:n=d,t.mentions.push(d)}else{if("q"===i[0]&&i[1]){const[e,n,r]=i;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===i[0]&&i[1]&&t.profiles.push({pubkey:i[1],relays:i[2]?[i[2]]:[]})}}return t.root||(t.root=r||n||t.reply),t.reply||(t.reply=n||t.root),[t.reply,t.root].forEach((e=>{if(!e)return;let n=t.mentions.indexOf(e);if(-1!==n&&t.mentions.splice(n,1),e.author){let n=t.profiles.find((t=>t.pubkey===e.author));n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach((t=>{-1===e.relays?.indexOf(t)&&e.relays.push(t)})),n.relays=e.relays)}})),t.mentions.forEach((e=>{if(e.author){let n=t.profiles.find((t=>t.pubkey===e.author));n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach((t=>{-1===e.relays.indexOf(t)&&e.relays.push(t)})),n.relays=e.relays)}})),t}__export(rt,{parse:()=>parse});var at={};__export(at,{fetchRelayInformation:()=>fetchRelayInformation,useFetchImplementation:()=>useFetchImplementation2});try{fetch}catch{}function useFetchImplementation2(e){0}async function fetchRelayInformation(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}var it={};function getPow(e){let t=0;for(let n=0;n<64;n+=8){const r=parseInt(e.substring(n,n+8),16);if(0!==r){t+=Math.clz32(r);break}t+=32}return t}function minePow(e,t){let n=0;const r=e,a=["nonce",n.toString(),t.toString()];for(r.tags.push(a);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),a[1]=(++n).toString(),r.id=fastEventHash(r),getPow(r.id)>=t)break}return r}function fastEventHash(e){return n.bytesToHex(r.sha256(f.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}__export(it,{fastEventHash:()=>fastEventHash,getPow:()=>getPow,minePow:()=>minePow});var ot={};__export(ot,{unwrapEvent:()=>ht,unwrapManyEvents:()=>pt,wrapEvent:()=>wrapEvent2,wrapManyEvents:()=>wrapManyEvents2});var st={};__export(st,{createRumor:()=>createRumor,createSeal:()=>createSeal,createWrap:()=>createWrap,unwrapEvent:()=>unwrapEvent,unwrapManyEvents:()=>unwrapManyEvents,wrapEvent:()=>wrapEvent,wrapManyEvents:()=>wrapManyEvents});var ct={};__export(ct,{decrypt:()=>decrypt2,encrypt:()=>encrypt2,getConversationKey:()=>getConversationKey,v2:()=>ut});var dt=1,lt=65535;function getConversationKey(e,n){const a=t.secp256k1.getSharedSecret(e,"02"+n).subarray(1,33);return c.extract(r.sha256,a,"nip44-v2")}function getMessageKeys(e,t){const n=c.expand(r.sha256,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function calcPaddedLen(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;const t=1<<Math.floor(Math.log2(e-1))+1,n=t<=256?32:t/8;return n*(Math.floor((e-1)/n)+1)}function pad(e){const t=f.encode(e),r=t.length,a=function writeU16BE(e){if(!Number.isSafeInteger(e)||e<dt||e>lt)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}(r),i=new Uint8Array(calcPaddedLen(r)-r);return n.concatBytes(a,t,i)}function hmacAad(e,t,a){if(32!==a.length)throw new Error("AAD associated data must be 32 bytes");const i=n.concatBytes(a,t);return d.hmac(r.sha256,e,i)}function encrypt2(e,t,r=n.randomBytes(32)){const{chacha_key:i,chacha_nonce:s,hmac_key:c}=getMessageKeys(t,r),d=pad(e),l=o.chacha20(i,s,d),u=hmacAad(c,l,r);return a.base64.encode(n.concatBytes(new Uint8Array([2]),r,l,u))}function decrypt2(e,t){const{nonce:n,ciphertext:r,mac:i}=function decodePayload(e){if("string"!=typeof e)throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if("#"===e[0])throw new Error("unknown encryption version");let n;try{n=a.base64.decode(e)}catch(e){throw new Error("invalid base64: "+e.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const i=n[0];if(2!==i)throw new Error("unknown encryption version "+i);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:c,chacha_nonce:d,hmac_key:l}=getMessageKeys(t,n),u=hmacAad(l,r,n);if(!s.equalBytes(u,i))throw new Error("invalid MAC");return function unpad(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t<dt||t>lt||n.length!==t||e.length!==2+calcPaddedLen(t))throw new Error("invalid padding");return p.decode(n)}(o.chacha20(c,d,r))}var ut={utils:{getConversationKey:getConversationKey,calcPaddedLen:calcPaddedLen},encrypt:encrypt2,decrypt:decrypt2},now=()=>Math.round(Date.now()/1e3),randomNow=()=>Math.round(now()-172800*Math.random()),nip44ConversationKey=(e,t)=>getConversationKey(e,t),nip44Encrypt=(e,t,n)=>encrypt2(JSON.stringify(e),nip44ConversationKey(t,n)),nip44Decrypt=(e,t)=>JSON.parse(decrypt2(e.content,nip44ConversationKey(t,e.pubkey)));function createRumor(e,t){const n={created_at:now(),content:"",tags:[],...e,pubkey:E(t)};return n.id=getEventHash(n),n}function createSeal(e,t,n){return w({kind:M,content:nip44Encrypt(e,t,n),created_at:randomNow(),tags:[]},t)}function createWrap(e,t){const n=m();return w({kind:q,content:nip44Encrypt(e,n,t),created_at:randomNow(),tags:[["p",t]]},n)}function wrapEvent(e,t,n){return createWrap(createSeal(createRumor(e,t),t,n),n)}function wrapManyEvents(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=E(t),a=[wrapEvent(e,t,r)];return n.forEach((n=>{a.push(wrapEvent(e,t,n))})),a}function unwrapEvent(e,t){const n=nip44Decrypt(e,t);return nip44Decrypt(n,t)}function unwrapManyEvents(e,t){let n=[];return e.forEach((e=>{n.push(unwrapEvent(e,t))})),n.sort(((e,t)=>e.created_at-t.created_at)),n}function wrapEvent2(e,t,n,r,a){const i=function createEvent(e,t,n,r){const a={created_at:Math.ceil(Date.now()/1e3),kind:N,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach((({publicKey:e,relayUrl:t})=>{a.tags.push(t?["p",e,t]:["p",e])})),r&&a.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&a.tags.push(["subject",n]),a}(t,n,r,a);return wrapEvent(i,e,t.publicKey)}function wrapManyEvents2(e,t,n,r,a){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:E(e)},...t].map((t=>wrapEvent2(e,t,n,r,a)))}var ht=unwrapEvent,pt=unwrapManyEvents,ft={};function finishRepostEvent(e,t,n,r){let a;const i=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===T?a=A:(a=O,i.push(["k",String(t.kind)])),w({kind:a,tags:i,content:""===e.content||t.tags?.find((e=>"-"===e[0]))?"":JSON.stringify(t),created_at:e.created_at},r)}function getRepostedEventPointer(e){if(![A,O].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const a=e.tags[r];a.length>=2&&("e"===a[0]&&void 0===t?t=a:"p"===a[0]&&void 0===n&&(n=a))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter((e=>"string"==typeof e)),author:n?.[1]}:void 0}function getRepostedEvent(e,{skipVerification:t}={}){const n=getRepostedEventPointer(e);if(void 0===n||""===e.content)return;let r;try{r=JSON.parse(e.content)}catch(e){return}return r.id===n.id&&(t||b(r))?r:void 0}__export(ft,{finishRepostEvent:()=>finishRepostEvent,getRepostedEvent:()=>getRepostedEvent,getRepostedEventPointer:()=>getRepostedEventPointer});var yt={};__export(yt,{NOSTR_URI_REGEX:()=>vt,parse:()=>parse2,test:()=>test});var vt=new RegExp(`nostr:(${Qe.source})`);function test(e){return"string"==typeof e&&new RegExp(`^${vt.source}$`).test(e)}function parse2(e){const t=e.match(new RegExp(`^${vt.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:decode(t[1])}}var gt={};function finishReactionEvent(e,t,n){const r=t.tags.filter((e=>e.length>=2&&("e"===e[0]||"p"===e[0])));return w({...e,kind:L,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function getReactedEventPointer(e){if(e.kind!==L)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const a=e.tags[r];a.length>=2&&("e"===a[0]&&void 0===t?t=a:"p"===a[0]&&void 0===n&&(n=a))}return void 0!==t&&void 0!==n?{id:t[1],relays:[t[2],n[2]].filter((e=>void 0!==e)),author:n[1]}:void 0}__export(gt,{finishReactionEvent:()=>finishReactionEvent,getReactedEventPointer:()=>getReactedEventPointer});var mt={};__export(mt,{parse:()=>parse3});var Et=/\W/m,wt=/\W |\W$|$|,| /m;function*parse3(e){const t=e.length;let n=0,r=0;for(;r<t;){let a=e.indexOf(":",r);if(-1===a)break;if("nostr"===e.substring(a-5,a)){const i=e.substring(a+60).match(Et),o=i?a+60+i.index:t;try{let t,{data:i,type:s}=decode(e.substring(a+1,o));switch(s){case"npub":t={pubkey:i};break;case"nsec":case"note":r=o+1;continue;default:t=i}n!==a-5&&(yield{type:"text",text:e.substring(n,a-5)}),yield{type:"reference",pointer:t},r=o,n=r;continue}catch(e){r=a+1;continue}}else if("https"===e.substring(a-5,a)||"http"===e.substring(a-4,a)){const i=e.substring(a+4).match(wt),o=i?a+4+i.index:t,s="s"===e[a-1]?5:4;try{let t=new URL(e.substring(a-s,o));if(-1===t.hostname.indexOf("."))throw new Error("invalid url");if(n!==a-s&&(yield{type:"text",text:e.substring(n,a-s)}),t.pathname.endsWith(".png")||t.pathname.endsWith(".jpg")||t.pathname.endsWith(".jpeg")||t.pathname.endsWith(".gif")||t.pathname.endsWith(".webp")){yield{type:"image",url:t.toString()},r=o,n=r;continue}if(t.pathname.endsWith(".mp4")||t.pathname.endsWith(".avi")||t.pathname.endsWith(".webm")||t.pathname.endsWith(".mkv")){yield{type:"video",url:t.toString()},r=o,n=r;continue}if(t.pathname.endsWith(".mp3")||t.pathname.endsWith(".aac")||t.pathname.endsWith(".ogg")||t.pathname.endsWith(".opus")){yield{type:"audio",url:t.toString()},r=o,n=r;continue}yield{type:"url",url:t.toString()},r=o,n=r;continue}catch(e){r=o+1;continue}}else{if("wss"!==e.substring(a-3,a)&&"ws"!==e.substring(a-2,a)){r=a+1;continue}{const i=e.substring(a+4).match(wt),o=i?a+4+i.index:t,s="s"===e[a-1]?3:2;try{let t=new URL(e.substring(a-s,o));if(-1===t.hostname.indexOf("."))throw new Error("invalid ws url");n!==a-s&&(yield{type:"text",text:e.substring(n,a-s)}),yield{type:"relay",url:t.toString()},r=o,n=r;continue}catch(e){r=o+1;continue}}}}n!==t&&(yield{type:"text",text:e.substring(n)})}var bt={};__export(bt,{channelCreateEvent:()=>channelCreateEvent,channelHideMessageEvent:()=>channelHideMessageEvent,channelMessageEvent:()=>channelMessageEvent,channelMetadataEvent:()=>channelMetadataEvent,channelMuteUserEvent:()=>channelMuteUserEvent});var channelCreateEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return w({kind:U,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},channelMetadataEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return w({kind:C,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},channelMessageEvent=(e,t)=>{const n=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&n.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),w({kind:$,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},channelHideMessageEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return w({kind:H,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},channelMuteUserEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return w({kind:B,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)},kt={};__export(kt,{EMOJI_SHORTCODE_REGEX:()=>_t,matchAll:()=>matchAll,regex:()=>regex,replaceAll:()=>replaceAll});var _t=/:(\w+):/,regex=()=>new RegExp(`\\B${_t.source}\\B`,"g");function*matchAll(e){const t=e.matchAll(regex());for(const e of t)try{const[t,n]=e;yield{shortcode:t,name:n,start:e.index,end:e.index+t.length}}catch(e){}}function replaceAll(e,t){return e.replaceAll(regex(),((e,n)=>t({shortcode:e,name:n})))}var Rt,Tt={};__export(Tt,{useFetchImplementation:()=>useFetchImplementation3,validateGithub:()=>validateGithub});try{Rt=fetch}catch{}function useFetchImplementation3(e){Rt=e}async function validateGithub(e,t,n){try{return await(await Rt(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(e){return!1}}var xt={};function parseConnectionString(e){const{pathname:t,searchParams:n}=new URL(e),r=t,a=n.get("relay"),i=n.get("secret");if(!r||!a||!i)throw new Error("invalid connection string");return{pubkey:r,relay:a,secret:i}}async function makeNwcRequestEvent(e,t,n){const r={method:"pay_invoice",params:{invoice:n}},a=await encrypt(t,e,JSON.stringify(r)),i={kind:me,created_at:Math.round(Date.now()/1e3),content:a,tags:[["p",e]]};return w(i,t)}__export(xt,{makeNwcRequestEvent:()=>makeNwcRequestEvent,parseConnectionString:()=>parseConnectionString});var St={};function normalizeIdentifier(e){return e=(e=e.trim().toLowerCase()).normalize("NFKC"),Array.from(e).map((e=>/\p{Letter}/u.test(e)||/\p{Number}/u.test(e)?e:"-")).join("")}__export(St,{normalizeIdentifier:()=>normalizeIdentifier});var It,Pt={};__export(Pt,{getZapEndpoint:()=>getZapEndpoint,makeZapReceipt:()=>makeZapReceipt,makeZapRequest:()=>makeZapRequest,useFetchImplementation:()=>useFetchImplementation4,validateZapRequest:()=>validateZapRequest});try{It=fetch}catch{}function useFetchImplementation4(e){It=e}async function getZapEndpoint(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(n){let{words:e}=a.bech32.decode(n,1e3),r=a.bech32.fromWords(e);t=p.decode(r)}else{if(!r)return null;{let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}}let i=await It(t),o=await i.json();if(o.allowsNostr&&o.nostrPubkey)return o.callback}catch(e){}return null}function makeZapRequest({profile:e,event:t,amount:n,relays:r,comment:a=""}){if(!n)throw new Error("amount not given");if(!e)throw new Error("profile not given");let i={kind:9734,created_at:Math.round(Date.now()/1e3),content:a,tags:[["p",e],["amount",n.toString()],["relays",...r]]};if(t&&"string"==typeof t&&i.tags.push(["e",t]),t&&"object"==typeof t)if(isReplaceableKind(t.kind)){const e=["a",`${t.kind}:${t.pubkey}:`];i.tags.push(e)}else if(isAddressableKind(t.kind)){let e=t.tags.find((([e,t])=>"d"===e&&t));if(!e)throw new Error("d tag not found or is empty");const n=["a",`${t.kind}:${t.pubkey}:${e[1]}`];i.tags.push(n)}return i}function validateZapRequest(e){let t;try{t=JSON.parse(e)}catch(e){return"Invalid zap request JSON."}if(!validateEvent(t))return"Zap request is not a valid Nostr event.";if(!b(t))return"Invalid signature on zap request.";let n=t.tags.find((([e,t])=>"p"===e&&t));if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=t.tags.find((([e,t])=>"e"===e&&t));return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find((([e,t])=>"relays"===e&&t))?null:"Zap request doesn't have a 'relays' tag."}function makeZapReceipt({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let a=JSON.parse(e),i=a.tags.filter((([e])=>"e"===e||"p"===e||"a"===e)),o={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...i,["P",a.pubkey],["bolt11",n],["description",e]]};return t&&o.tags.push(["preimage",t]),o}var At={};__export(At,{getToken:()=>getToken,hashPayload:()=>hashPayload,unpackEventFromToken:()=>unpackEventFromToken,validateEvent:()=>validateEvent2,validateEventKind:()=>validateEventKind,validateEventMethodTag:()=>validateEventMethodTag,validateEventPayloadTag:()=>validateEventPayloadTag,validateEventTimestamp:()=>validateEventTimestamp,validateEventUrlTag:()=>validateEventUrlTag,validateToken:()=>validateToken});var Lt="Nostr ";async function getToken(e,t,n,r=!1,i){const o={kind:be,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};i&&o.tags.push(["payload",hashPayload(i)]);const s=await n(o);return(r?Lt:"")+a.base64.encode(f.encode(JSON.stringify(s)))}async function validateToken(e,t,n){const r=await unpackEventFromToken(e).catch((e=>{throw e}));return await validateEvent2(r,t,n).catch((e=>{throw e}))}async function unpackEventFromToken(e){if(!e)throw new Error("Missing token");e=e.replace(Lt,"");const t=p.decode(a.base64.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function validateEventTimestamp(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function validateEventKind(e){return e.kind===be}function validateEventUrlTag(e,t){const n=e.tags.find((e=>"u"===e[0]));return!!n&&(n.length>0&&n[1]===t)}function validateEventMethodTag(e,t){const n=e.tags.find((e=>"method"===e[0]));return!!n&&(n.length>0&&n[1].toLowerCase()===t.toLowerCase())}function hashPayload(e){const t=r.sha256(f.encode(JSON.stringify(e)));return n.bytesToHex(t)}function validateEventPayloadTag(e,t){const n=e.tags.find((e=>"payload"===e[0]));if(!n)return!1;const r=hashPayload(t);return n.length>0&&n[1]===r}async function validateEvent2(e,t,n,r){if(!b(e))throw new Error("Invalid nostr event, signature invalid");if(!validateEventKind(e))throw new Error("Invalid nostr event, kind invalid");if(!validateEventTimestamp(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!validateEventUrlTag(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!validateEventMethodTag(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!validateEventPayloadTag(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}e.finalizeEvent=w,e.fj=Fe,e.generateSecretKey=m,e.getEventHash=getEventHash,e.getPublicKey=E,e.kinds=k,e.nip04=Ye,e.nip05=et,e.nip10=rt,e.nip11=at,e.nip13=it,e.nip17=ot,e.nip18=ft,e.nip19=Ze,e.nip21=yt,e.nip25=gt,e.nip27=mt,e.nip28=bt,e.nip30=kt,e.nip39=Tt,e.nip42=Je,e.nip44=ct,e.nip47=xt,e.nip54=St,e.nip57=Pt,e.nip59=st,e.nip98=At,e.serializeEvent=serializeEvent,e.utils=h,e.validateEvent=validateEvent,e.verifiedSymbol=u,e.verifyEvent=b}));
2
+ //# sourceMappingURL=index.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.amd.js","sources":["../../../../../../../../../../../node_modules/.pnpm/nostr-tools@2.11.0_typescript@5.8.3/node_modules/nostr-tools/lib/esm/index.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// pure.ts\nimport { schnorr } from \"@noble/curves/secp256k1\";\nimport { bytesToHex } from \"@noble/hashes/utils\";\n\n// core.ts\nvar verifiedSymbol = Symbol(\"verified\");\nvar isRecord = (obj) => obj instanceof Object;\nfunction validateEvent(event) {\n if (!isRecord(event))\n return false;\n if (typeof event.kind !== \"number\")\n return false;\n if (typeof event.content !== \"string\")\n return false;\n if (typeof event.created_at !== \"number\")\n return false;\n if (typeof event.pubkey !== \"string\")\n return false;\n if (!event.pubkey.match(/^[a-f0-9]{64}$/))\n return false;\n if (!Array.isArray(event.tags))\n return false;\n for (let i2 = 0; i2 < event.tags.length; i2++) {\n let tag = event.tags[i2];\n if (!Array.isArray(tag))\n return false;\n for (let j = 0; j < tag.length; j++) {\n if (typeof tag[j] === \"object\")\n return false;\n }\n }\n return true;\n}\nfunction sortEvents(events) {\n return events.sort((a, b) => {\n if (a.created_at !== b.created_at) {\n return b.created_at - a.created_at;\n }\n return a.id.localeCompare(b.id);\n });\n}\n\n// pure.ts\nimport { sha256 } from \"@noble/hashes/sha256\";\n\n// utils.ts\nvar utils_exports = {};\n__export(utils_exports, {\n Queue: () => Queue,\n QueueNode: () => QueueNode,\n binarySearch: () => binarySearch,\n insertEventIntoAscendingList: () => insertEventIntoAscendingList,\n insertEventIntoDescendingList: () => insertEventIntoDescendingList,\n normalizeURL: () => normalizeURL,\n utf8Decoder: () => utf8Decoder,\n utf8Encoder: () => utf8Encoder\n});\nvar utf8Decoder = new TextDecoder(\"utf-8\");\nvar utf8Encoder = new TextEncoder();\nfunction normalizeURL(url) {\n if (url.indexOf(\"://\") === -1)\n url = \"wss://\" + url;\n let p = new URL(url);\n p.pathname = p.pathname.replace(/\\/+/g, \"/\");\n if (p.pathname.endsWith(\"/\"))\n p.pathname = p.pathname.slice(0, -1);\n if (p.port === \"80\" && p.protocol === \"ws:\" || p.port === \"443\" && p.protocol === \"wss:\")\n p.port = \"\";\n p.searchParams.sort();\n p.hash = \"\";\n return p.toString();\n}\nfunction insertEventIntoDescendingList(sortedArray, event) {\n const [idx, found] = binarySearch(sortedArray, (b) => {\n if (event.id === b.id)\n return 0;\n if (event.created_at === b.created_at)\n return -1;\n return b.created_at - event.created_at;\n });\n if (!found) {\n sortedArray.splice(idx, 0, event);\n }\n return sortedArray;\n}\nfunction insertEventIntoAscendingList(sortedArray, event) {\n const [idx, found] = binarySearch(sortedArray, (b) => {\n if (event.id === b.id)\n return 0;\n if (event.created_at === b.created_at)\n return -1;\n return event.created_at - b.created_at;\n });\n if (!found) {\n sortedArray.splice(idx, 0, event);\n }\n return sortedArray;\n}\nfunction binarySearch(arr, compare) {\n let start = 0;\n let end = arr.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n const cmp = compare(arr[mid]);\n if (cmp === 0) {\n return [mid, true];\n }\n if (cmp < 0) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n return [start, false];\n}\nvar QueueNode = class {\n value;\n next = null;\n prev = null;\n constructor(message) {\n this.value = message;\n }\n};\nvar Queue = class {\n first;\n last;\n constructor() {\n this.first = null;\n this.last = null;\n }\n enqueue(value) {\n const newNode = new QueueNode(value);\n if (!this.last) {\n this.first = newNode;\n this.last = newNode;\n } else if (this.last === this.first) {\n this.last = newNode;\n this.last.prev = this.first;\n this.first.next = newNode;\n } else {\n newNode.prev = this.last;\n this.last.next = newNode;\n this.last = newNode;\n }\n return true;\n }\n dequeue() {\n if (!this.first)\n return null;\n if (this.first === this.last) {\n const target2 = this.first;\n this.first = null;\n this.last = null;\n return target2.value;\n }\n const target = this.first;\n this.first = target.next;\n return target.value;\n }\n};\n\n// pure.ts\nvar JS = class {\n generateSecretKey() {\n return schnorr.utils.randomPrivateKey();\n }\n getPublicKey(secretKey) {\n return bytesToHex(schnorr.getPublicKey(secretKey));\n }\n finalizeEvent(t, secretKey) {\n const event = t;\n event.pubkey = bytesToHex(schnorr.getPublicKey(secretKey));\n event.id = getEventHash(event);\n event.sig = bytesToHex(schnorr.sign(getEventHash(event), secretKey));\n event[verifiedSymbol] = true;\n return event;\n }\n verifyEvent(event) {\n if (typeof event[verifiedSymbol] === \"boolean\")\n return event[verifiedSymbol];\n const hash = getEventHash(event);\n if (hash !== event.id) {\n event[verifiedSymbol] = false;\n return false;\n }\n try {\n const valid = schnorr.verify(event.sig, hash, event.pubkey);\n event[verifiedSymbol] = valid;\n return valid;\n } catch (err) {\n event[verifiedSymbol] = false;\n return false;\n }\n }\n};\nfunction serializeEvent(evt) {\n if (!validateEvent(evt))\n throw new Error(\"can't serialize event with wrong or missing properties\");\n return JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content]);\n}\nfunction getEventHash(event) {\n let eventHash = sha256(utf8Encoder.encode(serializeEvent(event)));\n return bytesToHex(eventHash);\n}\nvar i = new JS();\nvar generateSecretKey = i.generateSecretKey;\nvar getPublicKey = i.getPublicKey;\nvar finalizeEvent = i.finalizeEvent;\nvar verifyEvent = i.verifyEvent;\n\n// kinds.ts\nvar kinds_exports = {};\n__export(kinds_exports, {\n Application: () => Application,\n BadgeAward: () => BadgeAward,\n BadgeDefinition: () => BadgeDefinition,\n BlockedRelaysList: () => BlockedRelaysList,\n BookmarkList: () => BookmarkList,\n Bookmarksets: () => Bookmarksets,\n Calendar: () => Calendar,\n CalendarEventRSVP: () => CalendarEventRSVP,\n ChannelCreation: () => ChannelCreation,\n ChannelHideMessage: () => ChannelHideMessage,\n ChannelMessage: () => ChannelMessage,\n ChannelMetadata: () => ChannelMetadata,\n ChannelMuteUser: () => ChannelMuteUser,\n ClassifiedListing: () => ClassifiedListing,\n ClientAuth: () => ClientAuth,\n CommunitiesList: () => CommunitiesList,\n CommunityDefinition: () => CommunityDefinition,\n CommunityPostApproval: () => CommunityPostApproval,\n Contacts: () => Contacts,\n CreateOrUpdateProduct: () => CreateOrUpdateProduct,\n CreateOrUpdateStall: () => CreateOrUpdateStall,\n Curationsets: () => Curationsets,\n Date: () => Date2,\n DirectMessageRelaysList: () => DirectMessageRelaysList,\n DraftClassifiedListing: () => DraftClassifiedListing,\n DraftLong: () => DraftLong,\n Emojisets: () => Emojisets,\n EncryptedDirectMessage: () => EncryptedDirectMessage,\n EventDeletion: () => EventDeletion,\n FileMetadata: () => FileMetadata,\n FileServerPreference: () => FileServerPreference,\n Followsets: () => Followsets,\n GenericRepost: () => GenericRepost,\n Genericlists: () => Genericlists,\n GiftWrap: () => GiftWrap,\n HTTPAuth: () => HTTPAuth,\n Handlerinformation: () => Handlerinformation,\n Handlerrecommendation: () => Handlerrecommendation,\n Highlights: () => Highlights,\n InterestsList: () => InterestsList,\n Interestsets: () => Interestsets,\n JobFeedback: () => JobFeedback,\n JobRequest: () => JobRequest,\n JobResult: () => JobResult,\n Label: () => Label,\n LightningPubRPC: () => LightningPubRPC,\n LiveChatMessage: () => LiveChatMessage,\n LiveEvent: () => LiveEvent,\n LongFormArticle: () => LongFormArticle,\n Metadata: () => Metadata,\n Mutelist: () => Mutelist,\n NWCWalletInfo: () => NWCWalletInfo,\n NWCWalletRequest: () => NWCWalletRequest,\n NWCWalletResponse: () => NWCWalletResponse,\n NostrConnect: () => NostrConnect,\n OpenTimestamps: () => OpenTimestamps,\n Pinlist: () => Pinlist,\n PrivateDirectMessage: () => PrivateDirectMessage,\n ProblemTracker: () => ProblemTracker,\n ProfileBadges: () => ProfileBadges,\n PublicChatsList: () => PublicChatsList,\n Reaction: () => Reaction,\n RecommendRelay: () => RecommendRelay,\n RelayList: () => RelayList,\n Relaysets: () => Relaysets,\n Report: () => Report,\n Reporting: () => Reporting,\n Repost: () => Repost,\n Seal: () => Seal,\n SearchRelaysList: () => SearchRelaysList,\n ShortTextNote: () => ShortTextNote,\n Time: () => Time,\n UserEmojiList: () => UserEmojiList,\n UserStatuses: () => UserStatuses,\n Zap: () => Zap,\n ZapGoal: () => ZapGoal,\n ZapRequest: () => ZapRequest,\n classifyKind: () => classifyKind,\n isAddressableKind: () => isAddressableKind,\n isEphemeralKind: () => isEphemeralKind,\n isKind: () => isKind,\n isParameterizedReplaceableKind: () => isParameterizedReplaceableKind,\n isRegularKind: () => isRegularKind,\n isReplaceableKind: () => isReplaceableKind\n});\nfunction isRegularKind(kind) {\n return 1e3 <= kind && kind < 1e4 || [1, 2, 4, 5, 6, 7, 8, 16, 40, 41, 42, 43, 44].includes(kind);\n}\nfunction isReplaceableKind(kind) {\n return [0, 3].includes(kind) || 1e4 <= kind && kind < 2e4;\n}\nfunction isEphemeralKind(kind) {\n return 2e4 <= kind && kind < 3e4;\n}\nfunction isAddressableKind(kind) {\n return 3e4 <= kind && kind < 4e4;\n}\nvar isParameterizedReplaceableKind = isAddressableKind;\nfunction classifyKind(kind) {\n if (isRegularKind(kind))\n return \"regular\";\n if (isReplaceableKind(kind))\n return \"replaceable\";\n if (isEphemeralKind(kind))\n return \"ephemeral\";\n if (isAddressableKind(kind))\n return \"parameterized\";\n return \"unknown\";\n}\nfunction isKind(event, kind) {\n const kindAsArray = kind instanceof Array ? kind : [kind];\n return validateEvent(event) && kindAsArray.includes(event.kind) || false;\n}\nvar Metadata = 0;\nvar ShortTextNote = 1;\nvar RecommendRelay = 2;\nvar Contacts = 3;\nvar EncryptedDirectMessage = 4;\nvar EventDeletion = 5;\nvar Repost = 6;\nvar Reaction = 7;\nvar BadgeAward = 8;\nvar Seal = 13;\nvar PrivateDirectMessage = 14;\nvar GenericRepost = 16;\nvar ChannelCreation = 40;\nvar ChannelMetadata = 41;\nvar ChannelMessage = 42;\nvar ChannelHideMessage = 43;\nvar ChannelMuteUser = 44;\nvar OpenTimestamps = 1040;\nvar GiftWrap = 1059;\nvar FileMetadata = 1063;\nvar LiveChatMessage = 1311;\nvar ProblemTracker = 1971;\nvar Report = 1984;\nvar Reporting = 1984;\nvar Label = 1985;\nvar CommunityPostApproval = 4550;\nvar JobRequest = 5999;\nvar JobResult = 6999;\nvar JobFeedback = 7e3;\nvar ZapGoal = 9041;\nvar ZapRequest = 9734;\nvar Zap = 9735;\nvar Highlights = 9802;\nvar Mutelist = 1e4;\nvar Pinlist = 10001;\nvar RelayList = 10002;\nvar BookmarkList = 10003;\nvar CommunitiesList = 10004;\nvar PublicChatsList = 10005;\nvar BlockedRelaysList = 10006;\nvar SearchRelaysList = 10007;\nvar InterestsList = 10015;\nvar UserEmojiList = 10030;\nvar DirectMessageRelaysList = 10050;\nvar FileServerPreference = 10096;\nvar NWCWalletInfo = 13194;\nvar LightningPubRPC = 21e3;\nvar ClientAuth = 22242;\nvar NWCWalletRequest = 23194;\nvar NWCWalletResponse = 23195;\nvar NostrConnect = 24133;\nvar HTTPAuth = 27235;\nvar Followsets = 3e4;\nvar Genericlists = 30001;\nvar Relaysets = 30002;\nvar Bookmarksets = 30003;\nvar Curationsets = 30004;\nvar ProfileBadges = 30008;\nvar BadgeDefinition = 30009;\nvar Interestsets = 30015;\nvar CreateOrUpdateStall = 30017;\nvar CreateOrUpdateProduct = 30018;\nvar LongFormArticle = 30023;\nvar DraftLong = 30024;\nvar Emojisets = 30030;\nvar Application = 30078;\nvar LiveEvent = 30311;\nvar UserStatuses = 30315;\nvar ClassifiedListing = 30402;\nvar DraftClassifiedListing = 30403;\nvar Date2 = 31922;\nvar Time = 31923;\nvar Calendar = 31924;\nvar CalendarEventRSVP = 31925;\nvar Handlerrecommendation = 31989;\nvar Handlerinformation = 31990;\nvar CommunityDefinition = 34550;\n\n// filter.ts\nfunction matchFilter(filter, event) {\n if (filter.ids && filter.ids.indexOf(event.id) === -1) {\n return false;\n }\n if (filter.kinds && filter.kinds.indexOf(event.kind) === -1) {\n return false;\n }\n if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) {\n return false;\n }\n for (let f in filter) {\n if (f[0] === \"#\") {\n let tagName = f.slice(1);\n let values = filter[`#${tagName}`];\n if (values && !event.tags.find(([t, v]) => t === f.slice(1) && values.indexOf(v) !== -1))\n return false;\n }\n }\n if (filter.since && event.created_at < filter.since)\n return false;\n if (filter.until && event.created_at > filter.until)\n return false;\n return true;\n}\nfunction matchFilters(filters, event) {\n for (let i2 = 0; i2 < filters.length; i2++) {\n if (matchFilter(filters[i2], event)) {\n return true;\n }\n }\n return false;\n}\nfunction mergeFilters(...filters) {\n let result = {};\n for (let i2 = 0; i2 < filters.length; i2++) {\n let filter = filters[i2];\n Object.entries(filter).forEach(([property, values]) => {\n if (property === \"kinds\" || property === \"ids\" || property === \"authors\" || property[0] === \"#\") {\n result[property] = result[property] || [];\n for (let v = 0; v < values.length; v++) {\n let value = values[v];\n if (!result[property].includes(value))\n result[property].push(value);\n }\n }\n });\n if (filter.limit && (!result.limit || filter.limit > result.limit))\n result.limit = filter.limit;\n if (filter.until && (!result.until || filter.until > result.until))\n result.until = filter.until;\n if (filter.since && (!result.since || filter.since < result.since))\n result.since = filter.since;\n }\n return result;\n}\nfunction getFilterLimit(filter) {\n if (filter.ids && !filter.ids.length)\n return 0;\n if (filter.kinds && !filter.kinds.length)\n return 0;\n if (filter.authors && !filter.authors.length)\n return 0;\n for (const [key, value] of Object.entries(filter)) {\n if (key[0] === \"#\" && Array.isArray(value) && !value.length)\n return 0;\n }\n return Math.min(\n Math.max(0, filter.limit ?? Infinity),\n filter.ids?.length ?? Infinity,\n filter.authors?.length && filter.kinds?.every((kind) => isReplaceableKind(kind)) ? filter.authors.length * filter.kinds.length : Infinity,\n filter.authors?.length && filter.kinds?.every((kind) => isAddressableKind(kind)) && filter[\"#d\"]?.length ? filter.authors.length * filter.kinds.length * filter[\"#d\"].length : Infinity\n );\n}\n\n// fakejson.ts\nvar fakejson_exports = {};\n__export(fakejson_exports, {\n getHex64: () => getHex64,\n getInt: () => getInt,\n getSubscriptionId: () => getSubscriptionId,\n matchEventId: () => matchEventId,\n matchEventKind: () => matchEventKind,\n matchEventPubkey: () => matchEventPubkey\n});\nfunction getHex64(json, field) {\n let len = field.length + 3;\n let idx = json.indexOf(`\"${field}\":`) + len;\n let s = json.slice(idx).indexOf(`\"`) + idx + 1;\n return json.slice(s, s + 64);\n}\nfunction getInt(json, field) {\n let len = field.length;\n let idx = json.indexOf(`\"${field}\":`) + len + 3;\n let sliced = json.slice(idx);\n let end = Math.min(sliced.indexOf(\",\"), sliced.indexOf(\"}\"));\n return parseInt(sliced.slice(0, end), 10);\n}\nfunction getSubscriptionId(json) {\n let idx = json.slice(0, 22).indexOf(`\"EVENT\"`);\n if (idx === -1)\n return null;\n let pstart = json.slice(idx + 7 + 1).indexOf(`\"`);\n if (pstart === -1)\n return null;\n let start = idx + 7 + 1 + pstart;\n let pend = json.slice(start + 1, 80).indexOf(`\"`);\n if (pend === -1)\n return null;\n let end = start + 1 + pend;\n return json.slice(start + 1, end);\n}\nfunction matchEventId(json, id) {\n return id === getHex64(json, \"id\");\n}\nfunction matchEventPubkey(json, pubkey) {\n return pubkey === getHex64(json, \"pubkey\");\n}\nfunction matchEventKind(json, kind) {\n return kind === getInt(json, \"kind\");\n}\n\n// nip42.ts\nvar nip42_exports = {};\n__export(nip42_exports, {\n makeAuthEvent: () => makeAuthEvent\n});\nfunction makeAuthEvent(relayURL, challenge) {\n return {\n kind: ClientAuth,\n created_at: Math.floor(Date.now() / 1e3),\n tags: [\n [\"relay\", relayURL],\n [\"challenge\", challenge]\n ],\n content: \"\"\n };\n}\n\n// helpers.ts\nasync function yieldThread() {\n return new Promise((resolve) => {\n const ch = new MessageChannel();\n const handler = () => {\n ch.port1.removeEventListener(\"message\", handler);\n resolve();\n };\n ch.port1.addEventListener(\"message\", handler);\n ch.port2.postMessage(0);\n ch.port1.start();\n });\n}\nvar alwaysTrue = (t) => {\n t[verifiedSymbol] = true;\n return true;\n};\n\n// abstract-relay.ts\nvar AbstractRelay = class {\n url;\n _connected = false;\n onclose = null;\n onnotice = (msg) => console.debug(`NOTICE from ${this.url}: ${msg}`);\n _onauth = null;\n baseEoseTimeout = 4400;\n connectionTimeout = 4400;\n publishTimeout = 4400;\n openSubs = /* @__PURE__ */ new Map();\n connectionTimeoutHandle;\n connectionPromise;\n openCountRequests = /* @__PURE__ */ new Map();\n openEventPublishes = /* @__PURE__ */ new Map();\n ws;\n incomingMessageQueue = new Queue();\n queueRunning = false;\n challenge;\n serial = 0;\n verifyEvent;\n _WebSocket;\n constructor(url, opts) {\n this.url = normalizeURL(url);\n this.verifyEvent = opts.verifyEvent;\n this._WebSocket = opts.websocketImplementation || WebSocket;\n }\n static async connect(url, opts) {\n const relay = new AbstractRelay(url, opts);\n await relay.connect();\n return relay;\n }\n closeAllSubscriptions(reason) {\n for (let [_, sub] of this.openSubs) {\n sub.close(reason);\n }\n this.openSubs.clear();\n for (let [_, ep] of this.openEventPublishes) {\n ep.reject(new Error(reason));\n }\n this.openEventPublishes.clear();\n for (let [_, cr] of this.openCountRequests) {\n cr.reject(new Error(reason));\n }\n this.openCountRequests.clear();\n }\n get connected() {\n return this._connected;\n }\n async connect() {\n if (this.connectionPromise)\n return this.connectionPromise;\n this.challenge = void 0;\n this.connectionPromise = new Promise((resolve, reject) => {\n this.connectionTimeoutHandle = setTimeout(() => {\n reject(\"connection timed out\");\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection timed out\");\n }, this.connectionTimeout);\n try {\n this.ws = new this._WebSocket(this.url);\n } catch (err) {\n reject(err);\n return;\n }\n this.ws.onopen = () => {\n clearTimeout(this.connectionTimeoutHandle);\n this._connected = true;\n resolve();\n };\n this.ws.onerror = (ev) => {\n reject(ev.message || \"websocket error\");\n if (this._connected) {\n this._connected = false;\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection errored\");\n }\n };\n this.ws.onclose = async () => {\n if (this._connected) {\n this._connected = false;\n this.connectionPromise = void 0;\n this.onclose?.();\n this.closeAllSubscriptions(\"relay connection closed\");\n }\n };\n this.ws.onmessage = this._onmessage.bind(this);\n });\n return this.connectionPromise;\n }\n async runQueue() {\n this.queueRunning = true;\n while (true) {\n if (false === this.handleNext()) {\n break;\n }\n await yieldThread();\n }\n this.queueRunning = false;\n }\n handleNext() {\n const json = this.incomingMessageQueue.dequeue();\n if (!json) {\n return false;\n }\n const subid = getSubscriptionId(json);\n if (subid) {\n const so = this.openSubs.get(subid);\n if (!so) {\n return;\n }\n const id = getHex64(json, \"id\");\n const alreadyHave = so.alreadyHaveEvent?.(id);\n so.receivedEvent?.(this, id);\n if (alreadyHave) {\n return;\n }\n }\n try {\n let data = JSON.parse(json);\n switch (data[0]) {\n case \"EVENT\": {\n const so = this.openSubs.get(data[1]);\n const event = data[2];\n if (this.verifyEvent(event) && matchFilters(so.filters, event)) {\n so.onevent(event);\n }\n return;\n }\n case \"COUNT\": {\n const id = data[1];\n const payload = data[2];\n const cr = this.openCountRequests.get(id);\n if (cr) {\n cr.resolve(payload.count);\n this.openCountRequests.delete(id);\n }\n return;\n }\n case \"EOSE\": {\n const so = this.openSubs.get(data[1]);\n if (!so)\n return;\n so.receivedEose();\n return;\n }\n case \"OK\": {\n const id = data[1];\n const ok = data[2];\n const reason = data[3];\n const ep = this.openEventPublishes.get(id);\n if (ep) {\n clearTimeout(ep.timeout);\n if (ok)\n ep.resolve(reason);\n else\n ep.reject(new Error(reason));\n this.openEventPublishes.delete(id);\n }\n return;\n }\n case \"CLOSED\": {\n const id = data[1];\n const so = this.openSubs.get(id);\n if (!so)\n return;\n so.closed = true;\n so.close(data[2]);\n return;\n }\n case \"NOTICE\":\n this.onnotice(data[1]);\n return;\n case \"AUTH\": {\n this.challenge = data[1];\n this._onauth?.(data[1]);\n return;\n }\n }\n } catch (err) {\n return;\n }\n }\n async send(message) {\n if (!this.connectionPromise)\n throw new Error(\"sending on closed connection\");\n this.connectionPromise.then(() => {\n this.ws?.send(message);\n });\n }\n async auth(signAuthEvent) {\n if (!this.challenge)\n throw new Error(\"can't perform auth, no challenge was received\");\n const evt = await signAuthEvent(makeAuthEvent(this.url, this.challenge));\n const ret = new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const ep = this.openEventPublishes.get(evt.id);\n if (ep) {\n ep.reject(new Error(\"auth timed out\"));\n this.openEventPublishes.delete(evt.id);\n }\n }, this.publishTimeout);\n this.openEventPublishes.set(evt.id, { resolve, reject, timeout });\n });\n this.send('[\"AUTH\",' + JSON.stringify(evt) + \"]\");\n return ret;\n }\n async publish(event) {\n const ret = new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const ep = this.openEventPublishes.get(event.id);\n if (ep) {\n ep.reject(new Error(\"publish timed out\"));\n this.openEventPublishes.delete(event.id);\n }\n }, this.publishTimeout);\n this.openEventPublishes.set(event.id, { resolve, reject, timeout });\n });\n this.send('[\"EVENT\",' + JSON.stringify(event) + \"]\");\n return ret;\n }\n async count(filters, params) {\n this.serial++;\n const id = params?.id || \"count:\" + this.serial;\n const ret = new Promise((resolve, reject) => {\n this.openCountRequests.set(id, { resolve, reject });\n });\n this.send('[\"COUNT\",\"' + id + '\",' + JSON.stringify(filters).substring(1));\n return ret;\n }\n subscribe(filters, params) {\n const subscription = this.prepareSubscription(filters, params);\n subscription.fire();\n return subscription;\n }\n prepareSubscription(filters, params) {\n this.serial++;\n const id = params.id || (params.label ? params.label + \":\" : \"sub:\") + this.serial;\n const subscription = new Subscription(this, id, filters, params);\n this.openSubs.set(id, subscription);\n return subscription;\n }\n close() {\n this.closeAllSubscriptions(\"relay connection closed by us\");\n this._connected = false;\n this.ws?.close();\n }\n _onmessage(ev) {\n this.incomingMessageQueue.enqueue(ev.data);\n if (!this.queueRunning) {\n this.runQueue();\n }\n }\n};\nvar Subscription = class {\n relay;\n id;\n closed = false;\n eosed = false;\n filters;\n alreadyHaveEvent;\n receivedEvent;\n onevent;\n oneose;\n onclose;\n eoseTimeout;\n eoseTimeoutHandle;\n constructor(relay, id, filters, params) {\n this.relay = relay;\n this.filters = filters;\n this.id = id;\n this.alreadyHaveEvent = params.alreadyHaveEvent;\n this.receivedEvent = params.receivedEvent;\n this.eoseTimeout = params.eoseTimeout || relay.baseEoseTimeout;\n this.oneose = params.oneose;\n this.onclose = params.onclose;\n this.onevent = params.onevent || ((event) => {\n console.warn(\n `onevent() callback not defined for subscription '${this.id}' in relay ${this.relay.url}. event received:`,\n event\n );\n });\n }\n fire() {\n this.relay.send('[\"REQ\",\"' + this.id + '\",' + JSON.stringify(this.filters).substring(1));\n this.eoseTimeoutHandle = setTimeout(this.receivedEose.bind(this), this.eoseTimeout);\n }\n receivedEose() {\n if (this.eosed)\n return;\n clearTimeout(this.eoseTimeoutHandle);\n this.eosed = true;\n this.oneose?.();\n }\n close(reason = \"closed by caller\") {\n if (!this.closed && this.relay.connected) {\n this.relay.send('[\"CLOSE\",' + JSON.stringify(this.id) + \"]\");\n this.closed = true;\n }\n this.relay.openSubs.delete(this.id);\n this.onclose?.(reason);\n }\n};\n\n// relay.ts\nvar _WebSocket;\ntry {\n _WebSocket = WebSocket;\n} catch {\n}\nvar Relay = class extends AbstractRelay {\n constructor(url) {\n super(url, { verifyEvent, websocketImplementation: _WebSocket });\n }\n static async connect(url) {\n const relay = new Relay(url);\n await relay.connect();\n return relay;\n }\n};\n\n// abstract-pool.ts\nvar AbstractSimplePool = class {\n relays = /* @__PURE__ */ new Map();\n seenOn = /* @__PURE__ */ new Map();\n trackRelays = false;\n verifyEvent;\n trustedRelayURLs = /* @__PURE__ */ new Set();\n _WebSocket;\n constructor(opts) {\n this.verifyEvent = opts.verifyEvent;\n this._WebSocket = opts.websocketImplementation;\n }\n async ensureRelay(url, params) {\n url = normalizeURL(url);\n let relay = this.relays.get(url);\n if (!relay) {\n relay = new AbstractRelay(url, {\n verifyEvent: this.trustedRelayURLs.has(url) ? alwaysTrue : this.verifyEvent,\n websocketImplementation: this._WebSocket\n });\n if (params?.connectionTimeout)\n relay.connectionTimeout = params.connectionTimeout;\n this.relays.set(url, relay);\n }\n await relay.connect();\n return relay;\n }\n close(relays) {\n relays.map(normalizeURL).forEach((url) => {\n this.relays.get(url)?.close();\n });\n }\n subscribeMany(relays, filters, params) {\n return this.subscribeManyMap(Object.fromEntries(relays.map((url) => [url, filters])), params);\n }\n subscribeManyMap(requests, params) {\n if (this.trackRelays) {\n params.receivedEvent = (relay, id) => {\n let set = this.seenOn.get(id);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n this.seenOn.set(id, set);\n }\n set.add(relay);\n };\n }\n const _knownIds = /* @__PURE__ */ new Set();\n const subs = [];\n const relaysLength = Object.keys(requests).length;\n const eosesReceived = [];\n let handleEose = (i2) => {\n if (eosesReceived[i2])\n return;\n eosesReceived[i2] = true;\n if (eosesReceived.filter((a) => a).length === relaysLength) {\n params.oneose?.();\n handleEose = () => {\n };\n }\n };\n const closesReceived = [];\n let handleClose = (i2, reason) => {\n if (closesReceived[i2])\n return;\n handleEose(i2);\n closesReceived[i2] = reason;\n if (closesReceived.filter((a) => a).length === relaysLength) {\n params.onclose?.(closesReceived);\n handleClose = () => {\n };\n }\n };\n const localAlreadyHaveEventHandler = (id) => {\n if (params.alreadyHaveEvent?.(id)) {\n return true;\n }\n const have = _knownIds.has(id);\n _knownIds.add(id);\n return have;\n };\n const allOpened = Promise.all(\n Object.entries(requests).map(async (req, i2, arr) => {\n if (arr.indexOf(req) !== i2) {\n handleClose(i2, \"duplicate url\");\n return;\n }\n let [url, filters] = req;\n url = normalizeURL(url);\n let relay;\n try {\n relay = await this.ensureRelay(url, {\n connectionTimeout: params.maxWait ? Math.max(params.maxWait * 0.8, params.maxWait - 1e3) : void 0\n });\n } catch (err) {\n handleClose(i2, err?.message || String(err));\n return;\n }\n let subscription = relay.subscribe(filters, {\n ...params,\n oneose: () => handleEose(i2),\n onclose: (reason) => handleClose(i2, reason),\n alreadyHaveEvent: localAlreadyHaveEventHandler,\n eoseTimeout: params.maxWait\n });\n subs.push(subscription);\n })\n );\n return {\n async close() {\n await allOpened;\n subs.forEach((sub) => {\n sub.close();\n });\n }\n };\n }\n subscribeManyEose(relays, filters, params) {\n const subcloser = this.subscribeMany(relays, filters, {\n ...params,\n oneose() {\n subcloser.close();\n }\n });\n return subcloser;\n }\n async querySync(relays, filter, params) {\n return new Promise(async (resolve) => {\n const events = [];\n this.subscribeManyEose(relays, [filter], {\n ...params,\n onevent(event) {\n events.push(event);\n },\n onclose(_) {\n resolve(events);\n }\n });\n });\n }\n async get(relays, filter, params) {\n filter.limit = 1;\n const events = await this.querySync(relays, filter, params);\n events.sort((a, b) => b.created_at - a.created_at);\n return events[0] || null;\n }\n publish(relays, event) {\n return relays.map(normalizeURL).map(async (url, i2, arr) => {\n if (arr.indexOf(url) !== i2) {\n return Promise.reject(\"duplicate url\");\n }\n let r = await this.ensureRelay(url);\n return r.publish(event).then((reason) => {\n if (this.trackRelays) {\n let set = this.seenOn.get(event.id);\n if (!set) {\n set = /* @__PURE__ */ new Set();\n this.seenOn.set(event.id, set);\n }\n set.add(r);\n }\n return reason;\n });\n });\n }\n listConnectionStatus() {\n const map = /* @__PURE__ */ new Map();\n this.relays.forEach((relay, url) => map.set(url, relay.connected));\n return map;\n }\n destroy() {\n this.relays.forEach((conn) => conn.close());\n this.relays = /* @__PURE__ */ new Map();\n }\n};\n\n// pool.ts\nvar _WebSocket2;\ntry {\n _WebSocket2 = WebSocket;\n} catch {\n}\nvar SimplePool = class extends AbstractSimplePool {\n constructor() {\n super({ verifyEvent, websocketImplementation: _WebSocket2 });\n }\n};\n\n// nip19.ts\nvar nip19_exports = {};\n__export(nip19_exports, {\n BECH32_REGEX: () => BECH32_REGEX,\n Bech32MaxSize: () => Bech32MaxSize,\n NostrTypeGuard: () => NostrTypeGuard,\n decode: () => decode,\n decodeNostrURI: () => decodeNostrURI,\n encodeBytes: () => encodeBytes,\n naddrEncode: () => naddrEncode,\n neventEncode: () => neventEncode,\n noteEncode: () => noteEncode,\n nprofileEncode: () => nprofileEncode,\n npubEncode: () => npubEncode,\n nsecEncode: () => nsecEncode\n});\nimport { bytesToHex as bytesToHex2, concatBytes, hexToBytes } from \"@noble/hashes/utils\";\nimport { bech32 } from \"@scure/base\";\nvar NostrTypeGuard = {\n isNProfile: (value) => /^nprofile1[a-z\\d]+$/.test(value || \"\"),\n isNEvent: (value) => /^nevent1[a-z\\d]+$/.test(value || \"\"),\n isNAddr: (value) => /^naddr1[a-z\\d]+$/.test(value || \"\"),\n isNSec: (value) => /^nsec1[a-z\\d]{58}$/.test(value || \"\"),\n isNPub: (value) => /^npub1[a-z\\d]{58}$/.test(value || \"\"),\n isNote: (value) => /^note1[a-z\\d]+$/.test(value || \"\"),\n isNcryptsec: (value) => /^ncryptsec1[a-z\\d]+$/.test(value || \"\")\n};\nvar Bech32MaxSize = 5e3;\nvar BECH32_REGEX = /[\\x21-\\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;\nfunction integerToUint8Array(number) {\n const uint8Array = new Uint8Array(4);\n uint8Array[0] = number >> 24 & 255;\n uint8Array[1] = number >> 16 & 255;\n uint8Array[2] = number >> 8 & 255;\n uint8Array[3] = number & 255;\n return uint8Array;\n}\nfunction decodeNostrURI(nip19code) {\n try {\n if (nip19code.startsWith(\"nostr:\"))\n nip19code = nip19code.substring(6);\n return decode(nip19code);\n } catch (_err) {\n return { type: \"invalid\", data: null };\n }\n}\nfunction decode(nip19) {\n let { prefix, words } = bech32.decode(nip19, Bech32MaxSize);\n let data = new Uint8Array(bech32.fromWords(words));\n switch (prefix) {\n case \"nprofile\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nprofile\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n return {\n type: \"nprofile\",\n data: {\n pubkey: bytesToHex2(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nevent\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for nevent\");\n if (tlv[0][0].length !== 32)\n throw new Error(\"TLV 0 should be 32 bytes\");\n if (tlv[2] && tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (tlv[3] && tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"nevent\",\n data: {\n id: bytesToHex2(tlv[0][0]),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : [],\n author: tlv[2]?.[0] ? bytesToHex2(tlv[2][0]) : void 0,\n kind: tlv[3]?.[0] ? parseInt(bytesToHex2(tlv[3][0]), 16) : void 0\n }\n };\n }\n case \"naddr\": {\n let tlv = parseTLV(data);\n if (!tlv[0]?.[0])\n throw new Error(\"missing TLV 0 for naddr\");\n if (!tlv[2]?.[0])\n throw new Error(\"missing TLV 2 for naddr\");\n if (tlv[2][0].length !== 32)\n throw new Error(\"TLV 2 should be 32 bytes\");\n if (!tlv[3]?.[0])\n throw new Error(\"missing TLV 3 for naddr\");\n if (tlv[3][0].length !== 4)\n throw new Error(\"TLV 3 should be 4 bytes\");\n return {\n type: \"naddr\",\n data: {\n identifier: utf8Decoder.decode(tlv[0][0]),\n pubkey: bytesToHex2(tlv[2][0]),\n kind: parseInt(bytesToHex2(tlv[3][0]), 16),\n relays: tlv[1] ? tlv[1].map((d) => utf8Decoder.decode(d)) : []\n }\n };\n }\n case \"nsec\":\n return { type: prefix, data };\n case \"npub\":\n case \"note\":\n return { type: prefix, data: bytesToHex2(data) };\n default:\n throw new Error(`unknown prefix ${prefix}`);\n }\n}\nfunction parseTLV(data) {\n let result = {};\n let rest = data;\n while (rest.length > 0) {\n let t = rest[0];\n let l = rest[1];\n let v = rest.slice(2, 2 + l);\n rest = rest.slice(2 + l);\n if (v.length < l)\n throw new Error(`not enough data to read on TLV ${t}`);\n result[t] = result[t] || [];\n result[t].push(v);\n }\n return result;\n}\nfunction nsecEncode(key) {\n return encodeBytes(\"nsec\", key);\n}\nfunction npubEncode(hex) {\n return encodeBytes(\"npub\", hexToBytes(hex));\n}\nfunction noteEncode(hex) {\n return encodeBytes(\"note\", hexToBytes(hex));\n}\nfunction encodeBech32(prefix, data) {\n let words = bech32.toWords(data);\n return bech32.encode(prefix, words, Bech32MaxSize);\n}\nfunction encodeBytes(prefix, bytes) {\n return encodeBech32(prefix, bytes);\n}\nfunction nprofileEncode(profile) {\n let data = encodeTLV({\n 0: [hexToBytes(profile.pubkey)],\n 1: (profile.relays || []).map((url) => utf8Encoder.encode(url))\n });\n return encodeBech32(\"nprofile\", data);\n}\nfunction neventEncode(event) {\n let kindArray;\n if (event.kind !== void 0) {\n kindArray = integerToUint8Array(event.kind);\n }\n let data = encodeTLV({\n 0: [hexToBytes(event.id)],\n 1: (event.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: event.author ? [hexToBytes(event.author)] : [],\n 3: kindArray ? [new Uint8Array(kindArray)] : []\n });\n return encodeBech32(\"nevent\", data);\n}\nfunction naddrEncode(addr) {\n let kind = new ArrayBuffer(4);\n new DataView(kind).setUint32(0, addr.kind, false);\n let data = encodeTLV({\n 0: [utf8Encoder.encode(addr.identifier)],\n 1: (addr.relays || []).map((url) => utf8Encoder.encode(url)),\n 2: [hexToBytes(addr.pubkey)],\n 3: [new Uint8Array(kind)]\n });\n return encodeBech32(\"naddr\", data);\n}\nfunction encodeTLV(tlv) {\n let entries = [];\n Object.entries(tlv).reverse().forEach(([t, vs]) => {\n vs.forEach((v) => {\n let entry = new Uint8Array(v.length + 2);\n entry.set([parseInt(t)], 0);\n entry.set([v.length], 1);\n entry.set(v, 2);\n entries.push(entry);\n });\n });\n return concatBytes(...entries);\n}\n\n// references.ts\nvar mentionRegex = /\\bnostr:((note|npub|naddr|nevent|nprofile)1\\w+)\\b|#\\[(\\d+)\\]/g;\nfunction parseReferences(evt) {\n let references = [];\n for (let ref of evt.content.matchAll(mentionRegex)) {\n if (ref[2]) {\n try {\n let { type, data } = decode(ref[1]);\n switch (type) {\n case \"npub\": {\n references.push({\n text: ref[0],\n profile: { pubkey: data, relays: [] }\n });\n break;\n }\n case \"nprofile\": {\n references.push({\n text: ref[0],\n profile: data\n });\n break;\n }\n case \"note\": {\n references.push({\n text: ref[0],\n event: { id: data, relays: [] }\n });\n break;\n }\n case \"nevent\": {\n references.push({\n text: ref[0],\n event: data\n });\n break;\n }\n case \"naddr\": {\n references.push({\n text: ref[0],\n address: data\n });\n break;\n }\n }\n } catch (err) {\n }\n } else if (ref[3]) {\n let idx = parseInt(ref[3], 10);\n let tag = evt.tags[idx];\n if (!tag)\n continue;\n switch (tag[0]) {\n case \"p\": {\n references.push({\n text: ref[0],\n profile: { pubkey: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"e\": {\n references.push({\n text: ref[0],\n event: { id: tag[1], relays: tag[2] ? [tag[2]] : [] }\n });\n break;\n }\n case \"a\": {\n try {\n let [kind, pubkey, identifier] = tag[1].split(\":\");\n references.push({\n text: ref[0],\n address: {\n identifier,\n pubkey,\n kind: parseInt(kind, 10),\n relays: tag[2] ? [tag[2]] : []\n }\n });\n } catch (err) {\n }\n break;\n }\n }\n }\n }\n return references;\n}\n\n// nip04.ts\nvar nip04_exports = {};\n__export(nip04_exports, {\n decrypt: () => decrypt,\n encrypt: () => encrypt\n});\nimport { bytesToHex as bytesToHex3, randomBytes } from \"@noble/hashes/utils\";\nimport { secp256k1 } from \"@noble/curves/secp256k1\";\nimport { cbc } from \"@noble/ciphers/aes\";\nimport { base64 } from \"@scure/base\";\nasync function encrypt(secretKey, pubkey, text) {\n const privkey = secretKey instanceof Uint8Array ? bytesToHex3(secretKey) : secretKey;\n const key = secp256k1.getSharedSecret(privkey, \"02\" + pubkey);\n const normalizedKey = getNormalizedX(key);\n let iv = Uint8Array.from(randomBytes(16));\n let plaintext = utf8Encoder.encode(text);\n let ciphertext = cbc(normalizedKey, iv).encrypt(plaintext);\n let ctb64 = base64.encode(new Uint8Array(ciphertext));\n let ivb64 = base64.encode(new Uint8Array(iv.buffer));\n return `${ctb64}?iv=${ivb64}`;\n}\nasync function decrypt(secretKey, pubkey, data) {\n const privkey = secretKey instanceof Uint8Array ? bytesToHex3(secretKey) : secretKey;\n let [ctb64, ivb64] = data.split(\"?iv=\");\n let key = secp256k1.getSharedSecret(privkey, \"02\" + pubkey);\n let normalizedKey = getNormalizedX(key);\n let iv = base64.decode(ivb64);\n let ciphertext = base64.decode(ctb64);\n let plaintext = cbc(normalizedKey, iv).decrypt(ciphertext);\n return utf8Decoder.decode(plaintext);\n}\nfunction getNormalizedX(key) {\n return key.slice(1, 33);\n}\n\n// nip05.ts\nvar nip05_exports = {};\n__export(nip05_exports, {\n NIP05_REGEX: () => NIP05_REGEX,\n isNip05: () => isNip05,\n isValid: () => isValid,\n queryProfile: () => queryProfile,\n searchDomain: () => searchDomain,\n useFetchImplementation: () => useFetchImplementation\n});\nvar NIP05_REGEX = /^(?:([\\w.+-]+)@)?([\\w_-]+(\\.[\\w_-]+)+)$/;\nvar isNip05 = (value) => NIP05_REGEX.test(value || \"\");\nvar _fetch;\ntry {\n _fetch = fetch;\n} catch (_) {\n null;\n}\nfunction useFetchImplementation(fetchImplementation) {\n _fetch = fetchImplementation;\n}\nasync function searchDomain(domain, query = \"\") {\n try {\n const url = `https://${domain}/.well-known/nostr.json?name=${query}`;\n const res = await _fetch(url, { redirect: \"manual\" });\n if (res.status !== 200) {\n throw Error(\"Wrong response code\");\n }\n const json = await res.json();\n return json.names;\n } catch (_) {\n return {};\n }\n}\nasync function queryProfile(fullname) {\n const match = fullname.match(NIP05_REGEX);\n if (!match)\n return null;\n const [, name = \"_\", domain] = match;\n try {\n const url = `https://${domain}/.well-known/nostr.json?name=${name}`;\n const res = await _fetch(url, { redirect: \"manual\" });\n if (res.status !== 200) {\n throw Error(\"Wrong response code\");\n }\n const json = await res.json();\n const pubkey = json.names[name];\n return pubkey ? { pubkey, relays: json.relays?.[pubkey] } : null;\n } catch (_e) {\n return null;\n }\n}\nasync function isValid(pubkey, nip05) {\n const res = await queryProfile(nip05);\n return res ? res.pubkey === pubkey : false;\n}\n\n// nip10.ts\nvar nip10_exports = {};\n__export(nip10_exports, {\n parse: () => parse\n});\nfunction parse(event) {\n const result = {\n reply: void 0,\n root: void 0,\n mentions: [],\n profiles: [],\n quotes: []\n };\n let maybeParent;\n let maybeRoot;\n for (let i2 = event.tags.length - 1; i2 >= 0; i2--) {\n const tag = event.tags[i2];\n if (tag[0] === \"e\" && tag[1]) {\n const [_, eTagEventId, eTagRelayUrl, eTagMarker, eTagAuthor] = tag;\n const eventPointer = {\n id: eTagEventId,\n relays: eTagRelayUrl ? [eTagRelayUrl] : [],\n author: eTagAuthor\n };\n if (eTagMarker === \"root\") {\n result.root = eventPointer;\n continue;\n }\n if (eTagMarker === \"reply\") {\n result.reply = eventPointer;\n continue;\n }\n if (eTagMarker === \"mention\") {\n result.mentions.push(eventPointer);\n continue;\n }\n if (!maybeParent) {\n maybeParent = eventPointer;\n } else {\n maybeRoot = eventPointer;\n }\n result.mentions.push(eventPointer);\n continue;\n }\n if (tag[0] === \"q\" && tag[1]) {\n const [_, eTagEventId, eTagRelayUrl] = tag;\n result.quotes.push({\n id: eTagEventId,\n relays: eTagRelayUrl ? [eTagRelayUrl] : []\n });\n }\n if (tag[0] === \"p\" && tag[1]) {\n result.profiles.push({\n pubkey: tag[1],\n relays: tag[2] ? [tag[2]] : []\n });\n continue;\n }\n }\n if (!result.root) {\n result.root = maybeRoot || maybeParent || result.reply;\n }\n if (!result.reply) {\n result.reply = maybeParent || result.root;\n }\n ;\n [result.reply, result.root].forEach((ref) => {\n if (!ref)\n return;\n let idx = result.mentions.indexOf(ref);\n if (idx !== -1) {\n result.mentions.splice(idx, 1);\n }\n if (ref.author) {\n let author = result.profiles.find((p) => p.pubkey === ref.author);\n if (author && author.relays) {\n if (!ref.relays) {\n ref.relays = [];\n }\n author.relays.forEach((url) => {\n if (ref.relays?.indexOf(url) === -1)\n ref.relays.push(url);\n });\n author.relays = ref.relays;\n }\n }\n });\n result.mentions.forEach((ref) => {\n if (ref.author) {\n let author = result.profiles.find((p) => p.pubkey === ref.author);\n if (author && author.relays) {\n if (!ref.relays) {\n ref.relays = [];\n }\n author.relays.forEach((url) => {\n if (ref.relays.indexOf(url) === -1)\n ref.relays.push(url);\n });\n author.relays = ref.relays;\n }\n }\n });\n return result;\n}\n\n// nip11.ts\nvar nip11_exports = {};\n__export(nip11_exports, {\n fetchRelayInformation: () => fetchRelayInformation,\n useFetchImplementation: () => useFetchImplementation2\n});\nvar _fetch2;\ntry {\n _fetch2 = fetch;\n} catch {\n}\nfunction useFetchImplementation2(fetchImplementation) {\n _fetch2 = fetchImplementation;\n}\nasync function fetchRelayInformation(url) {\n return await (await fetch(url.replace(\"ws://\", \"http://\").replace(\"wss://\", \"https://\"), {\n headers: { Accept: \"application/nostr+json\" }\n })).json();\n}\n\n// nip13.ts\nvar nip13_exports = {};\n__export(nip13_exports, {\n fastEventHash: () => fastEventHash,\n getPow: () => getPow,\n minePow: () => minePow\n});\nimport { bytesToHex as bytesToHex4 } from \"@noble/hashes/utils\";\nimport { sha256 as sha2562 } from \"@noble/hashes/sha256\";\nfunction getPow(hex) {\n let count = 0;\n for (let i2 = 0; i2 < 64; i2 += 8) {\n const nibble = parseInt(hex.substring(i2, i2 + 8), 16);\n if (nibble === 0) {\n count += 32;\n } else {\n count += Math.clz32(nibble);\n break;\n }\n }\n return count;\n}\nfunction minePow(unsigned, difficulty) {\n let count = 0;\n const event = unsigned;\n const tag = [\"nonce\", count.toString(), difficulty.toString()];\n event.tags.push(tag);\n while (true) {\n const now2 = Math.floor(new Date().getTime() / 1e3);\n if (now2 !== event.created_at) {\n count = 0;\n event.created_at = now2;\n }\n tag[1] = (++count).toString();\n event.id = fastEventHash(event);\n if (getPow(event.id) >= difficulty) {\n break;\n }\n }\n return event;\n}\nfunction fastEventHash(evt) {\n return bytesToHex4(\n sha2562(utf8Encoder.encode(JSON.stringify([0, evt.pubkey, evt.created_at, evt.kind, evt.tags, evt.content])))\n );\n}\n\n// nip17.ts\nvar nip17_exports = {};\n__export(nip17_exports, {\n unwrapEvent: () => unwrapEvent2,\n unwrapManyEvents: () => unwrapManyEvents2,\n wrapEvent: () => wrapEvent2,\n wrapManyEvents: () => wrapManyEvents2\n});\n\n// nip59.ts\nvar nip59_exports = {};\n__export(nip59_exports, {\n createRumor: () => createRumor,\n createSeal: () => createSeal,\n createWrap: () => createWrap,\n unwrapEvent: () => unwrapEvent,\n unwrapManyEvents: () => unwrapManyEvents,\n wrapEvent: () => wrapEvent,\n wrapManyEvents: () => wrapManyEvents\n});\n\n// nip44.ts\nvar nip44_exports = {};\n__export(nip44_exports, {\n decrypt: () => decrypt2,\n encrypt: () => encrypt2,\n getConversationKey: () => getConversationKey,\n v2: () => v2\n});\nimport { chacha20 } from \"@noble/ciphers/chacha\";\nimport { equalBytes } from \"@noble/ciphers/utils\";\nimport { secp256k1 as secp256k12 } from \"@noble/curves/secp256k1\";\nimport { extract as hkdf_extract, expand as hkdf_expand } from \"@noble/hashes/hkdf\";\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { sha256 as sha2563 } from \"@noble/hashes/sha256\";\nimport { concatBytes as concatBytes2, randomBytes as randomBytes2 } from \"@noble/hashes/utils\";\nimport { base64 as base642 } from \"@scure/base\";\nvar minPlaintextSize = 1;\nvar maxPlaintextSize = 65535;\nfunction getConversationKey(privkeyA, pubkeyB) {\n const sharedX = secp256k12.getSharedSecret(privkeyA, \"02\" + pubkeyB).subarray(1, 33);\n return hkdf_extract(sha2563, sharedX, \"nip44-v2\");\n}\nfunction getMessageKeys(conversationKey, nonce) {\n const keys = hkdf_expand(sha2563, conversationKey, nonce, 76);\n return {\n chacha_key: keys.subarray(0, 32),\n chacha_nonce: keys.subarray(32, 44),\n hmac_key: keys.subarray(44, 76)\n };\n}\nfunction calcPaddedLen(len) {\n if (!Number.isSafeInteger(len) || len < 1)\n throw new Error(\"expected positive integer\");\n if (len <= 32)\n return 32;\n const nextPower = 1 << Math.floor(Math.log2(len - 1)) + 1;\n const chunk = nextPower <= 256 ? 32 : nextPower / 8;\n return chunk * (Math.floor((len - 1) / chunk) + 1);\n}\nfunction writeU16BE(num) {\n if (!Number.isSafeInteger(num) || num < minPlaintextSize || num > maxPlaintextSize)\n throw new Error(\"invalid plaintext size: must be between 1 and 65535 bytes\");\n const arr = new Uint8Array(2);\n new DataView(arr.buffer).setUint16(0, num, false);\n return arr;\n}\nfunction pad(plaintext) {\n const unpadded = utf8Encoder.encode(plaintext);\n const unpaddedLen = unpadded.length;\n const prefix = writeU16BE(unpaddedLen);\n const suffix = new Uint8Array(calcPaddedLen(unpaddedLen) - unpaddedLen);\n return concatBytes2(prefix, unpadded, suffix);\n}\nfunction unpad(padded) {\n const unpaddedLen = new DataView(padded.buffer).getUint16(0);\n const unpadded = padded.subarray(2, 2 + unpaddedLen);\n if (unpaddedLen < minPlaintextSize || unpaddedLen > maxPlaintextSize || unpadded.length !== unpaddedLen || padded.length !== 2 + calcPaddedLen(unpaddedLen))\n throw new Error(\"invalid padding\");\n return utf8Decoder.decode(unpadded);\n}\nfunction hmacAad(key, message, aad) {\n if (aad.length !== 32)\n throw new Error(\"AAD associated data must be 32 bytes\");\n const combined = concatBytes2(aad, message);\n return hmac(sha2563, key, combined);\n}\nfunction decodePayload(payload) {\n if (typeof payload !== \"string\")\n throw new Error(\"payload must be a valid string\");\n const plen = payload.length;\n if (plen < 132 || plen > 87472)\n throw new Error(\"invalid payload length: \" + plen);\n if (payload[0] === \"#\")\n throw new Error(\"unknown encryption version\");\n let data;\n try {\n data = base642.decode(payload);\n } catch (error) {\n throw new Error(\"invalid base64: \" + error.message);\n }\n const dlen = data.length;\n if (dlen < 99 || dlen > 65603)\n throw new Error(\"invalid data length: \" + dlen);\n const vers = data[0];\n if (vers !== 2)\n throw new Error(\"unknown encryption version \" + vers);\n return {\n nonce: data.subarray(1, 33),\n ciphertext: data.subarray(33, -32),\n mac: data.subarray(-32)\n };\n}\nfunction encrypt2(plaintext, conversationKey, nonce = randomBytes2(32)) {\n const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce);\n const padded = pad(plaintext);\n const ciphertext = chacha20(chacha_key, chacha_nonce, padded);\n const mac = hmacAad(hmac_key, ciphertext, nonce);\n return base642.encode(concatBytes2(new Uint8Array([2]), nonce, ciphertext, mac));\n}\nfunction decrypt2(payload, conversationKey) {\n const { nonce, ciphertext, mac } = decodePayload(payload);\n const { chacha_key, chacha_nonce, hmac_key } = getMessageKeys(conversationKey, nonce);\n const calculatedMac = hmacAad(hmac_key, ciphertext, nonce);\n if (!equalBytes(calculatedMac, mac))\n throw new Error(\"invalid MAC\");\n const padded = chacha20(chacha_key, chacha_nonce, ciphertext);\n return unpad(padded);\n}\nvar v2 = {\n utils: {\n getConversationKey,\n calcPaddedLen\n },\n encrypt: encrypt2,\n decrypt: decrypt2\n};\n\n// nip59.ts\nvar TWO_DAYS = 2 * 24 * 60 * 60;\nvar now = () => Math.round(Date.now() / 1e3);\nvar randomNow = () => Math.round(now() - Math.random() * TWO_DAYS);\nvar nip44ConversationKey = (privateKey, publicKey) => getConversationKey(privateKey, publicKey);\nvar nip44Encrypt = (data, privateKey, publicKey) => encrypt2(JSON.stringify(data), nip44ConversationKey(privateKey, publicKey));\nvar nip44Decrypt = (data, privateKey) => JSON.parse(decrypt2(data.content, nip44ConversationKey(privateKey, data.pubkey)));\nfunction createRumor(event, privateKey) {\n const rumor = {\n created_at: now(),\n content: \"\",\n tags: [],\n ...event,\n pubkey: getPublicKey(privateKey)\n };\n rumor.id = getEventHash(rumor);\n return rumor;\n}\nfunction createSeal(rumor, privateKey, recipientPublicKey) {\n return finalizeEvent(\n {\n kind: Seal,\n content: nip44Encrypt(rumor, privateKey, recipientPublicKey),\n created_at: randomNow(),\n tags: []\n },\n privateKey\n );\n}\nfunction createWrap(seal, recipientPublicKey) {\n const randomKey = generateSecretKey();\n return finalizeEvent(\n {\n kind: GiftWrap,\n content: nip44Encrypt(seal, randomKey, recipientPublicKey),\n created_at: randomNow(),\n tags: [[\"p\", recipientPublicKey]]\n },\n randomKey\n );\n}\nfunction wrapEvent(event, senderPrivateKey, recipientPublicKey) {\n const rumor = createRumor(event, senderPrivateKey);\n const seal = createSeal(rumor, senderPrivateKey, recipientPublicKey);\n return createWrap(seal, recipientPublicKey);\n}\nfunction wrapManyEvents(event, senderPrivateKey, recipientsPublicKeys) {\n if (!recipientsPublicKeys || recipientsPublicKeys.length === 0) {\n throw new Error(\"At least one recipient is required.\");\n }\n const senderPublicKey = getPublicKey(senderPrivateKey);\n const wrappeds = [wrapEvent(event, senderPrivateKey, senderPublicKey)];\n recipientsPublicKeys.forEach((recipientPublicKey) => {\n wrappeds.push(wrapEvent(event, senderPrivateKey, recipientPublicKey));\n });\n return wrappeds;\n}\nfunction unwrapEvent(wrap, recipientPrivateKey) {\n const unwrappedSeal = nip44Decrypt(wrap, recipientPrivateKey);\n return nip44Decrypt(unwrappedSeal, recipientPrivateKey);\n}\nfunction unwrapManyEvents(wrappedEvents, recipientPrivateKey) {\n let unwrappedEvents = [];\n wrappedEvents.forEach((e) => {\n unwrappedEvents.push(unwrapEvent(e, recipientPrivateKey));\n });\n unwrappedEvents.sort((a, b) => a.created_at - b.created_at);\n return unwrappedEvents;\n}\n\n// nip17.ts\nfunction createEvent(recipients, message, conversationTitle, replyTo) {\n const baseEvent = {\n created_at: Math.ceil(Date.now() / 1e3),\n kind: PrivateDirectMessage,\n tags: [],\n content: message\n };\n const recipientsArray = Array.isArray(recipients) ? recipients : [recipients];\n recipientsArray.forEach(({ publicKey, relayUrl }) => {\n baseEvent.tags.push(relayUrl ? [\"p\", publicKey, relayUrl] : [\"p\", publicKey]);\n });\n if (replyTo) {\n baseEvent.tags.push([\"e\", replyTo.eventId, replyTo.relayUrl || \"\", \"reply\"]);\n }\n if (conversationTitle) {\n baseEvent.tags.push([\"subject\", conversationTitle]);\n }\n return baseEvent;\n}\nfunction wrapEvent2(senderPrivateKey, recipient, message, conversationTitle, replyTo) {\n const event = createEvent(recipient, message, conversationTitle, replyTo);\n return wrapEvent(event, senderPrivateKey, recipient.publicKey);\n}\nfunction wrapManyEvents2(senderPrivateKey, recipients, message, conversationTitle, replyTo) {\n if (!recipients || recipients.length === 0) {\n throw new Error(\"At least one recipient is required.\");\n }\n const senderPublicKey = getPublicKey(senderPrivateKey);\n return [{ publicKey: senderPublicKey }, ...recipients].map(\n (recipient) => wrapEvent2(senderPrivateKey, recipient, message, conversationTitle, replyTo)\n );\n}\nvar unwrapEvent2 = unwrapEvent;\nvar unwrapManyEvents2 = unwrapManyEvents;\n\n// nip18.ts\nvar nip18_exports = {};\n__export(nip18_exports, {\n finishRepostEvent: () => finishRepostEvent,\n getRepostedEvent: () => getRepostedEvent,\n getRepostedEventPointer: () => getRepostedEventPointer\n});\nfunction finishRepostEvent(t, reposted, relayUrl, privateKey) {\n let kind;\n const tags = [...t.tags ?? [], [\"e\", reposted.id, relayUrl], [\"p\", reposted.pubkey]];\n if (reposted.kind === ShortTextNote) {\n kind = Repost;\n } else {\n kind = GenericRepost;\n tags.push([\"k\", String(reposted.kind)]);\n }\n return finalizeEvent(\n {\n kind,\n tags,\n content: t.content === \"\" || reposted.tags?.find((tag) => tag[0] === \"-\") ? \"\" : JSON.stringify(reposted),\n created_at: t.created_at\n },\n privateKey\n );\n}\nfunction getRepostedEventPointer(event) {\n if (![Repost, GenericRepost].includes(event.kind)) {\n return void 0;\n }\n let lastETag;\n let lastPTag;\n for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) {\n const tag = event.tags[i2];\n if (tag.length >= 2) {\n if (tag[0] === \"e\" && lastETag === void 0) {\n lastETag = tag;\n } else if (tag[0] === \"p\" && lastPTag === void 0) {\n lastPTag = tag;\n }\n }\n }\n if (lastETag === void 0) {\n return void 0;\n }\n return {\n id: lastETag[1],\n relays: [lastETag[2], lastPTag?.[2]].filter((x) => typeof x === \"string\"),\n author: lastPTag?.[1]\n };\n}\nfunction getRepostedEvent(event, { skipVerification } = {}) {\n const pointer = getRepostedEventPointer(event);\n if (pointer === void 0 || event.content === \"\") {\n return void 0;\n }\n let repostedEvent;\n try {\n repostedEvent = JSON.parse(event.content);\n } catch (error) {\n return void 0;\n }\n if (repostedEvent.id !== pointer.id) {\n return void 0;\n }\n if (!skipVerification && !verifyEvent(repostedEvent)) {\n return void 0;\n }\n return repostedEvent;\n}\n\n// nip21.ts\nvar nip21_exports = {};\n__export(nip21_exports, {\n NOSTR_URI_REGEX: () => NOSTR_URI_REGEX,\n parse: () => parse2,\n test: () => test\n});\nvar NOSTR_URI_REGEX = new RegExp(`nostr:(${BECH32_REGEX.source})`);\nfunction test(value) {\n return typeof value === \"string\" && new RegExp(`^${NOSTR_URI_REGEX.source}$`).test(value);\n}\nfunction parse2(uri) {\n const match = uri.match(new RegExp(`^${NOSTR_URI_REGEX.source}$`));\n if (!match)\n throw new Error(`Invalid Nostr URI: ${uri}`);\n return {\n uri: match[0],\n value: match[1],\n decoded: decode(match[1])\n };\n}\n\n// nip25.ts\nvar nip25_exports = {};\n__export(nip25_exports, {\n finishReactionEvent: () => finishReactionEvent,\n getReactedEventPointer: () => getReactedEventPointer\n});\nfunction finishReactionEvent(t, reacted, privateKey) {\n const inheritedTags = reacted.tags.filter((tag) => tag.length >= 2 && (tag[0] === \"e\" || tag[0] === \"p\"));\n return finalizeEvent(\n {\n ...t,\n kind: Reaction,\n tags: [...t.tags ?? [], ...inheritedTags, [\"e\", reacted.id], [\"p\", reacted.pubkey]],\n content: t.content ?? \"+\"\n },\n privateKey\n );\n}\nfunction getReactedEventPointer(event) {\n if (event.kind !== Reaction) {\n return void 0;\n }\n let lastETag;\n let lastPTag;\n for (let i2 = event.tags.length - 1; i2 >= 0 && (lastETag === void 0 || lastPTag === void 0); i2--) {\n const tag = event.tags[i2];\n if (tag.length >= 2) {\n if (tag[0] === \"e\" && lastETag === void 0) {\n lastETag = tag;\n } else if (tag[0] === \"p\" && lastPTag === void 0) {\n lastPTag = tag;\n }\n }\n }\n if (lastETag === void 0 || lastPTag === void 0) {\n return void 0;\n }\n return {\n id: lastETag[1],\n relays: [lastETag[2], lastPTag[2]].filter((x) => x !== void 0),\n author: lastPTag[1]\n };\n}\n\n// nip27.ts\nvar nip27_exports = {};\n__export(nip27_exports, {\n parse: () => parse3\n});\nvar noCharacter = /\\W/m;\nvar noURLCharacter = /\\W |\\W$|$|,| /m;\nfunction* parse3(content) {\n const max = content.length;\n let prevIndex = 0;\n let index = 0;\n while (index < max) {\n let u = content.indexOf(\":\", index);\n if (u === -1) {\n break;\n }\n if (content.substring(u - 5, u) === \"nostr\") {\n const m = content.substring(u + 60).match(noCharacter);\n const end = m ? u + 60 + m.index : max;\n try {\n let pointer;\n let { data, type } = decode(content.substring(u + 1, end));\n switch (type) {\n case \"npub\":\n pointer = { pubkey: data };\n break;\n case \"nsec\":\n case \"note\":\n index = end + 1;\n continue;\n default:\n pointer = data;\n }\n if (prevIndex !== u - 5) {\n yield { type: \"text\", text: content.substring(prevIndex, u - 5) };\n }\n yield { type: \"reference\", pointer };\n index = end;\n prevIndex = index;\n continue;\n } catch (_err) {\n index = u + 1;\n continue;\n }\n } else if (content.substring(u - 5, u) === \"https\" || content.substring(u - 4, u) === \"http\") {\n const m = content.substring(u + 4).match(noURLCharacter);\n const end = m ? u + 4 + m.index : max;\n const prefixLen = content[u - 1] === \"s\" ? 5 : 4;\n try {\n let url = new URL(content.substring(u - prefixLen, end));\n if (url.hostname.indexOf(\".\") === -1) {\n throw new Error(\"invalid url\");\n }\n if (prevIndex !== u - prefixLen) {\n yield { type: \"text\", text: content.substring(prevIndex, u - prefixLen) };\n }\n if (url.pathname.endsWith(\".png\") || url.pathname.endsWith(\".jpg\") || url.pathname.endsWith(\".jpeg\") || url.pathname.endsWith(\".gif\") || url.pathname.endsWith(\".webp\")) {\n yield { type: \"image\", url: url.toString() };\n index = end;\n prevIndex = index;\n continue;\n }\n if (url.pathname.endsWith(\".mp4\") || url.pathname.endsWith(\".avi\") || url.pathname.endsWith(\".webm\") || url.pathname.endsWith(\".mkv\")) {\n yield { type: \"video\", url: url.toString() };\n index = end;\n prevIndex = index;\n continue;\n }\n if (url.pathname.endsWith(\".mp3\") || url.pathname.endsWith(\".aac\") || url.pathname.endsWith(\".ogg\") || url.pathname.endsWith(\".opus\")) {\n yield { type: \"audio\", url: url.toString() };\n index = end;\n prevIndex = index;\n continue;\n }\n yield { type: \"url\", url: url.toString() };\n index = end;\n prevIndex = index;\n continue;\n } catch (_err) {\n index = end + 1;\n continue;\n }\n } else if (content.substring(u - 3, u) === \"wss\" || content.substring(u - 2, u) === \"ws\") {\n const m = content.substring(u + 4).match(noURLCharacter);\n const end = m ? u + 4 + m.index : max;\n const prefixLen = content[u - 1] === \"s\" ? 3 : 2;\n try {\n let url = new URL(content.substring(u - prefixLen, end));\n if (url.hostname.indexOf(\".\") === -1) {\n throw new Error(\"invalid ws url\");\n }\n if (prevIndex !== u - prefixLen) {\n yield { type: \"text\", text: content.substring(prevIndex, u - prefixLen) };\n }\n yield { type: \"relay\", url: url.toString() };\n index = end;\n prevIndex = index;\n continue;\n } catch (_err) {\n index = end + 1;\n continue;\n }\n } else {\n index = u + 1;\n continue;\n }\n }\n if (prevIndex !== max) {\n yield { type: \"text\", text: content.substring(prevIndex) };\n }\n}\n\n// nip28.ts\nvar nip28_exports = {};\n__export(nip28_exports, {\n channelCreateEvent: () => channelCreateEvent,\n channelHideMessageEvent: () => channelHideMessageEvent,\n channelMessageEvent: () => channelMessageEvent,\n channelMetadataEvent: () => channelMetadataEvent,\n channelMuteUserEvent: () => channelMuteUserEvent\n});\nvar channelCreateEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelCreation,\n tags: [...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMetadataEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelMetadata,\n tags: [[\"e\", t.channel_create_event_id], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMessageEvent = (t, privateKey) => {\n const tags = [[\"e\", t.channel_create_event_id, t.relay_url, \"root\"]];\n if (t.reply_to_channel_message_event_id) {\n tags.push([\"e\", t.reply_to_channel_message_event_id, t.relay_url, \"reply\"]);\n }\n return finalizeEvent(\n {\n kind: ChannelMessage,\n tags: [...tags, ...t.tags ?? []],\n content: t.content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelHideMessageEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelHideMessage,\n tags: [[\"e\", t.channel_message_event_id], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\nvar channelMuteUserEvent = (t, privateKey) => {\n let content;\n if (typeof t.content === \"object\") {\n content = JSON.stringify(t.content);\n } else if (typeof t.content === \"string\") {\n content = t.content;\n } else {\n return void 0;\n }\n return finalizeEvent(\n {\n kind: ChannelMuteUser,\n tags: [[\"p\", t.pubkey_to_mute], ...t.tags ?? []],\n content,\n created_at: t.created_at\n },\n privateKey\n );\n};\n\n// nip30.ts\nvar nip30_exports = {};\n__export(nip30_exports, {\n EMOJI_SHORTCODE_REGEX: () => EMOJI_SHORTCODE_REGEX,\n matchAll: () => matchAll,\n regex: () => regex,\n replaceAll: () => replaceAll\n});\nvar EMOJI_SHORTCODE_REGEX = /:(\\w+):/;\nvar regex = () => new RegExp(`\\\\B${EMOJI_SHORTCODE_REGEX.source}\\\\B`, \"g\");\nfunction* matchAll(content) {\n const matches = content.matchAll(regex());\n for (const match of matches) {\n try {\n const [shortcode, name] = match;\n yield {\n shortcode,\n name,\n start: match.index,\n end: match.index + shortcode.length\n };\n } catch (_e) {\n }\n }\n}\nfunction replaceAll(content, replacer) {\n return content.replaceAll(regex(), (shortcode, name) => {\n return replacer({\n shortcode,\n name\n });\n });\n}\n\n// nip39.ts\nvar nip39_exports = {};\n__export(nip39_exports, {\n useFetchImplementation: () => useFetchImplementation3,\n validateGithub: () => validateGithub\n});\nvar _fetch3;\ntry {\n _fetch3 = fetch;\n} catch {\n}\nfunction useFetchImplementation3(fetchImplementation) {\n _fetch3 = fetchImplementation;\n}\nasync function validateGithub(pubkey, username, proof) {\n try {\n let res = await (await _fetch3(`https://gist.github.com/${username}/${proof}/raw`)).text();\n return res === `Verifying that I control the following Nostr public key: ${pubkey}`;\n } catch (_) {\n return false;\n }\n}\n\n// nip47.ts\nvar nip47_exports = {};\n__export(nip47_exports, {\n makeNwcRequestEvent: () => makeNwcRequestEvent,\n parseConnectionString: () => parseConnectionString\n});\nfunction parseConnectionString(connectionString) {\n const { pathname, searchParams } = new URL(connectionString);\n const pubkey = pathname;\n const relay = searchParams.get(\"relay\");\n const secret = searchParams.get(\"secret\");\n if (!pubkey || !relay || !secret) {\n throw new Error(\"invalid connection string\");\n }\n return { pubkey, relay, secret };\n}\nasync function makeNwcRequestEvent(pubkey, secretKey, invoice) {\n const content = {\n method: \"pay_invoice\",\n params: {\n invoice\n }\n };\n const encryptedContent = await encrypt(secretKey, pubkey, JSON.stringify(content));\n const eventTemplate = {\n kind: NWCWalletRequest,\n created_at: Math.round(Date.now() / 1e3),\n content: encryptedContent,\n tags: [[\"p\", pubkey]]\n };\n return finalizeEvent(eventTemplate, secretKey);\n}\n\n// nip54.ts\nvar nip54_exports = {};\n__export(nip54_exports, {\n normalizeIdentifier: () => normalizeIdentifier\n});\nfunction normalizeIdentifier(name) {\n name = name.trim().toLowerCase();\n name = name.normalize(\"NFKC\");\n return Array.from(name).map((char) => {\n if (/\\p{Letter}/u.test(char) || /\\p{Number}/u.test(char)) {\n return char;\n }\n return \"-\";\n }).join(\"\");\n}\n\n// nip57.ts\nvar nip57_exports = {};\n__export(nip57_exports, {\n getZapEndpoint: () => getZapEndpoint,\n makeZapReceipt: () => makeZapReceipt,\n makeZapRequest: () => makeZapRequest,\n useFetchImplementation: () => useFetchImplementation4,\n validateZapRequest: () => validateZapRequest\n});\nimport { bech32 as bech322 } from \"@scure/base\";\nvar _fetch4;\ntry {\n _fetch4 = fetch;\n} catch {\n}\nfunction useFetchImplementation4(fetchImplementation) {\n _fetch4 = fetchImplementation;\n}\nasync function getZapEndpoint(metadata) {\n try {\n let lnurl = \"\";\n let { lud06, lud16 } = JSON.parse(metadata.content);\n if (lud06) {\n let { words } = bech322.decode(lud06, 1e3);\n let data = bech322.fromWords(words);\n lnurl = utf8Decoder.decode(data);\n } else if (lud16) {\n let [name, domain] = lud16.split(\"@\");\n lnurl = new URL(`/.well-known/lnurlp/${name}`, `https://${domain}`).toString();\n } else {\n return null;\n }\n let res = await _fetch4(lnurl);\n let body = await res.json();\n if (body.allowsNostr && body.nostrPubkey) {\n return body.callback;\n }\n } catch (err) {\n }\n return null;\n}\nfunction makeZapRequest({\n profile,\n event,\n amount,\n relays,\n comment = \"\"\n}) {\n if (!amount)\n throw new Error(\"amount not given\");\n if (!profile)\n throw new Error(\"profile not given\");\n let zr = {\n kind: 9734,\n created_at: Math.round(Date.now() / 1e3),\n content: comment,\n tags: [\n [\"p\", profile],\n [\"amount\", amount.toString()],\n [\"relays\", ...relays]\n ]\n };\n if (event && typeof event === \"string\") {\n zr.tags.push([\"e\", event]);\n }\n if (event && typeof event === \"object\") {\n if (isReplaceableKind(event.kind)) {\n const a = [\"a\", `${event.kind}:${event.pubkey}:`];\n zr.tags.push(a);\n } else if (isAddressableKind(event.kind)) {\n let d = event.tags.find(([t, v]) => t === \"d\" && v);\n if (!d)\n throw new Error(\"d tag not found or is empty\");\n const a = [\"a\", `${event.kind}:${event.pubkey}:${d[1]}`];\n zr.tags.push(a);\n }\n }\n return zr;\n}\nfunction validateZapRequest(zapRequestString) {\n let zapRequest;\n try {\n zapRequest = JSON.parse(zapRequestString);\n } catch (err) {\n return \"Invalid zap request JSON.\";\n }\n if (!validateEvent(zapRequest))\n return \"Zap request is not a valid Nostr event.\";\n if (!verifyEvent(zapRequest))\n return \"Invalid signature on zap request.\";\n let p = zapRequest.tags.find(([t, v]) => t === \"p\" && v);\n if (!p)\n return \"Zap request doesn't have a 'p' tag.\";\n if (!p[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'p' tag is not valid hex.\";\n let e = zapRequest.tags.find(([t, v]) => t === \"e\" && v);\n if (e && !e[1].match(/^[a-f0-9]{64}$/))\n return \"Zap request 'e' tag is not valid hex.\";\n let relays = zapRequest.tags.find(([t, v]) => t === \"relays\" && v);\n if (!relays)\n return \"Zap request doesn't have a 'relays' tag.\";\n return null;\n}\nfunction makeZapReceipt({\n zapRequest,\n preimage,\n bolt11,\n paidAt\n}) {\n let zr = JSON.parse(zapRequest);\n let tagsFromZapRequest = zr.tags.filter(([t]) => t === \"e\" || t === \"p\" || t === \"a\");\n let zap = {\n kind: 9735,\n created_at: Math.round(paidAt.getTime() / 1e3),\n content: \"\",\n tags: [...tagsFromZapRequest, [\"P\", zr.pubkey], [\"bolt11\", bolt11], [\"description\", zapRequest]]\n };\n if (preimage) {\n zap.tags.push([\"preimage\", preimage]);\n }\n return zap;\n}\n\n// nip98.ts\nvar nip98_exports = {};\n__export(nip98_exports, {\n getToken: () => getToken,\n hashPayload: () => hashPayload,\n unpackEventFromToken: () => unpackEventFromToken,\n validateEvent: () => validateEvent2,\n validateEventKind: () => validateEventKind,\n validateEventMethodTag: () => validateEventMethodTag,\n validateEventPayloadTag: () => validateEventPayloadTag,\n validateEventTimestamp: () => validateEventTimestamp,\n validateEventUrlTag: () => validateEventUrlTag,\n validateToken: () => validateToken\n});\nimport { sha256 as sha2564 } from \"@noble/hashes/sha256\";\nimport { bytesToHex as bytesToHex5 } from \"@noble/hashes/utils\";\nimport { base64 as base643 } from \"@scure/base\";\nvar _authorizationScheme = \"Nostr \";\nasync function getToken(loginUrl, httpMethod, sign, includeAuthorizationScheme = false, payload) {\n const event = {\n kind: HTTPAuth,\n tags: [\n [\"u\", loginUrl],\n [\"method\", httpMethod]\n ],\n created_at: Math.round(new Date().getTime() / 1e3),\n content: \"\"\n };\n if (payload) {\n event.tags.push([\"payload\", hashPayload(payload)]);\n }\n const signedEvent = await sign(event);\n const authorizationScheme = includeAuthorizationScheme ? _authorizationScheme : \"\";\n return authorizationScheme + base643.encode(utf8Encoder.encode(JSON.stringify(signedEvent)));\n}\nasync function validateToken(token, url, method) {\n const event = await unpackEventFromToken(token).catch((error) => {\n throw error;\n });\n const valid = await validateEvent2(event, url, method).catch((error) => {\n throw error;\n });\n return valid;\n}\nasync function unpackEventFromToken(token) {\n if (!token) {\n throw new Error(\"Missing token\");\n }\n token = token.replace(_authorizationScheme, \"\");\n const eventB64 = utf8Decoder.decode(base643.decode(token));\n if (!eventB64 || eventB64.length === 0 || !eventB64.startsWith(\"{\")) {\n throw new Error(\"Invalid token\");\n }\n const event = JSON.parse(eventB64);\n return event;\n}\nfunction validateEventTimestamp(event) {\n if (!event.created_at) {\n return false;\n }\n return Math.round(new Date().getTime() / 1e3) - event.created_at < 60;\n}\nfunction validateEventKind(event) {\n return event.kind === HTTPAuth;\n}\nfunction validateEventUrlTag(event, url) {\n const urlTag = event.tags.find((t) => t[0] === \"u\");\n if (!urlTag) {\n return false;\n }\n return urlTag.length > 0 && urlTag[1] === url;\n}\nfunction validateEventMethodTag(event, method) {\n const methodTag = event.tags.find((t) => t[0] === \"method\");\n if (!methodTag) {\n return false;\n }\n return methodTag.length > 0 && methodTag[1].toLowerCase() === method.toLowerCase();\n}\nfunction hashPayload(payload) {\n const hash = sha2564(utf8Encoder.encode(JSON.stringify(payload)));\n return bytesToHex5(hash);\n}\nfunction validateEventPayloadTag(event, payload) {\n const payloadTag = event.tags.find((t) => t[0] === \"payload\");\n if (!payloadTag) {\n return false;\n }\n const payloadHash = hashPayload(payload);\n return payloadTag.length > 0 && payloadTag[1] === payloadHash;\n}\nasync function validateEvent2(event, url, method, body) {\n if (!verifyEvent(event)) {\n throw new Error(\"Invalid nostr event, signature invalid\");\n }\n if (!validateEventKind(event)) {\n throw new Error(\"Invalid nostr event, kind invalid\");\n }\n if (!validateEventTimestamp(event)) {\n throw new Error(\"Invalid nostr event, created_at timestamp invalid\");\n }\n if (!validateEventUrlTag(event, url)) {\n throw new Error(\"Invalid nostr event, url tag invalid\");\n }\n if (!validateEventMethodTag(event, method)) {\n throw new Error(\"Invalid nostr event, method tag invalid\");\n }\n if (Boolean(body) && typeof body === \"object\" && Object.keys(body).length > 0) {\n if (!validateEventPayloadTag(event, body)) {\n throw new Error(\"Invalid nostr event, payload tag does not match request body hash\");\n }\n }\n return true;\n}\nexport {\n Relay,\n SimplePool,\n finalizeEvent,\n fakejson_exports as fj,\n generateSecretKey,\n getEventHash,\n getFilterLimit,\n getPublicKey,\n kinds_exports as kinds,\n matchFilter,\n matchFilters,\n mergeFilters,\n nip04_exports as nip04,\n nip05_exports as nip05,\n nip10_exports as nip10,\n nip11_exports as nip11,\n nip13_exports as nip13,\n nip17_exports as nip17,\n nip18_exports as nip18,\n nip19_exports as nip19,\n nip21_exports as nip21,\n nip25_exports as nip25,\n nip27_exports as nip27,\n nip28_exports as nip28,\n nip30_exports as nip30,\n nip39_exports as nip39,\n nip42_exports as nip42,\n nip44_exports as nip44,\n nip47_exports as nip47,\n nip54_exports as nip54,\n nip57_exports as nip57,\n nip59_exports as nip59,\n nip98_exports as nip98,\n parseReferences,\n serializeEvent,\n sortEvents,\n utils_exports as utils,\n validateEvent,\n verifiedSymbol,\n verifyEvent\n};\n"],"names":["__defProp","Object","defineProperty","__export","target","all","name","get","enumerable","verifiedSymbol","Symbol","validateEvent","event","kind","content","created_at","pubkey","match","Array","isArray","tags","i2","length","tag","j","utils_exports","Queue","QueueNode","binarySearch","insertEventIntoAscendingList","insertEventIntoDescendingList","normalizeURL","utf8Decoder","utf8Encoder","TextDecoder","TextEncoder","url","indexOf","p","URL","pathname","replace","endsWith","slice","port","protocol","searchParams","sort","hash","toString","sortedArray","idx","found","b","id","splice","arr","compare","start","end","mid","Math","floor","cmp","value","next","prev","constructor","message","this","first","last","enqueue","newNode","dequeue","target2","serializeEvent","evt","Error","JSON","stringify","getEventHash","eventHash","sha256","encode","bytesToHex","i","generateSecretKey","schnorr","utils","randomPrivateKey","getPublicKey","secretKey","finalizeEvent","t","sig","sign","verifyEvent","valid","verify","err","kinds_exports","isRegularKind","includes","isReplaceableKind","isEphemeralKind","isAddressableKind","Application","BadgeAward","BadgeDefinition","BlockedRelaysList","BookmarkList","Bookmarksets","Calendar","CalendarEventRSVP","ChannelCreation","ChannelHideMessage","ChannelMessage","ChannelMetadata","ChannelMuteUser","ClassifiedListing","ClientAuth","CommunitiesList","CommunityDefinition","CommunityPostApproval","Contacts","CreateOrUpdateProduct","CreateOrUpdateStall","Curationsets","Date","Date2","DirectMessageRelaysList","DraftClassifiedListing","DraftLong","Emojisets","EncryptedDirectMessage","EventDeletion","FileMetadata","FileServerPreference","Followsets","GenericRepost","Genericlists","GiftWrap","HTTPAuth","Handlerinformation","Handlerrecommendation","Highlights","InterestsList","Interestsets","JobFeedback","JobRequest","JobResult","Label","LightningPubRPC","LiveChatMessage","LiveEvent","LongFormArticle","Metadata","Mutelist","NWCWalletInfo","NWCWalletRequest","NWCWalletResponse","NostrConnect","OpenTimestamps","Pinlist","PrivateDirectMessage","ProblemTracker","ProfileBadges","PublicChatsList","Reaction","RecommendRelay","RelayList","Relaysets","Report","Reporting","Repost","Seal","SearchRelaysList","ShortTextNote","Time","UserEmojiList","UserStatuses","Zap","ZapGoal","ZapRequest","classifyKind","isKind","isParameterizedReplaceableKind","kindAsArray","fakejson_exports","getHex64","json","field","len","s","getInt","sliced","min","parseInt","getSubscriptionId","pstart","pend","matchEventId","matchEventPubkey","matchEventKind","nip42_exports","makeAuthEvent","relayURL","challenge","now","WebSocket","nip19_exports","BECH32_REGEX","Bech32MaxSize","NostrTypeGuard","decode","decodeNostrURI","encodeBytes","naddrEncode","neventEncode","noteEncode","nprofileEncode","npubEncode","nsecEncode","isNProfile","test","isNEvent","isNAddr","isNSec","isNPub","isNote","isNcryptsec","nip19code","startsWith","substring","_err","type","data","nip19","prefix","words","bech32","Uint8Array","fromWords","tlv","parseTLV","bytesToHex2","relays","map","d","author","identifier","result","rest","l","v","push","key","hex","hexToBytes","encodeBech32","toWords","bytes","profile","encodeTLV","kindArray","integerToUint8Array","number","uint8Array","addr","ArrayBuffer","DataView","setUint32","entries","reverse","forEach","vs","entry","set","concatBytes","nip04_exports","async","encrypt","text","privkey","bytesToHex3","normalizedKey","getNormalizedX","secp256k1","getSharedSecret","iv","from","randomBytes","plaintext","ciphertext","cbc","base64","buffer","decrypt","ctb64","ivb64","split","nip05_exports","NIP05_REGEX","isNip05","isValid","queryProfile","searchDomain","useFetchImplementation","_fetch","fetch","_","fetchImplementation","domain","query","res","redirect","status","names","fullname","_e","nip05","nip10_exports","parse","reply","root","mentions","profiles","quotes","maybeParent","maybeRoot","eTagEventId","eTagRelayUrl","eTagMarker","eTagAuthor","eventPointer","ref","find","nip11_exports","fetchRelayInformation","useFetchImplementation2","_fetch2","headers","Accept","nip13_exports","getPow","count","nibble","clz32","minePow","unsigned","difficulty","now2","getTime","fastEventHash","bytesToHex4","sha2562","nip17_exports","unwrapEvent","unwrapEvent2","unwrapManyEvents","unwrapManyEvents2","wrapEvent","wrapEvent2","wrapManyEvents","wrapManyEvents2","nip59_exports","createRumor","createSeal","createWrap","nip44_exports","decrypt2","encrypt2","getConversationKey","v2","minPlaintextSize","maxPlaintextSize","privkeyA","pubkeyB","sharedX","secp256k12","subarray","hkdf_extract","sha2563","getMessageKeys","conversationKey","nonce","keys","hkdf_expand","chacha_key","chacha_nonce","hmac_key","calcPaddedLen","Number","isSafeInteger","nextPower","log2","chunk","pad","unpadded","unpaddedLen","writeU16BE","num","setUint16","suffix","concatBytes2","hmacAad","aad","combined","hmac","randomBytes2","padded","chacha20","mac","base642","payload","decodePayload","plen","error","dlen","vers","calculatedMac","equalBytes","unpad","getUint16","round","randomNow","random","nip44ConversationKey","privateKey","publicKey","nip44Encrypt","nip44Decrypt","rumor","recipientPublicKey","seal","randomKey","senderPrivateKey","recipientsPublicKeys","senderPublicKey","wrappeds","wrap","recipientPrivateKey","unwrappedSeal","wrappedEvents","unwrappedEvents","e","a","recipient","conversationTitle","replyTo","createEvent","recipients","baseEvent","ceil","relayUrl","eventId","nip18_exports","finishRepostEvent","reposted","String","getRepostedEventPointer","lastETag","lastPTag","filter","x","getRepostedEvent","skipVerification","pointer","repostedEvent","nip21_exports","NOSTR_URI_REGEX","parse2","RegExp","source","uri","decoded","nip25_exports","finishReactionEvent","reacted","inheritedTags","getReactedEventPointer","nip27_exports","parse3","noCharacter","noURLCharacter","max","prevIndex","index","u","m","prefixLen","hostname","nip28_exports","channelCreateEvent","channelHideMessageEvent","channelMessageEvent","channelMetadataEvent","channelMuteUserEvent","channel_create_event_id","relay_url","reply_to_channel_message_event_id","channel_message_event_id","pubkey_to_mute","nip30_exports","EMOJI_SHORTCODE_REGEX","matchAll","regex","replaceAll","matches","shortcode","replacer","_fetch3","nip39_exports","useFetchImplementation3","validateGithub","username","proof","nip47_exports","parseConnectionString","connectionString","relay","secret","makeNwcRequestEvent","invoice","method","params","encryptedContent","eventTemplate","nip54_exports","normalizeIdentifier","trim","toLowerCase","normalize","char","join","_fetch4","nip57_exports","getZapEndpoint","makeZapReceipt","makeZapRequest","useFetchImplementation4","validateZapRequest","metadata","lnurl","lud06","lud16","bech322","body","allowsNostr","nostrPubkey","callback","amount","comment","zr","zapRequestString","zapRequest","preimage","bolt11","paidAt","tagsFromZapRequest","zap","nip98_exports","getToken","hashPayload","unpackEventFromToken","validateEvent2","validateEventKind","validateEventMethodTag","validateEventPayloadTag","validateEventTimestamp","validateEventUrlTag","validateToken","_authorizationScheme","loginUrl","httpMethod","includeAuthorizationScheme","signedEvent","base643","token","catch","eventB64","urlTag","methodTag","sha2564","bytesToHex5","payloadTag","payloadHash","Boolean"],"mappings":"qwBAAA,IAAIA,EAAYC,OAAOC,eACnBC,SAAW,CAACC,EAAQC,KACtB,IAAK,IAAIC,KAAQD,EACfL,EAAUI,EAAQE,EAAM,CAAEC,IAAKF,EAAIC,GAAOE,YAAY,GAAO,EAQ7DC,EAAiBC,OAAO,YAE5B,SAASC,cAAcC,GACrB,KAAcA,aAFuBX,QAGnC,OAAO,EACT,GAA0B,iBAAfW,EAAMC,KACf,OAAO,EACT,GAA6B,iBAAlBD,EAAME,QACf,OAAO,EACT,GAAgC,iBAArBF,EAAMG,WACf,OAAO,EACT,GAA4B,iBAAjBH,EAAMI,OACf,OAAO,EACT,IAAKJ,EAAMI,OAAOC,MAAM,kBACtB,OAAO,EACT,IAAKC,MAAMC,QAAQP,EAAMQ,MACvB,OAAO,EACT,IAAK,IAAIC,EAAK,EAAGA,EAAKT,EAAMQ,KAAKE,OAAQD,IAAM,CAC7C,IAAIE,EAAMX,EAAMQ,KAAKC,GACrB,IAAKH,MAAMC,QAAQI,GACjB,OAAO,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAID,OAAQE,IAC9B,GAAsB,iBAAXD,EAAIC,GACb,OAAO,CAEb,CACA,OAAO,CACT,CAcG,IAACC,EAAgB,CAAA,EACpBtB,SAASsB,EAAe,CACtBC,MAAO,IAAMA,EACbC,UAAW,IAAMA,EACjBC,aAAc,IAAMA,aACpBC,6BAA8B,IAAMA,6BACpCC,8BAA+B,IAAMA,8BACrCC,aAAc,IAAMA,aACpBC,YAAa,IAAMA,EACnBC,YAAa,IAAMA,IAErB,IAAID,EAAc,IAAIE,YAAY,SAC9BD,EAAc,IAAIE,YACtB,SAASJ,aAAaK,IACO,IAAvBA,EAAIC,QAAQ,SACdD,EAAM,SAAWA,GACnB,IAAIE,EAAI,IAAIC,IAAIH,GAQhB,OAPAE,EAAEE,SAAWF,EAAEE,SAASC,QAAQ,OAAQ,KACpCH,EAAEE,SAASE,SAAS,OACtBJ,EAAEE,SAAWF,EAAEE,SAASG,MAAM,QACjB,OAAXL,EAAEM,MAAgC,QAAfN,EAAEO,UAAiC,QAAXP,EAAEM,MAAiC,SAAfN,EAAEO,YACnEP,EAAEM,KAAO,IACXN,EAAEQ,aAAaC,OACfT,EAAEU,KAAO,GACFV,EAAEW,UACX,CACA,SAASnB,8BAA8BoB,EAAatC,GAClD,MAAOuC,EAAKC,GAASxB,aAAasB,GAAcG,GAC1CzC,EAAM0C,KAAOD,EAAEC,GACV,EACL1C,EAAMG,aAAesC,EAAEtC,YAClB,EACFsC,EAAEtC,WAAaH,EAAMG,aAK9B,OAHKqC,GACHF,EAAYK,OAAOJ,EAAK,EAAGvC,GAEtBsC,CACT,CACA,SAASrB,6BAA6BqB,EAAatC,GACjD,MAAOuC,EAAKC,GAASxB,aAAasB,GAAcG,GAC1CzC,EAAM0C,KAAOD,EAAEC,GACV,EACL1C,EAAMG,aAAesC,EAAEtC,YAClB,EACFH,EAAMG,WAAasC,EAAEtC,aAK9B,OAHKqC,GACHF,EAAYK,OAAOJ,EAAK,EAAGvC,GAEtBsC,CACT,CACA,SAAStB,aAAa4B,EAAKC,GACzB,IAAIC,EAAQ,EACRC,EAAMH,EAAIlC,OAAS,EACvB,KAAOoC,GAASC,GAAK,CACnB,MAAMC,EAAMC,KAAKC,OAAOJ,EAAQC,GAAO,GACjCI,EAAMN,EAAQD,EAAII,IACxB,GAAY,IAARG,EACF,MAAO,CAACH,GAAK,GAEXG,EAAM,EACRJ,EAAMC,EAAM,EAEZF,EAAQE,EAAM,CAElB,CACA,MAAO,CAACF,GAAO,EACjB,CACA,IAAI/B,EAAY,MACdqC,MACAC,KAAO,KACPC,KAAO,KACP,WAAAC,CAAYC,GACVC,KAAKL,MAAQI,CACf,GAEE1C,EAAQ,MACV4C,MACAC,KACA,WAAAJ,GACEE,KAAKC,MAAQ,KACbD,KAAKE,KAAO,IACd,CACA,OAAAC,CAAQR,GACN,MAAMS,EAAU,IAAI9C,EAAUqC,GAa9B,OAZKK,KAAKE,KAGCF,KAAKE,OAASF,KAAKC,OAC5BD,KAAKE,KAAOE,EACZJ,KAAKE,KAAKL,KAAOG,KAAKC,MACtBD,KAAKC,MAAML,KAAOQ,IAElBA,EAAQP,KAAOG,KAAKE,KACpBF,KAAKE,KAAKN,KAAOQ,EACjBJ,KAAKE,KAAOE,IATZJ,KAAKC,MAAQG,EACbJ,KAAKE,KAAOE,IAUP,CACT,CACA,OAAAC,GACE,IAAKL,KAAKC,MACR,OAAO,KACT,GAAID,KAAKC,QAAUD,KAAKE,KAAM,CAC5B,MAAMI,EAAUN,KAAKC,MAGrB,OAFAD,KAAKC,MAAQ,KACbD,KAAKE,KAAO,KACLI,EAAQX,KACjB,CACA,MAAM5D,EAASiE,KAAKC,MAEpB,OADAD,KAAKC,MAAQlE,EAAO6D,KACb7D,EAAO4D,KAChB,GAqCF,SAASY,eAAeC,GACtB,IAAKlE,cAAckE,GACjB,MAAM,IAAIC,MAAM,0DAClB,OAAOC,KAAKC,UAAU,CAAC,EAAGH,EAAI7D,OAAQ6D,EAAI9D,WAAY8D,EAAIhE,KAAMgE,EAAIzD,KAAMyD,EAAI/D,SAChF,CACA,SAASmE,aAAarE,GACpB,IAAIsE,EAAYC,EAAAA,OAAOlD,EAAYmD,OAAOR,eAAehE,KACzD,OAAOyE,EAAAA,WAAWH,EACpB,CACA,IAAII,EAAI,IA1CC,MACP,iBAAAC,GACE,OAAOC,EAAAA,QAAQC,MAAMC,kBACvB,CACA,YAAAC,CAAaC,GACX,OAAOP,aAAWG,EAAAA,QAAQG,aAAaC,GACzC,CACA,aAAAC,CAAcC,EAAGF,GACf,MAAMhF,EAAQkF,EAKd,OAJAlF,EAAMI,OAASqE,EAAAA,WAAWG,EAAAA,QAAQG,aAAaC,IAC/ChF,EAAM0C,GAAK2B,aAAarE,GACxBA,EAAMmF,IAAMV,EAAAA,WAAWG,EAAAA,QAAQQ,KAAKf,aAAarE,GAAQgF,IACzDhF,EAAMH,IAAkB,EACjBG,CACT,CACA,WAAAqF,CAAYrF,GACV,GAAqC,kBAA1BA,EAAMH,GACf,OAAOG,EAAMH,GACf,MAAMuC,EAAOiC,aAAarE,GAC1B,GAAIoC,IAASpC,EAAM0C,GAEjB,OADA1C,EAAMH,IAAkB,GACjB,EAET,IACE,MAAMyF,EAAQV,EAAAA,QAAQW,OAAOvF,EAAMmF,IAAK/C,EAAMpC,EAAMI,QAEpD,OADAJ,EAAMH,GAAkByF,EACjBA,CACT,CAAE,MAAOE,GAEP,OADAxF,EAAMH,IAAkB,GACjB,CACT,CACF,GAYE8E,EAAoBD,EAAEC,kBACtBI,EAAeL,EAAEK,aACjBE,EAAgBP,EAAEO,cAClBI,EAAcX,EAAEW,YAGhBI,EAAgB,CAAA,EAuFpB,SAASC,cAAczF,GACrB,OAAO,KAAOA,GAAQA,EAAO,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAI0F,SAAS1F,EAC7F,CACA,SAAS2F,kBAAkB3F,GACzB,MAAO,CAAC,EAAG,GAAG0F,SAAS1F,IAAS,KAAOA,GAAQA,EAAO,GACxD,CACA,SAAS4F,gBAAgB5F,GACvB,OAAO,KAAOA,GAAQA,EAAO,GAC/B,CACA,SAAS6F,kBAAkB7F,GACzB,OAAO,KAAOA,GAAQA,EAAO,GAC/B,CAjGAV,SAASkG,EAAe,CACtBM,YAAa,IAAMA,GACnBC,WAAY,IAAMA,EAClBC,gBAAiB,IAAMA,GACvBC,kBAAmB,IAAMA,GACzBC,aAAc,IAAMA,GACpBC,aAAc,IAAMA,GACpBC,SAAU,IAAMA,GAChBC,kBAAmB,IAAMA,GACzBC,gBAAiB,IAAMA,EACvBC,mBAAoB,IAAMA,EAC1BC,eAAgB,IAAMA,EACtBC,gBAAiB,IAAMA,EACvBC,gBAAiB,IAAMA,EACvBC,kBAAmB,IAAMA,GACzBC,WAAY,IAAMA,GAClBC,gBAAiB,IAAMA,GACvBC,oBAAqB,IAAMA,GAC3BC,sBAAuB,IAAMA,EAC7BC,SAAU,IAAMA,EAChBC,sBAAuB,IAAMA,GAC7BC,oBAAqB,IAAMA,GAC3BC,aAAc,IAAMA,GACpBC,KAAM,IAAMC,GACZC,wBAAyB,IAAMA,GAC/BC,uBAAwB,IAAMA,GAC9BC,UAAW,IAAMA,GACjBC,UAAW,IAAMA,GACjBC,uBAAwB,IAAMA,EAC9BC,cAAe,IAAMA,EACrBC,aAAc,IAAMA,EACpBC,qBAAsB,IAAMA,GAC5BC,WAAY,IAAMA,GAClBC,cAAe,IAAMA,EACrBC,aAAc,IAAMA,GACpBC,SAAU,IAAMA,EAChBC,SAAU,IAAMA,GAChBC,mBAAoB,IAAMA,GAC1BC,sBAAuB,IAAMA,GAC7BC,WAAY,IAAMA,GAClBC,cAAe,IAAMA,GACrBC,aAAc,IAAMA,GACpBC,YAAa,IAAMA,EACnBC,WAAY,IAAMA,EAClBC,UAAW,IAAMA,EACjBC,MAAO,IAAMA,EACbC,gBAAiB,IAAMA,GACvBC,gBAAiB,IAAMA,EACvBC,UAAW,IAAMA,GACjBC,gBAAiB,IAAMA,GACvBC,SAAU,IAAMA,EAChBC,SAAU,IAAMA,GAChBC,cAAe,IAAMA,GACrBC,iBAAkB,IAAMA,GACxBC,kBAAmB,IAAMA,GACzBC,aAAc,IAAMA,GACpBC,eAAgB,IAAMA,EACtBC,QAAS,IAAMA,GACfC,qBAAsB,IAAMA,EAC5BC,eAAgB,IAAMA,EACtBC,cAAe,IAAMA,GACrBC,gBAAiB,IAAMA,GACvBC,SAAU,IAAMA,EAChBC,eAAgB,IAAMA,EACtBC,UAAW,IAAMA,GACjBC,UAAW,IAAMA,GACjBC,OAAQ,IAAMA,EACdC,UAAW,IAAMA,EACjBC,OAAQ,IAAMA,EACdC,KAAM,IAAMA,EACZC,iBAAkB,IAAMA,GACxBC,cAAe,IAAMA,EACrBC,KAAM,IAAMA,GACZC,cAAe,IAAMA,GACrBC,aAAc,IAAMA,GACpBC,IAAK,IAAMA,GACXC,QAAS,IAAMA,EACfC,WAAY,IAAMA,GAClBC,aAAc,IAAMA,aACpB/E,kBAAmB,IAAMA,kBACzBD,gBAAiB,IAAMA,gBACvBiF,OAAQ,IAAMA,OACdC,+BAAgC,IAAMA,EACtCrF,cAAe,IAAMA,cACrBE,kBAAmB,IAAMA,oBAc3B,IAAImF,EAAiCjF,kBACrC,SAAS+E,aAAa5K,GACpB,OAAIyF,cAAczF,GACT,UACL2F,kBAAkB3F,GACb,cACL4F,gBAAgB5F,GACX,YACL6F,kBAAkB7F,GACb,gBACF,SACT,CACA,SAAS6K,OAAO9K,EAAOC,GACrB,MAAM+K,EAAc/K,aAAgBK,MAAQL,EAAO,CAACA,GACpD,OAAOF,cAAcC,IAAUgL,EAAYrF,SAAS3F,EAAMC,QAAS,CACrE,CACA,IAAIgJ,EAAW,EACXqB,EAAgB,EAChBR,EAAiB,EACjB7C,EAAW,EACXU,EAAyB,EACzBC,EAAgB,EAChBuC,EAAS,EACTN,EAAW,EACX7D,EAAa,EACboE,EAAO,GACPX,EAAuB,GACvBzB,EAAgB,GAChBzB,EAAkB,GAClBG,EAAkB,GAClBD,EAAiB,GACjBD,EAAqB,GACrBG,EAAkB,GAClB4C,EAAiB,KACjBrB,EAAW,KACXL,EAAe,KACfiB,EAAkB,KAClBY,EAAiB,KACjBO,EAAS,KACTC,EAAY,KACZtB,EAAQ,KACR5B,EAAwB,KACxB0B,EAAa,KACbC,EAAY,KACZF,EAAc,IACdkC,EAAU,KACVC,GAAa,KACbF,GAAM,KACNpC,GAAa,KACbY,GAAW,IACXM,GAAU,MACVO,GAAY,MACZ5D,GAAe,MACfW,GAAkB,MAClB8C,GAAkB,MAClB1D,GAAoB,MACpBmE,GAAmB,MACnB9B,GAAgB,MAChBiC,GAAgB,MAChBjD,GAA0B,MAC1BO,GAAuB,MACvBqB,GAAgB,MAChBN,GAAkB,KAClBhC,GAAa,MACbuC,GAAmB,MACnBC,GAAoB,MACpBC,GAAe,MACfnB,GAAW,MACXJ,GAAa,IACbE,GAAe,MACf+B,GAAY,MACZ5D,GAAe,MACfgB,GAAe,MACfuC,GAAgB,MAChB1D,GAAkB,MAClBuC,GAAe,MACfrB,GAAsB,MACtBD,GAAwB,MACxB8B,GAAkB,MAClBvB,GAAY,MACZC,GAAY,MACZ3B,GAAc,MACdgD,GAAY,MACZ0B,GAAe,MACf7D,GAAoB,MACpBY,GAAyB,MACzBF,GAAQ,MACRiD,GAAO,MACPlE,GAAW,MACXC,GAAoB,MACpB+B,GAAwB,MACxBD,GAAqB,MACrBrB,GAAsB,MA8EtBkE,GAAmB,CAAA,EASvB,SAASC,SAASC,EAAMC,GACtB,IAAIC,EAAMD,EAAM1K,OAAS,EACrB6B,EAAM4I,EAAK1J,QAAQ,IAAI2J,OAAaC,EACpCC,EAAIH,EAAKpJ,MAAMQ,GAAKd,QAAQ,KAAOc,EAAM,EAC7C,OAAO4I,EAAKpJ,MAAMuJ,EAAGA,EAAI,GAC3B,CACA,SAASC,OAAOJ,EAAMC,GACpB,IAAIC,EAAMD,EAAM1K,OACZ6B,EAAM4I,EAAK1J,QAAQ,IAAI2J,OAAaC,EAAM,EAC1CG,EAASL,EAAKpJ,MAAMQ,GACpBQ,EAAME,KAAKwI,IAAID,EAAO/J,QAAQ,KAAM+J,EAAO/J,QAAQ,MACvD,OAAOiK,SAASF,EAAOzJ,MAAM,EAAGgB,GAAM,GACxC,CACA,SAAS4I,kBAAkBR,GACzB,IAAI5I,EAAM4I,EAAKpJ,MAAM,EAAG,IAAIN,QAAQ,WACpC,IAAY,IAARc,EACF,OAAO,KACT,IAAIqJ,EAAST,EAAKpJ,MAAMQ,EAAM,EAAI,GAAGd,QAAQ,KAC7C,IAAe,IAAXmK,EACF,OAAO,KACT,IAAI9I,EAAQP,EAAM,EAAI,EAAIqJ,EACtBC,EAAOV,EAAKpJ,MAAMe,EAAQ,EAAG,IAAIrB,QAAQ,KAC7C,IAAa,IAAToK,EACF,OAAO,KACT,IAAI9I,EAAMD,EAAQ,EAAI+I,EACtB,OAAOV,EAAKpJ,MAAMe,EAAQ,EAAGC,EAC/B,CACA,SAAS+I,aAAaX,EAAMzI,GAC1B,OAAOA,IAAOwI,SAASC,EAAM,KAC/B,CACA,SAASY,iBAAiBZ,EAAM/K,GAC9B,OAAOA,IAAW8K,SAASC,EAAM,SACnC,CACA,SAASa,eAAeb,EAAMlL,GAC5B,OAAOA,IAASsL,OAAOJ,EAAM,OAC/B,CA3CA5L,SAAS0L,GAAkB,CACzBC,SAAU,IAAMA,SAChBK,OAAQ,IAAMA,OACdI,kBAAmB,IAAMA,kBACzBG,aAAc,IAAMA,aACpBE,eAAgB,IAAMA,eACtBD,iBAAkB,IAAMA,mBAwCvB,IAACE,GAAgB,CAAA,EAIpB,SAASC,cAAcC,EAAUC,GAC/B,MAAO,CACLnM,KAAM4G,GACN1G,WAAY8C,KAAKC,MAAMmE,KAAKgF,MAAQ,KACpC7L,KAAM,CACJ,CAAC,QAAS2L,GACV,CAAC,YAAaC,IAEhBlM,QAAS,GAEb,CAbAX,SAAS0M,GAAe,CACtBC,cAAe,IAAMA,gBAoVvB,IACeI,SACf,CAAE,MACF,CA6LA,IACgBA,SAChB,CAAE,MACF,CAQG,IAACC,GAAgB,CAAA,EACpBhN,SAASgN,GAAe,CACtBC,aAAc,IAAMA,GACpBC,cAAe,IAAMA,GACrBC,eAAgB,IAAMA,GACtBC,OAAQ,IAAMA,OACdC,eAAgB,IAAMA,eACtBC,YAAa,IAAMA,YACnBC,YAAa,IAAMA,YACnBC,aAAc,IAAMA,aACpBC,WAAY,IAAMA,WAClBC,eAAgB,IAAMA,eACtBC,WAAY,IAAMA,WAClBC,WAAY,IAAMA,aAIpB,IAAIT,GAAiB,CACnBU,WAAahK,GAAU,sBAAsBiK,KAAKjK,GAAS,IAC3DkK,SAAWlK,GAAU,oBAAoBiK,KAAKjK,GAAS,IACvDmK,QAAUnK,GAAU,mBAAmBiK,KAAKjK,GAAS,IACrDoK,OAASpK,GAAU,qBAAqBiK,KAAKjK,GAAS,IACtDqK,OAASrK,GAAU,qBAAqBiK,KAAKjK,GAAS,IACtDsK,OAAStK,GAAU,kBAAkBiK,KAAKjK,GAAS,IACnDuK,YAAcvK,GAAU,uBAAuBiK,KAAKjK,GAAS,KAE3DqJ,GAAgB,IAChBD,GAAe,2DASnB,SAASI,eAAegB,GACtB,IAGE,OAFIA,EAAUC,WAAW,YACvBD,EAAYA,EAAUE,UAAU,IAC3BnB,OAAOiB,EAChB,CAAE,MAAOG,GACP,MAAO,CAAEC,KAAM,UAAWC,KAAM,KAClC,CACF,CACA,SAAStB,OAAOuB,GACd,IAAIC,OAAEA,EAAMC,MAAEA,GAAUC,EAAAA,OAAO1B,OAAOuB,EAAOzB,IACzCwB,EAAO,IAAIK,WAAWD,EAAAA,OAAOE,UAAUH,IAC3C,OAAQD,GACN,IAAK,WAAY,CACf,IAAIK,EAAMC,SAASR,GACnB,IAAKO,EAAI,KAAK,GACZ,MAAM,IAAItK,MAAM,8BAClB,GAAyB,KAArBsK,EAAI,GAAG,GAAG9N,OACZ,MAAM,IAAIwD,MAAM,4BAClB,MAAO,CACL8J,KAAM,WACNC,KAAM,CACJ7N,OAAQsO,EAAAA,WAAYF,EAAI,GAAG,IAC3BG,OAAQH,EAAI,GAAKA,EAAI,GAAGI,KAAKC,GAAMzN,EAAYuL,OAAOkC,KAAM,IAGlE,CACA,IAAK,SAAU,CACb,IAAIL,EAAMC,SAASR,GACnB,IAAKO,EAAI,KAAK,GACZ,MAAM,IAAItK,MAAM,4BAClB,GAAyB,KAArBsK,EAAI,GAAG,GAAG9N,OACZ,MAAM,IAAIwD,MAAM,4BAClB,GAAIsK,EAAI,IAA2B,KAArBA,EAAI,GAAG,GAAG9N,OACtB,MAAM,IAAIwD,MAAM,4BAClB,GAAIsK,EAAI,IAA2B,IAArBA,EAAI,GAAG,GAAG9N,OACtB,MAAM,IAAIwD,MAAM,2BAClB,MAAO,CACL8J,KAAM,SACNC,KAAM,CACJvL,GAAIgM,EAAAA,WAAYF,EAAI,GAAG,IACvBG,OAAQH,EAAI,GAAKA,EAAI,GAAGI,KAAKC,GAAMzN,EAAYuL,OAAOkC,KAAM,GAC5DC,OAAQN,EAAI,KAAK,GAAKE,aAAYF,EAAI,GAAG,SAAM,EAC/CvO,KAAMuO,EAAI,KAAK,GAAK9C,SAASgD,aAAYF,EAAI,GAAG,IAAK,SAAM,GAGjE,CACA,IAAK,QAAS,CACZ,IAAIA,EAAMC,SAASR,GACnB,IAAKO,EAAI,KAAK,GACZ,MAAM,IAAItK,MAAM,2BAClB,IAAKsK,EAAI,KAAK,GACZ,MAAM,IAAItK,MAAM,2BAClB,GAAyB,KAArBsK,EAAI,GAAG,GAAG9N,OACZ,MAAM,IAAIwD,MAAM,4BAClB,IAAKsK,EAAI,KAAK,GACZ,MAAM,IAAItK,MAAM,2BAClB,GAAyB,IAArBsK,EAAI,GAAG,GAAG9N,OACZ,MAAM,IAAIwD,MAAM,2BAClB,MAAO,CACL8J,KAAM,QACNC,KAAM,CACJc,WAAY3N,EAAYuL,OAAO6B,EAAI,GAAG,IACtCpO,OAAQsO,EAAAA,WAAYF,EAAI,GAAG,IAC3BvO,KAAMyL,SAASgD,EAAAA,WAAYF,EAAI,GAAG,IAAK,IACvCG,OAAQH,EAAI,GAAKA,EAAI,GAAGI,KAAKC,GAAMzN,EAAYuL,OAAOkC,KAAM,IAGlE,CACA,IAAK,OACH,MAAO,CAAEb,KAAMG,EAAQF,QACzB,IAAK,OACL,IAAK,OACH,MAAO,CAAED,KAAMG,EAAQF,KAAMS,EAAAA,WAAYT,IAC3C,QACE,MAAM,IAAI/J,MAAM,kBAAkBiK,KAExC,CACA,SAASM,SAASR,GAChB,IAAIe,EAAS,CAAA,EACTC,EAAOhB,EACX,KAAOgB,EAAKvO,OAAS,GAAG,CACtB,IAAIwE,EAAI+J,EAAK,GACTC,EAAID,EAAK,GACTE,EAAIF,EAAKlN,MAAM,EAAG,EAAImN,GAE1B,GADAD,EAAOA,EAAKlN,MAAM,EAAImN,GAClBC,EAAEzO,OAASwO,EACb,MAAM,IAAIhL,MAAM,kCAAkCgB,KACpD8J,EAAO9J,GAAK8J,EAAO9J,IAAM,GACzB8J,EAAO9J,GAAGkK,KAAKD,EACjB,CACA,OAAOH,CACT,CACA,SAAS7B,WAAWkC,GAClB,OAAOxC,YAAY,OAAQwC,EAC7B,CACA,SAASnC,WAAWoC,GAClB,OAAOzC,YAAY,OAAQ0C,EAAAA,WAAWD,GACxC,CACA,SAAStC,WAAWsC,GAClB,OAAOzC,YAAY,OAAQ0C,EAAAA,WAAWD,GACxC,CACA,SAASE,aAAarB,EAAQF,GAC5B,IAAIG,EAAQC,EAAAA,OAAOoB,QAAQxB,GAC3B,OAAOI,EAAAA,OAAO7J,OAAO2J,EAAQC,EAAO3B,GACtC,CACA,SAASI,YAAYsB,EAAQuB,GAC3B,OAAOF,aAAarB,EAAQuB,EAC9B,CACA,SAASzC,eAAe0C,GAKtB,OAAOH,aAAa,WAJTI,UAAU,CACnB,EAAG,CAACL,EAAAA,WAAWI,EAAQvP,SACvB,GAAIuP,EAAQhB,QAAU,IAAIC,KAAKpN,GAAQH,EAAYmD,OAAOhD,OAG9D,CACA,SAASuL,aAAa/M,GACpB,IAAI6P,EAUJ,YATmB,IAAf7P,EAAMC,OACR4P,EA/HJ,SAASC,oBAAoBC,GAC3B,MAAMC,EAAa,IAAI1B,WAAW,GAKlC,OAJA0B,EAAW,GAAKD,GAAU,GAAK,IAC/BC,EAAW,GAAKD,GAAU,GAAK,IAC/BC,EAAW,GAAKD,GAAU,EAAI,IAC9BC,EAAW,GAAc,IAATD,EACTC,CACT,CAwHgBF,CAAoB9P,EAAMC,OAQjCuP,aAAa,SANTI,UAAU,CACnB,EAAG,CAACL,EAAAA,WAAWvP,EAAM0C,KACrB,GAAI1C,EAAM2O,QAAU,IAAIC,KAAKpN,GAAQH,EAAYmD,OAAOhD,KACxD,EAAGxB,EAAM8O,OAAS,CAACS,EAAAA,WAAWvP,EAAM8O,SAAW,GAC/C,EAAGe,EAAY,CAAC,IAAIvB,WAAWuB,IAAc,KAGjD,CACA,SAAS/C,YAAYmD,GACnB,IAAIhQ,EAAO,IAAIiQ,YAAY,GAQ3B,OAPA,IAAIC,SAASlQ,GAAMmQ,UAAU,EAAGH,EAAKhQ,MAAM,GAOpCuP,aAAa,QANTI,UAAU,CACnB,EAAG,CAACvO,EAAYmD,OAAOyL,EAAKlB,aAC5B,GAAIkB,EAAKtB,QAAU,IAAIC,KAAKpN,GAAQH,EAAYmD,OAAOhD,KACvD,EAAG,CAAC+N,EAAAA,WAAWU,EAAK7P,SACpB,EAAG,CAAC,IAAIkO,WAAWrO,MAGvB,CACA,SAAS2P,UAAUpB,GACjB,IAAI6B,EAAU,GAUd,OATAhR,OAAOgR,QAAQ7B,GAAK8B,UAAUC,SAAQ,EAAErL,EAAGsL,MACzCA,EAAGD,SAASpB,IACV,IAAIsB,EAAQ,IAAInC,WAAWa,EAAEzO,OAAS,GACtC+P,EAAMC,IAAI,CAAChF,SAASxG,IAAK,GACzBuL,EAAMC,IAAI,CAACvB,EAAEzO,QAAS,GACtB+P,EAAMC,IAAIvB,EAAG,GACbkB,EAAQjB,KAAKqB,EAAM,GACnB,IAEGE,EAAAA,eAAeN,EACxB,CA4FG,IAACO,GAAgB,CAAA,EASpBC,eAAeC,QAAQ9L,EAAW5E,EAAQ2Q,GACxC,MAAMC,EAAUhM,aAAqBsJ,WAAa2C,EAAAA,WAAYjM,GAAaA,EAErEkM,EAAgBC,eADVC,EAAAA,UAAUC,gBAAgBL,EAAS,KAAO5Q,IAEtD,IAAIkR,EAAKhD,WAAWiD,KAAKC,EAAAA,YAAY,KACjCC,EAAYpQ,EAAYmD,OAAOuM,GAC/BW,EAAaC,EAAAA,IAAIT,EAAeI,GAAIR,QAAQW,GAGhD,MAAO,GAFKG,EAAAA,OAAOpN,OAAO,IAAI8J,WAAWoD,UAC7BE,EAAAA,OAAOpN,OAAO,IAAI8J,WAAWgD,EAAGO,UAE9C,CACAhB,eAAeiB,QAAQ9M,EAAW5E,EAAQ6N,GACxC,MAAM+C,EAAUhM,aAAqBsJ,WAAa2C,EAAAA,WAAYjM,GAAaA,EAC3E,IAAK+M,EAAOC,GAAS/D,EAAKgE,MAAM,QAE5Bf,EAAgBC,eADVC,EAAAA,UAAUC,gBAAgBL,EAAS,KAAO5Q,IAEhDkR,EAAKM,EAAAA,OAAOjF,OAAOqF,GACnBN,EAAaE,EAAAA,OAAOjF,OAAOoF,GAC3BN,EAAYE,EAAAA,IAAIT,EAAeI,GAAIQ,QAAQJ,GAC/C,OAAOtQ,EAAYuL,OAAO8E,EAC5B,CACA,SAASN,eAAe9B,GACtB,OAAOA,EAAItN,MAAM,EAAG,GACtB,CA/BAxC,SAASqR,GAAe,CACtBkB,QAAS,IAAMA,QACfhB,QAAS,IAAMA,UAgCd,IAACoB,GAAgB,CAAA,EACpB3S,SAAS2S,GAAe,CACtBC,YAAa,IAAMA,GACnBC,QAAS,IAAMA,QACfC,QAAS,IAAMA,QACfC,aAAc,IAAMA,aACpBC,aAAc,IAAMA,aACpBC,uBAAwB,IAAMA,yBAEhC,IAEIC,GAFAN,GAAc,0CACdC,QAAWhP,GAAU+O,GAAY9E,KAAKjK,GAAS,IAEnD,IACEqP,GAASC,KACX,CAAE,MAAOC,GAET,CACA,SAASH,uBAAuBI,GAC9BH,GAASG,CACX,CACA/B,eAAe0B,aAAaM,EAAQC,EAAQ,IAC1C,IACE,MAAMtR,EAAM,WAAWqR,iCAAsCC,IACvDC,QAAYN,GAAOjR,EAAK,CAAEwR,SAAU,WAC1C,GAAmB,MAAfD,EAAIE,OACN,MAAM/O,MAAM,uBAGd,aADmB6O,EAAI5H,QACX+H,KACd,CAAE,MAAOP,GACP,MAAO,CAAA,CACT,CACF,CACA9B,eAAeyB,aAAaa,GAC1B,MAAM9S,EAAQ8S,EAAS9S,MAAM8R,IAC7B,IAAK9R,EACH,OAAO,KACT,OAASX,EAAO,IAAKmT,GAAUxS,EAC/B,IACE,MAAMmB,EAAM,WAAWqR,iCAAsCnT,IACvDqT,QAAYN,GAAOjR,EAAK,CAAEwR,SAAU,WAC1C,GAAmB,MAAfD,EAAIE,OACN,MAAM/O,MAAM,uBAEd,MAAMiH,QAAa4H,EAAI5H,OACjB/K,EAAS+K,EAAK+H,MAAMxT,GAC1B,OAAOU,EAAS,CAAEA,SAAQuO,OAAQxD,EAAKwD,SAASvO,IAAY,IAC9D,CAAE,MAAOgT,GACP,OAAO,IACT,CACF,CACAvC,eAAewB,QAAQjS,EAAQiT,GAC7B,MAAMN,QAAYT,aAAae,GAC/B,QAAON,GAAMA,EAAI3S,SAAWA,CAC9B,CAGG,IAACkT,GAAgB,CAAA,EAIpB,SAASC,MAAMvT,GACb,MAAMgP,EAAS,CACbwE,WAAO,EACPC,UAAM,EACNC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEV,IAAIC,EACAC,EACJ,IAAK,IAAIrT,EAAKT,EAAMQ,KAAKE,OAAS,EAAGD,GAAM,EAAGA,IAAM,CAClD,MAAME,EAAMX,EAAMQ,KAAKC,GACvB,GAAe,MAAXE,EAAI,IAAcA,EAAI,GAA1B,CACE,MAAOgS,EAAGoB,EAAaC,EAAcC,EAAYC,GAAcvT,EACzDwT,EAAe,CACnBzR,GAAIqR,EACJpF,OAAQqF,EAAe,CAACA,GAAgB,GACxClF,OAAQoF,GAEV,GAAmB,SAAfD,EAAuB,CACzBjF,EAAOyE,KAAOU,EACd,QACF,CACA,GAAmB,UAAfF,EAAwB,CAC1BjF,EAAOwE,MAAQW,EACf,QACF,CACA,GAAmB,YAAfF,EAA0B,CAC5BjF,EAAO0E,SAAStE,KAAK+E,GACrB,QACF,CACKN,EAGHC,EAAYK,EAFZN,EAAcM,EAIhBnF,EAAO0E,SAAStE,KAAK+E,EAEvB,KA1BA,CA2BA,GAAe,MAAXxT,EAAI,IAAcA,EAAI,GAAI,CAC5B,MAAOgS,EAAGoB,EAAaC,GAAgBrT,EACvCqO,EAAO4E,OAAOxE,KAAK,CACjB1M,GAAIqR,EACJpF,OAAQqF,EAAe,CAACA,GAAgB,IAE5C,CACe,MAAXrT,EAAI,IAAcA,EAAI,IACxBqO,EAAO2E,SAASvE,KAAK,CACnBhP,OAAQO,EAAI,GACZgO,OAAQhO,EAAI,GAAK,CAACA,EAAI,IAAM,IAXhC,CAeF,CA4CA,OA3CKqO,EAAOyE,OACVzE,EAAOyE,KAAOK,GAAaD,GAAe7E,EAAOwE,OAE9CxE,EAAOwE,QACVxE,EAAOwE,MAAQK,GAAe7E,EAAOyE,MAGvC,CAACzE,EAAOwE,MAAOxE,EAAOyE,MAAMlD,SAAS6D,IACnC,IAAKA,EACH,OACF,IAAI7R,EAAMyM,EAAO0E,SAASjS,QAAQ2S,GAIlC,IAHY,IAAR7R,GACFyM,EAAO0E,SAAS/Q,OAAOJ,EAAK,GAE1B6R,EAAItF,OAAQ,CACd,IAAIA,EAASE,EAAO2E,SAASU,MAAM3S,GAAMA,EAAEtB,SAAWgU,EAAItF,SACtDA,GAAUA,EAAOH,SACdyF,EAAIzF,SACPyF,EAAIzF,OAAS,IAEfG,EAAOH,OAAO4B,SAAS/O,KACY,IAA7B4S,EAAIzF,QAAQlN,QAAQD,IACtB4S,EAAIzF,OAAOS,KAAK5N,EAAI,IAExBsN,EAAOH,OAASyF,EAAIzF,OAExB,KAEFK,EAAO0E,SAASnD,SAAS6D,IACvB,GAAIA,EAAItF,OAAQ,CACd,IAAIA,EAASE,EAAO2E,SAASU,MAAM3S,GAAMA,EAAEtB,SAAWgU,EAAItF,SACtDA,GAAUA,EAAOH,SACdyF,EAAIzF,SACPyF,EAAIzF,OAAS,IAEfG,EAAOH,OAAO4B,SAAS/O,KACW,IAA5B4S,EAAIzF,OAAOlN,QAAQD,IACrB4S,EAAIzF,OAAOS,KAAK5N,EAAI,IAExBsN,EAAOH,OAASyF,EAAIzF,OAExB,KAEKK,CACT,CArGAzP,SAAS+T,GAAe,CACtBC,MAAO,IAAMA,QAuGZ,IAACe,GAAgB,CAAA,EACpB/U,SAAS+U,GAAe,CACtBC,sBAAuB,IAAMA,sBAC7B/B,uBAAwB,IAAMgC,0BAGhC,IACY9B,KACZ,CAAE,MACF,CACA,SAAS8B,wBAAwB5B,GAC/B6B,CACF,CACA5D,eAAe0D,sBAAsB/S,GACnC,mBAAoBkR,MAAMlR,EAAIK,QAAQ,QAAS,WAAWA,QAAQ,SAAU,YAAa,CACvF6S,QAAS,CAAEC,OAAQ,6BACjBxJ,MACN,CAGG,IAACyJ,GAAgB,CAAA,EAQpB,SAASC,OAAOvF,GACd,IAAIwF,EAAQ,EACZ,IAAK,IAAIrU,EAAK,EAAGA,EAAK,GAAIA,GAAM,EAAG,CACjC,MAAMsU,EAASrJ,SAAS4D,EAAIxB,UAAUrN,EAAIA,EAAK,GAAI,IACnD,GAAe,IAAXsU,EAEG,CACLD,GAAS7R,KAAK+R,MAAMD,GACpB,KACF,CAJED,GAAS,EAKb,CACA,OAAOA,CACT,CACA,SAASG,QAAQC,EAAUC,GACzB,IAAIL,EAAQ,EACZ,MAAM9U,EAAQkV,EACRvU,EAAM,CAAC,QAASmU,EAAMzS,WAAY8S,EAAW9S,YAEnD,IADArC,EAAMQ,KAAK4O,KAAKzO,KACH,CACX,MAAMyU,EAAOnS,KAAKC,OAAM,IAAImE,MAAOgO,UAAY,KAO/C,GANID,IAASpV,EAAMG,aACjB2U,EAAQ,EACR9U,EAAMG,WAAaiV,GAErBzU,EAAI,MAAQmU,GAAOzS,WACnBrC,EAAM0C,GAAK4S,cAActV,GACrB6U,OAAO7U,EAAM0C,KAAOyS,EACtB,KAEJ,CACA,OAAOnV,CACT,CACA,SAASsV,cAAcrR,GACrB,OAAOsR,EAAAA,WACLC,EAAAA,OAAQnU,EAAYmD,OAAOL,KAAKC,UAAU,CAAC,EAAGH,EAAI7D,OAAQ6D,EAAI9D,WAAY8D,EAAIhE,KAAMgE,EAAIzD,KAAMyD,EAAI/D,YAEtG,CA3CAX,SAASqV,GAAe,CACtBU,cAAe,IAAMA,cACrBT,OAAQ,IAAMA,OACdI,QAAS,IAAMA,UA2Cd,IAACQ,GAAgB,CAAA,EACpBlW,SAASkW,GAAe,CACtBC,YAAa,IAAMC,GACnBC,iBAAkB,IAAMC,GACxBC,UAAW,IAAMC,WACjBC,eAAgB,IAAMC,kBAIrB,IAACC,GAAgB,CAAA,EACpB3W,SAAS2W,GAAe,CACtBC,YAAa,IAAMA,YACnBC,WAAY,IAAMA,WAClBC,WAAY,IAAMA,WAClBX,YAAa,IAAMA,YACnBE,iBAAkB,IAAMA,iBACxBE,UAAW,IAAMA,UACjBE,eAAgB,IAAMA,iBAIrB,IAACM,GAAgB,CAAA,EACpB/W,SAAS+W,GAAe,CACtBxE,QAAS,IAAMyE,SACfzF,QAAS,IAAM0F,SACfC,mBAAoB,IAAMA,mBAC1BC,GAAI,IAAMA,KAUZ,IAAIC,GAAmB,EACnBC,GAAmB,MACvB,SAASH,mBAAmBI,EAAUC,GACpC,MAAMC,EAAUC,YAAW3F,gBAAgBwF,EAAU,KAAOC,GAASG,SAAS,EAAG,IACjF,OAAOC,UAAaC,EAAAA,OAASJ,EAAS,WACxC,CACA,SAASK,eAAeC,EAAiBC,GACvC,MAAMC,EAAOC,EAAAA,OAAYL,EAAAA,OAASE,EAAiBC,EAAO,IAC1D,MAAO,CACLG,WAAYF,EAAKN,SAAS,EAAG,IAC7BS,aAAcH,EAAKN,SAAS,GAAI,IAChCU,SAAUJ,EAAKN,SAAS,GAAI,IAEhC,CACA,SAASW,cAAcvM,GACrB,IAAKwM,OAAOC,cAAczM,IAAQA,EAAM,EACtC,MAAM,IAAInH,MAAM,6BAClB,GAAImH,GAAO,GACT,OAAO,GACT,MAAM0M,EAAY,GAAK9U,KAAKC,MAAMD,KAAK+U,KAAK3M,EAAM,IAAM,EAClD4M,EAAQF,GAAa,IAAM,GAAKA,EAAY,EAClD,OAAOE,GAAShV,KAAKC,OAAOmI,EAAM,GAAK4M,GAAS,EAClD,CAQA,SAASC,IAAIzG,GACX,MAAM0G,EAAW9W,EAAYmD,OAAOiN,GAC9B2G,EAAcD,EAASzX,OACvByN,EAVR,SAASkK,WAAWC,GAClB,IAAKT,OAAOC,cAAcQ,IAAQA,EAAM3B,IAAoB2B,EAAM1B,GAChE,MAAM,IAAI1S,MAAM,6DAClB,MAAMtB,EAAM,IAAI0L,WAAW,GAE3B,OADA,IAAI6B,SAASvN,EAAIiP,QAAQ0G,UAAU,EAAGD,GAAK,GACpC1V,CACT,CAIiByV,CAAWD,GACpBI,EAAS,IAAIlK,WAAWsJ,cAAcQ,GAAeA,GAC3D,OAAOK,cAAatK,EAAQgK,EAAUK,EACxC,CAQA,SAASE,QAAQrJ,EAAK7L,EAASmV,GAC7B,GAAmB,KAAfA,EAAIjY,OACN,MAAM,IAAIwD,MAAM,wCAClB,MAAM0U,EAAWH,EAAAA,YAAaE,EAAKnV,GACnC,OAAOqV,OAAK1B,EAAAA,OAAS9H,EAAKuJ,EAC5B,CA2BA,SAASpC,SAAS/E,EAAW4F,EAAiBC,EAAQwB,EAAAA,YAAa,KACjE,MAAMrB,WAAEA,EAAUC,aAAEA,EAAYC,SAAEA,GAAaP,eAAeC,EAAiBC,GACzEyB,EAASb,IAAIzG,GACbC,EAAasH,EAAAA,SAASvB,EAAYC,EAAcqB,GAChDE,EAAMP,QAAQf,EAAUjG,EAAY4F,GAC1C,OAAO4B,SAAQ1U,OAAOiU,EAAAA,YAAa,IAAInK,WAAW,CAAC,IAAKgJ,EAAO5F,EAAYuH,GAC7E,CACA,SAAS1C,SAAS4C,EAAS9B,GACzB,MAAMC,MAAEA,EAAK5F,WAAEA,EAAUuH,IAAEA,GAlC7B,SAASG,cAAcD,GACrB,GAAuB,iBAAZA,EACT,MAAM,IAAIjV,MAAM,kCAClB,MAAMmV,EAAOF,EAAQzY,OACrB,GAAI2Y,EAAO,KAAOA,EAAO,MACvB,MAAM,IAAInV,MAAM,2BAA6BmV,GAC/C,GAAmB,MAAfF,EAAQ,GACV,MAAM,IAAIjV,MAAM,8BAClB,IAAI+J,EACJ,IACEA,EAAOiL,EAAAA,OAAQvM,OAAOwM,EACxB,CAAE,MAAOG,GACP,MAAM,IAAIpV,MAAM,mBAAqBoV,EAAM9V,QAC7C,CACA,MAAM+V,EAAOtL,EAAKvN,OAClB,GAAI6Y,EAAO,IAAMA,EAAO,MACtB,MAAM,IAAIrV,MAAM,wBAA0BqV,GAC5C,MAAMC,EAAOvL,EAAK,GAClB,GAAa,IAATuL,EACF,MAAM,IAAItV,MAAM,8BAAgCsV,GAClD,MAAO,CACLlC,MAAOrJ,EAAKgJ,SAAS,EAAG,IACxBvF,WAAYzD,EAAKgJ,SAAS,IAAI,IAC9BgC,IAAKhL,EAAKgJ,UAAS,IAEvB,CASqCmC,CAAcD,IAC3C1B,WAAEA,EAAUC,aAAEA,EAAYC,SAAEA,GAAaP,eAAeC,EAAiBC,GACzEmC,EAAgBf,QAAQf,EAAUjG,EAAY4F,GACpD,IAAKoC,EAAAA,WAAWD,EAAeR,GAC7B,MAAM,IAAI/U,MAAM,eAElB,OArDF,SAASyV,MAAMZ,GACb,MAAMX,EAAc,IAAIjI,SAAS4I,EAAOlH,QAAQ+H,UAAU,GACpDzB,EAAWY,EAAO9B,SAAS,EAAG,EAAImB,GACxC,GAAIA,EAAczB,IAAoByB,EAAcxB,IAAoBuB,EAASzX,SAAW0X,GAAeW,EAAOrY,SAAW,EAAIkX,cAAcQ,GAC7I,MAAM,IAAIlU,MAAM,mBAClB,OAAO9C,EAAYuL,OAAOwL,EAC5B,CA+CSwB,CADQX,EAAAA,SAASvB,EAAYC,EAAchG,GAEpD,CACA,IAAIgF,GAAK,CACP7R,MAAO,CACL4R,sCACAmB,6BAEF9G,QAAS0F,SACT1E,QAASyE,UAKPlK,IAAM,IAAMpJ,KAAK4W,MAAMxS,KAAKgF,MAAQ,KACpCyN,UAAY,IAAM7W,KAAK4W,MAAMxN,MAFlB,OAE0BpJ,KAAK8W,UAC1CC,qBAAuB,CAACC,EAAYC,IAAczD,mBAAmBwD,EAAYC,GACjFC,aAAe,CAAClM,EAAMgM,EAAYC,IAAc1D,SAASrS,KAAKC,UAAU6J,GAAO+L,qBAAqBC,EAAYC,IAChHE,aAAe,CAACnM,EAAMgM,IAAe9V,KAAKoP,MAAMgD,SAAStI,EAAK/N,QAAS8Z,qBAAqBC,EAAYhM,EAAK7N,UACjH,SAAS+V,YAAYnW,EAAOia,GAC1B,MAAMI,EAAQ,CACZla,WAAYkM,MACZnM,QAAS,GACTM,KAAM,MACHR,EACHI,OAAQ2E,EAAakV,IAGvB,OADAI,EAAM3X,GAAK2B,aAAagW,GACjBA,CACT,CACA,SAASjE,WAAWiE,EAAOJ,EAAYK,GACrC,OAAOrV,EACL,CACEhF,KAAMmK,EACNlK,QAASia,aAAaE,EAAOJ,EAAYK,GACzCna,WAAY2Z,YACZtZ,KAAM,IAERyZ,EAEJ,CACA,SAAS5D,WAAWkE,EAAMD,GACxB,MAAME,EAAY7V,IAClB,OAAOM,EACL,CACEhF,KAAMiI,EACNhI,QAASia,aAAaI,EAAMC,EAAWF,GACvCna,WAAY2Z,YACZtZ,KAAM,CAAC,CAAC,IAAK8Z,KAEfE,EAEJ,CACA,SAAS1E,UAAU9V,EAAOya,EAAkBH,GAG1C,OAAOjE,WADMD,WADCD,YAAYnW,EAAOya,GACFA,EAAkBH,GACzBA,EAC1B,CACA,SAAStE,eAAehW,EAAOya,EAAkBC,GAC/C,IAAKA,GAAwD,IAAhCA,EAAqBha,OAChD,MAAM,IAAIwD,MAAM,uCAElB,MAAMyW,EAAkB5V,EAAa0V,GAC/BG,EAAW,CAAC9E,UAAU9V,EAAOya,EAAkBE,IAIrD,OAHAD,EAAqBnK,SAAS+J,IAC5BM,EAASxL,KAAK0G,UAAU9V,EAAOya,EAAkBH,GAAoB,IAEhEM,CACT,CACA,SAASlF,YAAYmF,EAAMC,GACzB,MAAMC,EAAgBX,aAAaS,EAAMC,GACzC,OAAOV,aAAaW,EAAeD,EACrC,CACA,SAASlF,iBAAiBoF,EAAeF,GACvC,IAAIG,EAAkB,GAKtB,OAJAD,EAAczK,SAAS2K,IACrBD,EAAgB7L,KAAKsG,YAAYwF,EAAGJ,GAAqB,IAE3DG,EAAgB9Y,MAAK,CAACgZ,EAAG1Y,IAAM0Y,EAAEhb,WAAasC,EAAEtC,aACzC8a,CACT,CAsBA,SAASlF,WAAW0E,EAAkBW,EAAW5X,EAAS6X,EAAmBC,GAC3E,MAAMtb,EApBR,SAASub,YAAYC,EAAYhY,EAAS6X,EAAmBC,GAC3D,MAAMG,EAAY,CAChBtb,WAAY8C,KAAKyY,KAAKrU,KAAKgF,MAAQ,KACnCpM,KAAMwJ,EACNjJ,KAAM,GACNN,QAASsD,GAYX,OAVwBlD,MAAMC,QAAQib,GAAcA,EAAa,CAACA,IAClDjL,SAAQ,EAAG2J,YAAWyB,eACpCF,EAAUjb,KAAK4O,KAAKuM,EAAW,CAAC,IAAKzB,EAAWyB,GAAY,CAAC,IAAKzB,GAAW,IAE3EoB,GACFG,EAAUjb,KAAK4O,KAAK,CAAC,IAAKkM,EAAQM,QAASN,EAAQK,UAAY,GAAI,UAEjEN,GACFI,EAAUjb,KAAK4O,KAAK,CAAC,UAAWiM,IAE3BI,CACT,CAEgBF,CAAYH,EAAW5X,EAAS6X,EAAmBC,GACjE,OAAOxF,UAAU9V,EAAOya,EAAkBW,EAAUlB,UACtD,CACA,SAASjE,gBAAgBwE,EAAkBe,EAAYhY,EAAS6X,EAAmBC,GACjF,IAAKE,GAAoC,IAAtBA,EAAW9a,OAC5B,MAAM,IAAIwD,MAAM,uCAGlB,MAAO,CAAC,CAAEgW,UADcnV,EAAa0V,OACMe,GAAY5M,KACpDwM,GAAcrF,WAAW0E,EAAkBW,EAAW5X,EAAS6X,EAAmBC,IAEvF,CACA,IAAI3F,GAAeD,YACfG,GAAoBD,iBAGpBiG,GAAgB,CAAA,EAMpB,SAASC,kBAAkB5W,EAAG6W,EAAUJ,EAAU1B,GAChD,IAAIha,EACJ,MAAMO,EAAO,IAAI0E,EAAE1E,MAAQ,GAAI,CAAC,IAAKub,EAASrZ,GAAIiZ,GAAW,CAAC,IAAKI,EAAS3b,SAO5E,OANI2b,EAAS9b,OAASqK,EACpBrK,EAAOkK,GAEPlK,EAAO+H,EACPxH,EAAK4O,KAAK,CAAC,IAAK4M,OAAOD,EAAS9b,SAE3BgF,EACL,CACEhF,OACAO,OACAN,QAAuB,KAAdgF,EAAEhF,SAAkB6b,EAASvb,MAAM6T,MAAM1T,GAAmB,MAAXA,EAAI,KAAc,GAAKwD,KAAKC,UAAU2X,GAChG5b,WAAY+E,EAAE/E,YAEhB8Z,EAEJ,CACA,SAASgC,wBAAwBjc,GAC/B,IAAK,CAACmK,EAAQnC,GAAerC,SAAS3F,EAAMC,MAC1C,OAEF,IAAIic,EACAC,EACJ,IAAK,IAAI1b,EAAKT,EAAMQ,KAAKE,OAAS,EAAGD,GAAM,SAAmB,IAAbyb,QAAoC,IAAbC,GAAsB1b,IAAM,CAClG,MAAME,EAAMX,EAAMQ,KAAKC,GACnBE,EAAID,QAAU,IACD,MAAXC,EAAI,SAA2B,IAAbub,EACpBA,EAAWvb,EACS,MAAXA,EAAI,SAA2B,IAAbwb,IAC3BA,EAAWxb,GAGjB,CACA,YAAiB,IAAbub,EAGG,CACLxZ,GAAIwZ,EAAS,GACbvN,OAAQ,CAACuN,EAAS,GAAIC,IAAW,IAAIC,QAAQC,GAAmB,iBAANA,IAC1DvN,OAAQqN,IAAW,SANrB,CAQF,CACA,SAASG,iBAAiBtc,GAAOuc,iBAAEA,GAAqB,CAAA,GACtD,MAAMC,EAAUP,wBAAwBjc,GACxC,QAAgB,IAAZwc,GAAwC,KAAlBxc,EAAME,QAC9B,OAEF,IAAIuc,EACJ,IACEA,EAAgBtY,KAAKoP,MAAMvT,EAAME,QACnC,CAAE,MAAOoZ,GACP,MACF,CACA,OAAImD,EAAc/Z,KAAO8Z,EAAQ9Z,KAG5B6Z,GAAqBlX,EAAYoX,IAG/BA,OANP,CAOF,CAnEAld,SAASsc,GAAe,CACtBC,kBAAmB,IAAMA,kBACzBQ,iBAAkB,IAAMA,iBACxBL,wBAAyB,IAAMA,0BAmE9B,IAACS,GAAgB,CAAA,EACpBnd,SAASmd,GAAe,CACtBC,gBAAiB,IAAMA,GACvBpJ,MAAO,IAAMqJ,OACbvP,KAAM,IAAMA,OAEd,IAAIsP,GAAkB,IAAIE,OAAO,UAAUrQ,GAAasQ,WACxD,SAASzP,KAAKjK,GACZ,MAAwB,iBAAVA,GAAsB,IAAIyZ,OAAO,IAAIF,GAAgBG,WAAWzP,KAAKjK,EACrF,CACA,SAASwZ,OAAOG,GACd,MAAM1c,EAAQ0c,EAAI1c,MAAM,IAAIwc,OAAO,IAAIF,GAAgBG,YACvD,IAAKzc,EACH,MAAM,IAAI6D,MAAM,sBAAsB6Y,KACxC,MAAO,CACLA,IAAK1c,EAAM,GACX+C,MAAO/C,EAAM,GACb2c,QAASrQ,OAAOtM,EAAM,IAE1B,CAGG,IAAC4c,GAAgB,CAAA,EAKpB,SAASC,oBAAoBhY,EAAGiY,EAASlD,GACvC,MAAMmD,EAAgBD,EAAQ3c,KAAK4b,QAAQzb,GAAQA,EAAID,QAAU,IAAiB,MAAXC,EAAI,IAAyB,MAAXA,EAAI,MAC7F,OAAOsE,EACL,IACKC,EACHjF,KAAM4J,EACNrJ,KAAM,IAAI0E,EAAE1E,MAAQ,MAAO4c,EAAe,CAAC,IAAKD,EAAQza,IAAK,CAAC,IAAKya,EAAQ/c,SAC3EF,QAASgF,EAAEhF,SAAW,KAExB+Z,EAEJ,CACA,SAASoD,uBAAuBrd,GAC9B,GAAIA,EAAMC,OAAS4J,EACjB,OAEF,IAAIqS,EACAC,EACJ,IAAK,IAAI1b,EAAKT,EAAMQ,KAAKE,OAAS,EAAGD,GAAM,SAAmB,IAAbyb,QAAoC,IAAbC,GAAsB1b,IAAM,CAClG,MAAME,EAAMX,EAAMQ,KAAKC,GACnBE,EAAID,QAAU,IACD,MAAXC,EAAI,SAA2B,IAAbub,EACpBA,EAAWvb,EACS,MAAXA,EAAI,SAA2B,IAAbwb,IAC3BA,EAAWxb,GAGjB,CACA,YAAiB,IAAbub,QAAoC,IAAbC,EAGpB,CACLzZ,GAAIwZ,EAAS,GACbvN,OAAQ,CAACuN,EAAS,GAAIC,EAAS,IAAIC,QAAQC,QAAY,IAANA,IACjDvN,OAAQqN,EAAS,SANnB,CAQF,CAxCA5c,SAAS0d,GAAe,CACtBC,oBAAqB,IAAMA,oBAC3BG,uBAAwB,IAAMA,yBAyC7B,IAACC,GAAgB,CAAA,EACpB/d,SAAS+d,GAAe,CACtB/J,MAAO,IAAMgK,SAEf,IAAIC,GAAc,MACdC,GAAiB,iBACrB,SAAUF,OAAOrd,GACf,MAAMwd,EAAMxd,EAAQQ,OACpB,IAAIid,EAAY,EACZC,EAAQ,EACZ,KAAOA,EAAQF,GAAK,CAClB,IAAIG,EAAI3d,EAAQuB,QAAQ,IAAKmc,GAC7B,IAAU,IAANC,EACF,MAEF,GAAoC,UAAhC3d,EAAQ4N,UAAU+P,EAAI,EAAGA,GAAgB,CAC3C,MAAMC,EAAI5d,EAAQ4N,UAAU+P,EAAI,IAAIxd,MAAMmd,IACpCza,EAAM+a,EAAID,EAAI,GAAKC,EAAEF,MAAQF,EACnC,IACE,IAAIlB,GACAvO,KAAEA,EAAID,KAAEA,GAASrB,OAAOzM,EAAQ4N,UAAU+P,EAAI,EAAG9a,IACrD,OAAQiL,GACN,IAAK,OACHwO,EAAU,CAAEpc,OAAQ6N,GACpB,MACF,IAAK,OACL,IAAK,OACH2P,EAAQ7a,EAAM,EACd,SACF,QACEyZ,EAAUvO,EAEV0P,IAAcE,EAAI,SACd,CAAE7P,KAAM,OAAQ+C,KAAM7Q,EAAQ4N,UAAU6P,EAAWE,EAAI,UAEzD,CAAE7P,KAAM,YAAawO,WAC3BoB,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,CAAE,MAAO7P,GACP6P,EAAQC,EAAI,EACZ,QACF,CACF,MAAO,GAAoC,UAAhC3d,EAAQ4N,UAAU+P,EAAI,EAAGA,IAAkD,SAAhC3d,EAAQ4N,UAAU+P,EAAI,EAAGA,GAAe,CAC5F,MAAMC,EAAI5d,EAAQ4N,UAAU+P,EAAI,GAAGxd,MAAMod,IACnC1a,EAAM+a,EAAID,EAAI,EAAIC,EAAEF,MAAQF,EAC5BK,EAA+B,MAAnB7d,EAAQ2d,EAAI,GAAa,EAAI,EAC/C,IACE,IAAIrc,EAAM,IAAIG,IAAIzB,EAAQ4N,UAAU+P,EAAIE,EAAWhb,IACnD,IAAmC,IAA/BvB,EAAIwc,SAASvc,QAAQ,KACvB,MAAM,IAAIyC,MAAM,eAKlB,GAHIyZ,IAAcE,EAAIE,SACd,CAAE/P,KAAM,OAAQ+C,KAAM7Q,EAAQ4N,UAAU6P,EAAWE,EAAIE,KAE3Dvc,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,UAAYN,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAU,MACjK,CAAEkM,KAAM,QAASxM,IAAKA,EAAIa,YAChCub,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,CACA,GAAIpc,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,UAAYN,EAAII,SAASE,SAAS,QAAS,MAC/H,CAAEkM,KAAM,QAASxM,IAAKA,EAAIa,YAChCub,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,CACA,GAAIpc,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAWN,EAAII,SAASE,SAAS,SAAU,MAC/H,CAAEkM,KAAM,QAASxM,IAAKA,EAAIa,YAChCub,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,MACM,CAAE5P,KAAM,MAAOxM,IAAKA,EAAIa,YAC9Bub,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,CAAE,MAAO7P,GACP6P,EAAQ7a,EAAM,EACd,QACF,CACF,KAAO,IAAoC,QAAhC7C,EAAQ4N,UAAU+P,EAAI,EAAGA,IAAgD,OAAhC3d,EAAQ4N,UAAU+P,EAAI,EAAGA,GAoBtE,CACLD,EAAQC,EAAI,EACZ,QACF,CAvB0F,CACxF,MAAMC,EAAI5d,EAAQ4N,UAAU+P,EAAI,GAAGxd,MAAMod,IACnC1a,EAAM+a,EAAID,EAAI,EAAIC,EAAEF,MAAQF,EAC5BK,EAA+B,MAAnB7d,EAAQ2d,EAAI,GAAa,EAAI,EAC/C,IACE,IAAIrc,EAAM,IAAIG,IAAIzB,EAAQ4N,UAAU+P,EAAIE,EAAWhb,IACnD,IAAmC,IAA/BvB,EAAIwc,SAASvc,QAAQ,KACvB,MAAM,IAAIyC,MAAM,kBAEdyZ,IAAcE,EAAIE,SACd,CAAE/P,KAAM,OAAQ+C,KAAM7Q,EAAQ4N,UAAU6P,EAAWE,EAAIE,UAEzD,CAAE/P,KAAM,QAASxM,IAAKA,EAAIa,YAChCub,EAAQ7a,EACR4a,EAAYC,EACZ,QACF,CAAE,MAAO7P,GACP6P,EAAQ7a,EAAM,EACd,QACF,CACF,CAGA,CACF,CACI4a,IAAcD,SACV,CAAE1P,KAAM,OAAQ+C,KAAM7Q,EAAQ4N,UAAU6P,IAElD,CAGG,IAACM,GAAgB,CAAA,EACpB1e,SAAS0e,GAAe,CACtBC,mBAAoB,IAAMA,mBAC1BC,wBAAyB,IAAMA,wBAC/BC,oBAAqB,IAAMA,oBAC3BC,qBAAsB,IAAMA,qBAC5BC,qBAAsB,IAAMA,uBAE9B,IAAIJ,mBAAqB,CAAChZ,EAAG+U,KAC3B,IAAI/Z,EACJ,GAAyB,iBAAdgF,EAAEhF,QACXA,EAAUiE,KAAKC,UAAUc,EAAEhF,aACtB,IAAyB,iBAAdgF,EAAEhF,QAGlB,OAFAA,EAAUgF,EAAEhF,OAGd,CACA,OAAO+E,EACL,CACEhF,KAAMsG,EACN/F,KAAM,IAAI0E,EAAE1E,MAAQ,IACpBN,UACAC,WAAY+E,EAAE/E,YAEhB8Z,EACD,EAECoE,qBAAuB,CAACnZ,EAAG+U,KAC7B,IAAI/Z,EACJ,GAAyB,iBAAdgF,EAAEhF,QACXA,EAAUiE,KAAKC,UAAUc,EAAEhF,aACtB,IAAyB,iBAAdgF,EAAEhF,QAGlB,OAFAA,EAAUgF,EAAEhF,OAGd,CACA,OAAO+E,EACL,CACEhF,KAAMyG,EACNlG,KAAM,CAAC,CAAC,IAAK0E,EAAEqZ,4BAA6BrZ,EAAE1E,MAAQ,IACtDN,UACAC,WAAY+E,EAAE/E,YAEhB8Z,EACD,EAECmE,oBAAsB,CAAClZ,EAAG+U,KAC5B,MAAMzZ,EAAO,CAAC,CAAC,IAAK0E,EAAEqZ,wBAAyBrZ,EAAEsZ,UAAW,SAI5D,OAHItZ,EAAEuZ,mCACJje,EAAK4O,KAAK,CAAC,IAAKlK,EAAEuZ,kCAAmCvZ,EAAEsZ,UAAW,UAE7DvZ,EACL,CACEhF,KAAMwG,EACNjG,KAAM,IAAIA,KAAS0E,EAAE1E,MAAQ,IAC7BN,QAASgF,EAAEhF,QACXC,WAAY+E,EAAE/E,YAEhB8Z,EACD,EAECkE,wBAA0B,CAACjZ,EAAG+U,KAChC,IAAI/Z,EACJ,GAAyB,iBAAdgF,EAAEhF,QACXA,EAAUiE,KAAKC,UAAUc,EAAEhF,aACtB,IAAyB,iBAAdgF,EAAEhF,QAGlB,OAFAA,EAAUgF,EAAEhF,OAGd,CACA,OAAO+E,EACL,CACEhF,KAAMuG,EACNhG,KAAM,CAAC,CAAC,IAAK0E,EAAEwZ,6BAA8BxZ,EAAE1E,MAAQ,IACvDN,UACAC,WAAY+E,EAAE/E,YAEhB8Z,EACD,EAECqE,qBAAuB,CAACpZ,EAAG+U,KAC7B,IAAI/Z,EACJ,GAAyB,iBAAdgF,EAAEhF,QACXA,EAAUiE,KAAKC,UAAUc,EAAEhF,aACtB,IAAyB,iBAAdgF,EAAEhF,QAGlB,OAFAA,EAAUgF,EAAEhF,OAGd,CACA,OAAO+E,EACL,CACEhF,KAAM0G,EACNnG,KAAM,CAAC,CAAC,IAAK0E,EAAEyZ,mBAAoBzZ,EAAE1E,MAAQ,IAC7CN,UACAC,WAAY+E,EAAE/E,YAEhB8Z,EACD,EAIC2E,GAAgB,CAAA,EACpBrf,SAASqf,GAAe,CACtBC,sBAAuB,IAAMA,GAC7BC,SAAU,IAAMA,SAChBC,MAAO,IAAMA,MACbC,WAAY,IAAMA,aAEpB,IAAIH,GAAwB,UACxBE,MAAQ,IAAM,IAAIlC,OAAO,MAAMgC,GAAsB/B,YAAa,KACtE,SAAUgC,SAAS5e,GACjB,MAAM+e,EAAU/e,EAAQ4e,SAASC,SACjC,IAAK,MAAM1e,KAAS4e,EAClB,IACE,MAAOC,EAAWxf,GAAQW,OACpB,CACJ6e,YACAxf,OACAoD,MAAOzC,EAAMud,MACb7a,IAAK1C,EAAMud,MAAQsB,EAAUxe,OAEjC,CAAE,MAAO0S,GACT,CAEJ,CACA,SAAS4L,WAAW9e,EAASif,GAC3B,OAAOjf,EAAQ8e,WAAWD,SAAS,CAACG,EAAWxf,IACtCyf,EAAS,CACdD,YACAxf,UAGN,CAGG,IAKC0f,GALAC,GAAgB,CAAA,EACpB9f,SAAS8f,GAAe,CACtB7M,uBAAwB,IAAM8M,wBAC9BC,eAAgB,IAAMA,iBAGxB,IACEH,GAAU1M,KACZ,CAAE,MACF,CACA,SAAS4M,wBAAwB1M,GAC/BwM,GAAUxM,CACZ,CACA/B,eAAe0O,eAAenf,EAAQof,EAAUC,GAC9C,IAEE,mBADuBL,GAAQ,2BAA2BI,KAAYC,UAAc1O,SACrE,4DAA4D3Q,GAC7E,CAAE,MAAOuS,GACP,OAAO,CACT,CACF,CAGG,IAAC+M,GAAgB,CAAA,EAKpB,SAASC,sBAAsBC,GAC7B,MAAMhe,SAAEA,EAAQM,aAAEA,GAAiB,IAAIP,IAAIie,GACrCxf,EAASwB,EACTie,EAAQ3d,EAAavC,IAAI,SACzBmgB,EAAS5d,EAAavC,IAAI,UAChC,IAAKS,IAAWyf,IAAUC,EACxB,MAAM,IAAI5b,MAAM,6BAElB,MAAO,CAAE9D,SAAQyf,QAAOC,SAC1B,CACAjP,eAAekP,oBAAoB3f,EAAQ4E,EAAWgb,GACpD,MAAM9f,EAAU,CACd+f,OAAQ,cACRC,OAAQ,CACNF,YAGEG,QAAyBrP,QAAQ9L,EAAW5E,EAAQ+D,KAAKC,UAAUlE,IACnEkgB,EAAgB,CACpBngB,KAAMmJ,GACNjJ,WAAY8C,KAAK4W,MAAMxS,KAAKgF,MAAQ,KACpCnM,QAASigB,EACT3f,KAAM,CAAC,CAAC,IAAKJ,KAEf,OAAO6E,EAAcmb,EAAepb,EACtC,CA7BAzF,SAASmgB,GAAe,CACtBK,oBAAqB,IAAMA,oBAC3BJ,sBAAuB,IAAMA,wBA8B5B,IAACU,GAAgB,CAAA,EAIpB,SAASC,oBAAoB5gB,GAG3B,OADAA,GADAA,EAAOA,EAAK6gB,OAAOC,eACPC,UAAU,QACfngB,MAAMiR,KAAK7R,GAAMkP,KAAK8R,GACvB,cAAcrT,KAAKqT,IAAS,cAAcrT,KAAKqT,GAC1CA,EAEF,MACNC,KAAK,GACV,CAZAphB,SAAS8gB,GAAe,CACtBC,oBAAqB,IAAMA,sBAc1B,IASCM,GATAC,GAAgB,CAAA,EACpBthB,SAASshB,GAAe,CACtBC,eAAgB,IAAMA,eACtBC,eAAgB,IAAMA,eACtBC,eAAgB,IAAMA,eACtBxO,uBAAwB,IAAMyO,wBAC9BC,mBAAoB,IAAMA,qBAI5B,IACEN,GAAUlO,KACZ,CAAE,MACF,CACA,SAASuO,wBAAwBrO,GAC/BgO,GAAUhO,CACZ,CACA/B,eAAeiQ,eAAeK,GAC5B,IACE,IAAIC,EAAQ,IACRC,MAAEA,EAAKC,MAAEA,GAAUnd,KAAKoP,MAAM4N,EAASjhB,SAC3C,GAAImhB,EAAO,CACT,IAAIjT,MAAEA,GAAUmT,EAAAA,OAAQ5U,OAAO0U,EAAO,KAClCpT,EAAOsT,EAAAA,OAAQhT,UAAUH,GAC7BgT,EAAQhgB,EAAYuL,OAAOsB,EAC7B,KAAO,KAAIqT,EAIT,OAAO,KAJS,CAChB,IAAK5hB,EAAMmT,GAAUyO,EAAMrP,MAAM,KACjCmP,EAAQ,IAAIzf,IAAI,uBAAuBjC,IAAQ,WAAWmT,KAAUxQ,UACtE,CAEA,CACA,IAAI0Q,QAAY6N,GAAQQ,GACpBI,QAAazO,EAAI5H,OACrB,GAAIqW,EAAKC,aAAeD,EAAKE,YAC3B,OAAOF,EAAKG,QAEhB,CAAE,MAAOnc,GACT,CACA,OAAO,IACT,CACA,SAASwb,gBAAerR,QACtBA,EAAO3P,MACPA,EAAK4hB,OACLA,EAAMjT,OACNA,EAAMkT,QACNA,EAAU,KAEV,IAAKD,EACH,MAAM,IAAI1d,MAAM,oBAClB,IAAKyL,EACH,MAAM,IAAIzL,MAAM,qBAClB,IAAI4d,EAAK,CACP7hB,KAAM,KACNE,WAAY8C,KAAK4W,MAAMxS,KAAKgF,MAAQ,KACpCnM,QAAS2hB,EACTrhB,KAAM,CACJ,CAAC,IAAKmP,GACN,CAAC,SAAUiS,EAAOvf,YAClB,CAAC,YAAasM,KAMlB,GAHI3O,GAA0B,iBAAVA,GAClB8hB,EAAGthB,KAAK4O,KAAK,CAAC,IAAKpP,IAEjBA,GAA0B,iBAAVA,EAClB,GAAI4F,kBAAkB5F,EAAMC,MAAO,CACjC,MAAMkb,EAAI,CAAC,IAAK,GAAGnb,EAAMC,QAAQD,EAAMI,WACvC0hB,EAAGthB,KAAK4O,KAAK+L,EACf,MAAO,GAAIrV,kBAAkB9F,EAAMC,MAAO,CACxC,IAAI4O,EAAI7O,EAAMQ,KAAK6T,MAAK,EAAEnP,EAAGiK,KAAa,MAANjK,GAAaiK,IACjD,IAAKN,EACH,MAAM,IAAI3K,MAAM,+BAClB,MAAMiX,EAAI,CAAC,IAAK,GAAGnb,EAAMC,QAAQD,EAAMI,UAAUyO,EAAE,MACnDiT,EAAGthB,KAAK4O,KAAK+L,EACf,CAEF,OAAO2G,CACT,CACA,SAASZ,mBAAmBa,GAC1B,IAAIC,EACJ,IACEA,EAAa7d,KAAKoP,MAAMwO,EAC1B,CAAE,MAAOvc,GACP,MAAO,2BACT,CACA,IAAKzF,cAAciiB,GACjB,MAAO,0CACT,IAAK3c,EAAY2c,GACf,MAAO,oCACT,IAAItgB,EAAIsgB,EAAWxhB,KAAK6T,MAAK,EAAEnP,EAAGiK,KAAa,MAANjK,GAAaiK,IACtD,IAAKzN,EACH,MAAO,sCACT,IAAKA,EAAE,GAAGrB,MAAM,kBACd,MAAO,wCACT,IAAI6a,EAAI8G,EAAWxhB,KAAK6T,MAAK,EAAEnP,EAAGiK,KAAa,MAANjK,GAAaiK,IACtD,OAAI+L,IAAMA,EAAE,GAAG7a,MAAM,kBACZ,wCACI2hB,EAAWxhB,KAAK6T,MAAK,EAAEnP,EAAGiK,KAAa,WAANjK,GAAkBiK,IAGzD,KADE,0CAEX,CACA,SAAS4R,gBAAeiB,WACtBA,EAAUC,SACVA,EAAQC,OACRA,EAAMC,OACNA,IAEA,IAAIL,EAAK3d,KAAKoP,MAAMyO,GAChBI,EAAqBN,EAAGthB,KAAK4b,QAAO,EAAElX,KAAa,MAANA,GAAmB,MAANA,GAAmB,MAANA,IACvEmd,EAAM,CACRpiB,KAAM,KACNE,WAAY8C,KAAK4W,MAAMsI,EAAO9M,UAAY,KAC1CnV,QAAS,GACTM,KAAM,IAAI4hB,EAAoB,CAAC,IAAKN,EAAG1hB,QAAS,CAAC,SAAU8hB,GAAS,CAAC,cAAeF,KAKtF,OAHIC,GACFI,EAAI7hB,KAAK4O,KAAK,CAAC,WAAY6S,IAEtBI,CACT,CAGG,IAACC,GAAgB,CAAA,EACpB/iB,SAAS+iB,GAAe,CACtBC,SAAU,IAAMA,SAChBC,YAAa,IAAMA,YACnBC,qBAAsB,IAAMA,qBAC5B1iB,cAAe,IAAM2iB,eACrBC,kBAAmB,IAAMA,kBACzBC,uBAAwB,IAAMA,uBAC9BC,wBAAyB,IAAMA,wBAC/BC,uBAAwB,IAAMA,uBAC9BC,oBAAqB,IAAMA,oBAC3BC,cAAe,IAAMA,gBAKvB,IAAIC,GAAuB,SAC3BpS,eAAe0R,SAASW,EAAUC,EAAY/d,EAAMge,GAA6B,EAAOjK,GACtF,MAAMnZ,EAAQ,CACZC,KAAMkI,GACN3H,KAAM,CACJ,CAAC,IAAK0iB,GACN,CAAC,SAAUC,IAEbhjB,WAAY8C,KAAK4W,OAAM,IAAIxS,MAAOgO,UAAY,KAC9CnV,QAAS,IAEPiZ,GACFnZ,EAAMQ,KAAK4O,KAAK,CAAC,UAAWoT,YAAYrJ,KAE1C,MAAMkK,QAAoBje,EAAKpF,GAE/B,OAD4BojB,EAA6BH,GAAuB,IACnDK,SAAQ9e,OAAOnD,EAAYmD,OAAOL,KAAKC,UAAUif,IAChF,CACAxS,eAAemS,cAAcO,EAAO/hB,EAAKye,GACvC,MAAMjgB,QAAcyiB,qBAAqBc,GAAOC,OAAOlK,IACrD,MAAMA,CAAK,IAKb,aAHoBoJ,eAAe1iB,EAAOwB,EAAKye,GAAQuD,OAAOlK,IAC5D,MAAMA,CAAK,GAGf,CACAzI,eAAe4R,qBAAqBc,GAClC,IAAKA,EACH,MAAM,IAAIrf,MAAM,iBAElBqf,EAAQA,EAAM1hB,QAAQohB,GAAsB,IAC5C,MAAMQ,EAAWriB,EAAYuL,OAAO2W,EAAAA,OAAQ3W,OAAO4W,IACnD,IAAKE,GAAgC,IAApBA,EAAS/iB,SAAiB+iB,EAAS5V,WAAW,KAC7D,MAAM,IAAI3J,MAAM,iBAGlB,OADcC,KAAKoP,MAAMkQ,EAE3B,CACA,SAASX,uBAAuB9iB,GAC9B,QAAKA,EAAMG,YAGJ8C,KAAK4W,OAAM,IAAIxS,MAAOgO,UAAY,KAAOrV,EAAMG,WAAa,EACrE,CACA,SAASwiB,kBAAkB3iB,GACzB,OAAOA,EAAMC,OAASkI,EACxB,CACA,SAAS4a,oBAAoB/iB,EAAOwB,GAClC,MAAMkiB,EAAS1jB,EAAMQ,KAAK6T,MAAMnP,GAAe,MAATA,EAAE,KACxC,QAAKwe,IAGEA,EAAOhjB,OAAS,GAAKgjB,EAAO,KAAOliB,EAC5C,CACA,SAASohB,uBAAuB5iB,EAAOigB,GACrC,MAAM0D,EAAY3jB,EAAMQ,KAAK6T,MAAMnP,GAAe,WAATA,EAAE,KAC3C,QAAKye,IAGEA,EAAUjjB,OAAS,GAAKijB,EAAU,GAAGnD,gBAAkBP,EAAOO,cACvE,CACA,SAASgC,YAAYrJ,GACnB,MAAM/W,EAAOwhB,EAAAA,OAAQviB,EAAYmD,OAAOL,KAAKC,UAAU+U,KACvD,OAAO0K,EAAAA,WAAYzhB,EACrB,CACA,SAASygB,wBAAwB7iB,EAAOmZ,GACtC,MAAM2K,EAAa9jB,EAAMQ,KAAK6T,MAAMnP,GAAe,YAATA,EAAE,KAC5C,IAAK4e,EACH,OAAO,EAET,MAAMC,EAAcvB,YAAYrJ,GAChC,OAAO2K,EAAWpjB,OAAS,GAAKojB,EAAW,KAAOC,CACpD,CACAlT,eAAe6R,eAAe1iB,EAAOwB,EAAKye,EAAQuB,GAChD,IAAKnc,EAAYrF,GACf,MAAM,IAAIkE,MAAM,0CAElB,IAAKye,kBAAkB3iB,GACrB,MAAM,IAAIkE,MAAM,qCAElB,IAAK4e,uBAAuB9iB,GAC1B,MAAM,IAAIkE,MAAM,qDAElB,IAAK6e,oBAAoB/iB,EAAOwB,GAC9B,MAAM,IAAI0C,MAAM,wCAElB,IAAK0e,uBAAuB5iB,EAAOigB,GACjC,MAAM,IAAI/b,MAAM,2CAElB,GAAI8f,QAAQxC,IAAyB,iBAATA,GAAqBniB,OAAOkY,KAAKiK,GAAM9gB,OAAS,IACrEmiB,wBAAwB7iB,EAAOwhB,GAClC,MAAM,IAAItd,MAAM,qEAGpB,OAAO,CACT","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{schnorr as e,secp256k1 as t}from"../../../../../@noble_curves@1.2.0/node_modules/@noble/curves/esm/secp256k1.esm.js";import{bytesToHex as n,hexToBytes as r,concatBytes as a,randomBytes as i}from"../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/utils.esm.js";import{sha256 as s}from"../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/sha256.esm.js";import{bech32 as o,base64 as c}from"../../../../../@scure_base@1.1.1/node_modules/@scure/base/lib/esm/index.esm.js";import{cbc as d}from"../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/aes.esm.js";import{chacha20 as l}from"../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/chacha.esm.js";import{equalBytes as u}from"../../../../../@noble_ciphers@0.5.3/node_modules/@noble/ciphers/esm/utils.esm.js";import{extract as p,expand as h}from"../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hkdf.esm.js";import{hmac as f}from"../../../../../@noble_hashes@1.3.1/node_modules/@noble/hashes/esm/hmac.esm.js";var y=Object.defineProperty,__export=(e,t)=>{for(var n in t)y(e,n,{get:t[n],enumerable:!0})},g=Symbol("verified");function validateEvent(e){if(!(e instanceof Object))return!1;if("number"!=typeof e.kind)return!1;if("string"!=typeof e.content)return!1;if("number"!=typeof e.created_at)return!1;if("string"!=typeof e.pubkey)return!1;if(!e.pubkey.match(/^[a-f0-9]{64}$/))return!1;if(!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let e=0;e<n.length;e++)if("object"==typeof n[e])return!1}return!0}var v={};__export(v,{Queue:()=>b,QueueNode:()=>w,binarySearch:()=>binarySearch,insertEventIntoAscendingList:()=>insertEventIntoAscendingList,insertEventIntoDescendingList:()=>insertEventIntoDescendingList,normalizeURL:()=>normalizeURL,utf8Decoder:()=>m,utf8Encoder:()=>E});var m=new TextDecoder("utf-8"),E=new TextEncoder;function normalizeURL(e){-1===e.indexOf("://")&&(e="wss://"+e);let t=new URL(e);return t.pathname=t.pathname.replace(/\/+/g,"/"),t.pathname.endsWith("/")&&(t.pathname=t.pathname.slice(0,-1)),("80"===t.port&&"ws:"===t.protocol||"443"===t.port&&"wss:"===t.protocol)&&(t.port=""),t.searchParams.sort(),t.hash="",t.toString()}function insertEventIntoDescendingList(e,t){const[n,r]=binarySearch(e,(e=>t.id===e.id?0:t.created_at===e.created_at?-1:e.created_at-t.created_at));return r||e.splice(n,0,t),e}function insertEventIntoAscendingList(e,t){const[n,r]=binarySearch(e,(e=>t.id===e.id?0:t.created_at===e.created_at?-1:t.created_at-e.created_at));return r||e.splice(n,0,t),e}function binarySearch(e,t){let n=0,r=e.length-1;for(;n<=r;){const a=Math.floor((n+r)/2),i=t(e[a]);if(0===i)return[a,!0];i<0?r=a-1:n=a+1}return[n,!1]}var w=class{value;next=null;prev=null;constructor(e){this.value=e}},b=class{first;last;constructor(){this.first=null,this.last=null}enqueue(e){const t=new w(e);return this.last?this.last===this.first?(this.last=t,this.last.prev=this.first,this.first.next=t):(t.prev=this.last,this.last.next=t,this.last=t):(this.first=t,this.last=t),!0}dequeue(){if(!this.first)return null;if(this.first===this.last){const e=this.first;return this.first=null,this.last=null,e.value}const e=this.first;return this.first=e.next,e.value}};function serializeEvent(e){if(!validateEvent(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}function getEventHash(e){let t=s(E.encode(serializeEvent(e)));return n(t)}var k=new class{generateSecretKey(){return e.utils.randomPrivateKey()}getPublicKey(t){return n(e.getPublicKey(t))}finalizeEvent(t,r){const a=t;return a.pubkey=n(e.getPublicKey(r)),a.id=getEventHash(a),a.sig=n(e.sign(getEventHash(a),r)),a[g]=!0,a}verifyEvent(t){if("boolean"==typeof t[g])return t[g];const n=getEventHash(t);if(n!==t.id)return t[g]=!1,!1;try{const r=e.verify(t.sig,n,t.pubkey);return t[g]=r,r}catch(e){return t[g]=!1,!1}}},_=k.generateSecretKey,R=k.getPublicKey,S=k.finalizeEvent,I=k.verifyEvent,T={};function isRegularKind(e){return 1e3<=e&&e<1e4||[1,2,4,5,6,7,8,16,40,41,42,43,44].includes(e)}function isReplaceableKind(e){return[0,3].includes(e)||1e4<=e&&e<2e4}function isEphemeralKind(e){return 2e4<=e&&e<3e4}function isAddressableKind(e){return 3e4<=e&&e<4e4}__export(T,{Application:()=>je,BadgeAward:()=>C,BadgeDefinition:()=>Ne,BlockedRelaysList:()=>fe,BookmarkList:()=>ue,Bookmarksets:()=>Ae,Calendar:()=>Fe,CalendarEventRSVP:()=>Je,ChannelCreation:()=>q,ChannelHideMessage:()=>V,ChannelMessage:()=>D,ChannelMetadata:()=>z,ChannelMuteUser:()=>B,ClassifiedListing:()=>De,ClientAuth:()=>ke,CommunitiesList:()=>pe,CommunityDefinition:()=>Xe,CommunityPostApproval:()=>ee,Contacts:()=>M,CreateOrUpdateProduct:()=>Ue,CreateOrUpdateStall:()=>Oe,Curationsets:()=>Le,Date:()=>Be,DirectMessageRelaysList:()=>me,DraftClassifiedListing:()=>Ve,DraftLong:()=>$e,Emojisets:()=>We,EncryptedDirectMessage:()=>N,EventDeletion:()=>K,FileMetadata:()=>J,FileServerPreference:()=>Ee,Followsets:()=>Te,GenericRepost:()=>j,Genericlists:()=>Pe,GiftWrap:()=>F,HTTPAuth:()=>Ie,Handlerinformation:()=>Ge,Handlerrecommendation:()=>Ze,Highlights:()=>oe,InterestsList:()=>ge,Interestsets:()=>Ke,JobFeedback:()=>re,JobRequest:()=>te,JobResult:()=>ne,Label:()=>Y,LightningPubRPC:()=>be,LiveChatMessage:()=>Z,LiveEvent:()=>qe,LongFormArticle:()=>Ce,Metadata:()=>x,Mutelist:()=>ce,NWCWalletInfo:()=>we,NWCWalletRequest:()=>_e,NWCWalletResponse:()=>Re,NostrConnect:()=>Se,OpenTimestamps:()=>H,Pinlist:()=>de,PrivateDirectMessage:()=>W,ProblemTracker:()=>G,ProfileBadges:()=>Me,PublicChatsList:()=>he,Reaction:()=>U,RecommendRelay:()=>L,RelayList:()=>le,Relaysets:()=>xe,Report:()=>X,Reporting:()=>Q,Repost:()=>O,Seal:()=>$,SearchRelaysList:()=>ye,ShortTextNote:()=>A,Time:()=>He,UserEmojiList:()=>ve,UserStatuses:()=>ze,Zap:()=>se,ZapGoal:()=>ae,ZapRequest:()=>ie,classifyKind:()=>classifyKind,isAddressableKind:()=>isAddressableKind,isEphemeralKind:()=>isEphemeralKind,isKind:()=>isKind,isParameterizedReplaceableKind:()=>P,isRegularKind:()=>isRegularKind,isReplaceableKind:()=>isReplaceableKind});var P=isAddressableKind;function classifyKind(e){return isRegularKind(e)?"regular":isReplaceableKind(e)?"replaceable":isEphemeralKind(e)?"ephemeral":isAddressableKind(e)?"parameterized":"unknown"}function isKind(e,t){const n=t instanceof Array?t:[t];return validateEvent(e)&&n.includes(e.kind)||!1}var x=0,A=1,L=2,M=3,N=4,K=5,O=6,U=7,C=8,$=13,W=14,j=16,q=40,z=41,D=42,V=43,B=44,H=1040,F=1059,J=1063,Z=1311,G=1971,X=1984,Q=1984,Y=1985,ee=4550,te=5999,ne=6999,re=7e3,ae=9041,ie=9734,se=9735,oe=9802,ce=1e4,de=10001,le=10002,ue=10003,pe=10004,he=10005,fe=10006,ye=10007,ge=10015,ve=10030,me=10050,Ee=10096,we=13194,be=21e3,ke=22242,_e=23194,Re=23195,Se=24133,Ie=27235,Te=3e4,Pe=30001,xe=30002,Ae=30003,Le=30004,Me=30008,Ne=30009,Ke=30015,Oe=30017,Ue=30018,Ce=30023,$e=30024,We=30030,je=30078,qe=30311,ze=30315,De=30402,Ve=30403,Be=31922,He=31923,Fe=31924,Je=31925,Ze=31989,Ge=31990,Xe=34550,Qe={};function getHex64(e,t){let n=t.length+3,r=e.indexOf(`"${t}":`)+n,a=e.slice(r).indexOf('"')+r+1;return e.slice(a,a+64)}function getInt(e,t){let n=t.length,r=e.indexOf(`"${t}":`)+n+3,a=e.slice(r),i=Math.min(a.indexOf(","),a.indexOf("}"));return parseInt(a.slice(0,i),10)}function getSubscriptionId(e){let t=e.slice(0,22).indexOf('"EVENT"');if(-1===t)return null;let n=e.slice(t+7+1).indexOf('"');if(-1===n)return null;let r=t+7+1+n,a=e.slice(r+1,80).indexOf('"');if(-1===a)return null;let i=r+1+a;return e.slice(r+1,i)}function matchEventId(e,t){return t===getHex64(e,"id")}function matchEventPubkey(e,t){return t===getHex64(e,"pubkey")}function matchEventKind(e,t){return t===getInt(e,"kind")}__export(Qe,{getHex64:()=>getHex64,getInt:()=>getInt,getSubscriptionId:()=>getSubscriptionId,matchEventId:()=>matchEventId,matchEventKind:()=>matchEventKind,matchEventPubkey:()=>matchEventPubkey});var Ye={};function makeAuthEvent(e,t){return{kind:ke,created_at:Math.floor(Date.now()/1e3),tags:[["relay",e],["challenge",t]],content:""}}__export(Ye,{makeAuthEvent:()=>makeAuthEvent});try{WebSocket}catch{}try{WebSocket}catch{}var et={};__export(et,{BECH32_REGEX:()=>rt,Bech32MaxSize:()=>nt,NostrTypeGuard:()=>tt,decode:()=>decode,decodeNostrURI:()=>decodeNostrURI,encodeBytes:()=>encodeBytes,naddrEncode:()=>naddrEncode,neventEncode:()=>neventEncode,noteEncode:()=>noteEncode,nprofileEncode:()=>nprofileEncode,npubEncode:()=>npubEncode,nsecEncode:()=>nsecEncode});var tt={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},nt=5e3,rt=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function decodeNostrURI(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),decode(e)}catch(e){return{type:"invalid",data:null}}}function decode(e){let{prefix:t,words:r}=o.decode(e,nt),a=new Uint8Array(o.fromWords(r));switch(t){case"nprofile":{let e=parseTLV(a);if(!e[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:n(e[0][0]),relays:e[1]?e[1].map((e=>m.decode(e))):[]}}}case"nevent":{let e=parseTLV(a);if(!e[0]?.[0])throw new Error("missing TLV 0 for nevent");if(32!==e[0][0].length)throw new Error("TLV 0 should be 32 bytes");if(e[2]&&32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(e[3]&&4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:n(e[0][0]),relays:e[1]?e[1].map((e=>m.decode(e))):[],author:e[2]?.[0]?n(e[2][0]):void 0,kind:e[3]?.[0]?parseInt(n(e[3][0]),16):void 0}}}case"naddr":{let e=parseTLV(a);if(!e[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!e[2]?.[0])throw new Error("missing TLV 2 for naddr");if(32!==e[2][0].length)throw new Error("TLV 2 should be 32 bytes");if(!e[3]?.[0])throw new Error("missing TLV 3 for naddr");if(4!==e[3][0].length)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:m.decode(e[0][0]),pubkey:n(e[2][0]),kind:parseInt(n(e[3][0]),16),relays:e[1]?e[1].map((e=>m.decode(e))):[]}}}case"nsec":return{type:t,data:a};case"npub":case"note":return{type:t,data:n(a)};default:throw new Error(`unknown prefix ${t}`)}}function parseTLV(e){let t={},n=e;for(;n.length>0;){let e=n[0],r=n[1],a=n.slice(2,2+r);if(n=n.slice(2+r),a.length<r)throw new Error(`not enough data to read on TLV ${e}`);t[e]=t[e]||[],t[e].push(a)}return t}function nsecEncode(e){return encodeBytes("nsec",e)}function npubEncode(e){return encodeBytes("npub",r(e))}function noteEncode(e){return encodeBytes("note",r(e))}function encodeBech32(e,t){let n=o.toWords(t);return o.encode(e,n,nt)}function encodeBytes(e,t){return encodeBech32(e,t)}function nprofileEncode(e){return encodeBech32("nprofile",encodeTLV({0:[r(e.pubkey)],1:(e.relays||[]).map((e=>E.encode(e)))}))}function neventEncode(e){let t;return void 0!==e.kind&&(t=function integerToUint8Array(e){const t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=255&e,t}(e.kind)),encodeBech32("nevent",encodeTLV({0:[r(e.id)],1:(e.relays||[]).map((e=>E.encode(e))),2:e.author?[r(e.author)]:[],3:t?[new Uint8Array(t)]:[]}))}function naddrEncode(e){let t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e.kind,!1),encodeBech32("naddr",encodeTLV({0:[E.encode(e.identifier)],1:(e.relays||[]).map((e=>E.encode(e))),2:[r(e.pubkey)],3:[new Uint8Array(t)]}))}function encodeTLV(e){let t=[];return Object.entries(e).reverse().forEach((([e,n])=>{n.forEach((n=>{let r=new Uint8Array(n.length+2);r.set([parseInt(e)],0),r.set([n.length],1),r.set(n,2),t.push(r)}))})),a(...t)}var at={};async function encrypt(e,r,a){const s=e instanceof Uint8Array?n(e):e,o=getNormalizedX(t.getSharedSecret(s,"02"+r));let l=Uint8Array.from(i(16)),u=E.encode(a),p=d(o,l).encrypt(u);return`${c.encode(new Uint8Array(p))}?iv=${c.encode(new Uint8Array(l.buffer))}`}async function decrypt(e,r,a){const i=e instanceof Uint8Array?n(e):e;let[s,o]=a.split("?iv="),l=getNormalizedX(t.getSharedSecret(i,"02"+r)),u=c.decode(o),p=c.decode(s),h=d(l,u).decrypt(p);return m.decode(h)}function getNormalizedX(e){return e.slice(1,33)}__export(at,{decrypt:()=>decrypt,encrypt:()=>encrypt});var it={};__export(it,{NIP05_REGEX:()=>ot,isNip05:()=>isNip05,isValid:()=>isValid,queryProfile:()=>queryProfile,searchDomain:()=>searchDomain,useFetchImplementation:()=>useFetchImplementation});var st,ot=/^(?:([\w.+-]+)@)?([\w_-]+(\.[\w_-]+)+)$/,isNip05=e=>ot.test(e||"");try{st=fetch}catch(e){}function useFetchImplementation(e){st=e}async function searchDomain(e,t=""){try{const n=`https://${e}/.well-known/nostr.json?name=${t}`,r=await st(n,{redirect:"manual"});if(200!==r.status)throw Error("Wrong response code");return(await r.json()).names}catch(e){return{}}}async function queryProfile(e){const t=e.match(ot);if(!t)return null;const[,n="_",r]=t;try{const e=`https://${r}/.well-known/nostr.json?name=${n}`,t=await st(e,{redirect:"manual"});if(200!==t.status)throw Error("Wrong response code");const a=await t.json(),i=a.names[n];return i?{pubkey:i,relays:a.relays?.[i]}:null}catch(e){return null}}async function isValid(e,t){const n=await queryProfile(t);return!!n&&n.pubkey===e}var ct={};function parse(e){const t={reply:void 0,root:void 0,mentions:[],profiles:[],quotes:[]};let n,r;for(let a=e.tags.length-1;a>=0;a--){const i=e.tags[a];if("e"===i[0]&&i[1]){const[e,a,s,o,c]=i,d={id:a,relays:s?[s]:[],author:c};if("root"===o){t.root=d;continue}if("reply"===o){t.reply=d;continue}if("mention"===o){t.mentions.push(d);continue}n?r=d:n=d,t.mentions.push(d)}else{if("q"===i[0]&&i[1]){const[e,n,r]=i;t.quotes.push({id:n,relays:r?[r]:[]})}"p"===i[0]&&i[1]&&t.profiles.push({pubkey:i[1],relays:i[2]?[i[2]]:[]})}}return t.root||(t.root=r||n||t.reply),t.reply||(t.reply=n||t.root),[t.reply,t.root].forEach((e=>{if(!e)return;let n=t.mentions.indexOf(e);if(-1!==n&&t.mentions.splice(n,1),e.author){let n=t.profiles.find((t=>t.pubkey===e.author));n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach((t=>{-1===e.relays?.indexOf(t)&&e.relays.push(t)})),n.relays=e.relays)}})),t.mentions.forEach((e=>{if(e.author){let n=t.profiles.find((t=>t.pubkey===e.author));n&&n.relays&&(e.relays||(e.relays=[]),n.relays.forEach((t=>{-1===e.relays.indexOf(t)&&e.relays.push(t)})),n.relays=e.relays)}})),t}__export(ct,{parse:()=>parse});var dt={};__export(dt,{fetchRelayInformation:()=>fetchRelayInformation,useFetchImplementation:()=>useFetchImplementation2});try{fetch}catch{}function useFetchImplementation2(e){0}async function fetchRelayInformation(e){return await(await fetch(e.replace("ws://","http://").replace("wss://","https://"),{headers:{Accept:"application/nostr+json"}})).json()}var lt={};function getPow(e){let t=0;for(let n=0;n<64;n+=8){const r=parseInt(e.substring(n,n+8),16);if(0!==r){t+=Math.clz32(r);break}t+=32}return t}function minePow(e,t){let n=0;const r=e,a=["nonce",n.toString(),t.toString()];for(r.tags.push(a);;){const e=Math.floor((new Date).getTime()/1e3);if(e!==r.created_at&&(n=0,r.created_at=e),a[1]=(++n).toString(),r.id=fastEventHash(r),getPow(r.id)>=t)break}return r}function fastEventHash(e){return n(s(E.encode(JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content]))))}__export(lt,{fastEventHash:()=>fastEventHash,getPow:()=>getPow,minePow:()=>minePow});var ut={};__export(ut,{unwrapEvent:()=>vt,unwrapManyEvents:()=>mt,wrapEvent:()=>wrapEvent2,wrapManyEvents:()=>wrapManyEvents2});var pt={};__export(pt,{createRumor:()=>createRumor,createSeal:()=>createSeal,createWrap:()=>createWrap,unwrapEvent:()=>unwrapEvent,unwrapManyEvents:()=>unwrapManyEvents,wrapEvent:()=>wrapEvent,wrapManyEvents:()=>wrapManyEvents});var ht={};__export(ht,{decrypt:()=>decrypt2,encrypt:()=>encrypt2,getConversationKey:()=>getConversationKey,v2:()=>gt});var ft=1,yt=65535;function getConversationKey(e,n){const r=t.getSharedSecret(e,"02"+n).subarray(1,33);return p(s,r,"nip44-v2")}function getMessageKeys(e,t){const n=h(s,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function calcPaddedLen(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;const t=1<<Math.floor(Math.log2(e-1))+1,n=t<=256?32:t/8;return n*(Math.floor((e-1)/n)+1)}function pad(e){const t=E.encode(e),n=t.length,r=function writeU16BE(e){if(!Number.isSafeInteger(e)||e<ft||e>yt)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");const t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}(n),i=new Uint8Array(calcPaddedLen(n)-n);return a(r,t,i)}function hmacAad(e,t,n){if(32!==n.length)throw new Error("AAD associated data must be 32 bytes");const r=a(n,t);return f(s,e,r)}function encrypt2(e,t,n=i(32)){const{chacha_key:r,chacha_nonce:s,hmac_key:o}=getMessageKeys(t,n),d=pad(e),u=l(r,s,d),p=hmacAad(o,u,n);return c.encode(a(new Uint8Array([2]),n,u,p))}function decrypt2(e,t){const{nonce:n,ciphertext:r,mac:a}=function decodePayload(e){if("string"!=typeof e)throw new Error("payload must be a valid string");const t=e.length;if(t<132||t>87472)throw new Error("invalid payload length: "+t);if("#"===e[0])throw new Error("unknown encryption version");let n;try{n=c.decode(e)}catch(e){throw new Error("invalid base64: "+e.message)}const r=n.length;if(r<99||r>65603)throw new Error("invalid data length: "+r);const a=n[0];if(2!==a)throw new Error("unknown encryption version "+a);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}(e),{chacha_key:i,chacha_nonce:s,hmac_key:o}=getMessageKeys(t,n),d=hmacAad(o,r,n);if(!u(d,a))throw new Error("invalid MAC");return function unpad(e){const t=new DataView(e.buffer).getUint16(0),n=e.subarray(2,2+t);if(t<ft||t>yt||n.length!==t||e.length!==2+calcPaddedLen(t))throw new Error("invalid padding");return m.decode(n)}(l(i,s,r))}var gt={utils:{getConversationKey:getConversationKey,calcPaddedLen:calcPaddedLen},encrypt:encrypt2,decrypt:decrypt2},now=()=>Math.round(Date.now()/1e3),randomNow=()=>Math.round(now()-172800*Math.random()),nip44ConversationKey=(e,t)=>getConversationKey(e,t),nip44Encrypt=(e,t,n)=>encrypt2(JSON.stringify(e),nip44ConversationKey(t,n)),nip44Decrypt=(e,t)=>JSON.parse(decrypt2(e.content,nip44ConversationKey(t,e.pubkey)));function createRumor(e,t){const n={created_at:now(),content:"",tags:[],...e,pubkey:R(t)};return n.id=getEventHash(n),n}function createSeal(e,t,n){return S({kind:$,content:nip44Encrypt(e,t,n),created_at:randomNow(),tags:[]},t)}function createWrap(e,t){const n=_();return S({kind:F,content:nip44Encrypt(e,n,t),created_at:randomNow(),tags:[["p",t]]},n)}function wrapEvent(e,t,n){return createWrap(createSeal(createRumor(e,t),t,n),n)}function wrapManyEvents(e,t,n){if(!n||0===n.length)throw new Error("At least one recipient is required.");const r=R(t),a=[wrapEvent(e,t,r)];return n.forEach((n=>{a.push(wrapEvent(e,t,n))})),a}function unwrapEvent(e,t){const n=nip44Decrypt(e,t);return nip44Decrypt(n,t)}function unwrapManyEvents(e,t){let n=[];return e.forEach((e=>{n.push(unwrapEvent(e,t))})),n.sort(((e,t)=>e.created_at-t.created_at)),n}function wrapEvent2(e,t,n,r,a){const i=function createEvent(e,t,n,r){const a={created_at:Math.ceil(Date.now()/1e3),kind:W,tags:[],content:t};return(Array.isArray(e)?e:[e]).forEach((({publicKey:e,relayUrl:t})=>{a.tags.push(t?["p",e,t]:["p",e])})),r&&a.tags.push(["e",r.eventId,r.relayUrl||"","reply"]),n&&a.tags.push(["subject",n]),a}(t,n,r,a);return wrapEvent(i,e,t.publicKey)}function wrapManyEvents2(e,t,n,r,a){if(!t||0===t.length)throw new Error("At least one recipient is required.");return[{publicKey:R(e)},...t].map((t=>wrapEvent2(e,t,n,r,a)))}var vt=unwrapEvent,mt=unwrapManyEvents,Et={};function finishRepostEvent(e,t,n,r){let a;const i=[...e.tags??[],["e",t.id,n],["p",t.pubkey]];return t.kind===A?a=O:(a=j,i.push(["k",String(t.kind)])),S({kind:a,tags:i,content:""===e.content||t.tags?.find((e=>"-"===e[0]))?"":JSON.stringify(t),created_at:e.created_at},r)}function getRepostedEventPointer(e){if(![O,j].includes(e.kind))return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const a=e.tags[r];a.length>=2&&("e"===a[0]&&void 0===t?t=a:"p"===a[0]&&void 0===n&&(n=a))}return void 0!==t?{id:t[1],relays:[t[2],n?.[2]].filter((e=>"string"==typeof e)),author:n?.[1]}:void 0}function getRepostedEvent(e,{skipVerification:t}={}){const n=getRepostedEventPointer(e);if(void 0===n||""===e.content)return;let r;try{r=JSON.parse(e.content)}catch(e){return}return r.id===n.id&&(t||I(r))?r:void 0}__export(Et,{finishRepostEvent:()=>finishRepostEvent,getRepostedEvent:()=>getRepostedEvent,getRepostedEventPointer:()=>getRepostedEventPointer});var wt={};__export(wt,{NOSTR_URI_REGEX:()=>bt,parse:()=>parse2,test:()=>test});var bt=new RegExp(`nostr:(${rt.source})`);function test(e){return"string"==typeof e&&new RegExp(`^${bt.source}$`).test(e)}function parse2(e){const t=e.match(new RegExp(`^${bt.source}$`));if(!t)throw new Error(`Invalid Nostr URI: ${e}`);return{uri:t[0],value:t[1],decoded:decode(t[1])}}var kt={};function finishReactionEvent(e,t,n){const r=t.tags.filter((e=>e.length>=2&&("e"===e[0]||"p"===e[0])));return S({...e,kind:U,tags:[...e.tags??[],...r,["e",t.id],["p",t.pubkey]],content:e.content??"+"},n)}function getReactedEventPointer(e){if(e.kind!==U)return;let t,n;for(let r=e.tags.length-1;r>=0&&(void 0===t||void 0===n);r--){const a=e.tags[r];a.length>=2&&("e"===a[0]&&void 0===t?t=a:"p"===a[0]&&void 0===n&&(n=a))}return void 0!==t&&void 0!==n?{id:t[1],relays:[t[2],n[2]].filter((e=>void 0!==e)),author:n[1]}:void 0}__export(kt,{finishReactionEvent:()=>finishReactionEvent,getReactedEventPointer:()=>getReactedEventPointer});var _t={};__export(_t,{parse:()=>parse3});var Rt=/\W/m,St=/\W |\W$|$|,| /m;function*parse3(e){const t=e.length;let n=0,r=0;for(;r<t;){let a=e.indexOf(":",r);if(-1===a)break;if("nostr"===e.substring(a-5,a)){const i=e.substring(a+60).match(Rt),s=i?a+60+i.index:t;try{let t,{data:i,type:o}=decode(e.substring(a+1,s));switch(o){case"npub":t={pubkey:i};break;case"nsec":case"note":r=s+1;continue;default:t=i}n!==a-5&&(yield{type:"text",text:e.substring(n,a-5)}),yield{type:"reference",pointer:t},r=s,n=r;continue}catch(e){r=a+1;continue}}else if("https"===e.substring(a-5,a)||"http"===e.substring(a-4,a)){const i=e.substring(a+4).match(St),s=i?a+4+i.index:t,o="s"===e[a-1]?5:4;try{let t=new URL(e.substring(a-o,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid url");if(n!==a-o&&(yield{type:"text",text:e.substring(n,a-o)}),t.pathname.endsWith(".png")||t.pathname.endsWith(".jpg")||t.pathname.endsWith(".jpeg")||t.pathname.endsWith(".gif")||t.pathname.endsWith(".webp")){yield{type:"image",url:t.toString()},r=s,n=r;continue}if(t.pathname.endsWith(".mp4")||t.pathname.endsWith(".avi")||t.pathname.endsWith(".webm")||t.pathname.endsWith(".mkv")){yield{type:"video",url:t.toString()},r=s,n=r;continue}if(t.pathname.endsWith(".mp3")||t.pathname.endsWith(".aac")||t.pathname.endsWith(".ogg")||t.pathname.endsWith(".opus")){yield{type:"audio",url:t.toString()},r=s,n=r;continue}yield{type:"url",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}else{if("wss"!==e.substring(a-3,a)&&"ws"!==e.substring(a-2,a)){r=a+1;continue}{const i=e.substring(a+4).match(St),s=i?a+4+i.index:t,o="s"===e[a-1]?3:2;try{let t=new URL(e.substring(a-o,s));if(-1===t.hostname.indexOf("."))throw new Error("invalid ws url");n!==a-o&&(yield{type:"text",text:e.substring(n,a-o)}),yield{type:"relay",url:t.toString()},r=s,n=r;continue}catch(e){r=s+1;continue}}}}n!==t&&(yield{type:"text",text:e.substring(n)})}var It={};__export(It,{channelCreateEvent:()=>channelCreateEvent,channelHideMessageEvent:()=>channelHideMessageEvent,channelMessageEvent:()=>channelMessageEvent,channelMetadataEvent:()=>channelMetadataEvent,channelMuteUserEvent:()=>channelMuteUserEvent});var channelCreateEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return S({kind:q,tags:[...e.tags??[]],content:n,created_at:e.created_at},t)},channelMetadataEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return S({kind:z,tags:[["e",e.channel_create_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},channelMessageEvent=(e,t)=>{const n=[["e",e.channel_create_event_id,e.relay_url,"root"]];return e.reply_to_channel_message_event_id&&n.push(["e",e.reply_to_channel_message_event_id,e.relay_url,"reply"]),S({kind:D,tags:[...n,...e.tags??[]],content:e.content,created_at:e.created_at},t)},channelHideMessageEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return S({kind:V,tags:[["e",e.channel_message_event_id],...e.tags??[]],content:n,created_at:e.created_at},t)},channelMuteUserEvent=(e,t)=>{let n;if("object"==typeof e.content)n=JSON.stringify(e.content);else{if("string"!=typeof e.content)return;n=e.content}return S({kind:B,tags:[["p",e.pubkey_to_mute],...e.tags??[]],content:n,created_at:e.created_at},t)},Tt={};__export(Tt,{EMOJI_SHORTCODE_REGEX:()=>Pt,matchAll:()=>matchAll,regex:()=>regex,replaceAll:()=>replaceAll});var Pt=/:(\w+):/,regex=()=>new RegExp(`\\B${Pt.source}\\B`,"g");function*matchAll(e){const t=e.matchAll(regex());for(const e of t)try{const[t,n]=e;yield{shortcode:t,name:n,start:e.index,end:e.index+t.length}}catch(e){}}function replaceAll(e,t){return e.replaceAll(regex(),((e,n)=>t({shortcode:e,name:n})))}var xt,At={};__export(At,{useFetchImplementation:()=>useFetchImplementation3,validateGithub:()=>validateGithub});try{xt=fetch}catch{}function useFetchImplementation3(e){xt=e}async function validateGithub(e,t,n){try{return await(await xt(`https://gist.github.com/${t}/${n}/raw`)).text()===`Verifying that I control the following Nostr public key: ${e}`}catch(e){return!1}}var Lt={};function parseConnectionString(e){const{pathname:t,searchParams:n}=new URL(e),r=t,a=n.get("relay"),i=n.get("secret");if(!r||!a||!i)throw new Error("invalid connection string");return{pubkey:r,relay:a,secret:i}}async function makeNwcRequestEvent(e,t,n){const r={method:"pay_invoice",params:{invoice:n}},a=await encrypt(t,e,JSON.stringify(r)),i={kind:_e,created_at:Math.round(Date.now()/1e3),content:a,tags:[["p",e]]};return S(i,t)}__export(Lt,{makeNwcRequestEvent:()=>makeNwcRequestEvent,parseConnectionString:()=>parseConnectionString});var Mt={};function normalizeIdentifier(e){return e=(e=e.trim().toLowerCase()).normalize("NFKC"),Array.from(e).map((e=>/\p{Letter}/u.test(e)||/\p{Number}/u.test(e)?e:"-")).join("")}__export(Mt,{normalizeIdentifier:()=>normalizeIdentifier});var Nt,Kt={};__export(Kt,{getZapEndpoint:()=>getZapEndpoint,makeZapReceipt:()=>makeZapReceipt,makeZapRequest:()=>makeZapRequest,useFetchImplementation:()=>useFetchImplementation4,validateZapRequest:()=>validateZapRequest});try{Nt=fetch}catch{}function useFetchImplementation4(e){Nt=e}async function getZapEndpoint(e){try{let t="",{lud06:n,lud16:r}=JSON.parse(e.content);if(n){let{words:e}=o.decode(n,1e3),r=o.fromWords(e);t=m.decode(r)}else{if(!r)return null;{let[e,n]=r.split("@");t=new URL(`/.well-known/lnurlp/${e}`,`https://${n}`).toString()}}let a=await Nt(t),i=await a.json();if(i.allowsNostr&&i.nostrPubkey)return i.callback}catch(e){}return null}function makeZapRequest({profile:e,event:t,amount:n,relays:r,comment:a=""}){if(!n)throw new Error("amount not given");if(!e)throw new Error("profile not given");let i={kind:9734,created_at:Math.round(Date.now()/1e3),content:a,tags:[["p",e],["amount",n.toString()],["relays",...r]]};if(t&&"string"==typeof t&&i.tags.push(["e",t]),t&&"object"==typeof t)if(isReplaceableKind(t.kind)){const e=["a",`${t.kind}:${t.pubkey}:`];i.tags.push(e)}else if(isAddressableKind(t.kind)){let e=t.tags.find((([e,t])=>"d"===e&&t));if(!e)throw new Error("d tag not found or is empty");const n=["a",`${t.kind}:${t.pubkey}:${e[1]}`];i.tags.push(n)}return i}function validateZapRequest(e){let t;try{t=JSON.parse(e)}catch(e){return"Invalid zap request JSON."}if(!validateEvent(t))return"Zap request is not a valid Nostr event.";if(!I(t))return"Invalid signature on zap request.";let n=t.tags.find((([e,t])=>"p"===e&&t));if(!n)return"Zap request doesn't have a 'p' tag.";if(!n[1].match(/^[a-f0-9]{64}$/))return"Zap request 'p' tag is not valid hex.";let r=t.tags.find((([e,t])=>"e"===e&&t));return r&&!r[1].match(/^[a-f0-9]{64}$/)?"Zap request 'e' tag is not valid hex.":t.tags.find((([e,t])=>"relays"===e&&t))?null:"Zap request doesn't have a 'relays' tag."}function makeZapReceipt({zapRequest:e,preimage:t,bolt11:n,paidAt:r}){let a=JSON.parse(e),i=a.tags.filter((([e])=>"e"===e||"p"===e||"a"===e)),s={kind:9735,created_at:Math.round(r.getTime()/1e3),content:"",tags:[...i,["P",a.pubkey],["bolt11",n],["description",e]]};return t&&s.tags.push(["preimage",t]),s}var Ot={};__export(Ot,{getToken:()=>getToken,hashPayload:()=>hashPayload,unpackEventFromToken:()=>unpackEventFromToken,validateEvent:()=>validateEvent2,validateEventKind:()=>validateEventKind,validateEventMethodTag:()=>validateEventMethodTag,validateEventPayloadTag:()=>validateEventPayloadTag,validateEventTimestamp:()=>validateEventTimestamp,validateEventUrlTag:()=>validateEventUrlTag,validateToken:()=>validateToken});var Ut="Nostr ";async function getToken(e,t,n,r=!1,a){const i={kind:Ie,tags:[["u",e],["method",t]],created_at:Math.round((new Date).getTime()/1e3),content:""};a&&i.tags.push(["payload",hashPayload(a)]);const s=await n(i);return(r?Ut:"")+c.encode(E.encode(JSON.stringify(s)))}async function validateToken(e,t,n){const r=await unpackEventFromToken(e).catch((e=>{throw e}));return await validateEvent2(r,t,n).catch((e=>{throw e}))}async function unpackEventFromToken(e){if(!e)throw new Error("Missing token");e=e.replace(Ut,"");const t=m.decode(c.decode(e));if(!t||0===t.length||!t.startsWith("{"))throw new Error("Invalid token");return JSON.parse(t)}function validateEventTimestamp(e){return!!e.created_at&&Math.round((new Date).getTime()/1e3)-e.created_at<60}function validateEventKind(e){return e.kind===Ie}function validateEventUrlTag(e,t){const n=e.tags.find((e=>"u"===e[0]));return!!n&&(n.length>0&&n[1]===t)}function validateEventMethodTag(e,t){const n=e.tags.find((e=>"method"===e[0]));return!!n&&(n.length>0&&n[1].toLowerCase()===t.toLowerCase())}function hashPayload(e){const t=s(E.encode(JSON.stringify(e)));return n(t)}function validateEventPayloadTag(e,t){const n=e.tags.find((e=>"payload"===e[0]));if(!n)return!1;const r=hashPayload(t);return n.length>0&&n[1]===r}async function validateEvent2(e,t,n,r){if(!I(e))throw new Error("Invalid nostr event, signature invalid");if(!validateEventKind(e))throw new Error("Invalid nostr event, kind invalid");if(!validateEventTimestamp(e))throw new Error("Invalid nostr event, created_at timestamp invalid");if(!validateEventUrlTag(e,t))throw new Error("Invalid nostr event, url tag invalid");if(!validateEventMethodTag(e,n))throw new Error("Invalid nostr event, method tag invalid");if(Boolean(r)&&"object"==typeof r&&Object.keys(r).length>0&&!validateEventPayloadTag(e,r))throw new Error("Invalid nostr event, payload tag does not match request body hash");return!0}export{S as finalizeEvent,Qe as fj,_ as generateSecretKey,getEventHash,R as getPublicKey,T as kinds,at as nip04,it as nip05,ct as nip10,dt as nip11,lt as nip13,ut as nip17,Et as nip18,et as nip19,wt as nip21,kt as nip25,_t as nip27,It as nip28,Tt as nip30,At as nip39,Ye as nip42,ht as nip44,Lt as nip47,Mt as nip54,Kt as nip57,pt as nip59,Ot as nip98,serializeEvent,v as utils,validateEvent,g as verifiedSymbol,I as verifyEvent};
2
+ //# sourceMappingURL=index.esm.js.map