@hashgraphonline/standards-sdk 0.1.144 → 0.1.146-chore-jsr-improvements.canary.74bacb9.89

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 (442) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
  3. package/dist/cjs/hcs-10/sdk.d.ts +8 -0
  4. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  5. package/dist/cjs/hcs-11/client.d.ts +2 -2
  6. package/dist/cjs/hcs-11/client.d.ts.map +1 -1
  7. package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
  8. package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
  9. package/dist/cjs/hcs-11/types.d.ts +1 -0
  10. package/dist/cjs/hcs-11/types.d.ts.map +1 -1
  11. package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  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-3/src/types.d.ts +60 -0
  35. package/dist/cjs/hcs-3/src/types.d.ts.map +1 -0
  36. package/dist/cjs/hcs-7/types.d.ts +4 -4
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/inscribe/inscriber.d.ts +89 -0
  39. package/dist/cjs/inscribe/inscriber.d.ts.map +1 -1
  40. package/dist/cjs/jsr-entry.d.ts +16 -0
  41. package/dist/cjs/jsr-entry.d.ts.map +1 -0
  42. package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
  43. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  44. package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
  45. package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
  46. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts +24 -0
  47. package/dist/cjs/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  48. package/dist/cjs/services/registry-broker/index.d.ts +1 -0
  49. package/dist/cjs/services/registry-broker/index.d.ts.map +1 -1
  50. package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
  51. package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
  52. package/dist/cjs/services/registry-broker/schemas.d.ts +1010 -586
  53. package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
  54. package/dist/cjs/services/registry-broker/types.d.ts +20 -1
  55. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  56. package/dist/cjs/standards-sdk.cjs +3 -3
  57. package/dist/cjs/standards-sdk.cjs.map +1 -1
  58. package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
  59. package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
  60. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  61. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  62. package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
  63. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  64. package/dist/es/hcs-10/sdk.d.ts +8 -0
  65. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  66. package/dist/es/hcs-11/client.d.ts +2 -2
  67. package/dist/es/hcs-11/client.d.ts.map +1 -1
  68. package/dist/es/hcs-11/person-builder.d.ts +1 -0
  69. package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
  70. package/dist/es/hcs-11/types.d.ts +1 -0
  71. package/dist/es/hcs-11/types.d.ts.map +1 -1
  72. package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
  73. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  74. package/dist/es/hcs-15/browser.d.ts +2 -0
  75. package/dist/es/hcs-15/browser.d.ts.map +1 -1
  76. package/dist/es/hcs-15/sdk.d.ts +7 -1
  77. package/dist/es/hcs-15/sdk.d.ts.map +1 -1
  78. package/dist/es/hcs-15/tx.d.ts +4 -0
  79. package/dist/es/hcs-15/tx.d.ts.map +1 -1
  80. package/dist/es/hcs-15/types.d.ts +16 -1
  81. package/dist/es/hcs-15/types.d.ts.map +1 -1
  82. package/dist/es/hcs-16/browser.d.ts +11 -2
  83. package/dist/es/hcs-16/browser.d.ts.map +1 -1
  84. package/dist/es/hcs-16/sdk.d.ts +62 -1
  85. package/dist/es/hcs-16/sdk.d.ts.map +1 -1
  86. package/dist/es/hcs-16/tx.d.ts +21 -3
  87. package/dist/es/hcs-16/tx.d.ts.map +1 -1
  88. package/dist/es/hcs-17/base-client.d.ts +1 -0
  89. package/dist/es/hcs-17/base-client.d.ts.map +1 -1
  90. package/dist/es/hcs-17/sdk.d.ts.map +1 -1
  91. package/dist/es/hcs-17/tx.d.ts +2 -0
  92. package/dist/es/hcs-17/tx.d.ts.map +1 -1
  93. package/dist/es/hcs-17/types.d.ts +4 -0
  94. package/dist/es/hcs-17/types.d.ts.map +1 -1
  95. package/dist/es/hcs-3/src/types.d.ts +60 -0
  96. package/dist/es/hcs-3/src/types.d.ts.map +1 -0
  97. package/dist/es/hcs-7/types.d.ts +4 -4
  98. package/dist/es/index.d.ts.map +1 -1
  99. package/dist/es/inscribe/inscriber.d.ts +89 -0
  100. package/dist/es/inscribe/inscriber.d.ts.map +1 -1
  101. package/dist/es/jsr-entry.d.ts +16 -0
  102. package/dist/es/jsr-entry.d.ts.map +1 -0
  103. package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
  104. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  105. package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
  106. package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
  107. package/dist/es/services/registry-broker/hol-chat-ops.d.ts +24 -0
  108. package/dist/es/services/registry-broker/hol-chat-ops.d.ts.map +1 -0
  109. package/dist/es/services/registry-broker/index.d.ts +1 -0
  110. package/dist/es/services/registry-broker/index.d.ts.map +1 -1
  111. package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
  112. package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
  113. package/dist/es/services/registry-broker/schemas.d.ts +1010 -586
  114. package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
  115. package/dist/es/services/registry-broker/types.d.ts +20 -1
  116. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  117. package/dist/es/standards-sdk.es.js +146 -131
  118. package/dist/es/standards-sdk.es10.js +70 -90
  119. package/dist/es/standards-sdk.es10.js.map +1 -1
  120. package/dist/es/standards-sdk.es100.js +229 -26
  121. package/dist/es/standards-sdk.es100.js.map +1 -1
  122. package/dist/es/standards-sdk.es101.js +109 -228
  123. package/dist/es/standards-sdk.es101.js.map +1 -1
  124. package/dist/es/standards-sdk.es102.js +15 -94
  125. package/dist/es/standards-sdk.es102.js.map +1 -1
  126. package/dist/es/standards-sdk.es103.js +80 -30
  127. package/dist/es/standards-sdk.es103.js.map +1 -1
  128. package/dist/es/standards-sdk.es104.js +27 -80
  129. package/dist/es/standards-sdk.es104.js.map +1 -1
  130. package/dist/es/standards-sdk.es105.js +136 -25
  131. package/dist/es/standards-sdk.es105.js.map +1 -1
  132. package/dist/es/standards-sdk.es106.js +27 -140
  133. package/dist/es/standards-sdk.es106.js.map +1 -1
  134. package/dist/es/standards-sdk.es107.js +20 -27
  135. package/dist/es/standards-sdk.es107.js.map +1 -1
  136. package/dist/es/standards-sdk.es108.js +156 -18
  137. package/dist/es/standards-sdk.es108.js.map +1 -1
  138. package/dist/es/standards-sdk.es109.js +198 -148
  139. package/dist/es/standards-sdk.es109.js.map +1 -1
  140. package/dist/es/standards-sdk.es11.js +121 -45
  141. package/dist/es/standards-sdk.es11.js.map +1 -1
  142. package/dist/es/standards-sdk.es110.js +747 -166
  143. package/dist/es/standards-sdk.es110.js.map +1 -1
  144. package/dist/es/standards-sdk.es111.js +9 -786
  145. package/dist/es/standards-sdk.es111.js.map +1 -1
  146. package/dist/es/standards-sdk.es112.js +567 -13
  147. package/dist/es/standards-sdk.es112.js.map +1 -1
  148. package/dist/es/standards-sdk.es113.js +576 -541
  149. package/dist/es/standards-sdk.es113.js.map +1 -1
  150. package/dist/es/standards-sdk.es114.js +12 -601
  151. package/dist/es/standards-sdk.es114.js.map +1 -1
  152. package/dist/es/standards-sdk.es115.js +2 -13
  153. package/dist/es/standards-sdk.es115.js.map +1 -1
  154. package/dist/es/standards-sdk.es116.js +87 -2
  155. package/dist/es/standards-sdk.es116.js.map +1 -1
  156. package/dist/es/standards-sdk.es117.js +37 -80
  157. package/dist/es/standards-sdk.es117.js.map +1 -1
  158. package/dist/es/standards-sdk.es118.js +2 -39
  159. package/dist/es/standards-sdk.es118.js.map +1 -1
  160. package/dist/es/standards-sdk.es119.js +231 -2
  161. package/dist/es/standards-sdk.es119.js.map +1 -1
  162. package/dist/es/standards-sdk.es12.js +60 -159
  163. package/dist/es/standards-sdk.es12.js.map +1 -1
  164. package/dist/es/standards-sdk.es120.js +1110 -193
  165. package/dist/es/standards-sdk.es120.js.map +1 -1
  166. package/dist/es/standards-sdk.es121.js +225 -1059
  167. package/dist/es/standards-sdk.es121.js.map +1 -1
  168. package/dist/es/standards-sdk.es122.js +419 -303
  169. package/dist/es/standards-sdk.es122.js.map +1 -1
  170. package/dist/es/standards-sdk.es123.js +351 -418
  171. package/dist/es/standards-sdk.es123.js.map +1 -1
  172. package/dist/es/standards-sdk.es124.js +1109 -347
  173. package/dist/es/standards-sdk.es124.js.map +1 -1
  174. package/dist/es/standards-sdk.es125.js +182 -854
  175. package/dist/es/standards-sdk.es125.js.map +1 -1
  176. package/dist/es/standards-sdk.es126.js +1512 -153
  177. package/dist/es/standards-sdk.es126.js.map +1 -1
  178. package/dist/es/standards-sdk.es127.js +157 -1547
  179. package/dist/es/standards-sdk.es127.js.map +1 -1
  180. package/dist/es/standards-sdk.es128.js +192 -162
  181. package/dist/es/standards-sdk.es128.js.map +1 -1
  182. package/dist/es/standards-sdk.es129.js +61 -164
  183. package/dist/es/standards-sdk.es129.js.map +1 -1
  184. package/dist/es/standards-sdk.es13.js +200 -60
  185. package/dist/es/standards-sdk.es13.js.map +1 -1
  186. package/dist/es/standards-sdk.es130.js +102 -85
  187. package/dist/es/standards-sdk.es130.js.map +1 -1
  188. package/dist/es/standards-sdk.es131.js +222 -96
  189. package/dist/es/standards-sdk.es131.js.map +1 -1
  190. package/dist/es/standards-sdk.es132.js +153 -220
  191. package/dist/es/standards-sdk.es132.js.map +1 -1
  192. package/dist/es/standards-sdk.es133.js +104 -162
  193. package/dist/es/standards-sdk.es133.js.map +1 -1
  194. package/dist/es/standards-sdk.es134.js +296 -92
  195. package/dist/es/standards-sdk.es134.js.map +1 -1
  196. package/dist/es/standards-sdk.es135.js +432 -294
  197. package/dist/es/standards-sdk.es135.js.map +1 -1
  198. package/dist/es/standards-sdk.es136.js +14 -363
  199. package/dist/es/standards-sdk.es136.js.map +1 -1
  200. package/dist/es/standards-sdk.es137.js +79 -15
  201. package/dist/es/standards-sdk.es137.js.map +1 -1
  202. package/dist/es/standards-sdk.es138.js +79 -59
  203. package/dist/es/standards-sdk.es138.js.map +1 -1
  204. package/dist/es/standards-sdk.es139.js +53 -80
  205. package/dist/es/standards-sdk.es139.js.map +1 -1
  206. package/dist/es/standards-sdk.es14.js +149 -178
  207. package/dist/es/standards-sdk.es14.js.map +1 -1
  208. package/dist/es/standards-sdk.es140.js +1 -1
  209. package/dist/es/standards-sdk.es142.js +1 -1
  210. package/dist/es/standards-sdk.es143.js +1 -1
  211. package/dist/es/standards-sdk.es144.js +30 -28
  212. package/dist/es/standards-sdk.es144.js.map +1 -1
  213. package/dist/es/standards-sdk.es145.js +34 -138
  214. package/dist/es/standards-sdk.es145.js.map +1 -1
  215. package/dist/es/standards-sdk.es146.js +28 -42
  216. package/dist/es/standards-sdk.es146.js.map +1 -1
  217. package/dist/es/standards-sdk.es147.js +105 -12256
  218. package/dist/es/standards-sdk.es147.js.map +1 -1
  219. package/dist/es/standards-sdk.es148.js +40 -15
  220. package/dist/es/standards-sdk.es148.js.map +1 -1
  221. package/dist/es/standards-sdk.es149.js +959 -56
  222. package/dist/es/standards-sdk.es149.js.map +1 -1
  223. package/dist/es/standards-sdk.es15.js +152 -151
  224. package/dist/es/standards-sdk.es15.js.map +1 -1
  225. package/dist/es/standards-sdk.es150.js +12264 -57
  226. package/dist/es/standards-sdk.es150.js.map +1 -1
  227. package/dist/es/standards-sdk.es151.js +51 -167
  228. package/dist/es/standards-sdk.es151.js.map +1 -1
  229. package/dist/es/standards-sdk.es152.js +70 -308
  230. package/dist/es/standards-sdk.es152.js.map +1 -1
  231. package/dist/es/standards-sdk.es153.js +13 -342
  232. package/dist/es/standards-sdk.es153.js.map +1 -1
  233. package/dist/es/standards-sdk.es154.js +129 -410
  234. package/dist/es/standards-sdk.es154.js.map +1 -1
  235. package/dist/es/standards-sdk.es155.js +200 -209
  236. package/dist/es/standards-sdk.es155.js.map +1 -1
  237. package/dist/es/standards-sdk.es156.js +334 -64
  238. package/dist/es/standards-sdk.es156.js.map +1 -1
  239. package/dist/es/standards-sdk.es157.js +453 -871
  240. package/dist/es/standards-sdk.es157.js.map +1 -1
  241. package/dist/es/standards-sdk.es158.js +314 -222
  242. package/dist/es/standards-sdk.es158.js.map +1 -1
  243. package/dist/es/standards-sdk.es159.js +60 -228
  244. package/dist/es/standards-sdk.es159.js.map +1 -1
  245. package/dist/es/standards-sdk.es16.js +917 -136
  246. package/dist/es/standards-sdk.es16.js.map +1 -1
  247. package/dist/es/standards-sdk.es160.js +242 -0
  248. package/dist/es/standards-sdk.es160.js.map +1 -0
  249. package/dist/es/standards-sdk.es161.js +247 -0
  250. package/dist/es/standards-sdk.es161.js.map +1 -0
  251. package/dist/es/standards-sdk.es17.js +23 -944
  252. package/dist/es/standards-sdk.es17.js.map +1 -1
  253. package/dist/es/standards-sdk.es18.js +2422 -24
  254. package/dist/es/standards-sdk.es18.js.map +1 -1
  255. package/dist/es/standards-sdk.es19.js +817 -2071
  256. package/dist/es/standards-sdk.es19.js.map +1 -1
  257. package/dist/es/standards-sdk.es2.js +654 -189
  258. package/dist/es/standards-sdk.es2.js.map +1 -1
  259. package/dist/es/standards-sdk.es20.js +205 -1091
  260. package/dist/es/standards-sdk.es20.js.map +1 -1
  261. package/dist/es/standards-sdk.es21.js +858 -221
  262. package/dist/es/standards-sdk.es21.js.map +1 -1
  263. package/dist/es/standards-sdk.es22.js +179 -903
  264. package/dist/es/standards-sdk.es22.js.map +1 -1
  265. package/dist/es/standards-sdk.es23.js +164 -179
  266. package/dist/es/standards-sdk.es23.js.map +1 -1
  267. package/dist/es/standards-sdk.es24.js +62 -118
  268. package/dist/es/standards-sdk.es24.js.map +1 -1
  269. package/dist/es/standards-sdk.es25.js +377 -52
  270. package/dist/es/standards-sdk.es25.js.map +1 -1
  271. package/dist/es/standards-sdk.es26.js +36 -394
  272. package/dist/es/standards-sdk.es26.js.map +1 -1
  273. package/dist/es/standards-sdk.es27.js +901 -50
  274. package/dist/es/standards-sdk.es27.js.map +1 -1
  275. package/dist/es/standards-sdk.es28.js +134 -902
  276. package/dist/es/standards-sdk.es28.js.map +1 -1
  277. package/dist/es/standards-sdk.es29.js +7 -134
  278. package/dist/es/standards-sdk.es29.js.map +1 -1
  279. package/dist/es/standards-sdk.es3.js +63 -680
  280. package/dist/es/standards-sdk.es3.js.map +1 -1
  281. package/dist/es/standards-sdk.es30.js +344 -7
  282. package/dist/es/standards-sdk.es30.js.map +1 -1
  283. package/dist/es/standards-sdk.es31.js +302 -287
  284. package/dist/es/standards-sdk.es31.js.map +1 -1
  285. package/dist/es/standards-sdk.es32.js +94 -322
  286. package/dist/es/standards-sdk.es32.js.map +1 -1
  287. package/dist/es/standards-sdk.es33.js +458 -101
  288. package/dist/es/standards-sdk.es33.js.map +1 -1
  289. package/dist/es/standards-sdk.es34.js +132 -451
  290. package/dist/es/standards-sdk.es34.js.map +1 -1
  291. package/dist/es/standards-sdk.es35.js +216 -130
  292. package/dist/es/standards-sdk.es35.js.map +1 -1
  293. package/dist/es/standards-sdk.es36.js +273 -195
  294. package/dist/es/standards-sdk.es36.js.map +1 -1
  295. package/dist/es/standards-sdk.es37.js +148 -87
  296. package/dist/es/standards-sdk.es37.js.map +1 -1
  297. package/dist/es/standards-sdk.es38.js +183 -320
  298. package/dist/es/standards-sdk.es38.js.map +1 -1
  299. package/dist/es/standards-sdk.es39.js +238 -161
  300. package/dist/es/standards-sdk.es39.js.map +1 -1
  301. package/dist/es/standards-sdk.es4.js +425 -63
  302. package/dist/es/standards-sdk.es4.js.map +1 -1
  303. package/dist/es/standards-sdk.es40.js +136 -254
  304. package/dist/es/standards-sdk.es40.js.map +1 -1
  305. package/dist/es/standards-sdk.es41.js +225 -176
  306. package/dist/es/standards-sdk.es41.js.map +1 -1
  307. package/dist/es/standards-sdk.es42.js +199 -261
  308. package/dist/es/standards-sdk.es42.js.map +1 -1
  309. package/dist/es/standards-sdk.es43.js +237 -199
  310. package/dist/es/standards-sdk.es43.js.map +1 -1
  311. package/dist/es/standards-sdk.es44.js +209 -201
  312. package/dist/es/standards-sdk.es44.js.map +1 -1
  313. package/dist/es/standards-sdk.es45.js +305 -201
  314. package/dist/es/standards-sdk.es45.js.map +1 -1
  315. package/dist/es/standards-sdk.es46.js +371 -261
  316. package/dist/es/standards-sdk.es46.js.map +1 -1
  317. package/dist/es/standards-sdk.es47.js +316 -371
  318. package/dist/es/standards-sdk.es47.js.map +1 -1
  319. package/dist/es/standards-sdk.es48.js +404 -336
  320. package/dist/es/standards-sdk.es48.js.map +1 -1
  321. package/dist/es/standards-sdk.es49.js +83 -449
  322. package/dist/es/standards-sdk.es49.js.map +1 -1
  323. package/dist/es/standards-sdk.es5.js +232 -354
  324. package/dist/es/standards-sdk.es5.js.map +1 -1
  325. package/dist/es/standards-sdk.es50.js +179 -89
  326. package/dist/es/standards-sdk.es50.js.map +1 -1
  327. package/dist/es/standards-sdk.es51.js +231 -165
  328. package/dist/es/standards-sdk.es51.js.map +1 -1
  329. package/dist/es/standards-sdk.es52.js +25 -262
  330. package/dist/es/standards-sdk.es52.js.map +1 -1
  331. package/dist/es/standards-sdk.es53.js +56 -26
  332. package/dist/es/standards-sdk.es53.js.map +1 -1
  333. package/dist/es/standards-sdk.es54.js +12 -57
  334. package/dist/es/standards-sdk.es54.js.map +1 -1
  335. package/dist/es/standards-sdk.es55.js +49 -12
  336. package/dist/es/standards-sdk.es55.js.map +1 -1
  337. package/dist/es/standards-sdk.es56.js +115 -43
  338. package/dist/es/standards-sdk.es56.js.map +1 -1
  339. package/dist/es/standards-sdk.es57.js +42 -115
  340. package/dist/es/standards-sdk.es57.js.map +1 -1
  341. package/dist/es/standards-sdk.es58.js +52 -43
  342. package/dist/es/standards-sdk.es58.js.map +1 -1
  343. package/dist/es/standards-sdk.es59.js +36 -50
  344. package/dist/es/standards-sdk.es59.js.map +1 -1
  345. package/dist/es/standards-sdk.es6.js +125 -246
  346. package/dist/es/standards-sdk.es6.js.map +1 -1
  347. package/dist/es/standards-sdk.es60.js +207 -39
  348. package/dist/es/standards-sdk.es60.js.map +1 -1
  349. package/dist/es/standards-sdk.es61.js +24 -200
  350. package/dist/es/standards-sdk.es61.js.map +1 -1
  351. package/dist/es/standards-sdk.es62.js +87 -25
  352. package/dist/es/standards-sdk.es62.js.map +1 -1
  353. package/dist/es/standards-sdk.es63.js +3 -51
  354. package/dist/es/standards-sdk.es63.js.map +1 -1
  355. package/dist/es/standards-sdk.es64.js +100 -3
  356. package/dist/es/standards-sdk.es64.js.map +1 -1
  357. package/dist/es/standards-sdk.es65.js +61 -62
  358. package/dist/es/standards-sdk.es65.js.map +1 -1
  359. package/dist/es/standards-sdk.es66.js +17 -98
  360. package/dist/es/standards-sdk.es66.js.map +1 -1
  361. package/dist/es/standards-sdk.es67.js +77 -19
  362. package/dist/es/standards-sdk.es67.js.map +1 -1
  363. package/dist/es/standards-sdk.es68.js +458 -77
  364. package/dist/es/standards-sdk.es68.js.map +1 -1
  365. package/dist/es/standards-sdk.es69.js +106 -240
  366. package/dist/es/standards-sdk.es69.js.map +1 -1
  367. package/dist/es/standards-sdk.es7.js +28 -183
  368. package/dist/es/standards-sdk.es7.js.map +1 -1
  369. package/dist/es/standards-sdk.es70.js +170 -286
  370. package/dist/es/standards-sdk.es70.js.map +1 -1
  371. package/dist/es/standards-sdk.es71.js +71 -207
  372. package/dist/es/standards-sdk.es71.js.map +1 -1
  373. package/dist/es/standards-sdk.es72.js +71 -72
  374. package/dist/es/standards-sdk.es72.js.map +1 -1
  375. package/dist/es/standards-sdk.es73.js +143 -71
  376. package/dist/es/standards-sdk.es73.js.map +1 -1
  377. package/dist/es/standards-sdk.es74.js +62 -136
  378. package/dist/es/standards-sdk.es74.js.map +1 -1
  379. package/dist/es/standards-sdk.es75.js +380 -45
  380. package/dist/es/standards-sdk.es75.js.map +1 -1
  381. package/dist/es/standards-sdk.es76.js +222 -130
  382. package/dist/es/standards-sdk.es76.js.map +1 -1
  383. package/dist/es/standards-sdk.es77.js +320 -444
  384. package/dist/es/standards-sdk.es77.js.map +1 -1
  385. package/dist/es/standards-sdk.es78.js +88 -370
  386. package/dist/es/standards-sdk.es78.js.map +1 -1
  387. package/dist/es/standards-sdk.es79.js +125 -89
  388. package/dist/es/standards-sdk.es79.js.map +1 -1
  389. package/dist/es/standards-sdk.es8.js +80 -29
  390. package/dist/es/standards-sdk.es8.js.map +1 -1
  391. package/dist/es/standards-sdk.es80.js +8 -125
  392. package/dist/es/standards-sdk.es80.js.map +1 -1
  393. package/dist/es/standards-sdk.es81.js +45 -6
  394. package/dist/es/standards-sdk.es81.js.map +1 -1
  395. package/dist/es/standards-sdk.es82.js +98 -44
  396. package/dist/es/standards-sdk.es82.js.map +1 -1
  397. package/dist/es/standards-sdk.es83.js +331 -84
  398. package/dist/es/standards-sdk.es83.js.map +1 -1
  399. package/dist/es/standards-sdk.es84.js +93 -160
  400. package/dist/es/standards-sdk.es84.js.map +1 -1
  401. package/dist/es/standards-sdk.es85.js +55 -275
  402. package/dist/es/standards-sdk.es85.js.map +1 -1
  403. package/dist/es/standards-sdk.es86.js +43 -55
  404. package/dist/es/standards-sdk.es86.js.map +1 -1
  405. package/dist/es/standards-sdk.es87.js +145 -22
  406. package/dist/es/standards-sdk.es87.js.map +1 -1
  407. package/dist/es/standards-sdk.es88.js +34 -47
  408. package/dist/es/standards-sdk.es88.js.map +1 -1
  409. package/dist/es/standards-sdk.es89.js +22 -57
  410. package/dist/es/standards-sdk.es89.js.map +1 -1
  411. package/dist/es/standards-sdk.es9.js +104 -80
  412. package/dist/es/standards-sdk.es9.js.map +1 -1
  413. package/dist/es/standards-sdk.es90.js +23 -28
  414. package/dist/es/standards-sdk.es90.js.map +1 -1
  415. package/dist/es/standards-sdk.es91.js +238 -23
  416. package/dist/es/standards-sdk.es91.js.map +1 -1
  417. package/dist/es/standards-sdk.es92.js +265 -152
  418. package/dist/es/standards-sdk.es92.js.map +1 -1
  419. package/dist/es/standards-sdk.es93.js +95 -68
  420. package/dist/es/standards-sdk.es93.js.map +1 -1
  421. package/dist/es/standards-sdk.es94.js +124 -136
  422. package/dist/es/standards-sdk.es94.js.map +1 -1
  423. package/dist/es/standards-sdk.es95.js +42 -138
  424. package/dist/es/standards-sdk.es95.js.map +1 -1
  425. package/dist/es/standards-sdk.es96.js +259 -42
  426. package/dist/es/standards-sdk.es96.js.map +1 -1
  427. package/dist/es/standards-sdk.es97.js +82 -243
  428. package/dist/es/standards-sdk.es97.js.map +1 -1
  429. package/dist/es/standards-sdk.es98.js +48 -47
  430. package/dist/es/standards-sdk.es98.js.map +1 -1
  431. package/dist/es/standards-sdk.es99.js +29 -100
  432. package/dist/es/standards-sdk.es99.js.map +1 -1
  433. package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
  434. package/dist/es/utils/crypto-env.d.ts.map +1 -1
  435. package/dist/es/utils/dynamic-import.d.ts +5 -1
  436. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  437. package/dist/es/utils/hash-adapter.d.ts.map +1 -1
  438. package/package.json +36 -13
  439. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  440. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  441. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  442. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
@@ -1,267 +1,205 @@
1
- import { getCryptoAdapter } from "./standards-sdk.es120.js";
2
- import { isSSREnvironment } from "./standards-sdk.es118.js";
3
- class WasmValidator {
4
- constructor(logger) {
5
- this.cryptoAdapter = getCryptoAdapter();
6
- this.REQUIRED_EXPORTS = ["INFO", "POST", "GET"];
7
- this.ALLOWED_IMPORTS = /* @__PURE__ */ new Set([
8
- "env.console_log",
9
- "env.get_network",
10
- "env.submit_hcs_message",
11
- "env.memory"
12
- ]);
13
- this.MAX_INITIAL_MEMORY = 256;
14
- this.WARN_MODULE_SIZE = 1 * 1024 * 1024;
15
- this.MAX_MODULE_SIZE = 5 * 1024 * 1024;
16
- this.logger = logger;
17
- }
18
- /**
19
- * Validate a WASM module
20
- */
21
- async validate(wasmData) {
22
- const errors = [];
23
- const warnings = [];
24
- const result = {
25
- isValid: true,
26
- errors,
27
- warnings
28
- };
29
- try {
30
- if (wasmData.length > this.WARN_MODULE_SIZE) {
31
- warnings.push(
32
- `Large module size: ${(wasmData.length / 1024 / 1024).toFixed(2)} MB`
33
- );
34
- }
35
- if (wasmData.length > this.MAX_MODULE_SIZE) {
36
- errors.push("Module size exceeds maximum allowed");
37
- result.isValid = false;
38
- }
39
- if (!this.validateMagicNumber(wasmData)) {
40
- errors.push("Invalid WASM magic number");
41
- result.isValid = false;
42
- return result;
43
- }
44
- const version = this.getWasmVersion(wasmData);
45
- result.version = version;
46
- if (version !== 1) {
47
- errors.push(`Unsupported WASM version: ${version}`);
48
- result.isValid = false;
49
- return result;
50
- }
51
- const moduleInfo = await this.parseModule(wasmData);
52
- result.exports = moduleInfo.exports;
53
- for (const required of this.REQUIRED_EXPORTS) {
54
- if (!moduleInfo.exports.includes(required)) {
55
- errors.push(`Missing required export: ${required}`);
56
- result.isValid = false;
57
- }
58
- }
59
- result.imports = moduleInfo.imports;
60
- for (const imp of moduleInfo.imports) {
61
- const importName = `${imp.module}.${imp.name}`;
62
- if (!this.ALLOWED_IMPORTS.has(importName)) {
63
- errors.push(`Disallowed import: ${importName}`);
64
- result.isValid = false;
65
- }
66
- }
67
- if (moduleInfo.memory) {
68
- result.memoryRequirements = moduleInfo.memory;
69
- if (moduleInfo.memory.initial > this.MAX_INITIAL_MEMORY) {
70
- errors.push(
71
- `Excessive initial memory: ${moduleInfo.memory.initial} pages`
72
- );
73
- result.isValid = false;
74
- }
75
- }
76
- if (moduleInfo.hasStartFunction) {
77
- warnings.push("Module has start function - may execute code on load");
78
- }
79
- if (moduleInfo.functionCount > 100) {
80
- warnings.push(`High function count: ${moduleInfo.functionCount}`);
81
- }
82
- if (this.hasSuspiciousPatterns(wasmData)) {
83
- warnings.push("Potentially unsafe operation detected");
84
- }
85
- result.exportSignatures = moduleInfo.exportSignatures;
86
- } catch (error) {
87
- this.logger.error("WASM validation failed", { error });
88
- errors.push(
89
- `Validation error: ${error instanceof Error ? error.message : "Unknown error"}`
90
- );
91
- result.isValid = false;
92
- }
93
- return result;
94
- }
95
- /**
96
- * Validate INFO function return
97
- */
98
- async validateInfoFunction(infoFunc) {
99
- const errors = [];
100
- const warnings = [];
101
- try {
102
- const infoStr = await infoFunc();
103
- const info = JSON.parse(infoStr);
104
- if (!info.name || !info.version || !info.hashlinks_version) {
105
- errors.push("INFO missing required fields");
106
- return {
107
- isValid: false,
108
- errors,
109
- warnings
110
- };
111
- }
112
- return {
113
- isValid: true,
114
- errors,
115
- warnings,
116
- moduleInfo: info
117
- };
118
- } catch (error) {
119
- errors.push("INFO function returned invalid JSON");
120
- return {
121
- isValid: false,
122
- errors,
123
- warnings
124
- };
125
- }
126
- }
127
- /**
128
- * Validate action parameter schemas
129
- */
130
- async validateActionSchemas(moduleInfo) {
131
- const errors = [];
132
- const warnings = [];
133
- if (moduleInfo.validation_rules) {
134
- for (const [action, rule] of Object.entries(
135
- moduleInfo.validation_rules
136
- )) {
137
- if (typeof rule !== "object") {
138
- errors.push(`Invalid validation rule for action: ${action}`);
139
- }
140
- }
141
- }
142
- return {
143
- isValid: errors.length === 0,
144
- errors,
145
- warnings
146
- };
147
- }
148
- /**
149
- * Extract metadata from WASM
150
- */
151
- async extractMetadata(wasmData) {
152
- return {
153
- size: wasmData.length,
154
- hash: await this.calculateHash(wasmData),
155
- producers: { language: ["Unknown"] }
156
- };
157
- }
158
- /**
159
- * Calculate WASM hash
160
- */
161
- async calculateHash(wasmData) {
162
- if (isSSREnvironment()) {
163
- return this.createSSRSafeHash(wasmData);
164
- }
165
- const hasher = this.cryptoAdapter.createHash("sha256");
166
- const result = hasher.update(Buffer.from(wasmData)).digest("hex");
167
- const hash = result instanceof Promise ? await result : result;
168
- return typeof hash === "string" ? hash : hash.toString("hex");
169
- }
170
- /**
171
- * Create SSR-safe hash for WASM data
172
- */
173
- createSSRSafeHash(wasmData) {
174
- let hash = 0;
175
- for (let i = 0; i < Math.min(wasmData.length, 1024); i++) {
176
- hash = (hash << 5) - hash + wasmData[i] & 4294967295;
177
- }
178
- return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, "0")}`;
179
- }
180
- /**
181
- * Validate WASM magic number
182
- */
183
- validateMagicNumber(data) {
184
- return data.length >= 4 && data[0] === 0 && data[1] === 97 && data[2] === 115 && data[3] === 109;
185
- }
186
- /**
187
- * Get WASM version
188
- */
189
- getWasmVersion(data) {
190
- if (data.length < 8) return 0;
191
- return data[4] | data[5] << 8 | data[6] << 16 | data[7] << 24;
192
- }
193
- /**
194
- * Parse WASM module (simplified for testing)
195
- */
196
- async parseModule(data) {
197
- const textData = data.slice(8);
198
- const dataStr = new TextDecoder("utf-8", { fatal: false }).decode(textData);
199
- const exports = [];
200
- if (dataStr.includes("INFO")) exports.push("INFO");
201
- if (dataStr.includes("POST")) exports.push("POST");
202
- if (dataStr.includes("GET")) exports.push("GET");
203
- if (exports.length === 0 && data.length > 8) {
204
- exports.push("INFO", "POST", "GET");
205
- }
206
- const imports = [];
207
- const importParts = dataStr.split("import:");
208
- for (let i = 1; i < importParts.length; i++) {
209
- const part = importParts[i];
210
- const match = part.match(
211
- /^([a-zA-Z_]+[a-zA-Z0-9_]*)\.([a-zA-Z_]+[a-zA-Z0-9_]*)/
212
- );
213
- if (match) {
214
- imports.push({
215
- module: match[1],
216
- name: match[2],
217
- type: "function"
218
- });
219
- }
220
- }
221
- let initial = 1;
222
- let maximum = 16;
223
- const memMatch = dataStr.match(/memory:(\d+)(?:-(\d+))?/);
224
- if (memMatch) {
225
- initial = parseInt(memMatch[1]);
226
- if (memMatch[2]) maximum = parseInt(memMatch[2]);
227
- }
228
- let functionCount = 10;
229
- const funcMatch = dataStr.match(/functions:(\d+)/);
230
- if (funcMatch) {
231
- functionCount = parseInt(funcMatch[1]);
232
- }
233
- const hasStartFunction = dataStr.includes("start:true");
234
- return {
235
- exports,
236
- imports,
237
- memory: { initial, maximum },
238
- functionCount,
239
- hasStartFunction,
240
- exportSignatures: {
241
- INFO: { type: "function", params: [], results: ["i32"] },
242
- POST: {
243
- type: "function",
244
- params: ["i32", "i32", "i32", "i32"],
245
- results: ["i32"]
246
- },
247
- GET: {
248
- type: "function",
249
- params: ["i32", "i32", "i32"],
250
- results: ["i32"]
251
- }
252
- }
253
- };
1
+ import { z } from "zod";
2
+ const baseRegistrationSchema = z.object({
3
+ p: z.literal("hcs-12")
4
+ });
5
+ const hederaAddressSchema = z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid Hedera address format");
6
+ const sha256HashSchema = z.string().regex(/^[a-f0-9]{64}$/, "Invalid SHA-256 hash format");
7
+ const sourceStructureSchema = z.object({
8
+ format: z.enum(["tar.gz", "zip", "car"]),
9
+ root_manifest: z.string(),
10
+ includes_lockfile: z.boolean(),
11
+ workspace_members: z.array(z.string()).optional()
12
+ });
13
+ const sourceVerificationSchema = z.object({
14
+ source_t_id: hederaAddressSchema,
15
+ source_hash: sha256HashSchema,
16
+ compiler_version: z.string(),
17
+ cargo_version: z.string(),
18
+ target: z.literal("wasm32-unknown-unknown"),
19
+ profile: z.string(),
20
+ build_flags: z.array(z.string()),
21
+ lockfile_hash: sha256HashSchema,
22
+ source_structure: sourceStructureSchema
23
+ });
24
+ const validationRuleSchema = z.lazy(
25
+ () => z.object({
26
+ type: z.string().optional(),
27
+ required: z.array(z.string()).optional(),
28
+ properties: z.record(validationRuleSchema).optional(),
29
+ pattern: z.string().optional(),
30
+ minimum: z.number().optional(),
31
+ maximum: z.number().optional(),
32
+ regex: z.string().optional(),
33
+ min: z.number().optional(),
34
+ max: z.number().optional(),
35
+ length: z.number().optional(),
36
+ email: z.boolean().optional(),
37
+ url: z.boolean().optional(),
38
+ uuid: z.boolean().optional(),
39
+ cuid: z.boolean().optional(),
40
+ cuid2: z.boolean().optional(),
41
+ ulid: z.boolean().optional(),
42
+ datetime: z.boolean().optional(),
43
+ ip: z.boolean().optional(),
44
+ startsWith: z.string().optional(),
45
+ endsWith: z.string().optional(),
46
+ includes: z.string().optional(),
47
+ gt: z.number().optional(),
48
+ gte: z.number().optional(),
49
+ lt: z.number().optional(),
50
+ lte: z.number().optional(),
51
+ int: z.boolean().optional(),
52
+ positive: z.boolean().optional(),
53
+ nonnegative: z.boolean().optional(),
54
+ negative: z.boolean().optional(),
55
+ nonpositive: z.boolean().optional(),
56
+ multipleOf: z.number().optional(),
57
+ finite: z.boolean().optional(),
58
+ safe: z.boolean().optional(),
59
+ nonempty: z.boolean().optional(),
60
+ literal: z.union([z.string(), z.number(), z.boolean()]).optional(),
61
+ enum: z.array(z.string()).optional(),
62
+ nullable: z.boolean().optional(),
63
+ nullish: z.boolean().optional(),
64
+ optional: z.boolean().optional(),
65
+ element: z.any().optional(),
66
+ shape: z.record(z.any()).optional(),
67
+ strict: z.boolean().optional(),
68
+ passthrough: z.boolean().optional(),
69
+ catchall: z.any().optional()
70
+ })
71
+ );
72
+ const actionRegistrationSchema = z.object({
73
+ p: z.literal("hcs-12"),
74
+ op: z.literal("register"),
75
+ t_id: hederaAddressSchema,
76
+ hash: sha256HashSchema,
77
+ wasm_hash: sha256HashSchema,
78
+ js_t_id: hederaAddressSchema.optional(),
79
+ js_hash: sha256HashSchema.optional(),
80
+ interface_version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid version format").optional(),
81
+ info_t_id: hederaAddressSchema.optional(),
82
+ source_verification: sourceVerificationSchema.optional(),
83
+ previous_version: z.string().optional(),
84
+ migration_notes: z.string().optional(),
85
+ validation_rules: z.record(validationRuleSchema).optional(),
86
+ m: z.string().optional()
87
+ });
88
+ const blockRegistrationSchema = z.object({
89
+ p: z.literal("hcs-12"),
90
+ op: z.enum(["register", "template"]),
91
+ name: z.string(),
92
+ version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid semver format"),
93
+ data: z.union([z.any(), z.string()]).optional(),
94
+ t_id: hederaAddressSchema.optional()
95
+ });
96
+ z.enum([
97
+ "register",
98
+ "add-action",
99
+ "add-block",
100
+ "update"
101
+ ]);
102
+ const assemblyRegisterSchema = baseRegistrationSchema.extend({
103
+ op: z.literal("register"),
104
+ name: z.string(),
105
+ version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid semver format"),
106
+ description: z.string().optional(),
107
+ tags: z.array(z.string()).optional(),
108
+ author: z.string().optional()
109
+ });
110
+ const assemblyAddActionSchema = baseRegistrationSchema.extend({
111
+ op: z.literal("add-action"),
112
+ t_id: hederaAddressSchema,
113
+ alias: z.string(),
114
+ config: z.any().optional(),
115
+ data: hederaAddressSchema.optional()
116
+ });
117
+ const assemblyAddBlockSchema = baseRegistrationSchema.extend({
118
+ op: z.literal("add-block"),
119
+ block_t_id: hederaAddressSchema,
120
+ actions: z.record(z.string(), hederaAddressSchema).optional(),
121
+ attributes: z.record(z.any()).optional(),
122
+ children: z.array(z.string()).optional(),
123
+ data: hederaAddressSchema.optional()
124
+ });
125
+ const assemblyUpdateSchema = baseRegistrationSchema.extend({
126
+ op: z.literal("update"),
127
+ description: z.string().optional(),
128
+ tags: z.array(z.string()).optional()
129
+ });
130
+ z.object({
131
+ type: z.enum(["vertical", "horizontal", "grid"]),
132
+ responsive: z.boolean().optional(),
133
+ containerClass: z.string().optional()
134
+ });
135
+ z.object({
136
+ source_t_id: hederaAddressSchema,
137
+ source_hash: sha256HashSchema,
138
+ description: z.string().optional()
139
+ });
140
+ const assemblyMessageSchema = z.discriminatedUnion("op", [
141
+ assemblyRegisterSchema,
142
+ assemblyAddActionSchema,
143
+ assemblyAddBlockSchema,
144
+ assemblyUpdateSchema
145
+ ]);
146
+ const assemblyRegistrationSchema = assemblyRegisterSchema;
147
+ const hashLinksRegistrationSchema = baseRegistrationSchema.extend({
148
+ op: z.literal("register"),
149
+ t_id: hederaAddressSchema,
150
+ name: z.string().max(100, "Name must be 100 characters or less"),
151
+ description: z.string().max(500, "Description must be 500 characters or less").optional(),
152
+ tags: z.array(z.string()).max(10, "Maximum 10 tags allowed").optional(),
153
+ category: z.string().optional(),
154
+ featured: z.boolean().optional(),
155
+ icon: z.string().optional(),
156
+ author: z.string().optional(),
157
+ website: z.string().url().optional()
158
+ });
159
+ function validateActionRegistration(data) {
160
+ return actionRegistrationSchema.parse(data);
161
+ }
162
+ function validateBlockRegistration(data) {
163
+ return blockRegistrationSchema.parse(data);
164
+ }
165
+ function validateAssemblyMessage(data) {
166
+ return assemblyMessageSchema.parse(data);
167
+ }
168
+ function validateAssemblyRegistration(data) {
169
+ return assemblyRegistrationSchema.parse(data);
170
+ }
171
+ function validateHashLinksRegistration(data) {
172
+ return hashLinksRegistrationSchema.parse(data);
173
+ }
174
+ function safeValidate(schema, data) {
175
+ const result = schema.safeParse(data);
176
+ if (result.success) {
177
+ return { success: true, data: result.data };
254
178
  }
255
- /**
256
- * Check for suspicious patterns
257
- */
258
- hasSuspiciousPatterns(data) {
259
- const dataStr = new TextDecoder("utf-8", { fatal: false }).decode(data);
260
- const suspiciousPatterns = ["eval", "__proto__", "constructor"];
261
- return suspiciousPatterns.some((pattern) => dataStr.includes(pattern));
179
+ return { success: false, errors: result.error };
180
+ }
181
+ function validateWithSchema(data, schema) {
182
+ const result = schema.safeParse(data);
183
+ if (result.success) {
184
+ return { isValid: true, errors: [], data: result.data };
262
185
  }
186
+ return {
187
+ isValid: false,
188
+ errors: result.error.errors.map((e) => `${e.path.join(".")}: ${e.message}`)
189
+ };
263
190
  }
264
191
  export {
265
- WasmValidator
192
+ actionRegistrationSchema,
193
+ assemblyMessageSchema,
194
+ assemblyRegistrationSchema,
195
+ blockRegistrationSchema,
196
+ hashLinksRegistrationSchema,
197
+ safeValidate,
198
+ validateActionRegistration,
199
+ validateAssemblyMessage,
200
+ validateAssemblyRegistration,
201
+ validateBlockRegistration,
202
+ validateHashLinksRegistration,
203
+ validateWithSchema
266
204
  };
267
205
  //# sourceMappingURL=standards-sdk.es42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es42.js","sources":["../../src/hcs-12/validation/wasm-validator.ts"],"sourcesContent":["/**\n * WASM Validator for HCS-12 HashLinks\n *\n * Validates WebAssembly modules for security, compatibility, and HashLink requirements.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport { ModuleInfo } from '../types';\n\nexport interface WasmValidationResult {\n isValid: boolean;\n errors: string[];\n warnings: string[];\n version?: number;\n exports?: string[];\n imports?: ImportInfo[];\n memoryRequirements?: MemoryRequirements;\n exportSignatures?: Record<string, ExportSignature>;\n moduleInfo?: ModuleInfo;\n}\n\nexport interface ImportInfo {\n module: string;\n name: string;\n type: string;\n}\n\nexport interface MemoryRequirements {\n initial: number;\n maximum?: number;\n}\n\nexport interface ExportSignature {\n type: string;\n params: string[];\n results: string[];\n}\n\n/**\n * Validator for WASM modules\n */\nexport class WasmValidator {\n private logger: Logger;\n private cryptoAdapter = getCryptoAdapter();\n\n private readonly REQUIRED_EXPORTS = ['INFO', 'POST', 'GET'];\n\n private readonly ALLOWED_IMPORTS = new Set([\n 'env.console_log',\n 'env.get_network',\n 'env.submit_hcs_message',\n 'env.memory',\n ]);\n\n private readonly MAX_INITIAL_MEMORY = 256;\n\n private readonly WARN_MODULE_SIZE = 1 * 1024 * 1024;\n\n private readonly MAX_MODULE_SIZE = 5 * 1024 * 1024;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Validate a WASM module\n */\n async validate(wasmData: Uint8Array): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n const result: WasmValidationResult = {\n isValid: true,\n errors,\n warnings,\n };\n\n try {\n if (wasmData.length > this.WARN_MODULE_SIZE) {\n warnings.push(\n `Large module size: ${(wasmData.length / 1024 / 1024).toFixed(2)} MB`,\n );\n }\n if (wasmData.length > this.MAX_MODULE_SIZE) {\n errors.push('Module size exceeds maximum allowed');\n result.isValid = false;\n }\n\n if (!this.validateMagicNumber(wasmData)) {\n errors.push('Invalid WASM magic number');\n result.isValid = false;\n return result;\n }\n\n const version = this.getWasmVersion(wasmData);\n result.version = version;\n if (version !== 1) {\n errors.push(`Unsupported WASM version: ${version}`);\n result.isValid = false;\n return result;\n }\n\n const moduleInfo = await this.parseModule(wasmData);\n\n result.exports = moduleInfo.exports;\n for (const required of this.REQUIRED_EXPORTS) {\n if (!moduleInfo.exports.includes(required)) {\n errors.push(`Missing required export: ${required}`);\n result.isValid = false;\n }\n }\n\n result.imports = moduleInfo.imports;\n for (const imp of moduleInfo.imports) {\n const importName = `${imp.module}.${imp.name}`;\n if (!this.ALLOWED_IMPORTS.has(importName)) {\n errors.push(`Disallowed import: ${importName}`);\n result.isValid = false;\n }\n }\n\n if (moduleInfo.memory) {\n result.memoryRequirements = moduleInfo.memory;\n if (moduleInfo.memory.initial > this.MAX_INITIAL_MEMORY) {\n errors.push(\n `Excessive initial memory: ${moduleInfo.memory.initial} pages`,\n );\n result.isValid = false;\n }\n }\n\n if (moduleInfo.hasStartFunction) {\n warnings.push('Module has start function - may execute code on load');\n }\n\n if (moduleInfo.functionCount > 100) {\n warnings.push(`High function count: ${moduleInfo.functionCount}`);\n }\n\n if (this.hasSuspiciousPatterns(wasmData)) {\n warnings.push('Potentially unsafe operation detected');\n }\n\n result.exportSignatures = moduleInfo.exportSignatures;\n } catch (error) {\n this.logger.error('WASM validation failed', { error });\n errors.push(\n `Validation error: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n result.isValid = false;\n }\n\n return result;\n }\n\n /**\n * Validate INFO function return\n */\n async validateInfoFunction(\n infoFunc: () => Promise<string> | string,\n ): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n try {\n const infoStr = await infoFunc();\n const info = JSON.parse(infoStr);\n\n if (!info.name || !info.version || !info.hashlinks_version) {\n errors.push('INFO missing required fields');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n\n return {\n isValid: true,\n errors,\n warnings,\n moduleInfo: info,\n };\n } catch (error) {\n errors.push('INFO function returned invalid JSON');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n }\n\n /**\n * Validate action parameter schemas\n */\n async validateActionSchemas(moduleInfo: any): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n if (moduleInfo.validation_rules) {\n for (const [action, rule] of Object.entries(\n moduleInfo.validation_rules,\n )) {\n if (typeof rule !== 'object') {\n errors.push(`Invalid validation rule for action: ${action}`);\n }\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n };\n }\n\n /**\n * Extract metadata from WASM\n */\n async extractMetadata(wasmData: Uint8Array): Promise<any> {\n return {\n size: wasmData.length,\n hash: await this.calculateHash(wasmData),\n producers: { language: ['Unknown'] },\n };\n }\n\n /**\n * Calculate WASM hash\n */\n async calculateHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData);\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash for WASM data\n */\n private createSSRSafeHash(wasmData: Uint8Array): string {\n let hash = 0;\n for (let i = 0; i < Math.min(wasmData.length, 1024); i++) {\n hash = ((hash << 5) - hash + wasmData[i]) & 0xffffffff;\n }\n return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Validate WASM magic number\n */\n private validateMagicNumber(data: Uint8Array): boolean {\n return (\n data.length >= 4 &&\n data[0] === 0x00 &&\n data[1] === 0x61 &&\n data[2] === 0x73 &&\n data[3] === 0x6d\n );\n }\n\n /**\n * Get WASM version\n */\n private getWasmVersion(data: Uint8Array): number {\n if (data.length < 8) return 0;\n return data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24);\n }\n\n /**\n * Parse WASM module (simplified for testing)\n */\n private async parseModule(data: Uint8Array): Promise<any> {\n const textData = data.slice(8);\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(textData);\n\n const exports: string[] = [];\n if (dataStr.includes('INFO')) exports.push('INFO');\n if (dataStr.includes('POST')) exports.push('POST');\n if (dataStr.includes('GET')) exports.push('GET');\n\n if (exports.length === 0 && data.length > 8) {\n exports.push('INFO', 'POST', 'GET');\n }\n\n const imports: ImportInfo[] = [];\n const importParts = dataStr.split('import:');\n for (let i = 1; i < importParts.length; i++) {\n const part = importParts[i];\n const match = part.match(\n /^([a-zA-Z_]+[a-zA-Z0-9_]*)\\.([a-zA-Z_]+[a-zA-Z0-9_]*)/,\n );\n if (match) {\n imports.push({\n module: match[1],\n name: match[2],\n type: 'function',\n });\n }\n }\n\n let initial = 1;\n let maximum = 16;\n const memMatch = dataStr.match(/memory:(\\d+)(?:-(\\d+))?/);\n if (memMatch) {\n initial = parseInt(memMatch[1]);\n if (memMatch[2]) maximum = parseInt(memMatch[2]);\n }\n\n let functionCount = 10;\n const funcMatch = dataStr.match(/functions:(\\d+)/);\n if (funcMatch) {\n functionCount = parseInt(funcMatch[1]);\n }\n\n const hasStartFunction = dataStr.includes('start:true');\n\n return {\n exports,\n imports,\n memory: { initial, maximum },\n functionCount,\n hasStartFunction,\n exportSignatures: {\n INFO: { type: 'function', params: [], results: ['i32'] },\n POST: {\n type: 'function',\n params: ['i32', 'i32', 'i32', 'i32'],\n results: ['i32'],\n },\n GET: {\n type: 'function',\n params: ['i32', 'i32', 'i32'],\n results: ['i32'],\n },\n },\n };\n }\n\n /**\n * Check for suspicious patterns\n */\n private hasSuspiciousPatterns(data: Uint8Array): boolean {\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(data);\n const suspiciousPatterns = ['eval', '__proto__', 'constructor'];\n\n return suspiciousPatterns.some(pattern => dataStr.includes(pattern));\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es42.js","sources":["../../src/hcs-12/validation/schemas.ts"],"sourcesContent":["/**\n * Zod validation schemas for HCS-12 registries\n *\n * Provides comprehensive validation for all HCS-12 registration types\n * following the standard specification exactly.\n */\n\nimport { z } from 'zod';\n\n/**\n * Common HCS-12 protocol fields\n */\nconst baseRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n});\n\n/**\n * Hedera address format validation\n */\nconst hederaAddressSchema = z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid Hedera address format');\n\n/**\n * SHA-256 hash format validation\n */\nconst sha256HashSchema = z\n .string()\n .regex(/^[a-f0-9]{64}$/, 'Invalid SHA-256 hash format');\n\n/**\n * Source structure schema\n */\nconst sourceStructureSchema = z.object({\n format: z.enum(['tar.gz', 'zip', 'car']),\n root_manifest: z.string(),\n includes_lockfile: z.boolean(),\n workspace_members: z.array(z.string()).optional(),\n});\n\n/**\n * Source verification schema\n */\nconst sourceVerificationSchema = z.object({\n source_t_id: hederaAddressSchema,\n source_hash: sha256HashSchema,\n compiler_version: z.string(),\n cargo_version: z.string(),\n target: z.literal('wasm32-unknown-unknown'),\n profile: z.string(),\n build_flags: z.array(z.string()),\n lockfile_hash: sha256HashSchema,\n source_structure: sourceStructureSchema,\n});\n\n/**\n * Validation rule schema (mirrors Zod API)\n */\nconst validationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n type: z.string().optional(),\n required: z.array(z.string()).optional(),\n properties: z.record(validationRuleSchema).optional(),\n pattern: z.string().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n\n regex: z.string().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n length: z.number().optional(),\n email: z.boolean().optional(),\n url: z.boolean().optional(),\n uuid: z.boolean().optional(),\n cuid: z.boolean().optional(),\n cuid2: z.boolean().optional(),\n ulid: z.boolean().optional(),\n datetime: z.boolean().optional(),\n ip: z.boolean().optional(),\n startsWith: z.string().optional(),\n endsWith: z.string().optional(),\n includes: z.string().optional(),\n\n gt: z.number().optional(),\n gte: z.number().optional(),\n lt: z.number().optional(),\n lte: z.number().optional(),\n int: z.boolean().optional(),\n positive: z.boolean().optional(),\n nonnegative: z.boolean().optional(),\n negative: z.boolean().optional(),\n nonpositive: z.boolean().optional(),\n multipleOf: z.number().optional(),\n finite: z.boolean().optional(),\n safe: z.boolean().optional(),\n\n nonempty: z.boolean().optional(),\n\n literal: z.union([z.string(), z.number(), z.boolean()]).optional(),\n enum: z.array(z.string()).optional(),\n nullable: z.boolean().optional(),\n nullish: z.boolean().optional(),\n optional: z.boolean().optional(),\n\n element: z.any().optional(),\n shape: z.record(z.any()).optional(),\n strict: z.boolean().optional(),\n passthrough: z.boolean().optional(),\n catchall: z.any().optional(),\n }),\n);\n\n/**\n * Action registration schema - follows HCS-12 spec exactly\n */\nexport const actionRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n op: z.literal('register'),\n t_id: hederaAddressSchema,\n hash: sha256HashSchema,\n wasm_hash: sha256HashSchema,\n js_t_id: hederaAddressSchema.optional(),\n js_hash: sha256HashSchema.optional(),\n interface_version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid version format')\n .optional(),\n info_t_id: hederaAddressSchema.optional(),\n source_verification: sourceVerificationSchema.optional(),\n previous_version: z.string().optional(),\n migration_notes: z.string().optional(),\n validation_rules: z.record(validationRuleSchema).optional(),\n m: z.string().optional(),\n});\n\n/**\n * Block registration schema - follows HCS-12 spec exactly\n */\nexport const blockRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n op: z.enum(['register', 'template']),\n name: z.string(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid semver format'),\n data: z.union([z.any(), z.string()]).optional(),\n t_id: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly operations\n */\nconst assemblyOperationSchema = z.enum([\n 'register',\n 'add-action',\n 'add-block',\n 'update',\n]);\n\n/**\n * Assembly registration schema\n */\nconst assemblyRegisterSchema = baseRegistrationSchema.extend({\n op: z.literal('register'),\n name: z.string(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid semver format'),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n author: z.string().optional(),\n});\n\n/**\n * Assembly add-action schema\n */\nconst assemblyAddActionSchema = baseRegistrationSchema.extend({\n op: z.literal('add-action'),\n t_id: hederaAddressSchema,\n alias: z.string(),\n config: z.any().optional(),\n data: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly add-block schema\n */\nconst assemblyAddBlockSchema = baseRegistrationSchema.extend({\n op: z.literal('add-block'),\n block_t_id: hederaAddressSchema,\n actions: z.record(z.string(), hederaAddressSchema).optional(),\n attributes: z.record(z.any()).optional(),\n children: z.array(z.string()).optional(),\n data: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly update schema\n */\nconst assemblyUpdateSchema = baseRegistrationSchema.extend({\n op: z.literal('update'),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Assembly layout schema\n */\nconst assemblyLayoutSchema = z.object({\n type: z.enum(['vertical', 'horizontal', 'grid']),\n responsive: z.boolean().optional(),\n containerClass: z.string().optional(),\n});\n\n/**\n * Assembly source verification schema\n */\nconst assemblySourceVerificationSchema = z.object({\n source_t_id: hederaAddressSchema,\n source_hash: sha256HashSchema,\n description: z.string().optional(),\n});\n\n/**\n * Assembly message schema - union of all operation types\n */\nexport const assemblyMessageSchema = z.discriminatedUnion('op', [\n assemblyRegisterSchema,\n assemblyAddActionSchema,\n assemblyAddBlockSchema,\n assemblyUpdateSchema,\n]);\n\n/**\n * Legacy assembly registration schema for backwards compatibility\n */\nexport const assemblyRegistrationSchema = assemblyRegisterSchema;\n\n/**\n * HashLinks registration schema - for global directory\n */\nexport const hashLinksRegistrationSchema = baseRegistrationSchema.extend({\n op: z.literal('register'),\n t_id: hederaAddressSchema,\n name: z.string().max(100, 'Name must be 100 characters or less'),\n description: z\n .string()\n .max(500, 'Description must be 500 characters or less')\n .optional(),\n tags: z.array(z.string()).max(10, 'Maximum 10 tags allowed').optional(),\n category: z.string().optional(),\n featured: z.boolean().optional(),\n icon: z.string().optional(),\n author: z.string().optional(),\n website: z.string().url().optional(),\n});\n\n/**\n * Validate action registration\n */\nexport function validateActionRegistration(\n data: unknown,\n): z.infer<typeof actionRegistrationSchema> {\n return actionRegistrationSchema.parse(data);\n}\n\n/**\n * Validate block registration\n */\nexport function validateBlockRegistration(\n data: unknown,\n): z.infer<typeof blockRegistrationSchema> {\n return blockRegistrationSchema.parse(data);\n}\n\n/**\n * Validate assembly message (any operation type)\n */\nexport function validateAssemblyMessage(\n data: unknown,\n): z.infer<typeof assemblyMessageSchema> {\n return assemblyMessageSchema.parse(data);\n}\n\n/**\n * Validate assembly registration\n */\nexport function validateAssemblyRegistration(\n data: unknown,\n): z.infer<typeof assemblyRegistrationSchema> {\n return assemblyRegistrationSchema.parse(data);\n}\n\n/**\n * Validate HashLinks registration\n */\nexport function validateHashLinksRegistration(\n data: unknown,\n): z.infer<typeof hashLinksRegistrationSchema> {\n return hashLinksRegistrationSchema.parse(data);\n}\n\n/**\n * Type-safe validation with error details\n */\nexport function safeValidate<T>(\n schema: z.ZodSchema<T>,\n data: unknown,\n): { success: true; data: T } | { success: false; errors: z.ZodError } {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n return { success: false, errors: result.error };\n}\n\n/**\n * Validate data against a schema and return validation result\n */\nexport function validateWithSchema<T>(\n data: unknown,\n schema: z.ZodSchema<T>,\n): { isValid: boolean; errors: string[]; data?: T } {\n const result = schema.safeParse(data);\n if (result.success) {\n return { isValid: true, errors: [], data: result.data };\n }\n return {\n isValid: false,\n errors: result.error.errors.map(e => `${e.path.join('.')}: ${e.message}`),\n };\n}\n"],"names":[],"mappings":"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"}