@antseed/cli 0.1.179 → 0.1.181

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 (678) hide show
  1. package/README.md +5 -3
  2. package/dist/buyer-identities/store.d.ts +39 -2
  3. package/dist/buyer-identities/store.d.ts.map +1 -1
  4. package/dist/buyer-identities/store.js +99 -10
  5. package/dist/buyer-identities/store.js.map +1 -1
  6. package/dist/cli/commands/apps/index.js +8 -8
  7. package/dist/cli/commands/buyer/identity.d.ts +3 -1
  8. package/dist/cli/commands/buyer/identity.d.ts.map +1 -1
  9. package/dist/cli/commands/buyer/identity.js +55 -8
  10. package/dist/cli/commands/buyer/identity.js.map +1 -1
  11. package/dist/cli/commands/buyer/identity.test.d.ts +2 -0
  12. package/dist/cli/commands/buyer/identity.test.d.ts.map +1 -0
  13. package/dist/cli/commands/buyer/identity.test.js +168 -0
  14. package/dist/cli/commands/buyer/identity.test.js.map +1 -0
  15. package/dist/cli/commands/buyer/set-authorized-wallet.d.ts +10 -0
  16. package/dist/cli/commands/buyer/set-authorized-wallet.d.ts.map +1 -1
  17. package/dist/cli/commands/buyer/set-authorized-wallet.js +26 -4
  18. package/dist/cli/commands/buyer/set-authorized-wallet.js.map +1 -1
  19. package/dist/cli/commands/buyer/set-authorized-wallet.test.js +37 -2
  20. package/dist/cli/commands/buyer/set-authorized-wallet.test.js.map +1 -1
  21. package/dist/cli/commands/buyer/start.d.ts +15 -0
  22. package/dist/cli/commands/buyer/start.d.ts.map +1 -1
  23. package/dist/cli/commands/buyer/start.js +158 -49
  24. package/dist/cli/commands/buyer/start.js.map +1 -1
  25. package/dist/cli/commands/buyer/start.test.js +16 -1
  26. package/dist/cli/commands/buyer/start.test.js.map +1 -1
  27. package/dist/cli/commands/chat.d.ts +3 -0
  28. package/dist/cli/commands/chat.d.ts.map +1 -0
  29. package/dist/cli/commands/chat.js +189 -0
  30. package/dist/cli/commands/chat.js.map +1 -0
  31. package/dist/cli/commands/gateway/activity.d.ts +15 -0
  32. package/dist/cli/commands/gateway/activity.d.ts.map +1 -0
  33. package/dist/cli/commands/gateway/activity.js +233 -0
  34. package/dist/cli/commands/gateway/activity.js.map +1 -0
  35. package/dist/cli/commands/gateway/admin-token.d.ts +3 -0
  36. package/dist/cli/commands/gateway/admin-token.d.ts.map +1 -0
  37. package/dist/cli/commands/gateway/admin-token.js +90 -0
  38. package/dist/cli/commands/gateway/admin-token.js.map +1 -0
  39. package/dist/cli/commands/gateway/console-link.d.ts +20 -0
  40. package/dist/cli/commands/gateway/console-link.d.ts.map +1 -0
  41. package/dist/cli/commands/gateway/console-link.js +92 -0
  42. package/dist/cli/commands/gateway/console-link.js.map +1 -0
  43. package/dist/cli/commands/gateway/gateway-commands.test.d.ts +2 -0
  44. package/dist/cli/commands/gateway/gateway-commands.test.d.ts.map +1 -0
  45. package/dist/cli/commands/gateway/gateway-commands.test.js +230 -0
  46. package/dist/cli/commands/gateway/gateway-commands.test.js.map +1 -0
  47. package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts +2 -0
  48. package/dist/cli/commands/gateway/gateway-console-commands.test.d.ts.map +1 -0
  49. package/dist/cli/commands/gateway/gateway-console-commands.test.js +373 -0
  50. package/dist/cli/commands/gateway/gateway-console-commands.test.js.map +1 -0
  51. package/dist/cli/commands/gateway/index.d.ts +8 -0
  52. package/dist/cli/commands/gateway/index.d.ts.map +1 -1
  53. package/dist/cli/commands/gateway/index.js +93 -14
  54. package/dist/cli/commands/gateway/index.js.map +1 -1
  55. package/dist/cli/commands/gateway/key.d.ts +4 -0
  56. package/dist/cli/commands/gateway/key.d.ts.map +1 -1
  57. package/dist/cli/commands/gateway/key.js +297 -182
  58. package/dist/cli/commands/gateway/key.js.map +1 -1
  59. package/dist/cli/commands/gateway/member.d.ts +3 -0
  60. package/dist/cli/commands/gateway/member.d.ts.map +1 -0
  61. package/dist/cli/commands/gateway/member.js +302 -0
  62. package/dist/cli/commands/gateway/member.js.map +1 -0
  63. package/dist/cli/commands/gateway/migrate.d.ts +18 -0
  64. package/dist/cli/commands/gateway/migrate.d.ts.map +1 -0
  65. package/dist/cli/commands/gateway/migrate.js +158 -0
  66. package/dist/cli/commands/gateway/migrate.js.map +1 -0
  67. package/dist/cli/commands/gateway/operator.d.ts +11 -0
  68. package/dist/cli/commands/gateway/operator.d.ts.map +1 -0
  69. package/dist/cli/commands/gateway/operator.js +199 -0
  70. package/dist/cli/commands/gateway/operator.js.map +1 -0
  71. package/dist/cli/commands/gateway/operator.test.d.ts +2 -0
  72. package/dist/cli/commands/gateway/operator.test.d.ts.map +1 -0
  73. package/dist/cli/commands/gateway/operator.test.js +151 -0
  74. package/dist/cli/commands/gateway/operator.test.js.map +1 -0
  75. package/dist/cli/commands/gateway/peer-list.d.ts +3 -0
  76. package/dist/cli/commands/gateway/peer-list.d.ts.map +1 -0
  77. package/dist/cli/commands/gateway/peer-list.js +107 -0
  78. package/dist/cli/commands/gateway/peer-list.js.map +1 -0
  79. package/dist/cli/commands/gateway/policy-options.d.ts +23 -0
  80. package/dist/cli/commands/gateway/policy-options.d.ts.map +1 -0
  81. package/dist/cli/commands/gateway/policy-options.js +156 -0
  82. package/dist/cli/commands/gateway/policy-options.js.map +1 -0
  83. package/dist/cli/commands/gateway/preset.d.ts +3 -0
  84. package/dist/cli/commands/gateway/preset.d.ts.map +1 -0
  85. package/dist/cli/commands/gateway/preset.js +181 -0
  86. package/dist/cli/commands/gateway/preset.js.map +1 -0
  87. package/dist/cli/commands/gateway/routing.d.ts +3 -0
  88. package/dist/cli/commands/gateway/routing.d.ts.map +1 -0
  89. package/dist/cli/commands/gateway/routing.js +110 -0
  90. package/dist/cli/commands/gateway/routing.js.map +1 -0
  91. package/dist/cli/commands/gateway/settings.d.ts +4 -0
  92. package/dist/cli/commands/gateway/settings.d.ts.map +1 -0
  93. package/dist/cli/commands/gateway/settings.js +314 -0
  94. package/dist/cli/commands/gateway/settings.js.map +1 -0
  95. package/dist/cli/commands/gateway/shared.d.ts +55 -6
  96. package/dist/cli/commands/gateway/shared.d.ts.map +1 -1
  97. package/dist/cli/commands/gateway/shared.js +206 -26
  98. package/dist/cli/commands/gateway/shared.js.map +1 -1
  99. package/dist/cli/commands/gateway/workspace.d.ts +3 -0
  100. package/dist/cli/commands/gateway/workspace.d.ts.map +1 -0
  101. package/dist/cli/commands/gateway/workspace.js +250 -0
  102. package/dist/cli/commands/gateway/workspace.js.map +1 -0
  103. package/dist/cli/commands/network/bootstrap.js +1 -1
  104. package/dist/cli/commands/seller/setup.js +1 -1
  105. package/dist/cli/commands/seller/start.d.ts.map +1 -1
  106. package/dist/cli/commands/seller/start.js +1 -2
  107. package/dist/cli/commands/seller/start.js.map +1 -1
  108. package/dist/cli/commands/system-proxy/index.js +1 -1
  109. package/dist/cli/commands/tunnel/start.d.ts.map +1 -1
  110. package/dist/cli/commands/tunnel/start.js +23 -5
  111. package/dist/cli/commands/tunnel/start.js.map +1 -1
  112. package/dist/cli/commands/wrapped-tools.js +8 -8
  113. package/dist/cli/commands/wrapped-tools.test.js +5 -5
  114. package/dist/cli/index.js +12 -44
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/cli/program.d.ts +4 -0
  117. package/dist/cli/program.d.ts.map +1 -0
  118. package/dist/cli/program.js +49 -0
  119. package/dist/cli/program.js.map +1 -0
  120. package/dist/cli/program.test.d.ts +2 -0
  121. package/dist/cli/program.test.d.ts.map +1 -0
  122. package/dist/cli/program.test.js +38 -0
  123. package/dist/cli/program.test.js.map +1 -0
  124. package/dist/cli/prompt-hidden.d.ts +3 -0
  125. package/dist/cli/prompt-hidden.d.ts.map +1 -0
  126. package/dist/cli/prompt-hidden.js +38 -0
  127. package/dist/cli/prompt-hidden.js.map +1 -0
  128. package/dist/cli/wallet-passphrase.d.ts +48 -0
  129. package/dist/cli/wallet-passphrase.d.ts.map +1 -0
  130. package/dist/cli/wallet-passphrase.js +119 -0
  131. package/dist/cli/wallet-passphrase.js.map +1 -0
  132. package/dist/cli/wallet-passphrase.test.d.ts +2 -0
  133. package/dist/cli/wallet-passphrase.test.d.ts.map +1 -0
  134. package/dist/cli/wallet-passphrase.test.js +79 -0
  135. package/dist/cli/wallet-passphrase.test.js.map +1 -0
  136. package/dist/config/defaults.d.ts.map +1 -1
  137. package/dist/config/defaults.js +0 -1
  138. package/dist/config/defaults.js.map +1 -1
  139. package/dist/config/effective.d.ts +12 -0
  140. package/dist/config/effective.d.ts.map +1 -1
  141. package/dist/config/effective.js +39 -6
  142. package/dist/config/effective.js.map +1 -1
  143. package/dist/config/effective.test.js +9 -1
  144. package/dist/config/effective.test.js.map +1 -1
  145. package/dist/config/loader.d.ts +6 -0
  146. package/dist/config/loader.d.ts.map +1 -1
  147. package/dist/config/loader.js +12 -0
  148. package/dist/config/loader.js.map +1 -1
  149. package/dist/config/loader.test.js +7 -1
  150. package/dist/config/loader.test.js.map +1 -1
  151. package/dist/config/types.d.ts +14 -2
  152. package/dist/config/types.d.ts.map +1 -1
  153. package/dist/config/validation.d.ts.map +1 -1
  154. package/dist/config/validation.js +19 -0
  155. package/dist/config/validation.js.map +1 -1
  156. package/dist/gateway/accounting.d.ts +33 -3
  157. package/dist/gateway/accounting.d.ts.map +1 -1
  158. package/dist/gateway/accounting.js +86 -7
  159. package/dist/gateway/accounting.js.map +1 -1
  160. package/dist/gateway/admission-benchmark.test.d.ts +2 -0
  161. package/dist/gateway/admission-benchmark.test.d.ts.map +1 -0
  162. package/dist/gateway/admission-benchmark.test.js +75 -0
  163. package/dist/gateway/admission-benchmark.test.js.map +1 -0
  164. package/dist/gateway/auth/auth.test.d.ts +4 -0
  165. package/dist/gateway/auth/auth.test.d.ts.map +1 -0
  166. package/dist/gateway/auth/auth.test.js +337 -0
  167. package/dist/gateway/auth/auth.test.js.map +1 -0
  168. package/dist/gateway/auth/credentials.test.d.ts +2 -0
  169. package/dist/gateway/auth/credentials.test.d.ts.map +1 -0
  170. package/dist/gateway/auth/credentials.test.js +132 -0
  171. package/dist/gateway/auth/credentials.test.js.map +1 -0
  172. package/dist/gateway/auth/db.d.ts +156 -0
  173. package/dist/gateway/auth/db.d.ts.map +1 -0
  174. package/dist/gateway/auth/db.js +390 -0
  175. package/dist/gateway/auth/db.js.map +1 -0
  176. package/dist/gateway/auth/hardening.test.d.ts +2 -0
  177. package/dist/gateway/auth/hardening.test.d.ts.map +1 -0
  178. package/dist/gateway/auth/hardening.test.js +155 -0
  179. package/dist/gateway/auth/hardening.test.js.map +1 -0
  180. package/dist/gateway/auth/http.d.ts +53 -0
  181. package/dist/gateway/auth/http.d.ts.map +1 -0
  182. package/dist/gateway/auth/http.js +165 -0
  183. package/dist/gateway/auth/http.js.map +1 -0
  184. package/dist/gateway/auth/index.d.ts +26 -0
  185. package/dist/gateway/auth/index.d.ts.map +1 -0
  186. package/dist/gateway/auth/index.js +1014 -0
  187. package/dist/gateway/auth/index.js.map +1 -0
  188. package/dist/gateway/auth/oidc.d.ts +57 -0
  189. package/dist/gateway/auth/oidc.d.ts.map +1 -0
  190. package/dist/gateway/auth/oidc.js +159 -0
  191. package/dist/gateway/auth/oidc.js.map +1 -0
  192. package/dist/gateway/auth/oidc.test.d.ts +2 -0
  193. package/dist/gateway/auth/oidc.test.d.ts.map +1 -0
  194. package/dist/gateway/auth/oidc.test.js +223 -0
  195. package/dist/gateway/auth/oidc.test.js.map +1 -0
  196. package/dist/gateway/auth/reauth.test.d.ts +2 -0
  197. package/dist/gateway/auth/reauth.test.d.ts.map +1 -0
  198. package/dist/gateway/auth/reauth.test.js +108 -0
  199. package/dist/gateway/auth/reauth.test.js.map +1 -0
  200. package/dist/gateway/auth/store-integration.test.d.ts +2 -0
  201. package/dist/gateway/auth/store-integration.test.d.ts.map +1 -0
  202. package/dist/gateway/auth/store-integration.test.js +100 -0
  203. package/dist/gateway/auth/store-integration.test.js.map +1 -0
  204. package/dist/gateway/auth/test-helpers.d.ts +167 -0
  205. package/dist/gateway/auth/test-helpers.d.ts.map +1 -0
  206. package/dist/gateway/auth/test-helpers.js +368 -0
  207. package/dist/gateway/auth/test-helpers.js.map +1 -0
  208. package/dist/gateway/auth/types.d.ts +145 -0
  209. package/dist/gateway/auth/types.d.ts.map +1 -0
  210. package/dist/gateway/auth/types.js +2 -0
  211. package/dist/gateway/auth/types.js.map +1 -0
  212. package/dist/gateway/auth/wallet.d.ts +15 -0
  213. package/dist/gateway/auth/wallet.d.ts.map +1 -0
  214. package/dist/gateway/auth/wallet.js +43 -0
  215. package/dist/gateway/auth/wallet.js.map +1 -0
  216. package/dist/gateway/bundle.d.ts +127 -0
  217. package/dist/gateway/bundle.d.ts.map +1 -0
  218. package/dist/gateway/bundle.js +604 -0
  219. package/dist/gateway/bundle.js.map +1 -0
  220. package/dist/gateway/bundle.test.d.ts +2 -0
  221. package/dist/gateway/bundle.test.d.ts.map +1 -0
  222. package/dist/gateway/bundle.test.js +277 -0
  223. package/dist/gateway/bundle.test.js.map +1 -0
  224. package/dist/gateway/buyer-control.d.ts +33 -0
  225. package/dist/gateway/buyer-control.d.ts.map +1 -0
  226. package/dist/gateway/buyer-control.js +93 -0
  227. package/dist/gateway/buyer-control.js.map +1 -0
  228. package/dist/gateway/buyer-policy-probe.d.ts +41 -0
  229. package/dist/gateway/buyer-policy-probe.d.ts.map +1 -0
  230. package/dist/gateway/buyer-policy-probe.js +99 -0
  231. package/dist/gateway/buyer-policy-probe.js.map +1 -0
  232. package/dist/gateway/buyer-policy-probe.test.d.ts +2 -0
  233. package/dist/gateway/buyer-policy-probe.test.d.ts.map +1 -0
  234. package/dist/gateway/buyer-policy-probe.test.js +128 -0
  235. package/dist/gateway/buyer-policy-probe.test.js.map +1 -0
  236. package/dist/gateway/buyer-process.d.ts +30 -0
  237. package/dist/gateway/buyer-process.d.ts.map +1 -0
  238. package/dist/gateway/buyer-process.js +101 -0
  239. package/dist/gateway/buyer-process.js.map +1 -0
  240. package/dist/gateway/buyer-process.test.d.ts +2 -0
  241. package/dist/gateway/buyer-process.test.d.ts.map +1 -0
  242. package/dist/gateway/buyer-process.test.js +112 -0
  243. package/dist/gateway/buyer-process.test.js.map +1 -0
  244. package/dist/gateway/chat/routes.d.ts +45 -0
  245. package/dist/gateway/chat/routes.d.ts.map +1 -0
  246. package/dist/gateway/chat/routes.js +439 -0
  247. package/dist/gateway/chat/routes.js.map +1 -0
  248. package/dist/gateway/chat/routes.test.d.ts +2 -0
  249. package/dist/gateway/chat/routes.test.d.ts.map +1 -0
  250. package/dist/gateway/chat/routes.test.js +304 -0
  251. package/dist/gateway/chat/routes.test.js.map +1 -0
  252. package/dist/gateway/chat/tools.d.ts +35 -0
  253. package/dist/gateway/chat/tools.d.ts.map +1 -0
  254. package/dist/gateway/chat/tools.js +347 -0
  255. package/dist/gateway/chat/tools.js.map +1 -0
  256. package/dist/gateway/chat/tools.test.d.ts +2 -0
  257. package/dist/gateway/chat/tools.test.d.ts.map +1 -0
  258. package/dist/gateway/chat/tools.test.js +136 -0
  259. package/dist/gateway/chat/tools.test.js.map +1 -0
  260. package/dist/gateway/console-api/access.d.ts +52 -0
  261. package/dist/gateway/console-api/access.d.ts.map +1 -0
  262. package/dist/gateway/console-api/access.js +171 -0
  263. package/dist/gateway/console-api/access.js.map +1 -0
  264. package/dist/gateway/console-api/deps.d.ts +52 -0
  265. package/dist/gateway/console-api/deps.d.ts.map +1 -0
  266. package/dist/gateway/console-api/deps.js +2 -0
  267. package/dist/gateway/console-api/deps.js.map +1 -0
  268. package/dist/gateway/console-api/handlers/admin-tokens.d.ts +8 -0
  269. package/dist/gateway/console-api/handlers/admin-tokens.d.ts.map +1 -0
  270. package/dist/gateway/console-api/handlers/admin-tokens.js +48 -0
  271. package/dist/gateway/console-api/handlers/admin-tokens.js.map +1 -0
  272. package/dist/gateway/console-api/handlers/audit.d.ts +8 -0
  273. package/dist/gateway/console-api/handlers/audit.d.ts.map +1 -0
  274. package/dist/gateway/console-api/handlers/audit.js +19 -0
  275. package/dist/gateway/console-api/handlers/audit.js.map +1 -0
  276. package/dist/gateway/console-api/handlers/audit.test.d.ts +2 -0
  277. package/dist/gateway/console-api/handlers/audit.test.d.ts.map +1 -0
  278. package/dist/gateway/console-api/handlers/audit.test.js +241 -0
  279. package/dist/gateway/console-api/handlers/audit.test.js.map +1 -0
  280. package/dist/gateway/console-api/handlers/data-settings.test.d.ts +2 -0
  281. package/dist/gateway/console-api/handlers/data-settings.test.d.ts.map +1 -0
  282. package/dist/gateway/console-api/handlers/data-settings.test.js +264 -0
  283. package/dist/gateway/console-api/handlers/data-settings.test.js.map +1 -0
  284. package/dist/gateway/console-api/handlers/index.d.ts +4 -0
  285. package/dist/gateway/console-api/handlers/index.d.ts.map +1 -0
  286. package/dist/gateway/console-api/handlers/index.js +24 -0
  287. package/dist/gateway/console-api/handlers/index.js.map +1 -0
  288. package/dist/gateway/console-api/handlers/keys.d.ts +13 -0
  289. package/dist/gateway/console-api/handlers/keys.d.ts.map +1 -0
  290. package/dist/gateway/console-api/handlers/keys.js +128 -0
  291. package/dist/gateway/console-api/handlers/keys.js.map +1 -0
  292. package/dist/gateway/console-api/handlers/keys.test.d.ts +2 -0
  293. package/dist/gateway/console-api/handlers/keys.test.d.ts.map +1 -0
  294. package/dist/gateway/console-api/handlers/keys.test.js +166 -0
  295. package/dist/gateway/console-api/handlers/keys.test.js.map +1 -0
  296. package/dist/gateway/console-api/handlers/network-buyer.d.ts +22 -0
  297. package/dist/gateway/console-api/handlers/network-buyer.d.ts.map +1 -0
  298. package/dist/gateway/console-api/handlers/network-buyer.js +39 -0
  299. package/dist/gateway/console-api/handlers/network-buyer.js.map +1 -0
  300. package/dist/gateway/console-api/handlers/network-mapping.d.ts +33 -0
  301. package/dist/gateway/console-api/handlers/network-mapping.d.ts.map +1 -0
  302. package/dist/gateway/console-api/handlers/network-mapping.js +219 -0
  303. package/dist/gateway/console-api/handlers/network-mapping.js.map +1 -0
  304. package/dist/gateway/console-api/handlers/network-test-helpers.d.ts +35 -0
  305. package/dist/gateway/console-api/handlers/network-test-helpers.d.ts.map +1 -0
  306. package/dist/gateway/console-api/handlers/network-test-helpers.js +121 -0
  307. package/dist/gateway/console-api/handlers/network-test-helpers.js.map +1 -0
  308. package/dist/gateway/console-api/handlers/network.d.ts +15 -0
  309. package/dist/gateway/console-api/handlers/network.d.ts.map +1 -0
  310. package/dist/gateway/console-api/handlers/network.js +57 -0
  311. package/dist/gateway/console-api/handlers/network.js.map +1 -0
  312. package/dist/gateway/console-api/handlers/network.test.d.ts +2 -0
  313. package/dist/gateway/console-api/handlers/network.test.d.ts.map +1 -0
  314. package/dist/gateway/console-api/handlers/network.test.js +383 -0
  315. package/dist/gateway/console-api/handlers/network.test.js.map +1 -0
  316. package/dist/gateway/console-api/handlers/org.d.ts +10 -0
  317. package/dist/gateway/console-api/handlers/org.d.ts.map +1 -0
  318. package/dist/gateway/console-api/handlers/org.js +150 -0
  319. package/dist/gateway/console-api/handlers/org.js.map +1 -0
  320. package/dist/gateway/console-api/handlers/peer-lists.d.ts +5 -0
  321. package/dist/gateway/console-api/handlers/peer-lists.d.ts.map +1 -0
  322. package/dist/gateway/console-api/handlers/peer-lists.js +43 -0
  323. package/dist/gateway/console-api/handlers/peer-lists.js.map +1 -0
  324. package/dist/gateway/console-api/handlers/presets.d.ts +9 -0
  325. package/dist/gateway/console-api/handlers/presets.d.ts.map +1 -0
  326. package/dist/gateway/console-api/handlers/presets.js +79 -0
  327. package/dist/gateway/console-api/handlers/presets.js.map +1 -0
  328. package/dist/gateway/console-api/handlers/routing.d.ts +5 -0
  329. package/dist/gateway/console-api/handlers/routing.d.ts.map +1 -0
  330. package/dist/gateway/console-api/handlers/routing.js +20 -0
  331. package/dist/gateway/console-api/handlers/routing.js.map +1 -0
  332. package/dist/gateway/console-api/handlers/settings.d.ts +10 -0
  333. package/dist/gateway/console-api/handlers/settings.d.ts.map +1 -0
  334. package/dist/gateway/console-api/handlers/settings.js +38 -0
  335. package/dist/gateway/console-api/handlers/settings.js.map +1 -0
  336. package/dist/gateway/console-api/handlers/status.d.ts +9 -0
  337. package/dist/gateway/console-api/handlers/status.d.ts.map +1 -0
  338. package/dist/gateway/console-api/handlers/status.js +47 -0
  339. package/dist/gateway/console-api/handlers/status.js.map +1 -0
  340. package/dist/gateway/console-api/handlers/status.test.d.ts +2 -0
  341. package/dist/gateway/console-api/handlers/status.test.d.ts.map +1 -0
  342. package/dist/gateway/console-api/handlers/status.test.js +82 -0
  343. package/dist/gateway/console-api/handlers/status.test.js.map +1 -0
  344. package/dist/gateway/console-api/handlers/usage.d.ts +10 -0
  345. package/dist/gateway/console-api/handlers/usage.d.ts.map +1 -0
  346. package/dist/gateway/console-api/handlers/usage.js +68 -0
  347. package/dist/gateway/console-api/handlers/usage.js.map +1 -0
  348. package/dist/gateway/console-api/handlers/wallet-card-link.d.ts +29 -0
  349. package/dist/gateway/console-api/handlers/wallet-card-link.d.ts.map +1 -0
  350. package/dist/gateway/console-api/handlers/wallet-card-link.js +46 -0
  351. package/dist/gateway/console-api/handlers/wallet-card-link.js.map +1 -0
  352. package/dist/gateway/console-api/handlers/wallet-chain.d.ts +26 -0
  353. package/dist/gateway/console-api/handlers/wallet-chain.d.ts.map +1 -0
  354. package/dist/gateway/console-api/handlers/wallet-chain.js +80 -0
  355. package/dist/gateway/console-api/handlers/wallet-chain.js.map +1 -0
  356. package/dist/gateway/console-api/handlers/wallet-mapping.d.ts +45 -0
  357. package/dist/gateway/console-api/handlers/wallet-mapping.d.ts.map +1 -0
  358. package/dist/gateway/console-api/handlers/wallet-mapping.js +202 -0
  359. package/dist/gateway/console-api/handlers/wallet-mapping.js.map +1 -0
  360. package/dist/gateway/console-api/handlers/wallet-operator.d.ts +41 -0
  361. package/dist/gateway/console-api/handlers/wallet-operator.d.ts.map +1 -0
  362. package/dist/gateway/console-api/handlers/wallet-operator.js +198 -0
  363. package/dist/gateway/console-api/handlers/wallet-operator.js.map +1 -0
  364. package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts +2 -0
  365. package/dist/gateway/console-api/handlers/wallet-operator.test.d.ts.map +1 -0
  366. package/dist/gateway/console-api/handlers/wallet-operator.test.js +195 -0
  367. package/dist/gateway/console-api/handlers/wallet-operator.test.js.map +1 -0
  368. package/dist/gateway/console-api/handlers/wallet.d.ts +61 -0
  369. package/dist/gateway/console-api/handlers/wallet.d.ts.map +1 -0
  370. package/dist/gateway/console-api/handlers/wallet.js +221 -0
  371. package/dist/gateway/console-api/handlers/wallet.js.map +1 -0
  372. package/dist/gateway/console-api/handlers/wallet.test.d.ts +2 -0
  373. package/dist/gateway/console-api/handlers/wallet.test.d.ts.map +1 -0
  374. package/dist/gateway/console-api/handlers/wallet.test.js +581 -0
  375. package/dist/gateway/console-api/handlers/wallet.test.js.map +1 -0
  376. package/dist/gateway/console-api/handlers/workspaces.d.ts +12 -0
  377. package/dist/gateway/console-api/handlers/workspaces.d.ts.map +1 -0
  378. package/dist/gateway/console-api/handlers/workspaces.js +96 -0
  379. package/dist/gateway/console-api/handlers/workspaces.js.map +1 -0
  380. package/dist/gateway/console-api/operator-types.d.ts +68 -0
  381. package/dist/gateway/console-api/operator-types.d.ts.map +1 -0
  382. package/dist/gateway/console-api/operator-types.js +21 -0
  383. package/dist/gateway/console-api/operator-types.js.map +1 -0
  384. package/dist/gateway/console-api/router.d.ts +97 -0
  385. package/dist/gateway/console-api/router.d.ts.map +1 -0
  386. package/dist/gateway/console-api/router.js +69 -0
  387. package/dist/gateway/console-api/router.js.map +1 -0
  388. package/dist/gateway/console-api/routes.test.d.ts +2 -0
  389. package/dist/gateway/console-api/routes.test.d.ts.map +1 -0
  390. package/dist/gateway/console-api/routes.test.js +331 -0
  391. package/dist/gateway/console-api/routes.test.js.map +1 -0
  392. package/dist/gateway/console-api/serialize.d.ts +33 -0
  393. package/dist/gateway/console-api/serialize.d.ts.map +1 -0
  394. package/dist/gateway/console-api/serialize.js +179 -0
  395. package/dist/gateway/console-api/serialize.js.map +1 -0
  396. package/dist/gateway/console-api/server.d.ts +38 -0
  397. package/dist/gateway/console-api/server.d.ts.map +1 -0
  398. package/dist/gateway/console-api/server.js +308 -0
  399. package/dist/gateway/console-api/server.js.map +1 -0
  400. package/dist/gateway/console-api/server.test.d.ts +2 -0
  401. package/dist/gateway/console-api/server.test.d.ts.map +1 -0
  402. package/dist/gateway/console-api/server.test.js +149 -0
  403. package/dist/gateway/console-api/server.test.js.map +1 -0
  404. package/dist/gateway/console-api/test-support.d.ts +59 -0
  405. package/dist/gateway/console-api/test-support.d.ts.map +1 -0
  406. package/dist/gateway/console-api/test-support.js +120 -0
  407. package/dist/gateway/console-api/test-support.js.map +1 -0
  408. package/dist/gateway/console-api/types.d.ts +779 -0
  409. package/dist/gateway/console-api/types.d.ts.map +1 -0
  410. package/dist/gateway/console-api/types.js +6 -0
  411. package/dist/gateway/console-api/types.js.map +1 -0
  412. package/dist/gateway/console-location.d.ts +21 -0
  413. package/dist/gateway/console-location.d.ts.map +1 -0
  414. package/dist/gateway/console-location.js +41 -0
  415. package/dist/gateway/console-location.js.map +1 -0
  416. package/dist/gateway/console-recovery.d.ts +34 -0
  417. package/dist/gateway/console-recovery.d.ts.map +1 -0
  418. package/dist/gateway/console-recovery.js +94 -0
  419. package/dist/gateway/console-recovery.js.map +1 -0
  420. package/dist/gateway/console-recovery.test.d.ts +2 -0
  421. package/dist/gateway/console-recovery.test.d.ts.map +1 -0
  422. package/dist/gateway/console-recovery.test.js +106 -0
  423. package/dist/gateway/console-recovery.test.js.map +1 -0
  424. package/dist/gateway/console.d.ts +18 -0
  425. package/dist/gateway/console.d.ts.map +1 -0
  426. package/dist/gateway/console.js +101 -0
  427. package/dist/gateway/console.js.map +1 -0
  428. package/dist/gateway/console.test.d.ts +2 -0
  429. package/dist/gateway/console.test.d.ts.map +1 -0
  430. package/dist/gateway/console.test.js +165 -0
  431. package/dist/gateway/console.test.js.map +1 -0
  432. package/dist/gateway/errors.d.ts +3 -0
  433. package/dist/gateway/errors.d.ts.map +1 -0
  434. package/dist/gateway/errors.js +5 -0
  435. package/dist/gateway/errors.js.map +1 -0
  436. package/dist/gateway/exposure.d.ts +33 -0
  437. package/dist/gateway/exposure.d.ts.map +1 -0
  438. package/dist/gateway/exposure.js +146 -0
  439. package/dist/gateway/exposure.js.map +1 -0
  440. package/dist/gateway/exposure.test.d.ts +2 -0
  441. package/dist/gateway/exposure.test.d.ts.map +1 -0
  442. package/dist/gateway/exposure.test.js +93 -0
  443. package/dist/gateway/exposure.test.js.map +1 -0
  444. package/dist/gateway/gateway-policy.test.d.ts +2 -0
  445. package/dist/gateway/gateway-policy.test.d.ts.map +1 -0
  446. package/dist/gateway/gateway-policy.test.js +404 -0
  447. package/dist/gateway/gateway-policy.test.js.map +1 -0
  448. package/dist/gateway/gateway.test.js +47 -25
  449. package/dist/gateway/gateway.test.js.map +1 -1
  450. package/dist/gateway/keys.d.ts +2 -0
  451. package/dist/gateway/keys.d.ts.map +1 -1
  452. package/dist/gateway/keys.js +2 -0
  453. package/dist/gateway/keys.js.map +1 -1
  454. package/dist/gateway/limits.d.ts +32 -8
  455. package/dist/gateway/limits.d.ts.map +1 -1
  456. package/dist/gateway/limits.js +27 -11
  457. package/dist/gateway/limits.js.map +1 -1
  458. package/dist/gateway/observability.d.ts +51 -0
  459. package/dist/gateway/observability.d.ts.map +1 -0
  460. package/dist/gateway/observability.js +136 -0
  461. package/dist/gateway/observability.js.map +1 -0
  462. package/dist/gateway/policy-resolver.d.ts +73 -0
  463. package/dist/gateway/policy-resolver.d.ts.map +1 -0
  464. package/dist/gateway/policy-resolver.js +142 -0
  465. package/dist/gateway/policy-resolver.js.map +1 -0
  466. package/dist/gateway/policy-resolver.test.d.ts +2 -0
  467. package/dist/gateway/policy-resolver.test.d.ts.map +1 -0
  468. package/dist/gateway/policy-resolver.test.js +273 -0
  469. package/dist/gateway/policy-resolver.test.js.map +1 -0
  470. package/dist/gateway/request-errors.test.d.ts +2 -0
  471. package/dist/gateway/request-errors.test.d.ts.map +1 -0
  472. package/dist/gateway/request-errors.test.js +108 -0
  473. package/dist/gateway/request-errors.test.js.map +1 -0
  474. package/dist/gateway/request-shaping.d.ts +25 -0
  475. package/dist/gateway/request-shaping.d.ts.map +1 -0
  476. package/dist/gateway/request-shaping.js +66 -0
  477. package/dist/gateway/request-shaping.js.map +1 -0
  478. package/dist/gateway/response-usage.d.ts +35 -0
  479. package/dist/gateway/response-usage.d.ts.map +1 -0
  480. package/dist/gateway/response-usage.js +167 -0
  481. package/dist/gateway/response-usage.js.map +1 -0
  482. package/dist/gateway/response-usage.test.d.ts +2 -0
  483. package/dist/gateway/response-usage.test.d.ts.map +1 -0
  484. package/dist/gateway/response-usage.test.js +78 -0
  485. package/dist/gateway/response-usage.test.js.map +1 -0
  486. package/dist/gateway/runtime.d.ts +25 -0
  487. package/dist/gateway/runtime.d.ts.map +1 -1
  488. package/dist/gateway/runtime.js +39 -19
  489. package/dist/gateway/runtime.js.map +1 -1
  490. package/dist/gateway/server.d.ts +68 -2
  491. package/dist/gateway/server.d.ts.map +1 -1
  492. package/dist/gateway/server.js +532 -116
  493. package/dist/gateway/server.js.map +1 -1
  494. package/dist/gateway/services/audit.d.ts +16 -0
  495. package/dist/gateway/services/audit.d.ts.map +1 -0
  496. package/dist/gateway/services/audit.js +18 -0
  497. package/dist/gateway/services/audit.js.map +1 -0
  498. package/dist/gateway/services/context.d.ts +66 -0
  499. package/dist/gateway/services/context.d.ts.map +1 -0
  500. package/dist/gateway/services/context.js +52 -0
  501. package/dist/gateway/services/context.js.map +1 -0
  502. package/dist/gateway/services/keys.d.ts +78 -0
  503. package/dist/gateway/services/keys.d.ts.map +1 -0
  504. package/dist/gateway/services/keys.js +232 -0
  505. package/dist/gateway/services/keys.js.map +1 -0
  506. package/dist/gateway/services/members.d.ts +72 -0
  507. package/dist/gateway/services/members.d.ts.map +1 -0
  508. package/dist/gateway/services/members.js +161 -0
  509. package/dist/gateway/services/members.js.map +1 -0
  510. package/dist/gateway/services/network.d.ts +36 -0
  511. package/dist/gateway/services/network.d.ts.map +1 -0
  512. package/dist/gateway/services/network.js +147 -0
  513. package/dist/gateway/services/network.js.map +1 -0
  514. package/dist/gateway/services/operator.d.ts +98 -0
  515. package/dist/gateway/services/operator.d.ts.map +1 -0
  516. package/dist/gateway/services/operator.js +170 -0
  517. package/dist/gateway/services/operator.js.map +1 -0
  518. package/dist/gateway/services/operator.test.d.ts +2 -0
  519. package/dist/gateway/services/operator.test.d.ts.map +1 -0
  520. package/dist/gateway/services/operator.test.js +184 -0
  521. package/dist/gateway/services/operator.test.js.map +1 -0
  522. package/dist/gateway/services/peer-lists.d.ts +20 -0
  523. package/dist/gateway/services/peer-lists.d.ts.map +1 -0
  524. package/dist/gateway/services/peer-lists.js +134 -0
  525. package/dist/gateway/services/peer-lists.js.map +1 -0
  526. package/dist/gateway/services/presets.d.ts +34 -0
  527. package/dist/gateway/services/presets.d.ts.map +1 -0
  528. package/dist/gateway/services/presets.js +134 -0
  529. package/dist/gateway/services/presets.js.map +1 -0
  530. package/dist/gateway/services/routing.d.ts +13 -0
  531. package/dist/gateway/services/routing.d.ts.map +1 -0
  532. package/dist/gateway/services/routing.js +18 -0
  533. package/dist/gateway/services/routing.js.map +1 -0
  534. package/dist/gateway/services/services.test.d.ts +2 -0
  535. package/dist/gateway/services/services.test.d.ts.map +1 -0
  536. package/dist/gateway/services/services.test.js +476 -0
  537. package/dist/gateway/services/services.test.js.map +1 -0
  538. package/dist/gateway/services/settings.d.ts +68 -0
  539. package/dist/gateway/services/settings.d.ts.map +1 -0
  540. package/dist/gateway/services/settings.js +580 -0
  541. package/dist/gateway/services/settings.js.map +1 -0
  542. package/dist/gateway/services/tokens.d.ts +29 -0
  543. package/dist/gateway/services/tokens.d.ts.map +1 -0
  544. package/dist/gateway/services/tokens.js +48 -0
  545. package/dist/gateway/services/tokens.js.map +1 -0
  546. package/dist/gateway/services/usage.d.ts +55 -0
  547. package/dist/gateway/services/usage.d.ts.map +1 -0
  548. package/dist/gateway/services/usage.js +225 -0
  549. package/dist/gateway/services/usage.js.map +1 -0
  550. package/dist/gateway/services/wallet-address-env.test.d.ts +2 -0
  551. package/dist/gateway/services/wallet-address-env.test.d.ts.map +1 -0
  552. package/dist/gateway/services/wallet-address-env.test.js +119 -0
  553. package/dist/gateway/services/wallet-address-env.test.js.map +1 -0
  554. package/dist/gateway/services/wallet-address.d.ts +40 -0
  555. package/dist/gateway/services/wallet-address.d.ts.map +1 -0
  556. package/dist/gateway/services/wallet-address.js +116 -0
  557. package/dist/gateway/services/wallet-address.js.map +1 -0
  558. package/dist/gateway/services/wallet-address.test.d.ts +2 -0
  559. package/dist/gateway/services/wallet-address.test.d.ts.map +1 -0
  560. package/dist/gateway/services/wallet-address.test.js +84 -0
  561. package/dist/gateway/services/wallet-address.test.js.map +1 -0
  562. package/dist/gateway/services/workspaces.d.ts +75 -0
  563. package/dist/gateway/services/workspaces.d.ts.map +1 -0
  564. package/dist/gateway/services/workspaces.js +228 -0
  565. package/dist/gateway/services/workspaces.js.map +1 -0
  566. package/dist/gateway/spend-durability.test.d.ts +2 -0
  567. package/dist/gateway/spend-durability.test.d.ts.map +1 -0
  568. package/dist/gateway/spend-durability.test.js +330 -0
  569. package/dist/gateway/spend-durability.test.js.map +1 -0
  570. package/dist/gateway/spend-feed.d.ts +11 -1
  571. package/dist/gateway/spend-feed.d.ts.map +1 -1
  572. package/dist/gateway/spend-feed.js +17 -4
  573. package/dist/gateway/spend-feed.js.map +1 -1
  574. package/dist/gateway/spend-feed.test.d.ts +2 -0
  575. package/dist/gateway/spend-feed.test.d.ts.map +1 -0
  576. package/dist/gateway/spend-feed.test.js +34 -0
  577. package/dist/gateway/spend-feed.test.js.map +1 -0
  578. package/dist/gateway/store-data.test.d.ts +2 -0
  579. package/dist/gateway/store-data.test.d.ts.map +1 -0
  580. package/dist/gateway/store-data.test.js +346 -0
  581. package/dist/gateway/store-data.test.js.map +1 -0
  582. package/dist/gateway/store-migrations.d.ts +6 -0
  583. package/dist/gateway/store-migrations.d.ts.map +1 -0
  584. package/dist/gateway/store-migrations.js +301 -0
  585. package/dist/gateway/store-migrations.js.map +1 -0
  586. package/dist/gateway/store.d.ts +595 -10
  587. package/dist/gateway/store.d.ts.map +1 -1
  588. package/dist/gateway/store.js +1242 -120
  589. package/dist/gateway/store.js.map +1 -1
  590. package/dist/gateway/store.test.d.ts +2 -0
  591. package/dist/gateway/store.test.d.ts.map +1 -0
  592. package/dist/gateway/store.test.js +185 -0
  593. package/dist/gateway/store.test.js.map +1 -0
  594. package/dist/proxy/buyer-chain-reader.d.ts +68 -0
  595. package/dist/proxy/buyer-chain-reader.d.ts.map +1 -0
  596. package/dist/proxy/buyer-chain-reader.js +152 -0
  597. package/dist/proxy/buyer-chain-reader.js.map +1 -0
  598. package/dist/proxy/buyer-chain-reader.test.d.ts +2 -0
  599. package/dist/proxy/buyer-chain-reader.test.d.ts.map +1 -0
  600. package/dist/proxy/buyer-chain-reader.test.js +102 -0
  601. package/dist/proxy/buyer-chain-reader.test.js.map +1 -0
  602. package/dist/proxy/buyer-proxy.d.ts +169 -3
  603. package/dist/proxy/buyer-proxy.d.ts.map +1 -1
  604. package/dist/proxy/buyer-proxy.js +873 -117
  605. package/dist/proxy/buyer-proxy.js.map +1 -1
  606. package/dist/proxy/buyer-proxy.test.js +31 -0
  607. package/dist/proxy/buyer-proxy.test.js.map +1 -1
  608. package/dist/proxy/chain-read-cache.d.ts +47 -0
  609. package/dist/proxy/chain-read-cache.d.ts.map +1 -0
  610. package/dist/proxy/chain-read-cache.js +110 -0
  611. package/dist/proxy/chain-read-cache.js.map +1 -0
  612. package/dist/proxy/chain-read-cache.test.d.ts +2 -0
  613. package/dist/proxy/chain-read-cache.test.d.ts.map +1 -0
  614. package/dist/proxy/chain-read-cache.test.js +75 -0
  615. package/dist/proxy/chain-read-cache.test.js.map +1 -0
  616. package/dist/proxy/chain-rpc-test-support.d.ts +31 -0
  617. package/dist/proxy/chain-rpc-test-support.d.ts.map +1 -0
  618. package/dist/proxy/chain-rpc-test-support.js +136 -0
  619. package/dist/proxy/chain-rpc-test-support.js.map +1 -0
  620. package/dist/proxy/chain-rpc.d.ts +121 -0
  621. package/dist/proxy/chain-rpc.d.ts.map +1 -0
  622. package/dist/proxy/chain-rpc.js +420 -0
  623. package/dist/proxy/chain-rpc.js.map +1 -0
  624. package/dist/proxy/chain-rpc.test.d.ts +2 -0
  625. package/dist/proxy/chain-rpc.test.d.ts.map +1 -0
  626. package/dist/proxy/chain-rpc.test.js +180 -0
  627. package/dist/proxy/chain-rpc.test.js.map +1 -0
  628. package/dist/proxy/deposit-watch-hub.d.ts +47 -0
  629. package/dist/proxy/deposit-watch-hub.d.ts.map +1 -0
  630. package/dist/proxy/deposit-watch-hub.js +111 -0
  631. package/dist/proxy/deposit-watch-hub.js.map +1 -0
  632. package/dist/proxy/deposit-watch-hub.test.d.ts +2 -0
  633. package/dist/proxy/deposit-watch-hub.test.d.ts.map +1 -0
  634. package/dist/proxy/deposit-watch-hub.test.js +133 -0
  635. package/dist/proxy/deposit-watch-hub.test.js.map +1 -0
  636. package/dist/proxy/deposit-watcher.d.ts +44 -4
  637. package/dist/proxy/deposit-watcher.d.ts.map +1 -1
  638. package/dist/proxy/deposit-watcher.js +76 -11
  639. package/dist/proxy/deposit-watcher.js.map +1 -1
  640. package/dist/proxy/deposit-watcher.test.js +54 -1
  641. package/dist/proxy/deposit-watcher.test.js.map +1 -1
  642. package/dist/proxy/gateway-policy.test.d.ts +2 -0
  643. package/dist/proxy/gateway-policy.test.d.ts.map +1 -0
  644. package/dist/proxy/gateway-policy.test.js +576 -0
  645. package/dist/proxy/gateway-policy.test.js.map +1 -0
  646. package/dist/proxy/network-models.d.ts +2 -0
  647. package/dist/proxy/network-models.d.ts.map +1 -1
  648. package/dist/proxy/network-models.js +3 -1
  649. package/dist/proxy/network-models.js.map +1 -1
  650. package/dist/proxy/route-policy.d.ts +97 -0
  651. package/dist/proxy/route-policy.d.ts.map +1 -0
  652. package/dist/proxy/route-policy.js +230 -0
  653. package/dist/proxy/route-policy.js.map +1 -0
  654. package/dist/proxy/route-policy.test.d.ts +2 -0
  655. package/dist/proxy/route-policy.test.d.ts.map +1 -0
  656. package/dist/proxy/route-policy.test.js +120 -0
  657. package/dist/proxy/route-policy.test.js.map +1 -0
  658. package/dist/proxy/spend-attribution.d.ts +41 -10
  659. package/dist/proxy/spend-attribution.d.ts.map +1 -1
  660. package/dist/proxy/spend-attribution.js +133 -37
  661. package/dist/proxy/spend-attribution.js.map +1 -1
  662. package/dist/proxy/tee-control.d.ts +3 -1
  663. package/dist/proxy/tee-control.d.ts.map +1 -1
  664. package/dist/proxy/tee-control.js +5 -3
  665. package/dist/proxy/tee-control.js.map +1 -1
  666. package/dist/proxy/telemetry.d.ts +2 -1
  667. package/dist/proxy/telemetry.d.ts.map +1 -1
  668. package/dist/proxy/telemetry.js +10 -5
  669. package/dist/proxy/telemetry.js.map +1 -1
  670. package/dist/routing-policy/policy.d.ts +149 -0
  671. package/dist/routing-policy/policy.d.ts.map +1 -0
  672. package/dist/routing-policy/policy.js +450 -0
  673. package/dist/routing-policy/policy.js.map +1 -0
  674. package/dist/routing-policy/policy.test.d.ts +2 -0
  675. package/dist/routing-policy/policy.test.d.ts.map +1 -0
  676. package/dist/routing-policy/policy.test.js +134 -0
  677. package/dist/routing-policy/policy.test.js.map +1 -0
  678. package/package.json +15 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.test.js","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/audit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data-settings.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-settings.test.d.ts","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/data-settings.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,264 @@
1
+ import assert from 'node:assert/strict';
2
+ import { chmodSync, lstatSync, readFileSync, statSync, symlinkSync, writeFileSync } from 'node:fs';
3
+ import * as http from 'node:http';
4
+ import { join } from 'node:path';
5
+ import { test } from 'node:test';
6
+ import { OBSERVABILITY_SETTING } from '../../observability.js';
7
+ import { FakeConsoleAuth, call, memberPrincipal, startConsole, tempDataDir, testDeps } from '../test-support.js';
8
+ import { coreConsoleRegistrars } from './index.js';
9
+ const NO_LIMITS = { daily: null, weekly: null, monthly: null, total: null };
10
+ /** A buyer answering `/_antseed/restart` the way `restart` says. */
11
+ async function fakeBuyer(restart) {
12
+ const server = http.createServer((req, res) => {
13
+ req.resume();
14
+ if (req.url === '/_antseed/restart')
15
+ res.writeHead(restart.status, { 'content-type': 'application/json' }).end(JSON.stringify(restart.body));
16
+ else
17
+ res.writeHead(404).end();
18
+ });
19
+ await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));
20
+ return { port: server.address().port, close: () => new Promise((resolve) => server.close(() => resolve())) };
21
+ }
22
+ async function harness(overrides = {}) {
23
+ const { dir, store, cleanup } = tempDataDir();
24
+ const auth = new FakeConsoleAuth();
25
+ const owner = store.createOwner({ label: 'Owner', email: null });
26
+ auth.as('owner', memberPrincipal(store, owner.id));
27
+ auth.as('writer', { kind: 'token', tokenId: 'tok_w', scope: 'admin' });
28
+ const deps = testDeps(store, dir, overrides);
29
+ const server = await startConsole(deps, auth, coreConsoleRegistrars);
30
+ const as = (who, method, path, body) => call(server.port, method, `/console/api${path}`, { who, body, bearer: who === 'writer' });
31
+ return { dir, store, auth, owner, deps, as, close: async () => { await server.close(); cleanup(); } };
32
+ }
33
+ test('PATCH /settings/buyer edits only the touched fields of the raw config, atomically, keeping its mode', async () => {
34
+ const buyer = await fakeBuyer({ status: 202, body: { ok: true } });
35
+ const h = await harness({ buyerPort: buyer.port });
36
+ try {
37
+ const path = join(h.dir, 'config.json');
38
+ writeFileSync(path, JSON.stringify({ buyer: { maxPricing: { defaults: { inputUsdPerMillion: 5, outputUsdPerMillion: 10, cachedInputUsdPerMillion: 1 } } }, custom: { keep: true } }));
39
+ chmodSync(path, 0o640);
40
+ const patched = await h.as('owner', 'PATCH', '/settings/buyer', { maxPricing: { inputUsdPerMillion: 2, cachedInputUsdPerMillion: null } });
41
+ assert.equal(patched.status, 200, JSON.stringify(patched.body));
42
+ const settings = patched.body;
43
+ assert.equal(settings.restartRequired, undefined);
44
+ assert.equal(settings.buyer.proxyPort, buyer.port, 'the port the gateway actually uses');
45
+ assert.deepEqual(JSON.parse(readFileSync(path, 'utf8')), {
46
+ buyer: { maxPricing: { defaults: { inputUsdPerMillion: 2, outputUsdPerMillion: 10 } } },
47
+ custom: { keep: true },
48
+ });
49
+ if (process.platform !== 'win32')
50
+ assert.equal(statSync(path).mode & 0o777, 0o640);
51
+ const entry = h.store.listAudit({ action: 'settings.buyer.update' }).entries[0];
52
+ assert.equal(entry?.actor.id, h.owner.id);
53
+ }
54
+ finally {
55
+ await h.close();
56
+ await buyer.close();
57
+ }
58
+ });
59
+ test('PATCH /settings/buyer refuses bad numbers and unreadable files, and reports when a restart is up to the operator', async () => {
60
+ const buyer = await fakeBuyer({ status: 503, body: { ok: false, error: 'restart_unsupported' } });
61
+ const h = await harness({ buyerPort: buyer.port });
62
+ try {
63
+ const path = join(h.dir, 'config.json');
64
+ writeFileSync(path, '{"buyer": {');
65
+ for (const body of [{ minPeerReputation: '' }, { minPeerReputation: -1 }, { maxPricing: { inputUsdPerMillion: '' } }, { maxPricing: { outputUsdPerMillion: null } }]) {
66
+ assert.equal((await h.as('owner', 'PATCH', '/settings/buyer', body)).status, 400, JSON.stringify(body));
67
+ }
68
+ const refused = await h.as('owner', 'PATCH', '/settings/buyer', { minPeerReputation: 10 });
69
+ assert.equal(refused.status, 409);
70
+ assert.equal(readFileSync(path, 'utf8'), '{"buyer": {', 'an unparsable file is left alone');
71
+ writeFileSync(path, '{}');
72
+ const saved = await h.as('owner', 'PATCH', '/settings/buyer', { minPeerReputation: 10 });
73
+ assert.equal(saved.status, 200);
74
+ assert.equal(saved.body.restartRequired, true);
75
+ assert.deepEqual(JSON.parse(readFileSync(path, 'utf8')), { buyer: { minPeerReputation: 10 } });
76
+ }
77
+ finally {
78
+ await h.close();
79
+ await buyer.close();
80
+ }
81
+ });
82
+ test('OTLP header values are shown to org-admin sessions only, and a masked value sent back is kept', async () => {
83
+ const h = await harness();
84
+ try {
85
+ const put = await h.as('owner', 'PUT', '/settings/observability', { otlpEndpoint: 'https://otel.example.test', otlpHeaders: { authorization: 'Bearer secret-1' }, logContent: false, retentionDays: null });
86
+ assert.equal(put.status, 200, JSON.stringify(put.body));
87
+ assert.equal(put.body.observability.otlpHeaders['authorization'], 'Bearer secret-1');
88
+ const asToken = (await h.as('writer', 'GET', '/settings')).body;
89
+ assert.deepEqual(asToken.observability.otlpHeaders, { authorization: '••••' });
90
+ // A token round-trips what it read (changing only retention); the stored secret survives.
91
+ assert.equal((await h.as('writer', 'PUT', '/settings/observability', { ...asToken.observability, retentionDays: 30 })).status, 200);
92
+ assert.deepEqual(h.store.getSetting(OBSERVABILITY_SETTING)?.otlpHeaders, { authorization: 'Bearer secret-1' });
93
+ assert.equal((await h.as('writer', 'PUT', '/settings/observability', { ...asToken.observability, otlpHeaders: { 'x-new': '••••' } })).status, 400);
94
+ const audited = h.store.listAudit({ action: 'settings.observability.update' }).entries;
95
+ assert.equal(audited.length, 2);
96
+ assert.ok(!JSON.stringify(audited).includes('secret-1'), 'header values never reach the audit log');
97
+ }
98
+ finally {
99
+ await h.close();
100
+ }
101
+ });
102
+ test('masked OTLP header values are not carried to a new endpoint origin', async () => {
103
+ const h = await harness();
104
+ try {
105
+ await h.as('owner', 'PUT', '/settings/observability', { otlpEndpoint: 'https://otel.example.test/v1', otlpHeaders: { authorization: 'Bearer secret-1' }, logContent: false, retentionDays: null });
106
+ const moved = await h.as('owner', 'PUT', '/settings/observability', { otlpEndpoint: 'https://collector.attacker.test/v1', otlpHeaders: { authorization: '••••' }, logContent: false, retentionDays: null });
107
+ assert.equal(moved.status, 400);
108
+ assert.equal(moved.body.error.code, 'otlp_headers_required');
109
+ assert.equal(h.store.getSetting(OBSERVABILITY_SETTING)?.otlpEndpoint, 'https://otel.example.test/v1', 'nothing changed');
110
+ // Same origin, another path: the saved value is kept.
111
+ const samePlace = await h.as('owner', 'PUT', '/settings/observability', { otlpEndpoint: 'https://otel.example.test/v2', otlpHeaders: { authorization: '••••' }, logContent: false, retentionDays: null });
112
+ assert.equal(samePlace.status, 200);
113
+ assert.equal(samePlace.body.observability.otlpHeaders['authorization'], 'Bearer secret-1');
114
+ // Re-entered values go to the new origin.
115
+ const reentered = await h.as('owner', 'PUT', '/settings/observability', { otlpEndpoint: 'https://collector.example.test', otlpHeaders: { authorization: 'Bearer secret-2' }, logContent: false, retentionDays: null });
116
+ assert.equal(reentered.status, 200);
117
+ assert.equal(reentered.body.observability.otlpHeaders['authorization'], 'Bearer secret-2');
118
+ }
119
+ finally {
120
+ await h.close();
121
+ }
122
+ });
123
+ test('only org-admin sessions change the OTLP endpoint or content logging; tokens are refused and audited', async () => {
124
+ const h = await harness();
125
+ try {
126
+ const base = { otlpEndpoint: null, otlpHeaders: {}, logContent: false, retentionDays: null };
127
+ for (const body of [{ ...base, otlpEndpoint: 'https://collector.example.test' }, { ...base, logContent: true }]) {
128
+ const refused = await h.as('writer', 'PUT', '/settings/observability', body);
129
+ assert.equal(refused.status, 403, JSON.stringify(body));
130
+ assert.equal(refused.body.error.code, 'session_required');
131
+ }
132
+ assert.equal(h.store.listAudit({ action: 'settings.observability.denied' }).entries.length, 2);
133
+ assert.equal(h.store.listAudit({ action: 'settings.observability.update' }).entries.length, 0);
134
+ const byOwner = await h.as('owner', 'PUT', '/settings/observability', { ...base, otlpEndpoint: 'https://collector.example.test', logContent: true });
135
+ assert.equal(byOwner.status, 200);
136
+ const [entry] = h.store.listAudit({ action: 'settings.observability.update' }).entries;
137
+ assert.equal(entry?.actor.id, h.owner.id);
138
+ assert.equal(entry?.details?.['previousOtlpEndpoint'], null);
139
+ assert.equal(entry?.details?.['previousLogContent'], false);
140
+ }
141
+ finally {
142
+ await h.close();
143
+ }
144
+ });
145
+ test('turning content logging off forgets the request and response bodies already kept', async () => {
146
+ const h = await harness();
147
+ try {
148
+ const base = { otlpEndpoint: null, otlpHeaders: {}, logContent: true, retentionDays: null };
149
+ assert.equal((await h.as('owner', 'PUT', '/settings/observability', base)).status, 200);
150
+ const { key } = h.store.createKey({ label: 'Logged', limits: NO_LIMITS, expiresAt: null });
151
+ h.store.startRequest({ tag: 'gw_body', keyId: key.id, buyerIdentity: 'default', method: 'POST', path: '/v1/responses', model: 'm1', startedAt: Date.now() });
152
+ h.store.finishRequest('gw_body', { status: 200, buyerRequestId: null });
153
+ h.store.recordRequestContent('gw_body', { requestBody: 'PROMPT BODY', responseBody: 'ANSWER BODY' });
154
+ assert.equal((await h.as('owner', 'PUT', '/settings/observability', base)).status, 200);
155
+ assert.equal((await h.as('owner', 'GET', '/requests/gw_body')).body.requestBody, 'PROMPT BODY', 'unchanged while logging stays on');
156
+ assert.equal((await h.as('owner', 'PUT', '/settings/observability', { ...base, logContent: false })).status, 200);
157
+ const detail = (await h.as('owner', 'GET', '/requests/gw_body')).body;
158
+ assert.deepEqual([detail.requestBody, detail.responseBody], [null, null]);
159
+ const entry = h.store.listAudit({ action: 'settings.observability.update' }).entries[0];
160
+ assert.equal(entry?.details?.['clearedBodies'], 1);
161
+ }
162
+ finally {
163
+ await h.close();
164
+ }
165
+ });
166
+ test('concurrent buyer-settings PATCHes are serialized and a symlinked config is written through', async () => {
167
+ const buyer = await fakeBuyer({ status: 202, body: { ok: true } });
168
+ const h = await harness({ buyerPort: buyer.port });
169
+ try {
170
+ const target = join(h.dir, 'real-config.json');
171
+ writeFileSync(target, JSON.stringify({ custom: { keep: true } }));
172
+ symlinkSync(target, join(h.dir, 'config.json'));
173
+ const results = await Promise.all([
174
+ h.as('owner', 'PATCH', '/settings/buyer', { minPeerReputation: 42 }),
175
+ h.as('owner', 'PATCH', '/settings/buyer', { maxPricing: { inputUsdPerMillion: 3 } }),
176
+ h.as('owner', 'PATCH', '/settings/buyer', { maxPricing: { outputUsdPerMillion: 7 } }),
177
+ ]);
178
+ assert.deepEqual(results.map((result) => result.status), [200, 200, 200]);
179
+ assert.ok(lstatSync(join(h.dir, 'config.json')).isSymbolicLink(), 'the link is kept');
180
+ assert.deepEqual(JSON.parse(readFileSync(target, 'utf8')), {
181
+ custom: { keep: true },
182
+ buyer: { minPeerReputation: 42, maxPricing: { defaults: { inputUsdPerMillion: 3, outputUsdPerMillion: 7 } } },
183
+ });
184
+ }
185
+ finally {
186
+ await h.close();
187
+ await buyer.close();
188
+ }
189
+ });
190
+ test('request detail, search, opaque cursors and a streamed CSV export', async () => {
191
+ const h = await harness();
192
+ try {
193
+ const { key } = h.store.createKey({ label: 'Batch job', limits: NO_LIMITS, expiresAt: null });
194
+ const { key: other } = h.store.createKey({ label: 'Other', limits: NO_LIMITS, expiresAt: null });
195
+ h.auth.as('otherKey', { kind: 'key', keyId: other.id, sessionId: 'ks' });
196
+ const base = Date.now() - 60_000;
197
+ for (let index = 0; index < 1_205; index += 1) {
198
+ const tag = `gw_${String(index).padStart(5, '0')}`;
199
+ h.store.startRequest({ tag, keyId: key.id, buyerIdentity: 'default', method: 'POST', path: '/v1/responses', model: index === 7 ? 'open-model-special' : 'm1', startedAt: base + Math.floor(index / 10) });
200
+ h.store.finishRequest(tag, index === 9 ? { status: 502, buyerRequestId: null, error: { code: 'seller_error', message: 'Upstream, "quoted"' } } : { status: 200, buyerRequestId: null });
201
+ }
202
+ h.store.recordRequestContent('gw_00009', { requestBody: 'PROMPT BODY', responseBody: 'ANSWER BODY' });
203
+ const detail = await h.as('owner', 'GET', '/requests/gw_00009');
204
+ assert.equal(detail.status, 200);
205
+ const body = detail.body;
206
+ assert.deepEqual([body.requestBody, body.responseBody, body.errorCode, body.errorMessage], ['PROMPT BODY', 'ANSWER BODY', 'seller_error', 'Upstream, "quoted"']);
207
+ assert.equal((await h.as('otherKey', 'GET', '/requests/gw_00009')).status, 404, 'another key cannot read it');
208
+ assert.equal((await h.as('owner', 'GET', '/requests/gw_nope')).status, 404);
209
+ const found = (await h.as('owner', 'GET', '/requests?q=special')).body;
210
+ assert.deepEqual(found.requests.map((r) => r.tag), ['gw_00007']);
211
+ assert.ok(!('requestBody' in found.requests[0]));
212
+ const byError = (await h.as('owner', 'GET', '/requests?q=upstream')).body;
213
+ assert.deepEqual(byError.requests.map((r) => r.tag), ['gw_00009'], 'search matches error messages (case-insensitive)');
214
+ const byCode = (await h.as('owner', 'GET', '/requests?q=seller_error')).body;
215
+ assert.deepEqual(byCode.requests.map((r) => r.tag), ['gw_00009'], 'search matches error codes');
216
+ const seen = new Set();
217
+ let cursor = null;
218
+ do {
219
+ const page = (await h.as('owner', 'GET', `/requests?limit=200${cursor ? `&before=${cursor}` : ''}`)).body;
220
+ for (const row of page.requests)
221
+ seen.add(row.tag);
222
+ cursor = page.nextBefore;
223
+ } while (cursor);
224
+ assert.equal(seen.size, 1_205, 'every row exactly once across pages');
225
+ assert.equal((await h.as('owner', 'GET', '/requests?before=not-a-cursor')).status, 400);
226
+ const csv = await h.as('owner', 'GET', '/usage/export.csv');
227
+ assert.equal(csv.status, 200);
228
+ const lines = csv.text.trim().split('\r\n');
229
+ assert.equal(lines.length, 1 + 1_205, 'batches past the first 1,000 rows');
230
+ assert.ok(lines[0].endsWith(',errorCode,errorMessage'));
231
+ assert.ok(csv.text.includes('seller_error,"Upstream, ""quoted"""'));
232
+ assert.ok(!csv.text.includes('PROMPT BODY'), 'no bodies in the export');
233
+ const filtered = await h.as('owner', 'GET', '/usage/export.csv?status=error');
234
+ assert.equal(filtered.text.trim().split('\r\n').length, 2);
235
+ }
236
+ finally {
237
+ await h.close();
238
+ }
239
+ });
240
+ test('presets, peer lists and the routing default are audited', async () => {
241
+ const h = await harness();
242
+ try {
243
+ const list = await h.as('owner', 'POST', '/peer-lists', { name: 'Good', peerIds: ['aa'] });
244
+ const listId = list.body.id;
245
+ await h.as('owner', 'PATCH', `/peer-lists/${listId}`, { peerIds: ['aa', 'bb'] });
246
+ await h.as('owner', 'DELETE', `/peer-lists/${listId}`);
247
+ const preset = await h.as('owner', 'POST', '/presets', { slug: 'fast', name: 'Fast', model: 'm1', systemPrompt: 'be brief' });
248
+ const presetId = preset.body.id;
249
+ await h.as('owner', 'PATCH', `/presets/${presetId}`, { model: 'm2', systemPrompt: 'be very brief' });
250
+ await h.as('owner', 'DELETE', `/presets/${presetId}`);
251
+ await h.as('writer', 'PUT', '/routing', { blockedPeerIds: ['cc'] });
252
+ const actions = h.store.listAudit({ limit: 50 }).entries.map((entry) => entry.action).sort();
253
+ assert.deepEqual(actions, ['peer_list.create', 'peer_list.delete', 'peer_list.update', 'preset.create', 'preset.delete', 'preset.update', 'routing.default.update']);
254
+ const update = h.store.listAudit({ action: 'peer_list.update' }).entries[0];
255
+ assert.deepEqual(update.details, { added: ['bb'] });
256
+ const presetUpdate = h.store.listAudit({ action: 'preset.update' }).entries[0];
257
+ assert.deepEqual(presetUpdate.details, { model: { before: 'm1', after: 'm2' }, systemPromptChanged: true });
258
+ assert.equal(h.store.listAudit({ action: 'routing.default.update' }).entries[0].actor.kind, 'token');
259
+ }
260
+ finally {
261
+ await h.close();
262
+ }
263
+ });
264
+ //# sourceMappingURL=data-settings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-settings.test.js","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/data-settings.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAClG,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAEhH,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AAE3E,oEAAoE;AACpE,KAAK,UAAU,SAAS,CAAC,OAA0C;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,GAAG,CAAC,MAAM,EAAE,CAAA;QACZ,IAAI,GAAG,CAAC,GAAG,KAAK,mBAAmB;YAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;;YACvI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;IAC5E,OAAO,EAAE,IAAI,EAAG,MAAM,CAAC,OAAO,EAAuB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAA;AAC1I,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,YAAkC,EAAE;IACzD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAA;IACpE,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,EAAE,CACvE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,EAAE,CAAC,CAAA;IAC3F,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,CAAA;AACtG,CAAC;AAED,IAAI,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;IACrH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAClE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACvC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACrL,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAC1I,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAgB,CAAA;QACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAA;QACxF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE;YACvD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE;YACvF,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACvB,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAA;QAClF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/E,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;IAClI,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAA;IACjG,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACvC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YACrK,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACzG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACjC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,kCAAkC,CAAC,CAAA;QAE3F,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAA;QACxF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAE,KAAK,CAAC,IAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAChG,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;IAC/G,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,2BAA2B,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3M,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,KAAK,CAAE,GAAG,CAAC,IAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAClG,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,IAAgB,CAAA;QAC3E,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAA;QAC9E,0FAA0F;QAC1F,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACnI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAA0C,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACvJ,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAClJ,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAA;QACtF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,yCAAyC,CAAC,CAAA;IACrG,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;IACpF,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,8BAA8B,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAClM,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,oCAAoC,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3M,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,MAAM,CAAC,KAAK,CAAE,KAAK,CAAC,IAAoC,CAAC,KAAK,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QAC7F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAA2B,qBAAqB,CAAC,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,CAAC,CAAA;QAClJ,sDAAsD;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,8BAA8B,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACzM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,KAAK,CAAE,SAAS,CAAC,IAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACxG,0CAA0C;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,gCAAgC,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACtN,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACnC,MAAM,CAAC,KAAK,CAAE,SAAS,CAAC,IAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAC1G,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;IACrH,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;QAC5F,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,gCAAgC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAChH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAA;YAC5E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YACvD,MAAM,CAAC,KAAK,CAAE,OAAO,CAAC,IAAoC,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;QAC5F,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC9F,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,gCAAgC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACpJ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAA;QACtF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACzC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7D,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;IAClG,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;QAC3F,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACvF,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1F,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC5J,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;QACpG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACvF,MAAM,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAsB,CAAC,WAAW,EAAE,aAAa,EAAE,kCAAkC,CAAC,CAAA;QAEtJ,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACjH,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAqB,CAAA;QACtF,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACvF,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;IAC5G,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAClE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;QAC9C,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACjE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;YACpE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC;YACpF,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;SACtF,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACzE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,kBAAkB,CAAC,CAAA;QACrF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE;YACzD,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACtB,KAAK,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE;SAC9G,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAClF,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7F,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAChG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAA;QAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;YAClD,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YACzM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;QACzL,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;QAErG,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAA;QAC/D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAqB,CAAA;QACzC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAA;QAChK,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAA;QAC7G,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAE3E,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAuC,CAAA;QACzG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAuC,CAAA;QAC5G,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,kDAAkD,CAAC,CAAA;QACtH,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,IAAuC,CAAA;QAC/G,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC,CAAA;QAC/F,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,IAAI,MAAM,GAAkB,IAAI,CAAA;QAChC,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAkE,CAAA;YACvK,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAClD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1B,CAAC,QAAQ,MAAM,EAAC;QAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,qCAAqC,CAAC,CAAA;QACrE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAEvF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAA;QAC3D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,mCAAmC,CAAC,CAAA;QAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAA;QACnE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,yBAAyB,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,gCAAgC,CAAC,CAAA;QAC7E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,CAAC,GAAG,MAAM,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1F,MAAM,MAAM,GAAI,IAAI,CAAC,IAAuB,CAAC,EAAE,CAAA;QAC/C,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAChF,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,MAAM,EAAE,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAA;QAC7H,MAAM,QAAQ,GAAI,MAAM,CAAC,IAAuB,CAAC,EAAE,CAAA;QACnD,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAA;QACpG,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,QAAQ,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEnE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC5F,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,wBAAwB,CAAC,CAAC,CAAA;QACpK,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;QAC5E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnD,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAA;QAC/E,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3G,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACvG,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { ConsoleRegistrar } from '../server.js';
2
+ /** Route modules owned by the gateway core; wallet and network routes are mounted separately. */
3
+ export declare const coreConsoleRegistrars: ConsoleRegistrar[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAYpD,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,EAWnD,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { registerAdminTokenRoutes } from './admin-tokens.js';
2
+ import { registerKeyRoutes } from './keys.js';
3
+ import { registerOrgRoutes } from './org.js';
4
+ import { registerPeerListRoutes } from './peer-lists.js';
5
+ import { registerPresetRoutes } from './presets.js';
6
+ import { registerRoutingRoutes } from './routing.js';
7
+ import { registerSettingsRoutes } from './settings.js';
8
+ import { registerStatusRoutes } from './status.js';
9
+ import { registerUsageRoutes } from './usage.js';
10
+ import { registerWorkspaceRoutes } from './workspaces.js';
11
+ /** Route modules owned by the gateway core; wallet and network routes are mounted separately. */
12
+ export const coreConsoleRegistrars = [
13
+ registerOrgRoutes,
14
+ registerWorkspaceRoutes,
15
+ registerKeyRoutes,
16
+ registerAdminTokenRoutes,
17
+ registerUsageRoutes,
18
+ registerPeerListRoutes,
19
+ registerPresetRoutes,
20
+ registerRoutingRoutes,
21
+ registerSettingsRoutes,
22
+ registerStatusRoutes,
23
+ ];
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,iBAAiB;IACjB,uBAAuB;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,oBAAoB;CACrB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { ConsoleDeps } from '../deps.js';
2
+ import { type ConsoleRouter } from '../router.js';
3
+ /**
4
+ * API keys (business rules in `services/keys.ts`). Members create, rotate
5
+ * and revoke their own keys in workspaces they belong to, up to their
6
+ * `maxKeys`; workspace admins manage every key in their workspace and may
7
+ * create keys for its members; only admins turn on x402 top-ups or change a
8
+ * key's owner; keys without an owner are the org admins' alone (workspace
9
+ * admins only see them). Rotation issues a new secret for the same key id
10
+ * and ends the key's console sessions.
11
+ */
12
+ export declare function registerKeyRoutes(router: ConsoleRouter, deps: ConsoleDeps): void;
13
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/keys.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAyB,KAAK,aAAa,EAAkB,MAAM,cAAc,CAAA;AAyDxF;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAsEhF"}
@@ -0,0 +1,128 @@
1
+ import { createKey, revokeKey, rotateKey, updateKey } from '../../services/keys.js';
2
+ import { activeMember, isOrgAdmin, requestActor, requireWorkspaceAccess, workspaceRole } from '../access.js';
3
+ import { ConsoleError, respond } from '../router.js';
4
+ import { apiKeyDto, asObject, confirmations, fullLimitsFromWire, keyUsageForDtos, limitsFromWire, notFound, optionalBoolean, optionalString, optionalTimestamp, policyFromWire, requiredString, } from '../serialize.js';
5
+ /**
6
+ * What the caller may do with a key: workspace admins manage it, its owner
7
+ * self-serves, a key session reads itself. A key without an owner is the org
8
+ * admins' (no member budget applies to it), so a workspace admin only reads it.
9
+ */
10
+ function keyAccess(deps, p, key) {
11
+ if (!p)
12
+ return 'none';
13
+ if (p.kind === 'key')
14
+ return p.keyId === key.id ? 'read' : 'none';
15
+ if (isOrgAdmin(deps.store, p))
16
+ return 'admin';
17
+ if (p.kind !== 'member')
18
+ return 'none';
19
+ const role = workspaceRole(deps.store, p, key.workspaceId);
20
+ if (role === 'admin')
21
+ return key.ownerMemberId === null ? 'read' : 'admin';
22
+ if (role === 'member' && key.ownerMemberId === p.memberId)
23
+ return 'owner';
24
+ return 'none';
25
+ }
26
+ function requireKeyAccess(deps, p, id, needed) {
27
+ const key = deps.store.getKey(id);
28
+ if (!key)
29
+ throw notFound('Key');
30
+ const access = keyAccess(deps, p, key);
31
+ if (access === 'none')
32
+ throw notFound('Key');
33
+ const rank = { none: 0, read: 1, owner: 2, admin: 3 };
34
+ if (rank[access] < rank[needed]) {
35
+ if (p?.kind === 'member' && key.ownerMemberId === null)
36
+ throw new ConsoleError(403, 'forbidden', 'Only organization admins can change keys without an owner');
37
+ throw new ConsoleError(403, 'forbidden', needed === 'admin' ? 'Only workspace admins can do this' : 'You cannot change this key');
38
+ }
39
+ return { key, access };
40
+ }
41
+ /**
42
+ * Member budgets only reach keys with an owner, so a key without one is the
43
+ * org admins' (and management tokens') to make; a workspace admin's keys
44
+ * belong to someone in the workspace.
45
+ */
46
+ function requireOwnerlessAllowed(deps, p, ownerMemberId) {
47
+ if (ownerMemberId !== null || isOrgAdmin(deps.store, p))
48
+ return;
49
+ throw new ConsoleError(403, 'forbidden', 'Only organization admins can have keys without an owner');
50
+ }
51
+ /**
52
+ * API keys (business rules in `services/keys.ts`). Members create, rotate
53
+ * and revoke their own keys in workspaces they belong to, up to their
54
+ * `maxKeys`; workspace admins manage every key in their workspace and may
55
+ * create keys for its members; only admins turn on x402 top-ups or change a
56
+ * key's owner; keys without an owner are the org admins' alone (workspace
57
+ * admins only see them). Rotation issues a new secret for the same key id
58
+ * and ends the key's console sessions.
59
+ */
60
+ export function registerKeyRoutes(router, deps) {
61
+ const { store } = deps;
62
+ router.add('GET', '/keys', async ({ principal, query }) => {
63
+ const workspace = query.get('workspace');
64
+ const member = query.get('member');
65
+ if (principal?.kind === 'member')
66
+ activeMember(store, principal);
67
+ const keys = store.listKeys({ ...(workspace ? { workspaceId: workspace } : {}), ...(member ? { ownerMemberId: member } : {}) })
68
+ .filter((key) => keyAccess(deps, principal, key) !== 'none');
69
+ const now = deps.now();
70
+ const usage = keyUsageForDtos(store, keys.map((key) => key.id), now);
71
+ return keys.map((key) => apiKeyDto(store, key, now, usage.get(key.id)));
72
+ }, { allow: ['member', 'token', 'key'] });
73
+ router.add('POST', '/keys', async (request) => {
74
+ const { principal, body } = request;
75
+ const input = asObject(body);
76
+ const label = requiredString(input, 'label');
77
+ const workspaceId = requiredString(input, 'workspaceId');
78
+ requireWorkspaceAccess(store, principal, workspaceId);
79
+ const admin = workspaceRole(store, principal, workspaceId) === 'admin';
80
+ const self = principal?.kind === 'member' ? principal.memberId : null;
81
+ const ownerMemberId = input['ownerMemberId'] !== undefined ? optionalString(input, 'ownerMemberId') ?? null : undefined;
82
+ requireOwnerlessAllowed(deps, principal, ownerMemberId);
83
+ const { key, secret } = createKey(deps, requestActor(deps, request), {
84
+ label,
85
+ workspaceId,
86
+ ...(ownerMemberId !== undefined ? { ownerMemberId } : {}),
87
+ ...(input['topupEnabled'] !== undefined ? { topupEnabled: optionalBoolean(input, 'topupEnabled') } : {}),
88
+ ...(input['limits'] !== undefined ? { limits: fullLimitsFromWire(input['limits']) } : {}),
89
+ ...(input['routingPolicy'] !== undefined ? { routingPolicy: policyFromWire(input['routingPolicy']) } : {}),
90
+ ...(input['ownerLimits'] !== undefined ? { ownerLimits: fullLimitsFromWire(input['ownerLimits']) } : {}),
91
+ ...(input['ownerRoutingPolicy'] !== undefined ? { ownerRoutingPolicy: policyFromWire(input['ownerRoutingPolicy'], 'ownerRoutingPolicy') } : {}),
92
+ expiresAt: optionalTimestamp(input, 'expiresAt') ?? null,
93
+ ...confirmations(input),
94
+ }, { as: admin ? 'admin' : 'owner', self });
95
+ return respond(201, { key: apiKeyDto(store, key, deps.now()), secret });
96
+ });
97
+ router.add('PATCH', '/keys/:id', async (request) => {
98
+ const { principal, params, body } = request;
99
+ const input = asObject(body);
100
+ const { key, access } = requireKeyAccess(deps, principal, params['id'], 'owner');
101
+ const ownerMemberId = input['ownerMemberId'] !== undefined ? optionalString(input, 'ownerMemberId') ?? null : undefined;
102
+ if (access === 'admin' && key.ownerMemberId !== null)
103
+ requireOwnerlessAllowed(deps, principal, ownerMemberId);
104
+ const updated = updateKey(deps, requestActor(deps, request), key.id, {
105
+ ...(input['workspaceId'] !== undefined ? { workspaceId: input['workspaceId'] } : {}),
106
+ ...(input['label'] !== undefined ? { label: requiredString(input, 'label') } : {}),
107
+ ...(input['topupEnabled'] !== undefined ? { topupEnabled: optionalBoolean(input, 'topupEnabled') } : {}),
108
+ ...(ownerMemberId !== undefined ? { ownerMemberId } : {}),
109
+ ...(input['limits'] !== undefined ? { limits: limitsFromWire(input['limits']) } : {}),
110
+ ...(input['routingPolicy'] !== undefined ? { routingPolicy: policyFromWire(input['routingPolicy']) } : {}),
111
+ ...(input['ownerLimits'] !== undefined ? { ownerLimits: limitsFromWire(input['ownerLimits']) } : {}),
112
+ ...(input['ownerRoutingPolicy'] !== undefined ? { ownerRoutingPolicy: policyFromWire(input['ownerRoutingPolicy'], 'ownerRoutingPolicy') } : {}),
113
+ ...(input['expiresAt'] !== undefined ? { expiresAt: optionalTimestamp(input, 'expiresAt') } : {}),
114
+ ...confirmations(input),
115
+ }, { as: access === 'admin' ? 'admin' : 'owner' });
116
+ return apiKeyDto(store, updated, deps.now());
117
+ });
118
+ router.add('POST', '/keys/:id/rotate', async (request) => {
119
+ const { key } = requireKeyAccess(deps, request.principal, request.params['id'], 'owner');
120
+ const rotated = rotateKey(deps, requestActor(deps, request), key.id);
121
+ return { key: apiKeyDto(store, rotated.key, deps.now()), secret: rotated.secret };
122
+ });
123
+ router.add('POST', '/keys/:id/revoke', async (request) => {
124
+ const { key } = requireKeyAccess(deps, request.principal, request.params['id'], 'owner');
125
+ return apiKeyDto(store, revokeKey(deps, requestActor(deps, request), key.id), deps.now());
126
+ });
127
+ }
128
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEnF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5G,OAAO,EAAE,YAAY,EAAE,OAAO,EAAsC,MAAM,cAAc,CAAA;AACxF,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAA;AAIxB;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAiB,EAAE,CAAmB,EAAE,GAAiB;IAC1E,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACrB,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IACjE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAAE,OAAO,OAAO,CAAA;IAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IACtC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAC1D,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAC1E,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,KAAK,CAAC,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAA;IACzE,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAiB,EAAE,CAAmB,EAAE,EAAU,EAAE,MAAkC;IAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACjC,IAAI,CAAC,GAAG;QAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,MAAM,KAAK,MAAM;QAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACrD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;YAAE,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,2DAA2D,CAAC,CAAA;QAC7J,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAA;IACnI,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,IAAiB,EAAE,CAAmB,EAAE,aAAwC;IAC/G,IAAI,aAAa,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAAE,OAAM;IAC/D,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,yDAAyD,CAAC,CAAA;AACrG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB,EAAE,IAAiB;IACxE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAEtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ;YAAE,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;aAC5H,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IAEzC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;QACxD,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,OAAO,CAAA;QACtE,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;QACrE,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACvH,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACvD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YACnE,KAAK;YACL,WAAW;YACX,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1G,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/I,SAAS,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI;YACxD,GAAG,aAAa,CAAC,KAAK,CAAC;SACxB,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAE,EAAE,OAAO,CAAC,CAAA;QACjF,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACvH,IAAI,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI;YAAE,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QAC7G,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE;YACnE,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1G,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/I,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,GAAG,aAAa,CAAC,KAAK,CAAC;SACxB,EAAE,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAClD,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAE,EAAE,OAAO,CAAC,CAAA;QACzF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACpE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IACnF,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAE,EAAE,OAAO,CAAC,CAAA;QACzF,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keys.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.test.d.ts","sourceRoot":"","sources":["../../../../src/gateway/console-api/handlers/keys.test.ts"],"names":[],"mappings":""}