@hashgraphonline/standards-sdk 0.1.160 → 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 +39 -1
  14. package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
  15. package/dist/cjs/hcs-14/resolvers/types.d.ts +52 -0
  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 +46 -13
  22. package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +3 -3
  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 +39 -1
  38. package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
  39. package/dist/es/hcs-14/resolvers/types.d.ts +52 -0
  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 +46 -13
  46. package/dist/es/hcs-14/sdk.d.ts.map +1 -1
  47. package/dist/es/standards-sdk.es.js +97 -90
  48. package/dist/es/standards-sdk.es.js.map +1 -1
  49. package/dist/es/standards-sdk.es100.js +151 -43
  50. package/dist/es/standards-sdk.es100.js.map +1 -1
  51. package/dist/es/standards-sdk.es101.js +114 -234
  52. package/dist/es/standards-sdk.es101.js.map +1 -1
  53. package/dist/es/standards-sdk.es102.js +43 -96
  54. package/dist/es/standards-sdk.es102.js.map +1 -1
  55. package/dist/es/standards-sdk.es103.js +244 -80
  56. package/dist/es/standards-sdk.es103.js.map +1 -1
  57. package/dist/es/standards-sdk.es104.js +101 -29
  58. package/dist/es/standards-sdk.es104.js.map +1 -1
  59. package/dist/es/standards-sdk.es105.js +94 -225
  60. package/dist/es/standards-sdk.es105.js.map +1 -1
  61. package/dist/es/standards-sdk.es106.js +29 -112
  62. package/dist/es/standards-sdk.es106.js.map +1 -1
  63. package/dist/es/standards-sdk.es107.js +224 -26
  64. package/dist/es/standards-sdk.es107.js.map +1 -1
  65. package/dist/es/standards-sdk.es108.js +109 -80
  66. package/dist/es/standards-sdk.es108.js.map +1 -1
  67. package/dist/es/standards-sdk.es109.js +29 -26
  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 -248
  71. package/dist/es/standards-sdk.es110.js.map +1 -1
  72. package/dist/es/standards-sdk.es111.js +28 -475
  73. package/dist/es/standards-sdk.es111.js.map +1 -1
  74. package/dist/es/standards-sdk.es112.js +244 -97
  75. package/dist/es/standards-sdk.es112.js.map +1 -1
  76. package/dist/es/standards-sdk.es113.js +451 -133
  77. package/dist/es/standards-sdk.es113.js.map +1 -1
  78. package/dist/es/standards-sdk.es114.js +98 -27
  79. package/dist/es/standards-sdk.es114.js.map +1 -1
  80. package/dist/es/standards-sdk.es115.js +156 -8
  81. package/dist/es/standards-sdk.es115.js.map +1 -1
  82. package/dist/es/standards-sdk.es116.js +31 -139
  83. package/dist/es/standards-sdk.es116.js.map +1 -1
  84. package/dist/es/standards-sdk.es117.js +10 -27
  85. package/dist/es/standards-sdk.es117.js.map +1 -1
  86. package/dist/es/standards-sdk.es118.js +139 -19
  87. package/dist/es/standards-sdk.es118.js.map +1 -1
  88. package/dist/es/standards-sdk.es119.js +27 -158
  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 +16 -197
  92. package/dist/es/standards-sdk.es120.js.map +1 -1
  93. package/dist/es/standards-sdk.es121.js +133 -763
  94. package/dist/es/standards-sdk.es121.js.map +1 -1
  95. package/dist/es/standards-sdk.es122.js +200 -10
  96. package/dist/es/standards-sdk.es122.js.map +1 -1
  97. package/dist/es/standards-sdk.es123.js +762 -539
  98. package/dist/es/standards-sdk.es123.js.map +1 -1
  99. package/dist/es/standards-sdk.es124.js +10 -599
  100. package/dist/es/standards-sdk.es124.js.map +1 -1
  101. package/dist/es/standards-sdk.es125.js +567 -13
  102. package/dist/es/standards-sdk.es125.js.map +1 -1
  103. package/dist/es/standards-sdk.es126.js +602 -2
  104. package/dist/es/standards-sdk.es126.js.map +1 -1
  105. package/dist/es/standards-sdk.es127.js +12 -86
  106. package/dist/es/standards-sdk.es127.js.map +1 -1
  107. package/dist/es/standards-sdk.es128.js +2 -40
  108. package/dist/es/standards-sdk.es128.js.map +1 -1
  109. package/dist/es/standards-sdk.es129.js +87 -2
  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 +37 -232
  113. package/dist/es/standards-sdk.es130.js.map +1 -1
  114. package/dist/es/standards-sdk.es131.js +2 -1140
  115. package/dist/es/standards-sdk.es131.js.map +1 -1
  116. package/dist/es/standards-sdk.es132.js +213 -284
  117. package/dist/es/standards-sdk.es132.js.map +1 -1
  118. package/dist/es/standards-sdk.es133.js +1138 -420
  119. package/dist/es/standards-sdk.es133.js.map +1 -1
  120. package/dist/es/standards-sdk.es134.js +301 -350
  121. package/dist/es/standards-sdk.es134.js.map +1 -1
  122. package/dist/es/standards-sdk.es135.js +417 -1111
  123. package/dist/es/standards-sdk.es135.js.map +1 -1
  124. package/dist/es/standards-sdk.es136.js +348 -201
  125. package/dist/es/standards-sdk.es136.js.map +1 -1
  126. package/dist/es/standards-sdk.es137.js +1029 -1480
  127. package/dist/es/standards-sdk.es137.js.map +1 -1
  128. package/dist/es/standards-sdk.es138.js +207 -1254
  129. package/dist/es/standards-sdk.es138.js.map +1 -1
  130. package/dist/es/standards-sdk.es139.js +1564 -14
  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 +1253 -85
  134. package/dist/es/standards-sdk.es140.js.map +1 -1
  135. package/dist/es/standards-sdk.es141.js +15 -79
  136. package/dist/es/standards-sdk.es141.js.map +1 -1
  137. package/dist/es/standards-sdk.es142.js +83 -889
  138. package/dist/es/standards-sdk.es142.js.map +1 -1
  139. package/dist/es/standards-sdk.es143.js +73 -52
  140. package/dist/es/standards-sdk.es143.js.map +1 -1
  141. package/dist/es/standards-sdk.es144.js +877 -143
  142. package/dist/es/standards-sdk.es144.js.map +1 -1
  143. package/dist/es/standards-sdk.es145.js +60 -7
  144. package/dist/es/standards-sdk.es145.js.map +1 -1
  145. package/dist/es/standards-sdk.es146.js +138 -65
  146. package/dist/es/standards-sdk.es146.js.map +1 -1
  147. package/dist/es/standards-sdk.es147.js +7 -65
  148. package/dist/es/standards-sdk.es147.js.map +1 -1
  149. package/dist/es/standards-sdk.es148.js +86 -30
  150. package/dist/es/standards-sdk.es148.js.map +1 -1
  151. package/dist/es/standards-sdk.es149.js +65 -34
  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 -41
  155. package/dist/es/standards-sdk.es150.js.map +1 -1
  156. package/dist/es/standards-sdk.es151.js +34 -138
  157. package/dist/es/standards-sdk.es151.js.map +1 -1
  158. package/dist/es/standards-sdk.es152.js +48 -42
  159. package/dist/es/standards-sdk.es152.js.map +1 -1
  160. package/dist/es/standards-sdk.es153.js +106 -12450
  161. package/dist/es/standards-sdk.es153.js.map +1 -1
  162. package/dist/es/standards-sdk.es154.js +38 -168
  163. package/dist/es/standards-sdk.es154.js.map +1 -1
  164. package/dist/es/standards-sdk.es155.js +12423 -263
  165. package/dist/es/standards-sdk.es155.js.map +1 -1
  166. package/dist/es/standards-sdk.es156.js +13 -342
  167. package/dist/es/standards-sdk.es156.js.map +1 -1
  168. package/dist/es/standards-sdk.es157.js +55 -452
  169. package/dist/es/standards-sdk.es157.js.map +1 -1
  170. package/dist/es/standards-sdk.es158.js +70 -317
  171. package/dist/es/standards-sdk.es158.js.map +1 -1
  172. package/dist/es/standards-sdk.es159.js +70 -65
  173. package/dist/es/standards-sdk.es159.js.map +1 -1
  174. package/dist/es/standards-sdk.es16.js +4 -4
  175. package/dist/es/standards-sdk.es160.js +197 -14
  176. package/dist/es/standards-sdk.es160.js.map +1 -1
  177. package/dist/es/standards-sdk.es161.js +60 -229
  178. package/dist/es/standards-sdk.es161.js.map +1 -1
  179. package/dist/es/standards-sdk.es162.js +237 -51
  180. package/dist/es/standards-sdk.es162.js.map +1 -1
  181. package/dist/es/standards-sdk.es163.js +160 -72
  182. package/dist/es/standards-sdk.es163.js.map +1 -1
  183. package/dist/es/standards-sdk.es164.js +312 -71
  184. package/dist/es/standards-sdk.es164.js.map +1 -1
  185. package/dist/es/standards-sdk.es165.js +337 -64
  186. package/dist/es/standards-sdk.es165.js.map +1 -1
  187. package/dist/es/standards-sdk.es166.js +436 -155
  188. package/dist/es/standards-sdk.es166.js.map +1 -1
  189. package/dist/es/standards-sdk.es167.js +319 -210
  190. package/dist/es/standards-sdk.es167.js.map +1 -1
  191. package/dist/es/standards-sdk.es168.js +68 -231
  192. package/dist/es/standards-sdk.es168.js.map +1 -1
  193. package/dist/es/standards-sdk.es169.js +154 -101
  194. package/dist/es/standards-sdk.es169.js.map +1 -1
  195. package/dist/es/standards-sdk.es170.js +200 -104
  196. package/dist/es/standards-sdk.es170.js.map +1 -1
  197. package/dist/es/standards-sdk.es171.js +225 -147
  198. package/dist/es/standards-sdk.es171.js.map +1 -1
  199. package/dist/es/standards-sdk.es172.js +100 -166
  200. package/dist/es/standards-sdk.es172.js.map +1 -1
  201. package/dist/es/standards-sdk.es173.js +110 -123
  202. package/dist/es/standards-sdk.es173.js.map +1 -1
  203. package/dist/es/standards-sdk.es174.js +122 -292
  204. package/dist/es/standards-sdk.es174.js.map +1 -1
  205. package/dist/es/standards-sdk.es175.js +166 -240
  206. package/dist/es/standards-sdk.es175.js.map +1 -1
  207. package/dist/es/standards-sdk.es176.js +125 -102
  208. package/dist/es/standards-sdk.es176.js.map +1 -1
  209. package/dist/es/standards-sdk.es177.js +334 -0
  210. package/dist/es/standards-sdk.es177.js.map +1 -0
  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 +11 -11
  216. package/dist/es/standards-sdk.es19.js +8 -8
  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 +11 -11
  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 +5 -5
  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 +39 -231
  243. package/dist/es/standards-sdk.es58.js.map +1 -1
  244. package/dist/es/standards-sdk.es59.js +328 -35
  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 +33 -101
  248. package/dist/es/standards-sdk.es60.js.map +1 -1
  249. package/dist/es/standards-sdk.es61.js +87 -156
  250. package/dist/es/standards-sdk.es61.js.map +1 -1
  251. package/dist/es/standards-sdk.es62.js +126 -153
  252. package/dist/es/standards-sdk.es62.js.map +1 -1
  253. package/dist/es/standards-sdk.es63.js +234 -81
  254. package/dist/es/standards-sdk.es63.js.map +1 -1
  255. package/dist/es/standards-sdk.es64.js +244 -39
  256. package/dist/es/standards-sdk.es64.js.map +1 -1
  257. package/dist/es/standards-sdk.es65.js +122 -247
  258. package/dist/es/standards-sdk.es65.js.map +1 -1
  259. package/dist/es/standards-sdk.es66.js +41 -28
  260. package/dist/es/standards-sdk.es66.js.map +1 -1
  261. package/dist/es/standards-sdk.es67.js +266 -90
  262. package/dist/es/standards-sdk.es67.js.map +1 -1
  263. package/dist/es/standards-sdk.es68.js +33 -3
  264. package/dist/es/standards-sdk.es68.js.map +1 -1
  265. package/dist/es/standards-sdk.es69.js +84 -89
  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 -99
  269. package/dist/es/standards-sdk.es70.js.map +1 -1
  270. package/dist/es/standards-sdk.es71.js +99 -17
  271. package/dist/es/standards-sdk.es71.js.map +1 -1
  272. package/dist/es/standards-sdk.es72.js +100 -77
  273. package/dist/es/standards-sdk.es72.js.map +1 -1
  274. package/dist/es/standards-sdk.es73.js +19 -458
  275. package/dist/es/standards-sdk.es73.js.map +1 -1
  276. package/dist/es/standards-sdk.es74.js +77 -324
  277. package/dist/es/standards-sdk.es74.js.map +1 -1
  278. package/dist/es/standards-sdk.es75.js +420 -170
  279. package/dist/es/standards-sdk.es75.js.map +1 -1
  280. package/dist/es/standards-sdk.es76.js +323 -71
  281. package/dist/es/standards-sdk.es76.js.map +1 -1
  282. package/dist/es/standards-sdk.es77.js +208 -71
  283. package/dist/es/standards-sdk.es77.js.map +1 -1
  284. package/dist/es/standards-sdk.es78.js +67 -138
  285. package/dist/es/standards-sdk.es78.js.map +1 -1
  286. package/dist/es/standards-sdk.es79.js +71 -69
  287. package/dist/es/standards-sdk.es79.js.map +1 -1
  288. package/dist/es/standards-sdk.es80.js +132 -393
  289. package/dist/es/standards-sdk.es80.js.map +1 -1
  290. package/dist/es/standards-sdk.es81.js +44 -471
  291. package/dist/es/standards-sdk.es81.js.map +1 -1
  292. package/dist/es/standards-sdk.es82.js +361 -322
  293. package/dist/es/standards-sdk.es82.js.map +1 -1
  294. package/dist/es/standards-sdk.es83.js +495 -88
  295. package/dist/es/standards-sdk.es83.js.map +1 -1
  296. package/dist/es/standards-sdk.es84.js +365 -125
  297. package/dist/es/standards-sdk.es84.js.map +1 -1
  298. package/dist/es/standards-sdk.es85.js +88 -7
  299. package/dist/es/standards-sdk.es85.js.map +1 -1
  300. package/dist/es/standards-sdk.es86.js +125 -47
  301. package/dist/es/standards-sdk.es86.js.map +1 -1
  302. package/dist/es/standards-sdk.es87.js +6 -99
  303. package/dist/es/standards-sdk.es87.js.map +1 -1
  304. package/dist/es/standards-sdk.es88.js +43 -344
  305. package/dist/es/standards-sdk.es88.js.map +1 -1
  306. package/dist/es/standards-sdk.es89.js +73 -253
  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 +340 -53
  310. package/dist/es/standards-sdk.es90.js.map +1 -1
  311. package/dist/es/standards-sdk.es91.js +280 -48
  312. package/dist/es/standards-sdk.es91.js.map +1 -1
  313. package/dist/es/standards-sdk.es92.js +54 -143
  314. package/dist/es/standards-sdk.es92.js.map +1 -1
  315. package/dist/es/standards-sdk.es93.js +44 -62
  316. package/dist/es/standards-sdk.es93.js.map +1 -1
  317. package/dist/es/standards-sdk.es94.js +140 -20
  318. package/dist/es/standards-sdk.es94.js.map +1 -1
  319. package/dist/es/standards-sdk.es95.js +65 -23
  320. package/dist/es/standards-sdk.es95.js.map +1 -1
  321. package/dist/es/standards-sdk.es96.js +26 -236
  322. package/dist/es/standards-sdk.es96.js.map +1 -1
  323. package/dist/es/standards-sdk.es97.js +23 -280
  324. package/dist/es/standards-sdk.es97.js.map +1 -1
  325. package/dist/es/standards-sdk.es98.js +229 -146
  326. package/dist/es/standards-sdk.es98.js.map +1 -1
  327. package/dist/es/standards-sdk.es99.js +254 -117
  328. package/dist/es/standards-sdk.es99.js.map +1 -1
  329. package/package.json +8 -1
@@ -1,163 +1,481 @@
1
- import { Logger } from "./standards-sdk.es116.js";
2
- import { Hcs26SkillRegistryResolver } from "./standards-sdk.es111.js";
3
- function getManifestTopicId(entry) {
4
- const topicIdCandidate = entry.t_id;
5
- if (typeof topicIdCandidate === "string" && topicIdCandidate.trim()) {
6
- return topicIdCandidate.trim();
7
- }
8
- const hrlCandidate = entry.manifest_hcs1;
9
- if (typeof hrlCandidate !== "string" || !hrlCandidate.trim()) {
10
- throw new Error("Missing manifest reference in version register entry");
11
- }
12
- const hrl = hrlCandidate.trim();
13
- const prefix = "hcs://1/";
14
- if (!hrl.startsWith(prefix)) {
15
- throw new Error(`Invalid manifest HRL: ${hrl}`);
16
- }
17
- return hrl.slice(prefix.length);
1
+ import { Logger } from "./standards-sdk.es118.js";
2
+ import { HederaMirrorNode } from "./standards-sdk.es139.js";
3
+ import { HRLResolver } from "./standards-sdk.es122.js";
4
+ import { hash } from "./standards-sdk.es132.js";
5
+ import { hcs26DiscoveryMetadataSchema, hcs26DiscoveryMetadataPatchSchema, hcs26DiscoveryRegisterSchema, hcs26DiscoveryRegisterLegacySchema, hcs26DiscoveryDeleteSchema, hcs26DiscoveryUpdateSchema, hcs26DiscoveryUpdateLegacySchema, hcs26VersionRegisterSchema, hcs26VersionRegisterLegacySchema, hcs26VersionUpdateSchema, hcs26VersionDeleteSchema, hcs26SkillManifestSchema } from "./standards-sdk.es112.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;
56
+ }
57
+ }
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
+ }
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
+ };
18
124
  }
19
- class HCS26BaseClient {
20
- constructor(config) {
21
- this.network = config.network;
22
- this.logger = config.logger ?? Logger.getInstance({
23
- module: "HCS26Client",
125
+ class Hcs26SkillRegistryResolver {
126
+ constructor(deps) {
127
+ this.network = deps.network;
128
+ this.logger = deps.logger ?? Logger.getInstance({
129
+ module: "HCS26Resolver",
24
130
  level: "info"
25
131
  });
26
- this.verificationProvider = config.verificationProvider;
27
- this.resolver = new Hcs26SkillRegistryResolver({
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, {
28
141
  network: this.network,
29
- logger: this.logger,
30
- mirrorNode: config.mirrorNode
142
+ returnRaw: true
31
143
  });
144
+ const bytes = resolved.content instanceof ArrayBuffer ? Buffer.from(resolved.content) : Buffer.from(String(resolved.content), "utf8");
145
+ let raw;
146
+ 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;
32
221
  }
33
- async resolveSkill(params) {
34
- const discovery = await this.resolver.resolveDiscoveryRecord({
222
+ async resolveDiscoveryRecord(params) {
223
+ const register = await this.getDiscoveryRegister({
35
224
  directoryTopicId: params.directoryTopicId,
36
- skillUid: params.skillUid,
37
- scanLimit: params.discoveryScanLimit
225
+ skillUid: params.skillUid
38
226
  });
39
- if (!discovery) {
227
+ if (!register) {
40
228
  return null;
41
229
  }
42
- const versionRegistryTopicId = discovery.t_id;
43
- const latestVersion = await this.resolver.getLatestVersionRegister({
44
- versionRegistryTopicId,
45
- skillUid: params.skillUid
46
- });
47
- if (!latestVersion) {
48
- throw new Error(
49
- `No active version entries found for skill ${params.skillUid} in version registry ${versionRegistryTopicId}`
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
50
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
+ };
51
284
  }
52
- const manifestTopicId = getManifestTopicId(latestVersion);
53
- const { manifest, sha256Hex } = await this.resolver.resolveManifest({
54
- manifestTopicId
55
- });
56
- await this.resolver.verifyVersionRegisterMatchesManifest({
57
- versionRegister: latestVersion,
58
- manifestSha256Hex: sha256Hex
59
- });
60
- let verification;
61
- const provider = this.verificationProvider;
62
- const includeVerification = params.includeVerification === true;
63
- const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
64
- if (includeVerification && provider && name) {
65
- try {
66
- verification = await provider.getSkillVerificationStatus({ name });
67
- } catch (error) {
68
- const detail = error instanceof Error ? error.message : String(error);
69
- this.logger.warn(
70
- `Failed to resolve verification status for skill "${name}": ${detail}`
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
71
341
  );
72
- verification = null;
342
+ if (sequenceNumber !== null) {
343
+ list.push(sequenceNumber);
344
+ deletedByUid.set(uid, list);
345
+ }
73
346
  }
74
347
  }
75
- return {
76
- directoryTopicId: params.directoryTopicId,
77
- skillUid: params.skillUid,
78
- discovery,
79
- versionRegistryTopicId,
80
- latestVersion,
81
- manifest,
82
- manifestSha256Hex: sha256Hex,
83
- ...includeVerification ? { verification } : {}
84
- };
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;
85
383
  }
86
- async listSkillVersions(params) {
87
- const discovery = await this.resolver.resolveDiscoveryRecord({
88
- directoryTopicId: params.directoryTopicId,
384
+ async getLatestVersionRegister(params) {
385
+ const entries = await this.listVersionRegisters({
386
+ versionRegistryTopicId: params.versionRegistryTopicId,
89
387
  skillUid: params.skillUid,
90
- scanLimit: params.discoveryScanLimit
388
+ limit: 100
91
389
  });
92
- if (!discovery) {
93
- return [];
390
+ const active = entries.filter((entry) => isActiveStatus(entry.status));
391
+ if (active.length === 0) {
392
+ return null;
94
393
  }
95
- const versionRegistryTopicId = discovery.t_id;
96
- return this.resolver.listVersionRegisters({
97
- versionRegistryTopicId,
98
- skillUid: params.skillUid,
99
- limit: params.limit
100
- });
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;
101
422
  }
102
- async resolveSkillVersion(params) {
103
- const versionRaw = params.version.trim();
104
- if (!versionRaw) {
105
- throw new Error("version is required");
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");
106
427
  }
107
- const discovery = await this.resolver.resolveDiscoveryRecord({
108
- directoryTopicId: params.directoryTopicId,
109
- skillUid: params.skillUid,
110
- scanLimit: params.discoveryScanLimit
428
+ const resolved = await this.hrlResolver.resolve(manifestHrl, {
429
+ network: this.network,
430
+ returnRaw: true
111
431
  });
112
- if (!discovery) {
113
- return null;
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
+ );
114
437
  }
115
- const versionRegistryTopicId = discovery.t_id;
116
- const entries = await this.resolver.listVersionRegisters({
117
- versionRegistryTopicId,
118
- skillUid: params.skillUid,
119
- limit: 250
120
- });
121
- const target = entries.find((entry) => entry.version.trim() === versionRaw);
122
- if (!target) {
123
- return null;
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");
124
445
  }
125
- const manifestTopicId = getManifestTopicId(target);
126
- const { manifest, sha256Hex } = await this.resolver.resolveManifest({
127
- manifestTopicId
128
- });
129
- await this.resolver.verifyVersionRegisterMatchesManifest({
130
- versionRegister: target,
131
- manifestSha256Hex: sha256Hex
132
- });
133
- let verification;
134
- const provider = this.verificationProvider;
135
- const includeVerification = params.includeVerification === true;
136
- const name = typeof discovery.metadata?.name === "string" ? discovery.metadata.name.trim() : "";
137
- if (includeVerification && provider && name) {
138
- try {
139
- verification = await provider.getSkillVerificationStatus({ name });
140
- } catch (error) {
141
- const detail = error instanceof Error ? error.message : String(error);
142
- this.logger.warn(
143
- `Failed to resolve verification status for skill "${name}": ${detail}`
144
- );
145
- verification = null;
146
- }
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
+ }
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
+ );
147
475
  }
148
- return {
149
- directoryTopicId: params.directoryTopicId,
150
- skillUid: params.skillUid,
151
- discovery,
152
- versionRegistryTopicId,
153
- versionEntry: target,
154
- manifest,
155
- manifestSha256Hex: sha256Hex,
156
- ...includeVerification ? { verification } : {}
157
- };
158
476
  }
159
477
  }
160
478
  export {
161
- HCS26BaseClient
479
+ Hcs26SkillRegistryResolver
162
480
  };
163
481
  //# sourceMappingURL=standards-sdk.es113.js.map