@hashgraphonline/standards-sdk 0.1.161 → 0.1.162

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 (329) hide show
  1. package/dist/cjs/hcs-14/index.d.ts +1 -0
  2. package/dist/cjs/hcs-14/index.d.ts.map +1 -1
  3. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  4. package/dist/cjs/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  5. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  6. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  7. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  8. package/dist/cjs/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  9. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  10. package/dist/cjs/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  11. package/dist/cjs/hcs-14/resolvers/hiero.d.ts +1 -0
  12. package/dist/cjs/hcs-14/resolvers/hiero.d.ts.map +1 -1
  13. package/dist/cjs/hcs-14/resolvers/registry.d.ts +21 -0
  14. package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
  15. package/dist/cjs/hcs-14/resolvers/types.d.ts +40 -5
  16. package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
  17. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  18. package/dist/cjs/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  19. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  20. package/dist/cjs/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  21. package/dist/cjs/hcs-14/sdk.d.ts +23 -1
  22. package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +2 -2
  24. package/dist/cjs/standards-sdk.cjs.map +1 -1
  25. package/dist/es/hcs-14/index.d.ts +1 -0
  26. package/dist/es/hcs-14/index.d.ts.map +1 -1
  27. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts +1 -0
  28. package/dist/es/hcs-14/resolvers/aid-dns-web-profile.d.ts.map +1 -1
  29. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts +23 -0
  30. package/dist/es/hcs-14/resolvers/ans-dns-web-profile-utils.d.ts.map +1 -0
  31. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts +32 -0
  32. package/dist/es/hcs-14/resolvers/ans-dns-web-profile.d.ts.map +1 -0
  33. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts +1 -0
  34. package/dist/es/hcs-14/resolvers/hcs-11-profile.d.ts.map +1 -1
  35. package/dist/es/hcs-14/resolvers/hiero.d.ts +1 -0
  36. package/dist/es/hcs-14/resolvers/hiero.d.ts.map +1 -1
  37. package/dist/es/hcs-14/resolvers/registry.d.ts +21 -0
  38. package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
  39. package/dist/es/hcs-14/resolvers/types.d.ts +40 -5
  40. package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
  41. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts +1 -0
  42. package/dist/es/hcs-14/resolvers/uaid-did-resolution-profile.d.ts.map +1 -1
  43. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts +1 -0
  44. package/dist/es/hcs-14/resolvers/uaid-dns-web-profile.d.ts.map +1 -1
  45. package/dist/es/hcs-14/sdk.d.ts +23 -1
  46. package/dist/es/hcs-14/sdk.d.ts.map +1 -1
  47. package/dist/es/standards-sdk.es.js +89 -86
  48. package/dist/es/standards-sdk.es.js.map +1 -1
  49. package/dist/es/standards-sdk.es100.js +136 -124
  50. package/dist/es/standards-sdk.es100.js.map +1 -1
  51. package/dist/es/standards-sdk.es101.js +138 -42
  52. package/dist/es/standards-sdk.es101.js.map +1 -1
  53. package/dist/es/standards-sdk.es102.js +43 -259
  54. package/dist/es/standards-sdk.es102.js.map +1 -1
  55. package/dist/es/standards-sdk.es103.js +245 -82
  56. package/dist/es/standards-sdk.es103.js.map +1 -1
  57. package/dist/es/standards-sdk.es104.js +50 -49
  58. package/dist/es/standards-sdk.es104.js.map +1 -1
  59. package/dist/es/standards-sdk.es105.js +100 -29
  60. package/dist/es/standards-sdk.es105.js.map +1 -1
  61. package/dist/es/standards-sdk.es106.js +27 -229
  62. package/dist/es/standards-sdk.es106.js.map +1 -1
  63. package/dist/es/standards-sdk.es107.js +228 -109
  64. package/dist/es/standards-sdk.es107.js.map +1 -1
  65. package/dist/es/standards-sdk.es108.js +94 -15
  66. package/dist/es/standards-sdk.es108.js.map +1 -1
  67. package/dist/es/standards-sdk.es109.js +30 -80
  68. package/dist/es/standards-sdk.es109.js.map +1 -1
  69. package/dist/es/standards-sdk.es11.js +1 -1
  70. package/dist/es/standards-sdk.es110.js +80 -27
  71. package/dist/es/standards-sdk.es110.js.map +1 -1
  72. package/dist/es/standards-sdk.es111.js +27 -248
  73. package/dist/es/standards-sdk.es111.js.map +1 -1
  74. package/dist/es/standards-sdk.es112.js +246 -472
  75. package/dist/es/standards-sdk.es112.js.map +1 -1
  76. package/dist/es/standards-sdk.es113.js +458 -85
  77. package/dist/es/standards-sdk.es113.js.map +1 -1
  78. package/dist/es/standards-sdk.es114.js +96 -151
  79. package/dist/es/standards-sdk.es114.js.map +1 -1
  80. package/dist/es/standards-sdk.es115.js +155 -29
  81. package/dist/es/standards-sdk.es115.js.map +1 -1
  82. package/dist/es/standards-sdk.es116.js +26 -4
  83. package/dist/es/standards-sdk.es116.js.map +1 -1
  84. package/dist/es/standards-sdk.es117.js +10 -140
  85. package/dist/es/standards-sdk.es117.js.map +1 -1
  86. package/dist/es/standards-sdk.es118.js +140 -27
  87. package/dist/es/standards-sdk.es118.js.map +1 -1
  88. package/dist/es/standards-sdk.es119.js +27 -20
  89. package/dist/es/standards-sdk.es119.js.map +1 -1
  90. package/dist/es/standards-sdk.es12.js +1 -1
  91. package/dist/es/standards-sdk.es120.js +18 -156
  92. package/dist/es/standards-sdk.es120.js.map +1 -1
  93. package/dist/es/standards-sdk.es121.js +148 -191
  94. package/dist/es/standards-sdk.es121.js.map +1 -1
  95. package/dist/es/standards-sdk.es122.js +160 -747
  96. package/dist/es/standards-sdk.es122.js.map +1 -1
  97. package/dist/es/standards-sdk.es123.js +786 -9
  98. package/dist/es/standards-sdk.es123.js.map +1 -1
  99. package/dist/es/standards-sdk.es124.js +13 -567
  100. package/dist/es/standards-sdk.es124.js.map +1 -1
  101. package/dist/es/standards-sdk.es125.js +541 -576
  102. package/dist/es/standards-sdk.es125.js.map +1 -1
  103. package/dist/es/standards-sdk.es126.js +601 -12
  104. package/dist/es/standards-sdk.es126.js.map +1 -1
  105. package/dist/es/standards-sdk.es127.js +13 -2
  106. package/dist/es/standards-sdk.es127.js.map +1 -1
  107. package/dist/es/standards-sdk.es128.js +2 -87
  108. package/dist/es/standards-sdk.es128.js.map +1 -1
  109. package/dist/es/standards-sdk.es129.js +84 -37
  110. package/dist/es/standards-sdk.es129.js.map +1 -1
  111. package/dist/es/standards-sdk.es13.js +1 -1
  112. package/dist/es/standards-sdk.es130.js +40 -2
  113. package/dist/es/standards-sdk.es130.js.map +1 -1
  114. package/dist/es/standards-sdk.es131.js +2 -235
  115. package/dist/es/standards-sdk.es131.js.map +1 -1
  116. package/dist/es/standards-sdk.es132.js +204 -1109
  117. package/dist/es/standards-sdk.es132.js.map +1 -1
  118. package/dist/es/standards-sdk.es133.js +1059 -225
  119. package/dist/es/standards-sdk.es133.js.map +1 -1
  120. package/dist/es/standards-sdk.es134.js +303 -419
  121. package/dist/es/standards-sdk.es134.js.map +1 -1
  122. package/dist/es/standards-sdk.es135.js +418 -351
  123. package/dist/es/standards-sdk.es135.js.map +1 -1
  124. package/dist/es/standards-sdk.es136.js +347 -1108
  125. package/dist/es/standards-sdk.es136.js.map +1 -1
  126. package/dist/es/standards-sdk.es137.js +1088 -180
  127. package/dist/es/standards-sdk.es137.js.map +1 -1
  128. package/dist/es/standards-sdk.es138.js +153 -1512
  129. package/dist/es/standards-sdk.es138.js.map +1 -1
  130. package/dist/es/standards-sdk.es139.js +1567 -1255
  131. package/dist/es/standards-sdk.es139.js.map +1 -1
  132. package/dist/es/standards-sdk.es14.js +1 -1
  133. package/dist/es/standards-sdk.es140.js +1255 -17
  134. package/dist/es/standards-sdk.es140.js.map +1 -1
  135. package/dist/es/standards-sdk.es141.js +15 -85
  136. package/dist/es/standards-sdk.es141.js.map +1 -1
  137. package/dist/es/standards-sdk.es142.js +77 -71
  138. package/dist/es/standards-sdk.es142.js.map +1 -1
  139. package/dist/es/standards-sdk.es143.js +79 -891
  140. package/dist/es/standards-sdk.es143.js.map +1 -1
  141. package/dist/es/standards-sdk.es144.js +886 -53
  142. package/dist/es/standards-sdk.es144.js.map +1 -1
  143. package/dist/es/standards-sdk.es145.js +53 -152
  144. package/dist/es/standards-sdk.es145.js.map +1 -1
  145. package/dist/es/standards-sdk.es146.js +159 -7
  146. package/dist/es/standards-sdk.es146.js.map +1 -1
  147. package/dist/es/standards-sdk.es147.js +7 -86
  148. package/dist/es/standards-sdk.es147.js.map +1 -1
  149. package/dist/es/standards-sdk.es148.js +65 -44
  150. package/dist/es/standards-sdk.es148.js.map +1 -1
  151. package/dist/es/standards-sdk.es149.js +65 -30
  152. package/dist/es/standards-sdk.es149.js.map +1 -1
  153. package/dist/es/standards-sdk.es15.js +1 -1
  154. package/dist/es/standards-sdk.es150.js +30 -34
  155. package/dist/es/standards-sdk.es150.js.map +1 -1
  156. package/dist/es/standards-sdk.es151.js +34 -45
  157. package/dist/es/standards-sdk.es151.js.map +1 -1
  158. package/dist/es/standards-sdk.es152.js +48 -138
  159. package/dist/es/standards-sdk.es152.js.map +1 -1
  160. package/dist/es/standards-sdk.es153.js +133 -37
  161. package/dist/es/standards-sdk.es153.js.map +1 -1
  162. package/dist/es/standards-sdk.es154.js +34 -12474
  163. package/dist/es/standards-sdk.es154.js.map +1 -1
  164. package/dist/es/standards-sdk.es155.js +12477 -12
  165. package/dist/es/standards-sdk.es155.js.map +1 -1
  166. package/dist/es/standards-sdk.es156.js +15 -54
  167. package/dist/es/standards-sdk.es156.js.map +1 -1
  168. package/dist/es/standards-sdk.es157.js +48 -76
  169. package/dist/es/standards-sdk.es157.js.map +1 -1
  170. package/dist/es/standards-sdk.es158.js +69 -66
  171. package/dist/es/standards-sdk.es158.js.map +1 -1
  172. package/dist/es/standards-sdk.es159.js +71 -63
  173. package/dist/es/standards-sdk.es159.js.map +1 -1
  174. package/dist/es/standards-sdk.es16.js +5 -5
  175. package/dist/es/standards-sdk.es160.js +188 -160
  176. package/dist/es/standards-sdk.es160.js.map +1 -1
  177. package/dist/es/standards-sdk.es161.js +65 -314
  178. package/dist/es/standards-sdk.es161.js.map +1 -1
  179. package/dist/es/standards-sdk.es162.js +232 -336
  180. package/dist/es/standards-sdk.es162.js.map +1 -1
  181. package/dist/es/standards-sdk.es163.js +129 -410
  182. package/dist/es/standards-sdk.es163.js.map +1 -1
  183. package/dist/es/standards-sdk.es164.js +200 -209
  184. package/dist/es/standards-sdk.es164.js.map +1 -1
  185. package/dist/es/standards-sdk.es165.js +334 -64
  186. package/dist/es/standards-sdk.es165.js.map +1 -1
  187. package/dist/es/standards-sdk.es166.js +442 -231
  188. package/dist/es/standards-sdk.es166.js.map +1 -1
  189. package/dist/es/standards-sdk.es167.js +317 -158
  190. package/dist/es/standards-sdk.es167.js.map +1 -1
  191. package/dist/es/standards-sdk.es168.js +61 -207
  192. package/dist/es/standards-sdk.es168.js.map +1 -1
  193. package/dist/es/standards-sdk.es169.js +155 -222
  194. package/dist/es/standards-sdk.es169.js.map +1 -1
  195. package/dist/es/standards-sdk.es170.js +178 -75
  196. package/dist/es/standards-sdk.es170.js.map +1 -1
  197. package/dist/es/standards-sdk.es171.js +226 -113
  198. package/dist/es/standards-sdk.es171.js.map +1 -1
  199. package/dist/es/standards-sdk.es172.js +77 -119
  200. package/dist/es/standards-sdk.es172.js.map +1 -1
  201. package/dist/es/standards-sdk.es173.js +103 -162
  202. package/dist/es/standards-sdk.es173.js.map +1 -1
  203. package/dist/es/standards-sdk.es174.js +141 -119
  204. package/dist/es/standards-sdk.es174.js.map +1 -1
  205. package/dist/es/standards-sdk.es175.js +152 -298
  206. package/dist/es/standards-sdk.es175.js.map +1 -1
  207. package/dist/es/standards-sdk.es176.js +120 -240
  208. package/dist/es/standards-sdk.es176.js.map +1 -1
  209. package/dist/es/standards-sdk.es177.js +298 -83
  210. package/dist/es/standards-sdk.es177.js.map +1 -1
  211. package/dist/es/standards-sdk.es178.js +262 -0
  212. package/dist/es/standards-sdk.es178.js.map +1 -0
  213. package/dist/es/standards-sdk.es179.js +119 -0
  214. package/dist/es/standards-sdk.es179.js.map +1 -0
  215. package/dist/es/standards-sdk.es18.js +12 -12
  216. package/dist/es/standards-sdk.es19.js +9 -9
  217. package/dist/es/standards-sdk.es2.js +2 -2
  218. package/dist/es/standards-sdk.es20.js +1 -1
  219. package/dist/es/standards-sdk.es21.js +1 -1
  220. package/dist/es/standards-sdk.es22.js +1 -1
  221. package/dist/es/standards-sdk.es23.js +1 -1
  222. package/dist/es/standards-sdk.es24.js +1 -1
  223. package/dist/es/standards-sdk.es25.js +1 -1
  224. package/dist/es/standards-sdk.es26.js +1 -1
  225. package/dist/es/standards-sdk.es27.js +12 -12
  226. package/dist/es/standards-sdk.es30.js +2 -2
  227. package/dist/es/standards-sdk.es31.js +4 -4
  228. package/dist/es/standards-sdk.es32.js +1 -1
  229. package/dist/es/standards-sdk.es35.js +6 -6
  230. package/dist/es/standards-sdk.es36.js +4 -4
  231. package/dist/es/standards-sdk.es37.js +2 -2
  232. package/dist/es/standards-sdk.es38.js +2 -2
  233. package/dist/es/standards-sdk.es39.js +1 -1
  234. package/dist/es/standards-sdk.es4.js +2 -2
  235. package/dist/es/standards-sdk.es40.js +1 -1
  236. package/dist/es/standards-sdk.es41.js +2 -2
  237. package/dist/es/standards-sdk.es46.js +1 -1
  238. package/dist/es/standards-sdk.es5.js +2 -2
  239. package/dist/es/standards-sdk.es51.js +1 -1
  240. package/dist/es/standards-sdk.es53.js +1 -1
  241. package/dist/es/standards-sdk.es56.js +2 -2
  242. package/dist/es/standards-sdk.es58.js +37 -4
  243. package/dist/es/standards-sdk.es58.js.map +1 -1
  244. package/dist/es/standards-sdk.es59.js +17 -10
  245. package/dist/es/standards-sdk.es59.js.map +1 -1
  246. package/dist/es/standards-sdk.es6.js +2 -2
  247. package/dist/es/standards-sdk.es60.js +2 -1
  248. package/dist/es/standards-sdk.es60.js.map +1 -1
  249. package/dist/es/standards-sdk.es61.js +1 -0
  250. package/dist/es/standards-sdk.es61.js.map +1 -1
  251. package/dist/es/standards-sdk.es62.js +19 -5
  252. package/dist/es/standards-sdk.es62.js.map +1 -1
  253. package/dist/es/standards-sdk.es63.js +214 -153
  254. package/dist/es/standards-sdk.es63.js.map +1 -1
  255. package/dist/es/standards-sdk.es64.js +205 -84
  256. package/dist/es/standards-sdk.es64.js.map +1 -1
  257. package/dist/es/standards-sdk.es65.js +125 -40
  258. package/dist/es/standards-sdk.es65.js.map +1 -1
  259. package/dist/es/standards-sdk.es66.js +41 -261
  260. package/dist/es/standards-sdk.es66.js.map +1 -1
  261. package/dist/es/standards-sdk.es67.js +262 -24
  262. package/dist/es/standards-sdk.es67.js.map +1 -1
  263. package/dist/es/standards-sdk.es68.js +25 -87
  264. package/dist/es/standards-sdk.es68.js.map +1 -1
  265. package/dist/es/standards-sdk.es69.js +95 -3
  266. package/dist/es/standards-sdk.es69.js.map +1 -1
  267. package/dist/es/standards-sdk.es7.js +1 -1
  268. package/dist/es/standards-sdk.es70.js +3 -100
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +62 -61
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +98 -17
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +19 -77
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +77 -458
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +240 -106
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +286 -170
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +207 -71
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +72 -71
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +71 -143
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es80.js +136 -62
  289. package/dist/es/standards-sdk.es80.js.map +1 -1
  290. package/dist/es/standards-sdk.es81.js +45 -380
  291. package/dist/es/standards-sdk.es81.js.map +1 -1
  292. package/dist/es/standards-sdk.es82.js +130 -222
  293. package/dist/es/standards-sdk.es82.js.map +1 -1
  294. package/dist/es/standards-sdk.es83.js +444 -313
  295. package/dist/es/standards-sdk.es83.js.map +1 -1
  296. package/dist/es/standards-sdk.es84.js +364 -88
  297. package/dist/es/standards-sdk.es84.js.map +1 -1
  298. package/dist/es/standards-sdk.es85.js +89 -125
  299. package/dist/es/standards-sdk.es85.js.map +1 -1
  300. package/dist/es/standards-sdk.es86.js +125 -8
  301. package/dist/es/standards-sdk.es86.js.map +1 -1
  302. package/dist/es/standards-sdk.es87.js +6 -45
  303. package/dist/es/standards-sdk.es87.js.map +1 -1
  304. package/dist/es/standards-sdk.es88.js +44 -98
  305. package/dist/es/standards-sdk.es88.js.map +1 -1
  306. package/dist/es/standards-sdk.es89.js +84 -331
  307. package/dist/es/standards-sdk.es89.js.map +1 -1
  308. package/dist/es/standards-sdk.es9.js +2 -2
  309. package/dist/es/standards-sdk.es90.js +160 -93
  310. package/dist/es/standards-sdk.es90.js.map +1 -1
  311. package/dist/es/standards-sdk.es91.js +275 -55
  312. package/dist/es/standards-sdk.es91.js.map +1 -1
  313. package/dist/es/standards-sdk.es92.js +55 -43
  314. package/dist/es/standards-sdk.es92.js.map +1 -1
  315. package/dist/es/standards-sdk.es93.js +44 -145
  316. package/dist/es/standards-sdk.es93.js.map +1 -1
  317. package/dist/es/standards-sdk.es94.js +113 -30
  318. package/dist/es/standards-sdk.es94.js.map +1 -1
  319. package/dist/es/standards-sdk.es95.js +59 -22
  320. package/dist/es/standards-sdk.es95.js.map +1 -1
  321. package/dist/es/standards-sdk.es96.js +28 -23
  322. package/dist/es/standards-sdk.es96.js.map +1 -1
  323. package/dist/es/standards-sdk.es97.js +23 -238
  324. package/dist/es/standards-sdk.es97.js.map +1 -1
  325. package/dist/es/standards-sdk.es98.js +225 -267
  326. package/dist/es/standards-sdk.es98.js.map +1 -1
  327. package/dist/es/standards-sdk.es99.js +220 -95
  328. package/dist/es/standards-sdk.es99.js.map +1 -1
  329. package/package.json +5 -1
@@ -1,481 +1,255 @@
1
- import { Logger } from "./standards-sdk.es117.js";
2
- import { HederaMirrorNode } from "./standards-sdk.es138.js";
3
- import { HRLResolver } from "./standards-sdk.es121.js";
4
- import { hash } from "./standards-sdk.es131.js";
5
- import { hcs26DiscoveryMetadataSchema, hcs26DiscoveryMetadataPatchSchema, hcs26DiscoveryRegisterSchema, hcs26DiscoveryRegisterLegacySchema, hcs26DiscoveryDeleteSchema, hcs26DiscoveryUpdateSchema, hcs26DiscoveryUpdateLegacySchema, hcs26VersionRegisterSchema, hcs26VersionRegisterLegacySchema, hcs26VersionUpdateSchema, hcs26VersionDeleteSchema, hcs26SkillManifestSchema } from "./standards-sdk.es111.js";
6
- function parseSemver(versionRaw) {
7
- const trimmed = versionRaw.trim().replace(/^v/i, "");
8
- const match = trimmed.match(
9
- /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/
10
- );
11
- if (!match) {
12
- return null;
13
- }
14
- const major = Number(match[1]);
15
- const minor = Number(match[2]);
16
- const patch = Number(match[3]);
17
- if (![major, minor, patch].every(Number.isFinite)) {
18
- return null;
19
- }
20
- const prereleaseRaw = match[4];
21
- const prerelease = prereleaseRaw ? prereleaseRaw.split(".").map((part) => {
22
- if (/^(0|[1-9]\d*)$/.test(part)) {
23
- return Number(part);
24
- }
25
- return part;
26
- }) : [];
27
- return { major, minor, patch, prerelease };
28
- }
29
- function compareSemver(a, b) {
30
- if (a.major !== b.major) return a.major - b.major;
31
- if (a.minor !== b.minor) return a.minor - b.minor;
32
- if (a.patch !== b.patch) return a.patch - b.patch;
33
- const aHasPre = a.prerelease.length > 0;
34
- const bHasPre = b.prerelease.length > 0;
35
- if (!aHasPre && bHasPre) return 1;
36
- if (aHasPre && !bHasPre) return -1;
37
- if (!aHasPre && !bHasPre) return 0;
38
- const len = Math.max(a.prerelease.length, b.prerelease.length);
39
- for (let index = 0; index < len; index += 1) {
40
- const aId = a.prerelease[index];
41
- const bId = b.prerelease[index];
42
- if (aId === void 0 && bId !== void 0) return -1;
43
- if (aId !== void 0 && bId === void 0) return 1;
44
- if (aId === bId) continue;
45
- if (typeof aId === "number" && typeof bId === "number") {
46
- return aId - bId;
47
- }
48
- if (typeof aId === "number" && typeof bId === "string") {
49
- return -1;
50
- }
51
- if (typeof aId === "string" && typeof bId === "number") {
52
- return 1;
53
- }
54
- if (typeof aId === "string" && typeof bId === "string") {
55
- return aId < bId ? -1 : 1;
1
+ import { z } from "zod";
2
+ const HCS26_PROTOCOL = "hcs-26";
3
+ const hcs26TopicTypeEnumSchema = z.union([
4
+ z.literal(0),
5
+ // discovery
6
+ z.literal(1),
7
+ // version
8
+ z.literal(2)
9
+ // reputation (optional)
10
+ ]);
11
+ const hcs26OperationEnumSchema = z.union([
12
+ z.literal(0),
13
+ // register
14
+ z.literal(1),
15
+ // update
16
+ z.literal(2),
17
+ // delete
18
+ z.literal(3)
19
+ // migrate
20
+ ]);
21
+ const topicIdSchema = z.string().regex(/^[0-9]+\.[0-9]+\.[0-9]+$/);
22
+ const hcs1HrlSchema = z.string().regex(/^hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+$/);
23
+ const decentralizedAssetUriSchema = z.string().regex(
24
+ /^(hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+|ipfs:\/\/\S+|ar:\/\/\S+|ord:\/\/\S+)$/
25
+ );
26
+ const semverSchema = z.string().regex(
27
+ /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/
28
+ );
29
+ function validateNormalizedRelativePath(pathRaw) {
30
+ const path = pathRaw.trim();
31
+ if (!path) {
32
+ throw new Error("Path must be non-empty");
33
+ }
34
+ if (path.startsWith("/")) {
35
+ throw new Error("Path must be relative");
36
+ }
37
+ if (path.includes("\\")) {
38
+ throw new Error('Path must use "/" separators');
39
+ }
40
+ const segments = path.split("/");
41
+ for (const segment of segments) {
42
+ if (!segment || segment === "." || segment === "..") {
43
+ throw new Error(
44
+ 'Path must be normalized (no ".", "..", or empty segments)'
45
+ );
56
46
  }
57
47
  }
58
- return 0;
59
- }
60
- function isActiveStatus(status) {
61
- return !status || status === "active";
62
- }
63
- function normalizeUidString(value) {
64
- if (typeof value !== "string") {
65
- return null;
66
- }
67
- const trimmed = value.trim();
68
- return trimmed.length > 0 ? trimmed : null;
69
- }
70
- function resolveSequenceNumber(primary, fallback) {
71
- if (typeof primary === "number") {
72
- return primary;
73
- }
74
- if (typeof fallback === "number") {
75
- return fallback;
76
- }
77
- return null;
78
- }
79
- function parseSequenceFromUid(uid) {
80
- if (!/^\d+$/.test(uid)) {
81
- return null;
82
- }
83
- const parsed = Number(uid);
84
- return Number.isSafeInteger(parsed) ? parsed : null;
85
- }
86
- function ensureNonEmptyString(value, field) {
87
- if (typeof value !== "string") {
88
- throw new Error(`Expected ${field} to be a string`);
89
- }
90
- const trimmed = value.trim();
91
- if (!trimmed) {
92
- throw new Error(`Expected ${field} to be a non-empty string`);
93
- }
94
- return trimmed;
95
48
  }
96
- function mergeDiscoveryMetadata(base, update) {
97
- if (!update) {
98
- return base;
99
- }
100
- return { ...base, ...update };
101
- }
102
- function normalizeDiscoveryRegister(input, messageSequenceNumber) {
103
- const seq = typeof input.sequence_number === "number" ? input.sequence_number : typeof messageSequenceNumber === "number" ? messageSequenceNumber : void 0;
104
- if ("t_id" in input) {
105
- return {
106
- p: "hcs-26",
107
- op: "register",
108
- t_id: ensureNonEmptyString(input.t_id, "t_id"),
109
- account_id: ensureNonEmptyString(input.account_id, "account_id"),
110
- metadata: input.metadata,
111
- ...input.m ? { m: input.m } : {},
112
- ...typeof seq === "number" ? { sequence_number: seq } : {}
113
- };
114
- }
115
- return {
116
- p: "hcs-26",
117
- op: "register",
118
- t_id: ensureNonEmptyString(input.version_registry, "version_registry"),
119
- account_id: ensureNonEmptyString(input.publisher, "publisher"),
120
- metadata: input.metadata,
121
- ...input.m ? { m: input.m } : {},
122
- ...typeof seq === "number" ? { sequence_number: seq } : {}
123
- };
124
- }
125
- class Hcs26SkillRegistryResolver {
126
- constructor(deps) {
127
- this.network = deps.network;
128
- this.logger = deps.logger ?? Logger.getInstance({
129
- module: "HCS26Resolver",
130
- level: "info"
131
- });
132
- this.mirrorNode = new HederaMirrorNode(
133
- deps.network,
134
- this.logger,
135
- deps.mirrorNode
136
- );
137
- this.hrlResolver = new HRLResolver("warn");
138
- }
139
- async resolveDiscoveryMetadataHrl(metadataHrl, mode) {
140
- const resolved = await this.hrlResolver.resolve(metadataHrl, {
141
- network: this.network,
142
- returnRaw: true
143
- });
144
- const bytes = resolved.content instanceof ArrayBuffer ? Buffer.from(resolved.content) : Buffer.from(String(resolved.content), "utf8");
145
- let raw;
49
+ const hcs1HrlOptionalSchema = z.string().regex(/^hcs:\/\/1\/[0-9]+\.[0-9]+\.[0-9]+$/).optional();
50
+ const discoveryMetadataAuthorSchema = z.union([
51
+ z.string().min(1),
52
+ z.object({
53
+ name: z.string().min(1),
54
+ contact: z.string().min(1).optional(),
55
+ url: z.string().url().optional()
56
+ }).passthrough()
57
+ ]);
58
+ const hcs26DiscoveryMetadataSchema = z.object({
59
+ name: z.string().min(1),
60
+ description: z.string().min(1),
61
+ author: discoveryMetadataAuthorSchema,
62
+ license: z.string().min(1),
63
+ tags: z.array(
64
+ z.union([
65
+ z.number().int().positive(),
66
+ z.string().regex(/^(0|[1-9]\d*)$/).transform((value) => Number.parseInt(value, 10))
67
+ ])
68
+ ).optional(),
69
+ homepage: z.string().url().optional(),
70
+ icon: z.union([z.string().url(), decentralizedAssetUriSchema]).optional(),
71
+ icon_hcs1: hcs1HrlOptionalSchema,
72
+ languages: z.array(z.string().min(1)).optional(),
73
+ capabilities: z.array(z.string().min(1)).optional(),
74
+ repo: z.string().url().optional(),
75
+ commit: z.string().regex(/^[0-9a-f]{7,64}$/i, "commit must be a git commit SHA").optional()
76
+ }).passthrough();
77
+ const hcs26DiscoveryMetadataPatchSchema = hcs26DiscoveryMetadataSchema.partial().passthrough();
78
+ const hcs26DiscoveryRegisterSchema = z.object({
79
+ p: z.literal(HCS26_PROTOCOL),
80
+ op: z.literal("register"),
81
+ t_id: topicIdSchema,
82
+ account_id: z.string().min(1),
83
+ metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),
84
+ m: z.string().max(500).optional(),
85
+ sequence_number: z.number().int().optional()
86
+ }).passthrough();
87
+ const hcs26DiscoveryRegisterLegacySchema = z.object({
88
+ p: z.literal(HCS26_PROTOCOL),
89
+ op: z.literal("register"),
90
+ version_registry: topicIdSchema,
91
+ publisher: z.string().min(1),
92
+ metadata: z.union([hcs26DiscoveryMetadataSchema, hcs1HrlSchema]),
93
+ m: z.string().max(500).optional(),
94
+ sequence_number: z.number().int().optional()
95
+ }).passthrough();
96
+ const hcs26DiscoveryUpdateSchema = z.object({
97
+ p: z.literal(HCS26_PROTOCOL),
98
+ op: z.literal("update"),
99
+ uid: z.string().min(1),
100
+ account_id: z.string().min(1).optional(),
101
+ metadata: z.union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema]).optional(),
102
+ m: z.string().max(500).optional(),
103
+ sequence_number: z.number().int().optional()
104
+ }).passthrough();
105
+ const hcs26DiscoveryUpdateLegacySchema = z.object({
106
+ p: z.literal(HCS26_PROTOCOL),
107
+ op: z.literal("update"),
108
+ uid: z.string().min(1),
109
+ publisher: z.string().min(1).optional(),
110
+ metadata: z.union([hcs26DiscoveryMetadataPatchSchema, hcs1HrlSchema]).optional(),
111
+ m: z.string().max(500).optional(),
112
+ sequence_number: z.number().int().optional()
113
+ }).passthrough();
114
+ const hcs26DiscoveryDeleteSchema = z.object({
115
+ p: z.literal(HCS26_PROTOCOL),
116
+ op: z.literal("delete"),
117
+ uid: z.string().min(1),
118
+ m: z.string().max(500).optional(),
119
+ sequence_number: z.number().int().optional()
120
+ }).passthrough();
121
+ const hcs26DiscoveryMigrateSchema = z.object({
122
+ p: z.literal(HCS26_PROTOCOL),
123
+ op: z.literal("migrate"),
124
+ m: z.string().max(500).optional(),
125
+ sequence_number: z.number().int().optional()
126
+ }).passthrough();
127
+ const checksumSchema = z.string().regex(/^sha256:[0-9a-f]{64}$/);
128
+ const hcs26VersionRegisterSchema = z.object({
129
+ p: z.literal(HCS26_PROTOCOL),
130
+ op: z.literal("register"),
131
+ skill_uid: z.number().int().positive(),
132
+ version: semverSchema,
133
+ t_id: topicIdSchema,
134
+ checksum: checksumSchema.optional(),
135
+ status: z.enum(["active", "deprecated", "yanked"]).optional(),
136
+ m: z.string().max(500).optional(),
137
+ sequence_number: z.number().int().optional()
138
+ }).passthrough();
139
+ const hcs26VersionRegisterLegacySchema = z.object({
140
+ p: z.literal(HCS26_PROTOCOL),
141
+ op: z.literal("register"),
142
+ skill_uid: z.number().int().positive(),
143
+ version: semverSchema,
144
+ manifest_hcs1: hcs1HrlSchema,
145
+ checksum: checksumSchema.optional(),
146
+ status: z.enum(["active", "deprecated", "yanked"]).optional(),
147
+ m: z.string().max(500).optional(),
148
+ sequence_number: z.number().int().optional()
149
+ }).passthrough();
150
+ const hcs26VersionUpdateSchema = z.object({
151
+ p: z.literal(HCS26_PROTOCOL),
152
+ op: z.literal("update"),
153
+ uid: z.string().min(1),
154
+ status: z.enum(["active", "deprecated", "yanked"]).optional(),
155
+ m: z.string().max(500).optional(),
156
+ sequence_number: z.number().int().optional()
157
+ }).passthrough();
158
+ const hcs26VersionDeleteSchema = z.object({
159
+ p: z.literal(HCS26_PROTOCOL),
160
+ op: z.literal("delete"),
161
+ uid: z.string().min(1),
162
+ m: z.string().max(500).optional(),
163
+ sequence_number: z.number().int().optional()
164
+ }).passthrough();
165
+ const hcs26VersionMigrateSchema = z.object({
166
+ p: z.literal(HCS26_PROTOCOL),
167
+ op: z.literal("migrate"),
168
+ m: z.string().max(500).optional(),
169
+ sequence_number: z.number().int().optional()
170
+ }).passthrough();
171
+ const hcs26ManifestFileSchema = z.object({
172
+ path: z.string().min(1).superRefine((value, ctx) => {
146
173
  try {
147
- raw = JSON.parse(bytes.toString("utf8"));
148
- } catch {
149
- throw new Error("Discovery metadata HRL content is not valid JSON");
150
- }
151
- const schema = mode === "full" ? hcs26DiscoveryMetadataSchema : hcs26DiscoveryMetadataPatchSchema;
152
- const parsed = schema.safeParse(raw);
153
- if (!parsed.success) {
154
- throw new Error(`Invalid discovery metadata: ${parsed.error.message}`);
155
- }
156
- return this.normalizeDiscoveryMetadataObject(
157
- parsed.data
158
- );
159
- }
160
- normalizeDiscoveryMetadataObject(metadata) {
161
- if (typeof metadata.icon !== "string" || metadata.icon.trim().length === 0) {
162
- const iconLegacy = metadata.icon_hcs1;
163
- if (typeof iconLegacy === "string" && iconLegacy.trim().length > 0) {
164
- return { ...metadata, icon: iconLegacy };
165
- }
166
- }
167
- return metadata;
168
- }
169
- async resolveDiscoveryMetadataUri(metadataUri, mode) {
170
- const trimmed = metadataUri.trim();
171
- if (trimmed.startsWith("hcs://1/")) {
172
- return this.resolveDiscoveryMetadataHrl(trimmed, mode);
173
- }
174
- throw new Error(`Unsupported discovery metadata URI: ${trimmed}`);
175
- }
176
- resolveDiscoveryMetadataObject(params) {
177
- if (typeof params.metadata === "string") {
178
- return this.resolveDiscoveryMetadataUri(params.metadata, params.mode);
179
- }
180
- const schema = params.mode === "full" ? hcs26DiscoveryMetadataSchema : hcs26DiscoveryMetadataPatchSchema;
181
- const parsed = schema.safeParse(params.metadata);
182
- if (!parsed.success) {
183
- throw new Error(`Invalid discovery metadata: ${parsed.error.message}`);
184
- }
185
- return Promise.resolve(
186
- this.normalizeDiscoveryMetadataObject(
187
- parsed.data
188
- )
189
- );
190
- }
191
- async getDiscoveryRegister(params) {
192
- const messages = await this.mirrorNode.getTopicMessages(
193
- params.directoryTopicId,
194
- {
195
- sequenceNumber: `eq:${params.skillUid}`,
196
- limit: 5,
197
- order: "asc"
198
- }
199
- );
200
- for (const message of messages) {
201
- const parsedNew = hcs26DiscoveryRegisterSchema.safeParse(message);
202
- const parsedLegacy = parsedNew.success ? null : hcs26DiscoveryRegisterLegacySchema.safeParse(message);
203
- const parsed = parsedNew.success ? parsedNew : parsedLegacy && parsedLegacy.success ? parsedLegacy : null;
204
- if (!parsed) {
205
- continue;
206
- }
207
- const normalized = normalizeDiscoveryRegister(
208
- parsed.data,
209
- message.sequence_number
210
- );
211
- const seq = normalized.sequence_number;
212
- if (typeof seq === "number" && seq === params.skillUid) {
213
- const metadata = await this.resolveDiscoveryMetadataObject({
214
- metadata: normalized.metadata,
215
- mode: "full"
216
- });
217
- return { ...normalized, metadata };
218
- }
219
- }
220
- return null;
221
- }
222
- async resolveDiscoveryRecord(params) {
223
- const register = await this.getDiscoveryRegister({
224
- directoryTopicId: params.directoryTopicId,
225
- skillUid: params.skillUid
226
- });
227
- if (!register) {
228
- return null;
229
- }
230
- const scanLimit = typeof params.scanLimit === "number" && params.scanLimit > 0 ? Math.min(5e3, Math.floor(params.scanLimit)) : 1e3;
231
- const messages = await this.mirrorNode.getTopicMessages(
232
- params.directoryTopicId,
233
- {
234
- limit: scanLimit,
235
- order: "asc"
236
- }
237
- );
238
- const uid = String(params.skillUid);
239
- const registerSequence = resolveSequenceNumber(
240
- register.sequence_number,
241
- params.skillUid
242
- );
243
- let current = register;
244
- for (const message of messages) {
245
- const messageSequence = resolveSequenceNumber(
246
- void 0,
247
- message.sequence_number
248
- );
249
- const deleteParsed = hcs26DiscoveryDeleteSchema.safeParse(message);
250
- if (deleteParsed.success && deleteParsed.data.uid === uid) {
251
- const deleteSequence = resolveSequenceNumber(
252
- deleteParsed.data.sequence_number,
253
- messageSequence
254
- );
255
- if (registerSequence !== null && deleteSequence !== null && deleteSequence <= registerSequence) {
256
- continue;
257
- }
258
- return null;
259
- }
260
- const updateParsedNew = hcs26DiscoveryUpdateSchema.safeParse(message);
261
- const updateParsedLegacy = updateParsedNew.success ? null : hcs26DiscoveryUpdateLegacySchema.safeParse(message);
262
- const updateParsed = updateParsedNew.success ? updateParsedNew : updateParsedLegacy && updateParsedLegacy.success ? updateParsedLegacy : null;
263
- if (!updateParsed || updateParsed.data.uid !== uid) {
264
- continue;
265
- }
266
- const updateSequence = resolveSequenceNumber(
267
- updateParsed.data.sequence_number,
268
- messageSequence
269
- );
270
- if (registerSequence !== null && updateSequence !== null && updateSequence <= registerSequence) {
271
- continue;
272
- }
273
- const nextAccountId = "account_id" in updateParsed.data ? normalizeUidString(updateParsed.data.account_id) : normalizeUidString(updateParsed.data.publisher);
274
- const nextMetadataRaw = updateParsed.data.metadata;
275
- const nextMetadata = nextMetadataRaw !== void 0 ? await this.resolveDiscoveryMetadataObject({
276
- metadata: nextMetadataRaw,
277
- mode: "patch"
278
- }) : void 0;
279
- current = {
280
- ...current,
281
- ...nextAccountId ? { account_id: nextAccountId } : {},
282
- metadata: mergeDiscoveryMetadata(current.metadata, nextMetadata)
283
- };
284
- }
285
- return current;
286
- }
287
- async listVersionRegisters(params) {
288
- const limit = typeof params.limit === "number" && params.limit > 0 ? Math.min(1e3, params.limit) : 500;
289
- const messages = await this.mirrorNode.getTopicMessages(
290
- params.versionRegistryTopicId,
291
- {
292
- limit,
293
- order: "desc"
294
- }
295
- );
296
- const registersByUid = /* @__PURE__ */ new Map();
297
- const updatesByUid = /* @__PURE__ */ new Map();
298
- const deletedByUid = /* @__PURE__ */ new Map();
299
- for (const message of messages) {
300
- const parsedNew = hcs26VersionRegisterSchema.safeParse(message);
301
- const parsedLegacy = parsedNew.success ? null : hcs26VersionRegisterLegacySchema.safeParse(message);
302
- const registerParsed = parsedNew.success ? parsedNew : parsedLegacy && parsedLegacy.success ? parsedLegacy : null;
303
- if (registerParsed) {
304
- if (registerParsed.data.skill_uid !== params.skillUid) {
305
- continue;
306
- }
307
- const uid = typeof registerParsed.data.sequence_number === "number" ? String(registerParsed.data.sequence_number) : typeof message.sequence_number === "number" ? String(message.sequence_number) : null;
308
- if (uid) {
309
- const registerSequence = resolveSequenceNumber(
310
- registerParsed.data.sequence_number,
311
- message.sequence_number
312
- );
313
- registersByUid.set(uid, {
314
- register: registerParsed.data,
315
- sequenceNumber: registerSequence
316
- });
317
- }
318
- continue;
319
- }
320
- const updateParsed = hcs26VersionUpdateSchema.safeParse(message);
321
- if (updateParsed.success) {
322
- const uid = updateParsed.data.uid.trim();
323
- const list = updatesByUid.get(uid) ?? [];
324
- list.push({
325
- update: updateParsed.data,
326
- sequenceNumber: resolveSequenceNumber(
327
- updateParsed.data.sequence_number,
328
- message.sequence_number
329
- )
330
- });
331
- updatesByUid.set(uid, list);
332
- continue;
333
- }
334
- const deleteParsed = hcs26VersionDeleteSchema.safeParse(message);
335
- if (deleteParsed.success) {
336
- const uid = deleteParsed.data.uid.trim();
337
- const list = deletedByUid.get(uid) ?? [];
338
- const sequenceNumber = resolveSequenceNumber(
339
- deleteParsed.data.sequence_number,
340
- message.sequence_number
341
- );
342
- if (sequenceNumber !== null) {
343
- list.push(sequenceNumber);
344
- deletedByUid.set(uid, list);
345
- }
346
- }
347
- }
348
- const entries = [];
349
- for (const [uid, registerState] of registersByUid.entries()) {
350
- const registerSequence = registerState.sequenceNumber ?? parseSequenceFromUid(uid);
351
- const deleteSequences = deletedByUid.get(uid) ?? [];
352
- const hasDeleteAfterRegister = deleteSequences.some(
353
- (sequence) => registerSequence === null ? true : sequence > registerSequence
354
- );
355
- if (hasDeleteAfterRegister) {
356
- continue;
357
- }
358
- const updates = updatesByUid.get(uid);
359
- if (!updates || updates.length === 0) {
360
- entries.push(registerState.register);
361
- continue;
362
- }
363
- const sorted = [...updates].filter(
364
- (update) => registerSequence === null ? true : update.sequenceNumber !== null && update.sequenceNumber > registerSequence
365
- ).sort((a, b) => {
366
- const aSeq = a.sequenceNumber ?? 0;
367
- const bSeq = b.sequenceNumber ?? 0;
368
- return aSeq - bSeq;
369
- });
370
- if (sorted.length === 0) {
371
- entries.push(registerState.register);
372
- continue;
373
- }
374
- const final = sorted.reduce((acc, updateState) => {
375
- if (updateState.update.status) {
376
- return { ...acc, status: updateState.update.status };
377
- }
378
- return acc;
379
- }, registerState.register);
380
- entries.push(final);
381
- }
382
- return entries;
383
- }
384
- async getLatestVersionRegister(params) {
385
- const entries = await this.listVersionRegisters({
386
- versionRegistryTopicId: params.versionRegistryTopicId,
387
- skillUid: params.skillUid,
388
- limit: 100
389
- });
390
- const active = entries.filter((entry) => isActiveStatus(entry.status));
391
- if (active.length === 0) {
392
- return null;
393
- }
394
- let best = active[0];
395
- let bestParsed = parseSemver(best.version);
396
- for (let index = 1; index < active.length; index += 1) {
397
- const candidate = active[index];
398
- const candidateParsed = parseSemver(candidate.version);
399
- if (!bestParsed && candidateParsed) {
400
- best = candidate;
401
- bestParsed = candidateParsed;
402
- continue;
403
- }
404
- if (bestParsed && candidateParsed) {
405
- const cmp = compareSemver(candidateParsed, bestParsed);
406
- if (cmp > 0) {
407
- best = candidate;
408
- bestParsed = candidateParsed;
409
- continue;
410
- }
411
- if (cmp === 0) {
412
- const bestSeq = typeof best.sequence_number === "number" ? best.sequence_number : 0;
413
- const candSeq = typeof candidate.sequence_number === "number" ? candidate.sequence_number : 0;
414
- if (candSeq > bestSeq) {
415
- best = candidate;
416
- bestParsed = candidateParsed;
417
- }
418
- }
419
- }
420
- }
421
- return best;
422
- }
423
- async resolveManifest(params) {
424
- const manifestHrl = typeof params.manifestHrl === "string" && params.manifestHrl.trim().length > 0 ? params.manifestHrl.trim() : typeof params.manifestTopicId === "string" && params.manifestTopicId.trim().length > 0 ? `hcs://1/${params.manifestTopicId.trim()}` : null;
425
- if (!manifestHrl) {
426
- throw new Error("Manifest HRL or topic id is required");
427
- }
428
- const resolved = await this.hrlResolver.resolve(manifestHrl, {
429
- network: this.network,
430
- returnRaw: true
174
+ validateNormalizedRelativePath(value);
175
+ } catch (error) {
176
+ const message = error instanceof Error ? error.message : String(error);
177
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message });
178
+ }
179
+ }),
180
+ hrl: hcs1HrlSchema,
181
+ sha256: z.string().regex(/^[0-9a-f]{64}$/),
182
+ mime: z.string().min(1)
183
+ }).passthrough();
184
+ const hcs26SkillManifestSchema = z.object({
185
+ name: z.string().min(1),
186
+ description: z.string().min(1),
187
+ version: semverSchema,
188
+ license: z.string().min(1),
189
+ author: discoveryMetadataAuthorSchema,
190
+ tags: z.array(
191
+ z.union([
192
+ z.number().int().positive(),
193
+ z.string().regex(/^(0|[1-9]\d*)$/).transform((value) => Number.parseInt(value, 10))
194
+ ])
195
+ ).optional(),
196
+ homepage: z.string().url().optional(),
197
+ languages: z.array(z.string().min(1)).optional(),
198
+ repo: z.string().url().optional(),
199
+ commit: z.string().regex(/^[0-9a-f]{7,64}$/i, "commit must be a git commit SHA").optional(),
200
+ entrypoints: z.array(
201
+ z.object({
202
+ path: z.string().min(1),
203
+ language: z.string().min(1),
204
+ args: z.array(z.string()).optional()
205
+ }).passthrough()
206
+ ).optional(),
207
+ files: z.array(hcs26ManifestFileSchema).min(1)
208
+ }).passthrough().superRefine((value, ctx) => {
209
+ const hasSkillMd = value.files.some((file) => file.path === "SKILL.md");
210
+ if (!hasSkillMd) {
211
+ ctx.addIssue({
212
+ code: z.ZodIssueCode.custom,
213
+ message: 'SKILL.md must be present in the manifest files list with path "SKILL.md".',
214
+ path: ["files"]
431
215
  });
432
- const contentType = resolved.contentType ?? "";
433
- if (!contentType.toLowerCase().startsWith("application/json")) {
434
- throw new Error(
435
- `Expected application/json for manifest, got ${resolved.contentType ?? "unknown"}`
436
- );
437
- }
438
- const bytes = resolved.content instanceof ArrayBuffer ? Buffer.from(resolved.content) : Buffer.from(String(resolved.content), "utf8");
439
- const sha256Hex = await hash(bytes, "sha256");
440
- let raw;
441
- try {
442
- raw = JSON.parse(bytes.toString("utf8"));
443
- } catch {
444
- throw new Error("Manifest content is not valid JSON");
445
- }
446
- const parsed = hcs26SkillManifestSchema.safeParse(raw);
447
- if (!parsed.success) {
448
- throw new Error(`Invalid HCS-26 manifest: ${parsed.error.message}`);
449
- }
450
- const hasSkillMd = parsed.data.files.some((file) => file.path === "SKILL.md");
451
- if (!hasSkillMd) {
452
- throw new Error(
453
- 'HCS-26 manifest must include SKILL.md at path "SKILL.md"'
454
- );
455
- }
456
- return { manifest: parsed.data, raw, sha256Hex };
457
216
  }
458
- async verifyVersionRegisterMatchesManifest(params) {
459
- const checksumRaw = params.versionRegister.checksum;
460
- if (!checksumRaw) {
461
- this.logger.warn(
462
- "HCS-26 version register is missing checksum; skipping manifest verification."
463
- );
464
- return;
465
- }
466
- const checksum = checksumRaw.trim();
467
- if (!checksum.startsWith("sha256:")) {
468
- throw new Error(`Unsupported checksum: ${checksum}`);
469
- }
470
- const expectedHex = checksum.slice("sha256:".length);
471
- if (params.manifestSha256Hex !== expectedHex) {
472
- throw new Error(
473
- `Manifest checksum mismatch (expected ${expectedHex}, got ${params.manifestSha256Hex})`
474
- );
475
- }
476
- }
477
- }
217
+ });
218
+ const hcs26DiscoveryMessageSchema = z.union([
219
+ hcs26DiscoveryRegisterSchema,
220
+ hcs26DiscoveryRegisterLegacySchema,
221
+ hcs26DiscoveryUpdateSchema,
222
+ hcs26DiscoveryUpdateLegacySchema,
223
+ hcs26DiscoveryDeleteSchema,
224
+ hcs26DiscoveryMigrateSchema
225
+ ]);
226
+ const hcs26VersionMessageSchema = z.union([
227
+ hcs26VersionRegisterSchema,
228
+ hcs26VersionRegisterLegacySchema,
229
+ hcs26VersionUpdateSchema,
230
+ hcs26VersionDeleteSchema,
231
+ hcs26VersionMigrateSchema
232
+ ]);
478
233
  export {
479
- Hcs26SkillRegistryResolver
234
+ HCS26_PROTOCOL,
235
+ hcs26DiscoveryDeleteSchema,
236
+ hcs26DiscoveryMessageSchema,
237
+ hcs26DiscoveryMetadataPatchSchema,
238
+ hcs26DiscoveryMetadataSchema,
239
+ hcs26DiscoveryMigrateSchema,
240
+ hcs26DiscoveryRegisterLegacySchema,
241
+ hcs26DiscoveryRegisterSchema,
242
+ hcs26DiscoveryUpdateLegacySchema,
243
+ hcs26DiscoveryUpdateSchema,
244
+ hcs26ManifestFileSchema,
245
+ hcs26OperationEnumSchema,
246
+ hcs26SkillManifestSchema,
247
+ hcs26TopicTypeEnumSchema,
248
+ hcs26VersionDeleteSchema,
249
+ hcs26VersionMessageSchema,
250
+ hcs26VersionMigrateSchema,
251
+ hcs26VersionRegisterLegacySchema,
252
+ hcs26VersionRegisterSchema,
253
+ hcs26VersionUpdateSchema
480
254
  };
481
255
  //# sourceMappingURL=standards-sdk.es112.js.map