@hashgraphonline/standards-sdk 0.1.187 → 0.1.188

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 (212) hide show
  1. package/dist/browser/services/registry-broker/client/agent-network.d.ts +974 -0
  2. package/dist/browser/services/registry-broker/client/agent-network.d.ts.map +1 -0
  3. package/dist/browser/services/registry-broker/client/base-client.d.ts +4 -0
  4. package/dist/browser/services/registry-broker/client/base-client.d.ts.map +1 -1
  5. package/dist/browser/services/registry-broker/client.d.ts +1 -0
  6. package/dist/browser/services/registry-broker/client.d.ts.map +1 -1
  7. package/dist/browser/standards-sdk.browser.js +149 -0
  8. package/dist/browser/standards-sdk.browser.js.map +1 -1
  9. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts +974 -0
  10. package/dist/browser-root/services/registry-broker/client/agent-network.d.ts.map +1 -0
  11. package/dist/browser-root/services/registry-broker/client/base-client.d.ts +4 -0
  12. package/dist/browser-root/services/registry-broker/client/base-client.d.ts.map +1 -1
  13. package/dist/browser-root/services/registry-broker/client.d.ts +1 -0
  14. package/dist/browser-root/services/registry-broker/client.d.ts.map +1 -1
  15. package/dist/browser-root/standards-sdk.root-browser.js +404 -15
  16. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  17. package/dist/cjs/services/registry-broker/client/agent-network.d.ts +974 -0
  18. package/dist/cjs/services/registry-broker/client/agent-network.d.ts.map +1 -0
  19. package/dist/cjs/services/registry-broker/client/base-client.d.ts +4 -0
  20. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  21. package/dist/cjs/services/registry-broker/client.d.ts +1 -0
  22. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  23. package/dist/cjs/standards-sdk.cjs +2 -2
  24. package/dist/cjs/standards-sdk.cjs.map +1 -1
  25. package/dist/es/services/registry-broker/client/agent-network.d.ts +974 -0
  26. package/dist/es/services/registry-broker/client/agent-network.d.ts.map +1 -0
  27. package/dist/es/services/registry-broker/client/base-client.d.ts +4 -0
  28. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  29. package/dist/es/services/registry-broker/client.d.ts +1 -0
  30. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  31. package/dist/es/standards-sdk.es.js +50 -27
  32. package/dist/es/standards-sdk.es.js.map +1 -1
  33. package/dist/es/standards-sdk.es104.js +1 -1
  34. package/dist/es/standards-sdk.es106.js +1 -1
  35. package/dist/es/standards-sdk.es108.js +1 -1
  36. package/dist/es/standards-sdk.es11.js +1 -1
  37. package/dist/es/standards-sdk.es110.js +1 -1
  38. package/dist/es/standards-sdk.es116.js +2 -2
  39. package/dist/es/standards-sdk.es12.js +1 -1
  40. package/dist/es/standards-sdk.es120.js +4 -4
  41. package/dist/es/standards-sdk.es121.js +11 -11
  42. package/dist/es/standards-sdk.es126.js +1 -1
  43. package/dist/es/standards-sdk.es132.js +3 -2
  44. package/dist/es/standards-sdk.es132.js.map +1 -1
  45. package/dist/es/standards-sdk.es133.js +5 -5
  46. package/dist/es/standards-sdk.es143.js +1 -1
  47. package/dist/es/standards-sdk.es144.js +1 -1
  48. package/dist/es/standards-sdk.es145.js +5 -5
  49. package/dist/es/standards-sdk.es147.js +3 -3
  50. package/dist/es/standards-sdk.es148.js +1 -1
  51. package/dist/es/standards-sdk.es150.js +24 -15
  52. package/dist/es/standards-sdk.es150.js.map +1 -1
  53. package/dist/es/standards-sdk.es152.js +372 -248
  54. package/dist/es/standards-sdk.es152.js.map +1 -1
  55. package/dist/es/standards-sdk.es153.js +259 -4
  56. package/dist/es/standards-sdk.es153.js.map +1 -1
  57. package/dist/es/standards-sdk.es154.js +4 -81
  58. package/dist/es/standards-sdk.es154.js.map +1 -1
  59. package/dist/es/standards-sdk.es155.js +71 -77
  60. package/dist/es/standards-sdk.es155.js.map +1 -1
  61. package/dist/es/standards-sdk.es156.js +80 -53
  62. package/dist/es/standards-sdk.es156.js.map +1 -1
  63. package/dist/es/standards-sdk.es157.js +59 -2546
  64. package/dist/es/standards-sdk.es157.js.map +1 -1
  65. package/dist/es/standards-sdk.es158.js +2547 -159
  66. package/dist/es/standards-sdk.es158.js.map +1 -1
  67. package/dist/es/standards-sdk.es159.js +159 -7
  68. package/dist/es/standards-sdk.es159.js.map +1 -1
  69. package/dist/es/standards-sdk.es16.js +3 -2
  70. package/dist/es/standards-sdk.es16.js.map +1 -1
  71. package/dist/es/standards-sdk.es160.js +7 -86
  72. package/dist/es/standards-sdk.es160.js.map +1 -1
  73. package/dist/es/standards-sdk.es161.js +64 -43
  74. package/dist/es/standards-sdk.es161.js.map +1 -1
  75. package/dist/es/standards-sdk.es162.js +57 -186
  76. package/dist/es/standards-sdk.es162.js.map +1 -1
  77. package/dist/es/standards-sdk.es163.js +188 -20
  78. package/dist/es/standards-sdk.es163.js.map +1 -1
  79. package/dist/es/standards-sdk.es164.js +22 -54
  80. package/dist/es/standards-sdk.es164.js.map +1 -1
  81. package/dist/es/standards-sdk.es165.js +41 -78
  82. package/dist/es/standards-sdk.es165.js.map +1 -1
  83. package/dist/es/standards-sdk.es166.js +81 -35
  84. package/dist/es/standards-sdk.es166.js.map +1 -1
  85. package/dist/es/standards-sdk.es167.js +36 -191
  86. package/dist/es/standards-sdk.es167.js.map +1 -1
  87. package/dist/es/standards-sdk.es168.js +191 -43
  88. package/dist/es/standards-sdk.es168.js.map +1 -1
  89. package/dist/es/standards-sdk.es169.js +46 -39
  90. package/dist/es/standards-sdk.es169.js.map +1 -1
  91. package/dist/es/standards-sdk.es170.js +37 -44
  92. package/dist/es/standards-sdk.es170.js.map +1 -1
  93. package/dist/es/standards-sdk.es171.js +46 -39
  94. package/dist/es/standards-sdk.es171.js.map +1 -1
  95. package/dist/es/standards-sdk.es172.js +29 -102
  96. package/dist/es/standards-sdk.es172.js.map +1 -1
  97. package/dist/es/standards-sdk.es173.js +104 -36
  98. package/dist/es/standards-sdk.es173.js.map +1 -1
  99. package/dist/es/standards-sdk.es174.js +43 -33
  100. package/dist/es/standards-sdk.es174.js.map +1 -1
  101. package/dist/es/standards-sdk.es175.js +44 -72
  102. package/dist/es/standards-sdk.es175.js.map +1 -1
  103. package/dist/es/standards-sdk.es176.js +65 -61
  104. package/dist/es/standards-sdk.es176.js.map +1 -1
  105. package/dist/es/standards-sdk.es177.js +63 -39
  106. package/dist/es/standards-sdk.es177.js.map +1 -1
  107. package/dist/es/standards-sdk.es178.js +44 -36
  108. package/dist/es/standards-sdk.es178.js.map +1 -1
  109. package/dist/es/standards-sdk.es179.js +36 -30
  110. package/dist/es/standards-sdk.es179.js.map +1 -1
  111. package/dist/es/standards-sdk.es18.js +6 -5
  112. package/dist/es/standards-sdk.es18.js.map +1 -1
  113. package/dist/es/standards-sdk.es180.js +30 -34
  114. package/dist/es/standards-sdk.es180.js.map +1 -1
  115. package/dist/es/standards-sdk.es181.js +34 -48
  116. package/dist/es/standards-sdk.es181.js.map +1 -1
  117. package/dist/es/standards-sdk.es182.js +48 -138
  118. package/dist/es/standards-sdk.es182.js.map +1 -1
  119. package/dist/es/standards-sdk.es183.js +133 -37
  120. package/dist/es/standards-sdk.es183.js.map +1 -1
  121. package/dist/es/standards-sdk.es184.js +34 -12474
  122. package/dist/es/standards-sdk.es184.js.map +1 -1
  123. package/dist/es/standards-sdk.es185.js +12425 -615
  124. package/dist/es/standards-sdk.es185.js.map +1 -1
  125. package/dist/es/standards-sdk.es186.js +47 -102
  126. package/dist/es/standards-sdk.es186.js.map +1 -1
  127. package/dist/es/standards-sdk.es187.js +96 -58
  128. package/dist/es/standards-sdk.es187.js.map +1 -1
  129. package/dist/es/standards-sdk.es188.js +73 -48
  130. package/dist/es/standards-sdk.es188.js.map +1 -1
  131. package/dist/es/standards-sdk.es189.js +180 -61
  132. package/dist/es/standards-sdk.es189.js.map +1 -1
  133. package/dist/es/standards-sdk.es19.js +4 -3
  134. package/dist/es/standards-sdk.es19.js.map +1 -1
  135. package/dist/es/standards-sdk.es190.js +14 -197
  136. package/dist/es/standards-sdk.es190.js.map +1 -1
  137. package/dist/es/standards-sdk.es191.js +658 -158
  138. package/dist/es/standards-sdk.es191.js.map +1 -1
  139. package/dist/es/standards-sdk.es192.js +139 -289
  140. package/dist/es/standards-sdk.es192.js.map +1 -1
  141. package/dist/es/standards-sdk.es193.js +274 -298
  142. package/dist/es/standards-sdk.es193.js.map +1 -1
  143. package/dist/es/standards-sdk.es194.js +262 -369
  144. package/dist/es/standards-sdk.es194.js.map +1 -1
  145. package/dist/es/standards-sdk.es195.js +316 -194
  146. package/dist/es/standards-sdk.es195.js.map +1 -1
  147. package/dist/es/standards-sdk.es196.js +319 -64
  148. package/dist/es/standards-sdk.es196.js.map +1 -1
  149. package/dist/es/standards-sdk.es197.js +74 -15
  150. package/dist/es/standards-sdk.es197.js.map +1 -1
  151. package/dist/es/standards-sdk.es198.js +60 -126
  152. package/dist/es/standards-sdk.es198.js.map +1 -1
  153. package/dist/es/standards-sdk.es199.js +104 -482
  154. package/dist/es/standards-sdk.es199.js.map +1 -1
  155. package/dist/es/standards-sdk.es200.js +480 -222
  156. package/dist/es/standards-sdk.es200.js.map +1 -1
  157. package/dist/es/standards-sdk.es201.js +239 -176
  158. package/dist/es/standards-sdk.es201.js.map +1 -1
  159. package/dist/es/standards-sdk.es202.js +178 -101
  160. package/dist/es/standards-sdk.es202.js.map +1 -1
  161. package/dist/es/standards-sdk.es203.js +75 -108
  162. package/dist/es/standards-sdk.es203.js.map +1 -1
  163. package/dist/es/standards-sdk.es204.js +116 -148
  164. package/dist/es/standards-sdk.es204.js.map +1 -1
  165. package/dist/es/standards-sdk.es205.js +146 -646
  166. package/dist/es/standards-sdk.es205.js.map +1 -1
  167. package/dist/es/standards-sdk.es206.js +661 -162
  168. package/dist/es/standards-sdk.es206.js.map +1 -1
  169. package/dist/es/standards-sdk.es207.js +156 -206
  170. package/dist/es/standards-sdk.es207.js.map +1 -1
  171. package/dist/es/standards-sdk.es208.js +219 -223
  172. package/dist/es/standards-sdk.es208.js.map +1 -1
  173. package/dist/es/standards-sdk.es209.js +242 -0
  174. package/dist/es/standards-sdk.es209.js.map +1 -0
  175. package/dist/es/standards-sdk.es22.js +1 -1
  176. package/dist/es/standards-sdk.es27.js +6 -5
  177. package/dist/es/standards-sdk.es27.js.map +1 -1
  178. package/dist/es/standards-sdk.es30.js +1 -1
  179. package/dist/es/standards-sdk.es31.js +1 -1
  180. package/dist/es/standards-sdk.es35.js +4 -3
  181. package/dist/es/standards-sdk.es35.js.map +1 -1
  182. package/dist/es/standards-sdk.es36.js +3 -3
  183. package/dist/es/standards-sdk.es37.js +1 -1
  184. package/dist/es/standards-sdk.es4.js +1 -1
  185. package/dist/es/standards-sdk.es53.js +1 -1
  186. package/dist/es/standards-sdk.es56.js +1 -1
  187. package/dist/es/standards-sdk.es59.js +1 -1
  188. package/dist/es/standards-sdk.es60.js +1 -1
  189. package/dist/es/standards-sdk.es62.js +1 -1
  190. package/dist/es/standards-sdk.es63.js +2 -2
  191. package/dist/es/standards-sdk.es64.js +1 -1
  192. package/dist/es/standards-sdk.es65.js +1 -1
  193. package/dist/es/standards-sdk.es66.js +1 -1
  194. package/dist/es/standards-sdk.es67.js +4 -3
  195. package/dist/es/standards-sdk.es67.js.map +1 -1
  196. package/dist/es/standards-sdk.es69.js +1 -1
  197. package/dist/es/standards-sdk.es7.js +1 -1
  198. package/dist/es/standards-sdk.es71.js +1 -1
  199. package/dist/es/standards-sdk.es72.js +2 -2
  200. package/dist/es/standards-sdk.es75.js +3 -3
  201. package/dist/es/standards-sdk.es76.js +1 -1
  202. package/dist/es/standards-sdk.es78.js +1 -1
  203. package/dist/es/standards-sdk.es83.js +1 -1
  204. package/dist/es/standards-sdk.es84.js +3 -2
  205. package/dist/es/standards-sdk.es84.js.map +1 -1
  206. package/dist/es/standards-sdk.es85.js +1 -1
  207. package/dist/es/standards-sdk.es88.js +1 -1
  208. package/dist/es/standards-sdk.es90.js +1 -1
  209. package/dist/es/standards-sdk.es94.js +3 -3
  210. package/dist/es/standards-sdk.es98.js +1 -1
  211. package/dist/es/standards-sdk.es99.js +1 -1
  212. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es205.js","sources":["../../src/services/registry-broker/client/guard.ts"],"sourcesContent":["import type {\n GuardAlertPreferences,\n GuardAlertPreferencesUpdate,\n GuardAbomResponse,\n GuardArtifactTimelineResponse,\n GuardBalanceResponse,\n GuardFeedResponse,\n GuardOverviewResponse,\n GuardPolicy,\n GuardDeviceListResponse,\n GuardExceptionListResponse,\n GuardExceptionUpsert,\n GuardInventoryDiffResponse,\n GuardInventoryResponse,\n GuardPainSignalAggregateResponse,\n GuardPainSignalIngestItem,\n GuardPainSignalListResponse,\n GuardPreflightRequest,\n GuardPreflightVerdictResponse,\n GuardReceiptExportResponse,\n GuardReceiptHistoryResponse,\n GuardReceiptSyncPayload,\n GuardReceiptSyncResponse,\n GuardRevocationResponse,\n GuardSessionResponse,\n GuardTeamPolicyPack,\n GuardTeamPolicyPackUpdate,\n GuardTrustByHashResponse,\n GuardTrustResolveQuery,\n GuardTrustResolveResponse,\n GuardWatchlistResponse,\n GuardWatchlistLookupResponse,\n GuardWatchlistUpsert,\n JsonValue,\n} from '../types';\nimport {\n guardAlertPreferencesSchema,\n guardAbomResponseSchema,\n guardArtifactTimelineResponseSchema,\n guardBalanceResponseSchema,\n guardFeedResponseSchema,\n guardOverviewResponseSchema,\n guardPolicySchema,\n guardDeviceListResponseSchema,\n guardExceptionListResponseSchema,\n guardInventoryDiffResponseSchema,\n guardInventoryResponseSchema,\n guardPainSignalListResponseSchema,\n guardPainSignalAggregateResponseSchema,\n guardPreflightVerdictResponseSchema,\n guardReceiptExportResponseSchema,\n guardReceiptHistoryResponseSchema,\n guardReceiptSyncResponseSchema,\n guardRevocationResponseSchema,\n guardSessionResponseSchema,\n guardTeamPolicyPackSchema,\n guardTrustByHashResponseSchema,\n guardTrustResolveResponseSchema,\n guardWatchlistLookupResponseSchema,\n guardWatchlistResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient, RequestConfig } from './base-client';\nimport { RegistryBrokerError } from './errors';\n\nfunction isStatusError(error: unknown): error is { status: number } {\n if (error instanceof RegistryBrokerError) {\n return true;\n }\n if (typeof error !== 'object' || error === null || !('status' in error)) {\n return false;\n }\n return typeof Reflect.get(error, 'status') === 'number';\n}\n\nfunction toPortalCanonicalGuardPath(path: string): string {\n const segments = path.split('/');\n const findPatternStart = (\n size: number,\n matcher: (startIndex: number) => boolean,\n ): number => {\n for (\n let startIndex = segments.length - size;\n startIndex >= 0;\n startIndex -= 1\n ) {\n if (matcher(startIndex)) {\n return startIndex;\n }\n }\n return -1;\n };\n\n const replaceAt = (startIndex: number, consumed: number): string =>\n [\n ...segments.slice(0, startIndex),\n 'api',\n 'guard',\n ...segments.slice(startIndex + consumed),\n ].join('/');\n\n const registryStart = findPatternStart(\n 4,\n startIndex =>\n segments[startIndex] === 'registry' &&\n segments[startIndex + 1] === 'api' &&\n /^v\\d+$/.test(segments[startIndex + 2] ?? '') &&\n segments[startIndex + 3] === 'guard',\n );\n if (registryStart >= 0) {\n return replaceAt(registryStart, 4);\n }\n\n const apiVersionStart = findPatternStart(\n 3,\n startIndex =>\n segments[startIndex] === 'api' &&\n /^v\\d+$/.test(segments[startIndex + 1] ?? '') &&\n segments[startIndex + 2] === 'guard',\n );\n if (apiVersionStart >= 0) {\n return replaceAt(apiVersionStart, 3);\n }\n\n for (let index = segments.length - 1; index >= 0; index -= 1) {\n if (segments[index] === 'guard' && segments[index - 1] !== 'api') {\n return [\n ...segments.slice(0, index),\n 'api',\n 'guard',\n ...segments.slice(index + 1),\n ].join('/');\n }\n }\n return path;\n}\n\nfunction buildPortalCanonicalGuardUrl(baseUrl: string, path: string): string {\n const target = new URL(path, 'https://guard.local');\n const normalizedBasePath = (() => {\n try {\n const base = new URL(baseUrl);\n return base.pathname.replace(/\\/+$/, '');\n } catch {\n return baseUrl.replace(/\\/+$/, '');\n }\n })();\n const requestedPath = `${normalizedBasePath}${target.pathname}`;\n const canonicalPath = toPortalCanonicalGuardPath(requestedPath);\n const canonicalRelativePath = `${canonicalPath}${target.search}`;\n try {\n const base = new URL(baseUrl);\n return `${base.origin}${canonicalRelativePath}`;\n } catch {\n return canonicalRelativePath;\n }\n}\n\nasync function requestPortalFirstJson<T extends JsonValue>(\n client: RegistryBrokerClient,\n path: string,\n init: RequestConfig,\n): Promise<T> {\n try {\n return await client.requestJson<T>(path, init);\n } catch (error) {\n if (\n isStatusError(error) &&\n (error.status === 404 || error.status === 501)\n ) {\n return client.requestAbsoluteJson<T>(\n buildPortalCanonicalGuardUrl(client.baseUrl, path),\n init,\n );\n }\n throw error;\n }\n}\n\nexport async function getGuardSession(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/auth/session',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard session response',\n );\n}\n\nexport async function getGuardEntitlements(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/entitlements',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard entitlements response',\n );\n}\n\nexport async function getGuardBillingBalance(\n client: RegistryBrokerClient,\n): Promise<GuardBalanceResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/billing/balance',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardBalanceResponseSchema,\n 'guard billing balance response',\n );\n}\n\nexport async function getGuardFeed(\n client: RegistryBrokerClient,\n limit?: number,\n): Promise<GuardFeedResponse> {\n const params = new URLSearchParams();\n if (\n typeof limit === 'number' &&\n Number.isFinite(limit) &&\n Math.trunc(limit) > 0\n ) {\n params.set('limit', String(Math.trunc(limit)));\n }\n const query = params.toString();\n const suffix = query ? `?${query}` : '';\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/feed${suffix}`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardFeedResponseSchema,\n 'guard feed response',\n );\n}\n\nexport async function getGuardOverview(\n client: RegistryBrokerClient,\n): Promise<GuardOverviewResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/overview',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardOverviewResponseSchema,\n 'guard overview response',\n );\n}\n\nexport async function getGuardTrustByHash(\n client: RegistryBrokerClient,\n sha256: string,\n): Promise<GuardTrustByHashResponse> {\n const normalizedHash = sha256.trim();\n if (!normalizedHash) {\n throw new Error('sha256 is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/trust/by-hash/${encodeURIComponent(normalizedHash)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustByHashResponseSchema,\n 'guard trust by hash response',\n );\n}\n\nexport async function resolveGuardTrust(\n client: RegistryBrokerClient,\n query: GuardTrustResolveQuery,\n): Promise<GuardTrustResolveResponse> {\n const params = new URLSearchParams();\n if (query.ecosystem?.trim()) {\n params.set('ecosystem', query.ecosystem.trim());\n }\n if (query.name?.trim()) {\n params.set('name', query.name.trim());\n }\n if (query.version?.trim()) {\n params.set('version', query.version.trim());\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/trust/resolve${suffix}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustResolveResponseSchema,\n 'guard trust resolve response',\n );\n}\n\nexport async function getGuardRevocations(\n client: RegistryBrokerClient,\n): Promise<GuardRevocationResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/revocations',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardRevocationResponseSchema,\n 'guard revocations response',\n );\n}\n\nexport async function fetchGuardAdvisories(\n client: RegistryBrokerClient,\n): Promise<GuardRevocationResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/advisories',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardRevocationResponseSchema,\n 'guard advisories response',\n );\n}\n\nexport async function fetchGuardPolicy(\n client: RegistryBrokerClient,\n): Promise<GuardPolicy> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/policy/fetch',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPolicySchema,\n 'guard policy response',\n );\n}\n\nexport async function getGuardInventory(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardInventoryResponseSchema,\n 'guard inventory response',\n );\n}\n\nexport async function getGuardReceiptHistory(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptHistoryResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/history',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptHistoryResponseSchema,\n 'guard receipt history response',\n );\n}\n\nexport async function getGuardArtifactTimeline(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardArtifactTimelineResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/history/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardArtifactTimelineResponseSchema,\n 'guard artifact timeline response',\n );\n}\n\nexport async function exportGuardAbom(\n client: RegistryBrokerClient,\n): Promise<GuardAbomResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(client, '/guard/abom', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardAbomResponseSchema,\n 'guard abom response',\n );\n}\n\nexport async function exportGuardArtifactAbom(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardAbomResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/abom/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardAbomResponseSchema,\n 'guard artifact abom response',\n );\n}\n\nexport async function exportGuardReceipts(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptExportResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/export',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptExportResponseSchema,\n 'guard receipt export response',\n );\n}\n\nexport async function getGuardInventoryDiff(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryDiffResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory/diff',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardInventoryDiffResponseSchema,\n 'guard inventory diff response',\n );\n}\n\nexport async function getGuardDevices(\n client: RegistryBrokerClient,\n): Promise<GuardDeviceListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/devices',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardDeviceListResponseSchema,\n 'guard devices response',\n );\n}\n\nexport async function getGuardAlertPreferences(\n client: RegistryBrokerClient,\n): Promise<GuardAlertPreferences> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/alerts/preferences',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function updateGuardAlertPreferences(\n client: RegistryBrokerClient,\n payload: GuardAlertPreferencesUpdate,\n): Promise<GuardAlertPreferences> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/alerts/preferences',\n {\n method: 'PUT',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function getGuardExceptions(\n client: RegistryBrokerClient,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardWatchlist(\n client: RegistryBrokerClient,\n): Promise<GuardWatchlistResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function lookupGuardWatchlist(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardWatchlistLookupResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist/lookup',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistLookupResponseSchema,\n 'guard watchlist lookup response',\n );\n}\n\nexport async function getGuardPainSignals(\n client: RegistryBrokerClient,\n): Promise<GuardPainSignalListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalListResponseSchema,\n 'guard pain signals response',\n );\n}\n\nexport async function getGuardAggregatedPainSignals(\n client: RegistryBrokerClient,\n): Promise<GuardPainSignalAggregateResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain/aggregate',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalAggregateResponseSchema,\n 'guard aggregated pain signals response',\n );\n}\n\nasync function getGuardPreflightVerdict(\n client: RegistryBrokerClient,\n path: '/guard/verdict/pre-install' | '/guard/verdict/pre-execution',\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(client, path, {\n method: 'POST',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardPreflightVerdictResponseSchema,\n 'guard preflight verdict response',\n );\n}\n\nexport async function getGuardPreInstallVerdict(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n return getGuardPreflightVerdict(\n client,\n '/guard/verdict/pre-install',\n payload,\n );\n}\n\nexport async function getGuardPreExecutionVerdict(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n return getGuardPreflightVerdict(\n client,\n '/guard/verdict/pre-execution',\n payload,\n );\n}\n\nexport async function ingestGuardPainSignals(\n client: RegistryBrokerClient,\n items: GuardPainSignalIngestItem[],\n): Promise<GuardPainSignalListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain',\n {\n method: 'POST',\n body: { items },\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalListResponseSchema,\n 'guard pain signals response',\n );\n}\n\nexport async function submitGuardReceipts(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/submit',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard receipt submit response',\n );\n}\n\nexport async function addGuardWatchlistItem(\n client: RegistryBrokerClient,\n payload: GuardWatchlistUpsert,\n): Promise<GuardWatchlistResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function removeGuardWatchlistItem(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardWatchlistResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/watchlist/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function addGuardException(\n client: RegistryBrokerClient,\n payload: GuardExceptionUpsert,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function requestGuardException(\n client: RegistryBrokerClient,\n payload: GuardExceptionUpsert,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions/request',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exception request response',\n );\n}\n\nexport async function syncGuardInventory(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory/sync',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard inventory sync response',\n );\n}\n\nexport async function removeGuardException(\n client: RegistryBrokerClient,\n exceptionId: string,\n): Promise<GuardExceptionListResponse> {\n const normalizedExceptionId = exceptionId.trim();\n if (!normalizedExceptionId) {\n throw new Error('exceptionId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/exceptions/${encodeURIComponent(normalizedExceptionId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n): Promise<GuardTeamPolicyPack> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/team/policy-pack',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function updateGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n payload: GuardTeamPolicyPackUpdate,\n): Promise<GuardTeamPolicyPack> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/team/policy-pack',\n {\n method: 'PUT',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function syncGuardReceipts(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/sync',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard receipt sync response',\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es205.js","sources":["../../src/services/registry-broker/client/credits.ts"],"sourcesContent":["import type {\n CreditBalanceResponse,\n CreditProvidersResponse,\n CreditPurchaseResponse,\n HbarPurchaseIntentRequest,\n HbarPurchaseIntentResponse,\n JsonObject,\n JsonValue,\n X402CreditPurchaseResponse,\n X402MinimumsResponse,\n} from '../types';\nimport {\n creditBalanceResponseSchema,\n creditProvidersResponseSchema,\n creditPurchaseResponseSchema,\n hbarPurchaseIntentResponseSchema,\n x402CreditPurchaseResponseSchema,\n x402MinimumsResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\nimport { normalizeHexPrivateKey, type X402NetworkId } from './utils';\nimport { optionalImport } from '../../../utils/dynamic-import';\n\ntype PaymentHeaders = Record<string, string | string[] | undefined>;\ntype PaymentClient = {\n post: (\n url: string,\n body: JsonObject,\n ) => Promise<{ data: JsonValue; headers?: PaymentHeaders }>;\n};\n\nexport interface PurchaseCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n walletClient: object;\n}\n\nexport interface BuyCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n evmPrivateKey: string;\n network?: X402NetworkId;\n rpcUrl?: string;\n}\n\nexport type X402PurchaseResult = X402CreditPurchaseResponse & {\n paymentResponseHeader?: string;\n paymentResponse?: unknown;\n};\n\nexport async function getCreditsBalance(\n client: RegistryBrokerClient,\n params: { accountId?: string } = {},\n): Promise<CreditBalanceResponse> {\n const query = new URLSearchParams();\n const normalizedAccountId = params.accountId?.trim();\n if (normalizedAccountId) {\n query.set('accountId', normalizedAccountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n const raw = await client.requestJson<JsonValue>(`/credits/balance${suffix}`, {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n creditBalanceResponseSchema,\n 'credit balance response',\n );\n}\n\nexport async function getCreditProviders(\n client: RegistryBrokerClient,\n): Promise<CreditProvidersResponse> {\n const raw = await client.requestJson<JsonValue>('/credits/providers', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n creditProvidersResponseSchema,\n 'credit providers response',\n );\n}\n\nexport async function createHbarPurchaseIntent(\n client: RegistryBrokerClient,\n payload: HbarPurchaseIntentRequest,\n): Promise<HbarPurchaseIntentResponse> {\n const body: JsonObject = {};\n const normalizedAccountId = payload.accountId?.trim();\n if (normalizedAccountId) {\n body.accountId = normalizedAccountId;\n }\n if (payload.credits !== undefined) {\n body.credits = payload.credits;\n }\n if (payload.hbarAmount !== undefined) {\n body.hbarAmount = payload.hbarAmount;\n }\n if (payload.memo?.trim()) {\n body.memo = payload.memo.trim();\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/credits/payments/hbar/intent',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n },\n );\n return client.parseWithSchema(\n raw,\n hbarPurchaseIntentResponseSchema,\n 'hbar purchase intent response',\n );\n}\n\ntype LoadX402DependenciesResult = {\n createPaymentClient: (walletClient: object) => PaymentClient;\n decodePaymentResponse: (value: string) => unknown;\n createX402Signer: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n};\n\nasync function loadX402Dependencies(\n client: RegistryBrokerClient,\n): Promise<LoadX402DependenciesResult> {\n type X402AxiosModule = {\n withPaymentInterceptor: (client: unknown, walletClient: object) => unknown;\n decodeXPaymentResponse: (value: string) => unknown;\n };\n type X402TypesModule = {\n createSigner: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n };\n\n const [{ default: axios }, x402Axios, x402Types] = await Promise.all([\n import('axios'),\n optionalImport<X402AxiosModule>('x402-axios'),\n optionalImport<X402TypesModule>('x402/types'),\n ]);\n\n if (!x402Axios || !x402Types) {\n throw new Error(\n 'x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments.',\n );\n }\n\n const withPaymentInterceptor = x402Axios.withPaymentInterceptor;\n const decodePaymentResponse = x402Axios.decodeXPaymentResponse;\n const createX402Signer = x402Types.createSigner;\n\n const createPaymentClient = (walletClient: object): PaymentClient => {\n const axiosClient = axios.create({\n baseURL: client.baseUrl,\n headers: {\n ...client.getDefaultHeaders(),\n 'content-type': 'application/json',\n },\n });\n const paymentClient = withPaymentInterceptor(axiosClient, walletClient);\n return paymentClient as PaymentClient;\n };\n\n return { createPaymentClient, decodePaymentResponse, createX402Signer };\n}\n\nfunction calculateHbarAmountParam(hbarAmount: number): number {\n const tinybars = Math.ceil(hbarAmount * 1e8);\n if (tinybars <= 0) {\n throw new Error('Calculated purchase amount must be positive');\n }\n return tinybars / 1e8;\n}\n\nexport async function purchaseCreditsWithHbar(\n client: RegistryBrokerClient,\n params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n },\n): Promise<CreditPurchaseResponse> {\n const body: JsonObject = {\n accountId: params.accountId,\n payerKey: params.privateKey,\n hbarAmount: calculateHbarAmountParam(params.hbarAmount),\n };\n\n if (params.memo) {\n body.memo = params.memo;\n }\n\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const raw = await client.requestJson<JsonValue>('/credits/purchase', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n });\n\n return client.parseWithSchema(\n raw,\n creditPurchaseResponseSchema,\n 'credit purchase response',\n );\n}\n\nexport async function getX402Minimums(\n client: RegistryBrokerClient,\n): Promise<X402MinimumsResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/credits/purchase/x402/minimums',\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n x402MinimumsResponseSchema,\n 'x402 minimums response',\n );\n}\n\nexport async function purchaseCreditsWithX402(\n client: RegistryBrokerClient,\n params: PurchaseCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const { createPaymentClient, decodePaymentResponse } =\n await loadX402Dependencies(client);\n\n if (!Number.isFinite(params.credits) || params.credits <= 0) {\n throw new Error('credits must be a positive number');\n }\n if (\n params.usdAmount !== undefined &&\n (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)\n ) {\n throw new Error('usdAmount must be a positive number when provided');\n }\n\n const body: JsonObject = {\n accountId: params.accountId,\n credits: params.credits,\n };\n\n if (params.usdAmount !== undefined) {\n body.usdAmount = params.usdAmount;\n }\n if (params.description) {\n body.description = params.description;\n }\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const paymentClient = createPaymentClient(params.walletClient);\n\n const response = await paymentClient.post('/credits/purchase/x402', body);\n\n const parsed = client.parseWithSchema(\n response.data,\n x402CreditPurchaseResponseSchema,\n 'x402 credit purchase response',\n );\n\n const responseHeaders = response.headers ?? {};\n const paymentHeader =\n typeof responseHeaders['x-payment-response'] === 'string'\n ? responseHeaders['x-payment-response']\n : undefined;\n const decodedPayment =\n paymentHeader !== undefined\n ? decodePaymentResponse(paymentHeader)\n : undefined;\n\n return {\n ...parsed,\n paymentResponseHeader: paymentHeader,\n paymentResponse: decodedPayment,\n };\n}\n\nexport async function buyCreditsWithX402(\n client: RegistryBrokerClient,\n params: BuyCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const network: X402NetworkId = params.network ?? 'base';\n const { createX402Signer } = await loadX402Dependencies(client);\n const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);\n const walletClient = await createX402Signer(network, normalizedKey);\n\n return purchaseCreditsWithX402(client, {\n accountId: params.accountId,\n credits: params.credits,\n usdAmount: params.usdAmount,\n description: params.description,\n metadata: params.metadata,\n walletClient,\n });\n}\n"],"names":[],"mappings":"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"}