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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
  2. package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/services/registry-broker/schemas.d.ts +153 -153
  5. package/dist/cjs/standards-sdk.cjs +2 -2
  6. package/dist/cjs/standards-sdk.cjs.map +1 -1
  7. package/dist/cjs/utils/dynamic-import.d.ts +5 -1
  8. package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
  9. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  10. package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
  11. package/dist/es/index.d.ts.map +1 -1
  12. package/dist/es/services/registry-broker/schemas.d.ts +153 -153
  13. package/dist/es/standards-sdk.es.js +134 -135
  14. package/dist/es/standards-sdk.es.js.map +1 -1
  15. package/dist/es/standards-sdk.es10.js +70 -90
  16. package/dist/es/standards-sdk.es10.js.map +1 -1
  17. package/dist/es/standards-sdk.es100.js +229 -27
  18. package/dist/es/standards-sdk.es100.js.map +1 -1
  19. package/dist/es/standards-sdk.es101.js +109 -228
  20. package/dist/es/standards-sdk.es101.js.map +1 -1
  21. package/dist/es/standards-sdk.es102.js +15 -94
  22. package/dist/es/standards-sdk.es102.js.map +1 -1
  23. package/dist/es/standards-sdk.es103.js +80 -30
  24. package/dist/es/standards-sdk.es103.js.map +1 -1
  25. package/dist/es/standards-sdk.es104.js +27 -80
  26. package/dist/es/standards-sdk.es104.js.map +1 -1
  27. package/dist/es/standards-sdk.es105.js +136 -25
  28. package/dist/es/standards-sdk.es105.js.map +1 -1
  29. package/dist/es/standards-sdk.es106.js +27 -140
  30. package/dist/es/standards-sdk.es106.js.map +1 -1
  31. package/dist/es/standards-sdk.es107.js +20 -27
  32. package/dist/es/standards-sdk.es107.js.map +1 -1
  33. package/dist/es/standards-sdk.es108.js +156 -18
  34. package/dist/es/standards-sdk.es108.js.map +1 -1
  35. package/dist/es/standards-sdk.es109.js +198 -148
  36. package/dist/es/standards-sdk.es109.js.map +1 -1
  37. package/dist/es/standards-sdk.es11.js +121 -45
  38. package/dist/es/standards-sdk.es11.js.map +1 -1
  39. package/dist/es/standards-sdk.es110.js +747 -167
  40. package/dist/es/standards-sdk.es110.js.map +1 -1
  41. package/dist/es/standards-sdk.es111.js +9 -786
  42. package/dist/es/standards-sdk.es111.js.map +1 -1
  43. package/dist/es/standards-sdk.es112.js +567 -13
  44. package/dist/es/standards-sdk.es112.js.map +1 -1
  45. package/dist/es/standards-sdk.es113.js +576 -541
  46. package/dist/es/standards-sdk.es113.js.map +1 -1
  47. package/dist/es/standards-sdk.es114.js +12 -601
  48. package/dist/es/standards-sdk.es114.js.map +1 -1
  49. package/dist/es/standards-sdk.es115.js +2 -13
  50. package/dist/es/standards-sdk.es115.js.map +1 -1
  51. package/dist/es/standards-sdk.es116.js +87 -2
  52. package/dist/es/standards-sdk.es116.js.map +1 -1
  53. package/dist/es/standards-sdk.es117.js +37 -84
  54. package/dist/es/standards-sdk.es117.js.map +1 -1
  55. package/dist/es/standards-sdk.es118.js +2 -40
  56. package/dist/es/standards-sdk.es118.js.map +1 -1
  57. package/dist/es/standards-sdk.es119.js +231 -2
  58. package/dist/es/standards-sdk.es119.js.map +1 -1
  59. package/dist/es/standards-sdk.es12.js +60 -159
  60. package/dist/es/standards-sdk.es12.js.map +1 -1
  61. package/dist/es/standards-sdk.es120.js +1110 -201
  62. package/dist/es/standards-sdk.es120.js.map +1 -1
  63. package/dist/es/standards-sdk.es121.js +225 -1059
  64. package/dist/es/standards-sdk.es121.js.map +1 -1
  65. package/dist/es/standards-sdk.es122.js +419 -303
  66. package/dist/es/standards-sdk.es122.js.map +1 -1
  67. package/dist/es/standards-sdk.es123.js +351 -418
  68. package/dist/es/standards-sdk.es123.js.map +1 -1
  69. package/dist/es/standards-sdk.es124.js +872 -347
  70. package/dist/es/standards-sdk.es124.js.map +1 -1
  71. package/dist/es/standards-sdk.es125.js +182 -854
  72. package/dist/es/standards-sdk.es125.js.map +1 -1
  73. package/dist/es/standards-sdk.es126.js +1512 -153
  74. package/dist/es/standards-sdk.es126.js.map +1 -1
  75. package/dist/es/standards-sdk.es127.js +157 -1547
  76. package/dist/es/standards-sdk.es127.js.map +1 -1
  77. package/dist/es/standards-sdk.es128.js +192 -162
  78. package/dist/es/standards-sdk.es128.js.map +1 -1
  79. package/dist/es/standards-sdk.es129.js +61 -164
  80. package/dist/es/standards-sdk.es129.js.map +1 -1
  81. package/dist/es/standards-sdk.es13.js +200 -60
  82. package/dist/es/standards-sdk.es13.js.map +1 -1
  83. package/dist/es/standards-sdk.es130.js +102 -85
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +222 -96
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +153 -220
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +104 -162
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +296 -92
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +432 -294
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +14 -461
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +79 -15
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +77 -71
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +152 -80
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +149 -178
  104. package/dist/es/standards-sdk.es14.js.map +1 -1
  105. package/dist/es/standards-sdk.es140.js +7 -159
  106. package/dist/es/standards-sdk.es140.js.map +1 -1
  107. package/dist/es/standards-sdk.es141.js +86 -7
  108. package/dist/es/standards-sdk.es141.js.map +1 -1
  109. package/dist/es/standards-sdk.es142.js +44 -65
  110. package/dist/es/standards-sdk.es142.js.map +1 -1
  111. package/dist/es/standards-sdk.es143.js +30 -65
  112. package/dist/es/standards-sdk.es143.js.map +1 -1
  113. package/dist/es/standards-sdk.es144.js +34 -30
  114. package/dist/es/standards-sdk.es144.js.map +1 -1
  115. package/dist/es/standards-sdk.es145.js +28 -34
  116. package/dist/es/standards-sdk.es145.js.map +1 -1
  117. package/dist/es/standards-sdk.es146.js +138 -28
  118. package/dist/es/standards-sdk.es146.js.map +1 -1
  119. package/dist/es/standards-sdk.es147.js +37 -133
  120. package/dist/es/standards-sdk.es147.js.map +1 -1
  121. package/dist/es/standards-sdk.es148.js +12280 -33
  122. package/dist/es/standards-sdk.es148.js.map +1 -1
  123. package/dist/es/standards-sdk.es149.js +1 -1
  124. package/dist/es/standards-sdk.es15.js +152 -151
  125. package/dist/es/standards-sdk.es15.js.map +1 -1
  126. package/dist/es/standards-sdk.es150.js +12 -12284
  127. package/dist/es/standards-sdk.es150.js.map +1 -1
  128. package/dist/es/standards-sdk.es151.js +54 -15
  129. package/dist/es/standards-sdk.es151.js.map +1 -1
  130. package/dist/es/standards-sdk.es152.js +72 -160
  131. package/dist/es/standards-sdk.es152.js.map +1 -1
  132. package/dist/es/standards-sdk.es153.js +139 -289
  133. package/dist/es/standards-sdk.es153.js.map +1 -1
  134. package/dist/es/standards-sdk.es154.js +274 -298
  135. package/dist/es/standards-sdk.es154.js.map +1 -1
  136. package/dist/es/standards-sdk.es155.js +262 -369
  137. package/dist/es/standards-sdk.es155.js.map +1 -1
  138. package/dist/es/standards-sdk.es156.js +316 -194
  139. package/dist/es/standards-sdk.es156.js.map +1 -1
  140. package/dist/es/standards-sdk.es157.js +319 -64
  141. package/dist/es/standards-sdk.es157.js.map +1 -1
  142. package/dist/es/standards-sdk.es158.js +69 -49
  143. package/dist/es/standards-sdk.es158.js.map +1 -1
  144. package/dist/es/standards-sdk.es159.js +222 -65
  145. package/dist/es/standards-sdk.es159.js.map +1 -1
  146. package/dist/es/standards-sdk.es16.js +917 -136
  147. package/dist/es/standards-sdk.es16.js.map +1 -1
  148. package/dist/es/standards-sdk.es160.js +223 -218
  149. package/dist/es/standards-sdk.es160.js.map +1 -1
  150. package/dist/es/standards-sdk.es17.js +23 -948
  151. package/dist/es/standards-sdk.es17.js.map +1 -1
  152. package/dist/es/standards-sdk.es18.js +2422 -24
  153. package/dist/es/standards-sdk.es18.js.map +1 -1
  154. package/dist/es/standards-sdk.es19.js +818 -2092
  155. package/dist/es/standards-sdk.es19.js.map +1 -1
  156. package/dist/es/standards-sdk.es2.js +654 -189
  157. package/dist/es/standards-sdk.es2.js.map +1 -1
  158. package/dist/es/standards-sdk.es20.js +205 -1092
  159. package/dist/es/standards-sdk.es20.js.map +1 -1
  160. package/dist/es/standards-sdk.es21.js +858 -221
  161. package/dist/es/standards-sdk.es21.js.map +1 -1
  162. package/dist/es/standards-sdk.es22.js +179 -903
  163. package/dist/es/standards-sdk.es22.js.map +1 -1
  164. package/dist/es/standards-sdk.es23.js +164 -179
  165. package/dist/es/standards-sdk.es23.js.map +1 -1
  166. package/dist/es/standards-sdk.es24.js +62 -118
  167. package/dist/es/standards-sdk.es24.js.map +1 -1
  168. package/dist/es/standards-sdk.es25.js +377 -57
  169. package/dist/es/standards-sdk.es25.js.map +1 -1
  170. package/dist/es/standards-sdk.es26.js +36 -394
  171. package/dist/es/standards-sdk.es26.js.map +1 -1
  172. package/dist/es/standards-sdk.es27.js +901 -50
  173. package/dist/es/standards-sdk.es27.js.map +1 -1
  174. package/dist/es/standards-sdk.es28.js +134 -922
  175. package/dist/es/standards-sdk.es28.js.map +1 -1
  176. package/dist/es/standards-sdk.es29.js +7 -134
  177. package/dist/es/standards-sdk.es29.js.map +1 -1
  178. package/dist/es/standards-sdk.es3.js +63 -680
  179. package/dist/es/standards-sdk.es3.js.map +1 -1
  180. package/dist/es/standards-sdk.es30.js +344 -7
  181. package/dist/es/standards-sdk.es30.js.map +1 -1
  182. package/dist/es/standards-sdk.es31.js +302 -287
  183. package/dist/es/standards-sdk.es31.js.map +1 -1
  184. package/dist/es/standards-sdk.es32.js +94 -322
  185. package/dist/es/standards-sdk.es32.js.map +1 -1
  186. package/dist/es/standards-sdk.es33.js +458 -101
  187. package/dist/es/standards-sdk.es33.js.map +1 -1
  188. package/dist/es/standards-sdk.es34.js +132 -451
  189. package/dist/es/standards-sdk.es34.js.map +1 -1
  190. package/dist/es/standards-sdk.es35.js +216 -130
  191. package/dist/es/standards-sdk.es35.js.map +1 -1
  192. package/dist/es/standards-sdk.es36.js +273 -196
  193. package/dist/es/standards-sdk.es36.js.map +1 -1
  194. package/dist/es/standards-sdk.es37.js +148 -87
  195. package/dist/es/standards-sdk.es37.js.map +1 -1
  196. package/dist/es/standards-sdk.es38.js +183 -320
  197. package/dist/es/standards-sdk.es38.js.map +1 -1
  198. package/dist/es/standards-sdk.es39.js +238 -161
  199. package/dist/es/standards-sdk.es39.js.map +1 -1
  200. package/dist/es/standards-sdk.es4.js +425 -63
  201. package/dist/es/standards-sdk.es4.js.map +1 -1
  202. package/dist/es/standards-sdk.es40.js +136 -254
  203. package/dist/es/standards-sdk.es40.js.map +1 -1
  204. package/dist/es/standards-sdk.es41.js +225 -176
  205. package/dist/es/standards-sdk.es41.js.map +1 -1
  206. package/dist/es/standards-sdk.es42.js +199 -261
  207. package/dist/es/standards-sdk.es42.js.map +1 -1
  208. package/dist/es/standards-sdk.es43.js +237 -199
  209. package/dist/es/standards-sdk.es43.js.map +1 -1
  210. package/dist/es/standards-sdk.es44.js +209 -201
  211. package/dist/es/standards-sdk.es44.js.map +1 -1
  212. package/dist/es/standards-sdk.es45.js +305 -201
  213. package/dist/es/standards-sdk.es45.js.map +1 -1
  214. package/dist/es/standards-sdk.es46.js +371 -261
  215. package/dist/es/standards-sdk.es46.js.map +1 -1
  216. package/dist/es/standards-sdk.es47.js +316 -372
  217. package/dist/es/standards-sdk.es47.js.map +1 -1
  218. package/dist/es/standards-sdk.es48.js +404 -336
  219. package/dist/es/standards-sdk.es48.js.map +1 -1
  220. package/dist/es/standards-sdk.es49.js +83 -449
  221. package/dist/es/standards-sdk.es49.js.map +1 -1
  222. package/dist/es/standards-sdk.es5.js +232 -354
  223. package/dist/es/standards-sdk.es5.js.map +1 -1
  224. package/dist/es/standards-sdk.es50.js +179 -89
  225. package/dist/es/standards-sdk.es50.js.map +1 -1
  226. package/dist/es/standards-sdk.es51.js +231 -165
  227. package/dist/es/standards-sdk.es51.js.map +1 -1
  228. package/dist/es/standards-sdk.es52.js +25 -262
  229. package/dist/es/standards-sdk.es52.js.map +1 -1
  230. package/dist/es/standards-sdk.es53.js +56 -26
  231. package/dist/es/standards-sdk.es53.js.map +1 -1
  232. package/dist/es/standards-sdk.es54.js +12 -57
  233. package/dist/es/standards-sdk.es54.js.map +1 -1
  234. package/dist/es/standards-sdk.es55.js +49 -12
  235. package/dist/es/standards-sdk.es55.js.map +1 -1
  236. package/dist/es/standards-sdk.es56.js +115 -43
  237. package/dist/es/standards-sdk.es56.js.map +1 -1
  238. package/dist/es/standards-sdk.es57.js +42 -115
  239. package/dist/es/standards-sdk.es57.js.map +1 -1
  240. package/dist/es/standards-sdk.es58.js +52 -43
  241. package/dist/es/standards-sdk.es58.js.map +1 -1
  242. package/dist/es/standards-sdk.es59.js +36 -50
  243. package/dist/es/standards-sdk.es59.js.map +1 -1
  244. package/dist/es/standards-sdk.es6.js +125 -246
  245. package/dist/es/standards-sdk.es6.js.map +1 -1
  246. package/dist/es/standards-sdk.es60.js +207 -39
  247. package/dist/es/standards-sdk.es60.js.map +1 -1
  248. package/dist/es/standards-sdk.es61.js +24 -201
  249. package/dist/es/standards-sdk.es61.js.map +1 -1
  250. package/dist/es/standards-sdk.es62.js +87 -25
  251. package/dist/es/standards-sdk.es62.js.map +1 -1
  252. package/dist/es/standards-sdk.es63.js +3 -51
  253. package/dist/es/standards-sdk.es63.js.map +1 -1
  254. package/dist/es/standards-sdk.es64.js +100 -3
  255. package/dist/es/standards-sdk.es64.js.map +1 -1
  256. package/dist/es/standards-sdk.es65.js +61 -62
  257. package/dist/es/standards-sdk.es65.js.map +1 -1
  258. package/dist/es/standards-sdk.es66.js +17 -98
  259. package/dist/es/standards-sdk.es66.js.map +1 -1
  260. package/dist/es/standards-sdk.es67.js +77 -19
  261. package/dist/es/standards-sdk.es67.js.map +1 -1
  262. package/dist/es/standards-sdk.es68.js +458 -77
  263. package/dist/es/standards-sdk.es68.js.map +1 -1
  264. package/dist/es/standards-sdk.es69.js +106 -240
  265. package/dist/es/standards-sdk.es69.js.map +1 -1
  266. package/dist/es/standards-sdk.es7.js +28 -183
  267. package/dist/es/standards-sdk.es7.js.map +1 -1
  268. package/dist/es/standards-sdk.es70.js +170 -286
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +71 -207
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +71 -72
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +143 -71
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +62 -136
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +380 -45
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +222 -130
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +320 -444
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +88 -371
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +125 -89
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es8.js +80 -29
  289. package/dist/es/standards-sdk.es8.js.map +1 -1
  290. package/dist/es/standards-sdk.es80.js +8 -125
  291. package/dist/es/standards-sdk.es80.js.map +1 -1
  292. package/dist/es/standards-sdk.es81.js +45 -6
  293. package/dist/es/standards-sdk.es81.js.map +1 -1
  294. package/dist/es/standards-sdk.es82.js +98 -44
  295. package/dist/es/standards-sdk.es82.js.map +1 -1
  296. package/dist/es/standards-sdk.es83.js +331 -84
  297. package/dist/es/standards-sdk.es83.js.map +1 -1
  298. package/dist/es/standards-sdk.es84.js +93 -160
  299. package/dist/es/standards-sdk.es84.js.map +1 -1
  300. package/dist/es/standards-sdk.es85.js +55 -275
  301. package/dist/es/standards-sdk.es85.js.map +1 -1
  302. package/dist/es/standards-sdk.es86.js +43 -55
  303. package/dist/es/standards-sdk.es86.js.map +1 -1
  304. package/dist/es/standards-sdk.es87.js +145 -44
  305. package/dist/es/standards-sdk.es87.js.map +1 -1
  306. package/dist/es/standards-sdk.es88.js +30 -113
  307. package/dist/es/standards-sdk.es88.js.map +1 -1
  308. package/dist/es/standards-sdk.es89.js +22 -59
  309. package/dist/es/standards-sdk.es89.js.map +1 -1
  310. package/dist/es/standards-sdk.es9.js +104 -80
  311. package/dist/es/standards-sdk.es9.js.map +1 -1
  312. package/dist/es/standards-sdk.es90.js +23 -28
  313. package/dist/es/standards-sdk.es90.js.map +1 -1
  314. package/dist/es/standards-sdk.es91.js +238 -23
  315. package/dist/es/standards-sdk.es91.js.map +1 -1
  316. package/dist/es/standards-sdk.es92.js +267 -225
  317. package/dist/es/standards-sdk.es92.js.map +1 -1
  318. package/dist/es/standards-sdk.es93.js +95 -220
  319. package/dist/es/standards-sdk.es93.js.map +1 -1
  320. package/dist/es/standards-sdk.es94.js +124 -136
  321. package/dist/es/standards-sdk.es94.js.map +1 -1
  322. package/dist/es/standards-sdk.es95.js +42 -138
  323. package/dist/es/standards-sdk.es95.js.map +1 -1
  324. package/dist/es/standards-sdk.es96.js +259 -43
  325. package/dist/es/standards-sdk.es96.js.map +1 -1
  326. package/dist/es/standards-sdk.es97.js +82 -245
  327. package/dist/es/standards-sdk.es97.js.map +1 -1
  328. package/dist/es/standards-sdk.es98.js +49 -50
  329. package/dist/es/standards-sdk.es98.js.map +1 -1
  330. package/dist/es/standards-sdk.es99.js +29 -100
  331. package/dist/es/standards-sdk.es99.js.map +1 -1
  332. package/dist/es/utils/dynamic-import.d.ts +5 -1
  333. package/dist/es/utils/dynamic-import.d.ts.map +1 -1
  334. package/package.json +4 -4
  335. package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
  336. package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
  337. package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
  338. package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
  339. package/dist/es/standards-sdk.es161.js +0 -247
  340. package/dist/es/standards-sdk.es161.js.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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"}