@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.d5edcec.80

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 (475) 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-12/validation/schemas.d.ts +8 -8
  12. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  13. package/dist/cjs/hcs-15/browser.d.ts +2 -0
  14. package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
  15. package/dist/cjs/hcs-15/sdk.d.ts +7 -1
  16. package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
  17. package/dist/cjs/hcs-15/tx.d.ts +4 -0
  18. package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
  19. package/dist/cjs/hcs-15/types.d.ts +16 -1
  20. package/dist/cjs/hcs-15/types.d.ts.map +1 -1
  21. package/dist/cjs/hcs-16/browser.d.ts +11 -2
  22. package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
  23. package/dist/cjs/hcs-16/sdk.d.ts +62 -1
  24. package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
  25. package/dist/cjs/hcs-16/tx.d.ts +21 -3
  26. package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
  27. package/dist/cjs/hcs-17/base-client.d.ts +1 -0
  28. package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
  29. package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
  30. package/dist/cjs/hcs-17/tx.d.ts +2 -0
  31. package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
  32. package/dist/cjs/hcs-17/types.d.ts +4 -0
  33. package/dist/cjs/hcs-17/types.d.ts.map +1 -1
  34. package/dist/cjs/hcs-21/types.d.ts +75 -75
  35. package/dist/cjs/index.d.ts.map +1 -1
  36. package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
  37. package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
  38. package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
  39. package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
  40. package/dist/cjs/services/registry-broker/client/base-client.d.ts +70 -0
  41. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
  42. package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
  43. package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
  44. package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
  45. package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
  46. package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
  47. package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
  48. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  49. package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  50. package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
  51. package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
  52. package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
  53. package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
  54. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  55. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  56. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
  57. package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  58. package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
  59. package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
  60. package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
  61. package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
  62. package/dist/cjs/services/registry-broker/client.d.ts +2 -205
  63. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  64. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  65. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  66. package/dist/cjs/services/registry-broker/schemas.d.ts +2509 -816
  67. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  68. package/dist/cjs/services/registry-broker/types.d.ts +64 -2
  69. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  70. package/dist/cjs/standards-sdk.cjs +3 -3
  71. package/dist/cjs/standards-sdk.cjs.map +1 -1
  72. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  73. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  74. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  75. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  76. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  77. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  78. package/dist/es/hcs-10/sdk.d.ts +8 -0
  79. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  80. package/dist/es/hcs-11/client.d.ts +2 -2
  81. package/dist/es/hcs-11/client.d.ts.map +1 -1
  82. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  83. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  84. package/dist/es/hcs-11/types.d.ts +1 -0
  85. package/dist/es/hcs-11/types.d.ts.map +1 -1
  86. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  87. package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
  88. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  89. package/dist/es/hcs-15/browser.d.ts +2 -0
  90. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  91. package/dist/es/hcs-15/sdk.d.ts +7 -1
  92. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  93. package/dist/es/hcs-15/tx.d.ts +4 -0
  94. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  95. package/dist/es/hcs-15/types.d.ts +16 -1
  96. package/dist/es/hcs-15/types.d.ts.map +1 -1
  97. package/dist/es/hcs-16/browser.d.ts +11 -2
  98. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  99. package/dist/es/hcs-16/sdk.d.ts +62 -1
  100. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  101. package/dist/es/hcs-16/tx.d.ts +21 -3
  102. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  103. package/dist/es/hcs-17/base-client.d.ts +1 -0
  104. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  105. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  106. package/dist/es/hcs-17/tx.d.ts +2 -0
  107. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  108. package/dist/es/hcs-17/types.d.ts +4 -0
  109. package/dist/es/hcs-17/types.d.ts.map +1 -1
  110. package/dist/es/hcs-21/types.d.ts +75 -75
  111. package/dist/es/index.d.ts.map +1 -1
  112. package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
  113. package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
  114. package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
  115. package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
  116. package/dist/es/services/registry-broker/client/base-client.d.ts +70 -0
  117. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
  118. package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
  119. package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
  120. package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
  121. package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
  122. package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
  123. package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
  124. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
  125. package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
  126. package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
  127. package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
  128. package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
  129. package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
  130. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  131. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  132. package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
  133. package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
  134. package/dist/es/services/registry-broker/client/search.d.ts +19 -0
  135. package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
  136. package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
  137. package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
  138. package/dist/es/services/registry-broker/client.d.ts +2 -205
  139. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  140. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  141. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  142. package/dist/es/services/registry-broker/schemas.d.ts +2509 -816
  143. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  144. package/dist/es/services/registry-broker/types.d.ts +64 -2
  145. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  146. package/dist/es/standards-sdk.es.js +148 -133
  147. package/dist/es/standards-sdk.es.js.map +1 -1
  148. package/dist/es/standards-sdk.es10.js +70 -90
  149. package/dist/es/standards-sdk.es10.js.map +1 -1
  150. package/dist/es/standards-sdk.es100.js +229 -26
  151. package/dist/es/standards-sdk.es100.js.map +1 -1
  152. package/dist/es/standards-sdk.es101.js +109 -228
  153. package/dist/es/standards-sdk.es101.js.map +1 -1
  154. package/dist/es/standards-sdk.es102.js +15 -94
  155. package/dist/es/standards-sdk.es102.js.map +1 -1
  156. package/dist/es/standards-sdk.es103.js +80 -30
  157. package/dist/es/standards-sdk.es103.js.map +1 -1
  158. package/dist/es/standards-sdk.es104.js +27 -80
  159. package/dist/es/standards-sdk.es104.js.map +1 -1
  160. package/dist/es/standards-sdk.es105.js +136 -25
  161. package/dist/es/standards-sdk.es105.js.map +1 -1
  162. package/dist/es/standards-sdk.es106.js +27 -140
  163. package/dist/es/standards-sdk.es106.js.map +1 -1
  164. package/dist/es/standards-sdk.es107.js +20 -27
  165. package/dist/es/standards-sdk.es107.js.map +1 -1
  166. package/dist/es/standards-sdk.es108.js +156 -18
  167. package/dist/es/standards-sdk.es108.js.map +1 -1
  168. package/dist/es/standards-sdk.es109.js +198 -148
  169. package/dist/es/standards-sdk.es109.js.map +1 -1
  170. package/dist/es/standards-sdk.es11.js +121 -45
  171. package/dist/es/standards-sdk.es11.js.map +1 -1
  172. package/dist/es/standards-sdk.es110.js +747 -160
  173. package/dist/es/standards-sdk.es110.js.map +1 -1
  174. package/dist/es/standards-sdk.es111.js +9 -786
  175. package/dist/es/standards-sdk.es111.js.map +1 -1
  176. package/dist/es/standards-sdk.es112.js +567 -13
  177. package/dist/es/standards-sdk.es112.js.map +1 -1
  178. package/dist/es/standards-sdk.es113.js +576 -541
  179. package/dist/es/standards-sdk.es113.js.map +1 -1
  180. package/dist/es/standards-sdk.es114.js +12 -601
  181. package/dist/es/standards-sdk.es114.js.map +1 -1
  182. package/dist/es/standards-sdk.es115.js +2 -13
  183. package/dist/es/standards-sdk.es115.js.map +1 -1
  184. package/dist/es/standards-sdk.es116.js +87 -2
  185. package/dist/es/standards-sdk.es116.js.map +1 -1
  186. package/dist/es/standards-sdk.es117.js +37 -80
  187. package/dist/es/standards-sdk.es117.js.map +1 -1
  188. package/dist/es/standards-sdk.es118.js +2 -39
  189. package/dist/es/standards-sdk.es118.js.map +1 -1
  190. package/dist/es/standards-sdk.es119.js +231 -2
  191. package/dist/es/standards-sdk.es119.js.map +1 -1
  192. package/dist/es/standards-sdk.es12.js +60 -159
  193. package/dist/es/standards-sdk.es12.js.map +1 -1
  194. package/dist/es/standards-sdk.es120.js +1110 -193
  195. package/dist/es/standards-sdk.es120.js.map +1 -1
  196. package/dist/es/standards-sdk.es121.js +225 -1059
  197. package/dist/es/standards-sdk.es121.js.map +1 -1
  198. package/dist/es/standards-sdk.es122.js +419 -303
  199. package/dist/es/standards-sdk.es122.js.map +1 -1
  200. package/dist/es/standards-sdk.es123.js +351 -418
  201. package/dist/es/standards-sdk.es123.js.map +1 -1
  202. package/dist/es/standards-sdk.es124.js +872 -347
  203. package/dist/es/standards-sdk.es124.js.map +1 -1
  204. package/dist/es/standards-sdk.es125.js +182 -854
  205. package/dist/es/standards-sdk.es125.js.map +1 -1
  206. package/dist/es/standards-sdk.es126.js +1512 -153
  207. package/dist/es/standards-sdk.es126.js.map +1 -1
  208. package/dist/es/standards-sdk.es127.js +157 -1547
  209. package/dist/es/standards-sdk.es127.js.map +1 -1
  210. package/dist/es/standards-sdk.es128.js +184 -2190
  211. package/dist/es/standards-sdk.es128.js.map +1 -1
  212. package/dist/es/standards-sdk.es129.js +100 -63
  213. package/dist/es/standards-sdk.es129.js.map +1 -1
  214. package/dist/es/standards-sdk.es13.js +200 -60
  215. package/dist/es/standards-sdk.es13.js.map +1 -1
  216. package/dist/es/standards-sdk.es130.js +112 -78
  217. package/dist/es/standards-sdk.es130.js.map +1 -1
  218. package/dist/es/standards-sdk.es131.js +232 -144
  219. package/dist/es/standards-sdk.es131.js.map +1 -1
  220. package/dist/es/standards-sdk.es132.js +181 -8
  221. package/dist/es/standards-sdk.es132.js.map +1 -1
  222. package/dist/es/standards-sdk.es133.js +118 -82
  223. package/dist/es/standards-sdk.es133.js.map +1 -1
  224. package/dist/es/standards-sdk.es134.js +322 -61
  225. package/dist/es/standards-sdk.es134.js.map +1 -1
  226. package/dist/es/standards-sdk.es135.js +464 -28
  227. package/dist/es/standards-sdk.es135.js.map +1 -1
  228. package/dist/es/standards-sdk.es136.js +14 -135
  229. package/dist/es/standards-sdk.es136.js.map +1 -1
  230. package/dist/es/standards-sdk.es137.js +78 -39
  231. package/dist/es/standards-sdk.es137.js.map +1 -1
  232. package/dist/es/standards-sdk.es138.js +85 -764
  233. package/dist/es/standards-sdk.es138.js.map +1 -1
  234. package/dist/es/standards-sdk.es139.js +135 -12250
  235. package/dist/es/standards-sdk.es139.js.map +1 -1
  236. package/dist/es/standards-sdk.es14.js +149 -178
  237. package/dist/es/standards-sdk.es14.js.map +1 -1
  238. package/dist/es/standards-sdk.es140.js +7 -56
  239. package/dist/es/standards-sdk.es140.js.map +1 -1
  240. package/dist/es/standards-sdk.es141.js +72 -68
  241. package/dist/es/standards-sdk.es141.js.map +1 -1
  242. package/dist/es/standards-sdk.es142.js +61 -13
  243. package/dist/es/standards-sdk.es142.js.map +1 -1
  244. package/dist/es/standards-sdk.es143.js +30 -172
  245. package/dist/es/standards-sdk.es143.js.map +1 -1
  246. package/dist/es/standards-sdk.es144.js +34 -322
  247. package/dist/es/standards-sdk.es144.js.map +1 -1
  248. package/dist/es/standards-sdk.es145.js +28 -346
  249. package/dist/es/standards-sdk.es145.js.map +1 -1
  250. package/dist/es/standards-sdk.es146.js +112 -427
  251. package/dist/es/standards-sdk.es146.js.map +1 -1
  252. package/dist/es/standards-sdk.es147.js +40 -329
  253. package/dist/es/standards-sdk.es147.js.map +1 -1
  254. package/dist/es/standards-sdk.es148.js +12279 -66
  255. package/dist/es/standards-sdk.es148.js.map +1 -1
  256. package/dist/es/standards-sdk.es149.js +961 -0
  257. package/dist/es/standards-sdk.es149.js.map +1 -0
  258. package/dist/es/standards-sdk.es15.js +152 -151
  259. package/dist/es/standards-sdk.es15.js.map +1 -1
  260. package/dist/es/standards-sdk.es150.js +20 -0
  261. package/dist/es/standards-sdk.es150.js.map +1 -0
  262. package/dist/es/standards-sdk.es151.js +59 -0
  263. package/dist/es/standards-sdk.es151.js.map +1 -0
  264. package/dist/es/standards-sdk.es152.js +87 -0
  265. package/dist/es/standards-sdk.es152.js.map +1 -0
  266. package/dist/es/standards-sdk.es153.js +175 -0
  267. package/dist/es/standards-sdk.es153.js.map +1 -0
  268. package/dist/es/standards-sdk.es154.js +325 -0
  269. package/dist/es/standards-sdk.es154.js.map +1 -0
  270. package/dist/es/standards-sdk.es155.js +349 -0
  271. package/dist/es/standards-sdk.es155.js.map +1 -0
  272. package/dist/es/standards-sdk.es156.js +456 -0
  273. package/dist/es/standards-sdk.es156.js.map +1 -0
  274. package/dist/es/standards-sdk.es157.js +334 -0
  275. package/dist/es/standards-sdk.es157.js.map +1 -0
  276. package/dist/es/standards-sdk.es158.js +79 -0
  277. package/dist/es/standards-sdk.es158.js.map +1 -0
  278. package/dist/es/standards-sdk.es159.js +242 -0
  279. package/dist/es/standards-sdk.es159.js.map +1 -0
  280. package/dist/es/standards-sdk.es16.js +917 -136
  281. package/dist/es/standards-sdk.es16.js.map +1 -1
  282. package/dist/es/standards-sdk.es160.js +247 -0
  283. package/dist/es/standards-sdk.es160.js.map +1 -0
  284. package/dist/es/standards-sdk.es17.js +23 -938
  285. package/dist/es/standards-sdk.es17.js.map +1 -1
  286. package/dist/es/standards-sdk.es18.js +2422 -24
  287. package/dist/es/standards-sdk.es18.js.map +1 -1
  288. package/dist/es/standards-sdk.es19.js +826 -2075
  289. package/dist/es/standards-sdk.es19.js.map +1 -1
  290. package/dist/es/standards-sdk.es2.js +654 -189
  291. package/dist/es/standards-sdk.es2.js.map +1 -1
  292. package/dist/es/standards-sdk.es20.js +205 -1086
  293. package/dist/es/standards-sdk.es20.js.map +1 -1
  294. package/dist/es/standards-sdk.es21.js +858 -221
  295. package/dist/es/standards-sdk.es21.js.map +1 -1
  296. package/dist/es/standards-sdk.es22.js +179 -903
  297. package/dist/es/standards-sdk.es22.js.map +1 -1
  298. package/dist/es/standards-sdk.es23.js +164 -179
  299. package/dist/es/standards-sdk.es23.js.map +1 -1
  300. package/dist/es/standards-sdk.es24.js +62 -118
  301. package/dist/es/standards-sdk.es24.js.map +1 -1
  302. package/dist/es/standards-sdk.es25.js +377 -52
  303. package/dist/es/standards-sdk.es25.js.map +1 -1
  304. package/dist/es/standards-sdk.es26.js +36 -394
  305. package/dist/es/standards-sdk.es26.js.map +1 -1
  306. package/dist/es/standards-sdk.es27.js +901 -50
  307. package/dist/es/standards-sdk.es27.js.map +1 -1
  308. package/dist/es/standards-sdk.es28.js +134 -897
  309. package/dist/es/standards-sdk.es28.js.map +1 -1
  310. package/dist/es/standards-sdk.es29.js +7 -134
  311. package/dist/es/standards-sdk.es29.js.map +1 -1
  312. package/dist/es/standards-sdk.es3.js +63 -680
  313. package/dist/es/standards-sdk.es3.js.map +1 -1
  314. package/dist/es/standards-sdk.es30.js +344 -7
  315. package/dist/es/standards-sdk.es30.js.map +1 -1
  316. package/dist/es/standards-sdk.es31.js +302 -287
  317. package/dist/es/standards-sdk.es31.js.map +1 -1
  318. package/dist/es/standards-sdk.es32.js +94 -322
  319. package/dist/es/standards-sdk.es32.js.map +1 -1
  320. package/dist/es/standards-sdk.es33.js +458 -101
  321. package/dist/es/standards-sdk.es33.js.map +1 -1
  322. package/dist/es/standards-sdk.es34.js +132 -451
  323. package/dist/es/standards-sdk.es34.js.map +1 -1
  324. package/dist/es/standards-sdk.es35.js +216 -130
  325. package/dist/es/standards-sdk.es35.js.map +1 -1
  326. package/dist/es/standards-sdk.es36.js +274 -191
  327. package/dist/es/standards-sdk.es36.js.map +1 -1
  328. package/dist/es/standards-sdk.es37.js +148 -87
  329. package/dist/es/standards-sdk.es37.js.map +1 -1
  330. package/dist/es/standards-sdk.es38.js +183 -320
  331. package/dist/es/standards-sdk.es38.js.map +1 -1
  332. package/dist/es/standards-sdk.es39.js +238 -161
  333. package/dist/es/standards-sdk.es39.js.map +1 -1
  334. package/dist/es/standards-sdk.es4.js +425 -63
  335. package/dist/es/standards-sdk.es4.js.map +1 -1
  336. package/dist/es/standards-sdk.es40.js +136 -254
  337. package/dist/es/standards-sdk.es40.js.map +1 -1
  338. package/dist/es/standards-sdk.es41.js +225 -176
  339. package/dist/es/standards-sdk.es41.js.map +1 -1
  340. package/dist/es/standards-sdk.es42.js +199 -261
  341. package/dist/es/standards-sdk.es42.js.map +1 -1
  342. package/dist/es/standards-sdk.es43.js +237 -199
  343. package/dist/es/standards-sdk.es43.js.map +1 -1
  344. package/dist/es/standards-sdk.es44.js +209 -201
  345. package/dist/es/standards-sdk.es44.js.map +1 -1
  346. package/dist/es/standards-sdk.es45.js +305 -201
  347. package/dist/es/standards-sdk.es45.js.map +1 -1
  348. package/dist/es/standards-sdk.es46.js +371 -261
  349. package/dist/es/standards-sdk.es46.js.map +1 -1
  350. package/dist/es/standards-sdk.es47.js +316 -371
  351. package/dist/es/standards-sdk.es47.js.map +1 -1
  352. package/dist/es/standards-sdk.es48.js +404 -336
  353. package/dist/es/standards-sdk.es48.js.map +1 -1
  354. package/dist/es/standards-sdk.es49.js +83 -449
  355. package/dist/es/standards-sdk.es49.js.map +1 -1
  356. package/dist/es/standards-sdk.es5.js +232 -354
  357. package/dist/es/standards-sdk.es5.js.map +1 -1
  358. package/dist/es/standards-sdk.es50.js +179 -89
  359. package/dist/es/standards-sdk.es50.js.map +1 -1
  360. package/dist/es/standards-sdk.es51.js +231 -165
  361. package/dist/es/standards-sdk.es51.js.map +1 -1
  362. package/dist/es/standards-sdk.es52.js +25 -262
  363. package/dist/es/standards-sdk.es52.js.map +1 -1
  364. package/dist/es/standards-sdk.es53.js +56 -26
  365. package/dist/es/standards-sdk.es53.js.map +1 -1
  366. package/dist/es/standards-sdk.es54.js +12 -57
  367. package/dist/es/standards-sdk.es54.js.map +1 -1
  368. package/dist/es/standards-sdk.es55.js +49 -12
  369. package/dist/es/standards-sdk.es55.js.map +1 -1
  370. package/dist/es/standards-sdk.es56.js +115 -43
  371. package/dist/es/standards-sdk.es56.js.map +1 -1
  372. package/dist/es/standards-sdk.es57.js +42 -115
  373. package/dist/es/standards-sdk.es57.js.map +1 -1
  374. package/dist/es/standards-sdk.es58.js +52 -43
  375. package/dist/es/standards-sdk.es58.js.map +1 -1
  376. package/dist/es/standards-sdk.es59.js +36 -50
  377. package/dist/es/standards-sdk.es59.js.map +1 -1
  378. package/dist/es/standards-sdk.es6.js +125 -246
  379. package/dist/es/standards-sdk.es6.js.map +1 -1
  380. package/dist/es/standards-sdk.es60.js +207 -39
  381. package/dist/es/standards-sdk.es60.js.map +1 -1
  382. package/dist/es/standards-sdk.es61.js +24 -195
  383. package/dist/es/standards-sdk.es61.js.map +1 -1
  384. package/dist/es/standards-sdk.es62.js +87 -25
  385. package/dist/es/standards-sdk.es62.js.map +1 -1
  386. package/dist/es/standards-sdk.es63.js +3 -51
  387. package/dist/es/standards-sdk.es63.js.map +1 -1
  388. package/dist/es/standards-sdk.es64.js +100 -3
  389. package/dist/es/standards-sdk.es64.js.map +1 -1
  390. package/dist/es/standards-sdk.es65.js +61 -62
  391. package/dist/es/standards-sdk.es65.js.map +1 -1
  392. package/dist/es/standards-sdk.es66.js +17 -98
  393. package/dist/es/standards-sdk.es66.js.map +1 -1
  394. package/dist/es/standards-sdk.es67.js +77 -19
  395. package/dist/es/standards-sdk.es67.js.map +1 -1
  396. package/dist/es/standards-sdk.es68.js +458 -77
  397. package/dist/es/standards-sdk.es68.js.map +1 -1
  398. package/dist/es/standards-sdk.es69.js +106 -240
  399. package/dist/es/standards-sdk.es69.js.map +1 -1
  400. package/dist/es/standards-sdk.es7.js +28 -183
  401. package/dist/es/standards-sdk.es7.js.map +1 -1
  402. package/dist/es/standards-sdk.es70.js +170 -286
  403. package/dist/es/standards-sdk.es70.js.map +1 -1
  404. package/dist/es/standards-sdk.es71.js +71 -207
  405. package/dist/es/standards-sdk.es71.js.map +1 -1
  406. package/dist/es/standards-sdk.es72.js +71 -72
  407. package/dist/es/standards-sdk.es72.js.map +1 -1
  408. package/dist/es/standards-sdk.es73.js +143 -71
  409. package/dist/es/standards-sdk.es73.js.map +1 -1
  410. package/dist/es/standards-sdk.es74.js +62 -136
  411. package/dist/es/standards-sdk.es74.js.map +1 -1
  412. package/dist/es/standards-sdk.es75.js +380 -45
  413. package/dist/es/standards-sdk.es75.js.map +1 -1
  414. package/dist/es/standards-sdk.es76.js +222 -130
  415. package/dist/es/standards-sdk.es76.js.map +1 -1
  416. package/dist/es/standards-sdk.es77.js +320 -444
  417. package/dist/es/standards-sdk.es77.js.map +1 -1
  418. package/dist/es/standards-sdk.es78.js +88 -364
  419. package/dist/es/standards-sdk.es78.js.map +1 -1
  420. package/dist/es/standards-sdk.es79.js +125 -89
  421. package/dist/es/standards-sdk.es79.js.map +1 -1
  422. package/dist/es/standards-sdk.es8.js +80 -29
  423. package/dist/es/standards-sdk.es8.js.map +1 -1
  424. package/dist/es/standards-sdk.es80.js +8 -125
  425. package/dist/es/standards-sdk.es80.js.map +1 -1
  426. package/dist/es/standards-sdk.es81.js +45 -6
  427. package/dist/es/standards-sdk.es81.js.map +1 -1
  428. package/dist/es/standards-sdk.es82.js +98 -44
  429. package/dist/es/standards-sdk.es82.js.map +1 -1
  430. package/dist/es/standards-sdk.es83.js +331 -84
  431. package/dist/es/standards-sdk.es83.js.map +1 -1
  432. package/dist/es/standards-sdk.es84.js +93 -160
  433. package/dist/es/standards-sdk.es84.js.map +1 -1
  434. package/dist/es/standards-sdk.es85.js +55 -275
  435. package/dist/es/standards-sdk.es85.js.map +1 -1
  436. package/dist/es/standards-sdk.es86.js +43 -55
  437. package/dist/es/standards-sdk.es86.js.map +1 -1
  438. package/dist/es/standards-sdk.es87.js +145 -22
  439. package/dist/es/standards-sdk.es87.js.map +1 -1
  440. package/dist/es/standards-sdk.es88.js +34 -47
  441. package/dist/es/standards-sdk.es88.js.map +1 -1
  442. package/dist/es/standards-sdk.es89.js +22 -57
  443. package/dist/es/standards-sdk.es89.js.map +1 -1
  444. package/dist/es/standards-sdk.es9.js +104 -80
  445. package/dist/es/standards-sdk.es9.js.map +1 -1
  446. package/dist/es/standards-sdk.es90.js +23 -28
  447. package/dist/es/standards-sdk.es90.js.map +1 -1
  448. package/dist/es/standards-sdk.es91.js +238 -23
  449. package/dist/es/standards-sdk.es91.js.map +1 -1
  450. package/dist/es/standards-sdk.es92.js +265 -152
  451. package/dist/es/standards-sdk.es92.js.map +1 -1
  452. package/dist/es/standards-sdk.es93.js +95 -68
  453. package/dist/es/standards-sdk.es93.js.map +1 -1
  454. package/dist/es/standards-sdk.es94.js +124 -136
  455. package/dist/es/standards-sdk.es94.js.map +1 -1
  456. package/dist/es/standards-sdk.es95.js +42 -138
  457. package/dist/es/standards-sdk.es95.js.map +1 -1
  458. package/dist/es/standards-sdk.es96.js +259 -42
  459. package/dist/es/standards-sdk.es96.js.map +1 -1
  460. package/dist/es/standards-sdk.es97.js +82 -243
  461. package/dist/es/standards-sdk.es97.js.map +1 -1
  462. package/dist/es/standards-sdk.es98.js +48 -47
  463. package/dist/es/standards-sdk.es98.js.map +1 -1
  464. package/dist/es/standards-sdk.es99.js +29 -100
  465. package/dist/es/standards-sdk.es99.js.map +1 -1
  466. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  467. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  468. package/dist/es/utils/dynamic-import.d.ts +5 -1
  469. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  470. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  471. package/package.json +15 -16
  472. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  473. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  474. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  475. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es47.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 if (typeof crypto === 'undefined' || !crypto.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 crypto.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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"}
1
+ {"version":3,"file":"standards-sdk.es47.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":"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"}