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

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 +958 -76
  255. package/dist/es/standards-sdk.es148.js.map +1 -1
  256. package/dist/es/standards-sdk.es149.js +12292 -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 +59 -0
  261. package/dist/es/standards-sdk.es150.js.map +1 -0
  262. package/dist/es/standards-sdk.es151.js +87 -0
  263. package/dist/es/standards-sdk.es151.js.map +1 -0
  264. package/dist/es/standards-sdk.es152.js +20 -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 +16 -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,355 +1,465 @@
1
- class TemplateEngine {
2
- constructor(logger) {
3
- this.templateCache = /* @__PURE__ */ new Map();
4
- this.helpers = /* @__PURE__ */ new Map();
5
- this.compiledTemplates = /* @__PURE__ */ new Map();
1
+ import { HCS } from "./standards-sdk.es2.js";
2
+ import { isSSREnvironment } from "./standards-sdk.es117.js";
3
+ class ResourceManager {
4
+ constructor(networkType, logger, hcs, options = {}) {
5
+ this.cache = /* @__PURE__ */ new Map();
6
+ this.currentCacheSize = 0;
7
+ this.supportedImageTypes = /* @__PURE__ */ new Set([
8
+ "image/png",
9
+ "image/jpeg",
10
+ "image/jpg",
11
+ "image/gif",
12
+ "image/svg+xml",
13
+ "image/webp"
14
+ ]);
15
+ this.dangerousJSPatterns = [
16
+ /eval\s*\(/g,
17
+ /Function\s*\(/g,
18
+ /setTimeout\s*\(\s*["'].*["']/g,
19
+ /setInterval\s*\(\s*["'].*["']/g,
20
+ /document\.write/g,
21
+ /innerHTML\s*=/g,
22
+ /outerHTML\s*=/g
23
+ ];
24
+ this.dangerousCSSPatterns = [
25
+ /javascript\s*:/gi,
26
+ /@import.*url\s*\(\s*["']?javascript:/gi,
27
+ /expression\s*\(/gi,
28
+ /behavior\s*:/gi
29
+ ];
6
30
  this.logger = logger;
7
- this.setupBuiltinHelpers();
31
+ this.hcs = hcs || new HCS();
32
+ this.options = {
33
+ cacheTTL: options.cacheTTL || 3e5,
34
+ maxCacheSize: options.maxCacheSize || 50 * 1024 * 1024,
35
+ maxResourceSize: options.maxResourceSize || 5 * 1024 * 1024
36
+ };
8
37
  }
9
38
  /**
10
- * Render a template with the given context
39
+ * Load CSS resource from HCS-3
11
40
  */
12
- async render(template, context = {}) {
13
- this.logger.debug("Rendering template", {
14
- templateLength: template.length,
15
- context: JSON.stringify(context, null, 2),
16
- attributesType: context.attributes ? typeof context.attributes : "undefined",
17
- contextKeys: Object.keys(context)
18
- });
41
+ async loadCSS(topicId) {
42
+ this.logger.debug("Loading CSS resource", { topicId });
19
43
  try {
20
- const cacheKey = this.getCacheKey(template);
21
- let compiled = this.templateCache.get(cacheKey);
22
- if (!compiled) {
23
- compiled = await this.compileTemplate(template);
24
- this.templateCache.set(cacheKey, compiled);
44
+ const resource = await this.loadResource(topicId);
45
+ if (resource.contentType !== "text/css") {
46
+ throw new Error(`Expected CSS resource, got ${resource.contentType}`);
25
47
  }
26
- const result = compiled.render(this.sanitizeContext(context));
27
- this.logger.debug("Template rendered successfully", {
28
- resultLength: result.length
48
+ const content = resource.content;
49
+ const sanitized = this.sanitizeCSS(content);
50
+ this.logger.debug("CSS resource loaded successfully", {
51
+ topicId,
52
+ size: content.length,
53
+ sanitized: sanitized.length !== content.length
29
54
  });
30
- return result;
55
+ return sanitized;
31
56
  } catch (error) {
32
- this.logger.error("Template rendering failed", { error, template });
57
+ this.logger.error("Failed to load CSS resource", { topicId, error });
33
58
  throw new Error(
34
- `Template rendering failed: ${error instanceof Error ? error.message : "Unknown error"}`
59
+ `Failed to load CSS resource: ${error instanceof Error ? error.message : "Unknown error"}`
35
60
  );
36
61
  }
37
62
  }
38
63
  /**
39
- * Precompile a template and store it with a name
64
+ * Load JavaScript resource from HCS-3
40
65
  */
41
- async precompile(name, template) {
42
- this.logger.debug("Precompiling template", {
43
- name,
44
- templateLength: template.length
45
- });
66
+ async loadJS(topicId) {
67
+ this.logger.debug("Loading JavaScript resource", { topicId });
46
68
  try {
47
- const compiled = await this.compileTemplate(template);
48
- this.compiledTemplates.set(name, compiled);
49
- this.logger.debug("Template precompiled successfully", { name });
69
+ const resource = await this.loadResource(topicId);
70
+ if (!resource.contentType.includes("javascript") && !resource.contentType.includes("ecmascript")) {
71
+ throw new Error(
72
+ `Expected JavaScript resource, got ${resource.contentType}`
73
+ );
74
+ }
75
+ const content = resource.content;
76
+ if (content.length > this.options.maxResourceSize) {
77
+ throw new Error("JavaScript resource too large");
78
+ }
79
+ const sanitized = this.sanitizeJavaScript(content);
80
+ this.logger.debug("JavaScript resource loaded successfully", {
81
+ topicId,
82
+ size: content.length,
83
+ sanitized: sanitized.length !== content.length
84
+ });
85
+ return sanitized;
50
86
  } catch (error) {
51
- this.logger.error("Template precompilation failed", { error, name });
87
+ this.logger.error("Failed to load JavaScript resource", {
88
+ topicId,
89
+ error
90
+ });
52
91
  throw new Error(
53
- `Template precompilation failed: ${error instanceof Error ? error.message : "Unknown error"}`
92
+ `Failed to load JavaScript resource: ${error instanceof Error ? error.message : "Unknown error"}`
54
93
  );
55
94
  }
56
95
  }
57
96
  /**
58
- * Render a precompiled template
97
+ * Load image resource from HCS-3 as Blob
59
98
  */
60
- async renderCompiled(name, context = {}) {
61
- const compiled = this.compiledTemplates.get(name);
62
- if (!compiled) {
63
- throw new Error(`Precompiled template '${name}' not found`);
64
- }
65
- this.logger.debug("Rendering precompiled template", { name });
99
+ async loadImage(topicId) {
100
+ this.logger.debug("Loading image resource", { topicId });
66
101
  try {
67
- const result = compiled.render(this.sanitizeContext(context));
68
- this.logger.debug("Precompiled template rendered successfully", { name });
69
- return result;
70
- } catch (error) {
71
- this.logger.error("Precompiled template rendering failed", {
72
- error,
73
- name
102
+ const resource = await this.loadResource(topicId);
103
+ if (!this.supportedImageTypes.has(resource.contentType)) {
104
+ throw new Error(`Unsupported image format: ${resource.contentType}`);
105
+ }
106
+ const content = resource.content;
107
+ const view = new Uint8Array(content);
108
+ const blob = new Blob([view.buffer], { type: resource.contentType });
109
+ this.logger.debug("Image resource loaded successfully", {
110
+ topicId,
111
+ size: content.length,
112
+ type: resource.contentType
74
113
  });
114
+ return blob;
115
+ } catch (error) {
116
+ this.logger.error("Failed to load image resource", { topicId, error });
75
117
  throw new Error(
76
- `Template rendering failed: ${error instanceof Error ? error.message : "Unknown error"}`
118
+ `Failed to load image resource: ${error instanceof Error ? error.message : "Unknown error"}`
77
119
  );
78
120
  }
79
121
  }
80
122
  /**
81
- * Register a custom helper function
123
+ * Load template resource from HCS-3
82
124
  */
83
- registerHelper(name, helper) {
84
- this.helpers.set(name, helper);
85
- this.logger.debug("Helper registered", { name });
125
+ async loadTemplate(topicId) {
126
+ this.logger.debug("Loading template resource", { topicId });
127
+ try {
128
+ const resource = await this.loadResource(topicId);
129
+ const content = resource.content;
130
+ this.validateTemplateSyntax(content);
131
+ const sanitized = this.sanitizeTemplate(content);
132
+ this.logger.debug("Template resource loaded successfully", {
133
+ topicId,
134
+ size: content.length
135
+ });
136
+ return sanitized;
137
+ } catch (error) {
138
+ this.logger.error("Failed to load template resource", { topicId, error });
139
+ throw new Error(
140
+ `Failed to load template resource: ${error instanceof Error ? error.message : "Unknown error"}`
141
+ );
142
+ }
86
143
  }
87
144
  /**
88
- * Clear template cache
145
+ * Load resource with integrity verification
89
146
  */
90
- clearCache() {
91
- this.templateCache.clear();
92
- this.logger.debug("Template cache cleared");
147
+ async loadWithIntegrityCheck(topicId, expectedHash) {
148
+ this.logger.debug("Loading resource with integrity check", {
149
+ topicId,
150
+ expectedHash
151
+ });
152
+ try {
153
+ const resource = await this.loadResource(topicId);
154
+ const verified = await this.verifyIntegrity(
155
+ resource.content,
156
+ expectedHash
157
+ );
158
+ if (!verified) {
159
+ throw new Error("Resource integrity verification failed");
160
+ }
161
+ this.logger.debug("Resource integrity verified", { topicId });
162
+ return {
163
+ content: resource.content,
164
+ verified,
165
+ contentType: resource.contentType
166
+ };
167
+ } catch (error) {
168
+ this.logger.error("Resource integrity check failed", { topicId, error });
169
+ throw error;
170
+ }
93
171
  }
94
172
  /**
95
- * Get cache size for testing
173
+ * Verify content integrity using SHA-256 hash
96
174
  */
97
- getCacheSize() {
98
- return this.templateCache.size;
175
+ async verifyIntegrity(content, expectedHash) {
176
+ try {
177
+ if (isSSREnvironment()) {
178
+ this.logger.warn("Integrity verification skipped in SSR environment");
179
+ return true;
180
+ }
181
+ const webCrypto = globalThis.crypto;
182
+ if (typeof webCrypto === "undefined" || !webCrypto.subtle) {
183
+ this.logger.warn(
184
+ "WebCrypto not available, skipping integrity verification"
185
+ );
186
+ return true;
187
+ }
188
+ const buffer = typeof content === "string" ? new TextEncoder().encode(content) : content;
189
+ const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
190
+ const copy = new Uint8Array(bytes);
191
+ const hashBuffer = await webCrypto.subtle.digest("SHA-256", copy.buffer);
192
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
193
+ const actualHash = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
194
+ return actualHash === expectedHash.toLowerCase();
195
+ } catch (error) {
196
+ this.logger.error("Error verifying integrity", { error });
197
+ return false;
198
+ }
99
199
  }
100
200
  /**
101
- * Compile a template string into executable function
201
+ * Load multiple dependencies in correct order
102
202
  */
103
- async compileTemplate(template) {
104
- this.validateTemplate(template);
105
- const compiled = {
106
- source: template,
107
- compiled: true,
108
- render: (context) => this.executeTemplate(template, context)
109
- };
110
- return compiled;
203
+ async loadDependencies(dependencies) {
204
+ this.logger.debug("Loading dependencies", { count: dependencies.length });
205
+ try {
206
+ this.detectCircularDependencies(dependencies);
207
+ const sorted = this.topologicalSort(dependencies);
208
+ const results = [];
209
+ for (const dep of sorted) {
210
+ let content;
211
+ switch (dep.type) {
212
+ case "css":
213
+ content = await this.loadCSS(dep.topicId);
214
+ break;
215
+ case "js":
216
+ content = await this.loadJS(dep.topicId);
217
+ break;
218
+ case "template":
219
+ content = await this.loadTemplate(dep.topicId);
220
+ break;
221
+ case "image":
222
+ const blob = await this.loadImage(dep.topicId);
223
+ content = new Uint8Array(await blob.arrayBuffer());
224
+ break;
225
+ default:
226
+ throw new Error(`Unsupported dependency type: ${dep.type}`);
227
+ }
228
+ results.push({
229
+ topicId: dep.topicId,
230
+ content,
231
+ contentType: this.getContentTypeForType(dep.type),
232
+ type: dep.type
233
+ });
234
+ }
235
+ this.logger.debug("Dependencies loaded successfully", {
236
+ count: results.length
237
+ });
238
+ return results;
239
+ } catch (error) {
240
+ this.logger.error("Failed to load dependencies", { error });
241
+ throw error;
242
+ }
111
243
  }
112
244
  /**
113
- * Execute template rendering logic
245
+ * Clear resource cache
114
246
  */
115
- executeTemplate(template, context) {
116
- let result = template;
117
- result = this.processHelpers(result, context);
118
- result = this.processLoops(result, context);
119
- result = this.processConditionals(result, context);
120
- result = this.processVariables(result, context);
121
- return result;
247
+ clearCache() {
248
+ this.cache.clear();
249
+ this.currentCacheSize = 0;
250
+ this.logger.debug("Resource cache cleared");
122
251
  }
123
252
  /**
124
- * Process conditional statements (if/unless/else)
253
+ * Get current cache size for testing
125
254
  */
126
- processConditionals(template, context) {
127
- let result = template;
128
- const nestedIfElseRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|\{#else|\{\/if))*?)\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|#else|\/if))*?)\{\{else\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|#else|\/if))*?)\{\{\/if\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
129
- result = result.replace(
130
- nestedIfElseRegex,
131
- (match, outerCondition, beforeInner, innerCondition, innerTrue, innerFalse, afterInner) => {
132
- const outerValue = this.evaluateCondition(outerCondition, context);
133
- if (!outerValue) return "";
134
- const innerValue = this.evaluateCondition(innerCondition, context);
135
- const innerResult = innerValue ? innerTrue : innerFalse;
136
- return beforeInner + innerResult + afterInner;
137
- }
138
- );
139
- const ifElseRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!else|\/if))*?)\{\{else\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
140
- result = result.replace(
141
- ifElseRegex,
142
- (match, condition, trueBranch, falseBranch) => {
143
- const conditionValue = this.evaluateCondition(condition, context);
144
- return conditionValue ? trueBranch : falseBranch;
145
- }
146
- );
147
- const ifRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
148
- result = result.replace(ifRegex, (match, condition, content) => {
149
- const conditionValue = this.evaluateCondition(condition, context);
150
- return conditionValue ? content : "";
151
- });
152
- const unlessRegex = /\{\{#unless\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/unless))*?)\{\{\/unless\}\}/gs;
153
- result = result.replace(unlessRegex, (match, condition, content) => {
154
- const conditionValue = this.evaluateCondition(condition, context);
155
- return !conditionValue ? content : "";
156
- });
157
- return result;
255
+ getCacheSize() {
256
+ return this.currentCacheSize;
158
257
  }
159
258
  /**
160
- * Process loop statements (each)
259
+ * Load resource with caching
161
260
  */
162
- processLoops(template, context) {
163
- let result = template;
164
- const eachRegex = /\{\{#each\s+([^}]+)\}\}(.*?)\{\{\/each\}\}/gs;
165
- result = result.replace(eachRegex, (match, variable, content) => {
166
- const items = this.getNestedValue(variable, context);
167
- if (!items) return "";
168
- let loopResult = "";
169
- if (Array.isArray(items)) {
170
- items.forEach((item, index) => {
171
- let itemContent = content;
172
- itemContent = itemContent.replace(
173
- /\{\{this\}\}/g,
174
- this.escapeHtml(String(item))
175
- );
176
- itemContent = itemContent.replace(/\{\{@index\}\}/g, String(index));
177
- if (typeof item === "object" && item !== null) {
178
- for (const [key, value] of Object.entries(item)) {
179
- const regex = new RegExp(`\\{\\{${key}\\}\\}`, "g");
180
- itemContent = itemContent.replace(
181
- regex,
182
- this.escapeHtml(String(value))
183
- );
184
- }
185
- }
186
- itemContent = itemContent.replace(
187
- /\{\{\.\.\/([^}]+)\}\}/g,
188
- (parentMatch, parentPath) => {
189
- const parentValue = this.getNestedValue(parentPath, context);
190
- return this.escapeHtml(String(parentValue || ""));
191
- }
192
- );
193
- loopResult += itemContent;
194
- });
195
- } else if (typeof items === "object") {
196
- for (const [key, value] of Object.entries(items)) {
197
- let itemContent = content;
198
- itemContent = itemContent.replace(
199
- /\{\{@key\}\}/g,
200
- this.escapeHtml(key)
201
- );
202
- itemContent = itemContent.replace(
203
- /\{\{this\}\}/g,
204
- this.escapeHtml(String(value))
205
- );
206
- loopResult += itemContent;
207
- }
208
- }
209
- return loopResult;
210
- });
211
- return result;
261
+ async loadResource(topicId) {
262
+ const cached = this.getFromCache(topicId);
263
+ if (cached) {
264
+ this.logger.debug("Resource loaded from cache", { topicId });
265
+ return cached;
266
+ }
267
+ const blob = await this.hcs.retrieveHCS1Data(topicId);
268
+ const contentType = blob.type || "application/octet-stream";
269
+ let content;
270
+ if (contentType.startsWith("text/") || contentType.includes("javascript") || contentType.includes("json")) {
271
+ content = await blob.text();
272
+ } else {
273
+ content = new Uint8Array(await blob.arrayBuffer());
274
+ }
275
+ const resource = {
276
+ content,
277
+ contentType,
278
+ size: blob.size
279
+ };
280
+ this.addToCache(topicId, resource);
281
+ return resource;
212
282
  }
213
283
  /**
214
- * Process variable substitutions
284
+ * Get resource from cache if valid
215
285
  */
216
- processVariables(template, context) {
217
- let result = template;
218
- const tripleRegex = /\{\{\{([^}]+)\}\}\}/g;
219
- result = result.replace(tripleRegex, (match, variable) => {
220
- const value = this.getNestedValue(variable.trim(), context);
221
- return this.sanitizeHtml(String(value || ""));
222
- });
223
- const doubleRegex = /\{\{([^}#/]+)\}\}/g;
224
- result = result.replace(doubleRegex, (match, variable) => {
225
- const trimmed = variable.trim();
226
- if (trimmed.startsWith("#") || trimmed.startsWith("/") || trimmed.startsWith("else")) {
227
- return match;
228
- }
229
- const value = this.getNestedValue(trimmed, context);
230
- if (value === 0 || value === false) {
231
- return this.escapeHtml(String(value));
232
- }
233
- return this.escapeHtml(String(value || ""));
234
- });
235
- return result;
286
+ getFromCache(topicId) {
287
+ const entry = this.cache.get(topicId);
288
+ if (!entry) return null;
289
+ if (Date.now() - entry.timestamp > this.options.cacheTTL) {
290
+ this.removeFromCache(topicId);
291
+ return null;
292
+ }
293
+ return entry.data;
236
294
  }
237
295
  /**
238
- * Process helper functions
296
+ * Add resource to cache with size management
239
297
  */
240
- processHelpers(template, context) {
241
- let result = template;
242
- const withRegex = /\{\{#with\s+([^}]+)\}\}(.*?)\{\{\/with\}\}/gs;
243
- result = result.replace(withRegex, (match, variable, content) => {
244
- const newContext = this.getNestedValue(variable.trim(), context);
245
- if (!newContext) return "";
246
- return this.executeTemplate(content, newContext);
247
- });
248
- for (const [helperName, helperFunc] of this.helpers) {
249
- const helperRegex = new RegExp(
250
- `\\{\\{${helperName}\\s+([^}]+)\\}\\}`,
251
- "g"
252
- );
253
- result = result.replace(helperRegex, (match, args) => {
254
- try {
255
- const argValue = this.getNestedValue(args.trim(), context);
256
- return this.escapeHtml(helperFunc.call(context, argValue));
257
- } catch (error) {
258
- this.logger.warn("Helper execution failed", { helperName, error });
259
- return "";
260
- }
261
- });
298
+ addToCache(topicId, resource) {
299
+ const size = typeof resource.content === "string" ? resource.content.length : resource.content.byteLength;
300
+ if (size > this.options.maxCacheSize / 2) {
301
+ this.logger.warn("Resource too large for cache", { topicId, size });
302
+ return;
303
+ }
304
+ while (this.currentCacheSize + size > this.options.maxCacheSize && this.cache.size > 0) {
305
+ this.evictOldestEntry();
262
306
  }
263
- return result;
307
+ const entry = {
308
+ data: resource,
309
+ timestamp: Date.now(),
310
+ size
311
+ };
312
+ this.cache.set(topicId, entry);
313
+ this.currentCacheSize += size;
314
+ this.logger.debug("Resource added to cache", {
315
+ topicId,
316
+ size,
317
+ totalCacheSize: this.currentCacheSize
318
+ });
264
319
  }
265
320
  /**
266
- * Evaluate condition for if/unless statements
321
+ * Remove resource from cache
267
322
  */
268
- evaluateCondition(condition, context) {
269
- const value = this.getNestedValue(condition.trim(), context);
270
- return Boolean(value);
323
+ removeFromCache(topicId) {
324
+ const entry = this.cache.get(topicId);
325
+ if (entry) {
326
+ this.cache.delete(topicId);
327
+ this.currentCacheSize -= entry.size;
328
+ }
271
329
  }
272
330
  /**
273
- * Get nested value from context using dot notation
331
+ * Evict oldest cache entry
274
332
  */
275
- getNestedValue(path, context) {
276
- if (!path || !context) return void 0;
277
- const keys = path.split(".");
278
- let current = context;
279
- for (const key of keys) {
280
- if (current === null || current === void 0 || typeof current !== "object") {
281
- return void 0;
333
+ evictOldestEntry() {
334
+ let oldest = null;
335
+ let oldestTime = Date.now();
336
+ for (const [topicId, entry] of this.cache) {
337
+ if (entry.timestamp < oldestTime) {
338
+ oldestTime = entry.timestamp;
339
+ oldest = topicId;
282
340
  }
283
- current = current[key];
284
341
  }
285
- return current;
342
+ if (oldest) {
343
+ this.removeFromCache(oldest);
344
+ this.logger.debug("Evicted oldest cache entry", { topicId: oldest });
345
+ }
286
346
  }
287
347
  /**
288
- * Sanitize context to prevent XSS
348
+ * Sanitize CSS content
289
349
  */
290
- sanitizeContext(context) {
291
- if (context === null || context === void 0) return context;
292
- const seen = /* @__PURE__ */ new WeakSet();
293
- const sanitize = (obj) => {
294
- if (obj === null || typeof obj !== "object") return obj;
295
- if (seen.has(obj)) return "[Circular]";
296
- seen.add(obj);
297
- if (Array.isArray(obj)) {
298
- return obj.map(sanitize);
299
- }
300
- const sanitized = {};
301
- for (const [key, value] of Object.entries(obj)) {
302
- sanitized[key] = sanitize(value);
303
- }
304
- return sanitized;
305
- };
306
- return sanitize(context);
350
+ sanitizeCSS(css) {
351
+ let sanitized = css;
352
+ for (const pattern of this.dangerousCSSPatterns) {
353
+ sanitized = sanitized.replace(pattern, "");
354
+ }
355
+ return sanitized;
307
356
  }
308
357
  /**
309
- * Escape HTML to prevent XSS
358
+ * Sanitize JavaScript content
310
359
  */
311
- escapeHtml(text) {
312
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
360
+ sanitizeJavaScript(js) {
361
+ let sanitized = js;
362
+ for (const pattern of this.dangerousJSPatterns) {
363
+ sanitized = sanitized.replace(pattern, "");
364
+ }
365
+ return sanitized;
313
366
  }
314
367
  /**
315
- * Sanitize HTML to allow safe tags only
368
+ * Sanitize template content
316
369
  */
317
- sanitizeHtml(html) {
318
- return html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "").replace(/javascript:/gi, "").replace(/on\w+\s*=/gi, "");
370
+ sanitizeTemplate(template) {
371
+ return template.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "").replace(/on\w+\s*=\s*["'][^"']*["']/gi, "").replace(/javascript\s*:/gi, "");
319
372
  }
320
373
  /**
321
374
  * Validate template syntax
322
375
  */
323
- validateTemplate(template) {
376
+ validateTemplateSyntax(template) {
377
+ const openBraces = (template.match(/\{\{/g) || []).length;
378
+ const closeBraces = (template.match(/\}\}/g) || []).length;
379
+ if (openBraces !== closeBraces) {
380
+ throw new Error("Invalid template syntax: unmatched braces");
381
+ }
324
382
  const openBlocks = (template.match(/\{\{#\w+/g) || []).length;
325
383
  const closeBlocks = (template.match(/\{\{\/\w+/g) || []).length;
326
384
  if (openBlocks !== closeBlocks) {
327
385
  throw new Error("Invalid template syntax: unclosed block helpers");
328
386
  }
329
- const malformed = /\{\{[^}]*$|\{\{[^}]*\{\{/.test(template);
330
- if (malformed) {
331
- throw new Error("Invalid template syntax: malformed handlebars");
387
+ }
388
+ /**
389
+ * Detect circular dependencies
390
+ */
391
+ detectCircularDependencies(dependencies) {
392
+ const dependencyMap = /* @__PURE__ */ new Map();
393
+ for (const dep of dependencies) {
394
+ dependencyMap.set(dep.topicId, dep.depends || []);
395
+ }
396
+ const visited = /* @__PURE__ */ new Set();
397
+ const visiting = /* @__PURE__ */ new Set();
398
+ const visit = (topicId) => {
399
+ if (visiting.has(topicId)) {
400
+ throw new Error("Circular dependency detected");
401
+ }
402
+ if (visited.has(topicId)) return;
403
+ visiting.add(topicId);
404
+ const deps = dependencyMap.get(topicId) || [];
405
+ for (const dep of deps) {
406
+ visit(dep);
407
+ }
408
+ visiting.delete(topicId);
409
+ visited.add(topicId);
410
+ };
411
+ for (const dep of dependencies) {
412
+ visit(dep.topicId);
332
413
  }
333
414
  }
334
415
  /**
335
- * Generate cache key for template
416
+ * Topological sort of dependencies
336
417
  */
337
- getCacheKey(template) {
338
- let hash = 0;
339
- for (let i = 0; i < template.length; i++) {
340
- const char = template.charCodeAt(i);
341
- hash = (hash << 5) - hash + char;
342
- hash = hash & hash;
418
+ topologicalSort(dependencies) {
419
+ const dependencyMap = /* @__PURE__ */ new Map();
420
+ const dependsMap = /* @__PURE__ */ new Map();
421
+ for (const dep of dependencies) {
422
+ dependencyMap.set(dep.topicId, dep);
423
+ dependsMap.set(dep.topicId, dep.depends || []);
343
424
  }
344
- return hash.toString();
425
+ const sorted = [];
426
+ const visited = /* @__PURE__ */ new Set();
427
+ const visit = (topicId) => {
428
+ if (visited.has(topicId)) return;
429
+ const deps = dependsMap.get(topicId) || [];
430
+ for (const dep of deps) {
431
+ visit(dep);
432
+ }
433
+ visited.add(topicId);
434
+ const depObj = dependencyMap.get(topicId);
435
+ if (depObj) {
436
+ sorted.push(depObj);
437
+ }
438
+ };
439
+ for (const dep of dependencies) {
440
+ visit(dep.topicId);
441
+ }
442
+ return sorted;
345
443
  }
346
444
  /**
347
- * Setup builtin helper functions
445
+ * Get content type for dependency type
348
446
  */
349
- setupBuiltinHelpers() {
447
+ getContentTypeForType(type) {
448
+ switch (type) {
449
+ case "css":
450
+ return "text/css";
451
+ case "js":
452
+ return "application/javascript";
453
+ case "template":
454
+ return "text/html";
455
+ case "image":
456
+ return "image/*";
457
+ default:
458
+ return "application/octet-stream";
459
+ }
350
460
  }
351
461
  }
352
462
  export {
353
- TemplateEngine
463
+ ResourceManager
354
464
  };
355
465
  //# sourceMappingURL=standards-sdk.es46.js.map