@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,52 +1,124 @@
1
- import { CanonicalAgentDataSchema } from "./standards-sdk.es55.js";
2
- import { isHederaCaip10, isEip155Caip10 } from "./standards-sdk.es58.js";
3
- function normalizeString(value) {
4
- return value.trim();
5
- }
6
- function normalizeLower(value) {
7
- return value.trim().toLowerCase();
8
- }
9
- function canonicalizeAgentData(input) {
10
- const parsed = CanonicalAgentDataSchema.parse(input);
11
- if (parsed.protocol.trim().toLowerCase() === "hcs-10") {
12
- if (!isHederaCaip10(parsed.nativeId.trim())) {
13
- throw new Error(
14
- "HCS-14: For protocol hcs-10, nativeId must be CAIP-10 (hedera:<network>:<account>)"
15
- );
16
- }
1
+ import { getCryptoAdapter } from "./standards-sdk.es119.js";
2
+ import { base58Encode } from "./standards-sdk.es151.js";
3
+ import { canonicalizeAgentData } from "./standards-sdk.es55.js";
4
+ function encodeMultibaseB58btc(input) {
5
+ const bytes = Buffer.from(input, "utf8");
6
+ return "z" + base58Encode(bytes);
7
+ }
8
+ function sanitizeDidSpecificId(idPart) {
9
+ const cut = idPart.search(/[;?#]/);
10
+ if (cut === -1) return { sanitized: idPart, hadSuffix: false };
11
+ return { sanitized: idPart.slice(0, cut), hadSuffix: true };
12
+ }
13
+ function buildParamString(params) {
14
+ const entries = [];
15
+ if (params.uid) entries.push(["uid", params.uid]);
16
+ if (params.registry) entries.push(["registry", params.registry]);
17
+ if (params.proto) entries.push(["proto", params.proto]);
18
+ if (params.nativeId) entries.push(["nativeId", params.nativeId]);
19
+ if (params.domain) entries.push(["domain", params.domain]);
20
+ if (params.src) entries.push(["src", params.src]);
21
+ if (entries.length === 0) return "";
22
+ return entries.map(([k, v]) => `${k}=${v}`).join(";");
23
+ }
24
+ function defaultAidParams(data, params) {
25
+ const merged = { ...params };
26
+ if (!merged.registry) merged.registry = data.registry;
27
+ if (!merged.nativeId) merged.nativeId = data.nativeId;
28
+ if (!merged.uid) merged.uid = "0";
29
+ return merged;
30
+ }
31
+ async function createUaidAidImpl(input, params, options) {
32
+ const { normalized, canonicalJson } = canonicalizeAgentData(input);
33
+ const adapter = getCryptoAdapter();
34
+ const hasher = adapter.createHash("sha384");
35
+ const digestResult = hasher.update(Buffer.from(canonicalJson, "utf8")).digest();
36
+ const digestBuffer = await Promise.resolve(
37
+ digestResult
38
+ );
39
+ const bytes = Buffer.isBuffer(digestBuffer) ? digestBuffer : Buffer.from(digestBuffer);
40
+ const id = base58Encode(bytes);
41
+ const includeParams = options?.includeParams !== false;
42
+ const finalParams = includeParams ? defaultAidParams(normalized, params || {}) : {};
43
+ const paramString = includeParams ? buildParamString(finalParams) : "";
44
+ return paramString ? `uaid:aid:${id};${paramString}` : `uaid:aid:${id}`;
45
+ }
46
+ function createUaidFromDidImpl(existingDid, params) {
47
+ let method;
48
+ let idPart;
49
+ if (existingDid.startsWith("uaid:aid:")) {
50
+ method = "aid";
51
+ idPart = existingDid.slice("uaid:aid:".length);
52
+ } else if (existingDid.startsWith("did:")) {
53
+ const idx = existingDid.indexOf(":");
54
+ const second = existingDid.indexOf(":", idx + 1);
55
+ if (second < 0) throw new Error("Invalid DID format");
56
+ method = existingDid.slice(idx + 1, second);
57
+ idPart = existingDid.slice(second + 1);
58
+ } else {
59
+ throw new Error("Invalid DID format");
17
60
  }
18
- const protocol = parsed.protocol.trim().toLowerCase();
19
- if (protocol === "acp-virtuals") {
20
- if (!isEip155Caip10(parsed.nativeId.trim())) {
21
- throw new Error(
22
- "HCS-14: For protocol acp-virtuals, nativeId must be EIP-155 CAIP-10 (eip155:<chainId>:<address>)"
23
- );
61
+ const { sanitized, hadSuffix } = sanitizeDidSpecificId(idPart);
62
+ let finalId = sanitized;
63
+ if (method === "hedera") {
64
+ const networkPrefixMatch = sanitized.match(
65
+ /^(mainnet|testnet|previewnet|devnet):(.+)$/
66
+ );
67
+ if (networkPrefixMatch) {
68
+ finalId = networkPrefixMatch[2];
24
69
  }
25
70
  }
26
- const normalized = {
27
- registry: normalizeLower(parsed.registry),
28
- name: normalizeString(parsed.name),
29
- version: normalizeString(parsed.version),
30
- protocol: normalizeLower(parsed.protocol),
31
- nativeId: normalizeString(parsed.nativeId),
32
- skills: [...parsed.skills].sort((a, b) => a - b)
71
+ const finalParams = { ...params || {} };
72
+ if (hadSuffix && !finalParams.src) {
73
+ finalParams.src = encodeMultibaseB58btc(existingDid);
74
+ }
75
+ const paramString = buildParamString(finalParams);
76
+ return paramString ? `uaid:did:${finalId};${paramString}` : `uaid:did:${finalId}`;
77
+ }
78
+ function createUaid(input, params, options) {
79
+ if (typeof input === "string") {
80
+ return createUaidFromDidImpl(input, params);
81
+ }
82
+ return createUaidAidImpl(input, params, options);
83
+ }
84
+ function parseHcs14Did(did) {
85
+ const parseParams = (paramStr) => {
86
+ const params = {};
87
+ if (!paramStr) return params;
88
+ const pairs = paramStr.split(";");
89
+ for (const p of pairs) {
90
+ const eq = p.indexOf("=");
91
+ if (eq > 0) {
92
+ const k = p.slice(0, eq);
93
+ const v = p.slice(eq + 1);
94
+ params[k] = v;
95
+ }
96
+ }
97
+ return params;
33
98
  };
34
- const orderedKeys = [
35
- "skills",
36
- "name",
37
- "nativeId",
38
- "protocol",
39
- "registry",
40
- "version"
41
- ];
42
- const canonicalObject = {};
43
- for (const key of orderedKeys) {
44
- canonicalObject[key] = normalized[key];
99
+ if (did.startsWith("uaid:")) {
100
+ const afterUaid = did.slice("uaid:".length);
101
+ let inner;
102
+ let afterInner;
103
+ if (afterUaid.startsWith("did:")) {
104
+ inner = "did";
105
+ afterInner = afterUaid.slice("did:".length);
106
+ } else if (afterUaid.startsWith("aid:")) {
107
+ inner = "aid";
108
+ afterInner = afterUaid.slice("aid:".length);
109
+ } else {
110
+ throw new Error("Invalid UAID");
111
+ }
112
+ const semi = afterInner.indexOf(";");
113
+ const id = semi >= 0 ? afterInner.slice(0, semi) : afterInner;
114
+ const paramStr = semi >= 0 ? afterInner.slice(semi + 1) : "";
115
+ const params = parseParams(paramStr);
116
+ return { method: inner === "did" ? "uaid" : "aid", id, params };
45
117
  }
46
- const canonicalJson = JSON.stringify(canonicalObject);
47
- return { normalized, canonicalJson };
118
+ throw new Error("Invalid DID");
48
119
  }
49
120
  export {
50
- canonicalizeAgentData
121
+ createUaid,
122
+ parseHcs14Did
51
123
  };
52
124
  //# sourceMappingURL=standards-sdk.es56.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es56.js","sources":["../../src/hcs-14/canonical.ts"],"sourcesContent":["/**\n * Canonicalization and hashing helpers for HCS-14 AID generation.\n */\n\nimport { z } from 'zod';\nimport {\n CanonicalAgentDataSchema,\n CanonicalAgentData,\n CanonicalizationResult,\n} from './types';\nimport { isHederaCaip10, isEip155Caip10 } from './caip';\n\nfunction normalizeString(value: string): string {\n return value.trim();\n}\n\nfunction normalizeLower(value: string): string {\n return value.trim().toLowerCase();\n}\n\nexport function canonicalizeAgentData(input: unknown): CanonicalizationResult {\n const parsed = CanonicalAgentDataSchema.parse(input);\n\n if (parsed.protocol.trim().toLowerCase() === 'hcs-10') {\n if (!isHederaCaip10(parsed.nativeId.trim())) {\n throw new Error(\n 'HCS-14: For protocol hcs-10, nativeId must be CAIP-10 (hedera:<network>:<account>)',\n );\n }\n }\n\n const protocol = parsed.protocol.trim().toLowerCase();\n if (protocol === 'acp-virtuals') {\n if (!isEip155Caip10(parsed.nativeId.trim())) {\n throw new Error(\n 'HCS-14: For protocol acp-virtuals, nativeId must be EIP-155 CAIP-10 (eip155:<chainId>:<address>)',\n );\n }\n }\n\n const normalized: CanonicalAgentData = {\n registry: normalizeLower(parsed.registry),\n name: normalizeString(parsed.name),\n version: normalizeString(parsed.version),\n protocol: normalizeLower(parsed.protocol),\n nativeId: normalizeString(parsed.nativeId),\n skills: [...parsed.skills].sort((a, b) => a - b),\n };\n\n const orderedKeys = [\n 'skills',\n 'name',\n 'nativeId',\n 'protocol',\n 'registry',\n 'version',\n ] as const;\n const canonicalObject: Record<string, unknown> = {};\n for (const key of orderedKeys) {\n canonicalObject[key] = normalized[key];\n }\n\n const canonicalJson = JSON.stringify(canonicalObject);\n return { normalized, canonicalJson };\n}\n"],"names":[],"mappings":";;AAYA,SAAS,gBAAgB,OAAuB;AAC9C,SAAO,MAAM,KAAA;AACf;AAEA,SAAS,eAAe,OAAuB;AAC7C,SAAO,MAAM,KAAA,EAAO,YAAA;AACtB;AAEO,SAAS,sBAAsB,OAAwC;AAC5E,QAAM,SAAS,yBAAyB,MAAM,KAAK;AAEnD,MAAI,OAAO,SAAS,KAAA,EAAO,YAAA,MAAkB,UAAU;AACrD,QAAI,CAAC,eAAe,OAAO,SAAS,KAAA,CAAM,GAAG;AAC3C,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEA,QAAM,WAAW,OAAO,SAAS,KAAA,EAAO,YAAA;AACxC,MAAI,aAAa,gBAAgB;AAC/B,QAAI,CAAC,eAAe,OAAO,SAAS,KAAA,CAAM,GAAG;AAC3C,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEA,QAAM,aAAiC;AAAA,IACrC,UAAU,eAAe,OAAO,QAAQ;AAAA,IACxC,MAAM,gBAAgB,OAAO,IAAI;AAAA,IACjC,SAAS,gBAAgB,OAAO,OAAO;AAAA,IACvC,UAAU,eAAe,OAAO,QAAQ;AAAA,IACxC,UAAU,gBAAgB,OAAO,QAAQ;AAAA,IACzC,QAAQ,CAAC,GAAG,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,EAAA;AAGjD,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,kBAA2C,CAAA;AACjD,aAAW,OAAO,aAAa;AAC7B,oBAAgB,GAAG,IAAI,WAAW,GAAG;AAAA,EACvC;AAEA,QAAM,gBAAgB,KAAK,UAAU,eAAe;AACpD,SAAO,EAAE,YAAY,cAAA;AACvB;"}
1
+ {"version":3,"file":"standards-sdk.es56.js","sources":["../../src/hcs-14/did.ts"],"sourcesContent":["/**\n * DID generation and parsing for HCS-14 AID/UAID methods.\n */\n\nimport { getCryptoAdapter } from '../utils/crypto-abstraction';\nimport { base58Encode } from './base58';\nimport { canonicalizeAgentData } from './canonical';\nimport { CanonicalAgentData, DidRoutingParams, ParsedHcs14Did } from './types';\n\nfunction encodeMultibaseB58btc(input: string): string {\n const bytes = Buffer.from(input, 'utf8');\n return 'z' + base58Encode(bytes);\n}\n\nfunction sanitizeDidSpecificId(idPart: string): {\n sanitized: string;\n hadSuffix: boolean;\n} {\n const cut = idPart.search(/[;?#]/);\n if (cut === -1) return { sanitized: idPart, hadSuffix: false };\n return { sanitized: idPart.slice(0, cut), hadSuffix: true };\n}\n\nfunction buildParamString(params: DidRoutingParams): string {\n const entries: Array<[string, string]> = [];\n if (params.uid) entries.push(['uid', params.uid]);\n if (params.registry) entries.push(['registry', params.registry]);\n if (params.proto) entries.push(['proto', params.proto]);\n if (params.nativeId) entries.push(['nativeId', params.nativeId]);\n if (params.domain) entries.push(['domain', params.domain]);\n if (params.src) entries.push(['src', params.src]);\n if (entries.length === 0) return '';\n return entries.map(([k, v]) => `${k}=${v}`).join(';');\n}\n\nfunction defaultAidParams(\n data: CanonicalAgentData,\n params?: DidRoutingParams,\n): DidRoutingParams {\n const merged: DidRoutingParams = { ...params };\n if (!merged.registry) merged.registry = data.registry;\n if (!merged.nativeId) merged.nativeId = data.nativeId;\n if (!merged.uid) merged.uid = '0';\n return merged;\n}\n\nasync function createUaidAidImpl(\n input: CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string> {\n const { normalized, canonicalJson } = canonicalizeAgentData(input);\n const adapter = getCryptoAdapter();\n const hasher = adapter.createHash('sha384');\n const digestResult = hasher\n .update(Buffer.from(canonicalJson, 'utf8'))\n .digest();\n const digestBuffer = (await Promise.resolve(\n digestResult as string | Buffer,\n )) as string | Buffer;\n const bytes = Buffer.isBuffer(digestBuffer)\n ? (digestBuffer as Buffer)\n : Buffer.from(digestBuffer as string);\n const id = base58Encode(bytes);\n const includeParams = options?.includeParams !== false;\n const finalParams = includeParams\n ? defaultAidParams(normalized, params || {})\n : {};\n const paramString = includeParams ? buildParamString(finalParams) : '';\n return paramString ? `uaid:aid:${id};${paramString}` : `uaid:aid:${id}`;\n}\n\nfunction createUaidFromDidImpl(\n existingDid: string,\n params?: DidRoutingParams,\n): string {\n let method: string;\n let idPart: string;\n if (existingDid.startsWith('uaid:aid:')) {\n method = 'aid';\n idPart = existingDid.slice('uaid:aid:'.length);\n } else if (existingDid.startsWith('did:')) {\n const idx = existingDid.indexOf(':');\n const second = existingDid.indexOf(':', idx + 1);\n if (second < 0) throw new Error('Invalid DID format');\n method = existingDid.slice(idx + 1, second);\n idPart = existingDid.slice(second + 1);\n } else {\n throw new Error('Invalid DID format');\n }\n const { sanitized, hadSuffix } = sanitizeDidSpecificId(idPart);\n\n let finalId = sanitized;\n if (method === 'hedera') {\n const networkPrefixMatch = sanitized.match(\n /^(mainnet|testnet|previewnet|devnet):(.+)$/,\n );\n if (networkPrefixMatch) {\n finalId = networkPrefixMatch[2];\n }\n }\n\n const finalParams: DidRoutingParams = { ...(params || {}) };\n if (hadSuffix && !finalParams.src) {\n finalParams.src = encodeMultibaseB58btc(existingDid);\n }\n const paramString = buildParamString(finalParams);\n return paramString\n ? `uaid:did:${finalId};${paramString}`\n : `uaid:did:${finalId}`;\n}\n\nexport function createUaid(\n existingDid: string,\n params?: DidRoutingParams,\n): string;\nexport function createUaid(\n input: CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string>;\nexport function createUaid(\n input: string | CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFromDidImpl(input, params);\n }\n return createUaidAidImpl(input, params, options);\n}\n\nexport function parseHcs14Did(did: string): ParsedHcs14Did {\n const parseParams = (paramStr: string): Record<string, string> => {\n const params: Record<string, string> = {};\n if (!paramStr) return params;\n const pairs = paramStr.split(';');\n for (const p of pairs) {\n const eq = p.indexOf('=');\n if (eq > 0) {\n const k = p.slice(0, eq);\n const v = p.slice(eq + 1);\n params[k] = v;\n }\n }\n return params;\n };\n\n if (did.startsWith('uaid:')) {\n const afterUaid = did.slice('uaid:'.length);\n let inner: 'did' | 'aid';\n let afterInner: string;\n if (afterUaid.startsWith('did:')) {\n inner = 'did';\n afterInner = afterUaid.slice('did:'.length);\n } else if (afterUaid.startsWith('aid:')) {\n inner = 'aid';\n afterInner = afterUaid.slice('aid:'.length);\n } else {\n throw new Error('Invalid UAID');\n }\n const semi = afterInner.indexOf(';');\n const id = semi >= 0 ? afterInner.slice(0, semi) : afterInner;\n const paramStr = semi >= 0 ? afterInner.slice(semi + 1) : '';\n const params = parseParams(paramStr);\n return { method: inner === 'did' ? 'uaid' : 'aid', id, params };\n }\n\n throw new Error('Invalid DID');\n}\n"],"names":[],"mappings":"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"}
@@ -1,124 +1,51 @@
1
- import { getCryptoAdapter } from "./standards-sdk.es120.js";
2
- import { base58Encode } from "./standards-sdk.es158.js";
3
- import { canonicalizeAgentData } from "./standards-sdk.es56.js";
4
- function encodeMultibaseB58btc(input) {
5
- const bytes = Buffer.from(input, "utf8");
6
- return "z" + base58Encode(bytes);
7
- }
8
- function sanitizeDidSpecificId(idPart) {
9
- const cut = idPart.search(/[;?#]/);
10
- if (cut === -1) return { sanitized: idPart, hadSuffix: false };
11
- return { sanitized: idPart.slice(0, cut), hadSuffix: true };
12
- }
13
- function buildParamString(params) {
14
- const entries = [];
15
- if (params.uid) entries.push(["uid", params.uid]);
16
- if (params.registry) entries.push(["registry", params.registry]);
17
- if (params.proto) entries.push(["proto", params.proto]);
18
- if (params.nativeId) entries.push(["nativeId", params.nativeId]);
19
- if (params.domain) entries.push(["domain", params.domain]);
20
- if (params.src) entries.push(["src", params.src]);
21
- if (entries.length === 0) return "";
22
- return entries.map(([k, v]) => `${k}=${v}`).join(";");
23
- }
24
- function defaultAidParams(data, params) {
25
- const merged = { ...params };
26
- if (!merged.registry) merged.registry = data.registry;
27
- if (!merged.nativeId) merged.nativeId = data.nativeId;
28
- if (!merged.uid) merged.uid = "0";
29
- return merged;
30
- }
31
- async function createUaidAidImpl(input, params, options) {
32
- const { normalized, canonicalJson } = canonicalizeAgentData(input);
33
- const adapter = getCryptoAdapter();
34
- const hasher = adapter.createHash("sha384");
35
- const digestResult = hasher.update(Buffer.from(canonicalJson, "utf8")).digest();
36
- const digestBuffer = await Promise.resolve(
37
- digestResult
38
- );
39
- const bytes = Buffer.isBuffer(digestBuffer) ? digestBuffer : Buffer.from(digestBuffer);
40
- const id = base58Encode(bytes);
41
- const includeParams = options?.includeParams !== false;
42
- const finalParams = includeParams ? defaultAidParams(normalized, params || {}) : {};
43
- const paramString = includeParams ? buildParamString(finalParams) : "";
44
- return paramString ? `uaid:aid:${id};${paramString}` : `uaid:aid:${id}`;
45
- }
46
- function createUaidFromDidImpl(existingDid, params) {
47
- let method;
48
- let idPart;
49
- if (existingDid.startsWith("uaid:aid:")) {
50
- method = "aid";
51
- idPart = existingDid.slice("uaid:aid:".length);
52
- } else if (existingDid.startsWith("did:")) {
53
- const idx = existingDid.indexOf(":");
54
- const second = existingDid.indexOf(":", idx + 1);
55
- if (second < 0) throw new Error("Invalid DID format");
56
- method = existingDid.slice(idx + 1, second);
57
- idPart = existingDid.slice(second + 1);
58
- } else {
59
- throw new Error("Invalid DID format");
1
+ const HEDERA_NETWORKS = [
2
+ "mainnet",
3
+ "testnet",
4
+ "previewnet",
5
+ "devnet"
6
+ ];
7
+ function isHederaNetwork(value) {
8
+ return HEDERA_NETWORKS.includes(value);
9
+ }
10
+ const CAIP10_HEDERA_REGEX = /^hedera:(mainnet|testnet|previewnet|devnet):\d+\.\d+\.\d+(?:-[a-zA-Z0-9]{5})?$/;
11
+ function isHederaCaip10(value) {
12
+ return CAIP10_HEDERA_REGEX.test(value);
13
+ }
14
+ function toHederaCaip10(network, accountId) {
15
+ if (!isHederaNetwork(network)) {
16
+ throw new Error("Invalid Hedera network");
60
17
  }
61
- const { sanitized, hadSuffix } = sanitizeDidSpecificId(idPart);
62
- let finalId = sanitized;
63
- if (method === "hedera") {
64
- const networkPrefixMatch = sanitized.match(
65
- /^(mainnet|testnet|previewnet|devnet):(.+)$/
66
- );
67
- if (networkPrefixMatch) {
68
- finalId = networkPrefixMatch[2];
69
- }
18
+ if (accountId.startsWith("hedera:")) {
19
+ if (isHederaCaip10(accountId)) return accountId;
20
+ throw new Error("Invalid Hedera CAIP-10 account");
70
21
  }
71
- const finalParams = { ...params || {} };
72
- if (hadSuffix && !finalParams.src) {
73
- finalParams.src = encodeMultibaseB58btc(existingDid);
22
+ if (!/^\d+\.\d+\.\d+(?:-[a-zA-Z0-9]{5})?$/.test(accountId)) {
23
+ throw new Error("Invalid Hedera accountId format");
74
24
  }
75
- const paramString = buildParamString(finalParams);
76
- return paramString ? `uaid:did:${finalId};${paramString}` : `uaid:did:${finalId}`;
25
+ return `hedera:${network}:${accountId}`;
77
26
  }
78
- function createUaid(input, params, options) {
79
- if (typeof input === "string") {
80
- return createUaidFromDidImpl(input, params);
81
- }
82
- return createUaidAidImpl(input, params, options);
27
+ function parseHederaCaip10(value) {
28
+ if (!isHederaCaip10(value)) throw new Error("Invalid Hedera CAIP-10");
29
+ const [, net, account] = value.match(/^hedera:([^:]+):(.+)$/);
30
+ return { network: net, accountId: account };
83
31
  }
84
- function parseHcs14Did(did) {
85
- const parseParams = (paramStr) => {
86
- const params = {};
87
- if (!paramStr) return params;
88
- const pairs = paramStr.split(";");
89
- for (const p of pairs) {
90
- const eq = p.indexOf("=");
91
- if (eq > 0) {
92
- const k = p.slice(0, eq);
93
- const v = p.slice(eq + 1);
94
- params[k] = v;
95
- }
96
- }
97
- return params;
98
- };
99
- if (did.startsWith("uaid:")) {
100
- const afterUaid = did.slice("uaid:".length);
101
- let inner;
102
- let afterInner;
103
- if (afterUaid.startsWith("did:")) {
104
- inner = "did";
105
- afterInner = afterUaid.slice("did:".length);
106
- } else if (afterUaid.startsWith("aid:")) {
107
- inner = "aid";
108
- afterInner = afterUaid.slice("aid:".length);
109
- } else {
110
- throw new Error("Invalid UAID");
111
- }
112
- const semi = afterInner.indexOf(";");
113
- const id = semi >= 0 ? afterInner.slice(0, semi) : afterInner;
114
- const paramStr = semi >= 0 ? afterInner.slice(semi + 1) : "";
115
- const params = parseParams(paramStr);
116
- return { method: inner === "did" ? "uaid" : "aid", id, params };
117
- }
118
- throw new Error("Invalid DID");
32
+ const EIP155_REGEX = /^eip155:(\d+):(0x[0-9a-fA-F]{39,40})$/;
33
+ function isEip155Caip10(value) {
34
+ return EIP155_REGEX.test(value);
35
+ }
36
+ function toEip155Caip10(chainId, address) {
37
+ const chain = typeof chainId === "number" ? String(chainId) : chainId;
38
+ const addr = address.startsWith("0x") ? address : `0x${address}`;
39
+ const value = `eip155:${chain}:${addr}`;
40
+ if (!isEip155Caip10(value)) throw new Error("Invalid EIP-155 CAIP-10");
41
+ return value;
119
42
  }
120
43
  export {
121
- createUaid,
122
- parseHcs14Did
44
+ isEip155Caip10,
45
+ isHederaCaip10,
46
+ isHederaNetwork,
47
+ parseHederaCaip10,
48
+ toEip155Caip10,
49
+ toHederaCaip10
123
50
  };
124
51
  //# sourceMappingURL=standards-sdk.es57.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es57.js","sources":["../../src/hcs-14/did.ts"],"sourcesContent":["/**\n * DID generation and parsing for HCS-14 AID/UAID methods.\n */\n\nimport { getCryptoAdapter } from '../utils/crypto-abstraction';\nimport { base58Encode } from './base58';\nimport { canonicalizeAgentData } from './canonical';\nimport { CanonicalAgentData, DidRoutingParams, ParsedHcs14Did } from './types';\n\nfunction encodeMultibaseB58btc(input: string): string {\n const bytes = Buffer.from(input, 'utf8');\n return 'z' + base58Encode(bytes);\n}\n\nfunction sanitizeDidSpecificId(idPart: string): {\n sanitized: string;\n hadSuffix: boolean;\n} {\n const cut = idPart.search(/[;?#]/);\n if (cut === -1) return { sanitized: idPart, hadSuffix: false };\n return { sanitized: idPart.slice(0, cut), hadSuffix: true };\n}\n\nfunction buildParamString(params: DidRoutingParams): string {\n const entries: Array<[string, string]> = [];\n if (params.uid) entries.push(['uid', params.uid]);\n if (params.registry) entries.push(['registry', params.registry]);\n if (params.proto) entries.push(['proto', params.proto]);\n if (params.nativeId) entries.push(['nativeId', params.nativeId]);\n if (params.domain) entries.push(['domain', params.domain]);\n if (params.src) entries.push(['src', params.src]);\n if (entries.length === 0) return '';\n return entries.map(([k, v]) => `${k}=${v}`).join(';');\n}\n\nfunction defaultAidParams(\n data: CanonicalAgentData,\n params?: DidRoutingParams,\n): DidRoutingParams {\n const merged: DidRoutingParams = { ...params };\n if (!merged.registry) merged.registry = data.registry;\n if (!merged.nativeId) merged.nativeId = data.nativeId;\n if (!merged.uid) merged.uid = '0';\n return merged;\n}\n\nasync function createUaidAidImpl(\n input: CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string> {\n const { normalized, canonicalJson } = canonicalizeAgentData(input);\n const adapter = getCryptoAdapter();\n const hasher = adapter.createHash('sha384');\n const digestResult = hasher\n .update(Buffer.from(canonicalJson, 'utf8'))\n .digest();\n const digestBuffer = (await Promise.resolve(\n digestResult as string | Buffer,\n )) as string | Buffer;\n const bytes = Buffer.isBuffer(digestBuffer)\n ? (digestBuffer as Buffer)\n : Buffer.from(digestBuffer as string);\n const id = base58Encode(bytes);\n const includeParams = options?.includeParams !== false;\n const finalParams = includeParams\n ? defaultAidParams(normalized, params || {})\n : {};\n const paramString = includeParams ? buildParamString(finalParams) : '';\n return paramString ? `uaid:aid:${id};${paramString}` : `uaid:aid:${id}`;\n}\n\nfunction createUaidFromDidImpl(\n existingDid: string,\n params?: DidRoutingParams,\n): string {\n let method: string;\n let idPart: string;\n if (existingDid.startsWith('uaid:aid:')) {\n method = 'aid';\n idPart = existingDid.slice('uaid:aid:'.length);\n } else if (existingDid.startsWith('did:')) {\n const idx = existingDid.indexOf(':');\n const second = existingDid.indexOf(':', idx + 1);\n if (second < 0) throw new Error('Invalid DID format');\n method = existingDid.slice(idx + 1, second);\n idPart = existingDid.slice(second + 1);\n } else {\n throw new Error('Invalid DID format');\n }\n const { sanitized, hadSuffix } = sanitizeDidSpecificId(idPart);\n\n let finalId = sanitized;\n if (method === 'hedera') {\n const networkPrefixMatch = sanitized.match(\n /^(mainnet|testnet|previewnet|devnet):(.+)$/,\n );\n if (networkPrefixMatch) {\n finalId = networkPrefixMatch[2];\n }\n }\n\n const finalParams: DidRoutingParams = { ...(params || {}) };\n if (hadSuffix && !finalParams.src) {\n finalParams.src = encodeMultibaseB58btc(existingDid);\n }\n const paramString = buildParamString(finalParams);\n return paramString\n ? `uaid:did:${finalId};${paramString}`\n : `uaid:did:${finalId}`;\n}\n\nexport function createUaid(\n existingDid: string,\n params?: DidRoutingParams,\n): string;\nexport function createUaid(\n input: CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string>;\nexport function createUaid(\n input: string | CanonicalAgentData,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFromDidImpl(input, params);\n }\n return createUaidAidImpl(input, params, options);\n}\n\nexport function parseHcs14Did(did: string): ParsedHcs14Did {\n const parseParams = (paramStr: string): Record<string, string> => {\n const params: Record<string, string> = {};\n if (!paramStr) return params;\n const pairs = paramStr.split(';');\n for (const p of pairs) {\n const eq = p.indexOf('=');\n if (eq > 0) {\n const k = p.slice(0, eq);\n const v = p.slice(eq + 1);\n params[k] = v;\n }\n }\n return params;\n };\n\n if (did.startsWith('uaid:')) {\n const afterUaid = did.slice('uaid:'.length);\n let inner: 'did' | 'aid';\n let afterInner: string;\n if (afterUaid.startsWith('did:')) {\n inner = 'did';\n afterInner = afterUaid.slice('did:'.length);\n } else if (afterUaid.startsWith('aid:')) {\n inner = 'aid';\n afterInner = afterUaid.slice('aid:'.length);\n } else {\n throw new Error('Invalid UAID');\n }\n const semi = afterInner.indexOf(';');\n const id = semi >= 0 ? afterInner.slice(0, semi) : afterInner;\n const paramStr = semi >= 0 ? afterInner.slice(semi + 1) : '';\n const params = parseParams(paramStr);\n return { method: inner === 'did' ? 'uaid' : 'aid', id, params };\n }\n\n throw new Error('Invalid DID');\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es57.js","sources":["../../src/hcs-14/caip.ts"],"sourcesContent":["/**\n * CAIP helpers for Hedera alignment in HCS-14.\n */\n\nexport type HederaNetwork = 'mainnet' | 'testnet' | 'previewnet' | 'devnet';\n\nconst HEDERA_NETWORKS: HederaNetwork[] = [\n 'mainnet',\n 'testnet',\n 'previewnet',\n 'devnet',\n];\n\nexport function isHederaNetwork(value: string): value is HederaNetwork {\n return HEDERA_NETWORKS.includes(value as HederaNetwork);\n}\n\nconst CAIP10_HEDERA_REGEX =\n /^hedera:(mainnet|testnet|previewnet|devnet):\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9]{5})?$/;\n\nexport function isHederaCaip10(value: string): boolean {\n return CAIP10_HEDERA_REGEX.test(value);\n}\n\nexport function toHederaCaip10(\n network: HederaNetwork,\n accountId: string,\n): string {\n if (!isHederaNetwork(network)) {\n throw new Error('Invalid Hedera network');\n }\n if (accountId.startsWith('hedera:')) {\n if (isHederaCaip10(accountId)) return accountId;\n throw new Error('Invalid Hedera CAIP-10 account');\n }\n if (!/^\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9]{5})?$/.test(accountId)) {\n throw new Error('Invalid Hedera accountId format');\n }\n return `hedera:${network}:${accountId}`;\n}\n\nexport function parseHederaCaip10(value: string): {\n network: HederaNetwork;\n accountId: string;\n} {\n if (!isHederaCaip10(value)) throw new Error('Invalid Hedera CAIP-10');\n const [, net, account] = value.match(/^hedera:([^:]+):(.+)$/)!;\n return { network: net as HederaNetwork, accountId: account };\n}\n\nconst EIP155_REGEX = /^eip155:(\\d+):(0x[0-9a-fA-F]{39,40})$/;\n\nexport function isEip155Caip10(value: string): boolean {\n return EIP155_REGEX.test(value);\n}\n\nexport function toEip155Caip10(\n chainId: number | string,\n address: string,\n): string {\n const chain = typeof chainId === 'number' ? String(chainId) : chainId;\n const addr = address.startsWith('0x') ? address : `0x${address}`;\n const value = `eip155:${chain}:${addr}`;\n if (!isEip155Caip10(value)) throw new Error('Invalid EIP-155 CAIP-10');\n return value;\n}\n"],"names":[],"mappings":"AAMA,MAAM,kBAAmC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,OAAuC;AACrE,SAAO,gBAAgB,SAAS,KAAsB;AACxD;AAEA,MAAM,sBACJ;AAEK,SAAS,eAAe,OAAwB;AACrD,SAAO,oBAAoB,KAAK,KAAK;AACvC;AAEO,SAAS,eACd,SACA,WACQ;AACR,MAAI,CAAC,gBAAgB,OAAO,GAAG;AAC7B,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACA,MAAI,UAAU,WAAW,SAAS,GAAG;AACnC,QAAI,eAAe,SAAS,EAAG,QAAO;AACtC,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,MAAI,CAAC,sCAAsC,KAAK,SAAS,GAAG;AAC1D,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AACA,SAAO,UAAU,OAAO,IAAI,SAAS;AACvC;AAEO,SAAS,kBAAkB,OAGhC;AACA,MAAI,CAAC,eAAe,KAAK,EAAG,OAAM,IAAI,MAAM,wBAAwB;AACpE,QAAM,CAAA,EAAG,KAAK,OAAO,IAAI,MAAM,MAAM,uBAAuB;AAC5D,SAAO,EAAE,SAAS,KAAsB,WAAW,QAAA;AACrD;AAEA,MAAM,eAAe;AAEd,SAAS,eAAe,OAAwB;AACrD,SAAO,aAAa,KAAK,KAAK;AAChC;AAEO,SAAS,eACd,SACA,SACQ;AACR,QAAM,QAAQ,OAAO,YAAY,WAAW,OAAO,OAAO,IAAI;AAC9D,QAAM,OAAO,QAAQ,WAAW,IAAI,IAAI,UAAU,KAAK,OAAO;AAC9D,QAAM,QAAQ,UAAU,KAAK,IAAI,IAAI;AACrC,MAAI,CAAC,eAAe,KAAK,EAAG,OAAM,IAAI,MAAM,yBAAyB;AACrE,SAAO;AACT;"}
@@ -1,51 +1,60 @@
1
- const HEDERA_NETWORKS = [
2
- "mainnet",
3
- "testnet",
4
- "previewnet",
5
- "devnet"
6
- ];
7
- function isHederaNetwork(value) {
8
- return HEDERA_NETWORKS.includes(value);
9
- }
10
- const CAIP10_HEDERA_REGEX = /^hedera:(mainnet|testnet|previewnet|devnet):\d+\.\d+\.\d+(?:-[a-zA-Z0-9]{5})?$/;
11
- function isHederaCaip10(value) {
12
- return CAIP10_HEDERA_REGEX.test(value);
13
- }
14
- function toHederaCaip10(network, accountId) {
15
- if (!isHederaNetwork(network)) {
16
- throw new Error("Invalid Hedera network");
1
+ import { HieroDidResolver } from "./standards-sdk.es59.js";
2
+ import { parseHcs14Did } from "./standards-sdk.es56.js";
3
+ import { multibaseB58btcDecode } from "./standards-sdk.es151.js";
4
+ class ResolverRegistry {
5
+ constructor() {
6
+ this.resolvers = [];
17
7
  }
18
- if (accountId.startsWith("hedera:")) {
19
- if (isHederaCaip10(accountId)) return accountId;
20
- throw new Error("Invalid Hedera CAIP-10 account");
8
+ register(resolver) {
9
+ this.resolvers.push(resolver);
21
10
  }
22
- if (!/^\d+\.\d+\.\d+(?:-[a-zA-Z0-9]{5})?$/.test(accountId)) {
23
- throw new Error("Invalid Hedera accountId format");
11
+ list() {
12
+ return [...this.resolvers];
13
+ }
14
+ filterByDidMethod(method) {
15
+ return this.resolvers.filter((r) => r.meta?.didMethods?.includes(method));
16
+ }
17
+ async resolveDid(did) {
18
+ for (const r of this.resolvers) {
19
+ if (r.supports(did)) return r.resolve(did);
20
+ }
21
+ return null;
22
+ }
23
+ async resolveUaid(uaid) {
24
+ const parsed = parseHcs14Did(uaid);
25
+ if (parsed.method !== "uaid") return null;
26
+ const src = parsed.params["src"];
27
+ if (src) {
28
+ const raw = Buffer.from(multibaseB58btcDecode(src)).toString("utf8");
29
+ return this.resolveDid(raw);
30
+ }
31
+ const id = parsed.id;
32
+ if (id.startsWith("testnet:") || id.startsWith("mainnet:") || id.startsWith("previewnet:") || id.startsWith("devnet:")) {
33
+ const did = `did:hedera:${id}`;
34
+ return this.resolveDid(did);
35
+ }
36
+ const proto = parsed.params["proto"];
37
+ const nativeId = parsed.params["nativeId"];
38
+ if (proto === "hcs-10" && nativeId) {
39
+ const match = nativeId.match(
40
+ /^hedera:(mainnet|testnet|previewnet|devnet):/
41
+ );
42
+ if (match) {
43
+ const network = match[1];
44
+ const did = `did:hedera:${network}:${id}`;
45
+ return this.resolveDid(did);
46
+ }
47
+ }
48
+ return null;
24
49
  }
25
- return `hedera:${network}:${accountId}`;
26
- }
27
- function parseHederaCaip10(value) {
28
- if (!isHederaCaip10(value)) throw new Error("Invalid Hedera CAIP-10");
29
- const [, net, account] = value.match(/^hedera:([^:]+):(.+)$/);
30
- return { network: net, accountId: account };
31
- }
32
- const EIP155_REGEX = /^eip155:(\d+):(0x[0-9a-fA-F]{39,40})$/;
33
- function isEip155Caip10(value) {
34
- return EIP155_REGEX.test(value);
35
50
  }
36
- function toEip155Caip10(chainId, address) {
37
- const chain = typeof chainId === "number" ? String(chainId) : chainId;
38
- const addr = address.startsWith("0x") ? address : `0x${address}`;
39
- const value = `eip155:${chain}:${addr}`;
40
- if (!isEip155Caip10(value)) throw new Error("Invalid EIP-155 CAIP-10");
41
- return value;
51
+ const defaultResolverRegistry = new ResolverRegistry();
52
+ function registerDefaultResolvers() {
53
+ defaultResolverRegistry.register(new HieroDidResolver());
42
54
  }
43
55
  export {
44
- isEip155Caip10,
45
- isHederaCaip10,
46
- isHederaNetwork,
47
- parseHederaCaip10,
48
- toEip155Caip10,
49
- toHederaCaip10
56
+ ResolverRegistry,
57
+ defaultResolverRegistry,
58
+ registerDefaultResolvers
50
59
  };
51
60
  //# sourceMappingURL=standards-sdk.es58.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es58.js","sources":["../../src/hcs-14/caip.ts"],"sourcesContent":["/**\n * CAIP helpers for Hedera alignment in HCS-14.\n */\n\nexport type HederaNetwork = 'mainnet' | 'testnet' | 'previewnet' | 'devnet';\n\nconst HEDERA_NETWORKS: HederaNetwork[] = [\n 'mainnet',\n 'testnet',\n 'previewnet',\n 'devnet',\n];\n\nexport function isHederaNetwork(value: string): value is HederaNetwork {\n return HEDERA_NETWORKS.includes(value as HederaNetwork);\n}\n\nconst CAIP10_HEDERA_REGEX =\n /^hedera:(mainnet|testnet|previewnet|devnet):\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9]{5})?$/;\n\nexport function isHederaCaip10(value: string): boolean {\n return CAIP10_HEDERA_REGEX.test(value);\n}\n\nexport function toHederaCaip10(\n network: HederaNetwork,\n accountId: string,\n): string {\n if (!isHederaNetwork(network)) {\n throw new Error('Invalid Hedera network');\n }\n if (accountId.startsWith('hedera:')) {\n if (isHederaCaip10(accountId)) return accountId;\n throw new Error('Invalid Hedera CAIP-10 account');\n }\n if (!/^\\d+\\.\\d+\\.\\d+(?:-[a-zA-Z0-9]{5})?$/.test(accountId)) {\n throw new Error('Invalid Hedera accountId format');\n }\n return `hedera:${network}:${accountId}`;\n}\n\nexport function parseHederaCaip10(value: string): {\n network: HederaNetwork;\n accountId: string;\n} {\n if (!isHederaCaip10(value)) throw new Error('Invalid Hedera CAIP-10');\n const [, net, account] = value.match(/^hedera:([^:]+):(.+)$/)!;\n return { network: net as HederaNetwork, accountId: account };\n}\n\nconst EIP155_REGEX = /^eip155:(\\d+):(0x[0-9a-fA-F]{39,40})$/;\n\nexport function isEip155Caip10(value: string): boolean {\n return EIP155_REGEX.test(value);\n}\n\nexport function toEip155Caip10(\n chainId: number | string,\n address: string,\n): string {\n const chain = typeof chainId === 'number' ? String(chainId) : chainId;\n const addr = address.startsWith('0x') ? address : `0x${address}`;\n const value = `eip155:${chain}:${addr}`;\n if (!isEip155Caip10(value)) throw new Error('Invalid EIP-155 CAIP-10');\n return value;\n}\n"],"names":[],"mappings":"AAMA,MAAM,kBAAmC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,gBAAgB,OAAuC;AACrE,SAAO,gBAAgB,SAAS,KAAsB;AACxD;AAEA,MAAM,sBACJ;AAEK,SAAS,eAAe,OAAwB;AACrD,SAAO,oBAAoB,KAAK,KAAK;AACvC;AAEO,SAAS,eACd,SACA,WACQ;AACR,MAAI,CAAC,gBAAgB,OAAO,GAAG;AAC7B,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACA,MAAI,UAAU,WAAW,SAAS,GAAG;AACnC,QAAI,eAAe,SAAS,EAAG,QAAO;AACtC,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,MAAI,CAAC,sCAAsC,KAAK,SAAS,GAAG;AAC1D,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AACA,SAAO,UAAU,OAAO,IAAI,SAAS;AACvC;AAEO,SAAS,kBAAkB,OAGhC;AACA,MAAI,CAAC,eAAe,KAAK,EAAG,OAAM,IAAI,MAAM,wBAAwB;AACpE,QAAM,CAAA,EAAG,KAAK,OAAO,IAAI,MAAM,MAAM,uBAAuB;AAC5D,SAAO,EAAE,SAAS,KAAsB,WAAW,QAAA;AACrD;AAEA,MAAM,eAAe;AAEd,SAAS,eAAe,OAAwB;AACrD,SAAO,aAAa,KAAK,KAAK;AAChC;AAEO,SAAS,eACd,SACA,SACQ;AACR,QAAM,QAAQ,OAAO,YAAY,WAAW,OAAO,OAAO,IAAI;AAC9D,QAAM,OAAO,QAAQ,WAAW,IAAI,IAAI,UAAU,KAAK,OAAO;AAC9D,QAAM,QAAQ,UAAU,KAAK,IAAI,IAAI;AACrC,MAAI,CAAC,eAAe,KAAK,EAAG,OAAM,IAAI,MAAM,yBAAyB;AACrE,SAAO;AACT;"}
1
+ {"version":3,"file":"standards-sdk.es58.js","sources":["../../src/hcs-14/resolvers/registry.ts"],"sourcesContent":["/**\n * Resolver registry for HCS-14.\n */\n\nimport { DidDocumentMinimal, DidResolver } from './types';\nimport { HieroDidResolver } from './hiero';\nimport { parseHcs14Did } from '../did';\nimport { multibaseB58btcDecode } from '../base58';\n\nexport class ResolverRegistry {\n private resolvers: DidResolver[] = [];\n\n register(resolver: DidResolver): void {\n this.resolvers.push(resolver);\n }\n\n list(): DidResolver[] {\n return [...this.resolvers];\n }\n\n filterByDidMethod(method: string): DidResolver[] {\n return this.resolvers.filter(r => r.meta?.didMethods?.includes(method));\n }\n\n async resolveDid(did: string): Promise<DidDocumentMinimal | null> {\n for (const r of this.resolvers) {\n if (r.supports(did)) return r.resolve(did);\n }\n return null;\n }\n\n async resolveUaid(uaid: string): Promise<DidDocumentMinimal | null> {\n const parsed = parseHcs14Did(uaid);\n if (parsed.method !== 'uaid') return null;\n\n const src = parsed.params['src'];\n if (src) {\n const raw = Buffer.from(multibaseB58btcDecode(src)).toString('utf8');\n return this.resolveDid(raw);\n }\n\n const id = parsed.id;\n if (\n id.startsWith('testnet:') ||\n id.startsWith('mainnet:') ||\n id.startsWith('previewnet:') ||\n id.startsWith('devnet:')\n ) {\n const did = `did:hedera:${id}`;\n return this.resolveDid(did);\n }\n\n const proto = parsed.params['proto'];\n const nativeId = parsed.params['nativeId'];\n if (proto === 'hcs-10' && nativeId) {\n const match = nativeId.match(\n /^hedera:(mainnet|testnet|previewnet|devnet):/,\n );\n if (match) {\n const network = match[1];\n const did = `did:hedera:${network}:${id}`;\n return this.resolveDid(did);\n }\n }\n\n return null;\n }\n}\n\nexport const defaultResolverRegistry = new ResolverRegistry();\n\nexport function registerDefaultResolvers(): void {\n defaultResolverRegistry.register(new HieroDidResolver());\n}\n"],"names":[],"mappings":";;;AASO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACL,SAAQ,YAA2B,CAAA;AAAA,EAAC;AAAA,EAEpC,SAAS,UAA6B;AACpC,SAAK,UAAU,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,OAAsB;AACpB,WAAO,CAAC,GAAG,KAAK,SAAS;AAAA,EAC3B;AAAA,EAEA,kBAAkB,QAA+B;AAC/C,WAAO,KAAK,UAAU,OAAO,CAAA,MAAK,EAAE,MAAM,YAAY,SAAS,MAAM,CAAC;AAAA,EACxE;AAAA,EAEA,MAAM,WAAW,KAAiD;AAChE,eAAW,KAAK,KAAK,WAAW;AAC9B,UAAI,EAAE,SAAS,GAAG,EAAG,QAAO,EAAE,QAAQ,GAAG;AAAA,IAC3C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY,MAAkD;AAClE,UAAM,SAAS,cAAc,IAAI;AACjC,QAAI,OAAO,WAAW,OAAQ,QAAO;AAErC,UAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,QAAI,KAAK;AACP,YAAM,MAAM,OAAO,KAAK,sBAAsB,GAAG,CAAC,EAAE,SAAS,MAAM;AACnE,aAAO,KAAK,WAAW,GAAG;AAAA,IAC5B;AAEA,UAAM,KAAK,OAAO;AAClB,QACE,GAAG,WAAW,UAAU,KACxB,GAAG,WAAW,UAAU,KACxB,GAAG,WAAW,aAAa,KAC3B,GAAG,WAAW,SAAS,GACvB;AACA,YAAM,MAAM,cAAc,EAAE;AAC5B,aAAO,KAAK,WAAW,GAAG;AAAA,IAC5B;AAEA,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,OAAO,OAAO,UAAU;AACzC,QAAI,UAAU,YAAY,UAAU;AAClC,YAAM,QAAQ,SAAS;AAAA,QACrB;AAAA,MAAA;AAEF,UAAI,OAAO;AACT,cAAM,UAAU,MAAM,CAAC;AACvB,cAAM,MAAM,cAAc,OAAO,IAAI,EAAE;AACvC,eAAO,KAAK,WAAW,GAAG;AAAA,MAC5B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,0BAA0B,IAAI,iBAAA;AAEpC,SAAS,2BAAiC;AAC/C,0BAAwB,SAAS,IAAI,kBAAkB;AACzD;"}