@hashgraphonline/standards-sdk 0.1.141 → 0.1.143-feat-adapter-registry.canary.fb173dc.54

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 (350) hide show
  1. package/README.md +24 -1
  2. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-11/types.d.ts +1 -0
  4. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  5. package/dist/cjs/hcs-12/validation/schemas.d.ts +8 -8
  6. package/dist/cjs/hcs-16/base-client.d.ts.map +1 -1
  7. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  8. package/dist/cjs/hcs-20/sdk.d.ts.map +1 -1
  9. package/dist/cjs/hcs-20/types.d.ts +9 -8
  10. package/dist/cjs/hcs-20/types.d.ts.map +1 -1
  11. package/dist/cjs/hcs-21/base-client.d.ts +14 -12
  12. package/dist/cjs/hcs-21/base-client.d.ts.map +1 -1
  13. package/dist/cjs/hcs-21/browser.d.ts +17 -7
  14. package/dist/cjs/hcs-21/browser.d.ts.map +1 -1
  15. package/dist/cjs/hcs-21/index.d.ts +1 -0
  16. package/dist/cjs/hcs-21/index.d.ts.map +1 -1
  17. package/dist/cjs/hcs-21/sdk.d.ts +70 -6
  18. package/dist/cjs/hcs-21/sdk.d.ts.map +1 -1
  19. package/dist/cjs/hcs-21/tx.d.ts +6 -2
  20. package/dist/cjs/hcs-21/tx.d.ts.map +1 -1
  21. package/dist/cjs/hcs-21/types.d.ts +751 -66
  22. package/dist/cjs/hcs-21/types.d.ts.map +1 -1
  23. package/dist/cjs/hcs-21/verify.d.ts +6 -0
  24. package/dist/cjs/hcs-21/verify.d.ts.map +1 -0
  25. package/dist/cjs/inscribe/inscriber.d.ts +3 -1
  26. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  27. package/dist/cjs/inscribe/quote-cache.d.ts.map +1 -1
  28. package/dist/cjs/inscribe/types.d.ts +7 -0
  29. package/dist/cjs/inscribe/types.d.ts.map +1 -1
  30. package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
  31. package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
  32. package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
  33. package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
  34. package/dist/cjs/services/registry-broker/client/base-client.d.ts +57 -0
  35. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
  36. package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
  37. package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
  38. package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
  39. package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
  40. package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
  41. package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
  42. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  43. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  44. package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
  45. package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
  46. package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
  47. package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
  48. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
  49. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  50. package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
  51. package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
  52. package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
  53. package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
  54. package/dist/cjs/services/registry-broker/client.d.ts +2 -204
  55. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  56. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  57. package/dist/cjs/services/registry-broker/schemas.d.ts +1473 -177
  58. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  59. package/dist/cjs/services/registry-broker/types.d.ts +45 -3
  60. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  61. package/dist/cjs/services/types.d.ts +1 -0
  62. package/dist/cjs/services/types.d.ts.map +1 -1
  63. package/dist/cjs/standards-sdk.cjs +2 -2
  64. package/dist/cjs/standards-sdk.cjs.map +1 -1
  65. package/dist/cjs/utils/dynamic-import.d.ts +1 -0
  66. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  67. package/dist/es/hcs-11/client.d.ts.map +1 -1
  68. package/dist/es/hcs-11/types.d.ts +1 -0
  69. package/dist/es/hcs-11/types.d.ts.map +1 -1
  70. package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
  71. package/dist/es/hcs-16/base-client.d.ts.map +1 -1
  72. package/dist/es/hcs-17/types.d.ts.map +1 -1
  73. package/dist/es/hcs-20/sdk.d.ts.map +1 -1
  74. package/dist/es/hcs-20/types.d.ts +9 -8
  75. package/dist/es/hcs-20/types.d.ts.map +1 -1
  76. package/dist/es/hcs-21/base-client.d.ts +14 -12
  77. package/dist/es/hcs-21/base-client.d.ts.map +1 -1
  78. package/dist/es/hcs-21/browser.d.ts +17 -7
  79. package/dist/es/hcs-21/browser.d.ts.map +1 -1
  80. package/dist/es/hcs-21/index.d.ts +1 -0
  81. package/dist/es/hcs-21/index.d.ts.map +1 -1
  82. package/dist/es/hcs-21/sdk.d.ts +70 -6
  83. package/dist/es/hcs-21/sdk.d.ts.map +1 -1
  84. package/dist/es/hcs-21/tx.d.ts +6 -2
  85. package/dist/es/hcs-21/tx.d.ts.map +1 -1
  86. package/dist/es/hcs-21/types.d.ts +751 -66
  87. package/dist/es/hcs-21/types.d.ts.map +1 -1
  88. package/dist/es/hcs-21/verify.d.ts +6 -0
  89. package/dist/es/hcs-21/verify.d.ts.map +1 -0
  90. package/dist/es/inscribe/inscriber.d.ts +3 -1
  91. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  92. package/dist/es/inscribe/quote-cache.d.ts.map +1 -1
  93. package/dist/es/inscribe/types.d.ts +7 -0
  94. package/dist/es/inscribe/types.d.ts.map +1 -1
  95. package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
  96. package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
  97. package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
  98. package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
  99. package/dist/es/services/registry-broker/client/base-client.d.ts +57 -0
  100. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
  101. package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
  102. package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
  103. package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
  104. package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
  105. package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
  106. package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
  107. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  108. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  109. package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
  110. package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
  111. package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
  112. package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
  113. package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
  114. package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  115. package/dist/es/services/registry-broker/client/search.d.ts +19 -0
  116. package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
  117. package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
  118. package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
  119. package/dist/es/services/registry-broker/client.d.ts +2 -204
  120. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  121. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  122. package/dist/es/services/registry-broker/schemas.d.ts +1473 -177
  123. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  124. package/dist/es/services/registry-broker/types.d.ts +45 -3
  125. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  126. package/dist/es/services/types.d.ts +1 -0
  127. package/dist/es/services/types.d.ts.map +1 -1
  128. package/dist/es/standards-sdk.es.js +73 -51
  129. package/dist/es/standards-sdk.es.js.map +1 -1
  130. package/dist/es/standards-sdk.es10.js +2 -2
  131. package/dist/es/standards-sdk.es100.js +26 -229
  132. package/dist/es/standards-sdk.es100.js.map +1 -1
  133. package/dist/es/standards-sdk.es101.js +228 -109
  134. package/dist/es/standards-sdk.es101.js.map +1 -1
  135. package/dist/es/standards-sdk.es102.js +94 -15
  136. package/dist/es/standards-sdk.es102.js.map +1 -1
  137. package/dist/es/standards-sdk.es103.js +30 -80
  138. package/dist/es/standards-sdk.es103.js.map +1 -1
  139. package/dist/es/standards-sdk.es104.js +80 -27
  140. package/dist/es/standards-sdk.es104.js.map +1 -1
  141. package/dist/es/standards-sdk.es105.js +25 -136
  142. package/dist/es/standards-sdk.es105.js.map +1 -1
  143. package/dist/es/standards-sdk.es106.js +140 -27
  144. package/dist/es/standards-sdk.es106.js.map +1 -1
  145. package/dist/es/standards-sdk.es107.js +27 -20
  146. package/dist/es/standards-sdk.es107.js.map +1 -1
  147. package/dist/es/standards-sdk.es108.js +18 -156
  148. package/dist/es/standards-sdk.es108.js.map +1 -1
  149. package/dist/es/standards-sdk.es109.js +148 -196
  150. package/dist/es/standards-sdk.es109.js.map +1 -1
  151. package/dist/es/standards-sdk.es110.js +167 -747
  152. package/dist/es/standards-sdk.es110.js.map +1 -1
  153. package/dist/es/standards-sdk.es111.js +786 -9
  154. package/dist/es/standards-sdk.es111.js.map +1 -1
  155. package/dist/es/standards-sdk.es112.js +13 -567
  156. package/dist/es/standards-sdk.es112.js.map +1 -1
  157. package/dist/es/standards-sdk.es113.js +541 -576
  158. package/dist/es/standards-sdk.es113.js.map +1 -1
  159. package/dist/es/standards-sdk.es114.js +601 -12
  160. package/dist/es/standards-sdk.es114.js.map +1 -1
  161. package/dist/es/standards-sdk.es115.js +13 -2
  162. package/dist/es/standards-sdk.es115.js.map +1 -1
  163. package/dist/es/standards-sdk.es116.js +2 -83
  164. package/dist/es/standards-sdk.es116.js.map +1 -1
  165. package/dist/es/standards-sdk.es117.js +80 -36
  166. package/dist/es/standards-sdk.es117.js.map +1 -1
  167. package/dist/es/standards-sdk.es118.js +39 -2
  168. package/dist/es/standards-sdk.es118.js.map +1 -1
  169. package/dist/es/standards-sdk.es119.js +2 -223
  170. package/dist/es/standards-sdk.es119.js.map +1 -1
  171. package/dist/es/standards-sdk.es12.js +1 -1
  172. package/dist/es/standards-sdk.es120.js +193 -1110
  173. package/dist/es/standards-sdk.es120.js.map +1 -1
  174. package/dist/es/standards-sdk.es121.js +1059 -225
  175. package/dist/es/standards-sdk.es121.js.map +1 -1
  176. package/dist/es/standards-sdk.es122.js +303 -419
  177. package/dist/es/standards-sdk.es122.js.map +1 -1
  178. package/dist/es/standards-sdk.es123.js +418 -351
  179. package/dist/es/standards-sdk.es123.js.map +1 -1
  180. package/dist/es/standards-sdk.es124.js +348 -754
  181. package/dist/es/standards-sdk.es124.js.map +1 -1
  182. package/dist/es/standards-sdk.es125.js +854 -178
  183. package/dist/es/standards-sdk.es125.js.map +1 -1
  184. package/dist/es/standards-sdk.es126.js +153 -1512
  185. package/dist/es/standards-sdk.es126.js.map +1 -1
  186. package/dist/es/standards-sdk.es127.js +1373 -1977
  187. package/dist/es/standards-sdk.es127.js.map +1 -1
  188. package/dist/es/standards-sdk.es128.js +176 -51
  189. package/dist/es/standards-sdk.es128.js.map +1 -1
  190. package/dist/es/standards-sdk.es129.js +196 -76
  191. package/dist/es/standards-sdk.es129.js.map +1 -1
  192. package/dist/es/standards-sdk.es13.js +1 -1
  193. package/dist/es/standards-sdk.es130.js +98 -153
  194. package/dist/es/standards-sdk.es130.js.map +1 -1
  195. package/dist/es/standards-sdk.es131.js +122 -8
  196. package/dist/es/standards-sdk.es131.js.map +1 -1
  197. package/dist/es/standards-sdk.es132.js +234 -73
  198. package/dist/es/standards-sdk.es132.js.map +1 -1
  199. package/dist/es/standards-sdk.es133.js +171 -56
  200. package/dist/es/standards-sdk.es133.js.map +1 -1
  201. package/dist/es/standards-sdk.es134.js +123 -29
  202. package/dist/es/standards-sdk.es134.js.map +1 -1
  203. package/dist/es/standards-sdk.es135.js +313 -125
  204. package/dist/es/standards-sdk.es135.js.map +1 -1
  205. package/dist/es/standards-sdk.es136.js +358 -34
  206. package/dist/es/standards-sdk.es136.js.map +1 -1
  207. package/dist/es/standards-sdk.es137.js +17 -732
  208. package/dist/es/standards-sdk.es137.js.map +1 -1
  209. package/dist/es/standards-sdk.es138.js +65 -12264
  210. package/dist/es/standards-sdk.es138.js.map +1 -1
  211. package/dist/es/standards-sdk.es139.js +86 -16
  212. package/dist/es/standards-sdk.es139.js.map +1 -1
  213. package/dist/es/standards-sdk.es14.js +1 -1
  214. package/dist/es/standards-sdk.es140.js +152 -49
  215. package/dist/es/standards-sdk.es140.js.map +1 -1
  216. package/dist/es/standards-sdk.es141.js +7 -64
  217. package/dist/es/standards-sdk.es141.js.map +1 -1
  218. package/dist/es/standards-sdk.es142.js +71 -157
  219. package/dist/es/standards-sdk.es142.js.map +1 -1
  220. package/dist/es/standards-sdk.es143.js +49 -306
  221. package/dist/es/standards-sdk.es143.js.map +1 -1
  222. package/dist/es/standards-sdk.es144.js +28 -346
  223. package/dist/es/standards-sdk.es144.js.map +1 -1
  224. package/dist/es/standards-sdk.es145.js +112 -427
  225. package/dist/es/standards-sdk.es145.js.map +1 -1
  226. package/dist/es/standards-sdk.es146.js +40 -329
  227. package/dist/es/standards-sdk.es146.js.map +1 -1
  228. package/dist/es/standards-sdk.es147.js +12277 -66
  229. package/dist/es/standards-sdk.es147.js.map +1 -1
  230. package/dist/es/standards-sdk.es148.js +20 -0
  231. package/dist/es/standards-sdk.es148.js.map +1 -0
  232. package/dist/es/standards-sdk.es149.js +59 -0
  233. package/dist/es/standards-sdk.es149.js.map +1 -0
  234. package/dist/es/standards-sdk.es15.js +1 -1
  235. package/dist/es/standards-sdk.es150.js +85 -0
  236. package/dist/es/standards-sdk.es150.js.map +1 -0
  237. package/dist/es/standards-sdk.es151.js +175 -0
  238. package/dist/es/standards-sdk.es151.js.map +1 -0
  239. package/dist/es/standards-sdk.es152.js +325 -0
  240. package/dist/es/standards-sdk.es152.js.map +1 -0
  241. package/dist/es/standards-sdk.es153.js +349 -0
  242. package/dist/es/standards-sdk.es153.js.map +1 -0
  243. package/dist/es/standards-sdk.es154.js +456 -0
  244. package/dist/es/standards-sdk.es154.js.map +1 -0
  245. package/dist/es/standards-sdk.es155.js +334 -0
  246. package/dist/es/standards-sdk.es155.js.map +1 -0
  247. package/dist/es/standards-sdk.es156.js +79 -0
  248. package/dist/es/standards-sdk.es156.js.map +1 -0
  249. package/dist/es/standards-sdk.es157.js +874 -0
  250. package/dist/es/standards-sdk.es157.js.map +1 -0
  251. package/dist/es/standards-sdk.es158.js +242 -0
  252. package/dist/es/standards-sdk.es158.js.map +1 -0
  253. package/dist/es/standards-sdk.es159.js +247 -0
  254. package/dist/es/standards-sdk.es159.js.map +1 -0
  255. package/dist/es/standards-sdk.es16.js +1 -1
  256. package/dist/es/standards-sdk.es17.js +13 -11
  257. package/dist/es/standards-sdk.es17.js.map +1 -1
  258. package/dist/es/standards-sdk.es19.js +20 -17
  259. package/dist/es/standards-sdk.es19.js.map +1 -1
  260. package/dist/es/standards-sdk.es20.js +17 -14
  261. package/dist/es/standards-sdk.es20.js.map +1 -1
  262. package/dist/es/standards-sdk.es21.js +1 -1
  263. package/dist/es/standards-sdk.es22.js +1 -1
  264. package/dist/es/standards-sdk.es23.js +1 -1
  265. package/dist/es/standards-sdk.es24.js +1 -1
  266. package/dist/es/standards-sdk.es25.js +1 -1
  267. package/dist/es/standards-sdk.es26.js +1 -1
  268. package/dist/es/standards-sdk.es27.js +1 -1
  269. package/dist/es/standards-sdk.es28.js +24 -19
  270. package/dist/es/standards-sdk.es28.js.map +1 -1
  271. package/dist/es/standards-sdk.es29.js.map +1 -1
  272. package/dist/es/standards-sdk.es3.js +2 -2
  273. package/dist/es/standards-sdk.es31.js +2 -2
  274. package/dist/es/standards-sdk.es32.js +4 -4
  275. package/dist/es/standards-sdk.es33.js +1 -1
  276. package/dist/es/standards-sdk.es36.js +16 -13
  277. package/dist/es/standards-sdk.es36.js.map +1 -1
  278. package/dist/es/standards-sdk.es37.js +4 -4
  279. package/dist/es/standards-sdk.es38.js +2 -2
  280. package/dist/es/standards-sdk.es39.js +2 -2
  281. package/dist/es/standards-sdk.es40.js +1 -1
  282. package/dist/es/standards-sdk.es41.js +1 -1
  283. package/dist/es/standards-sdk.es42.js +2 -2
  284. package/dist/es/standards-sdk.es47.js +1 -1
  285. package/dist/es/standards-sdk.es5.js +2 -2
  286. package/dist/es/standards-sdk.es52.js +1 -1
  287. package/dist/es/standards-sdk.es54.js +1 -1
  288. package/dist/es/standards-sdk.es57.js +2 -2
  289. package/dist/es/standards-sdk.es59.js +1 -1
  290. package/dist/es/standards-sdk.es6.js +2 -2
  291. package/dist/es/standards-sdk.es60.js +1 -1
  292. package/dist/es/standards-sdk.es61.js +15 -12
  293. package/dist/es/standards-sdk.es61.js.map +1 -1
  294. package/dist/es/standards-sdk.es63.js +1 -1
  295. package/dist/es/standards-sdk.es65.js +2 -2
  296. package/dist/es/standards-sdk.es66.js +3 -3
  297. package/dist/es/standards-sdk.es69.js +2 -2
  298. package/dist/es/standards-sdk.es7.js +2 -2
  299. package/dist/es/standards-sdk.es70.js +3 -3
  300. package/dist/es/standards-sdk.es71.js +2 -2
  301. package/dist/es/standards-sdk.es72.js +1 -1
  302. package/dist/es/standards-sdk.es73.js.map +1 -1
  303. package/dist/es/standards-sdk.es75.js +2 -2
  304. package/dist/es/standards-sdk.es77.js +5 -3
  305. package/dist/es/standards-sdk.es77.js.map +1 -1
  306. package/dist/es/standards-sdk.es78.js +12 -11
  307. package/dist/es/standards-sdk.es78.js.map +1 -1
  308. package/dist/es/standards-sdk.es79.js +1 -1
  309. package/dist/es/standards-sdk.es8.js +1 -1
  310. package/dist/es/standards-sdk.es80.js +113 -29
  311. package/dist/es/standards-sdk.es80.js.map +1 -1
  312. package/dist/es/standards-sdk.es82.js +23 -4
  313. package/dist/es/standards-sdk.es82.js.map +1 -1
  314. package/dist/es/standards-sdk.es83.js +39 -14
  315. package/dist/es/standards-sdk.es83.js.map +1 -1
  316. package/dist/es/standards-sdk.es84.js +198 -17
  317. package/dist/es/standards-sdk.es84.js.map +1 -1
  318. package/dist/es/standards-sdk.es85.js +256 -9
  319. package/dist/es/standards-sdk.es85.js.map +1 -1
  320. package/dist/es/standards-sdk.es86.js +55 -21
  321. package/dist/es/standards-sdk.es86.js.map +1 -1
  322. package/dist/es/standards-sdk.es87.js +22 -75
  323. package/dist/es/standards-sdk.es87.js.map +1 -1
  324. package/dist/es/standards-sdk.es88.js +45 -30
  325. package/dist/es/standards-sdk.es88.js.map +1 -1
  326. package/dist/es/standards-sdk.es89.js +57 -22
  327. package/dist/es/standards-sdk.es89.js.map +1 -1
  328. package/dist/es/standards-sdk.es90.js +28 -23
  329. package/dist/es/standards-sdk.es90.js.map +1 -1
  330. package/dist/es/standards-sdk.es91.js +23 -167
  331. package/dist/es/standards-sdk.es91.js.map +1 -1
  332. package/dist/es/standards-sdk.es92.js +158 -119
  333. package/dist/es/standards-sdk.es92.js.map +1 -1
  334. package/dist/es/standards-sdk.es93.js +68 -95
  335. package/dist/es/standards-sdk.es93.js.map +1 -1
  336. package/dist/es/standards-sdk.es94.js +136 -119
  337. package/dist/es/standards-sdk.es94.js.map +1 -1
  338. package/dist/es/standards-sdk.es95.js +139 -39
  339. package/dist/es/standards-sdk.es95.js.map +1 -1
  340. package/dist/es/standards-sdk.es96.js +42 -257
  341. package/dist/es/standards-sdk.es96.js.map +1 -1
  342. package/dist/es/standards-sdk.es97.js +243 -80
  343. package/dist/es/standards-sdk.es97.js.map +1 -1
  344. package/dist/es/standards-sdk.es98.js +47 -48
  345. package/dist/es/standards-sdk.es98.js.map +1 -1
  346. package/dist/es/standards-sdk.es99.js +100 -28
  347. package/dist/es/standards-sdk.es99.js.map +1 -1
  348. package/dist/es/utils/dynamic-import.d.ts +1 -0
  349. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  350. package/package.json +6 -10
@@ -1,163 +1,25 @@
1
- import { Logger } from "./standards-sdk.es105.js";
2
- class ProgressReporter {
3
- constructor(options = {}) {
4
- this.module = options.module || "Progress";
5
- this.callback = options.callback;
6
- this.logger = options.logger || new Logger({
7
- level: "info",
8
- module: "ProgressReporter"
9
- });
10
- this.logProgress = options.logProgress ?? true;
11
- this.minPercent = options.minPercent ?? 0;
12
- this.maxPercent = options.maxPercent ?? 100;
13
- this.lastReportedPercent = -1;
14
- this.lastReportedTime = 0;
15
- this.throttleMs = 100;
16
- }
17
- static getInstance(options = {}) {
18
- if (!ProgressReporter.instance) {
19
- ProgressReporter.instance = new ProgressReporter(options);
20
- } else {
21
- if (options.callback) {
22
- ProgressReporter.instance.setCallback(options.callback);
23
- }
24
- if (options.module) {
25
- ProgressReporter.instance.setModule(options.module);
26
- }
27
- if (options.logger) {
28
- ProgressReporter.instance.setLogger(options.logger);
29
- }
30
- if (options.minPercent !== void 0) {
31
- ProgressReporter.instance.setMinPercent(options.minPercent);
32
- }
33
- if (options.maxPercent !== void 0) {
34
- ProgressReporter.instance.setMaxPercent(options.maxPercent);
35
- }
36
- }
37
- return ProgressReporter.instance;
38
- }
39
- setCallback(callback) {
40
- this.callback = callback;
41
- }
42
- setModule(module) {
43
- this.module = module;
44
- }
45
- setLogger(logger) {
46
- this.logger = logger;
47
- }
48
- setMinPercent(minPercent) {
49
- this.minPercent = minPercent;
50
- }
51
- setMaxPercent(maxPercent) {
52
- this.maxPercent = maxPercent;
53
- }
54
- createSubProgress(options) {
55
- const subReporter = new ProgressReporter({
56
- module: this.module,
57
- logger: this.logger,
58
- logProgress: this.logProgress,
59
- minPercent: options.minPercent,
60
- maxPercent: options.maxPercent
61
- });
62
- const logPrefix = options.logPrefix || "";
63
- subReporter.setCallback((data) => {
64
- const scaledPercent = this.scalePercent(
65
- data.progressPercent,
66
- options.minPercent,
67
- options.maxPercent
68
- );
69
- let formattedMessage = data.message;
70
- if (logPrefix && !formattedMessage.startsWith(logPrefix)) {
71
- formattedMessage = `${logPrefix}: ${formattedMessage}`;
72
- }
73
- this.report({
74
- stage: data.stage,
75
- message: formattedMessage,
76
- progressPercent: scaledPercent,
77
- details: data.details
78
- });
79
- });
80
- return subReporter;
81
- }
82
- report(data) {
83
- const rawPercent = data.progressPercent;
84
- const percent = Math.max(0, Math.min(100, rawPercent));
85
- const scaledPercent = this.scalePercent(percent, 0, 100);
86
- const now = Date.now();
87
- if (scaledPercent === this.lastReportedPercent && now - this.lastReportedTime < this.throttleMs && data.stage !== "completed" && data.stage !== "failed") {
88
- return;
89
- }
90
- this.lastReportedPercent = scaledPercent;
91
- this.lastReportedTime = now;
92
- const progressData = {
93
- ...data,
94
- progressPercent: scaledPercent
95
- };
96
- if (this.logProgress) {
97
- this.logger.debug(
98
- `[${this.module}] [${data.stage.toUpperCase()}] ${data.message} (${scaledPercent.toFixed(1)}%)`,
99
- data.details
100
- );
101
- }
102
- if (this.callback) {
103
- try {
104
- this.callback(progressData);
105
- } catch (err) {
106
- this.logger.warn(`Error in progress callback: ${err}`);
1
+ import { HederaMirrorNode } from "./standards-sdk.es127.js";
2
+ async function accountIdsToExemptKeys(accountIds, network, logger) {
3
+ const mirrorNode = new HederaMirrorNode(
4
+ network,
5
+ logger
6
+ );
7
+ const exemptKeys = [];
8
+ for (const accountId of accountIds) {
9
+ try {
10
+ const publicKey = await mirrorNode.getPublicKey(accountId);
11
+ exemptKeys.push(publicKey);
12
+ } catch (error) {
13
+ if (logger) {
14
+ logger.warn(
15
+ `Could not get public key for account ${accountId}: ${error}`
16
+ );
107
17
  }
108
18
  }
109
19
  }
110
- scalePercent(percent, sourceMin, sourceMax) {
111
- const range = this.maxPercent - this.minPercent;
112
- const sourceRange = sourceMax - sourceMin;
113
- const scaleFactor = range / sourceRange;
114
- return this.minPercent + (percent - sourceMin) * scaleFactor;
115
- }
116
- preparing(message, percent, details) {
117
- this.report({
118
- stage: "preparing",
119
- message,
120
- progressPercent: percent,
121
- details
122
- });
123
- }
124
- submitting(message, percent, details) {
125
- this.report({
126
- stage: "submitting",
127
- message,
128
- progressPercent: percent,
129
- details
130
- });
131
- }
132
- confirming(message, percent, details) {
133
- this.report({
134
- stage: "confirming",
135
- message,
136
- progressPercent: percent,
137
- details
138
- });
139
- }
140
- verifying(message, percent, details) {
141
- this.report({
142
- stage: "verifying",
143
- message,
144
- progressPercent: percent,
145
- details
146
- });
147
- }
148
- completed(message, details) {
149
- this.report({ stage: "completed", message, progressPercent: 100, details });
150
- }
151
- failed(message, details) {
152
- this.report({
153
- stage: "failed",
154
- message,
155
- progressPercent: this.lastReportedPercent,
156
- details
157
- });
158
- }
20
+ return exemptKeys;
159
21
  }
160
22
  export {
161
- ProgressReporter
23
+ accountIdsToExemptKeys
162
24
  };
163
25
  //# sourceMappingURL=standards-sdk.es108.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es108.js","sources":["../../src/utils/progress-reporter.ts"],"sourcesContent":["import { Logger, ILogger } from './logger';\n\nexport type ProgressStage =\n | 'preparing'\n | 'submitting'\n | 'confirming'\n | 'verifying'\n | 'completed'\n | 'failed';\n\nexport interface ProgressData {\n stage: ProgressStage;\n message: string;\n progressPercent: number;\n details?: Record<string, any>;\n}\n\nexport type ProgressCallback = (data: ProgressData) => void;\n\nexport interface ProgressReporterOptions {\n module?: string;\n callback?: ProgressCallback;\n logger?: ILogger;\n logProgress?: boolean;\n minPercent?: number;\n maxPercent?: number;\n}\n\n/**\n * ProgressReporter is a singleton class that reports progress of a task.\n * Can be used in a generalized fashion.\n */\nexport class ProgressReporter {\n private static instance: ProgressReporter;\n private module: string;\n private callback?: ProgressCallback;\n private logger: ILogger;\n private logProgress: boolean;\n private minPercent: number;\n private maxPercent: number;\n private lastReportedPercent: number;\n private lastReportedTime: number;\n private throttleMs: number;\n\n constructor(options: ProgressReporterOptions = {}) {\n this.module = options.module || 'Progress';\n this.callback = options.callback;\n this.logger =\n options.logger ||\n new Logger({\n level: 'info',\n module: 'ProgressReporter',\n });\n this.logProgress = options.logProgress ?? true;\n this.minPercent = options.minPercent ?? 0;\n this.maxPercent = options.maxPercent ?? 100;\n this.lastReportedPercent = -1;\n this.lastReportedTime = 0;\n this.throttleMs = 100;\n }\n\n static getInstance(options: ProgressReporterOptions = {}): ProgressReporter {\n if (!ProgressReporter.instance) {\n ProgressReporter.instance = new ProgressReporter(options);\n } else {\n if (options.callback) {\n ProgressReporter.instance.setCallback(options.callback);\n }\n if (options.module) {\n ProgressReporter.instance.setModule(options.module);\n }\n if (options.logger) {\n ProgressReporter.instance.setLogger(options.logger);\n }\n if (options.minPercent !== undefined) {\n ProgressReporter.instance.setMinPercent(options.minPercent);\n }\n if (options.maxPercent !== undefined) {\n ProgressReporter.instance.setMaxPercent(options.maxPercent);\n }\n }\n return ProgressReporter.instance;\n }\n\n setCallback(callback: ProgressCallback): void {\n this.callback = callback;\n }\n\n setModule(module: string): void {\n this.module = module;\n }\n\n setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n setMinPercent(minPercent: number): void {\n this.minPercent = minPercent;\n }\n\n setMaxPercent(maxPercent: number): void {\n this.maxPercent = maxPercent;\n }\n\n createSubProgress(options: {\n minPercent: number;\n maxPercent: number;\n logPrefix?: string;\n }): ProgressReporter {\n const subReporter = new ProgressReporter({\n module: this.module,\n logger: this.logger,\n logProgress: this.logProgress,\n minPercent: options.minPercent,\n maxPercent: options.maxPercent,\n });\n\n const logPrefix = options.logPrefix || '';\n\n subReporter.setCallback(data => {\n const scaledPercent = this.scalePercent(\n data.progressPercent,\n options.minPercent,\n options.maxPercent,\n );\n\n let formattedMessage = data.message;\n if (logPrefix && !formattedMessage.startsWith(logPrefix)) {\n formattedMessage = `${logPrefix}: ${formattedMessage}`;\n }\n\n this.report({\n stage: data.stage,\n message: formattedMessage,\n progressPercent: scaledPercent,\n details: data.details,\n });\n });\n\n return subReporter;\n }\n\n report(data: ProgressData): void {\n const rawPercent = data.progressPercent;\n const percent = Math.max(0, Math.min(100, rawPercent));\n\n const scaledPercent = this.scalePercent(percent, 0, 100);\n\n const now = Date.now();\n if (\n scaledPercent === this.lastReportedPercent &&\n now - this.lastReportedTime < this.throttleMs &&\n data.stage !== 'completed' &&\n data.stage !== 'failed'\n ) {\n return;\n }\n\n this.lastReportedPercent = scaledPercent;\n this.lastReportedTime = now;\n\n const progressData = {\n ...data,\n progressPercent: scaledPercent,\n };\n\n if (this.logProgress) {\n this.logger.debug(\n `[${this.module}] [${data.stage.toUpperCase()}] ${\n data.message\n } (${scaledPercent.toFixed(1)}%)`,\n data.details,\n );\n }\n\n if (this.callback) {\n try {\n this.callback(progressData);\n } catch (err) {\n this.logger.warn(`Error in progress callback: ${err}`);\n }\n }\n }\n\n private scalePercent(\n percent: number,\n sourceMin: number,\n sourceMax: number,\n ): number {\n const range = this.maxPercent - this.minPercent;\n const sourceRange = sourceMax - sourceMin;\n const scaleFactor = range / sourceRange;\n\n return this.minPercent + (percent - sourceMin) * scaleFactor;\n }\n\n preparing(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'preparing',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n submitting(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'submitting',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n confirming(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'confirming',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n verifying(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'verifying',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n completed(message: string, details?: Record<string, any>): void {\n this.report({ stage: 'completed', message, progressPercent: 100, details });\n }\n\n failed(message: string, details?: Record<string, any>): void {\n this.report({\n stage: 'failed',\n message,\n progressPercent: this.lastReportedPercent,\n details,\n });\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es108.js","sources":["../../src/utils/topic-fee-utils.ts"],"sourcesContent":["import { PublicKey } from '@hashgraph/sdk';\nimport { ILogger } from './logger';\nimport { HederaMirrorNode } from '../services/mirror-node';\n\n/**\n * Converts account IDs to public keys for fee exemption\n * @param client Hedera client instance\n * @param accountIds Array of account IDs to convert to public keys\n * @param network The network to use for retrieving public keys\n * @param logger Optional logger instance\n * @returns Array of public keys\n */\nexport async function accountIdsToExemptKeys(\n accountIds: string[],\n network: string,\n logger?: ILogger,\n): Promise<PublicKey[]> {\n const mirrorNode = new HederaMirrorNode(\n network as 'mainnet' | 'testnet',\n logger,\n );\n const exemptKeys: PublicKey[] = [];\n\n for (const accountId of accountIds) {\n try {\n const publicKey = await mirrorNode.getPublicKey(accountId);\n exemptKeys.push(publicKey);\n } catch (error) {\n if (logger) {\n logger.warn(\n `Could not get public key for account ${accountId}: ${error}`,\n );\n }\n }\n }\n\n return exemptKeys;\n}\n"],"names":[],"mappings":";AAYA,eAAsB,uBACpB,YACA,SACA,QACsB;AACtB,QAAM,aAAa,IAAI;AAAA,IACrB;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,aAA0B,CAAA;AAEhC,aAAW,aAAa,YAAY;AAClC,QAAI;AACF,YAAM,YAAY,MAAM,WAAW,aAAa,SAAS;AACzD,iBAAW,KAAK,SAAS;AAAA,IAC3B,SAAS,OAAO;AACd,UAAI,QAAQ;AACV,eAAO;AAAA,UACL,wCAAwC,SAAS,KAAK,KAAK;AAAA,QAAA;AAAA,MAE/D;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;"}
@@ -1,211 +1,163 @@
1
- import axios from "axios";
2
- import { Logger } from "./standards-sdk.es105.js";
3
- import { HederaMirrorNode } from "./standards-sdk.es126.js";
4
- import "node:path";
5
- import "node:buffer";
6
- import "node:crypto";
7
- import "@noble/curves/secp256k1.js";
8
- import "./standards-sdk.es129.js";
9
- import "viem/accounts";
10
- import "viem/chains";
11
- import "x402-axios";
12
- import "x402/types";
13
- import "./standards-sdk.es137.js";
14
- import "zod";
15
- import "@hashgraph/sdk";
16
- class HRLResolver {
17
- constructor(logLevel = "info") {
18
- this.defaultEndpoint = "https://kiloscribe.com/api/inscription-cdn";
19
- this.logger = Logger.getInstance({
20
- level: logLevel,
21
- module: "HRLResolver"
1
+ import { Logger } from "./standards-sdk.es106.js";
2
+ class ProgressReporter {
3
+ constructor(options = {}) {
4
+ this.module = options.module || "Progress";
5
+ this.callback = options.callback;
6
+ this.logger = options.logger || new Logger({
7
+ level: "info",
8
+ module: "ProgressReporter"
22
9
  });
10
+ this.logProgress = options.logProgress ?? true;
11
+ this.minPercent = options.minPercent ?? 0;
12
+ this.maxPercent = options.maxPercent ?? 100;
13
+ this.lastReportedPercent = -1;
14
+ this.lastReportedTime = 0;
15
+ this.throttleMs = 100;
23
16
  }
24
- /**
25
- * Determines if a MIME type represents binary content
26
- */
27
- isBinaryContentType(mimeType) {
28
- const binaryTypes = [
29
- "image/",
30
- "audio/",
31
- "video/",
32
- "application/octet-stream",
33
- "application/pdf",
34
- "application/zip",
35
- "application/gzip",
36
- "application/x-binary",
37
- "application/vnd.ms-",
38
- "application/x-msdownload",
39
- "application/x-shockwave-flash",
40
- "font/",
41
- "application/wasm"
42
- ];
43
- return binaryTypes.some((prefix) => mimeType.startsWith(prefix));
44
- }
45
- /**
46
- * Parses an HRL string into its components
47
- */
48
- parseHRL(hrl) {
49
- if (!hrl) {
50
- return null;
51
- }
52
- const hrlPattern = /^hcs:\/\/(\d+)\/([0-9]+\.[0-9]+\.[0-9]+)$/;
53
- const match = hrl.match(hrlPattern);
54
- if (!match) {
55
- return null;
17
+ static getInstance(options = {}) {
18
+ if (!ProgressReporter.instance) {
19
+ ProgressReporter.instance = new ProgressReporter(options);
20
+ } else {
21
+ if (options.callback) {
22
+ ProgressReporter.instance.setCallback(options.callback);
23
+ }
24
+ if (options.module) {
25
+ ProgressReporter.instance.setModule(options.module);
26
+ }
27
+ if (options.logger) {
28
+ ProgressReporter.instance.setLogger(options.logger);
29
+ }
30
+ if (options.minPercent !== void 0) {
31
+ ProgressReporter.instance.setMinPercent(options.minPercent);
32
+ }
33
+ if (options.maxPercent !== void 0) {
34
+ ProgressReporter.instance.setMaxPercent(options.maxPercent);
35
+ }
56
36
  }
57
- return {
58
- standard: match[1],
59
- topicId: match[2]
60
- };
37
+ return ProgressReporter.instance;
61
38
  }
62
- /**
63
- * Validates if a string is a valid HRL
64
- */
65
- isValidHRL(hrl) {
66
- if (!hrl || typeof hrl !== "string") {
67
- return false;
68
- }
69
- const parsed = this.parseHRL(hrl);
70
- if (!parsed) {
71
- return false;
72
- }
73
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
74
- if (!topicIdPattern.test(parsed.topicId)) {
75
- return false;
76
- }
77
- return true;
78
- }
79
- /**
80
- * Validates if a string is a valid topic ID
81
- */
82
- isValidTopicId(topicId) {
83
- const topicIdPattern = /^[0-9]+\.[0-9]+\.[0-9]+$/;
84
- return topicIdPattern.test(topicId);
85
- }
86
- /**
87
- * Resolves content from either an HRL or a topic ID
88
- * If a topic ID is provided, it queries the topic memo to determine the HCS standard
89
- */
90
- async resolve(hrlOrTopicId, options) {
91
- if (this.isValidHRL(hrlOrTopicId)) {
92
- return this.resolveHRL(hrlOrTopicId, options);
93
- }
94
- if (!this.isValidTopicId(hrlOrTopicId)) {
95
- throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);
96
- }
97
- try {
98
- const mirrorNode = new HederaMirrorNode(options.network, this.logger);
99
- const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);
100
- const memo = topicInfo?.memo || "";
101
- let standard = "1";
102
- if (memo) {
103
- const hcsMatch = memo.match(/^hcs-(\d+)/);
104
- if (hcsMatch && hcsMatch[1]) {
105
- standard = hcsMatch[1];
106
- }
107
- }
108
- const hrl = `hcs://${standard}/${hrlOrTopicId}`;
109
- return this.resolveHRL(hrl, options);
110
- } catch (error) {
111
- this.logger.error(
112
- `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`
39
+ setCallback(callback) {
40
+ this.callback = callback;
41
+ }
42
+ setModule(module) {
43
+ this.module = module;
44
+ }
45
+ setLogger(logger) {
46
+ this.logger = logger;
47
+ }
48
+ setMinPercent(minPercent) {
49
+ this.minPercent = minPercent;
50
+ }
51
+ setMaxPercent(maxPercent) {
52
+ this.maxPercent = maxPercent;
53
+ }
54
+ createSubProgress(options) {
55
+ const subReporter = new ProgressReporter({
56
+ module: this.module,
57
+ logger: this.logger,
58
+ logProgress: this.logProgress,
59
+ minPercent: options.minPercent,
60
+ maxPercent: options.maxPercent
61
+ });
62
+ const logPrefix = options.logPrefix || "";
63
+ subReporter.setCallback((data) => {
64
+ const scaledPercent = this.scalePercent(
65
+ data.progressPercent,
66
+ options.minPercent,
67
+ options.maxPercent
113
68
  );
114
- const hrl = `hcs://1/${hrlOrTopicId}`;
115
- return this.resolveHRL(hrl, options);
116
- }
69
+ let formattedMessage = data.message;
70
+ if (logPrefix && !formattedMessage.startsWith(logPrefix)) {
71
+ formattedMessage = `${logPrefix}: ${formattedMessage}`;
72
+ }
73
+ this.report({
74
+ stage: data.stage,
75
+ message: formattedMessage,
76
+ progressPercent: scaledPercent,
77
+ details: data.details
78
+ });
79
+ });
80
+ return subReporter;
117
81
  }
118
- async getContentWithType(hrl, options) {
119
- if (!this.isValidHRL(hrl)) {
120
- return {
121
- content: hrl,
122
- contentType: "text/plain",
123
- isBinary: false
124
- };
125
- }
126
- try {
127
- const result = await this.resolveHRL(hrl, options);
128
- return {
129
- content: result.content,
130
- contentType: result.contentType,
131
- isBinary: result.isBinary
132
- };
133
- } catch (e) {
134
- const error = e;
135
- const logMessage = `Error resolving HRL for content and type: ${error.message}`;
136
- this.logger.error(logMessage);
137
- throw new Error(logMessage);
82
+ report(data) {
83
+ const rawPercent = data.progressPercent;
84
+ const percent = Math.max(0, Math.min(100, rawPercent));
85
+ const scaledPercent = this.scalePercent(percent, 0, 100);
86
+ const now = Date.now();
87
+ if (scaledPercent === this.lastReportedPercent && now - this.lastReportedTime < this.throttleMs && data.stage !== "completed" && data.stage !== "failed") {
88
+ return;
138
89
  }
139
- }
140
- /**
141
- * Resolves HRL content with proper content type detection
142
- */
143
- async resolveHRL(hrl, options) {
144
- const parsed = this.parseHRL(hrl);
145
- if (!parsed) {
146
- throw new Error(`Invalid HRL format: ${hrl}`);
90
+ this.lastReportedPercent = scaledPercent;
91
+ this.lastReportedTime = now;
92
+ const progressData = {
93
+ ...data,
94
+ progressPercent: scaledPercent
95
+ };
96
+ if (this.logProgress) {
97
+ this.logger.debug(
98
+ `[${this.module}] [${data.stage.toUpperCase()}] ${data.message} (${scaledPercent.toFixed(1)}%)`,
99
+ data.details
100
+ );
147
101
  }
148
- const { standard, topicId } = parsed;
149
- this.logger.debug(
150
- `Resolving HRL reference: standard=${standard}, topicId=${topicId}`
151
- );
152
- try {
153
- const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;
154
- const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;
155
- this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);
156
- const headResponse = await axios.head(cdnUrl);
157
- const contentType = headResponse.headers["content-type"] || "";
158
- const isBinary = this.isBinaryContentType(contentType);
159
- if (isBinary || options.returnRaw) {
160
- const response2 = await axios.get(cdnUrl, {
161
- responseType: "arraybuffer"
162
- });
163
- return {
164
- content: response2.data,
165
- contentType,
166
- topicId,
167
- isBinary: true
168
- };
102
+ if (this.callback) {
103
+ try {
104
+ this.callback(progressData);
105
+ } catch (err) {
106
+ this.logger.warn(`Error in progress callback: ${err}`);
169
107
  }
170
- if (contentType === "application/json") {
171
- const response2 = await axios.get(cdnUrl, {
172
- responseType: "json"
173
- });
174
- if (!response2.data) {
175
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
176
- }
177
- return {
178
- content: response2.data,
179
- contentType,
180
- topicId,
181
- isBinary: false
182
- };
183
- }
184
- const response = await axios.get(cdnUrl);
185
- if (!response.data) {
186
- throw new Error(`Failed to fetch content from topic: ${topicId}`);
187
- }
188
- let content;
189
- if (typeof response.data === "object") {
190
- content = response.data.content || response.data.text || JSON.stringify(response.data);
191
- } else {
192
- content = response.data;
193
- }
194
- return {
195
- content,
196
- contentType,
197
- topicId,
198
- isBinary: false
199
- };
200
- } catch (e) {
201
- const error = e;
202
- const logMessage = `Error resolving HRL reference: ${error.message}`;
203
- this.logger.error(logMessage);
204
- throw new Error(logMessage);
205
108
  }
206
109
  }
110
+ scalePercent(percent, sourceMin, sourceMax) {
111
+ const range = this.maxPercent - this.minPercent;
112
+ const sourceRange = sourceMax - sourceMin;
113
+ const scaleFactor = range / sourceRange;
114
+ return this.minPercent + (percent - sourceMin) * scaleFactor;
115
+ }
116
+ preparing(message, percent, details) {
117
+ this.report({
118
+ stage: "preparing",
119
+ message,
120
+ progressPercent: percent,
121
+ details
122
+ });
123
+ }
124
+ submitting(message, percent, details) {
125
+ this.report({
126
+ stage: "submitting",
127
+ message,
128
+ progressPercent: percent,
129
+ details
130
+ });
131
+ }
132
+ confirming(message, percent, details) {
133
+ this.report({
134
+ stage: "confirming",
135
+ message,
136
+ progressPercent: percent,
137
+ details
138
+ });
139
+ }
140
+ verifying(message, percent, details) {
141
+ this.report({
142
+ stage: "verifying",
143
+ message,
144
+ progressPercent: percent,
145
+ details
146
+ });
147
+ }
148
+ completed(message, details) {
149
+ this.report({ stage: "completed", message, progressPercent: 100, details });
150
+ }
151
+ failed(message, details) {
152
+ this.report({
153
+ stage: "failed",
154
+ message,
155
+ progressPercent: this.lastReportedPercent,
156
+ details
157
+ });
158
+ }
207
159
  }
208
160
  export {
209
- HRLResolver
161
+ ProgressReporter
210
162
  };
211
163
  //# sourceMappingURL=standards-sdk.es109.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es109.js","sources":["../../src/utils/hrl-resolver.ts"],"sourcesContent":["import axios from 'axios';\nimport { Logger, LogLevel, ILogger } from './logger';\nimport { NetworkType } from './types';\nimport { HederaMirrorNode } from '../services';\n\n/**\n * Options for HRL resolution\n */\nexport interface HRLResolutionOptions {\n network: NetworkType;\n returnRaw?: boolean;\n cdnEndpoint?: string;\n}\n\n/**\n * Result of an HRL resolution operation\n */\nexport interface HRLResolutionResult {\n content: string | ArrayBuffer;\n contentType: string;\n topicId: string;\n isBinary: boolean;\n}\n\nexport interface ContentWithType {\n content: string | ArrayBuffer;\n contentType: string;\n isBinary: boolean;\n}\n\n/**\n * Utility class for resolving Hedera Resource Locators across the SDK\n */\nexport class HRLResolver {\n private logger: ILogger;\n private defaultEndpoint = 'https://kiloscribe.com/api/inscription-cdn';\n\n constructor(logLevel: LogLevel = 'info') {\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'HRLResolver',\n });\n }\n\n /**\n * Determines if a MIME type represents binary content\n */\n private isBinaryContentType(mimeType: string): boolean {\n const binaryTypes = [\n 'image/',\n 'audio/',\n 'video/',\n 'application/octet-stream',\n 'application/pdf',\n 'application/zip',\n 'application/gzip',\n 'application/x-binary',\n 'application/vnd.ms-',\n 'application/x-msdownload',\n 'application/x-shockwave-flash',\n 'font/',\n 'application/wasm',\n ];\n\n return binaryTypes.some(prefix => mimeType.startsWith(prefix));\n }\n\n /**\n * Parses an HRL string into its components\n */\n public parseHRL(hrl: string): { standard: string; topicId: string } | null {\n if (!hrl) {\n return null;\n }\n\n const hrlPattern = /^hcs:\\/\\/(\\d+)\\/([0-9]+\\.[0-9]+\\.[0-9]+)$/;\n const match = hrl.match(hrlPattern);\n\n if (!match) {\n return null;\n }\n\n return {\n standard: match[1],\n topicId: match[2],\n };\n }\n\n /**\n * Validates if a string is a valid HRL\n */\n public isValidHRL(hrl: string): boolean {\n if (!hrl || typeof hrl !== 'string') {\n return false;\n }\n\n const parsed = this.parseHRL(hrl);\n if (!parsed) {\n return false;\n }\n\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n if (!topicIdPattern.test(parsed.topicId)) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Validates if a string is a valid topic ID\n */\n public isValidTopicId(topicId: string): boolean {\n const topicIdPattern = /^[0-9]+\\.[0-9]+\\.[0-9]+$/;\n return topicIdPattern.test(topicId);\n }\n\n /**\n * Resolves content from either an HRL or a topic ID\n * If a topic ID is provided, it queries the topic memo to determine the HCS standard\n */\n public async resolve(\n hrlOrTopicId: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n if (this.isValidHRL(hrlOrTopicId)) {\n return this.resolveHRL(hrlOrTopicId, options);\n }\n\n if (!this.isValidTopicId(hrlOrTopicId)) {\n throw new Error(`Invalid HRL or topic ID format: ${hrlOrTopicId}`);\n }\n\n try {\n const mirrorNode = new HederaMirrorNode(options.network, this.logger);\n const topicInfo = await mirrorNode.getTopicInfo(hrlOrTopicId);\n const memo = topicInfo?.memo || '';\n\n let standard = '1';\n if (memo) {\n const hcsMatch = memo.match(/^hcs-(\\d+)/);\n if (hcsMatch && hcsMatch[1]) {\n standard = hcsMatch[1];\n }\n }\n\n const hrl = `hcs://${standard}/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n } catch (error: any) {\n this.logger.error(\n `Failed to get topic info for ${hrlOrTopicId}: ${error.message}`,\n );\n const hrl = `hcs://1/${hrlOrTopicId}`;\n return this.resolveHRL(hrl, options);\n }\n }\n\n public async getContentWithType(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<ContentWithType> {\n if (!this.isValidHRL(hrl)) {\n return {\n content: hrl,\n contentType: 'text/plain',\n isBinary: false,\n };\n }\n\n try {\n const result = await this.resolveHRL(hrl, options);\n return {\n content: result.content,\n contentType: result.contentType,\n isBinary: result.isBinary,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL for content and type: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n\n /**\n * Resolves HRL content with proper content type detection\n */\n public async resolveHRL(\n hrl: string,\n options: HRLResolutionOptions,\n ): Promise<HRLResolutionResult> {\n const parsed = this.parseHRL(hrl);\n\n if (!parsed) {\n throw new Error(`Invalid HRL format: ${hrl}`);\n }\n\n const { standard, topicId } = parsed;\n\n this.logger.debug(\n `Resolving HRL reference: standard=${standard}, topicId=${topicId}`,\n );\n\n try {\n const cdnEndpoint = options.cdnEndpoint || this.defaultEndpoint;\n const cdnUrl = `${cdnEndpoint}/${topicId}?network=${options.network}`;\n\n this.logger.debug(`Fetching content from CDN: ${cdnUrl}`);\n const headResponse = await axios.head(cdnUrl);\n const contentType = headResponse.headers['content-type'] || '';\n const isBinary = this.isBinaryContentType(contentType);\n\n if (isBinary || options.returnRaw) {\n const response = await axios.get(cdnUrl, {\n responseType: 'arraybuffer',\n });\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: true,\n };\n }\n\n if (contentType === 'application/json') {\n const response = await axios.get(cdnUrl, {\n responseType: 'json',\n });\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n return {\n content: response.data,\n contentType,\n topicId,\n isBinary: false,\n };\n }\n\n const response = await axios.get(cdnUrl);\n\n if (!response.data) {\n throw new Error(`Failed to fetch content from topic: ${topicId}`);\n }\n\n let content: string;\n\n if (typeof response.data === 'object') {\n content =\n response.data.content ||\n response.data.text ||\n JSON.stringify(response.data);\n } else {\n content = response.data;\n }\n\n return {\n content,\n contentType,\n topicId,\n isBinary: false,\n };\n } catch (e: any) {\n const error = e as Error;\n const logMessage = `Error resolving HRL reference: ${error.message}`;\n this.logger.error(logMessage);\n throw new Error(logMessage);\n }\n }\n}\n"],"names":["response"],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es109.js","sources":["../../src/utils/progress-reporter.ts"],"sourcesContent":["import { Logger, ILogger } from './logger';\n\nexport type ProgressStage =\n | 'preparing'\n | 'submitting'\n | 'confirming'\n | 'verifying'\n | 'completed'\n | 'failed';\n\nexport interface ProgressData {\n stage: ProgressStage;\n message: string;\n progressPercent: number;\n details?: Record<string, any>;\n}\n\nexport type ProgressCallback = (data: ProgressData) => void;\n\nexport interface ProgressReporterOptions {\n module?: string;\n callback?: ProgressCallback;\n logger?: ILogger;\n logProgress?: boolean;\n minPercent?: number;\n maxPercent?: number;\n}\n\n/**\n * ProgressReporter is a singleton class that reports progress of a task.\n * Can be used in a generalized fashion.\n */\nexport class ProgressReporter {\n private static instance: ProgressReporter;\n private module: string;\n private callback?: ProgressCallback;\n private logger: ILogger;\n private logProgress: boolean;\n private minPercent: number;\n private maxPercent: number;\n private lastReportedPercent: number;\n private lastReportedTime: number;\n private throttleMs: number;\n\n constructor(options: ProgressReporterOptions = {}) {\n this.module = options.module || 'Progress';\n this.callback = options.callback;\n this.logger =\n options.logger ||\n new Logger({\n level: 'info',\n module: 'ProgressReporter',\n });\n this.logProgress = options.logProgress ?? true;\n this.minPercent = options.minPercent ?? 0;\n this.maxPercent = options.maxPercent ?? 100;\n this.lastReportedPercent = -1;\n this.lastReportedTime = 0;\n this.throttleMs = 100;\n }\n\n static getInstance(options: ProgressReporterOptions = {}): ProgressReporter {\n if (!ProgressReporter.instance) {\n ProgressReporter.instance = new ProgressReporter(options);\n } else {\n if (options.callback) {\n ProgressReporter.instance.setCallback(options.callback);\n }\n if (options.module) {\n ProgressReporter.instance.setModule(options.module);\n }\n if (options.logger) {\n ProgressReporter.instance.setLogger(options.logger);\n }\n if (options.minPercent !== undefined) {\n ProgressReporter.instance.setMinPercent(options.minPercent);\n }\n if (options.maxPercent !== undefined) {\n ProgressReporter.instance.setMaxPercent(options.maxPercent);\n }\n }\n return ProgressReporter.instance;\n }\n\n setCallback(callback: ProgressCallback): void {\n this.callback = callback;\n }\n\n setModule(module: string): void {\n this.module = module;\n }\n\n setLogger(logger: ILogger): void {\n this.logger = logger;\n }\n\n setMinPercent(minPercent: number): void {\n this.minPercent = minPercent;\n }\n\n setMaxPercent(maxPercent: number): void {\n this.maxPercent = maxPercent;\n }\n\n createSubProgress(options: {\n minPercent: number;\n maxPercent: number;\n logPrefix?: string;\n }): ProgressReporter {\n const subReporter = new ProgressReporter({\n module: this.module,\n logger: this.logger,\n logProgress: this.logProgress,\n minPercent: options.minPercent,\n maxPercent: options.maxPercent,\n });\n\n const logPrefix = options.logPrefix || '';\n\n subReporter.setCallback(data => {\n const scaledPercent = this.scalePercent(\n data.progressPercent,\n options.minPercent,\n options.maxPercent,\n );\n\n let formattedMessage = data.message;\n if (logPrefix && !formattedMessage.startsWith(logPrefix)) {\n formattedMessage = `${logPrefix}: ${formattedMessage}`;\n }\n\n this.report({\n stage: data.stage,\n message: formattedMessage,\n progressPercent: scaledPercent,\n details: data.details,\n });\n });\n\n return subReporter;\n }\n\n report(data: ProgressData): void {\n const rawPercent = data.progressPercent;\n const percent = Math.max(0, Math.min(100, rawPercent));\n\n const scaledPercent = this.scalePercent(percent, 0, 100);\n\n const now = Date.now();\n if (\n scaledPercent === this.lastReportedPercent &&\n now - this.lastReportedTime < this.throttleMs &&\n data.stage !== 'completed' &&\n data.stage !== 'failed'\n ) {\n return;\n }\n\n this.lastReportedPercent = scaledPercent;\n this.lastReportedTime = now;\n\n const progressData = {\n ...data,\n progressPercent: scaledPercent,\n };\n\n if (this.logProgress) {\n this.logger.debug(\n `[${this.module}] [${data.stage.toUpperCase()}] ${\n data.message\n } (${scaledPercent.toFixed(1)}%)`,\n data.details,\n );\n }\n\n if (this.callback) {\n try {\n this.callback(progressData);\n } catch (err) {\n this.logger.warn(`Error in progress callback: ${err}`);\n }\n }\n }\n\n private scalePercent(\n percent: number,\n sourceMin: number,\n sourceMax: number,\n ): number {\n const range = this.maxPercent - this.minPercent;\n const sourceRange = sourceMax - sourceMin;\n const scaleFactor = range / sourceRange;\n\n return this.minPercent + (percent - sourceMin) * scaleFactor;\n }\n\n preparing(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'preparing',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n submitting(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'submitting',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n confirming(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'confirming',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n verifying(\n message: string,\n percent: number,\n details?: Record<string, any>,\n ): void {\n this.report({\n stage: 'verifying',\n message,\n progressPercent: percent,\n details,\n });\n }\n\n completed(message: string, details?: Record<string, any>): void {\n this.report({ stage: 'completed', message, progressPercent: 100, details });\n }\n\n failed(message: string, details?: Record<string, any>): void {\n this.report({\n stage: 'failed',\n message,\n progressPercent: this.lastReportedPercent,\n details,\n });\n }\n}\n"],"names":[],"mappings":"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"}