@nosana/api 2.6.1 → 2.7.3

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 (255) hide show
  1. package/README.md +128 -4
  2. package/dist/client/blockchain-indexer/index.d.ts +7 -0
  3. package/dist/client/blockchain-indexer/index.d.ts.map +1 -0
  4. package/dist/client/blockchain-indexer/index.js +7 -0
  5. package/dist/client/blockchain-indexer/index.js.map +1 -0
  6. package/dist/client/blockchain-indexer/schema.d.ts +774 -0
  7. package/dist/client/blockchain-indexer/schema.d.ts.map +1 -0
  8. package/dist/client/blockchain-indexer/schema.js.map +1 -0
  9. package/dist/client/client-manager/index.d.ts +6 -0
  10. package/dist/client/client-manager/index.d.ts.map +1 -0
  11. package/dist/client/{clientManagerClient.js → client-manager/index.js} +2 -2
  12. package/dist/client/client-manager/index.js.map +1 -0
  13. package/dist/client/{clientManagerSchema.d.ts → client-manager/schema.d.ts} +4 -1
  14. package/dist/client/client-manager/schema.d.ts.map +1 -0
  15. package/dist/client/{clientManagerSchema.js → client-manager/schema.js} +1 -1
  16. package/dist/client/client-manager/schema.js.map +1 -0
  17. package/dist/client/createClient.d.ts +8 -0
  18. package/dist/client/createClient.d.ts.map +1 -0
  19. package/dist/client/{dashboardClient.js → createClient.js} +8 -5
  20. package/dist/client/createClient.js.map +1 -0
  21. package/dist/client/deployment-manager/index.d.ts +6 -0
  22. package/dist/client/deployment-manager/index.d.ts.map +1 -0
  23. package/dist/client/deployment-manager/index.js +8 -0
  24. package/dist/client/deployment-manager/index.js.map +1 -0
  25. package/dist/client/{deployment-manager-schema.d.ts → deployment-manager/schema.d.ts} +400 -138
  26. package/dist/client/deployment-manager/schema.d.ts.map +1 -0
  27. package/dist/client/{deployment-manager-schema.js → deployment-manager/schema.js} +1 -1
  28. package/dist/client/deployment-manager/schema.js.map +1 -0
  29. package/dist/client/host-manager/index.d.ts +6 -0
  30. package/dist/client/host-manager/index.d.ts.map +1 -0
  31. package/dist/client/host-manager/index.js +7 -0
  32. package/dist/client/host-manager/index.js.map +1 -0
  33. package/dist/client/host-manager/schema.d.ts +9746 -0
  34. package/dist/client/host-manager/schema.d.ts.map +1 -0
  35. package/dist/client/host-manager/schema.js +6 -0
  36. package/dist/client/host-manager/schema.js.map +1 -0
  37. package/dist/client/index.d.ts +6 -2
  38. package/dist/client/index.d.ts.map +1 -1
  39. package/dist/client/index.js +5 -2
  40. package/dist/client/index.js.map +1 -1
  41. package/dist/client/type.utils.d.ts +8 -5
  42. package/dist/client/type.utils.d.ts.map +1 -1
  43. package/dist/defaults/index.d.ts.map +1 -1
  44. package/dist/defaults/index.js +10 -4
  45. package/dist/defaults/index.js.map +1 -1
  46. package/dist/index.d.ts +31 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +37 -10
  49. package/dist/index.js.map +1 -1
  50. package/dist/routes/auth/index.d.ts +1 -1
  51. package/dist/routes/auth/index.d.ts.map +1 -1
  52. package/dist/routes/auth/index.js +18 -0
  53. package/dist/routes/auth/index.js.map +1 -1
  54. package/dist/routes/auth/types.d.ts +5 -0
  55. package/dist/routes/auth/types.d.ts.map +1 -1
  56. package/dist/routes/benchmarks/index.d.ts +7 -0
  57. package/dist/routes/benchmarks/index.d.ts.map +1 -0
  58. package/dist/routes/benchmarks/index.js +116 -0
  59. package/dist/routes/benchmarks/index.js.map +1 -0
  60. package/dist/routes/benchmarks/types.d.ts +24 -0
  61. package/dist/routes/benchmarks/types.d.ts.map +1 -0
  62. package/dist/routes/benchmarks/types.js +2 -0
  63. package/dist/routes/benchmarks/types.js.map +1 -0
  64. package/dist/routes/credits/index.d.ts +5 -3
  65. package/dist/routes/credits/index.d.ts.map +1 -1
  66. package/dist/routes/credits/index.js +73 -4
  67. package/dist/routes/credits/index.js.map +1 -1
  68. package/dist/routes/credits/types.d.ts +13 -2
  69. package/dist/routes/credits/types.d.ts.map +1 -1
  70. package/dist/routes/deployments/deployment/actions/deploymentArchive.d.ts +2 -2
  71. package/dist/routes/deployments/deployment/actions/deploymentArchive.d.ts.map +1 -1
  72. package/dist/routes/deployments/deployment/actions/deploymentArchive.js +1 -1
  73. package/dist/routes/deployments/deployment/actions/deploymentArchive.js.map +1 -1
  74. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.d.ts +3 -3
  75. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.d.ts.map +1 -1
  76. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js +3 -3
  77. package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js.map +1 -1
  78. package/dist/routes/deployments/deployment/actions/deploymentDelete.d.ts +2 -2
  79. package/dist/routes/deployments/deployment/actions/deploymentDelete.d.ts.map +1 -1
  80. package/dist/routes/deployments/deployment/actions/deploymentDelete.js +1 -1
  81. package/dist/routes/deployments/deployment/actions/deploymentDelete.js.map +1 -1
  82. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.d.ts +2 -2
  83. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.d.ts.map +1 -1
  84. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js +1 -1
  85. package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js.map +1 -1
  86. package/dist/routes/deployments/deployment/actions/deploymentGetEvents.d.ts +2 -2
  87. package/dist/routes/deployments/deployment/actions/deploymentGetEvents.d.ts.map +1 -1
  88. package/dist/routes/deployments/deployment/actions/deploymentGetEvents.js +1 -1
  89. package/dist/routes/deployments/deployment/actions/deploymentGetEvents.js.map +1 -1
  90. package/dist/routes/deployments/deployment/actions/deploymentGetJob.d.ts +3 -5
  91. package/dist/routes/deployments/deployment/actions/deploymentGetJob.d.ts.map +1 -1
  92. package/dist/routes/deployments/deployment/actions/deploymentGetJob.js +2 -2
  93. package/dist/routes/deployments/deployment/actions/deploymentGetJob.js.map +1 -1
  94. package/dist/routes/deployments/deployment/actions/deploymentGetJobs.d.ts +2 -2
  95. package/dist/routes/deployments/deployment/actions/deploymentGetJobs.d.ts.map +1 -1
  96. package/dist/routes/deployments/deployment/actions/deploymentGetJobs.js +1 -1
  97. package/dist/routes/deployments/deployment/actions/deploymentGetJobs.js.map +1 -1
  98. package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.d.ts +2 -2
  99. package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.d.ts.map +1 -1
  100. package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.js +1 -1
  101. package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.js.map +1 -1
  102. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.d.ts +2 -2
  103. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.d.ts.map +1 -1
  104. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js +1 -1
  105. package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js.map +1 -1
  106. package/dist/routes/deployments/deployment/actions/deploymentStart.d.ts +2 -2
  107. package/dist/routes/deployments/deployment/actions/deploymentStart.d.ts.map +1 -1
  108. package/dist/routes/deployments/deployment/actions/deploymentStart.js +1 -1
  109. package/dist/routes/deployments/deployment/actions/deploymentStart.js.map +1 -1
  110. package/dist/routes/deployments/deployment/actions/deploymentStop.d.ts +2 -2
  111. package/dist/routes/deployments/deployment/actions/deploymentStop.d.ts.map +1 -1
  112. package/dist/routes/deployments/deployment/actions/deploymentStop.js +1 -1
  113. package/dist/routes/deployments/deployment/actions/deploymentStop.js.map +1 -1
  114. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.d.ts +3 -3
  115. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.d.ts.map +1 -1
  116. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js +3 -3
  117. package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js.map +1 -1
  118. package/dist/routes/deployments/deployment/actions/deploymentUpdateName.d.ts +10 -0
  119. package/dist/routes/deployments/deployment/actions/deploymentUpdateName.d.ts.map +1 -0
  120. package/dist/routes/deployments/deployment/actions/deploymentUpdateName.js +21 -0
  121. package/dist/routes/deployments/deployment/actions/deploymentUpdateName.js.map +1 -0
  122. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.d.ts +2 -2
  123. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.d.ts.map +1 -1
  124. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js +1 -1
  125. package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js.map +1 -1
  126. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.d.ts +3 -3
  127. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.d.ts.map +1 -1
  128. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js +3 -3
  129. package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js.map +1 -1
  130. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.d.ts +2 -2
  131. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.d.ts.map +1 -1
  132. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js +1 -1
  133. package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js.map +1 -1
  134. package/dist/routes/deployments/deployment/actions/index.d.ts +1 -0
  135. package/dist/routes/deployments/deployment/actions/index.d.ts.map +1 -1
  136. package/dist/routes/deployments/deployment/actions/index.js +1 -0
  137. package/dist/routes/deployments/deployment/actions/index.js.map +1 -1
  138. package/dist/routes/deployments/deployment/actions/vaultGetBalance.d.ts +2 -2
  139. package/dist/routes/deployments/deployment/actions/vaultGetBalance.d.ts.map +1 -1
  140. package/dist/routes/deployments/deployment/actions/vaultGetBalance.js.map +1 -1
  141. package/dist/routes/deployments/deployment/actions/vaultTopup.d.ts +2 -2
  142. package/dist/routes/deployments/deployment/actions/vaultTopup.d.ts.map +1 -1
  143. package/dist/routes/deployments/deployment/actions/vaultTopup.js.map +1 -1
  144. package/dist/routes/deployments/deployment/actions/vaultWithdraw.d.ts +3 -3
  145. package/dist/routes/deployments/deployment/actions/vaultWithdraw.d.ts.map +1 -1
  146. package/dist/routes/deployments/deployment/actions/vaultWithdraw.js +3 -3
  147. package/dist/routes/deployments/deployment/actions/vaultWithdraw.js.map +1 -1
  148. package/dist/routes/deployments/deployment/createDeployment.d.ts +4 -4
  149. package/dist/routes/deployments/deployment/createDeployment.d.ts.map +1 -1
  150. package/dist/routes/deployments/deployment/createDeployment.js +42 -29
  151. package/dist/routes/deployments/deployment/createDeployment.js.map +1 -1
  152. package/dist/routes/deployments/deployment/createVault.d.ts +3 -3
  153. package/dist/routes/deployments/deployment/createVault.d.ts.map +1 -1
  154. package/dist/routes/deployments/deployment/createVault.js +5 -5
  155. package/dist/routes/deployments/deployment/createVault.js.map +1 -1
  156. package/dist/routes/deployments/index.d.ts +3 -3
  157. package/dist/routes/deployments/index.d.ts.map +1 -1
  158. package/dist/routes/deployments/index.js +41 -18
  159. package/dist/routes/deployments/index.js.map +1 -1
  160. package/dist/routes/deployments/types.d.ts +17 -10
  161. package/dist/routes/deployments/types.d.ts.map +1 -1
  162. package/dist/routes/hosts/index.d.ts +7 -0
  163. package/dist/routes/hosts/index.d.ts.map +1 -0
  164. package/dist/routes/hosts/index.js +213 -0
  165. package/dist/routes/hosts/index.js.map +1 -0
  166. package/dist/routes/hosts/types.d.ts +40 -0
  167. package/dist/routes/hosts/types.d.ts.map +1 -0
  168. package/dist/routes/hosts/types.js +2 -0
  169. package/dist/routes/hosts/types.js.map +1 -0
  170. package/dist/routes/index.d.ts +7 -0
  171. package/dist/routes/index.d.ts.map +1 -1
  172. package/dist/routes/index.js +7 -0
  173. package/dist/routes/index.js.map +1 -1
  174. package/dist/routes/jobs/index.d.ts +6 -2
  175. package/dist/routes/jobs/index.d.ts.map +1 -1
  176. package/dist/routes/jobs/index.js +99 -21
  177. package/dist/routes/jobs/index.js.map +1 -1
  178. package/dist/routes/jobs/types.d.ts +40 -32
  179. package/dist/routes/jobs/types.d.ts.map +1 -1
  180. package/dist/routes/markets/index.d.ts +4 -2
  181. package/dist/routes/markets/index.d.ts.map +1 -1
  182. package/dist/routes/markets/index.js +58 -10
  183. package/dist/routes/markets/index.js.map +1 -1
  184. package/dist/routes/markets/types.d.ts +10 -3
  185. package/dist/routes/markets/types.d.ts.map +1 -1
  186. package/dist/routes/newsletter/index.d.ts +7 -0
  187. package/dist/routes/newsletter/index.d.ts.map +1 -0
  188. package/dist/routes/newsletter/index.js +17 -0
  189. package/dist/routes/newsletter/index.js.map +1 -0
  190. package/dist/routes/newsletter/types.d.ts +6 -0
  191. package/dist/routes/newsletter/types.d.ts.map +1 -0
  192. package/dist/routes/newsletter/types.js +2 -0
  193. package/dist/routes/newsletter/types.js.map +1 -0
  194. package/dist/routes/payments/index.d.ts +7 -0
  195. package/dist/routes/payments/index.d.ts.map +1 -0
  196. package/dist/routes/payments/index.js +58 -0
  197. package/dist/routes/payments/index.js.map +1 -0
  198. package/dist/routes/payments/types.d.ts +12 -0
  199. package/dist/routes/payments/types.d.ts.map +1 -0
  200. package/dist/routes/payments/types.js +2 -0
  201. package/dist/routes/payments/types.js.map +1 -0
  202. package/dist/routes/stats/index.d.ts +8 -0
  203. package/dist/routes/stats/index.d.ts.map +1 -0
  204. package/dist/routes/stats/index.js +41 -0
  205. package/dist/routes/stats/index.js.map +1 -0
  206. package/dist/routes/stats/types.d.ts +11 -0
  207. package/dist/routes/stats/types.d.ts.map +1 -0
  208. package/dist/routes/stats/types.js +2 -0
  209. package/dist/routes/stats/types.js.map +1 -0
  210. package/dist/routes/templates/index.d.ts +7 -0
  211. package/dist/routes/templates/index.d.ts.map +1 -0
  212. package/dist/routes/templates/index.js +48 -0
  213. package/dist/routes/templates/index.js.map +1 -0
  214. package/dist/routes/templates/types.d.ts +9 -0
  215. package/dist/routes/templates/types.d.ts.map +1 -0
  216. package/dist/routes/templates/types.js +2 -0
  217. package/dist/routes/templates/types.js.map +1 -0
  218. package/dist/routes/user/index.d.ts +7 -0
  219. package/dist/routes/user/index.d.ts.map +1 -0
  220. package/dist/routes/user/index.js +61 -0
  221. package/dist/routes/user/index.js.map +1 -0
  222. package/dist/routes/user/types.d.ts +20 -0
  223. package/dist/routes/user/types.d.ts.map +1 -0
  224. package/dist/routes/user/types.js +2 -0
  225. package/dist/routes/user/types.js.map +1 -0
  226. package/dist/types.d.ts +22 -6
  227. package/dist/types.d.ts.map +1 -1
  228. package/dist/types.js.map +1 -1
  229. package/dist/utils/idempotency.d.ts +2 -5
  230. package/dist/utils/idempotency.d.ts.map +1 -1
  231. package/dist/utils/idempotency.js +2 -5
  232. package/dist/utils/idempotency.js.map +1 -1
  233. package/package.json +18 -8
  234. package/dist/client/clientManagerClient.d.ts +0 -31
  235. package/dist/client/clientManagerClient.d.ts.map +0 -1
  236. package/dist/client/clientManagerClient.js.map +0 -1
  237. package/dist/client/clientManagerSchema.d.ts.map +0 -1
  238. package/dist/client/clientManagerSchema.js.map +0 -1
  239. package/dist/client/clientManagerSchema.lockstep.d.ts +0 -22
  240. package/dist/client/clientManagerSchema.lockstep.d.ts.map +0 -1
  241. package/dist/client/clientManagerSchema.lockstep.js +0 -2
  242. package/dist/client/clientManagerSchema.lockstep.js.map +0 -1
  243. package/dist/client/dashboardClient.d.ts +0 -10
  244. package/dist/client/dashboardClient.d.ts.map +0 -1
  245. package/dist/client/dashboardClient.js.map +0 -1
  246. package/dist/client/deployment-manager-schema.d.ts.map +0 -1
  247. package/dist/client/deployment-manager-schema.js.map +0 -1
  248. package/dist/client/jobsBatch.d.ts +0 -72
  249. package/dist/client/jobsBatch.d.ts.map +0 -1
  250. package/dist/client/jobsBatch.js +0 -10
  251. package/dist/client/jobsBatch.js.map +0 -1
  252. package/dist/client/schema.d.ts +0 -3167
  253. package/dist/client/schema.d.ts.map +0 -1
  254. package/dist/client/schema.js.map +0 -1
  255. /package/dist/client/{schema.js → blockchain-indexer/schema.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/payments/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAC1C,UAAU,CAAC,0BAA0B,CAAC,CAAC,aAAa,CAAC,CACtD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjC,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAC5C,UAAU,CAAC,4BAA4B,CAAC,CAAC,aAAa,CAAC,CACxD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEjC,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,mBAAmB,EAAE,CACnB,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/payments/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { BlockchainIndexerClient } from '../../client/blockchain-indexer/index.js';
2
+ import type { NosanaStatsApi } from './types.js';
3
+ export type { NosanaStatsApi } from './types.js';
4
+ interface StatsRouteClients {
5
+ blockchainIndexer: BlockchainIndexerClient;
6
+ }
7
+ export declare function createNosanaStatsApi(clients: StatsRouteClients): NosanaStatsApi;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/stats/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,uBAAuB,CAAC;CAC5C;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,GACzB,cAAc,CAgDhB"}
@@ -0,0 +1,41 @@
1
+ import { errorFormatter } from '../../utils/errorFormatter.js';
2
+ export function createNosanaStatsApi(clients) {
3
+ const { blockchainIndexer } = clients;
4
+ return {
5
+ get: async () => {
6
+ const { data, error } = await blockchainIndexer.GET('/stats/');
7
+ if (error || !data) {
8
+ throw errorFormatter('Error fetching stats', error);
9
+ }
10
+ return data;
11
+ },
12
+ getPrice: async (request) => {
13
+ const { data, error } = await blockchainIndexer.GET('/stats/price', {
14
+ params: { query: request ?? {} },
15
+ });
16
+ if (error || !data) {
17
+ throw errorFormatter('Error fetching NOS price', error);
18
+ }
19
+ return data;
20
+ },
21
+ getSpendingHistory: async (request) => {
22
+ const { data, error } = await blockchainIndexer.GET('/stats/spending-history', {
23
+ params: { query: request },
24
+ });
25
+ if (error || !data) {
26
+ throw errorFormatter('Error fetching spending history', error);
27
+ }
28
+ return data;
29
+ },
30
+ getEarningHistory: async (request) => {
31
+ const { data, error } = await blockchainIndexer.GET('/stats/earning-history', {
32
+ params: { query: request },
33
+ });
34
+ if (error || !data) {
35
+ throw errorFormatter('Error fetching earning history', error);
36
+ }
37
+ return data;
38
+ },
39
+ };
40
+ }
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/stats/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAc/D,MAAM,UAAU,oBAAoB,CAClC,OAA0B;IAE1B,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAEtC,OAAO;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAA0C,CAAC;QACpD,CAAC;QAED,QAAQ,EAAE,KAAK,EAAE,OAA2B,EAAE,EAAE;YAC9C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE;gBAClE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE;aACjC,CAAC,CAAC;YACH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kBAAkB,EAAE,KAAK,EAAE,OAA4B,EAAE,EAAE;YACzD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CACjD,yBAAyB,EACzB;gBACE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;aAC3B,CACF,CAAC;YACF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAA0C,CAAC;QACpD,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,OAA4B,EAAE,EAAE;YACxD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,iBAAiB,CAAC,GAAG,CACjD,wBAAwB,EACxB;gBACE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;aAC3B,CACF,CAAC;YACF,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,IAA0C,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { operations } from '../../client/blockchain-indexer/schema.js';
2
+ export type StatsPriceRequest = operations['getStatsPrice']['parameters']['query'];
3
+ export type StatsPriceResponse = operations['getStatsPrice']['responses']['200']['content']['application/json'];
4
+ export type StatsHistoryRequest = operations['getStatsSpending-history']['parameters']['query'];
5
+ export interface NosanaStatsApi {
6
+ get: () => Promise<Record<string, unknown>>;
7
+ getPrice: (request?: StatsPriceRequest) => Promise<StatsPriceResponse>;
8
+ getSpendingHistory: (request: StatsHistoryRequest) => Promise<Record<string, unknown>>;
9
+ getEarningHistory: (request: StatsHistoryRequest) => Promise<Record<string, unknown>>;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/stats/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAC3B,UAAU,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,kBAAkB,GAC5B,UAAU,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEjF,MAAM,MAAM,mBAAmB,GAC7B,UAAU,CAAC,0BAA0B,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAClB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC,iBAAiB,EAAE,CACjB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/stats/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { ClientManagerClient } from '../../client/client-manager/index.js';
2
+ import type { NosanaTemplatesApi } from './types.js';
3
+ export * from './types.js';
4
+ export declare function createNosanaTemplatesApi(clients: {
5
+ clientManager: ClientManagerClient;
6
+ }): NosanaTemplatesApi;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/templates/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAE/D,cAAc,YAAY,CAAC;AAE3B,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,aAAa,EAAE,mBAAmB,CAAC;CACpC,GAAG,kBAAkB,CAoDrB"}
@@ -0,0 +1,48 @@
1
+ import { errorFormatter } from '../../utils/errorFormatter.js';
2
+ export * from './types.js';
3
+ export function createNosanaTemplatesApi(clients) {
4
+ const { clientManager: client } = clients;
5
+ return {
6
+ async list() {
7
+ const { data, error } = await client.GET('/templates/', {});
8
+ if (error || !data) {
9
+ throw errorFormatter('Failed to list templates', error);
10
+ }
11
+ return data;
12
+ },
13
+ async getAllGrouped() {
14
+ const { data, error } = await client.GET('/templates/grouped', {});
15
+ if (error || !data) {
16
+ throw errorFormatter('Failed to get grouped templates', error);
17
+ }
18
+ return data;
19
+ },
20
+ async get(id) {
21
+ const { data, error } = await client.GET('/templates/{id}', {
22
+ params: {
23
+ path: { id },
24
+ },
25
+ });
26
+ if (error || !data) {
27
+ throw errorFormatter('Failed to get template', error);
28
+ }
29
+ return data;
30
+ },
31
+ async getVariant(id, variantId) {
32
+ const { data, error } = await client.GET('/templates/{id}/{variantId}', {
33
+ params: {
34
+ path: { id, variantId },
35
+ },
36
+ });
37
+ if (error || !data) {
38
+ throw errorFormatter('Failed to get template variant', error);
39
+ }
40
+ // The CM OpenAPI spec does not (yet) declare a response schema for
41
+ // `/templates/{id}/{variantId}`, so `data` comes through untyped. It
42
+ // returns the same shape as `GET /templates/{id}`; once the backend spec
43
+ // declares the response, this assertion can be removed.
44
+ return data;
45
+ },
46
+ };
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,cAAc,YAAY,CAAC;AAE3B,MAAM,UAAU,wBAAwB,CAAC,OAExC;IACC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAE5D,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YAEnE,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,EAAU;YAClB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBAC1D,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,EAAE,EAAE;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,SAAiB;YAC5C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE;gBACtE,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;iBACxB;aACF,CAAC,CAAC;YAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YAED,mEAAmE;YACnE,qEAAqE;YACrE,yEAAyE;YACzE,wDAAwD;YACxD,OAAO,IAAgB,CAAC;QAC1B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { operations } from '../../client/client-manager/schema.js';
2
+ export type Template = operations['getTemplatesById']['responses'][200]['content']['application/json'];
3
+ export interface NosanaTemplatesApi {
4
+ list: () => Promise<Template[]>;
5
+ getAllGrouped: () => Promise<Record<string, unknown>>;
6
+ get: (id: string) => Promise<Template>;
7
+ getVariant: (id: string, variantId: string) => Promise<Template>;
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAMxE,MAAM,MAAM,QAAQ,GAClB,UAAU,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAElF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/templates/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { ClientManagerClient } from '../../client/client-manager/index.js';
2
+ import type { NosanaUserApi } from './types.js';
3
+ export * from './types.js';
4
+ export declare function createNosanaUserApi(clients: {
5
+ clientManager: ClientManagerClient;
6
+ }): NosanaUserApi;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/user/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,YAAY,CAAC;AAEpB,cAAc,YAAY,CAAC;AAE3B,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,aAAa,EAAE,mBAAmB,CAAC;CACpC,GAAG,aAAa,CAmEhB"}
@@ -0,0 +1,61 @@
1
+ import { errorFormatter } from '../../utils/errorFormatter.js';
2
+ export * from './types.js';
3
+ export function createNosanaUserApi(clients) {
4
+ const { clientManager: client } = clients;
5
+ return {
6
+ apiKeys: {
7
+ async create(request) {
8
+ const { data, error } = await client.POST('/api-keys/', {
9
+ body: request,
10
+ });
11
+ if (error || !data) {
12
+ throw errorFormatter('Failed to create API key', error);
13
+ }
14
+ return data;
15
+ },
16
+ async list() {
17
+ const { data, error } = await client.GET('/api-keys/', {});
18
+ if (error || !data) {
19
+ throw errorFormatter('Failed to list API keys', error);
20
+ }
21
+ return data;
22
+ },
23
+ async get(id) {
24
+ const { data, error } = await client.GET('/api-keys/{id}', {
25
+ params: {
26
+ path: { id },
27
+ },
28
+ });
29
+ if (error || !data) {
30
+ throw errorFormatter('Failed to get API key', error);
31
+ }
32
+ return data;
33
+ },
34
+ async update(id, request) {
35
+ const { data, error } = await client.POST('/api-keys/{id}/update', {
36
+ params: {
37
+ path: { id },
38
+ },
39
+ body: request,
40
+ });
41
+ if (error || !data) {
42
+ throw errorFormatter('Failed to update API key', error);
43
+ }
44
+ return data;
45
+ },
46
+ async delete(id) {
47
+ const { data, error } = await client.POST('/api-keys/{id}/delete', {
48
+ params: {
49
+ path: { id },
50
+ },
51
+ body: undefined,
52
+ });
53
+ if (error || !data) {
54
+ throw errorFormatter('Failed to delete API key', error);
55
+ }
56
+ return data;
57
+ },
58
+ },
59
+ };
60
+ }
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAW/D,cAAc,YAAY,CAAC;AAE3B,MAAM,UAAU,mBAAmB,CAAC,OAEnC;IACC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,OAAO;QACL,OAAO,EAAE;YACP,KAAK,CAAC,MAAM,CAAC,OAA4B;gBACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;oBACtD,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;gBAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,IAAI;gBACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBAE3D,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,EAAU;gBAClB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;oBACzD,MAAM,EAAE;wBACN,IAAI,EAAE,EAAE,EAAE,EAAE;qBACb;iBACF,CAAC,CAAC;gBAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAA4B;gBACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACjE,MAAM,EAAE;wBACN,IAAI,EAAE,EAAE,EAAE,EAAE;qBACb;oBACD,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;gBAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,EAAU;gBACrB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACjE,MAAM,EAAE;wBACN,IAAI,EAAE,EAAE,EAAE,EAAE;qBACb;oBACD,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBAEH,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { operations, paths } from '../../client/client-manager/schema.js';
2
+ export type ApiKey = operations['getApi-keysById']['responses'][200]['content']['application/json'];
3
+ export type ApiKeyCreated = operations['postApi-keys']['responses'][200]['content']['application/json'];
4
+ export type CreateApiKeyRequest = paths['/api-keys/']['post']['requestBody']['content']['application/json'];
5
+ export type UpdateApiKeyRequest = paths['/api-keys/{id}/update']['post']['requestBody']['content']['application/json'];
6
+ export interface NosanaUserApi {
7
+ apiKeys: {
8
+ create: (request: CreateApiKeyRequest) => Promise<ApiKeyCreated>;
9
+ list: () => Promise<{
10
+ keys: ApiKey[];
11
+ total: number;
12
+ }>;
13
+ get: (id: string) => Promise<ApiKey>;
14
+ update: (id: string, request: UpdateApiKeyRequest) => Promise<ApiKey>;
15
+ delete: (id: string) => Promise<{
16
+ success: boolean;
17
+ }>;
18
+ };
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/user/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,MAAM,MAAM,GAChB,UAAU,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,aAAa,GACvB,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAE9E,MAAM,MAAM,mBAAmB,GAC7B,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAC7B,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvD,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACvD,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/routes/user/types.ts"],"names":[],"mappings":""}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- import { QueryClient } from './client/index.js';
1
+ import type { ClientManagerClient } from './client/client-manager/index.js';
2
+ import type { BlockchainIndexerClient } from './client/blockchain-indexer/index.js';
3
+ import type { HostManagerClient } from './client/host-manager/index.js';
4
+ import type { DeploymentManagerClient } from './client/deployment-manager/index.js';
2
5
  import { TopupVaultOptions } from './routes/deployments/types.js';
3
6
  export { NosanaNetwork } from '@nosana/types';
4
7
  export type { NosanaNetwork as NosanaNetworkType } from '@nosana/types';
@@ -27,19 +30,32 @@ export type SignerAuth = {
27
30
  solana: ExternalSolanaFunctions;
28
31
  };
29
32
  export type CreateNosanaApiOptions = Partial<{
30
- backend_url: string;
31
33
  client_manager_url: string;
34
+ host_manager_url: string;
35
+ blockchain_indexer_url: string;
36
+ deployment_manager_url: string;
32
37
  include_credentials: boolean;
33
38
  }>;
34
39
  export interface Config {
35
- backend_url: string;
36
40
  client_manager_url: string;
41
+ host_manager_url: string;
42
+ blockchain_indexer_url: string;
43
+ deployment_manager_url: string;
37
44
  nos_address: string;
38
45
  }
39
- export interface RouteOptions {
40
- client: QueryClient;
46
+ /**
47
+ * All available API clients, organized by service.
48
+ */
49
+ export interface NosanaClients {
50
+ clientManager: ClientManagerClient;
51
+ hostManager: HostManagerClient;
52
+ blockchainIndexer: BlockchainIndexerClient;
53
+ deploymentManager: DeploymentManagerClient;
54
+ }
55
+ export interface DeploymentRouteClients {
56
+ deploymentManager: DeploymentManagerClient;
41
57
  }
42
- export type RouteOptionsWithSigner = RouteOptions & {
58
+ export type DeploymentRouteClientsWithSigner = DeploymentRouteClients & {
43
59
  solana: ExternalSolanaFunctions;
44
60
  };
45
61
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,iEAAiE;IACjE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvE,0EAA0E;IAC1E,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F,oEAAoE;IACpE,wCAAwC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC,CAAA;AAEF,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAClD,MAAM,EAAE,uBAAuB,CAAA;CAChC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAA;AAE/B;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,iEAAiE;IACjE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvE,0EAA0E;IAC1E,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F,oEAAoE;IACpE,wCAAwC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC,CAAA;AAEF,MAAM,WAAW,MAAM;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,mBAAmB,CAAC;IACnC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,EAAE,uBAAuB,CAAC;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,MAAM,gCAAgC,GAAG,sBAAsB,GAAG;IACtE,MAAM,EAAE,uBAAuB,CAAC;CACjC,CAAA"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -6,11 +6,8 @@
6
6
  * fresh-key is the caller's policy. Removing or renaming a member is a breaking
7
7
  * change, so consumers branching on these get a compile signal if they drift.
8
8
  *
9
- * These constants are kept in lockstep with the client-manager OpenAPI spec by a
10
- * compile-time assertion in `../client/clientManagerSchema.lockstep.ts` (which
11
- * is intentionally *not* part of the public import graph, so the large generated
12
- * schema stays out of consumers' type graph). Regenerate the schema with
13
- * `pnpm generate:types:client-manager:dev`.
9
+ * These constants mirror the `IdempotencyCode` enum in the client-manager
10
+ * OpenAPI spec; keep them in sync when the spec changes.
14
11
  *
15
12
  * - `IN_PROGRESS` — a matching request is still in flight; retry the same key
16
13
  * later (honouring `retryAfter`).
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/utils/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
1
+ {"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/utils/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAErF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C"}
@@ -6,11 +6,8 @@
6
6
  * fresh-key is the caller's policy. Removing or renaming a member is a breaking
7
7
  * change, so consumers branching on these get a compile signal if they drift.
8
8
  *
9
- * These constants are kept in lockstep with the client-manager OpenAPI spec by a
10
- * compile-time assertion in `../client/clientManagerSchema.lockstep.ts` (which
11
- * is intentionally *not* part of the public import graph, so the large generated
12
- * schema stays out of consumers' type graph). Regenerate the schema with
13
- * `pnpm generate:types:client-manager:dev`.
9
+ * These constants mirror the `IdempotencyCode` enum in the client-manager
10
+ * OpenAPI spec; keep them in sync when the spec changes.
14
11
  *
15
12
  * - `IN_PROGRESS` — a matching request is still in flight; retry the same key
16
13
  * later (honouring `retryAfter`).
@@ -1 +1 @@
1
- {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/utils/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,OAAO,EAAE,yBAAyB;IAClC,gBAAgB,EAAE,kCAAkC;CAC5C,CAAC;AAIX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/utils/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,6BAA6B;IAC1C,OAAO,EAAE,yBAAyB;IAClC,gBAAgB,EAAE,kCAAkC;CAC5C,CAAC;AAIX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AACxC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nosana/api",
3
- "version": "2.6.1",
3
+ "version": "2.7.3",
4
4
  "description": "Nosana API module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,11 +21,21 @@
21
21
  "dev": "tsc --watch",
22
22
  "dev:with-deps": "pnpm --filter $npm_package_name... --parallel run dev",
23
23
  "clean": "rm -rf dist",
24
- "generate:types:dev": "openapi-typescript https://dashboard.k8s.dev.nos.ci/api/swagger/json -o src/client/schema.ts",
25
- "generate:types:prd": "openapi-typescript https://dashboard.k8s.prd.nos.ci/api/swagger/json -o src/client/schema.ts",
26
- "generate:types:local": "openapi-typescript http://localhost:3000/api/swagger/json -o src/client/schema.ts",
27
- "generate:types:client-manager:dev": "openapi-typescript https://client-manager.k8s.dev.nos.ci/swagger/json -o src/client/clientManagerSchema.ts",
28
- "generate:types:client-manager:prd": "openapi-typescript https://client-manager.k8s.prd.nos.ci/swagger/json -o src/client/clientManagerSchema.ts",
24
+ "generate:types:blockchain-indexer": "openapi-typescript ${BLOCKCHAIN_INDEXER_URL:-http://localhost:3003}/swagger/json -o src/client/blockchain-indexer/schema.ts",
25
+ "generate:types:deployment-manager": "openapi-typescript ${DEPLOYMENT_MANAGER_URL:-http://localhost:3001}/documentation/json -o src/client/deployment-manager/schema.ts",
26
+ "generate:types:host-manager": "openapi-typescript ${HOST_MANAGER_URL:-http://localhost:3004}/swagger/json -o src/client/host-manager/schema.ts",
27
+ "generate:types:client-manager": "openapi-typescript ${CLIENT_MANAGER_URL:-http://localhost:3002}/swagger/json -o src/client/client-manager/schema.ts",
28
+ "generate:types": "pnpm generate:types:blockchain-indexer && pnpm generate:types:deployment-manager && pnpm generate:types:host-manager && pnpm generate:types:client-manager",
29
+ "generate:types:blockchain-indexer:dev": "openapi-typescript https://blockchain-indexer.k8s.dev.nos.ci/swagger/json -o src/client/blockchain-indexer/schema.ts",
30
+ "generate:types:blockchain-indexer:prd": "openapi-typescript https://blockchain-indexer.k8s.prd.nos.ci/swagger/json -o src/client/blockchain-indexer/schema.ts",
31
+ "generate:types:deployment-manager:dev": "openapi-typescript https://deployment-manager.k8s.dev.nos.ci/documentation/json -o src/client/deployment-manager/schema.ts",
32
+ "generate:types:deployment-manager:prd": "openapi-typescript https://deployment-manager.k8s.prd.nos.ci/documentation/json -o src/client/deployment-manager/schema.ts",
33
+ "generate:types:host-manager:dev": "openapi-typescript https://host-manager.k8s.dev.nos.ci/swagger/json -o src/client/host-manager/schema.ts",
34
+ "generate:types:host-manager:prd": "openapi-typescript https://host-manager.k8s.prd.nos.ci/swagger/json -o src/client/host-manager/schema.ts",
35
+ "generate:types:client-manager:dev": "openapi-typescript https://client-manager.k8s.dev.nos.ci/swagger/json -o src/client/client-manager/schema.ts",
36
+ "generate:types:client-manager:prd": "openapi-typescript https://client-manager.k8s.prd.nos.ci/swagger/json -o src/client/client-manager/schema.ts",
37
+ "generate:types:dev": "pnpm generate:types:blockchain-indexer:dev && pnpm generate:types:deployment-manager:dev && pnpm generate:types:host-manager:dev && pnpm generate:types:client-manager:dev",
38
+ "generate:types:prd": "pnpm generate:types:blockchain-indexer:prd && pnpm generate:types:deployment-manager:prd && pnpm generate:types:host-manager:prd && pnpm generate:types:client-manager:prd",
29
39
  "test": "vitest run",
30
40
  "test:watch": "vitest",
31
41
  "test:coverage": "vitest run --coverage",
@@ -47,12 +57,12 @@
47
57
  "vitest": "^4.0.3"
48
58
  },
49
59
  "dependencies": {
50
- "@nosana/types": "2.3.1",
60
+ "@nosana/types": "2.7.3",
51
61
  "openapi-fetch": "^0.14.0"
52
62
  },
53
63
  "packageManager": "pnpm@10.28.1",
54
64
  "engines": {
55
65
  "node": ">=20.18.0"
56
66
  },
57
- "gitHead": "340fd0623ec070a67ffbebaa68f8a402ddeb6364"
67
+ "gitHead": "b64942401ceaa0d7031a56365b2ed00aa724b99a"
58
68
  }
@@ -1,31 +0,0 @@
1
- import { Client } from 'openapi-fetch';
2
- import type { NosanaNetwork, ApiKeyAuth, SignerAuth, CreateNosanaApiOptions } from '../types.js';
3
- export interface SignMessageExternalRequest {
4
- message: string;
5
- }
6
- export interface SignMessageExternalResponse {
7
- message: string;
8
- userAddress: string;
9
- signature: string;
10
- }
11
- export interface ClientManagerApi {
12
- '/auth/sign-message/external': {
13
- post: {
14
- requestBody: {
15
- content: {
16
- 'application/json': SignMessageExternalRequest;
17
- };
18
- };
19
- responses: {
20
- 200: {
21
- content: {
22
- 'application/json': SignMessageExternalResponse;
23
- };
24
- };
25
- };
26
- };
27
- };
28
- }
29
- export type ClientManagerClient = Client<ClientManagerApi>;
30
- export declare function createNosanaClientManagerApiClient(environment: NosanaNetwork, authParams: ApiKeyAuth | SignerAuth | undefined, options: CreateNosanaApiOptions | undefined): Client<ClientManagerApi, `${string}/${string}`>;
31
- //# sourceMappingURL=clientManagerClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientManagerClient.d.ts","sourceRoot":"","sources":["../../src/client/clientManagerClient.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AAItE,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B,EAAE;QAC7B,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,OAAO,EAAE;oBACP,kBAAkB,EAAE,0BAA0B,CAAC;iBAChD,CAAC;aACH,CAAC;YACF,SAAS,EAAE;gBACT,GAAG,EAAE;oBACH,OAAO,EAAE;wBACP,kBAAkB,EAAE,2BAA2B,CAAC;qBACjD,CAAC;iBACH,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE3D,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,aAAa,EAC1B,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,EAC/C,OAAO,EAAE,sBAAsB,GAAG,SAAS,mDA4B5C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientManagerClient.js","sourceRoot":"","sources":["../../src/client/clientManagerClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAyC,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyCrD,MAAM,UAAU,kCAAkC,CAChD,WAA0B,EAC1B,UAA+C,EAC/C,OAA2C;IAE3C,MAAM,OAAO,GACX,OAAO,EAAE,kBAAkB;QAC3B,aAAa,CAAC,WAAW,CAAC,CAAC,kBAAkB,CAAC;IAEhD,MAAM,cAAc,GAAe;QACjC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAmB;QAC5C,OAAO;QACP,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}