@hashgraphonline/standards-sdk 0.1.184 → 0.1.185

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 (262) hide show
  1. package/dist/browser/hcs-25/identifiers.d.ts +24 -0
  2. package/dist/browser/hcs-25/identifiers.d.ts.map +1 -0
  3. package/dist/browser/hcs-25/index.d.ts +4 -0
  4. package/dist/browser/hcs-25/index.d.ts.map +1 -0
  5. package/dist/browser/hcs-25/scoring.d.ts +32 -0
  6. package/dist/browser/hcs-25/scoring.d.ts.map +1 -0
  7. package/dist/browser/hcs-25/types.d.ts +363 -0
  8. package/dist/browser/hcs-25/types.d.ts.map +1 -0
  9. package/dist/browser/index.d.ts +1 -0
  10. package/dist/browser/index.d.ts.map +1 -1
  11. package/dist/browser-root/hcs-25/identifiers.d.ts +24 -0
  12. package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -0
  13. package/dist/browser-root/hcs-25/index.d.ts +4 -0
  14. package/dist/browser-root/hcs-25/index.d.ts.map +1 -0
  15. package/dist/browser-root/hcs-25/scoring.d.ts +32 -0
  16. package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -0
  17. package/dist/browser-root/hcs-25/types.d.ts +363 -0
  18. package/dist/browser-root/hcs-25/types.d.ts.map +1 -0
  19. package/dist/browser-root/index.d.ts +1 -0
  20. package/dist/browser-root/index.d.ts.map +1 -1
  21. package/dist/cjs/hcs-25/identifiers.d.ts +24 -0
  22. package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -0
  23. package/dist/cjs/hcs-25/index.d.ts +4 -0
  24. package/dist/cjs/hcs-25/index.d.ts.map +1 -0
  25. package/dist/cjs/hcs-25/scoring.d.ts +32 -0
  26. package/dist/cjs/hcs-25/scoring.d.ts.map +1 -0
  27. package/dist/cjs/hcs-25/types.d.ts +363 -0
  28. package/dist/cjs/hcs-25/types.d.ts.map +1 -0
  29. package/dist/cjs/index.d.ts +1 -0
  30. package/dist/cjs/index.d.ts.map +1 -1
  31. package/dist/cjs/standards-sdk.cjs +1 -1
  32. package/dist/cjs/standards-sdk.cjs.map +1 -1
  33. package/dist/es/hcs-25/identifiers.d.ts +24 -0
  34. package/dist/es/hcs-25/identifiers.d.ts.map +1 -0
  35. package/dist/es/hcs-25/index.d.ts +4 -0
  36. package/dist/es/hcs-25/index.d.ts.map +1 -0
  37. package/dist/es/hcs-25/scoring.d.ts +32 -0
  38. package/dist/es/hcs-25/scoring.d.ts.map +1 -0
  39. package/dist/es/hcs-25/types.d.ts +363 -0
  40. package/dist/es/hcs-25/types.d.ts.map +1 -0
  41. package/dist/es/index.d.ts +1 -0
  42. package/dist/es/index.d.ts.map +1 -1
  43. package/dist/es/standards-sdk.es.js +62 -40
  44. package/dist/es/standards-sdk.es.js.map +1 -1
  45. package/dist/es/standards-sdk.es101.js +2 -2
  46. package/dist/es/standards-sdk.es103.js +2 -2
  47. package/dist/es/standards-sdk.es104.js +1 -1
  48. package/dist/es/standards-sdk.es106.js +1 -1
  49. package/dist/es/standards-sdk.es108.js +2 -2
  50. package/dist/es/standards-sdk.es11.js +1 -1
  51. package/dist/es/standards-sdk.es110.js +1 -1
  52. package/dist/es/standards-sdk.es111.js +2 -2
  53. package/dist/es/standards-sdk.es115.js +3 -3
  54. package/dist/es/standards-sdk.es116.js +4 -4
  55. package/dist/es/standards-sdk.es117.js +19 -251
  56. package/dist/es/standards-sdk.es117.js.map +1 -1
  57. package/dist/es/standards-sdk.es118.js +60 -475
  58. package/dist/es/standards-sdk.es118.js.map +1 -1
  59. package/dist/es/standards-sdk.es119.js +217 -86
  60. package/dist/es/standards-sdk.es119.js.map +1 -1
  61. package/dist/es/standards-sdk.es12.js +1 -1
  62. package/dist/es/standards-sdk.es120.js +242 -150
  63. package/dist/es/standards-sdk.es120.js.map +1 -1
  64. package/dist/es/standards-sdk.es121.js +470 -26
  65. package/dist/es/standards-sdk.es121.js.map +1 -1
  66. package/dist/es/standards-sdk.es122.js +103 -10
  67. package/dist/es/standards-sdk.es122.js.map +1 -1
  68. package/dist/es/standards-sdk.es123.js +145 -167
  69. package/dist/es/standards-sdk.es123.js.map +1 -1
  70. package/dist/es/standards-sdk.es124.js +30 -25
  71. package/dist/es/standards-sdk.es124.js.map +1 -1
  72. package/dist/es/standards-sdk.es125.js +10 -20
  73. package/dist/es/standards-sdk.es125.js.map +1 -1
  74. package/dist/es/standards-sdk.es126.js +159 -137
  75. package/dist/es/standards-sdk.es126.js.map +1 -1
  76. package/dist/es/standards-sdk.es127.js +27 -199
  77. package/dist/es/standards-sdk.es127.js.map +1 -1
  78. package/dist/es/standards-sdk.es128.js +15 -783
  79. package/dist/es/standards-sdk.es128.js.map +1 -1
  80. package/dist/es/standards-sdk.es129.js +157 -10
  81. package/dist/es/standards-sdk.es129.js.map +1 -1
  82. package/dist/es/standards-sdk.es13.js +1 -1
  83. package/dist/es/standards-sdk.es130.js +198 -564
  84. package/dist/es/standards-sdk.es130.js.map +1 -1
  85. package/dist/es/standards-sdk.es131.js +703 -539
  86. package/dist/es/standards-sdk.es131.js.map +1 -1
  87. package/dist/es/standards-sdk.es132.js +12 -12
  88. package/dist/es/standards-sdk.es132.js.map +1 -1
  89. package/dist/es/standards-sdk.es133.js +567 -2
  90. package/dist/es/standards-sdk.es133.js.map +1 -1
  91. package/dist/es/standards-sdk.es134.js +610 -71
  92. package/dist/es/standards-sdk.es134.js.map +1 -1
  93. package/dist/es/standards-sdk.es135.js +12 -39
  94. package/dist/es/standards-sdk.es135.js.map +1 -1
  95. package/dist/es/standards-sdk.es136.js +2 -2
  96. package/dist/es/standards-sdk.es136.js.map +1 -1
  97. package/dist/es/standards-sdk.es137.js +42 -190
  98. package/dist/es/standards-sdk.es137.js.map +1 -1
  99. package/dist/es/standards-sdk.es138.js +39 -1139
  100. package/dist/es/standards-sdk.es138.js.map +1 -1
  101. package/dist/es/standards-sdk.es139.js +2 -306
  102. package/dist/es/standards-sdk.es139.js.map +1 -1
  103. package/dist/es/standards-sdk.es14.js +1 -1
  104. package/dist/es/standards-sdk.es140.js +231 -418
  105. package/dist/es/standards-sdk.es140.js.map +1 -1
  106. package/dist/es/standards-sdk.es141.js +1135 -350
  107. package/dist/es/standards-sdk.es141.js.map +1 -1
  108. package/dist/es/standards-sdk.es142.js +268 -1084
  109. package/dist/es/standards-sdk.es142.js.map +1 -1
  110. package/dist/es/standards-sdk.es143.js +418 -204
  111. package/dist/es/standards-sdk.es143.js.map +1 -1
  112. package/dist/es/standards-sdk.es144.js +350 -1562
  113. package/dist/es/standards-sdk.es144.js.map +1 -1
  114. package/dist/es/standards-sdk.es145.js +1061 -1096
  115. package/dist/es/standards-sdk.es145.js.map +1 -1
  116. package/dist/es/standards-sdk.es146.js +204 -13
  117. package/dist/es/standards-sdk.es146.js.map +1 -1
  118. package/dist/es/standards-sdk.es147.js +1541 -233
  119. package/dist/es/standards-sdk.es147.js.map +1 -1
  120. package/dist/es/standards-sdk.es148.js +1157 -4
  121. package/dist/es/standards-sdk.es148.js.map +1 -1
  122. package/dist/es/standards-sdk.es149.js +15 -79
  123. package/dist/es/standards-sdk.es149.js.map +1 -1
  124. package/dist/es/standards-sdk.es15.js +1 -1
  125. package/dist/es/standards-sdk.es150.js +250 -78
  126. package/dist/es/standards-sdk.es150.js.map +1 -1
  127. package/dist/es/standards-sdk.es151.js +4 -60
  128. package/dist/es/standards-sdk.es151.js.map +1 -1
  129. package/dist/es/standards-sdk.es152.js +80 -2546
  130. package/dist/es/standards-sdk.es152.js.map +1 -1
  131. package/dist/es/standards-sdk.es153.js +80 -152
  132. package/dist/es/standards-sdk.es153.js.map +1 -1
  133. package/dist/es/standards-sdk.es154.js +60 -7
  134. package/dist/es/standards-sdk.es154.js.map +1 -1
  135. package/dist/es/standards-sdk.es155.js +2547 -86
  136. package/dist/es/standards-sdk.es155.js.map +1 -1
  137. package/dist/es/standards-sdk.es156.js +144 -50
  138. package/dist/es/standards-sdk.es156.js.map +1 -1
  139. package/dist/es/standards-sdk.es157.js +7 -30
  140. package/dist/es/standards-sdk.es157.js.map +1 -1
  141. package/dist/es/standards-sdk.es158.js +86 -34
  142. package/dist/es/standards-sdk.es158.js.map +1 -1
  143. package/dist/es/standards-sdk.es159.js +65 -48
  144. package/dist/es/standards-sdk.es159.js.map +1 -1
  145. package/dist/es/standards-sdk.es16.js +5 -5
  146. package/dist/es/standards-sdk.es160.js +30 -138
  147. package/dist/es/standards-sdk.es160.js.map +1 -1
  148. package/dist/es/standards-sdk.es161.js +34 -42
  149. package/dist/es/standards-sdk.es161.js.map +1 -1
  150. package/dist/es/standards-sdk.es162.js +48 -12482
  151. package/dist/es/standards-sdk.es162.js.map +1 -1
  152. package/dist/es/standards-sdk.es163.js +12479 -53
  153. package/dist/es/standards-sdk.es163.js.map +1 -1
  154. package/dist/es/standards-sdk.es164.js +124 -97
  155. package/dist/es/standards-sdk.es164.js.map +1 -1
  156. package/dist/es/standards-sdk.es165.js +35 -74
  157. package/dist/es/standards-sdk.es165.js.map +1 -1
  158. package/dist/es/standards-sdk.es166.js +14 -197
  159. package/dist/es/standards-sdk.es166.js.map +1 -1
  160. package/dist/es/standards-sdk.es167.js +54 -15
  161. package/dist/es/standards-sdk.es167.js.map +1 -1
  162. package/dist/es/standards-sdk.es168.js +90 -651
  163. package/dist/es/standards-sdk.es168.js.map +1 -1
  164. package/dist/es/standards-sdk.es169.js +70 -161
  165. package/dist/es/standards-sdk.es169.js.map +1 -1
  166. package/dist/es/standards-sdk.es170.js +187 -309
  167. package/dist/es/standards-sdk.es170.js.map +1 -1
  168. package/dist/es/standards-sdk.es171.js +661 -335
  169. package/dist/es/standards-sdk.es171.js.map +1 -1
  170. package/dist/es/standards-sdk.es172.js +64 -444
  171. package/dist/es/standards-sdk.es172.js.map +1 -1
  172. package/dist/es/standards-sdk.es173.js +142 -301
  173. package/dist/es/standards-sdk.es173.js.map +1 -1
  174. package/dist/es/standards-sdk.es174.js +310 -64
  175. package/dist/es/standards-sdk.es174.js.map +1 -1
  176. package/dist/es/standards-sdk.es175.js +337 -64
  177. package/dist/es/standards-sdk.es175.js.map +1 -1
  178. package/dist/es/standards-sdk.es176.js +438 -124
  179. package/dist/es/standards-sdk.es176.js.map +1 -1
  180. package/dist/es/standards-sdk.es177.js +310 -496
  181. package/dist/es/standards-sdk.es177.js.map +1 -1
  182. package/dist/es/standards-sdk.es178.js +60 -243
  183. package/dist/es/standards-sdk.es178.js.map +1 -1
  184. package/dist/es/standards-sdk.es179.js +118 -175
  185. package/dist/es/standards-sdk.es179.js.map +1 -1
  186. package/dist/es/standards-sdk.es18.js +12 -12
  187. package/dist/es/standards-sdk.es180.js +465 -67
  188. package/dist/es/standards-sdk.es180.js.map +1 -1
  189. package/dist/es/standards-sdk.es181.js +250 -143
  190. package/dist/es/standards-sdk.es181.js.map +1 -1
  191. package/dist/es/standards-sdk.es182.js +172 -160
  192. package/dist/es/standards-sdk.es182.js.map +1 -1
  193. package/dist/es/standards-sdk.es183.js +65 -630
  194. package/dist/es/standards-sdk.es183.js.map +1 -1
  195. package/dist/es/standards-sdk.es184.js +128 -161
  196. package/dist/es/standards-sdk.es184.js.map +1 -1
  197. package/dist/es/standards-sdk.es185.js +144 -195
  198. package/dist/es/standards-sdk.es185.js.map +1 -1
  199. package/dist/es/standards-sdk.es186.js +668 -223
  200. package/dist/es/standards-sdk.es186.js.map +1 -1
  201. package/dist/es/standards-sdk.es187.js +188 -0
  202. package/dist/es/standards-sdk.es187.js.map +1 -0
  203. package/dist/es/standards-sdk.es188.js +238 -0
  204. package/dist/es/standards-sdk.es188.js.map +1 -0
  205. package/dist/es/standards-sdk.es189.js +242 -0
  206. package/dist/es/standards-sdk.es189.js.map +1 -0
  207. package/dist/es/standards-sdk.es19.js +9 -9
  208. package/dist/es/standards-sdk.es2.js +2 -2
  209. package/dist/es/standards-sdk.es20.js +1 -1
  210. package/dist/es/standards-sdk.es21.js +1 -1
  211. package/dist/es/standards-sdk.es22.js +1 -1
  212. package/dist/es/standards-sdk.es23.js +1 -1
  213. package/dist/es/standards-sdk.es24.js +1 -1
  214. package/dist/es/standards-sdk.es25.js +1 -1
  215. package/dist/es/standards-sdk.es26.js +1 -1
  216. package/dist/es/standards-sdk.es27.js +12 -12
  217. package/dist/es/standards-sdk.es30.js +2 -2
  218. package/dist/es/standards-sdk.es31.js +4 -4
  219. package/dist/es/standards-sdk.es32.js +1 -1
  220. package/dist/es/standards-sdk.es35.js +6 -6
  221. package/dist/es/standards-sdk.es36.js +4 -4
  222. package/dist/es/standards-sdk.es37.js +2 -2
  223. package/dist/es/standards-sdk.es38.js +2 -2
  224. package/dist/es/standards-sdk.es39.js +1 -1
  225. package/dist/es/standards-sdk.es4.js +2 -2
  226. package/dist/es/standards-sdk.es40.js +1 -1
  227. package/dist/es/standards-sdk.es41.js +2 -2
  228. package/dist/es/standards-sdk.es46.js +1 -1
  229. package/dist/es/standards-sdk.es5.js +2 -2
  230. package/dist/es/standards-sdk.es51.js +1 -1
  231. package/dist/es/standards-sdk.es53.js +1 -1
  232. package/dist/es/standards-sdk.es56.js +2 -2
  233. package/dist/es/standards-sdk.es59.js +1 -1
  234. package/dist/es/standards-sdk.es6.js +2 -2
  235. package/dist/es/standards-sdk.es60.js +1 -1
  236. package/dist/es/standards-sdk.es62.js +1 -1
  237. package/dist/es/standards-sdk.es63.js +2 -2
  238. package/dist/es/standards-sdk.es64.js +1 -1
  239. package/dist/es/standards-sdk.es65.js +1 -1
  240. package/dist/es/standards-sdk.es66.js +1 -1
  241. package/dist/es/standards-sdk.es67.js +7 -7
  242. package/dist/es/standards-sdk.es69.js +1 -1
  243. package/dist/es/standards-sdk.es7.js +1 -1
  244. package/dist/es/standards-sdk.es71.js +2 -2
  245. package/dist/es/standards-sdk.es72.js +3 -3
  246. package/dist/es/standards-sdk.es75.js +5 -5
  247. package/dist/es/standards-sdk.es76.js +3 -3
  248. package/dist/es/standards-sdk.es77.js +2 -2
  249. package/dist/es/standards-sdk.es78.js +1 -1
  250. package/dist/es/standards-sdk.es81.js +2 -2
  251. package/dist/es/standards-sdk.es83.js +2 -2
  252. package/dist/es/standards-sdk.es84.js +4 -4
  253. package/dist/es/standards-sdk.es85.js +1 -1
  254. package/dist/es/standards-sdk.es88.js +1 -1
  255. package/dist/es/standards-sdk.es89.js +2 -2
  256. package/dist/es/standards-sdk.es9.js +2 -2
  257. package/dist/es/standards-sdk.es90.js +4 -4
  258. package/dist/es/standards-sdk.es94.js +3 -3
  259. package/dist/es/standards-sdk.es96.js +2 -2
  260. package/dist/es/standards-sdk.es98.js +1 -1
  261. package/dist/es/standards-sdk.es99.js +3 -3
  262. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es168.js","sources":["../../src/services/registry-broker/client/skills.ts"],"sourcesContent":["import type {\n JsonValue,\n SkillBadgeQuery,\n SkillBadgeResponse,\n SkillCatalogQueryOptions,\n SkillCatalogResponse,\n SkillDeprecationRecord,\n SkillDeprecationSetRequest,\n SkillDeprecationsResponse,\n SkillListOptions,\n SkillRecommendedVersionResponse,\n SkillRecommendedVersionSetRequest,\n SkillRegistryConfigResponse,\n SkillRegistryCategoriesResponse,\n SkillRegistryJobStatusResponse,\n SkillRegistryListResponse,\n SkillRegistryMineResponse,\n SkillRegistryMyListResponse,\n SkillRegistryOwnershipResponse,\n SkillRegistryPublishRequest,\n SkillRegistryPublishResponse,\n SkillRegistryQuoteRequest,\n SkillRegistryQuoteResponse,\n SkillQuotePreviewRequest,\n SkillQuotePreviewResponse,\n SkillRegistryTagsResponse,\n SkillRegistryVoteRequest,\n SkillRegistryVoteStatusResponse,\n SkillStatusRequest,\n SkillStatusResponse,\n SkillPreviewLookupRequest,\n SkillPreviewByRepoRequest,\n SkillPreviewLookupResponse,\n SkillPreviewRecord,\n SkillConversionSignalsResponse,\n UploadSkillPreviewFromGithubOidcRequest,\n SkillInstallResponse,\n SkillInstallCopyTelemetryRequest,\n SkillInstallCopyTelemetryResponse,\n SkillResolverManifestResponse,\n SkillRegistryVersionsResponse,\n SkillSecurityBreakdownRequest,\n SkillSecurityBreakdownResponse,\n SkillVerificationDomainProofChallengeRequest,\n SkillVerificationDomainProofChallengeResponse,\n SkillVerificationDomainProofVerifyRequest,\n SkillVerificationDomainProofVerifyResponse,\n SkillVerificationRequestCreateRequest,\n SkillVerificationRequestCreateResponse,\n SkillVerificationStatusResponse,\n} from '../types';\nimport {\n skillBadgeResponseSchema,\n skillCatalogResponseSchema,\n skillDeprecationRecordSchema,\n skillDeprecationsResponseSchema,\n skillRecommendedVersionResponseSchema,\n skillRegistryConfigResponseSchema,\n skillRegistryCategoriesResponseSchema,\n skillRegistryJobStatusResponseSchema,\n skillRegistryListResponseSchema,\n skillRegistryMineResponseSchema,\n skillRegistryMyListResponseSchema,\n skillRegistryOwnershipResponseSchema,\n skillRegistryPublishResponseSchema,\n skillRegistryQuoteResponseSchema,\n skillQuotePreviewResponseSchema,\n skillConversionSignalsResponseSchema,\n skillRegistryTagsResponseSchema,\n skillRegistryVoteStatusResponseSchema,\n skillStatusResponseSchema,\n skillPreviewLookupResponseSchema,\n skillPreviewRecordSchema,\n skillInstallResponseSchema,\n skillInstallCopyTelemetryResponseSchema,\n skillSecurityBreakdownResponseSchema,\n skillResolverManifestResponseSchema,\n skillVerificationDomainProofChallengeResponseSchema,\n skillVerificationDomainProofVerifyResponseSchema,\n skillRegistryVersionsResponseSchema,\n skillVerificationRequestCreateResponseSchema,\n skillVerificationStatusResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nfunction requireTrimmedString(value: string, fieldName: string): string {\n const normalizedValue = value.trim();\n if (!normalizedValue) {\n throw new Error(`${fieldName} is required`);\n }\n return normalizedValue;\n}\n\nexport async function skillsConfig(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryConfigResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/config', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryConfigResponseSchema,\n 'skill registry config response',\n );\n}\n\nexport async function listSkills(\n client: RegistryBrokerClient,\n params: SkillListOptions = {},\n): Promise<SkillRegistryListResponse> {\n const query = new URLSearchParams();\n if (params.name) {\n query.set('name', params.name);\n }\n if (params.version) {\n query.set('version', params.version);\n }\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (typeof params.includeFiles === 'boolean') {\n query.set('includeFiles', params.includeFiles ? 'true' : 'false');\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n if (params.q) {\n query.set('q', params.q);\n }\n if (params.tag) {\n query.set('tag', params.tag);\n }\n if (params.category) {\n query.set('category', params.category);\n }\n if (typeof params.featured === 'boolean') {\n query.set('featured', params.featured ? 'true' : 'false');\n }\n if (typeof params.verified === 'boolean') {\n query.set('verified', params.verified ? 'true' : 'false');\n }\n if (params.view) {\n query.set('view', params.view);\n }\n\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryListResponseSchema,\n 'skill registry list response',\n );\n}\n\nexport async function getSkillSecurityBreakdown(\n client: RegistryBrokerClient,\n params: SkillSecurityBreakdownRequest,\n): Promise<SkillSecurityBreakdownResponse> {\n const normalizedJobId = requireTrimmedString(params.jobId, 'jobId');\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedJobId)}/security-breakdown`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillSecurityBreakdownResponseSchema,\n 'skill security breakdown response',\n );\n}\n\nexport async function getSkillsCatalog(\n client: RegistryBrokerClient,\n params: SkillCatalogQueryOptions = {},\n): Promise<SkillCatalogResponse> {\n const query = new URLSearchParams();\n if (params.q) {\n query.set('q', params.q);\n }\n if (params.category) {\n query.set('category', params.category);\n }\n params.tags?.forEach(tag => {\n if (tag.trim()) {\n query.append('tag', tag.trim());\n }\n });\n if (typeof params.featured === 'boolean') {\n query.set('featured', params.featured ? 'true' : 'false');\n }\n if (typeof params.verified === 'boolean') {\n query.set('verified', params.verified ? 'true' : 'false');\n }\n if (params.channel) {\n query.set('channel', params.channel);\n }\n if (params.sortBy) {\n query.set('sortBy', params.sortBy);\n }\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/catalog${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillCatalogResponseSchema,\n 'skill catalog response',\n );\n}\n\nexport async function listSkillVersions(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVersionsResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/versions?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVersionsResponseSchema,\n 'skill registry versions response',\n );\n}\n\nexport async function listMySkills(\n client: RegistryBrokerClient,\n params: { limit?: number } = {},\n): Promise<SkillRegistryMineResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/mine${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMineResponseSchema,\n 'skill registry mine response',\n );\n}\n\nexport async function getMySkillsList(\n client: RegistryBrokerClient,\n params: { limit?: number; cursor?: string; accountId?: string } = {},\n): Promise<SkillRegistryMyListResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/my-list${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMyListResponseSchema,\n 'skill registry my list response',\n );\n}\n\nexport async function quoteSkillPublish(\n client: RegistryBrokerClient,\n payload: SkillRegistryQuoteRequest,\n): Promise<SkillRegistryQuoteResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/quote', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryQuoteResponseSchema,\n 'skill registry quote response',\n );\n}\n\nexport async function quoteSkillPublishPreview(\n client: RegistryBrokerClient,\n payload: SkillQuotePreviewRequest,\n): Promise<SkillQuotePreviewResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/quote-preview', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillQuotePreviewResponseSchema,\n 'skill quote preview response',\n );\n}\n\nexport async function publishSkill(\n client: RegistryBrokerClient,\n payload: SkillRegistryPublishRequest,\n): Promise<SkillRegistryPublishResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/publish', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryPublishResponseSchema,\n 'skill registry publish response',\n );\n}\n\nexport async function getSkillPublishJob(\n client: RegistryBrokerClient,\n jobId: string,\n params: { accountId?: string } = {},\n): Promise<SkillRegistryJobStatusResponse> {\n const normalized = requireTrimmedString(jobId, 'jobId');\n\n const query = new URLSearchParams();\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/jobs/${encodeURIComponent(normalized)}${suffix}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryJobStatusResponseSchema,\n 'skill registry job status response',\n );\n}\n\nexport async function getSkillOwnership(\n client: RegistryBrokerClient,\n params: { name: string; accountId?: string },\n): Promise<SkillRegistryOwnershipResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/ownership?${query.toString()}`,\n {\n method: 'GET',\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryOwnershipResponseSchema,\n 'skill registry ownership response',\n );\n}\n\nexport async function getRecommendedSkillVersion(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRecommendedVersionResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n const raw = await client.requestJson<JsonValue>(\n `/skills/recommended?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillRecommendedVersionResponseSchema,\n 'skill recommended version response',\n );\n}\n\nexport async function setRecommendedSkillVersion(\n client: RegistryBrokerClient,\n payload: SkillRecommendedVersionSetRequest,\n): Promise<SkillRecommendedVersionResponse> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n const normalizedVersion = requireTrimmedString(payload.version, 'version');\n const raw = await client.requestJson<JsonValue>('/skills/recommended', {\n method: 'POST',\n body: {\n name: normalizedName,\n version: normalizedVersion,\n },\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n skillRecommendedVersionResponseSchema,\n 'skill recommended version response',\n );\n}\n\nexport async function getSkillDeprecations(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillDeprecationsResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n const raw = await client.requestJson<JsonValue>(\n `/skills/deprecations?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillDeprecationsResponseSchema,\n 'skill deprecations response',\n );\n}\n\nexport async function setSkillDeprecation(\n client: RegistryBrokerClient,\n payload: SkillDeprecationSetRequest,\n): Promise<SkillDeprecationRecord> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n const version = payload.version?.trim();\n const reason = requireTrimmedString(payload.reason, 'reason');\n const replacementRef = payload.replacementRef?.trim();\n const raw = await client.requestJson<JsonValue>('/skills/deprecate', {\n method: 'POST',\n body: {\n name: normalizedName,\n version,\n reason,\n replacementRef,\n },\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n skillDeprecationRecordSchema,\n 'skill deprecation response',\n );\n}\n\nexport async function getSkillBadge(\n client: RegistryBrokerClient,\n params: SkillBadgeQuery,\n): Promise<SkillBadgeResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.metric) {\n query.set('metric', params.metric);\n }\n if (params.label?.trim()) {\n query.set('label', params.label.trim());\n }\n if (params.style) {\n query.set('style', params.style);\n }\n const raw = await client.requestJson<JsonValue>(\n `/skills/badge?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillBadgeResponseSchema,\n 'skill badge response',\n );\n}\n\nexport async function getSkillStatus(\n client: RegistryBrokerClient,\n params: SkillStatusRequest,\n): Promise<SkillStatusResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.version?.trim()) {\n query.set('version', params.version.trim());\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/status?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillStatusResponseSchema,\n 'skill status response',\n );\n}\n\nexport async function getSkillStatusByRepo(\n client: RegistryBrokerClient,\n params: SkillPreviewByRepoRequest,\n): Promise<SkillStatusResponse> {\n const repo = requireTrimmedString(params.repo, 'repo');\n const skillDir = requireTrimmedString(params.skillDir, 'skillDir');\n\n const query = new URLSearchParams();\n query.set('repo', repo);\n query.set('skillDir', skillDir);\n if (params.ref?.trim()) {\n query.set('ref', params.ref.trim());\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/status/by-repo?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillStatusResponseSchema,\n 'skill status response',\n );\n}\n\nexport async function getSkillConversionSignalsByRepo(\n client: RegistryBrokerClient,\n params: SkillPreviewByRepoRequest,\n): Promise<SkillConversionSignalsResponse> {\n const repo = requireTrimmedString(params.repo, 'repo');\n const skillDir = requireTrimmedString(params.skillDir, 'skillDir');\n\n const query = new URLSearchParams();\n query.set('repo', repo);\n query.set('skillDir', skillDir);\n if (params.ref?.trim()) {\n query.set('ref', params.ref.trim());\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/conversion-signals/by-repo?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillConversionSignalsResponseSchema,\n 'skill conversion signals response',\n );\n}\n\nexport async function uploadSkillPreviewFromGithubOidc(\n client: RegistryBrokerClient,\n payload: UploadSkillPreviewFromGithubOidcRequest,\n): Promise<SkillPreviewRecord> {\n const token = requireTrimmedString(payload.token, 'token');\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/preview/github-oidc',\n {\n method: 'POST',\n body: payload.report,\n headers: {\n 'content-type': 'application/json',\n authorization: `Bearer ${token}`,\n },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillPreviewRecordSchema,\n 'skill preview record response',\n );\n}\n\nexport async function getSkillPreview(\n client: RegistryBrokerClient,\n params: SkillPreviewLookupRequest,\n): Promise<SkillPreviewLookupResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.version?.trim()) {\n query.set('version', params.version.trim());\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/preview?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillPreviewLookupResponseSchema,\n 'skill preview response',\n );\n}\n\nexport async function getSkillPreviewByRepo(\n client: RegistryBrokerClient,\n params: SkillPreviewByRepoRequest,\n): Promise<SkillPreviewLookupResponse> {\n const repo = requireTrimmedString(params.repo, 'repo');\n const skillDir = requireTrimmedString(params.skillDir, 'skillDir');\n\n const query = new URLSearchParams();\n query.set('repo', repo);\n query.set('skillDir', skillDir);\n if (params.ref?.trim()) {\n query.set('ref', params.ref.trim());\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/preview/by-repo?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillPreviewLookupResponseSchema,\n 'skill preview by repo response',\n );\n}\n\nexport async function getSkillPreviewById(\n client: RegistryBrokerClient,\n previewId: string,\n): Promise<SkillPreviewLookupResponse> {\n const normalizedPreviewId = requireTrimmedString(previewId, 'previewId');\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/preview/${encodeURIComponent(normalizedPreviewId)}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillPreviewLookupResponseSchema,\n 'skill preview by id response',\n );\n}\n\nexport async function getSkillInstall(\n client: RegistryBrokerClient,\n skillRef: string,\n): Promise<SkillInstallResponse> {\n const normalizedSkillRef = requireTrimmedString(skillRef, 'skillRef');\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/install`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillInstallResponseSchema,\n 'skill install response',\n );\n}\n\nexport async function recordSkillInstallCopy(\n client: RegistryBrokerClient,\n skillRef: string,\n payload: SkillInstallCopyTelemetryRequest = {},\n): Promise<SkillInstallCopyTelemetryResponse> {\n const normalizedSkillRef = requireTrimmedString(skillRef, 'skillRef');\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/telemetry/install-copy`,\n {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillInstallCopyTelemetryResponseSchema,\n 'skill install copy telemetry response',\n );\n}\n\nexport async function listSkillTags(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryTagsResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/tags', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryTagsResponseSchema,\n 'skill tags response',\n );\n}\n\nexport async function listSkillCategories(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryCategoriesResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/categories', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryCategoriesResponseSchema,\n 'skill categories response',\n );\n}\n\nexport async function resolveSkillMarkdown(\n client: RegistryBrokerClient,\n skillRef: string,\n): Promise<string> {\n const normalizedSkillRef = requireTrimmedString(skillRef, 'skillRef');\n const response = await client.request(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/SKILL.md`,\n {\n method: 'GET',\n headers: {\n accept: 'text/markdown, text/plain;q=0.9, */*;q=0.8',\n },\n },\n );\n return response.text();\n}\n\nexport async function resolveSkillManifest(\n client: RegistryBrokerClient,\n skillRef: string,\n): Promise<SkillResolverManifestResponse> {\n const normalizedSkillRef = requireTrimmedString(skillRef, 'skillRef');\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/manifest`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n skillResolverManifestResponseSchema,\n 'skill resolver manifest response',\n );\n}\n\nexport async function getSkillVoteStatus(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/vote?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function setSkillVote(\n client: RegistryBrokerClient,\n payload: SkillRegistryVoteRequest,\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n\n const raw = await client.requestJson<JsonValue>('/skills/vote', {\n method: 'POST',\n body: { name: normalizedName, upvoted: payload.upvoted },\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function requestSkillVerification(\n client: RegistryBrokerClient,\n payload: SkillVerificationRequestCreateRequest,\n): Promise<SkillVerificationRequestCreateResponse> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/request',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n tier: payload.tier,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationRequestCreateResponseSchema,\n 'skill verification request create response',\n );\n}\n\nexport async function getSkillVerificationStatus(\n client: RegistryBrokerClient,\n params: { name: string; version?: string },\n): Promise<SkillVerificationStatusResponse> {\n const normalizedName = requireTrimmedString(params.name, 'name');\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.version) {\n query.set('version', params.version);\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/verification/status?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationStatusResponseSchema,\n 'skill verification status response',\n );\n}\n\nexport async function createSkillDomainProofChallenge(\n client: RegistryBrokerClient,\n payload: SkillVerificationDomainProofChallengeRequest,\n): Promise<SkillVerificationDomainProofChallengeResponse> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/domain/challenge',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n domain: payload.domain,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationDomainProofChallengeResponseSchema,\n 'skill domain proof challenge response',\n );\n}\n\nexport async function verifySkillDomainProof(\n client: RegistryBrokerClient,\n payload: SkillVerificationDomainProofVerifyRequest,\n): Promise<SkillVerificationDomainProofVerifyResponse> {\n const normalizedName = requireTrimmedString(payload.name, 'name');\n const challengeToken = requireTrimmedString(\n payload.challengeToken,\n 'challengeToken',\n );\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/domain/verify',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n domain: payload.domain,\n challengeToken,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationDomainProofVerifyResponseSchema,\n 'skill domain proof verify response',\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es168.js","sources":["../../src/utils/dynamic-import.ts"],"sourcesContent":["import { isBrowser } from './is-browser';\n\nlet nodeRequire: NodeRequire | null | undefined;\n\nconst isNodeRuntime = (): boolean =>\n typeof process !== 'undefined' && Boolean(process.versions?.node);\n\ntype NodeModuleNamespace = {\n createRequire: (path: string | URL) => NodeRequire;\n};\n\ntype BuiltinModuleLoader = <TModule>(name: string) => TModule | undefined;\n\nfunction resolveBuiltinModuleLoader(): BuiltinModuleLoader | undefined {\n if (typeof process === 'undefined') {\n return undefined;\n }\n\n return (\n process as typeof process & {\n getBuiltinModule?: BuiltinModuleLoader;\n }\n ).getBuiltinModule;\n}\n\nfunction getNodeRequireSync(): NodeRequire | null {\n try {\n const builtinModuleLoader = resolveBuiltinModuleLoader();\n const moduleNamespace = builtinModuleLoader?.('module') as\n | Partial<NodeModuleNamespace>\n | undefined;\n if (typeof moduleNamespace?.createRequire === 'function') {\n const requireFromModule = moduleNamespace.createRequire(import.meta.url);\n if (typeof requireFromModule.resolve === 'function') {\n return requireFromModule;\n }\n }\n\n const globalObject =\n typeof global !== 'undefined'\n ? (global as typeof globalThis)\n : globalThis;\n const runtimeRequire =\n globalObject.process?.mainModule?.require ??\n (globalObject as { require?: NodeRequire }).require ??\n Function('return typeof require === \"function\" ? require : undefined;')();\n\n if (\n typeof runtimeRequire === 'function' &&\n typeof (runtimeRequire as NodeRequire).resolve === 'function'\n ) {\n return runtimeRequire as NodeRequire;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nfunction isModuleNotFound(specifier: string, error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n const code = Reflect.get(error, 'code');\n const message = Reflect.get(error, 'message');\n const messageText = typeof message === 'string' ? message : '';\n\n if (typeof code === 'string' && code.includes('MODULE_NOT_FOUND')) {\n return messageText.includes(specifier);\n }\n\n if (messageText) {\n const lowered = messageText.toLowerCase();\n if (\n lowered.includes('cannot find module') ||\n lowered.includes('module not found') ||\n lowered.includes('cannot find package')\n ) {\n return lowered.includes(specifier.toLowerCase());\n }\n }\n\n return false;\n}\n\nasync function resolveNodeRequire(): Promise<NodeRequire | null> {\n if (nodeRequire !== undefined) {\n return nodeRequire;\n }\n\n if (isBrowser && !isNodeRuntime()) {\n nodeRequire = null;\n return nodeRequire;\n }\n\n try {\n nodeRequire = getNodeRequireSync();\n } catch {\n nodeRequire = null;\n }\n\n return nodeRequire;\n}\n\nasync function dynamicImport<T>(specifier: string): Promise<T | null> {\n try {\n return (await import(/* webpackIgnore: true */ specifier)) as T;\n } catch (error) {\n if (isModuleNotFound(specifier, error)) {\n return null;\n }\n throw error as Error;\n }\n}\n\ntype OptionalImportOptions = {\n preferImport?: boolean;\n};\n\nexport async function optionalImport<T>(\n specifier: string,\n options: OptionalImportOptions = {},\n): Promise<T | null> {\n if (isBrowser && !isNodeRuntime()) {\n return dynamicImport<T>(specifier);\n }\n\n if (!options.preferImport) {\n const requireFn = await resolveNodeRequire();\n if (requireFn) {\n try {\n return requireFn(specifier) as T;\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n }\n }\n\n return dynamicImport<T>(specifier);\n}\n\nexport function optionalImportSync<T>(specifier: string): T | null {\n if (isBrowser && !isNodeRuntime()) {\n return null;\n }\n\n try {\n const requireFn = getNodeRequireSync();\n if (requireFn) {\n return requireFn(specifier) as T;\n }\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n\n return null;\n}\n"],"names":[],"mappings":"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"}
@@ -1,175 +1,84 @@
1
- import { Long, AccountId } from "@hashgraph/sdk";
2
- import { parseKey } from "./standards-sdk.es174.js";
3
- import { Buffer } from "buffer";
4
- class HCSParser {
5
- static parseConsensusCreateTopic(body) {
6
- if (!body) return void 0;
7
- const data = {};
8
- if (body.memo) {
9
- data.memo = body.memo;
10
- }
11
- data.adminKey = parseKey(body.adminKey);
12
- data.submitKey = parseKey(body.submitKey);
13
- if (body.autoRenewPeriod?.seconds) {
14
- data.autoRenewPeriod = Long.fromValue(
15
- body.autoRenewPeriod.seconds
16
- ).toString();
17
- }
18
- if (body.autoRenewAccount) {
19
- data.autoRenewAccountId = new AccountId(
20
- body.autoRenewAccount.shardNum ?? 0,
21
- body.autoRenewAccount.realmNum ?? 0,
22
- body.autoRenewAccount.accountNum ?? 0
23
- ).toString();
24
- }
25
- return data;
1
+ const orderedParamKeys = [
2
+ "uid",
3
+ "registry",
4
+ "proto",
5
+ "nativeId",
6
+ "domain",
7
+ "src"
8
+ ];
9
+ const fqdnLabelRegex = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i;
10
+ function uaidTargetFromParsed(parsed) {
11
+ return parsed.method === "aid" ? "aid" : "did";
12
+ }
13
+ function normalizeDomain(value) {
14
+ return value.trim().replace(/\.$/, "").toLowerCase();
15
+ }
16
+ function isFqdn(value) {
17
+ const normalized = normalizeDomain(value);
18
+ if (!normalized || normalized.length > 253 || !normalized.includes(".")) {
19
+ return false;
26
20
  }
27
- static parseConsensusSubmitMessage(body) {
28
- if (!body) return void 0;
29
- const data = {};
30
- if (body.topicID) {
31
- data.topicId = `${body.topicID.shardNum ?? 0}.${body.topicID.realmNum ?? 0}.${body.topicID.topicNum ?? 0}`;
32
- }
33
- if (body.message?.length > 0) {
34
- const messageBuffer = Buffer.from(body.message);
35
- const utf8String = messageBuffer.toString("utf8");
36
- if (/[\x00-\x08\x0B\x0E-\x1F\x7F]/.test(utf8String) || utf8String.includes("�")) {
37
- data.message = messageBuffer.toString("base64");
38
- data.messageEncoding = "base64";
39
- } else {
40
- data.message = utf8String;
41
- data.messageEncoding = "utf8";
42
- }
21
+ const labels = normalized.split(".");
22
+ for (const label of labels) {
23
+ if (!label || label.length > 63 || !fqdnLabelRegex.test(label)) {
24
+ return false;
43
25
  }
44
- if (body.chunkInfo) {
45
- if (body.chunkInfo.initialTransactionID) {
46
- const txId = body.chunkInfo.initialTransactionID.accountID;
47
- const taValidStart = body.chunkInfo.initialTransactionID.transactionValidStart;
48
- if (txId && taValidStart) {
49
- data.chunkInfoInitialTransactionID = `${txId.shardNum ?? 0}.${txId.realmNum ?? 0}.${txId.accountNum ?? 0}@${taValidStart.seconds ?? 0}.${taValidStart.nanos ?? 0}`;
50
- }
51
- }
52
- if (body.chunkInfo.number !== void 0 && body.chunkInfo.number !== null) {
53
- data.chunkInfoNumber = body.chunkInfo.number;
54
- }
55
- if (body.chunkInfo.total !== void 0 && body.chunkInfo.total !== null) {
56
- data.chunkInfoTotal = body.chunkInfo.total;
57
- }
58
- }
59
- return data;
60
26
  }
61
- static parseConsensusUpdateTopic(body) {
62
- if (!body) return void 0;
63
- const data = {};
64
- if (body.topicID) {
65
- data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;
66
- }
67
- if (body.memo?.value !== void 0) {
68
- data.memo = body.memo.value;
69
- }
70
- if (body.adminKey === null) {
71
- data.clearAdminKey = true;
72
- data.adminKey = void 0;
73
- } else if (body.adminKey) {
74
- data.adminKey = parseKey(body.adminKey);
75
- } else {
76
- data.adminKey = void 0;
77
- }
78
- if (body.submitKey === null) {
79
- data.clearSubmitKey = true;
80
- data.submitKey = void 0;
81
- } else if (body.submitKey) {
82
- data.submitKey = parseKey(body.submitKey);
83
- } else {
84
- data.submitKey = void 0;
27
+ return true;
28
+ }
29
+ function normalizeTxtValue(value) {
30
+ const trimmed = value.trim();
31
+ if (trimmed.length >= 2 && trimmed.startsWith('"') && trimmed.endsWith('"')) {
32
+ return trimmed.slice(1, -1);
33
+ }
34
+ const markdownLinkMatch = trimmed.match(/^\[(.+)\]\((.+)\)$/);
35
+ if (markdownLinkMatch) {
36
+ return markdownLinkMatch[2].trim();
37
+ }
38
+ return trimmed;
39
+ }
40
+ function parseSemicolonFields(input) {
41
+ const fields = {};
42
+ for (const part of input.split(";")) {
43
+ const trimmed = part.trim();
44
+ if (!trimmed) {
45
+ continue;
85
46
  }
86
- if (body.autoRenewPeriod?.seconds) {
87
- data.autoRenewPeriod = Long.fromValue(
88
- body.autoRenewPeriod.seconds
89
- ).toString();
47
+ const equalsIndex = trimmed.indexOf("=");
48
+ if (equalsIndex <= 0) {
49
+ continue;
90
50
  }
91
- if (body.autoRenewAccount) {
92
- data.autoRenewAccountId = new AccountId(
93
- body.autoRenewAccount.shardNum ?? 0,
94
- body.autoRenewAccount.realmNum ?? 0,
95
- body.autoRenewAccount.accountNum ?? 0
96
- ).toString();
51
+ const key = trimmed.slice(0, equalsIndex).trim();
52
+ const value = normalizeTxtValue(trimmed.slice(equalsIndex + 1));
53
+ if (!key || !value) {
54
+ continue;
97
55
  }
98
- return data;
56
+ fields[key] = value;
99
57
  }
100
- static parseConsensusDeleteTopic(body) {
101
- if (!body) return void 0;
102
- const data = {};
103
- if (body.topicID) {
104
- data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum ?? 0}.${body.topicID.topicNum ?? 0}`;
58
+ return fields;
59
+ }
60
+ function buildCanonicalUaid(target, id, params) {
61
+ const entries = [];
62
+ const usedKeys = /* @__PURE__ */ new Set();
63
+ for (const key of orderedParamKeys) {
64
+ const value = params[key];
65
+ if (value) {
66
+ entries.push(`${key}=${value}`);
67
+ usedKeys.add(key);
105
68
  }
106
- return data;
107
69
  }
108
- /**
109
- * Parse HCS transaction from Transaction object with comprehensive extraction
110
- * This is the unified entry point that handles both protobuf and internal field extraction
111
- */
112
- static parseFromTransactionObject(transaction) {
113
- try {
114
- const transactionBody = transaction._transactionBody;
115
- if (!transactionBody) {
116
- return {};
117
- }
118
- if (transactionBody.consensusCreateTopic) {
119
- const consensusCreateTopic = this.parseConsensusCreateTopic(
120
- transactionBody.consensusCreateTopic
121
- );
122
- if (consensusCreateTopic) {
123
- return {
124
- type: "TOPICCREATE",
125
- humanReadableType: "Topic Create",
126
- consensusCreateTopic
127
- };
128
- }
129
- }
130
- if (transactionBody.consensusSubmitMessage) {
131
- const consensusSubmitMessage = this.parseConsensusSubmitMessage(
132
- transactionBody.consensusSubmitMessage
133
- );
134
- if (consensusSubmitMessage) {
135
- return {
136
- type: "CONSENSUSSUBMITMESSAGE",
137
- humanReadableType: "Submit Message",
138
- consensusSubmitMessage
139
- };
140
- }
141
- }
142
- if (transactionBody.consensusUpdateTopic) {
143
- const consensusUpdateTopic = this.parseConsensusUpdateTopic(
144
- transactionBody.consensusUpdateTopic
145
- );
146
- if (consensusUpdateTopic) {
147
- return {
148
- type: "TOPICUPDATE",
149
- humanReadableType: "Topic Update",
150
- consensusUpdateTopic
151
- };
152
- }
153
- }
154
- if (transactionBody.consensusDeleteTopic) {
155
- const consensusDeleteTopic = this.parseConsensusDeleteTopic(
156
- transactionBody.consensusDeleteTopic
157
- );
158
- if (consensusDeleteTopic) {
159
- return {
160
- type: "TOPICDELETE",
161
- humanReadableType: "Topic Delete",
162
- consensusDeleteTopic
163
- };
164
- }
165
- }
166
- return {};
167
- } catch (error) {
168
- return {};
169
- }
70
+ const extraKeys = Object.keys(params).filter((key) => !usedKeys.has(key) && params[key]).sort((a, b) => a.localeCompare(b));
71
+ for (const key of extraKeys) {
72
+ entries.push(`${key}=${params[key]}`);
170
73
  }
74
+ return entries.length > 0 ? `uaid:${target}:${id};${entries.join(";")}` : `uaid:${target}:${id}`;
171
75
  }
172
76
  export {
173
- HCSParser
77
+ buildCanonicalUaid,
78
+ isFqdn,
79
+ normalizeDomain,
80
+ normalizeTxtValue,
81
+ parseSemicolonFields,
82
+ uaidTargetFromParsed
174
83
  };
175
84
  //# sourceMappingURL=standards-sdk.es169.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es169.js","sources":["../../src/utils/parsers/hcs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { AccountId, Long, Transaction } from '@hashgraph/sdk';\nimport {\n ConsensusCreateTopicData,\n ConsensusSubmitMessageData,\n ConsensusUpdateTopicData,\n ConsensusDeleteTopicData,\n} from '../transaction-parser-types';\nimport { parseKey } from './parser-utils';\nimport { Buffer } from 'buffer';\n\nexport class HCSParser {\n static parseConsensusCreateTopic(\n body: proto.IConsensusCreateTopicTransactionBody,\n ): ConsensusCreateTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusCreateTopicData = {};\n if (body.memo) {\n data.memo = body.memo;\n }\n data.adminKey = parseKey(body.adminKey);\n data.submitKey = parseKey(body.submitKey);\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseConsensusSubmitMessage(\n body: proto.IConsensusSubmitMessageTransactionBody,\n ): ConsensusSubmitMessageData | undefined {\n if (!body) return undefined;\n const data: ConsensusSubmitMessageData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum ?? 0}.${\n body.topicID.realmNum ?? 0\n }.${body.topicID.topicNum ?? 0}`;\n }\n if (body.message?.length > 0) {\n const messageBuffer = Buffer.from(body.message);\n const utf8String = messageBuffer.toString('utf8');\n if (\n /[\\x00-\\x08\\x0B\\x0E-\\x1F\\x7F]/.test(utf8String) ||\n utf8String.includes('\\uFFFD')\n ) {\n data.message = messageBuffer.toString('base64');\n data.messageEncoding = 'base64';\n } else {\n data.message = utf8String;\n data.messageEncoding = 'utf8';\n }\n }\n if (body.chunkInfo) {\n if (body.chunkInfo.initialTransactionID) {\n const txId = body.chunkInfo.initialTransactionID.accountID;\n const taValidStart =\n body.chunkInfo.initialTransactionID.transactionValidStart;\n if (txId && taValidStart) {\n data.chunkInfoInitialTransactionID = `${txId.shardNum ?? 0}.${\n txId.realmNum ?? 0\n }.${txId.accountNum ?? 0}@${taValidStart.seconds ?? 0}.${\n taValidStart.nanos ?? 0\n }`;\n }\n }\n if (\n body.chunkInfo.number !== undefined &&\n body.chunkInfo.number !== null\n ) {\n data.chunkInfoNumber = body.chunkInfo.number;\n }\n if (body.chunkInfo.total !== undefined && body.chunkInfo.total !== null) {\n data.chunkInfoTotal = body.chunkInfo.total;\n }\n }\n return data;\n }\n\n static parseConsensusUpdateTopic(\n body: proto.IConsensusUpdateTopicTransactionBody,\n ): ConsensusUpdateTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusUpdateTopicData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum}.${body.topicID.topicNum}`;\n }\n if (body.memo?.value !== undefined) {\n data.memo = body.memo.value;\n }\n if (body.adminKey === null) {\n data.clearAdminKey = true;\n data.adminKey = undefined;\n } else if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n } else {\n data.adminKey = undefined;\n }\n if (body.submitKey === null) {\n data.clearSubmitKey = true;\n data.submitKey = undefined;\n } else if (body.submitKey) {\n data.submitKey = parseKey(body.submitKey);\n } else {\n data.submitKey = undefined;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.autoRenewAccount) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccount.shardNum ?? 0,\n body.autoRenewAccount.realmNum ?? 0,\n body.autoRenewAccount.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseConsensusDeleteTopic(\n body: proto.IConsensusDeleteTopicTransactionBody,\n ): ConsensusDeleteTopicData | undefined {\n if (!body) return undefined;\n const data: ConsensusDeleteTopicData = {};\n if (body.topicID) {\n data.topicId = `${body.topicID.shardNum}.${body.topicID.realmNum ?? 0}.${\n body.topicID.topicNum ?? 0\n }`;\n }\n return data;\n }\n\n /**\n * Parse HCS transaction from Transaction object with comprehensive extraction\n * This is the unified entry point that handles both protobuf and internal field extraction\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const transactionBody = (\n transaction as unknown as { _transactionBody?: unknown }\n )._transactionBody as proto.ITransactionBody | undefined;\n\n if (!transactionBody) {\n return {};\n }\n\n if (transactionBody.consensusCreateTopic) {\n const consensusCreateTopic = this.parseConsensusCreateTopic(\n transactionBody.consensusCreateTopic,\n );\n if (consensusCreateTopic) {\n return {\n type: 'TOPICCREATE',\n humanReadableType: 'Topic Create',\n consensusCreateTopic,\n };\n }\n }\n\n if (transactionBody.consensusSubmitMessage) {\n const consensusSubmitMessage = this.parseConsensusSubmitMessage(\n transactionBody.consensusSubmitMessage,\n );\n if (consensusSubmitMessage) {\n return {\n type: 'CONSENSUSSUBMITMESSAGE',\n humanReadableType: 'Submit Message',\n consensusSubmitMessage,\n };\n }\n }\n\n if (transactionBody.consensusUpdateTopic) {\n const consensusUpdateTopic = this.parseConsensusUpdateTopic(\n transactionBody.consensusUpdateTopic,\n );\n if (consensusUpdateTopic) {\n return {\n type: 'TOPICUPDATE',\n humanReadableType: 'Topic Update',\n consensusUpdateTopic,\n };\n }\n }\n\n if (transactionBody.consensusDeleteTopic) {\n const consensusDeleteTopic = this.parseConsensusDeleteTopic(\n transactionBody.consensusDeleteTopic,\n );\n if (consensusDeleteTopic) {\n return {\n type: 'TOPICDELETE',\n humanReadableType: 'Topic Delete',\n consensusDeleteTopic,\n };\n }\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es169.js","sources":["../../src/hcs-14/resolvers/profile-utils.ts"],"sourcesContent":["import type { ParsedHcs14Did } from '../types';\n\nconst orderedParamKeys = [\n 'uid',\n 'registry',\n 'proto',\n 'nativeId',\n 'domain',\n 'src',\n] as const;\n\nconst fqdnLabelRegex = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/i;\n\nexport function uaidTargetFromParsed(parsed: ParsedHcs14Did): 'aid' | 'did' {\n return parsed.method === 'aid' ? 'aid' : 'did';\n}\n\nexport function normalizeDomain(value: string): string {\n return value.trim().replace(/\\.$/, '').toLowerCase();\n}\n\nexport function isFqdn(value: string): boolean {\n const normalized = normalizeDomain(value);\n if (!normalized || normalized.length > 253 || !normalized.includes('.')) {\n return false;\n }\n const labels = normalized.split('.');\n for (const label of labels) {\n if (!label || label.length > 63 || !fqdnLabelRegex.test(label)) {\n return false;\n }\n }\n return true;\n}\n\nexport function normalizeTxtValue(value: string): string {\n const trimmed = value.trim();\n if (trimmed.length >= 2 && trimmed.startsWith('\"') && trimmed.endsWith('\"')) {\n return trimmed.slice(1, -1);\n }\n const markdownLinkMatch = trimmed.match(/^\\[(.+)\\]\\((.+)\\)$/);\n if (markdownLinkMatch) {\n return markdownLinkMatch[2].trim();\n }\n return trimmed;\n}\n\nexport function parseSemicolonFields(input: string): Record<string, string> {\n const fields: Record<string, string> = {};\n for (const part of input.split(';')) {\n const trimmed = part.trim();\n if (!trimmed) {\n continue;\n }\n const equalsIndex = trimmed.indexOf('=');\n if (equalsIndex <= 0) {\n continue;\n }\n const key = trimmed.slice(0, equalsIndex).trim();\n const value = normalizeTxtValue(trimmed.slice(equalsIndex + 1));\n if (!key || !value) {\n continue;\n }\n fields[key] = value;\n }\n return fields;\n}\n\nexport function buildCanonicalUaid(\n target: 'aid' | 'did',\n id: string,\n params: Record<string, string>,\n): string {\n const entries: string[] = [];\n const usedKeys = new Set<string>();\n\n for (const key of orderedParamKeys) {\n const value = params[key];\n if (value) {\n entries.push(`${key}=${value}`);\n usedKeys.add(key);\n }\n }\n\n const extraKeys = Object.keys(params)\n .filter(key => !usedKeys.has(key) && params[key])\n .sort((a, b) => a.localeCompare(b));\n\n for (const key of extraKeys) {\n entries.push(`${key}=${params[key]}`);\n }\n\n return entries.length > 0\n ? `uaid:${target}:${id};${entries.join(';')}`\n : `uaid:${target}:${id}`;\n}\n\nexport function canonicalizeUaidFromParsed(parsed: ParsedHcs14Did): string {\n return buildCanonicalUaid(\n uaidTargetFromParsed(parsed),\n parsed.id,\n parsed.params,\n );\n}\n"],"names":[],"mappings":"AAEA,MAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB;AAEhB,SAAS,qBAAqB,QAAuC;AAC1E,SAAO,OAAO,WAAW,QAAQ,QAAQ;AAC3C;AAEO,SAAS,gBAAgB,OAAuB;AACrD,SAAO,MAAM,OAAO,QAAQ,OAAO,EAAE,EAAE,YAAA;AACzC;AAEO,SAAS,OAAO,OAAwB;AAC7C,QAAM,aAAa,gBAAgB,KAAK;AACxC,MAAI,CAAC,cAAc,WAAW,SAAS,OAAO,CAAC,WAAW,SAAS,GAAG,GAAG;AACvE,WAAO;AAAA,EACT;AACA,QAAM,SAAS,WAAW,MAAM,GAAG;AACnC,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC,SAAS,MAAM,SAAS,MAAM,CAAC,eAAe,KAAK,KAAK,GAAG;AAC9D,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAAuB;AACvD,QAAM,UAAU,MAAM,KAAA;AACtB,MAAI,QAAQ,UAAU,KAAK,QAAQ,WAAW,GAAG,KAAK,QAAQ,SAAS,GAAG,GAAG;AAC3E,WAAO,QAAQ,MAAM,GAAG,EAAE;AAAA,EAC5B;AACA,QAAM,oBAAoB,QAAQ,MAAM,oBAAoB;AAC5D,MAAI,mBAAmB;AACrB,WAAO,kBAAkB,CAAC,EAAE,KAAA;AAAA,EAC9B;AACA,SAAO;AACT;AAEO,SAAS,qBAAqB,OAAuC;AAC1E,QAAM,SAAiC,CAAA;AACvC,aAAW,QAAQ,MAAM,MAAM,GAAG,GAAG;AACnC,UAAM,UAAU,KAAK,KAAA;AACrB,QAAI,CAAC,SAAS;AACZ;AAAA,IACF;AACA,UAAM,cAAc,QAAQ,QAAQ,GAAG;AACvC,QAAI,eAAe,GAAG;AACpB;AAAA,IACF;AACA,UAAM,MAAM,QAAQ,MAAM,GAAG,WAAW,EAAE,KAAA;AAC1C,UAAM,QAAQ,kBAAkB,QAAQ,MAAM,cAAc,CAAC,CAAC;AAC9D,QAAI,CAAC,OAAO,CAAC,OAAO;AAClB;AAAA,IACF;AACA,WAAO,GAAG,IAAI;AAAA,EAChB;AACA,SAAO;AACT;AAEO,SAAS,mBACd,QACA,IACA,QACQ;AACR,QAAM,UAAoB,CAAA;AAC1B,QAAM,+BAAe,IAAA;AAErB,aAAW,OAAO,kBAAkB;AAClC,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,OAAO;AACT,cAAQ,KAAK,GAAG,GAAG,IAAI,KAAK,EAAE;AAC9B,eAAS,IAAI,GAAG;AAAA,IAClB;AAAA,EACF;AAEA,QAAM,YAAY,OAAO,KAAK,MAAM,EACjC,OAAO,CAAA,QAAO,CAAC,SAAS,IAAI,GAAG,KAAK,OAAO,GAAG,CAAC,EAC/C,KAAK,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AAEpC,aAAW,OAAO,WAAW;AAC3B,YAAQ,KAAK,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE;AAAA,EACtC;AAEA,SAAO,QAAQ,SAAS,IACpB,QAAQ,MAAM,IAAI,EAAE,IAAI,QAAQ,KAAK,GAAG,CAAC,KACzC,QAAQ,MAAM,IAAI,EAAE;AAC1B;"}