@hashgraphonline/standards-sdk 0.1.144 → 0.1.145

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 (423) hide show
  1. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  2. package/dist/cjs/hcs-10/sdk.d.ts +8 -0
  3. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  4. package/dist/cjs/hcs-11/client.d.ts +2 -2
  5. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  6. package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
  7. package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
  8. package/dist/cjs/hcs-11/types.d.ts +1 -0
  9. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  10. package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  11. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  12. package/dist/cjs/hcs-15/browser.d.ts +2 -0
  13. package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
  14. package/dist/cjs/hcs-15/sdk.d.ts +7 -1
  15. package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
  16. package/dist/cjs/hcs-15/tx.d.ts +4 -0
  17. package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
  18. package/dist/cjs/hcs-15/types.d.ts +16 -1
  19. package/dist/cjs/hcs-15/types.d.ts.map +1 -1
  20. package/dist/cjs/hcs-16/browser.d.ts +11 -2
  21. package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
  22. package/dist/cjs/hcs-16/sdk.d.ts +62 -1
  23. package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
  24. package/dist/cjs/hcs-16/tx.d.ts +21 -3
  25. package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
  26. package/dist/cjs/hcs-17/base-client.d.ts +1 -0
  27. package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
  28. package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
  29. package/dist/cjs/hcs-17/tx.d.ts +2 -0
  30. package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
  31. package/dist/cjs/hcs-17/types.d.ts +4 -0
  32. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  33. package/dist/cjs/index.d.ts.map +1 -1
  34. package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
  35. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  36. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  37. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  38. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  39. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  40. package/dist/cjs/services/registry-broker/schemas.d.ts +998 -577
  41. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  42. package/dist/cjs/services/registry-broker/types.d.ts +20 -1
  43. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  44. package/dist/cjs/standards-sdk.cjs +2 -2
  45. package/dist/cjs/standards-sdk.cjs.map +1 -1
  46. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  47. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  48. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  49. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  50. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  51. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  52. package/dist/es/hcs-10/sdk.d.ts +8 -0
  53. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  54. package/dist/es/hcs-11/client.d.ts +2 -2
  55. package/dist/es/hcs-11/client.d.ts.map +1 -1
  56. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  57. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  58. package/dist/es/hcs-11/types.d.ts +1 -0
  59. package/dist/es/hcs-11/types.d.ts.map +1 -1
  60. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  61. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  62. package/dist/es/hcs-15/browser.d.ts +2 -0
  63. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  64. package/dist/es/hcs-15/sdk.d.ts +7 -1
  65. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  66. package/dist/es/hcs-15/tx.d.ts +4 -0
  67. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  68. package/dist/es/hcs-15/types.d.ts +16 -1
  69. package/dist/es/hcs-15/types.d.ts.map +1 -1
  70. package/dist/es/hcs-16/browser.d.ts +11 -2
  71. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  72. package/dist/es/hcs-16/sdk.d.ts +62 -1
  73. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  74. package/dist/es/hcs-16/tx.d.ts +21 -3
  75. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  76. package/dist/es/hcs-17/base-client.d.ts +1 -0
  77. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  78. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  79. package/dist/es/hcs-17/tx.d.ts +2 -0
  80. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  81. package/dist/es/hcs-17/types.d.ts +4 -0
  82. package/dist/es/hcs-17/types.d.ts.map +1 -1
  83. package/dist/es/index.d.ts.map +1 -1
  84. package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
  85. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  86. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  87. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  88. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  89. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  90. package/dist/es/services/registry-broker/schemas.d.ts +998 -577
  91. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  92. package/dist/es/services/registry-broker/types.d.ts +20 -1
  93. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  94. package/dist/es/standards-sdk.es.js +141 -135
  95. package/dist/es/standards-sdk.es.js.map +1 -1
  96. package/dist/es/standards-sdk.es10.js +70 -90
  97. package/dist/es/standards-sdk.es10.js.map +1 -1
  98. package/dist/es/standards-sdk.es100.js +229 -26
  99. package/dist/es/standards-sdk.es100.js.map +1 -1
  100. package/dist/es/standards-sdk.es101.js +109 -228
  101. package/dist/es/standards-sdk.es101.js.map +1 -1
  102. package/dist/es/standards-sdk.es102.js +15 -94
  103. package/dist/es/standards-sdk.es102.js.map +1 -1
  104. package/dist/es/standards-sdk.es103.js +80 -30
  105. package/dist/es/standards-sdk.es103.js.map +1 -1
  106. package/dist/es/standards-sdk.es104.js +27 -80
  107. package/dist/es/standards-sdk.es104.js.map +1 -1
  108. package/dist/es/standards-sdk.es105.js +136 -25
  109. package/dist/es/standards-sdk.es105.js.map +1 -1
  110. package/dist/es/standards-sdk.es106.js +27 -140
  111. package/dist/es/standards-sdk.es106.js.map +1 -1
  112. package/dist/es/standards-sdk.es107.js +20 -27
  113. package/dist/es/standards-sdk.es107.js.map +1 -1
  114. package/dist/es/standards-sdk.es108.js +156 -18
  115. package/dist/es/standards-sdk.es108.js.map +1 -1
  116. package/dist/es/standards-sdk.es109.js +198 -148
  117. package/dist/es/standards-sdk.es109.js.map +1 -1
  118. package/dist/es/standards-sdk.es11.js +121 -45
  119. package/dist/es/standards-sdk.es11.js.map +1 -1
  120. package/dist/es/standards-sdk.es110.js +747 -166
  121. package/dist/es/standards-sdk.es110.js.map +1 -1
  122. package/dist/es/standards-sdk.es111.js +9 -786
  123. package/dist/es/standards-sdk.es111.js.map +1 -1
  124. package/dist/es/standards-sdk.es112.js +567 -13
  125. package/dist/es/standards-sdk.es112.js.map +1 -1
  126. package/dist/es/standards-sdk.es113.js +576 -541
  127. package/dist/es/standards-sdk.es113.js.map +1 -1
  128. package/dist/es/standards-sdk.es114.js +12 -601
  129. package/dist/es/standards-sdk.es114.js.map +1 -1
  130. package/dist/es/standards-sdk.es115.js +2 -13
  131. package/dist/es/standards-sdk.es115.js.map +1 -1
  132. package/dist/es/standards-sdk.es116.js +87 -2
  133. package/dist/es/standards-sdk.es116.js.map +1 -1
  134. package/dist/es/standards-sdk.es117.js +37 -80
  135. package/dist/es/standards-sdk.es117.js.map +1 -1
  136. package/dist/es/standards-sdk.es118.js +2 -39
  137. package/dist/es/standards-sdk.es118.js.map +1 -1
  138. package/dist/es/standards-sdk.es119.js +231 -2
  139. package/dist/es/standards-sdk.es119.js.map +1 -1
  140. package/dist/es/standards-sdk.es12.js +60 -159
  141. package/dist/es/standards-sdk.es12.js.map +1 -1
  142. package/dist/es/standards-sdk.es120.js +1110 -193
  143. package/dist/es/standards-sdk.es120.js.map +1 -1
  144. package/dist/es/standards-sdk.es121.js +225 -1059
  145. package/dist/es/standards-sdk.es121.js.map +1 -1
  146. package/dist/es/standards-sdk.es122.js +419 -303
  147. package/dist/es/standards-sdk.es122.js.map +1 -1
  148. package/dist/es/standards-sdk.es123.js +351 -418
  149. package/dist/es/standards-sdk.es123.js.map +1 -1
  150. package/dist/es/standards-sdk.es124.js +872 -347
  151. package/dist/es/standards-sdk.es124.js.map +1 -1
  152. package/dist/es/standards-sdk.es125.js +182 -854
  153. package/dist/es/standards-sdk.es125.js.map +1 -1
  154. package/dist/es/standards-sdk.es126.js +1512 -153
  155. package/dist/es/standards-sdk.es126.js.map +1 -1
  156. package/dist/es/standards-sdk.es127.js +157 -1547
  157. package/dist/es/standards-sdk.es127.js.map +1 -1
  158. package/dist/es/standards-sdk.es128.js +192 -162
  159. package/dist/es/standards-sdk.es128.js.map +1 -1
  160. package/dist/es/standards-sdk.es129.js +61 -164
  161. package/dist/es/standards-sdk.es129.js.map +1 -1
  162. package/dist/es/standards-sdk.es13.js +200 -60
  163. package/dist/es/standards-sdk.es13.js.map +1 -1
  164. package/dist/es/standards-sdk.es130.js +102 -85
  165. package/dist/es/standards-sdk.es130.js.map +1 -1
  166. package/dist/es/standards-sdk.es131.js +222 -96
  167. package/dist/es/standards-sdk.es131.js.map +1 -1
  168. package/dist/es/standards-sdk.es132.js +153 -220
  169. package/dist/es/standards-sdk.es132.js.map +1 -1
  170. package/dist/es/standards-sdk.es133.js +104 -162
  171. package/dist/es/standards-sdk.es133.js.map +1 -1
  172. package/dist/es/standards-sdk.es134.js +296 -92
  173. package/dist/es/standards-sdk.es134.js.map +1 -1
  174. package/dist/es/standards-sdk.es135.js +432 -294
  175. package/dist/es/standards-sdk.es135.js.map +1 -1
  176. package/dist/es/standards-sdk.es136.js +14 -363
  177. package/dist/es/standards-sdk.es136.js.map +1 -1
  178. package/dist/es/standards-sdk.es137.js +79 -15
  179. package/dist/es/standards-sdk.es137.js.map +1 -1
  180. package/dist/es/standards-sdk.es138.js +79 -59
  181. package/dist/es/standards-sdk.es138.js.map +1 -1
  182. package/dist/es/standards-sdk.es139.js +152 -80
  183. package/dist/es/standards-sdk.es139.js.map +1 -1
  184. package/dist/es/standards-sdk.es14.js +149 -178
  185. package/dist/es/standards-sdk.es14.js.map +1 -1
  186. package/dist/es/standards-sdk.es140.js +7 -159
  187. package/dist/es/standards-sdk.es140.js.map +1 -1
  188. package/dist/es/standards-sdk.es141.js +86 -7
  189. package/dist/es/standards-sdk.es141.js.map +1 -1
  190. package/dist/es/standards-sdk.es142.js +44 -65
  191. package/dist/es/standards-sdk.es142.js.map +1 -1
  192. package/dist/es/standards-sdk.es143.js +30 -65
  193. package/dist/es/standards-sdk.es143.js.map +1 -1
  194. package/dist/es/standards-sdk.es144.js +34 -28
  195. package/dist/es/standards-sdk.es144.js.map +1 -1
  196. package/dist/es/standards-sdk.es145.js +28 -138
  197. package/dist/es/standards-sdk.es145.js.map +1 -1
  198. package/dist/es/standards-sdk.es146.js +133 -37
  199. package/dist/es/standards-sdk.es146.js.map +1 -1
  200. package/dist/es/standards-sdk.es147.js +34 -12281
  201. package/dist/es/standards-sdk.es147.js.map +1 -1
  202. package/dist/es/standards-sdk.es148.js +12284 -12
  203. package/dist/es/standards-sdk.es148.js.map +1 -1
  204. package/dist/es/standards-sdk.es149.js +958 -56
  205. package/dist/es/standards-sdk.es149.js.map +1 -1
  206. package/dist/es/standards-sdk.es15.js +152 -151
  207. package/dist/es/standards-sdk.es15.js.map +1 -1
  208. package/dist/es/standards-sdk.es150.js +48 -74
  209. package/dist/es/standards-sdk.es150.js.map +1 -1
  210. package/dist/es/standards-sdk.es151.js +72 -160
  211. package/dist/es/standards-sdk.es151.js.map +1 -1
  212. package/dist/es/standards-sdk.es152.js +13 -318
  213. package/dist/es/standards-sdk.es152.js.map +1 -1
  214. package/dist/es/standards-sdk.es153.js +120 -294
  215. package/dist/es/standards-sdk.es153.js.map +1 -1
  216. package/dist/es/standards-sdk.es154.js +191 -322
  217. package/dist/es/standards-sdk.es154.js.map +1 -1
  218. package/dist/es/standards-sdk.es155.js +294 -279
  219. package/dist/es/standards-sdk.es155.js.map +1 -1
  220. package/dist/es/standards-sdk.es156.js +440 -63
  221. package/dist/es/standards-sdk.es156.js.map +1 -1
  222. package/dist/es/standards-sdk.es157.js +331 -871
  223. package/dist/es/standards-sdk.es157.js.map +1 -1
  224. package/dist/es/standards-sdk.es158.js +68 -231
  225. package/dist/es/standards-sdk.es158.js.map +1 -1
  226. package/dist/es/standards-sdk.es159.js +218 -223
  227. package/dist/es/standards-sdk.es159.js.map +1 -1
  228. package/dist/es/standards-sdk.es16.js +917 -136
  229. package/dist/es/standards-sdk.es16.js.map +1 -1
  230. package/dist/es/standards-sdk.es160.js +247 -0
  231. package/dist/es/standards-sdk.es160.js.map +1 -0
  232. package/dist/es/standards-sdk.es17.js +23 -944
  233. package/dist/es/standards-sdk.es17.js.map +1 -1
  234. package/dist/es/standards-sdk.es18.js +2422 -24
  235. package/dist/es/standards-sdk.es18.js.map +1 -1
  236. package/dist/es/standards-sdk.es19.js +817 -2071
  237. package/dist/es/standards-sdk.es19.js.map +1 -1
  238. package/dist/es/standards-sdk.es2.js +654 -189
  239. package/dist/es/standards-sdk.es2.js.map +1 -1
  240. package/dist/es/standards-sdk.es20.js +205 -1091
  241. package/dist/es/standards-sdk.es20.js.map +1 -1
  242. package/dist/es/standards-sdk.es21.js +858 -221
  243. package/dist/es/standards-sdk.es21.js.map +1 -1
  244. package/dist/es/standards-sdk.es22.js +179 -903
  245. package/dist/es/standards-sdk.es22.js.map +1 -1
  246. package/dist/es/standards-sdk.es23.js +164 -179
  247. package/dist/es/standards-sdk.es23.js.map +1 -1
  248. package/dist/es/standards-sdk.es24.js +62 -118
  249. package/dist/es/standards-sdk.es24.js.map +1 -1
  250. package/dist/es/standards-sdk.es25.js +377 -52
  251. package/dist/es/standards-sdk.es25.js.map +1 -1
  252. package/dist/es/standards-sdk.es26.js +36 -394
  253. package/dist/es/standards-sdk.es26.js.map +1 -1
  254. package/dist/es/standards-sdk.es27.js +901 -50
  255. package/dist/es/standards-sdk.es27.js.map +1 -1
  256. package/dist/es/standards-sdk.es28.js +134 -902
  257. package/dist/es/standards-sdk.es28.js.map +1 -1
  258. package/dist/es/standards-sdk.es29.js +7 -134
  259. package/dist/es/standards-sdk.es29.js.map +1 -1
  260. package/dist/es/standards-sdk.es3.js +63 -680
  261. package/dist/es/standards-sdk.es3.js.map +1 -1
  262. package/dist/es/standards-sdk.es30.js +344 -7
  263. package/dist/es/standards-sdk.es30.js.map +1 -1
  264. package/dist/es/standards-sdk.es31.js +302 -287
  265. package/dist/es/standards-sdk.es31.js.map +1 -1
  266. package/dist/es/standards-sdk.es32.js +94 -322
  267. package/dist/es/standards-sdk.es32.js.map +1 -1
  268. package/dist/es/standards-sdk.es33.js +458 -101
  269. package/dist/es/standards-sdk.es33.js.map +1 -1
  270. package/dist/es/standards-sdk.es34.js +132 -451
  271. package/dist/es/standards-sdk.es34.js.map +1 -1
  272. package/dist/es/standards-sdk.es35.js +216 -130
  273. package/dist/es/standards-sdk.es35.js.map +1 -1
  274. package/dist/es/standards-sdk.es36.js +273 -195
  275. package/dist/es/standards-sdk.es36.js.map +1 -1
  276. package/dist/es/standards-sdk.es37.js +148 -87
  277. package/dist/es/standards-sdk.es37.js.map +1 -1
  278. package/dist/es/standards-sdk.es38.js +183 -320
  279. package/dist/es/standards-sdk.es38.js.map +1 -1
  280. package/dist/es/standards-sdk.es39.js +238 -161
  281. package/dist/es/standards-sdk.es39.js.map +1 -1
  282. package/dist/es/standards-sdk.es4.js +425 -63
  283. package/dist/es/standards-sdk.es4.js.map +1 -1
  284. package/dist/es/standards-sdk.es40.js +136 -254
  285. package/dist/es/standards-sdk.es40.js.map +1 -1
  286. package/dist/es/standards-sdk.es41.js +225 -176
  287. package/dist/es/standards-sdk.es41.js.map +1 -1
  288. package/dist/es/standards-sdk.es42.js +199 -261
  289. package/dist/es/standards-sdk.es42.js.map +1 -1
  290. package/dist/es/standards-sdk.es43.js +237 -199
  291. package/dist/es/standards-sdk.es43.js.map +1 -1
  292. package/dist/es/standards-sdk.es44.js +209 -201
  293. package/dist/es/standards-sdk.es44.js.map +1 -1
  294. package/dist/es/standards-sdk.es45.js +305 -201
  295. package/dist/es/standards-sdk.es45.js.map +1 -1
  296. package/dist/es/standards-sdk.es46.js +371 -261
  297. package/dist/es/standards-sdk.es46.js.map +1 -1
  298. package/dist/es/standards-sdk.es47.js +316 -371
  299. package/dist/es/standards-sdk.es47.js.map +1 -1
  300. package/dist/es/standards-sdk.es48.js +404 -336
  301. package/dist/es/standards-sdk.es48.js.map +1 -1
  302. package/dist/es/standards-sdk.es49.js +83 -449
  303. package/dist/es/standards-sdk.es49.js.map +1 -1
  304. package/dist/es/standards-sdk.es5.js +232 -354
  305. package/dist/es/standards-sdk.es5.js.map +1 -1
  306. package/dist/es/standards-sdk.es50.js +179 -89
  307. package/dist/es/standards-sdk.es50.js.map +1 -1
  308. package/dist/es/standards-sdk.es51.js +231 -165
  309. package/dist/es/standards-sdk.es51.js.map +1 -1
  310. package/dist/es/standards-sdk.es52.js +25 -262
  311. package/dist/es/standards-sdk.es52.js.map +1 -1
  312. package/dist/es/standards-sdk.es53.js +56 -26
  313. package/dist/es/standards-sdk.es53.js.map +1 -1
  314. package/dist/es/standards-sdk.es54.js +12 -57
  315. package/dist/es/standards-sdk.es54.js.map +1 -1
  316. package/dist/es/standards-sdk.es55.js +49 -12
  317. package/dist/es/standards-sdk.es55.js.map +1 -1
  318. package/dist/es/standards-sdk.es56.js +115 -43
  319. package/dist/es/standards-sdk.es56.js.map +1 -1
  320. package/dist/es/standards-sdk.es57.js +42 -115
  321. package/dist/es/standards-sdk.es57.js.map +1 -1
  322. package/dist/es/standards-sdk.es58.js +52 -43
  323. package/dist/es/standards-sdk.es58.js.map +1 -1
  324. package/dist/es/standards-sdk.es59.js +36 -50
  325. package/dist/es/standards-sdk.es59.js.map +1 -1
  326. package/dist/es/standards-sdk.es6.js +125 -246
  327. package/dist/es/standards-sdk.es6.js.map +1 -1
  328. package/dist/es/standards-sdk.es60.js +207 -39
  329. package/dist/es/standards-sdk.es60.js.map +1 -1
  330. package/dist/es/standards-sdk.es61.js +24 -200
  331. package/dist/es/standards-sdk.es61.js.map +1 -1
  332. package/dist/es/standards-sdk.es62.js +87 -25
  333. package/dist/es/standards-sdk.es62.js.map +1 -1
  334. package/dist/es/standards-sdk.es63.js +3 -51
  335. package/dist/es/standards-sdk.es63.js.map +1 -1
  336. package/dist/es/standards-sdk.es64.js +100 -3
  337. package/dist/es/standards-sdk.es64.js.map +1 -1
  338. package/dist/es/standards-sdk.es65.js +61 -62
  339. package/dist/es/standards-sdk.es65.js.map +1 -1
  340. package/dist/es/standards-sdk.es66.js +17 -98
  341. package/dist/es/standards-sdk.es66.js.map +1 -1
  342. package/dist/es/standards-sdk.es67.js +77 -19
  343. package/dist/es/standards-sdk.es67.js.map +1 -1
  344. package/dist/es/standards-sdk.es68.js +458 -77
  345. package/dist/es/standards-sdk.es68.js.map +1 -1
  346. package/dist/es/standards-sdk.es69.js +106 -240
  347. package/dist/es/standards-sdk.es69.js.map +1 -1
  348. package/dist/es/standards-sdk.es7.js +28 -183
  349. package/dist/es/standards-sdk.es7.js.map +1 -1
  350. package/dist/es/standards-sdk.es70.js +170 -286
  351. package/dist/es/standards-sdk.es70.js.map +1 -1
  352. package/dist/es/standards-sdk.es71.js +71 -207
  353. package/dist/es/standards-sdk.es71.js.map +1 -1
  354. package/dist/es/standards-sdk.es72.js +71 -72
  355. package/dist/es/standards-sdk.es72.js.map +1 -1
  356. package/dist/es/standards-sdk.es73.js +143 -71
  357. package/dist/es/standards-sdk.es73.js.map +1 -1
  358. package/dist/es/standards-sdk.es74.js +62 -136
  359. package/dist/es/standards-sdk.es74.js.map +1 -1
  360. package/dist/es/standards-sdk.es75.js +380 -45
  361. package/dist/es/standards-sdk.es75.js.map +1 -1
  362. package/dist/es/standards-sdk.es76.js +222 -130
  363. package/dist/es/standards-sdk.es76.js.map +1 -1
  364. package/dist/es/standards-sdk.es77.js +320 -444
  365. package/dist/es/standards-sdk.es77.js.map +1 -1
  366. package/dist/es/standards-sdk.es78.js +88 -370
  367. package/dist/es/standards-sdk.es78.js.map +1 -1
  368. package/dist/es/standards-sdk.es79.js +125 -89
  369. package/dist/es/standards-sdk.es79.js.map +1 -1
  370. package/dist/es/standards-sdk.es8.js +80 -29
  371. package/dist/es/standards-sdk.es8.js.map +1 -1
  372. package/dist/es/standards-sdk.es80.js +8 -125
  373. package/dist/es/standards-sdk.es80.js.map +1 -1
  374. package/dist/es/standards-sdk.es81.js +45 -6
  375. package/dist/es/standards-sdk.es81.js.map +1 -1
  376. package/dist/es/standards-sdk.es82.js +98 -44
  377. package/dist/es/standards-sdk.es82.js.map +1 -1
  378. package/dist/es/standards-sdk.es83.js +331 -84
  379. package/dist/es/standards-sdk.es83.js.map +1 -1
  380. package/dist/es/standards-sdk.es84.js +93 -160
  381. package/dist/es/standards-sdk.es84.js.map +1 -1
  382. package/dist/es/standards-sdk.es85.js +55 -275
  383. package/dist/es/standards-sdk.es85.js.map +1 -1
  384. package/dist/es/standards-sdk.es86.js +43 -55
  385. package/dist/es/standards-sdk.es86.js.map +1 -1
  386. package/dist/es/standards-sdk.es87.js +145 -22
  387. package/dist/es/standards-sdk.es87.js.map +1 -1
  388. package/dist/es/standards-sdk.es88.js +34 -47
  389. package/dist/es/standards-sdk.es88.js.map +1 -1
  390. package/dist/es/standards-sdk.es89.js +22 -57
  391. package/dist/es/standards-sdk.es89.js.map +1 -1
  392. package/dist/es/standards-sdk.es9.js +104 -80
  393. package/dist/es/standards-sdk.es9.js.map +1 -1
  394. package/dist/es/standards-sdk.es90.js +23 -28
  395. package/dist/es/standards-sdk.es90.js.map +1 -1
  396. package/dist/es/standards-sdk.es91.js +238 -23
  397. package/dist/es/standards-sdk.es91.js.map +1 -1
  398. package/dist/es/standards-sdk.es92.js +265 -152
  399. package/dist/es/standards-sdk.es92.js.map +1 -1
  400. package/dist/es/standards-sdk.es93.js +95 -68
  401. package/dist/es/standards-sdk.es93.js.map +1 -1
  402. package/dist/es/standards-sdk.es94.js +124 -136
  403. package/dist/es/standards-sdk.es94.js.map +1 -1
  404. package/dist/es/standards-sdk.es95.js +42 -138
  405. package/dist/es/standards-sdk.es95.js.map +1 -1
  406. package/dist/es/standards-sdk.es96.js +259 -42
  407. package/dist/es/standards-sdk.es96.js.map +1 -1
  408. package/dist/es/standards-sdk.es97.js +82 -243
  409. package/dist/es/standards-sdk.es97.js.map +1 -1
  410. package/dist/es/standards-sdk.es98.js +48 -47
  411. package/dist/es/standards-sdk.es98.js.map +1 -1
  412. package/dist/es/standards-sdk.es99.js +29 -100
  413. package/dist/es/standards-sdk.es99.js.map +1 -1
  414. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  415. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  416. package/dist/es/utils/dynamic-import.d.ts +5 -1
  417. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  418. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  419. package/package.json +8 -7
  420. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  421. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  422. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  423. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es46.js","sources":["../../src/hcs-12/rendering/template-engine.ts"],"sourcesContent":["/**\n * Template Engine for HCS-12 HashLinks\n *\n * Handlebars-compatible template engine for rendering HashLinks blocks\n * with XSS protection and caching support.\n */\n\nimport { Logger } from '../../utils/logger';\n\nexport interface TemplateContext {\n attributes?: Record<string, string | number | boolean>;\n actions?:\n | Array<{\n name: string;\n result?: unknown;\n }>\n | Record<string, string>;\n [key: string]: unknown;\n}\n\nexport interface CompiledTemplate {\n render(context: TemplateContext): string;\n source: string;\n compiled: boolean;\n}\n\nexport interface HelperFunction {\n (this: unknown, ...args: unknown[]): string;\n}\n\n/**\n * Handlebars-compatible template engine\n */\nexport class TemplateEngine {\n private logger: Logger;\n private templateCache: Map<string, CompiledTemplate> = new Map();\n private helpers: Map<string, HelperFunction> = new Map();\n private compiledTemplates: Map<string, CompiledTemplate> = new Map();\n\n constructor(logger: Logger) {\n this.logger = logger;\n this.setupBuiltinHelpers();\n }\n\n /**\n * Render a template with the given context\n */\n async render(\n template: string,\n context: TemplateContext = {},\n ): Promise<string> {\n this.logger.debug('Rendering template', {\n templateLength: template.length,\n context: JSON.stringify(context, null, 2),\n attributesType: context.attributes\n ? typeof context.attributes\n : 'undefined',\n contextKeys: Object.keys(context),\n });\n\n try {\n const cacheKey = this.getCacheKey(template);\n let compiled = this.templateCache.get(cacheKey);\n\n if (!compiled) {\n compiled = await this.compileTemplate(template);\n this.templateCache.set(cacheKey, compiled);\n }\n\n const result = compiled.render(this.sanitizeContext(context));\n\n this.logger.debug('Template rendered successfully', {\n resultLength: result.length,\n });\n\n return result;\n } catch (error) {\n this.logger.error('Template rendering failed', { error, template });\n throw new Error(\n `Template rendering failed: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Precompile a template and store it with a name\n */\n async precompile(name: string, template: string): Promise<void> {\n this.logger.debug('Precompiling template', {\n name,\n templateLength: template.length,\n });\n\n try {\n const compiled = await this.compileTemplate(template);\n this.compiledTemplates.set(name, compiled);\n\n this.logger.debug('Template precompiled successfully', { name });\n } catch (error) {\n this.logger.error('Template precompilation failed', { error, name });\n throw new Error(\n `Template precompilation failed: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Render a precompiled template\n */\n async renderCompiled(\n name: string,\n context: TemplateContext = {},\n ): Promise<string> {\n const compiled = this.compiledTemplates.get(name);\n if (!compiled) {\n throw new Error(`Precompiled template '${name}' not found`);\n }\n\n this.logger.debug('Rendering precompiled template', { name });\n\n try {\n const result = compiled.render(this.sanitizeContext(context));\n\n this.logger.debug('Precompiled template rendered successfully', { name });\n return result;\n } catch (error) {\n this.logger.error('Precompiled template rendering failed', {\n error,\n name,\n });\n throw new Error(\n `Template rendering failed: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Register a custom helper function\n */\n registerHelper(name: string, helper: HelperFunction): void {\n this.helpers.set(name, helper);\n this.logger.debug('Helper registered', { name });\n }\n\n /**\n * Clear template cache\n */\n clearCache(): void {\n this.templateCache.clear();\n this.logger.debug('Template cache cleared');\n }\n\n /**\n * Get cache size for testing\n */\n getCacheSize(): number {\n return this.templateCache.size;\n }\n\n /**\n * Compile a template string into executable function\n */\n private async compileTemplate(template: string): Promise<CompiledTemplate> {\n this.validateTemplate(template);\n\n const compiled: CompiledTemplate = {\n source: template,\n compiled: true,\n render: (context: TemplateContext) =>\n this.executeTemplate(template, context),\n };\n\n return compiled;\n }\n\n /**\n * Execute template rendering logic\n */\n private executeTemplate(template: string, context: TemplateContext): string {\n let result = template;\n\n result = this.processHelpers(result, context);\n result = this.processLoops(result, context);\n result = this.processConditionals(result, context);\n result = this.processVariables(result, context);\n\n return result;\n }\n\n /**\n * Process conditional statements (if/unless/else)\n */\n private processConditionals(\n template: string,\n context: TemplateContext,\n ): string {\n let result = template;\n\n const nestedIfElseRegex =\n /\\{\\{#if\\s+([^}]+)\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!#if|\\{#else|\\{\\/if))*?)\\{\\{#if\\s+([^}]+)\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!#if|#else|\\/if))*?)\\{\\{else\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!#if|#else|\\/if))*?)\\{\\{\\/if\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!\\/if))*?)\\{\\{\\/if\\}\\}/gs;\n result = result.replace(\n nestedIfElseRegex,\n (\n match,\n outerCondition,\n beforeInner,\n innerCondition,\n innerTrue,\n innerFalse,\n afterInner,\n ) => {\n const outerValue = this.evaluateCondition(outerCondition, context);\n if (!outerValue) return '';\n\n const innerValue = this.evaluateCondition(innerCondition, context);\n const innerResult = innerValue ? innerTrue : innerFalse;\n\n return beforeInner + innerResult + afterInner;\n },\n );\n\n const ifElseRegex =\n /\\{\\{#if\\s+([^}]+)\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!else|\\/if))*?)\\{\\{else\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!\\/if))*?)\\{\\{\\/if\\}\\}/gs;\n result = result.replace(\n ifElseRegex,\n (match, condition, trueBranch, falseBranch) => {\n const conditionValue = this.evaluateCondition(condition, context);\n return conditionValue ? trueBranch : falseBranch;\n },\n );\n\n const ifRegex =\n /\\{\\{#if\\s+([^}]+)\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!\\/if))*?)\\{\\{\\/if\\}\\}/gs;\n result = result.replace(ifRegex, (match, condition, content) => {\n const conditionValue = this.evaluateCondition(condition, context);\n return conditionValue ? content : '';\n });\n\n const unlessRegex =\n /\\{\\{#unless\\s+([^}]+)\\}\\}((?:[^{]|\\{(?!\\{)|\\{\\{(?!\\/unless))*?)\\{\\{\\/unless\\}\\}/gs;\n result = result.replace(unlessRegex, (match, condition, content) => {\n const conditionValue = this.evaluateCondition(condition, context);\n return !conditionValue ? content : '';\n });\n\n return result;\n }\n\n /**\n * Process loop statements (each)\n */\n private processLoops(template: string, context: TemplateContext): string {\n let result = template;\n\n const eachRegex = /\\{\\{#each\\s+([^}]+)\\}\\}(.*?)\\{\\{\\/each\\}\\}/gs;\n result = result.replace(eachRegex, (match, variable, content) => {\n const items = this.getNestedValue(variable, context);\n\n if (!items) return '';\n\n let loopResult = '';\n\n if (Array.isArray(items)) {\n items.forEach((item, index) => {\n let itemContent = content;\n\n itemContent = itemContent.replace(\n /\\{\\{this\\}\\}/g,\n this.escapeHtml(String(item)),\n );\n\n itemContent = itemContent.replace(/\\{\\{@index\\}\\}/g, String(index));\n\n if (typeof item === 'object' && item !== null) {\n for (const [key, value] of Object.entries(item)) {\n const regex = new RegExp(`\\\\{\\\\{${key}\\\\}\\\\}`, 'g');\n itemContent = itemContent.replace(\n regex,\n this.escapeHtml(String(value)),\n );\n }\n }\n\n itemContent = itemContent.replace(\n /\\{\\{\\.\\.\\/([^}]+)\\}\\}/g,\n (parentMatch: string, parentPath: string) => {\n const parentValue = this.getNestedValue(parentPath, context);\n return this.escapeHtml(String(parentValue || ''));\n },\n );\n\n loopResult += itemContent;\n });\n } else if (typeof items === 'object') {\n for (const [key, value] of Object.entries(items)) {\n let itemContent = content;\n\n itemContent = itemContent.replace(\n /\\{\\{@key\\}\\}/g,\n this.escapeHtml(key),\n );\n\n itemContent = itemContent.replace(\n /\\{\\{this\\}\\}/g,\n this.escapeHtml(String(value)),\n );\n\n loopResult += itemContent;\n }\n }\n\n return loopResult;\n });\n\n return result;\n }\n\n /**\n * Process variable substitutions\n */\n private processVariables(template: string, context: TemplateContext): string {\n let result = template;\n\n const tripleRegex = /\\{\\{\\{([^}]+)\\}\\}\\}/g;\n result = result.replace(tripleRegex, (match, variable) => {\n const value = this.getNestedValue(variable.trim(), context);\n return this.sanitizeHtml(String(value || ''));\n });\n\n const doubleRegex = /\\{\\{([^}#/]+)\\}\\}/g;\n result = result.replace(doubleRegex, (match, variable) => {\n const trimmed = variable.trim();\n\n if (\n trimmed.startsWith('#') ||\n trimmed.startsWith('/') ||\n trimmed.startsWith('else')\n ) {\n return match;\n }\n\n const value = this.getNestedValue(trimmed, context);\n\n if (value === 0 || value === false) {\n return this.escapeHtml(String(value));\n }\n return this.escapeHtml(String(value || ''));\n });\n\n return result;\n }\n\n /**\n * Process helper functions\n */\n private processHelpers(template: string, context: TemplateContext): string {\n let result = template;\n\n const withRegex = /\\{\\{#with\\s+([^}]+)\\}\\}(.*?)\\{\\{\\/with\\}\\}/gs;\n result = result.replace(withRegex, (match, variable, content) => {\n const newContext = this.getNestedValue(variable.trim(), context);\n if (!newContext) return '';\n\n return this.executeTemplate(content, newContext as TemplateContext);\n });\n\n for (const [helperName, helperFunc] of this.helpers) {\n const helperRegex = new RegExp(\n `\\\\{\\\\{${helperName}\\\\s+([^}]+)\\\\}\\\\}`,\n 'g',\n );\n result = result.replace(helperRegex, (match, args) => {\n try {\n const argValue = this.getNestedValue(args.trim(), context);\n return this.escapeHtml(helperFunc.call(context, argValue));\n } catch (error) {\n this.logger.warn('Helper execution failed', { helperName, error });\n return '';\n }\n });\n }\n\n return result;\n }\n\n /**\n * Evaluate condition for if/unless statements\n */\n private evaluateCondition(\n condition: string,\n context: TemplateContext,\n ): boolean {\n const value = this.getNestedValue(condition.trim(), context);\n return Boolean(value);\n }\n\n /**\n * Get nested value from context using dot notation\n */\n private getNestedValue(path: string, context: TemplateContext): unknown {\n if (!path || !context) return undefined;\n\n const keys = path.split('.');\n let current: unknown = context;\n\n for (const key of keys) {\n if (\n current === null ||\n current === undefined ||\n typeof current !== 'object'\n ) {\n return undefined;\n }\n current = (current as Record<string, unknown>)[key];\n }\n\n return current;\n }\n\n /**\n * Sanitize context to prevent XSS\n */\n private sanitizeContext(context: TemplateContext): TemplateContext {\n if (context === null || context === undefined) return context;\n\n const seen = new WeakSet();\n\n const sanitize = (obj: unknown): unknown => {\n if (obj === null || typeof obj !== 'object') return obj;\n if (seen.has(obj)) return '[Circular]';\n\n seen.add(obj);\n\n if (Array.isArray(obj)) {\n return obj.map(sanitize);\n }\n\n const sanitized: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n sanitized[key] = sanitize(value);\n }\n\n return sanitized;\n };\n\n return sanitize(context) as TemplateContext;\n }\n\n /**\n * Escape HTML to prevent XSS\n */\n private escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n }\n\n /**\n * Sanitize HTML to allow safe tags only\n */\n private sanitizeHtml(html: string): string {\n return html\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/javascript:/gi, '')\n .replace(/on\\w+\\s*=/gi, '');\n }\n\n /**\n * Validate template syntax\n */\n private validateTemplate(template: string): void {\n const openBlocks = (template.match(/\\{\\{#\\w+/g) || []).length;\n const closeBlocks = (template.match(/\\{\\{\\/\\w+/g) || []).length;\n\n if (openBlocks !== closeBlocks) {\n throw new Error('Invalid template syntax: unclosed block helpers');\n }\n\n const malformed = /\\{\\{[^}]*$|\\{\\{[^}]*\\{\\{/.test(template);\n if (malformed) {\n throw new Error('Invalid template syntax: malformed handlebars');\n }\n }\n\n /**\n * Generate cache key for template\n */\n private getCacheKey(template: string): string {\n let hash = 0;\n for (let i = 0; i < template.length; i++) {\n const char = template.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash.toString();\n }\n\n /**\n * Setup builtin helper functions\n */\n private setupBuiltinHelpers(): void {}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es46.js","sources":["../../src/hcs-12/rendering/resource-manager.ts"],"sourcesContent":["/**\n * Resource Manager for HCS-12 HashLinks\n *\n * Manages loading and caching of resources (CSS, JS, images, templates)\n * from HCS-3 storage with integrity verification and security validation.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport { HCS } from '../../hcs-3/src';\nimport { isSSREnvironment } from '../../utils/crypto-env';\n\nexport interface ResourceData {\n content: string | Uint8Array;\n contentType: string;\n size: number;\n hash?: string;\n}\n\nexport interface VerifiedResource {\n content: string | Uint8Array;\n verified: boolean;\n contentType: string;\n}\n\nexport interface ResourceDependency {\n topicId: string;\n type: 'css' | 'js' | 'template' | 'image';\n depends?: string[];\n}\n\nexport interface LoadedResource {\n topicId: string;\n content: string | Uint8Array;\n contentType: string;\n type: string;\n}\n\nexport interface CacheEntry {\n data: ResourceData;\n timestamp: number;\n size: number;\n}\n\nexport interface ResourceManagerOptions {\n cacheTTL?: number;\n maxCacheSize?: number;\n maxResourceSize?: number;\n}\n\n/**\n * Resource manager for efficient loading and caching of HCS-3 resources\n */\nexport class ResourceManager {\n private logger: Logger;\n private hcs: HCS;\n private cache: Map<string, CacheEntry> = new Map();\n private options: Required<ResourceManagerOptions>;\n private currentCacheSize: number = 0;\n\n private readonly supportedImageTypes = new Set([\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp',\n ]);\n\n private readonly dangerousJSPatterns = [\n /eval\\s*\\(/g,\n /Function\\s*\\(/g,\n /setTimeout\\s*\\(\\s*[\"'].*[\"']/g,\n /setInterval\\s*\\(\\s*[\"'].*[\"']/g,\n /document\\.write/g,\n /innerHTML\\s*=/g,\n /outerHTML\\s*=/g,\n ];\n\n private readonly dangerousCSSPatterns = [\n /javascript\\s*:/gi,\n /@import.*url\\s*\\(\\s*[\"']?javascript:/gi,\n /expression\\s*\\(/gi,\n /behavior\\s*:/gi,\n ];\n\n constructor(\n networkType: NetworkType,\n logger: Logger,\n hcs?: HCS,\n options: ResourceManagerOptions = {},\n ) {\n this.logger = logger;\n this.hcs = hcs || new HCS();\n this.options = {\n cacheTTL: options.cacheTTL || 300000,\n maxCacheSize: options.maxCacheSize || 50 * 1024 * 1024,\n maxResourceSize: options.maxResourceSize || 5 * 1024 * 1024,\n };\n }\n\n /**\n * Load CSS resource from HCS-3\n */\n async loadCSS(topicId: string): Promise<string> {\n this.logger.debug('Loading CSS resource', { topicId });\n\n try {\n const resource = await this.loadResource(topicId);\n\n if (resource.contentType !== 'text/css') {\n throw new Error(`Expected CSS resource, got ${resource.contentType}`);\n }\n\n const content = resource.content as string;\n const sanitized = this.sanitizeCSS(content);\n\n this.logger.debug('CSS resource loaded successfully', {\n topicId,\n size: content.length,\n sanitized: sanitized.length !== content.length,\n });\n\n return sanitized;\n } catch (error) {\n this.logger.error('Failed to load CSS resource', { topicId, error });\n throw new Error(\n `Failed to load CSS resource: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Load JavaScript resource from HCS-3\n */\n async loadJS(topicId: string): Promise<string> {\n this.logger.debug('Loading JavaScript resource', { topicId });\n\n try {\n const resource = await this.loadResource(topicId);\n\n if (\n !resource.contentType.includes('javascript') &&\n !resource.contentType.includes('ecmascript')\n ) {\n throw new Error(\n `Expected JavaScript resource, got ${resource.contentType}`,\n );\n }\n\n const content = resource.content as string;\n\n if (content.length > this.options.maxResourceSize) {\n throw new Error('JavaScript resource too large');\n }\n\n const sanitized = this.sanitizeJavaScript(content);\n\n this.logger.debug('JavaScript resource loaded successfully', {\n topicId,\n size: content.length,\n sanitized: sanitized.length !== content.length,\n });\n\n return sanitized;\n } catch (error) {\n this.logger.error('Failed to load JavaScript resource', {\n topicId,\n error,\n });\n throw new Error(\n `Failed to load JavaScript resource: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Load image resource from HCS-3 as Blob\n */\n async loadImage(topicId: string): Promise<Blob> {\n this.logger.debug('Loading image resource', { topicId });\n\n try {\n const resource = await this.loadResource(topicId);\n\n if (!this.supportedImageTypes.has(resource.contentType)) {\n throw new Error(`Unsupported image format: ${resource.contentType}`);\n }\n\n const content = resource.content as Uint8Array;\n const view = new Uint8Array(content); // ensures ArrayBuffer, not SharedArrayBuffer\n const blob = new Blob([view.buffer], { type: resource.contentType });\n\n this.logger.debug('Image resource loaded successfully', {\n topicId,\n size: content.length,\n type: resource.contentType,\n });\n\n return blob;\n } catch (error) {\n this.logger.error('Failed to load image resource', { topicId, error });\n throw new Error(\n `Failed to load image resource: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Load template resource from HCS-3\n */\n async loadTemplate(topicId: string): Promise<string> {\n this.logger.debug('Loading template resource', { topicId });\n\n try {\n const resource = await this.loadResource(topicId);\n\n const content = resource.content as string;\n\n this.validateTemplateSyntax(content);\n\n const sanitized = this.sanitizeTemplate(content);\n\n this.logger.debug('Template resource loaded successfully', {\n topicId,\n size: content.length,\n });\n\n return sanitized;\n } catch (error) {\n this.logger.error('Failed to load template resource', { topicId, error });\n throw new Error(\n `Failed to load template resource: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Load resource with integrity verification\n */\n async loadWithIntegrityCheck(\n topicId: string,\n expectedHash: string,\n ): Promise<VerifiedResource> {\n this.logger.debug('Loading resource with integrity check', {\n topicId,\n expectedHash,\n });\n\n try {\n const resource = await this.loadResource(topicId);\n\n const verified = await this.verifyIntegrity(\n resource.content,\n expectedHash,\n );\n\n if (!verified) {\n throw new Error('Resource integrity verification failed');\n }\n\n this.logger.debug('Resource integrity verified', { topicId });\n\n return {\n content: resource.content,\n verified,\n contentType: resource.contentType,\n };\n } catch (error) {\n this.logger.error('Resource integrity check failed', { topicId, error });\n throw error;\n }\n }\n\n /**\n * Verify content integrity using SHA-256 hash\n */\n private async verifyIntegrity(\n content: string | Uint8Array,\n expectedHash: string,\n ): Promise<boolean> {\n try {\n if (isSSREnvironment()) {\n this.logger.warn('Integrity verification skipped in SSR environment');\n return true;\n }\n\n const webCrypto = globalThis.crypto;\n if (typeof webCrypto === 'undefined' || !webCrypto.subtle) {\n this.logger.warn(\n 'WebCrypto not available, skipping integrity verification',\n );\n return true;\n }\n\n const buffer =\n typeof content === 'string'\n ? new TextEncoder().encode(content)\n : content;\n\n const bytes =\n buffer instanceof Uint8Array\n ? buffer\n : new Uint8Array(buffer as ArrayBufferLike);\n const copy = new Uint8Array(bytes);\n const hashBuffer = await webCrypto.subtle.digest('SHA-256', copy.buffer);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const actualHash = hashArray\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n\n return actualHash === expectedHash.toLowerCase();\n } catch (error) {\n this.logger.error('Error verifying integrity', { error });\n return false;\n }\n }\n\n /**\n * Load multiple dependencies in correct order\n */\n async loadDependencies(\n dependencies: ResourceDependency[],\n ): Promise<LoadedResource[]> {\n this.logger.debug('Loading dependencies', { count: dependencies.length });\n\n try {\n this.detectCircularDependencies(dependencies);\n\n const sorted = this.topologicalSort(dependencies);\n\n const results: LoadedResource[] = [];\n\n for (const dep of sorted) {\n let content: string | Uint8Array;\n\n switch (dep.type) {\n case 'css':\n content = await this.loadCSS(dep.topicId);\n break;\n case 'js':\n content = await this.loadJS(dep.topicId);\n break;\n case 'template':\n content = await this.loadTemplate(dep.topicId);\n break;\n case 'image':\n const blob = await this.loadImage(dep.topicId);\n content = new Uint8Array(await blob.arrayBuffer());\n break;\n default:\n throw new Error(`Unsupported dependency type: ${dep.type}`);\n }\n\n results.push({\n topicId: dep.topicId,\n content,\n contentType: this.getContentTypeForType(dep.type),\n type: dep.type,\n });\n }\n\n this.logger.debug('Dependencies loaded successfully', {\n count: results.length,\n });\n return results;\n } catch (error) {\n this.logger.error('Failed to load dependencies', { error });\n throw error;\n }\n }\n\n /**\n * Clear resource cache\n */\n clearCache(): void {\n this.cache.clear();\n this.currentCacheSize = 0;\n this.logger.debug('Resource cache cleared');\n }\n\n /**\n * Get current cache size for testing\n */\n getCacheSize(): number {\n return this.currentCacheSize;\n }\n\n /**\n * Load resource with caching\n */\n private async loadResource(topicId: string): Promise<ResourceData> {\n const cached = this.getFromCache(topicId);\n if (cached) {\n this.logger.debug('Resource loaded from cache', { topicId });\n return cached;\n }\n\n const blob = await this.hcs.retrieveHCS1Data(topicId);\n\n const contentType = blob.type || 'application/octet-stream';\n\n let content: string | Uint8Array;\n if (\n contentType.startsWith('text/') ||\n contentType.includes('javascript') ||\n contentType.includes('json')\n ) {\n content = await blob.text();\n } else {\n content = new Uint8Array(await blob.arrayBuffer());\n }\n\n const resource: ResourceData = {\n content,\n contentType,\n size: blob.size,\n };\n\n this.addToCache(topicId, resource);\n\n return resource;\n }\n\n /**\n * Get resource from cache if valid\n */\n private getFromCache(topicId: string): ResourceData | null {\n const entry = this.cache.get(topicId);\n if (!entry) return null;\n\n if (Date.now() - entry.timestamp > this.options.cacheTTL) {\n this.removeFromCache(topicId);\n return null;\n }\n\n return entry.data;\n }\n\n /**\n * Add resource to cache with size management\n */\n private addToCache(topicId: string, resource: ResourceData): void {\n const size =\n typeof resource.content === 'string'\n ? resource.content.length\n : resource.content.byteLength;\n\n if (size > this.options.maxCacheSize / 2) {\n this.logger.warn('Resource too large for cache', { topicId, size });\n return;\n }\n\n while (\n this.currentCacheSize + size > this.options.maxCacheSize &&\n this.cache.size > 0\n ) {\n this.evictOldestEntry();\n }\n\n const entry: CacheEntry = {\n data: resource,\n timestamp: Date.now(),\n size,\n };\n\n this.cache.set(topicId, entry);\n this.currentCacheSize += size;\n\n this.logger.debug('Resource added to cache', {\n topicId,\n size,\n totalCacheSize: this.currentCacheSize,\n });\n }\n\n /**\n * Remove resource from cache\n */\n private removeFromCache(topicId: string): void {\n const entry = this.cache.get(topicId);\n if (entry) {\n this.cache.delete(topicId);\n this.currentCacheSize -= entry.size;\n }\n }\n\n /**\n * Evict oldest cache entry\n */\n private evictOldestEntry(): void {\n let oldest: string | null = null;\n let oldestTime = Date.now();\n\n for (const [topicId, entry] of this.cache) {\n if (entry.timestamp < oldestTime) {\n oldestTime = entry.timestamp;\n oldest = topicId;\n }\n }\n\n if (oldest) {\n this.removeFromCache(oldest);\n this.logger.debug('Evicted oldest cache entry', { topicId: oldest });\n }\n }\n\n /**\n * Sanitize CSS content\n */\n private sanitizeCSS(css: string): string {\n let sanitized = css;\n\n for (const pattern of this.dangerousCSSPatterns) {\n sanitized = sanitized.replace(pattern, '');\n }\n\n return sanitized;\n }\n\n /**\n * Sanitize JavaScript content\n */\n private sanitizeJavaScript(js: string): string {\n let sanitized = js;\n\n for (const pattern of this.dangerousJSPatterns) {\n sanitized = sanitized.replace(pattern, '');\n }\n\n return sanitized;\n }\n\n /**\n * Sanitize template content\n */\n private sanitizeTemplate(template: string): string {\n return template\n .replace(/<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi, '')\n .replace(/on\\w+\\s*=\\s*[\"'][^\"']*[\"']/gi, '')\n .replace(/javascript\\s*:/gi, '');\n }\n\n /**\n * Validate template syntax\n */\n private validateTemplateSyntax(template: string): void {\n const openBraces = (template.match(/\\{\\{/g) || []).length;\n const closeBraces = (template.match(/\\}\\}/g) || []).length;\n\n if (openBraces !== closeBraces) {\n throw new Error('Invalid template syntax: unmatched braces');\n }\n\n const openBlocks = (template.match(/\\{\\{#\\w+/g) || []).length;\n const closeBlocks = (template.match(/\\{\\{\\/\\w+/g) || []).length;\n\n if (openBlocks !== closeBlocks) {\n throw new Error('Invalid template syntax: unclosed block helpers');\n }\n }\n\n /**\n * Detect circular dependencies\n */\n private detectCircularDependencies(dependencies: ResourceDependency[]): void {\n const dependencyMap = new Map<string, string[]>();\n\n for (const dep of dependencies) {\n dependencyMap.set(dep.topicId, dep.depends || []);\n }\n\n const visited = new Set<string>();\n const visiting = new Set<string>();\n\n const visit = (topicId: string): void => {\n if (visiting.has(topicId)) {\n throw new Error('Circular dependency detected');\n }\n\n if (visited.has(topicId)) return;\n\n visiting.add(topicId);\n\n const deps = dependencyMap.get(topicId) || [];\n for (const dep of deps) {\n visit(dep);\n }\n\n visiting.delete(topicId);\n visited.add(topicId);\n };\n\n for (const dep of dependencies) {\n visit(dep.topicId);\n }\n }\n\n /**\n * Topological sort of dependencies\n */\n private topologicalSort(\n dependencies: ResourceDependency[],\n ): ResourceDependency[] {\n const dependencyMap = new Map<string, ResourceDependency>();\n const dependsMap = new Map<string, string[]>();\n\n for (const dep of dependencies) {\n dependencyMap.set(dep.topicId, dep);\n dependsMap.set(dep.topicId, dep.depends || []);\n }\n\n const sorted: ResourceDependency[] = [];\n const visited = new Set<string>();\n\n const visit = (topicId: string): void => {\n if (visited.has(topicId)) return;\n\n const deps = dependsMap.get(topicId) || [];\n for (const dep of deps) {\n visit(dep);\n }\n\n visited.add(topicId);\n const depObj = dependencyMap.get(topicId);\n if (depObj) {\n sorted.push(depObj);\n }\n };\n\n for (const dep of dependencies) {\n visit(dep.topicId);\n }\n\n return sorted;\n }\n\n /**\n * Get content type for dependency type\n */\n private getContentTypeForType(type: string): string {\n switch (type) {\n case 'css':\n return 'text/css';\n case 'js':\n return 'application/javascript';\n case 'template':\n return 'text/html';\n case 'image':\n return 'image/*';\n default:\n return 'application/octet-stream';\n }\n }\n}\n"],"names":[],"mappings":"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"}