@hashgraphonline/standards-sdk 0.1.144 → 0.1.146

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 (433) 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/hcs-7/types.d.ts +4 -4
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/inscribe/inscriber.d.ts +89 -0
  36. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  37. package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
  38. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  39. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  40. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  41. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts +24 -0
  42. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  43. package/dist/cjs/services/registry-broker/index.d.ts +1 -0
  44. package/dist/cjs/services/registry-broker/index.d.ts.map +1 -1
  45. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  46. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  47. package/dist/cjs/services/registry-broker/schemas.d.ts +1001 -577
  48. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  49. package/dist/cjs/services/registry-broker/types.d.ts +20 -1
  50. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  51. package/dist/cjs/standards-sdk.cjs +3 -3
  52. package/dist/cjs/standards-sdk.cjs.map +1 -1
  53. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  54. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  55. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  56. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  57. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  58. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  59. package/dist/es/hcs-10/sdk.d.ts +8 -0
  60. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  61. package/dist/es/hcs-11/client.d.ts +2 -2
  62. package/dist/es/hcs-11/client.d.ts.map +1 -1
  63. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  64. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  65. package/dist/es/hcs-11/types.d.ts +1 -0
  66. package/dist/es/hcs-11/types.d.ts.map +1 -1
  67. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  68. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  69. package/dist/es/hcs-15/browser.d.ts +2 -0
  70. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  71. package/dist/es/hcs-15/sdk.d.ts +7 -1
  72. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  73. package/dist/es/hcs-15/tx.d.ts +4 -0
  74. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  75. package/dist/es/hcs-15/types.d.ts +16 -1
  76. package/dist/es/hcs-15/types.d.ts.map +1 -1
  77. package/dist/es/hcs-16/browser.d.ts +11 -2
  78. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  79. package/dist/es/hcs-16/sdk.d.ts +62 -1
  80. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  81. package/dist/es/hcs-16/tx.d.ts +21 -3
  82. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  83. package/dist/es/hcs-17/base-client.d.ts +1 -0
  84. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  85. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  86. package/dist/es/hcs-17/tx.d.ts +2 -0
  87. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  88. package/dist/es/hcs-17/types.d.ts +4 -0
  89. package/dist/es/hcs-17/types.d.ts.map +1 -1
  90. package/dist/es/hcs-7/types.d.ts +4 -4
  91. package/dist/es/index.d.ts.map +1 -1
  92. package/dist/es/inscribe/inscriber.d.ts +89 -0
  93. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  94. package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
  95. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  96. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  97. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  98. package/dist/es/services/registry-broker/hol-chat-ops.d.ts +24 -0
  99. package/dist/es/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  100. package/dist/es/services/registry-broker/index.d.ts +1 -0
  101. package/dist/es/services/registry-broker/index.d.ts.map +1 -1
  102. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  103. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  104. package/dist/es/services/registry-broker/schemas.d.ts +1001 -577
  105. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  106. package/dist/es/services/registry-broker/types.d.ts +20 -1
  107. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  108. package/dist/es/standards-sdk.es.js +146 -131
  109. package/dist/es/standards-sdk.es10.js +70 -90
  110. package/dist/es/standards-sdk.es10.js.map +1 -1
  111. package/dist/es/standards-sdk.es100.js +229 -26
  112. package/dist/es/standards-sdk.es100.js.map +1 -1
  113. package/dist/es/standards-sdk.es101.js +109 -228
  114. package/dist/es/standards-sdk.es101.js.map +1 -1
  115. package/dist/es/standards-sdk.es102.js +15 -94
  116. package/dist/es/standards-sdk.es102.js.map +1 -1
  117. package/dist/es/standards-sdk.es103.js +80 -30
  118. package/dist/es/standards-sdk.es103.js.map +1 -1
  119. package/dist/es/standards-sdk.es104.js +27 -80
  120. package/dist/es/standards-sdk.es104.js.map +1 -1
  121. package/dist/es/standards-sdk.es105.js +136 -25
  122. package/dist/es/standards-sdk.es105.js.map +1 -1
  123. package/dist/es/standards-sdk.es106.js +27 -140
  124. package/dist/es/standards-sdk.es106.js.map +1 -1
  125. package/dist/es/standards-sdk.es107.js +20 -27
  126. package/dist/es/standards-sdk.es107.js.map +1 -1
  127. package/dist/es/standards-sdk.es108.js +156 -18
  128. package/dist/es/standards-sdk.es108.js.map +1 -1
  129. package/dist/es/standards-sdk.es109.js +198 -148
  130. package/dist/es/standards-sdk.es109.js.map +1 -1
  131. package/dist/es/standards-sdk.es11.js +121 -45
  132. package/dist/es/standards-sdk.es11.js.map +1 -1
  133. package/dist/es/standards-sdk.es110.js +747 -166
  134. package/dist/es/standards-sdk.es110.js.map +1 -1
  135. package/dist/es/standards-sdk.es111.js +9 -786
  136. package/dist/es/standards-sdk.es111.js.map +1 -1
  137. package/dist/es/standards-sdk.es112.js +567 -13
  138. package/dist/es/standards-sdk.es112.js.map +1 -1
  139. package/dist/es/standards-sdk.es113.js +576 -541
  140. package/dist/es/standards-sdk.es113.js.map +1 -1
  141. package/dist/es/standards-sdk.es114.js +12 -601
  142. package/dist/es/standards-sdk.es114.js.map +1 -1
  143. package/dist/es/standards-sdk.es115.js +2 -13
  144. package/dist/es/standards-sdk.es115.js.map +1 -1
  145. package/dist/es/standards-sdk.es116.js +87 -2
  146. package/dist/es/standards-sdk.es116.js.map +1 -1
  147. package/dist/es/standards-sdk.es117.js +37 -80
  148. package/dist/es/standards-sdk.es117.js.map +1 -1
  149. package/dist/es/standards-sdk.es118.js +2 -39
  150. package/dist/es/standards-sdk.es118.js.map +1 -1
  151. package/dist/es/standards-sdk.es119.js +231 -2
  152. package/dist/es/standards-sdk.es119.js.map +1 -1
  153. package/dist/es/standards-sdk.es12.js +60 -159
  154. package/dist/es/standards-sdk.es12.js.map +1 -1
  155. package/dist/es/standards-sdk.es120.js +1110 -193
  156. package/dist/es/standards-sdk.es120.js.map +1 -1
  157. package/dist/es/standards-sdk.es121.js +225 -1059
  158. package/dist/es/standards-sdk.es121.js.map +1 -1
  159. package/dist/es/standards-sdk.es122.js +419 -303
  160. package/dist/es/standards-sdk.es122.js.map +1 -1
  161. package/dist/es/standards-sdk.es123.js +351 -418
  162. package/dist/es/standards-sdk.es123.js.map +1 -1
  163. package/dist/es/standards-sdk.es124.js +1109 -347
  164. package/dist/es/standards-sdk.es124.js.map +1 -1
  165. package/dist/es/standards-sdk.es125.js +182 -854
  166. package/dist/es/standards-sdk.es125.js.map +1 -1
  167. package/dist/es/standards-sdk.es126.js +1512 -153
  168. package/dist/es/standards-sdk.es126.js.map +1 -1
  169. package/dist/es/standards-sdk.es127.js +157 -1547
  170. package/dist/es/standards-sdk.es127.js.map +1 -1
  171. package/dist/es/standards-sdk.es128.js +192 -162
  172. package/dist/es/standards-sdk.es128.js.map +1 -1
  173. package/dist/es/standards-sdk.es129.js +61 -164
  174. package/dist/es/standards-sdk.es129.js.map +1 -1
  175. package/dist/es/standards-sdk.es13.js +200 -60
  176. package/dist/es/standards-sdk.es13.js.map +1 -1
  177. package/dist/es/standards-sdk.es130.js +102 -85
  178. package/dist/es/standards-sdk.es130.js.map +1 -1
  179. package/dist/es/standards-sdk.es131.js +222 -96
  180. package/dist/es/standards-sdk.es131.js.map +1 -1
  181. package/dist/es/standards-sdk.es132.js +153 -220
  182. package/dist/es/standards-sdk.es132.js.map +1 -1
  183. package/dist/es/standards-sdk.es133.js +104 -162
  184. package/dist/es/standards-sdk.es133.js.map +1 -1
  185. package/dist/es/standards-sdk.es134.js +296 -92
  186. package/dist/es/standards-sdk.es134.js.map +1 -1
  187. package/dist/es/standards-sdk.es135.js +432 -294
  188. package/dist/es/standards-sdk.es135.js.map +1 -1
  189. package/dist/es/standards-sdk.es136.js +14 -363
  190. package/dist/es/standards-sdk.es136.js.map +1 -1
  191. package/dist/es/standards-sdk.es137.js +79 -15
  192. package/dist/es/standards-sdk.es137.js.map +1 -1
  193. package/dist/es/standards-sdk.es138.js +79 -59
  194. package/dist/es/standards-sdk.es138.js.map +1 -1
  195. package/dist/es/standards-sdk.es139.js +53 -80
  196. package/dist/es/standards-sdk.es139.js.map +1 -1
  197. package/dist/es/standards-sdk.es14.js +149 -178
  198. package/dist/es/standards-sdk.es14.js.map +1 -1
  199. package/dist/es/standards-sdk.es140.js +1 -1
  200. package/dist/es/standards-sdk.es142.js +1 -1
  201. package/dist/es/standards-sdk.es143.js +1 -1
  202. package/dist/es/standards-sdk.es144.js +30 -28
  203. package/dist/es/standards-sdk.es144.js.map +1 -1
  204. package/dist/es/standards-sdk.es145.js +34 -138
  205. package/dist/es/standards-sdk.es145.js.map +1 -1
  206. package/dist/es/standards-sdk.es146.js +28 -42
  207. package/dist/es/standards-sdk.es146.js.map +1 -1
  208. package/dist/es/standards-sdk.es147.js +939 -12269
  209. package/dist/es/standards-sdk.es147.js.map +1 -1
  210. package/dist/es/standards-sdk.es148.js +12284 -12
  211. package/dist/es/standards-sdk.es148.js.map +1 -1
  212. package/dist/es/standards-sdk.es149.js +132 -50
  213. package/dist/es/standards-sdk.es149.js.map +1 -1
  214. package/dist/es/standards-sdk.es15.js +152 -151
  215. package/dist/es/standards-sdk.es15.js.map +1 -1
  216. package/dist/es/standards-sdk.es150.js +34 -74
  217. package/dist/es/standards-sdk.es150.js.map +1 -1
  218. package/dist/es/standards-sdk.es151.js +51 -167
  219. package/dist/es/standards-sdk.es151.js.map +1 -1
  220. package/dist/es/standards-sdk.es152.js +70 -308
  221. package/dist/es/standards-sdk.es152.js.map +1 -1
  222. package/dist/es/standards-sdk.es153.js +13 -342
  223. package/dist/es/standards-sdk.es153.js.map +1 -1
  224. package/dist/es/standards-sdk.es154.js +129 -410
  225. package/dist/es/standards-sdk.es154.js.map +1 -1
  226. package/dist/es/standards-sdk.es155.js +200 -209
  227. package/dist/es/standards-sdk.es155.js.map +1 -1
  228. package/dist/es/standards-sdk.es156.js +334 -64
  229. package/dist/es/standards-sdk.es156.js.map +1 -1
  230. package/dist/es/standards-sdk.es157.js +453 -871
  231. package/dist/es/standards-sdk.es157.js.map +1 -1
  232. package/dist/es/standards-sdk.es158.js +314 -222
  233. package/dist/es/standards-sdk.es158.js.map +1 -1
  234. package/dist/es/standards-sdk.es159.js +60 -228
  235. package/dist/es/standards-sdk.es159.js.map +1 -1
  236. package/dist/es/standards-sdk.es16.js +917 -136
  237. package/dist/es/standards-sdk.es16.js.map +1 -1
  238. package/dist/es/standards-sdk.es160.js +242 -0
  239. package/dist/es/standards-sdk.es160.js.map +1 -0
  240. package/dist/es/standards-sdk.es161.js +247 -0
  241. package/dist/es/standards-sdk.es161.js.map +1 -0
  242. package/dist/es/standards-sdk.es17.js +23 -944
  243. package/dist/es/standards-sdk.es17.js.map +1 -1
  244. package/dist/es/standards-sdk.es18.js +2422 -24
  245. package/dist/es/standards-sdk.es18.js.map +1 -1
  246. package/dist/es/standards-sdk.es19.js +817 -2071
  247. package/dist/es/standards-sdk.es19.js.map +1 -1
  248. package/dist/es/standards-sdk.es2.js +654 -189
  249. package/dist/es/standards-sdk.es2.js.map +1 -1
  250. package/dist/es/standards-sdk.es20.js +205 -1091
  251. package/dist/es/standards-sdk.es20.js.map +1 -1
  252. package/dist/es/standards-sdk.es21.js +858 -221
  253. package/dist/es/standards-sdk.es21.js.map +1 -1
  254. package/dist/es/standards-sdk.es22.js +179 -903
  255. package/dist/es/standards-sdk.es22.js.map +1 -1
  256. package/dist/es/standards-sdk.es23.js +164 -179
  257. package/dist/es/standards-sdk.es23.js.map +1 -1
  258. package/dist/es/standards-sdk.es24.js +62 -118
  259. package/dist/es/standards-sdk.es24.js.map +1 -1
  260. package/dist/es/standards-sdk.es25.js +377 -52
  261. package/dist/es/standards-sdk.es25.js.map +1 -1
  262. package/dist/es/standards-sdk.es26.js +36 -394
  263. package/dist/es/standards-sdk.es26.js.map +1 -1
  264. package/dist/es/standards-sdk.es27.js +901 -50
  265. package/dist/es/standards-sdk.es27.js.map +1 -1
  266. package/dist/es/standards-sdk.es28.js +134 -902
  267. package/dist/es/standards-sdk.es28.js.map +1 -1
  268. package/dist/es/standards-sdk.es29.js +7 -134
  269. package/dist/es/standards-sdk.es29.js.map +1 -1
  270. package/dist/es/standards-sdk.es3.js +63 -680
  271. package/dist/es/standards-sdk.es3.js.map +1 -1
  272. package/dist/es/standards-sdk.es30.js +344 -7
  273. package/dist/es/standards-sdk.es30.js.map +1 -1
  274. package/dist/es/standards-sdk.es31.js +302 -287
  275. package/dist/es/standards-sdk.es31.js.map +1 -1
  276. package/dist/es/standards-sdk.es32.js +94 -322
  277. package/dist/es/standards-sdk.es32.js.map +1 -1
  278. package/dist/es/standards-sdk.es33.js +458 -101
  279. package/dist/es/standards-sdk.es33.js.map +1 -1
  280. package/dist/es/standards-sdk.es34.js +132 -451
  281. package/dist/es/standards-sdk.es34.js.map +1 -1
  282. package/dist/es/standards-sdk.es35.js +216 -130
  283. package/dist/es/standards-sdk.es35.js.map +1 -1
  284. package/dist/es/standards-sdk.es36.js +273 -195
  285. package/dist/es/standards-sdk.es36.js.map +1 -1
  286. package/dist/es/standards-sdk.es37.js +148 -87
  287. package/dist/es/standards-sdk.es37.js.map +1 -1
  288. package/dist/es/standards-sdk.es38.js +183 -320
  289. package/dist/es/standards-sdk.es38.js.map +1 -1
  290. package/dist/es/standards-sdk.es39.js +238 -161
  291. package/dist/es/standards-sdk.es39.js.map +1 -1
  292. package/dist/es/standards-sdk.es4.js +425 -63
  293. package/dist/es/standards-sdk.es4.js.map +1 -1
  294. package/dist/es/standards-sdk.es40.js +136 -254
  295. package/dist/es/standards-sdk.es40.js.map +1 -1
  296. package/dist/es/standards-sdk.es41.js +225 -176
  297. package/dist/es/standards-sdk.es41.js.map +1 -1
  298. package/dist/es/standards-sdk.es42.js +199 -261
  299. package/dist/es/standards-sdk.es42.js.map +1 -1
  300. package/dist/es/standards-sdk.es43.js +237 -199
  301. package/dist/es/standards-sdk.es43.js.map +1 -1
  302. package/dist/es/standards-sdk.es44.js +209 -201
  303. package/dist/es/standards-sdk.es44.js.map +1 -1
  304. package/dist/es/standards-sdk.es45.js +305 -201
  305. package/dist/es/standards-sdk.es45.js.map +1 -1
  306. package/dist/es/standards-sdk.es46.js +371 -261
  307. package/dist/es/standards-sdk.es46.js.map +1 -1
  308. package/dist/es/standards-sdk.es47.js +316 -371
  309. package/dist/es/standards-sdk.es47.js.map +1 -1
  310. package/dist/es/standards-sdk.es48.js +404 -336
  311. package/dist/es/standards-sdk.es48.js.map +1 -1
  312. package/dist/es/standards-sdk.es49.js +83 -449
  313. package/dist/es/standards-sdk.es49.js.map +1 -1
  314. package/dist/es/standards-sdk.es5.js +232 -354
  315. package/dist/es/standards-sdk.es5.js.map +1 -1
  316. package/dist/es/standards-sdk.es50.js +179 -89
  317. package/dist/es/standards-sdk.es50.js.map +1 -1
  318. package/dist/es/standards-sdk.es51.js +231 -165
  319. package/dist/es/standards-sdk.es51.js.map +1 -1
  320. package/dist/es/standards-sdk.es52.js +25 -262
  321. package/dist/es/standards-sdk.es52.js.map +1 -1
  322. package/dist/es/standards-sdk.es53.js +56 -26
  323. package/dist/es/standards-sdk.es53.js.map +1 -1
  324. package/dist/es/standards-sdk.es54.js +12 -57
  325. package/dist/es/standards-sdk.es54.js.map +1 -1
  326. package/dist/es/standards-sdk.es55.js +49 -12
  327. package/dist/es/standards-sdk.es55.js.map +1 -1
  328. package/dist/es/standards-sdk.es56.js +115 -43
  329. package/dist/es/standards-sdk.es56.js.map +1 -1
  330. package/dist/es/standards-sdk.es57.js +42 -115
  331. package/dist/es/standards-sdk.es57.js.map +1 -1
  332. package/dist/es/standards-sdk.es58.js +52 -43
  333. package/dist/es/standards-sdk.es58.js.map +1 -1
  334. package/dist/es/standards-sdk.es59.js +36 -50
  335. package/dist/es/standards-sdk.es59.js.map +1 -1
  336. package/dist/es/standards-sdk.es6.js +125 -246
  337. package/dist/es/standards-sdk.es6.js.map +1 -1
  338. package/dist/es/standards-sdk.es60.js +207 -39
  339. package/dist/es/standards-sdk.es60.js.map +1 -1
  340. package/dist/es/standards-sdk.es61.js +24 -200
  341. package/dist/es/standards-sdk.es61.js.map +1 -1
  342. package/dist/es/standards-sdk.es62.js +87 -25
  343. package/dist/es/standards-sdk.es62.js.map +1 -1
  344. package/dist/es/standards-sdk.es63.js +3 -51
  345. package/dist/es/standards-sdk.es63.js.map +1 -1
  346. package/dist/es/standards-sdk.es64.js +100 -3
  347. package/dist/es/standards-sdk.es64.js.map +1 -1
  348. package/dist/es/standards-sdk.es65.js +61 -62
  349. package/dist/es/standards-sdk.es65.js.map +1 -1
  350. package/dist/es/standards-sdk.es66.js +17 -98
  351. package/dist/es/standards-sdk.es66.js.map +1 -1
  352. package/dist/es/standards-sdk.es67.js +77 -19
  353. package/dist/es/standards-sdk.es67.js.map +1 -1
  354. package/dist/es/standards-sdk.es68.js +458 -77
  355. package/dist/es/standards-sdk.es68.js.map +1 -1
  356. package/dist/es/standards-sdk.es69.js +106 -240
  357. package/dist/es/standards-sdk.es69.js.map +1 -1
  358. package/dist/es/standards-sdk.es7.js +28 -183
  359. package/dist/es/standards-sdk.es7.js.map +1 -1
  360. package/dist/es/standards-sdk.es70.js +170 -286
  361. package/dist/es/standards-sdk.es70.js.map +1 -1
  362. package/dist/es/standards-sdk.es71.js +71 -207
  363. package/dist/es/standards-sdk.es71.js.map +1 -1
  364. package/dist/es/standards-sdk.es72.js +71 -72
  365. package/dist/es/standards-sdk.es72.js.map +1 -1
  366. package/dist/es/standards-sdk.es73.js +143 -71
  367. package/dist/es/standards-sdk.es73.js.map +1 -1
  368. package/dist/es/standards-sdk.es74.js +62 -136
  369. package/dist/es/standards-sdk.es74.js.map +1 -1
  370. package/dist/es/standards-sdk.es75.js +380 -45
  371. package/dist/es/standards-sdk.es75.js.map +1 -1
  372. package/dist/es/standards-sdk.es76.js +222 -130
  373. package/dist/es/standards-sdk.es76.js.map +1 -1
  374. package/dist/es/standards-sdk.es77.js +320 -444
  375. package/dist/es/standards-sdk.es77.js.map +1 -1
  376. package/dist/es/standards-sdk.es78.js +88 -370
  377. package/dist/es/standards-sdk.es78.js.map +1 -1
  378. package/dist/es/standards-sdk.es79.js +125 -89
  379. package/dist/es/standards-sdk.es79.js.map +1 -1
  380. package/dist/es/standards-sdk.es8.js +80 -29
  381. package/dist/es/standards-sdk.es8.js.map +1 -1
  382. package/dist/es/standards-sdk.es80.js +8 -125
  383. package/dist/es/standards-sdk.es80.js.map +1 -1
  384. package/dist/es/standards-sdk.es81.js +45 -6
  385. package/dist/es/standards-sdk.es81.js.map +1 -1
  386. package/dist/es/standards-sdk.es82.js +98 -44
  387. package/dist/es/standards-sdk.es82.js.map +1 -1
  388. package/dist/es/standards-sdk.es83.js +331 -84
  389. package/dist/es/standards-sdk.es83.js.map +1 -1
  390. package/dist/es/standards-sdk.es84.js +93 -160
  391. package/dist/es/standards-sdk.es84.js.map +1 -1
  392. package/dist/es/standards-sdk.es85.js +55 -275
  393. package/dist/es/standards-sdk.es85.js.map +1 -1
  394. package/dist/es/standards-sdk.es86.js +43 -55
  395. package/dist/es/standards-sdk.es86.js.map +1 -1
  396. package/dist/es/standards-sdk.es87.js +145 -22
  397. package/dist/es/standards-sdk.es87.js.map +1 -1
  398. package/dist/es/standards-sdk.es88.js +34 -47
  399. package/dist/es/standards-sdk.es88.js.map +1 -1
  400. package/dist/es/standards-sdk.es89.js +22 -57
  401. package/dist/es/standards-sdk.es89.js.map +1 -1
  402. package/dist/es/standards-sdk.es9.js +104 -80
  403. package/dist/es/standards-sdk.es9.js.map +1 -1
  404. package/dist/es/standards-sdk.es90.js +23 -28
  405. package/dist/es/standards-sdk.es90.js.map +1 -1
  406. package/dist/es/standards-sdk.es91.js +238 -23
  407. package/dist/es/standards-sdk.es91.js.map +1 -1
  408. package/dist/es/standards-sdk.es92.js +265 -152
  409. package/dist/es/standards-sdk.es92.js.map +1 -1
  410. package/dist/es/standards-sdk.es93.js +95 -68
  411. package/dist/es/standards-sdk.es93.js.map +1 -1
  412. package/dist/es/standards-sdk.es94.js +124 -136
  413. package/dist/es/standards-sdk.es94.js.map +1 -1
  414. package/dist/es/standards-sdk.es95.js +42 -138
  415. package/dist/es/standards-sdk.es95.js.map +1 -1
  416. package/dist/es/standards-sdk.es96.js +259 -42
  417. package/dist/es/standards-sdk.es96.js.map +1 -1
  418. package/dist/es/standards-sdk.es97.js +82 -243
  419. package/dist/es/standards-sdk.es97.js.map +1 -1
  420. package/dist/es/standards-sdk.es98.js +48 -47
  421. package/dist/es/standards-sdk.es98.js.map +1 -1
  422. package/dist/es/standards-sdk.es99.js +29 -100
  423. package/dist/es/standards-sdk.es99.js.map +1 -1
  424. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  425. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  426. package/dist/es/utils/dynamic-import.d.ts +5 -1
  427. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  428. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  429. package/package.json +76 -63
  430. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  431. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  432. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  433. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es48.js","sources":["../../src/hcs-12/rendering/block-state-manager.ts"],"sourcesContent":["/**\n * Block State Manager for HCS-12 HashLinks\n *\n * Manages state isolation, events, and communication between blocks\n * with persistence support and memory management.\n */\n\nimport { Logger } from '../../utils/logger';\n\nexport interface BlockState {\n attributes: Record<string, string | number | boolean>;\n actionResults: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface StateChangeListener {\n (newState: BlockState, oldState: BlockState, blockId: string): void;\n}\n\nexport interface BlockMessage {\n type: string;\n payload: unknown;\n fromBlock: string;\n toBlock: string;\n}\n\nexport interface BlockMessageHandler {\n (message: BlockMessage): void;\n}\n\nexport interface ActionResultBinding {\n onSuccess?: (state: BlockState, result: unknown) => BlockState;\n onError?: (state: BlockState, result: unknown) => BlockState;\n}\n\nexport interface ActionResult {\n success: boolean;\n data?: unknown;\n error?: string;\n transactionId?: string | null;\n}\n\nexport interface ValidationSchema {\n type: string;\n properties?: Record<string, any>;\n required?: string[];\n}\n\nexport interface StorageBackend {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n}\n\n/**\n * Manages block state with isolation and communication\n */\nexport class BlockStateManager {\n private logger: Logger;\n private blockStates: Map<string, BlockState> = new Map();\n private stateListeners: Map<string, StateChangeListener[]> = new Map();\n private messageHandlers: Map<string, BlockMessageHandler[]> = new Map();\n private schemas: Map<string, ValidationSchema> = new Map();\n private storageBackend?: StorageBackend;\n private persistentBlocks: Set<string> = new Set();\n private unusedBlocks: Set<string> = new Set();\n private maxBlockStates = 1000;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Create isolated state for a block instance\n */\n createBlockState(blockId: string, initialState: BlockState): void {\n this.logger.debug('Creating block state', { blockId });\n\n if (this.schemas.has(blockId)) {\n this.validateState(blockId, initialState);\n }\n\n while (this.blockStates.size >= this.maxBlockStates) {\n if (this.unusedBlocks.size > 0) {\n this.cleanupUnusedStates();\n } else {\n this.evictOldestBlock();\n }\n }\n\n this.blockStates.set(blockId, { ...initialState });\n this.logger.debug('Block state created', {\n blockId,\n stateKeys: Object.keys(initialState),\n });\n }\n\n /**\n * Get current state for a block\n */\n getBlockState(blockId: string): BlockState | null {\n if (!this.blockStates.has(blockId)) {\n return null;\n }\n return { ...this.blockStates.get(blockId) };\n }\n\n /**\n * Check if block state exists\n */\n hasBlockState(blockId: string): boolean {\n return this.blockStates.has(blockId);\n }\n\n /**\n * Update block state and emit events\n */\n updateBlockState(blockId: string, updates: Partial<BlockState>): void {\n if (!this.blockStates.has(blockId)) {\n throw new Error(`Block state not found: ${blockId}`);\n }\n\n const oldState = { ...this.blockStates.get(blockId) };\n const newState = { ...oldState, ...updates };\n\n if (this.schemas.has(blockId)) {\n this.validateState(blockId, newState);\n }\n\n this.blockStates.set(blockId, newState);\n\n const listeners = this.stateListeners.get(blockId) || [];\n for (const listener of listeners) {\n try {\n listener(newState, oldState, blockId);\n } catch (error) {\n this.logger.error('State change listener error', { blockId, error });\n }\n }\n\n this.logger.debug('Block state updated', { blockId, updates });\n }\n\n /**\n * Destroy block state and cleanup\n */\n destroyBlockState(blockId: string): void {\n this.logger.debug('Destroying block state', { blockId });\n\n this.blockStates.delete(blockId);\n this.stateListeners.delete(blockId);\n this.messageHandlers.delete(blockId);\n this.schemas.delete(blockId);\n this.persistentBlocks.delete(blockId);\n this.unusedBlocks.delete(blockId);\n\n this.logger.debug('Block state destroyed', { blockId });\n }\n\n /**\n * Listen for state changes on a block\n */\n onStateChange(blockId: string, listener: StateChangeListener): void {\n if (!this.stateListeners.has(blockId)) {\n this.stateListeners.set(blockId, []);\n }\n this.stateListeners.get(blockId)!.push(listener);\n }\n\n /**\n * Remove state change listener\n */\n removeStateChangeListener(\n blockId: string,\n listener: StateChangeListener,\n ): void {\n const listeners = this.stateListeners.get(blockId);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n }\n\n /**\n * Listen for messages sent to a block\n */\n onBlockMessage(blockId: string, handler: BlockMessageHandler): void {\n if (!this.messageHandlers.has(blockId)) {\n this.messageHandlers.set(blockId, []);\n }\n this.messageHandlers.get(blockId)!.push(handler);\n }\n\n /**\n * Send message from one block to another\n */\n sendBlockMessage(\n fromBlock: string,\n toBlock: string,\n type: string,\n payload: unknown,\n ): void {\n const message: BlockMessage = {\n type,\n payload,\n fromBlock,\n toBlock,\n };\n\n const handlers = this.messageHandlers.get(toBlock) || [];\n for (const handler of handlers) {\n try {\n handler(message);\n } catch (error) {\n this.logger.error('Block message handler error', {\n fromBlock,\n toBlock,\n type,\n error,\n });\n }\n }\n\n this.logger.debug('Block message sent', { fromBlock, toBlock, type });\n }\n\n /**\n * Broadcast message to all blocks\n */\n broadcastMessage(type: string, payload: unknown): void {\n for (const blockId of this.blockStates.keys()) {\n const handlers = this.messageHandlers.get(blockId) || [];\n const message: BlockMessage = {\n type,\n payload,\n fromBlock: 'system',\n toBlock: blockId,\n };\n\n for (const handler of handlers) {\n try {\n handler(message);\n } catch (error) {\n this.logger.error('Broadcast message handler error', {\n blockId,\n type,\n error,\n });\n }\n }\n }\n\n this.logger.debug('Message broadcasted', {\n type,\n blockCount: this.blockStates.size,\n });\n }\n\n /**\n * Bind action result to block state\n */\n async bindActionResult(\n blockId: string,\n actionName: string,\n result: ActionResult,\n binding: ActionResultBinding,\n ): Promise<void> {\n if (!this.blockStates.has(blockId)) {\n throw new Error(`Block state not found: ${blockId}`);\n }\n\n const currentState = this.getBlockState(blockId);\n let newState: BlockState;\n\n try {\n if (result.success && binding.onSuccess) {\n newState = binding.onSuccess(currentState, result);\n } else if (!result.success && binding.onError) {\n newState = binding.onError(currentState, result);\n } else {\n return;\n }\n\n if (newState) {\n this.updateBlockState(blockId, newState);\n }\n\n this.logger.debug('Action result bound to state', {\n blockId,\n actionName,\n success: result.success,\n });\n } catch (error) {\n this.logger.error('Action result binding failed', {\n blockId,\n actionName,\n error,\n });\n throw error;\n }\n }\n\n /**\n * Persist block state to storage\n */\n async persistBlockState(blockId: string): Promise<void> {\n if (!this.storageBackend) {\n this.logger.warn('No storage backend configured');\n\n this.persistentBlocks.add(blockId);\n return;\n }\n\n if (!this.blockStates.has(blockId)) {\n throw new Error(`Block state not found: ${blockId}`);\n }\n\n try {\n const state = this.blockStates.get(blockId);\n await this.storageBackend.setItem(blockId, JSON.stringify(state));\n this.persistentBlocks.add(blockId);\n this.logger.debug('Block state persisted', { blockId });\n } catch (error) {\n this.logger.error('Failed to persist block state', { blockId, error });\n }\n }\n\n /**\n * Restore block state from storage\n */\n async restoreBlockState(blockId: string): Promise<void> {\n if (!this.storageBackend) {\n this.logger.warn('No storage backend configured');\n return;\n }\n\n try {\n const stored = await this.storageBackend.getItem(blockId);\n if (stored) {\n const state = JSON.parse(stored);\n this.blockStates.set(blockId, state);\n this.persistentBlocks.add(blockId);\n this.logger.debug('Block state restored', { blockId });\n }\n } catch (error) {\n this.logger.error('Failed to restore block state', { blockId, error });\n }\n }\n\n /**\n * Check if block state is persistent\n */\n isPersistent(blockId: string): boolean {\n return this.persistentBlocks.has(blockId);\n }\n\n /**\n * Set storage backend\n */\n setStorageBackend(backend: StorageBackend): void {\n this.storageBackend = backend;\n }\n\n /**\n * Set validation schema for a block\n */\n setBlockStateSchema(blockId: string, schema: ValidationSchema): void {\n this.schemas.set(blockId, schema);\n this.logger.debug('Block state schema set', { blockId });\n }\n\n /**\n * Set maximum number of block states\n */\n setMaxBlockStates(max: number): void {\n this.maxBlockStates = max;\n }\n\n /**\n * Get active block count\n */\n getActiveBlockCount(): number {\n return this.blockStates.size;\n }\n\n /**\n * Mark block as unused for cleanup\n */\n markBlockUnused(blockId: string): void {\n this.unusedBlocks.add(blockId);\n }\n\n /**\n * Clean up unused block states\n */\n cleanupUnusedStates(): void {\n for (const blockId of this.unusedBlocks) {\n this.destroyBlockState(blockId);\n }\n this.unusedBlocks.clear();\n this.logger.debug('Unused states cleaned up');\n }\n\n /**\n * Evict oldest non-persistent block to make room\n */\n private evictOldestBlock(): void {\n for (const blockId of this.blockStates.keys()) {\n if (!this.persistentBlocks.has(blockId)) {\n this.destroyBlockState(blockId);\n this.logger.debug('Evicted block to make room', { blockId });\n return;\n }\n }\n\n this.logger.warn('Cannot evict blocks - all are persistent');\n }\n\n /**\n * Get listener count for a block (for testing)\n */\n getListenerCount(blockId: string): number {\n const stateListeners = this.stateListeners.get(blockId)?.length || 0;\n const messageHandlers = this.messageHandlers.get(blockId)?.length || 0;\n return stateListeners + messageHandlers;\n }\n\n /**\n * Validate state against schema\n */\n private validateState(blockId: string, state: BlockState): void {\n const schema = this.schemas.get(blockId);\n if (!schema) return;\n\n if (schema.type === 'object') {\n if (typeof state !== 'object' || state === null) {\n throw new Error('State validation failed: expected object');\n }\n\n if (schema.required) {\n for (const prop of schema.required) {\n if (!(prop in state)) {\n throw new Error(\n `State validation failed: missing required property '${prop}'`,\n );\n }\n }\n }\n\n if (schema.properties) {\n for (const [prop, propSchema] of Object.entries(schema.properties)) {\n if (prop in state) {\n const value = state[prop];\n const expectedType = (propSchema as any).type;\n\n if (expectedType === 'string' && typeof value !== 'string') {\n throw new Error(\n `State validation failed: property '${prop}' must be string`,\n );\n }\n if (expectedType === 'number' && typeof value !== 'number') {\n throw new Error(\n `State validation failed: property '${prop}' must be number`,\n );\n }\n if (\n expectedType === 'number' &&\n (propSchema as any).minimum !== undefined\n ) {\n if (value < (propSchema as any).minimum) {\n throw new Error(\n `State validation failed: property '${prop}' below minimum`,\n );\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Set block state (alias for updateBlockState)\n */\n setBlockState(blockId: string, state: BlockState): void {\n if (!this.blockStates.has(blockId)) {\n this.createBlockState(blockId, state);\n } else {\n this.updateBlockState(blockId, state);\n }\n }\n\n /**\n * Remove block state\n */\n removeBlockState(blockId: string): void {\n this.blockStates.delete(blockId);\n this.stateListeners.delete(blockId);\n this.messageHandlers.delete(blockId);\n this.persistentBlocks.delete(blockId);\n this.schemas.delete(blockId);\n\n if (this.storageBackend) {\n this.storageBackend.removeItem(blockId).catch(error => {\n this.logger.error('Failed to remove persisted state', {\n blockId,\n error,\n });\n });\n }\n\n this.logger.debug('Block state removed', { blockId });\n }\n\n /**\n * Send message to a block\n */\n sendMessage(\n blockId: string,\n type: string,\n data: unknown,\n fromBlock: string = 'system',\n ): void {\n const handlers = this.messageHandlers.get(blockId) || [];\n const message: BlockMessage = {\n type,\n payload: data,\n fromBlock,\n toBlock: blockId,\n };\n\n for (const handler of handlers) {\n try {\n handler(message);\n } catch (error) {\n this.logger.error('Message handler error', { blockId, type, error });\n }\n }\n }\n}\n"],"names":[],"mappings":"AAyDO,MAAM,kBAAkB;AAAA,EAW7B,YAAY,QAAgB;AAT5B,SAAQ,kCAA2C,IAAA;AACnD,SAAQ,qCAAyD,IAAA;AACjE,SAAQ,sCAA0D,IAAA;AAClE,SAAQ,8BAA6C,IAAA;AAErD,SAAQ,uCAAoC,IAAA;AAC5C,SAAQ,mCAAgC,IAAA;AACxC,SAAQ,iBAAiB;AAGvB,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,SAAiB,cAAgC;AAChE,SAAK,OAAO,MAAM,wBAAwB,EAAE,SAAS;AAErD,QAAI,KAAK,QAAQ,IAAI,OAAO,GAAG;AAC7B,WAAK,cAAc,SAAS,YAAY;AAAA,IAC1C;AAEA,WAAO,KAAK,YAAY,QAAQ,KAAK,gBAAgB;AACnD,UAAI,KAAK,aAAa,OAAO,GAAG;AAC9B,aAAK,oBAAA;AAAA,MACP,OAAO;AACL,aAAK,iBAAA;AAAA,MACP;AAAA,IACF;AAEA,SAAK,YAAY,IAAI,SAAS,EAAE,GAAG,cAAc;AACjD,SAAK,OAAO,MAAM,uBAAuB;AAAA,MACvC;AAAA,MACA,WAAW,OAAO,KAAK,YAAY;AAAA,IAAA,CACpC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,SAAoC;AAChD,QAAI,CAAC,KAAK,YAAY,IAAI,OAAO,GAAG;AAClC,aAAO;AAAA,IACT;AACA,WAAO,EAAE,GAAG,KAAK,YAAY,IAAI,OAAO,EAAA;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,SAA0B;AACtC,WAAO,KAAK,YAAY,IAAI,OAAO;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,SAAiB,SAAoC;AACpE,QAAI,CAAC,KAAK,YAAY,IAAI,OAAO,GAAG;AAClC,YAAM,IAAI,MAAM,0BAA0B,OAAO,EAAE;AAAA,IACrD;AAEA,UAAM,WAAW,EAAE,GAAG,KAAK,YAAY,IAAI,OAAO,EAAA;AAClD,UAAM,WAAW,EAAE,GAAG,UAAU,GAAG,QAAA;AAEnC,QAAI,KAAK,QAAQ,IAAI,OAAO,GAAG;AAC7B,WAAK,cAAc,SAAS,QAAQ;AAAA,IACtC;AAEA,SAAK,YAAY,IAAI,SAAS,QAAQ;AAEtC,UAAM,YAAY,KAAK,eAAe,IAAI,OAAO,KAAK,CAAA;AACtD,eAAW,YAAY,WAAW;AAChC,UAAI;AACF,iBAAS,UAAU,UAAU,OAAO;AAAA,MACtC,SAAS,OAAO;AACd,aAAK,OAAO,MAAM,+BAA+B,EAAE,SAAS,OAAO;AAAA,MACrE;AAAA,IACF;AAEA,SAAK,OAAO,MAAM,uBAAuB,EAAE,SAAS,SAAS;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,SAAuB;AACvC,SAAK,OAAO,MAAM,0BAA0B,EAAE,SAAS;AAEvD,SAAK,YAAY,OAAO,OAAO;AAC/B,SAAK,eAAe,OAAO,OAAO;AAClC,SAAK,gBAAgB,OAAO,OAAO;AACnC,SAAK,QAAQ,OAAO,OAAO;AAC3B,SAAK,iBAAiB,OAAO,OAAO;AACpC,SAAK,aAAa,OAAO,OAAO;AAEhC,SAAK,OAAO,MAAM,yBAAyB,EAAE,SAAS;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,SAAiB,UAAqC;AAClE,QAAI,CAAC,KAAK,eAAe,IAAI,OAAO,GAAG;AACrC,WAAK,eAAe,IAAI,SAAS,CAAA,CAAE;AAAA,IACrC;AACA,SAAK,eAAe,IAAI,OAAO,EAAG,KAAK,QAAQ;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,0BACE,SACA,UACM;AACN,UAAM,YAAY,KAAK,eAAe,IAAI,OAAO;AACjD,QAAI,WAAW;AACb,YAAM,QAAQ,UAAU,QAAQ,QAAQ;AACxC,UAAI,QAAQ,IAAI;AACd,kBAAU,OAAO,OAAO,CAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,SAAiB,SAAoC;AAClE,QAAI,CAAC,KAAK,gBAAgB,IAAI,OAAO,GAAG;AACtC,WAAK,gBAAgB,IAAI,SAAS,CAAA,CAAE;AAAA,IACtC;AACA,SAAK,gBAAgB,IAAI,OAAO,EAAG,KAAK,OAAO;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,iBACE,WACA,SACA,MACA,SACM;AACN,UAAM,UAAwB;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,UAAM,WAAW,KAAK,gBAAgB,IAAI,OAAO,KAAK,CAAA;AACtD,eAAW,WAAW,UAAU;AAC9B,UAAI;AACF,gBAAQ,OAAO;AAAA,MACjB,SAAS,OAAO;AACd,aAAK,OAAO,MAAM,+BAA+B;AAAA,UAC/C;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MACH;AAAA,IACF;AAEA,SAAK,OAAO,MAAM,sBAAsB,EAAE,WAAW,SAAS,MAAM;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,MAAc,SAAwB;AACrD,eAAW,WAAW,KAAK,YAAY,KAAA,GAAQ;AAC7C,YAAM,WAAW,KAAK,gBAAgB,IAAI,OAAO,KAAK,CAAA;AACtD,YAAM,UAAwB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,SAAS;AAAA,MAAA;AAGX,iBAAW,WAAW,UAAU;AAC9B,YAAI;AACF,kBAAQ,OAAO;AAAA,QACjB,SAAS,OAAO;AACd,eAAK,OAAO,MAAM,mCAAmC;AAAA,YACnD;AAAA,YACA;AAAA,YACA;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,SAAK,OAAO,MAAM,uBAAuB;AAAA,MACvC;AAAA,MACA,YAAY,KAAK,YAAY;AAAA,IAAA,CAC9B;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBACJ,SACA,YACA,QACA,SACe;AACf,QAAI,CAAC,KAAK,YAAY,IAAI,OAAO,GAAG;AAClC,YAAM,IAAI,MAAM,0BAA0B,OAAO,EAAE;AAAA,IACrD;AAEA,UAAM,eAAe,KAAK,cAAc,OAAO;AAC/C,QAAI;AAEJ,QAAI;AACF,UAAI,OAAO,WAAW,QAAQ,WAAW;AACvC,mBAAW,QAAQ,UAAU,cAAc,MAAM;AAAA,MACnD,WAAW,CAAC,OAAO,WAAW,QAAQ,SAAS;AAC7C,mBAAW,QAAQ,QAAQ,cAAc,MAAM;AAAA,MACjD,OAAO;AACL;AAAA,MACF;AAEA,UAAI,UAAU;AACZ,aAAK,iBAAiB,SAAS,QAAQ;AAAA,MACzC;AAEA,WAAK,OAAO,MAAM,gCAAgC;AAAA,QAChD;AAAA,QACA;AAAA,QACA,SAAS,OAAO;AAAA,MAAA,CACjB;AAAA,IACH,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,gCAAgC;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,SAAgC;AACtD,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,OAAO,KAAK,+BAA+B;AAEhD,WAAK,iBAAiB,IAAI,OAAO;AACjC;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,YAAY,IAAI,OAAO,GAAG;AAClC,YAAM,IAAI,MAAM,0BAA0B,OAAO,EAAE;AAAA,IACrD;AAEA,QAAI;AACF,YAAM,QAAQ,KAAK,YAAY,IAAI,OAAO;AAC1C,YAAM,KAAK,eAAe,QAAQ,SAAS,KAAK,UAAU,KAAK,CAAC;AAChE,WAAK,iBAAiB,IAAI,OAAO;AACjC,WAAK,OAAO,MAAM,yBAAyB,EAAE,SAAS;AAAA,IACxD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,iCAAiC,EAAE,SAAS,OAAO;AAAA,IACvE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,SAAgC;AACtD,QAAI,CAAC,KAAK,gBAAgB;AACxB,WAAK,OAAO,KAAK,+BAA+B;AAChD;AAAA,IACF;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,KAAK,eAAe,QAAQ,OAAO;AACxD,UAAI,QAAQ;AACV,cAAM,QAAQ,KAAK,MAAM,MAAM;AAC/B,aAAK,YAAY,IAAI,SAAS,KAAK;AACnC,aAAK,iBAAiB,IAAI,OAAO;AACjC,aAAK,OAAO,MAAM,wBAAwB,EAAE,SAAS;AAAA,MACvD;AAAA,IACF,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,iCAAiC,EAAE,SAAS,OAAO;AAAA,IACvE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,SAA0B;AACrC,WAAO,KAAK,iBAAiB,IAAI,OAAO;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,SAA+B;AAC/C,SAAK,iBAAiB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,SAAiB,QAAgC;AACnE,SAAK,QAAQ,IAAI,SAAS,MAAM;AAChC,SAAK,OAAO,MAAM,0BAA0B,EAAE,SAAS;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,KAAmB;AACnC,SAAK,iBAAiB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,sBAA8B;AAC5B,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,SAAuB;AACrC,SAAK,aAAa,IAAI,OAAO;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,sBAA4B;AAC1B,eAAW,WAAW,KAAK,cAAc;AACvC,WAAK,kBAAkB,OAAO;AAAA,IAChC;AACA,SAAK,aAAa,MAAA;AAClB,SAAK,OAAO,MAAM,0BAA0B;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAyB;AAC/B,eAAW,WAAW,KAAK,YAAY,KAAA,GAAQ;AAC7C,UAAI,CAAC,KAAK,iBAAiB,IAAI,OAAO,GAAG;AACvC,aAAK,kBAAkB,OAAO;AAC9B,aAAK,OAAO,MAAM,8BAA8B,EAAE,SAAS;AAC3D;AAAA,MACF;AAAA,IACF;AAEA,SAAK,OAAO,KAAK,0CAA0C;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,SAAyB;AACxC,UAAM,iBAAiB,KAAK,eAAe,IAAI,OAAO,GAAG,UAAU;AACnE,UAAM,kBAAkB,KAAK,gBAAgB,IAAI,OAAO,GAAG,UAAU;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKQ,cAAc,SAAiB,OAAyB;AAC9D,UAAM,SAAS,KAAK,QAAQ,IAAI,OAAO;AACvC,QAAI,CAAC,OAAQ;AAEb,QAAI,OAAO,SAAS,UAAU;AAC5B,UAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AAEA,UAAI,OAAO,UAAU;AACnB,mBAAW,QAAQ,OAAO,UAAU;AAClC,cAAI,EAAE,QAAQ,QAAQ;AACpB,kBAAM,IAAI;AAAA,cACR,uDAAuD,IAAI;AAAA,YAAA;AAAA,UAE/D;AAAA,QACF;AAAA,MACF;AAEA,UAAI,OAAO,YAAY;AACrB,mBAAW,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,OAAO,UAAU,GAAG;AAClE,cAAI,QAAQ,OAAO;AACjB,kBAAM,QAAQ,MAAM,IAAI;AACxB,kBAAM,eAAgB,WAAmB;AAEzC,gBAAI,iBAAiB,YAAY,OAAO,UAAU,UAAU;AAC1D,oBAAM,IAAI;AAAA,gBACR,sCAAsC,IAAI;AAAA,cAAA;AAAA,YAE9C;AACA,gBAAI,iBAAiB,YAAY,OAAO,UAAU,UAAU;AAC1D,oBAAM,IAAI;AAAA,gBACR,sCAAsC,IAAI;AAAA,cAAA;AAAA,YAE9C;AACA,gBACE,iBAAiB,YAChB,WAAmB,YAAY,QAChC;AACA,kBAAI,QAAS,WAAmB,SAAS;AACvC,sBAAM,IAAI;AAAA,kBACR,sCAAsC,IAAI;AAAA,gBAAA;AAAA,cAE9C;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,SAAiB,OAAyB;AACtD,QAAI,CAAC,KAAK,YAAY,IAAI,OAAO,GAAG;AAClC,WAAK,iBAAiB,SAAS,KAAK;AAAA,IACtC,OAAO;AACL,WAAK,iBAAiB,SAAS,KAAK;AAAA,IACtC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,SAAuB;AACtC,SAAK,YAAY,OAAO,OAAO;AAC/B,SAAK,eAAe,OAAO,OAAO;AAClC,SAAK,gBAAgB,OAAO,OAAO;AACnC,SAAK,iBAAiB,OAAO,OAAO;AACpC,SAAK,QAAQ,OAAO,OAAO;AAE3B,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,WAAW,OAAO,EAAE,MAAM,CAAA,UAAS;AACrD,aAAK,OAAO,MAAM,oCAAoC;AAAA,UACpD;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MACH,CAAC;AAAA,IACH;AAEA,SAAK,OAAO,MAAM,uBAAuB,EAAE,SAAS;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAKA,YACE,SACA,MACA,MACA,YAAoB,UACd;AACN,UAAM,WAAW,KAAK,gBAAgB,IAAI,OAAO,KAAK,CAAA;AACtD,UAAM,UAAwB;AAAA,MAC5B;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,SAAS;AAAA,IAAA;AAGX,eAAW,WAAW,UAAU;AAC9B,UAAI;AACF,gBAAQ,OAAO;AAAA,MACjB,SAAS,OAAO;AACd,aAAK,OAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,OAAO;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"standards-sdk.es48.js","sources":["../../src/hcs-12/rendering/block-renderer.ts"],"sourcesContent":["/**\n * Block Renderer for HCS-12 HashLinks\n *\n * Renders Gutenberg blocks with HashLink integration\n */\n\nimport { Logger } from '../../utils/logger';\nimport { GutenbergBridge } from './gutenberg-bridge';\nimport { TemplateEngine, TemplateContext } from './template-engine';\nimport { BlockStateManager, BlockState } from './block-state-manager';\nimport { GutenbergBlockType, ActionRegistration } from '../types';\nimport { WasmExecutor } from '../wasm/wasm-executor';\nimport { NetworkType } from '../../utils/types';\nimport type { ActionRegistry } from '../registries/action-registry';\nimport type { Assembly } from '../assembly/assembly-engine';\nimport { HashLinkScanner } from './hashlink-scanner';\nimport { HashLinkResolver, RenderContext } from './hashlink-resolver';\nimport { BlockLoader } from '../registries/block-loader';\nimport { HRLResolver } from '../../utils/hrl-resolver';\n\nexport interface BlockDefinitionWithUI {\n id: string;\n template?: string;\n attributes?: Record<string, any>;\n styles?: string;\n\n p: 'hcs-12';\n op: 'register' | 'template' | 'pattern';\n name: string;\n version: string;\n blockJson?: GutenbergBlockType;\n t_id?: string;\n title?: string;\n description?: string;\n categories?: string[];\n content?: string | Record<string, any> | any[];\n}\n\nexport interface RenderOptions {\n container?: string | HTMLElement;\n initialState?: BlockState;\n theme?: 'light' | 'dark';\n responsive?: boolean;\n assembly?: Assembly;\n actionRegistry?: ActionRegistry;\n network?: NetworkType;\n depth?: number;\n maxDepth?: number;\n parentContext?: RenderContext;\n blockLoader?: BlockLoader;\n hrlResolver?: HRLResolver;\n}\n\nexport interface RenderResult {\n element?: HTMLElement;\n html?: string;\n cleanup?: () => void;\n}\n\n/**\n * Renders HashLink blocks to DOM or HTML\n */\nexport class BlockRenderer {\n private logger: Logger;\n private gutenbergBridge: GutenbergBridge;\n private templateEngine: TemplateEngine;\n private stateManager: BlockStateManager;\n private wasmExecutor?: WasmExecutor;\n private currentBlock?: BlockDefinitionWithUI;\n private currentOptions?: RenderOptions;\n private assembly?: Assembly;\n private actionRegistry?: ActionRegistry;\n private hashLinkScanner: HashLinkScanner;\n private hashLinkResolver?: HashLinkResolver;\n private blockLoader?: BlockLoader;\n private hrlResolver?: HRLResolver;\n private readonly MAX_DEPTH = 10;\n\n constructor(\n logger: Logger,\n gutenbergBridge: GutenbergBridge,\n templateEngine: TemplateEngine,\n stateManager: BlockStateManager,\n ) {\n this.logger = logger;\n this.gutenbergBridge = gutenbergBridge;\n this.templateEngine = templateEngine;\n this.stateManager = stateManager;\n this.hashLinkScanner = new HashLinkScanner(logger);\n }\n\n /**\n * Render a block\n */\n async render(\n block: BlockDefinitionWithUI,\n options: RenderOptions = {},\n ): Promise<RenderResult> {\n try {\n this.currentBlock = block;\n this.currentOptions = options;\n\n if (options.assembly) {\n this.assembly = options.assembly;\n }\n if (options.actionRegistry) {\n this.actionRegistry = options.actionRegistry;\n }\n\n if (options.network && !this.wasmExecutor) {\n this.wasmExecutor = new WasmExecutor(this.logger, options.network);\n }\n\n if (options.initialState) {\n this.stateManager.setBlockState(block.id, options.initialState);\n }\n\n let state = this.stateManager.getBlockState(block.id) || {\n attributes: {},\n actionResults: {},\n };\n\n if (!state.attributes || typeof state.attributes !== 'object') {\n this.logger.warn('Invalid state structure, fixing...', { state });\n state = {\n attributes: (state as any) || {},\n actionResults: {},\n };\n }\n\n let actions = {};\n let attributes = block.attributes || {};\n\n if (this.assembly) {\n const assemblyBlock = this.assembly.state?.blocks?.find(\n b => b.block_t_id === block.id || b.block_t_id === block.t_id,\n );\n\n if (assemblyBlock) {\n actions = assemblyBlock.actions || {};\n attributes = {\n ...assemblyBlock.attributes,\n ...attributes,\n };\n }\n }\n\n const defaultAttributes: Record<string, any> = {};\n if (block.attributes) {\n Object.entries(block.attributes).forEach(\n ([key, attrDef]: [string, any]) => {\n if (\n attrDef &&\n typeof attrDef === 'object' &&\n 'default' in attrDef\n ) {\n defaultAttributes[key] = attrDef.default;\n }\n },\n );\n }\n\n const mergedAttributes: Record<string, any> = { ...defaultAttributes };\n\n if (attributes && typeof attributes === 'object') {\n Object.entries(attributes).forEach(([key, value]) => {\n if (typeof value !== 'object' || value === null) {\n mergedAttributes[key] = value;\n }\n });\n }\n\n if (state.attributes && typeof state.attributes === 'object') {\n Object.entries(state.attributes).forEach(([key, value]) => {\n if (typeof value !== 'object' || value === null) {\n mergedAttributes[key] = value;\n }\n });\n }\n\n state.attributes = { ...mergedAttributes };\n this.stateManager.setBlockState(block.id, state);\n\n const templateContext = {\n attributes: mergedAttributes,\n actions,\n blockId: block.id,\n actionResults: state.actionResults || {},\n };\n\n this.logger.debug('Template context', {\n blockId: block.id,\n attributes: templateContext.attributes,\n hasActions: !!actions,\n actionKeys: Object.keys(actions),\n rawState: state,\n mergedAttributes: mergedAttributes,\n });\n\n let html = await this.templateEngine.render(\n block.template || '',\n templateContext,\n );\n\n if (this.shouldProcessHashLinks(options)) {\n html = await this.processHashLinks(html, block, options);\n }\n\n if (options.container && typeof window !== 'undefined') {\n const container =\n typeof options.container === 'string'\n ? document.querySelector(options.container)\n : options.container;\n\n if (container instanceof HTMLElement) {\n container.innerHTML = html;\n\n if (block.styles) {\n this.applyStyles(block.id, block.styles);\n }\n\n this.setupEventHandlers(container, block.id);\n\n return {\n element: container,\n html,\n cleanup: () => this.cleanup(block.id),\n };\n }\n }\n\n return { html };\n } catch (error) {\n this.logger.error('Block render failed', {\n blockId: block.id,\n error,\n });\n throw error;\n }\n }\n\n /**\n * Apply block styles\n */\n private applyStyles(blockId: string, styles: string): void {\n if (typeof document === 'undefined') return;\n\n const styleId = `hashlink-styles-${blockId}`;\n let styleElement = document.getElementById(styleId);\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n styleElement.textContent = styles;\n }\n\n /**\n * Setup event handlers for block\n */\n private setupEventHandlers(container: HTMLElement, blockId: string): void {\n this.stateManager.onStateChange(blockId, state => {\n this.updateBlockUI(container, state);\n });\n\n container.querySelectorAll('[data-action]').forEach(element => {\n element.addEventListener('click', async e => {\n e.preventDefault();\n const actionTopicId = (element as HTMLElement).dataset.action;\n const paramsStr = (element as HTMLElement).dataset.params;\n\n this.logger.debug('Action button clicked', {\n actionTopicId,\n paramsStr,\n hasAction: !!actionTopicId,\n });\n\n if (actionTopicId) {\n await this.executeAction(blockId, actionTopicId, paramsStr);\n }\n });\n });\n }\n\n /**\n * Update the block display by re-rendering with new state\n */\n private async updateBlockDisplay(\n blockId: string,\n newState: BlockState,\n ): Promise<void> {\n try {\n this.logger.debug('updateBlockDisplay called', { blockId, newState });\n\n const blockElement = document.querySelector(\n `[data-block-id=\"${blockId}\"]`,\n );\n\n if (!blockElement || !blockElement.parentElement) {\n this.logger.warn('Block element not found for re-render', { blockId });\n return;\n }\n\n const container = blockElement.parentElement;\n\n if (\n this.currentBlock &&\n this.currentBlock.id === blockId &&\n this.currentOptions\n ) {\n const updatedOptions = {\n ...this.currentOptions,\n container,\n initialState: newState,\n };\n\n const renderResult = await this.render(\n this.currentBlock,\n updatedOptions,\n );\n\n this.logger.debug('Block re-rendered with updated state', {\n blockId,\n newState,\n });\n } else {\n }\n } catch (error) {\n this.logger.error('Failed to re-render block', {\n blockId,\n error: error.message,\n });\n }\n }\n\n /**\n * Execute a WASM action\n */\n private async executeAction(\n blockId: string,\n actionTopicId: string,\n paramsStr?: string,\n ): Promise<void> {\n try {\n this.logger.debug('Executing action', { blockId, actionTopicId });\n\n let params = {};\n if (paramsStr) {\n try {\n params = JSON.parse(paramsStr);\n } catch (e) {\n this.logger.warn('Failed to parse action params', { paramsStr });\n }\n }\n\n const currentState = this.stateManager.getBlockState(blockId) || {\n attributes: {},\n actionResults: {},\n };\n\n if (this.wasmExecutor && this.actionRegistry) {\n this.logger.debug('Looking up action in registry', { actionTopicId });\n\n const action =\n await this.actionRegistry.getActionByTopicId(actionTopicId);\n\n this.logger.debug('Action lookup result', {\n found: !!action,\n actionTopicId,\n actionData: action,\n });\n\n if (!action) {\n throw new Error(`Action not found: ${actionTopicId}`);\n }\n\n this.logger.debug('Executing WASM', {\n actionData: action,\n params,\n state: currentState.attributes,\n });\n\n const result = await this.wasmExecutor.execute(action, {\n method: 'POST',\n params,\n state: currentState.attributes,\n });\n\n this.logger.debug('WASM execution result', { result });\n\n if (result.success && result.data) {\n const operation = (params as any).operation || 'default';\n\n let wasmData = result.data;\n if (wasmData.success && wasmData.data) {\n wasmData = wasmData.data;\n }\n\n const newState = {\n ...currentState,\n attributes: {\n ...currentState.attributes,\n ...wasmData,\n },\n actionResults: {\n ...currentState.actionResults,\n [operation]: wasmData,\n },\n };\n\n this.stateManager.updateBlockState(blockId, newState);\n\n await this.updateBlockDisplay(blockId, newState);\n } else {\n this.logger.error('Action execution failed', { result });\n }\n } else {\n this.stateManager.sendMessage(blockId, 'action', {\n action: actionTopicId,\n params,\n });\n }\n } catch (error) {\n this.logger.error('Failed to execute action', {\n blockId,\n actionTopicId,\n error: error.message,\n });\n\n this.stateManager.sendMessage(blockId, 'action-error', {\n action: actionTopicId,\n error: error.message,\n });\n }\n }\n\n /**\n * Update block UI on state change\n */\n private updateBlockUI(container: HTMLElement, state: BlockState): void {\n Object.entries(state).forEach(([key, value]) => {\n const elements = container.querySelectorAll(`[data-bind=\"${key}\"]`);\n elements.forEach(element => {\n if (element instanceof HTMLElement) {\n element.textContent = String(value);\n }\n });\n });\n }\n\n /**\n * Cleanup block resources\n */\n private cleanup(blockId: string): void {\n const styleElement = document.getElementById(`hashlink-styles-${blockId}`);\n if (styleElement) {\n styleElement.remove();\n }\n\n this.stateManager.removeBlockState(blockId);\n }\n\n /**\n * Check if HashLink processing should be enabled\n */\n private shouldProcessHashLinks(options: RenderOptions): boolean {\n const depth = options.depth || 0;\n const maxDepth = options.maxDepth || this.MAX_DEPTH;\n\n if (depth >= maxDepth) {\n this.logger.warn(\n 'Max render depth reached, skipping HashLink processing',\n {\n depth,\n maxDepth,\n },\n );\n return false;\n }\n\n return !!(options.network && (options.blockLoader || this.blockLoader));\n }\n\n /**\n * Initialize HashLink resolver if needed\n */\n private ensureHashLinkResolver(options: RenderOptions): void {\n if (!this.hashLinkResolver && options.network) {\n this.blockLoader = options.blockLoader || this.blockLoader;\n this.hrlResolver = options.hrlResolver || this.hrlResolver;\n\n if (this.blockLoader && this.hrlResolver) {\n this.hashLinkResolver = new HashLinkResolver(\n this.logger,\n this.blockLoader,\n this.hrlResolver,\n options.network,\n );\n }\n }\n }\n\n /**\n * Process HashLinks in rendered HTML\n */\n private async processHashLinks(\n html: string,\n parentBlock: BlockDefinitionWithUI,\n options: RenderOptions,\n ): Promise<string> {\n this.ensureHashLinkResolver(options);\n\n if (!this.hashLinkResolver) {\n this.logger.warn('HashLink resolver not available, skipping processing');\n return html;\n }\n\n this.hashLinkResolver.pushRenderStack(parentBlock.id);\n\n try {\n const references = await this.hashLinkScanner.scanTemplate(html);\n\n if (references.length === 0) {\n return html;\n }\n\n this.logger.debug('Processing HashLinks', {\n parentBlockId: parentBlock.id,\n referenceCount: references.length,\n });\n\n const parentContext: RenderContext = {\n blockId: parentBlock.id,\n depth: (options.depth || 0) + 1,\n parentContext: options.parentContext,\n attributes: options.initialState?.attributes || {},\n actions: {},\n assembly: this.assembly,\n maxDepth: options.maxDepth || this.MAX_DEPTH,\n };\n\n if (this.assembly) {\n const assemblyBlock = this.assembly.state?.blocks?.find(\n b =>\n b.block_t_id === parentBlock.id ||\n b.block_t_id === parentBlock.t_id,\n );\n if (assemblyBlock?.actions) {\n parentContext.actions = assemblyBlock.actions;\n }\n }\n\n let processedHtml = html;\n\n for (let i = 0; i < references.length; i++) {\n const ref = references[i];\n\n try {\n const resolved = await this.hashLinkResolver.resolveReference(\n ref,\n parentContext,\n );\n\n if (resolved.error) {\n this.logger.error('Failed to resolve HashLink', {\n uri: ref.uri,\n error: resolved.error,\n });\n\n const errorHtml = `<!-- HashLink Error: ${resolved.error} -->`;\n processedHtml = processedHtml.replace(ref.placeholder, errorHtml);\n continue;\n }\n\n let childHtml: string;\n\n if (resolved.definition) {\n const childBlock: BlockDefinitionWithUI = {\n id: resolved.blockId,\n template: resolved.template || '',\n attributes: resolved.definition.attributes,\n p: 'hcs-12',\n op: 'register',\n name: resolved.definition.name,\n version: '1.0.0',\n title: resolved.definition.title,\n description: resolved.definition.description,\n };\n\n const childState = {\n attributes: resolved.attributes,\n actionResults: {},\n };\n\n const childTemplateContext = {\n attributes: resolved.attributes,\n actions: resolved.actions,\n blockId: resolved.blockId,\n actionResults: {},\n };\n\n if (resolved.template) {\n childHtml = await this.templateEngine.render(\n resolved.template,\n childTemplateContext,\n );\n\n const childOptions: RenderOptions = {\n ...options,\n depth: parentContext.depth,\n parentContext,\n initialState: childState,\n };\n\n if (this.shouldProcessHashLinks(childOptions)) {\n childHtml = await this.processHashLinks(\n childHtml,\n childBlock,\n childOptions,\n );\n }\n } else {\n childHtml = '<!-- Block has no template -->';\n }\n } else if (resolved.template) {\n childHtml = resolved.template;\n } else {\n childHtml = '<!-- Empty block -->';\n }\n\n if (ref.loading === 'lazy') {\n childHtml = this.wrapLazyLoad(childHtml, ref);\n }\n\n processedHtml = processedHtml.replace(ref.placeholder, childHtml);\n } catch (error) {\n this.logger.error('Error processing HashLink', {\n uri: ref.uri,\n error: error.message,\n });\n\n const errorHtml = `<!-- HashLink Error: ${error.message} -->`;\n processedHtml = processedHtml.replace(ref.placeholder, errorHtml);\n }\n }\n\n return processedHtml;\n } finally {\n this.hashLinkResolver.popRenderStack(parentBlock.id);\n }\n }\n\n /**\n * Wrap content for lazy loading\n */\n private wrapLazyLoad(html: string, ref: any): string {\n const wrapperId = `lazy-${ref.uri.replace(/[^a-zA-Z0-9]/g, '-')}`;\n return `\n <div id=\"${wrapperId}\" class=\"hashlink-lazy-container\" data-hashlink-lazy=\"${ref.uri}\">\n <div class=\"hashlink-lazy-placeholder\">Loading...</div>\n <template class=\"hashlink-lazy-content\">${html}</template>\n </div>\n `;\n }\n}\n"],"names":[],"mappings":"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"}