@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.
- package/README.md +128 -4
- package/dist/client/blockchain-indexer/index.d.ts +7 -0
- package/dist/client/blockchain-indexer/index.d.ts.map +1 -0
- package/dist/client/blockchain-indexer/index.js +7 -0
- package/dist/client/blockchain-indexer/index.js.map +1 -0
- package/dist/client/blockchain-indexer/schema.d.ts +774 -0
- package/dist/client/blockchain-indexer/schema.d.ts.map +1 -0
- package/dist/client/blockchain-indexer/schema.js.map +1 -0
- package/dist/client/client-manager/index.d.ts +6 -0
- package/dist/client/client-manager/index.d.ts.map +1 -0
- package/dist/client/{clientManagerClient.js → client-manager/index.js} +2 -2
- package/dist/client/client-manager/index.js.map +1 -0
- package/dist/client/{clientManagerSchema.d.ts → client-manager/schema.d.ts} +4 -1
- package/dist/client/client-manager/schema.d.ts.map +1 -0
- package/dist/client/{clientManagerSchema.js → client-manager/schema.js} +1 -1
- package/dist/client/client-manager/schema.js.map +1 -0
- package/dist/client/createClient.d.ts +8 -0
- package/dist/client/createClient.d.ts.map +1 -0
- package/dist/client/{dashboardClient.js → createClient.js} +8 -5
- package/dist/client/createClient.js.map +1 -0
- package/dist/client/deployment-manager/index.d.ts +6 -0
- package/dist/client/deployment-manager/index.d.ts.map +1 -0
- package/dist/client/deployment-manager/index.js +8 -0
- package/dist/client/deployment-manager/index.js.map +1 -0
- package/dist/client/{deployment-manager-schema.d.ts → deployment-manager/schema.d.ts} +400 -138
- package/dist/client/deployment-manager/schema.d.ts.map +1 -0
- package/dist/client/{deployment-manager-schema.js → deployment-manager/schema.js} +1 -1
- package/dist/client/deployment-manager/schema.js.map +1 -0
- package/dist/client/host-manager/index.d.ts +6 -0
- package/dist/client/host-manager/index.d.ts.map +1 -0
- package/dist/client/host-manager/index.js +7 -0
- package/dist/client/host-manager/index.js.map +1 -0
- package/dist/client/host-manager/schema.d.ts +9746 -0
- package/dist/client/host-manager/schema.d.ts.map +1 -0
- package/dist/client/host-manager/schema.js +6 -0
- package/dist/client/host-manager/schema.js.map +1 -0
- package/dist/client/index.d.ts +6 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +5 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/type.utils.d.ts +8 -5
- package/dist/client/type.utils.d.ts.map +1 -1
- package/dist/defaults/index.d.ts.map +1 -1
- package/dist/defaults/index.js +10 -4
- package/dist/defaults/index.js.map +1 -1
- package/dist/index.d.ts +31 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -10
- package/dist/index.js.map +1 -1
- package/dist/routes/auth/index.d.ts +1 -1
- package/dist/routes/auth/index.d.ts.map +1 -1
- package/dist/routes/auth/index.js +18 -0
- package/dist/routes/auth/index.js.map +1 -1
- package/dist/routes/auth/types.d.ts +5 -0
- package/dist/routes/auth/types.d.ts.map +1 -1
- package/dist/routes/benchmarks/index.d.ts +7 -0
- package/dist/routes/benchmarks/index.d.ts.map +1 -0
- package/dist/routes/benchmarks/index.js +116 -0
- package/dist/routes/benchmarks/index.js.map +1 -0
- package/dist/routes/benchmarks/types.d.ts +24 -0
- package/dist/routes/benchmarks/types.d.ts.map +1 -0
- package/dist/routes/benchmarks/types.js +2 -0
- package/dist/routes/benchmarks/types.js.map +1 -0
- package/dist/routes/credits/index.d.ts +5 -3
- package/dist/routes/credits/index.d.ts.map +1 -1
- package/dist/routes/credits/index.js +73 -4
- package/dist/routes/credits/index.js.map +1 -1
- package/dist/routes/credits/types.d.ts +13 -2
- package/dist/routes/credits/types.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentArchive.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentArchive.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentArchive.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentArchive.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.d.ts +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentCreateNewRevision.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentDelete.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentDelete.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentDelete.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentDelete.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGenerateAuthHeader.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetEvents.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGetEvents.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetEvents.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetEvents.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetJob.d.ts +3 -5
- package/dist/routes/deployments/deployment/actions/deploymentGetJob.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetJob.js +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGetJob.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetJobs.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGetJobs.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetJobs.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetJobs.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetRevisions.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetTasks.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentGetTasks.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentGetTasks.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStart.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentStart.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStart.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStart.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStop.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentStop.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStop.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentStop.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.d.ts +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentUpdateActiveRevision.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateName.d.ts +10 -0
- package/dist/routes/deployments/deployment/actions/deploymentUpdateName.d.ts.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentUpdateName.js +21 -0
- package/dist/routes/deployments/deployment/actions/deploymentUpdateName.js.map +1 -0
- package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateReplicaCount.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.d.ts +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js +3 -3
- package/dist/routes/deployments/deployment/actions/deploymentUpdateSchedule.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js +1 -1
- package/dist/routes/deployments/deployment/actions/deploymentUpdateTimeout.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/index.d.ts +1 -0
- package/dist/routes/deployments/deployment/actions/index.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/index.js +1 -0
- package/dist/routes/deployments/deployment/actions/index.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultGetBalance.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/vaultGetBalance.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultGetBalance.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultTopup.d.ts +2 -2
- package/dist/routes/deployments/deployment/actions/vaultTopup.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultTopup.js.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultWithdraw.d.ts +3 -3
- package/dist/routes/deployments/deployment/actions/vaultWithdraw.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/actions/vaultWithdraw.js +3 -3
- package/dist/routes/deployments/deployment/actions/vaultWithdraw.js.map +1 -1
- package/dist/routes/deployments/deployment/createDeployment.d.ts +4 -4
- package/dist/routes/deployments/deployment/createDeployment.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/createDeployment.js +42 -29
- package/dist/routes/deployments/deployment/createDeployment.js.map +1 -1
- package/dist/routes/deployments/deployment/createVault.d.ts +3 -3
- package/dist/routes/deployments/deployment/createVault.d.ts.map +1 -1
- package/dist/routes/deployments/deployment/createVault.js +5 -5
- package/dist/routes/deployments/deployment/createVault.js.map +1 -1
- package/dist/routes/deployments/index.d.ts +3 -3
- package/dist/routes/deployments/index.d.ts.map +1 -1
- package/dist/routes/deployments/index.js +41 -18
- package/dist/routes/deployments/index.js.map +1 -1
- package/dist/routes/deployments/types.d.ts +17 -10
- package/dist/routes/deployments/types.d.ts.map +1 -1
- package/dist/routes/hosts/index.d.ts +7 -0
- package/dist/routes/hosts/index.d.ts.map +1 -0
- package/dist/routes/hosts/index.js +213 -0
- package/dist/routes/hosts/index.js.map +1 -0
- package/dist/routes/hosts/types.d.ts +40 -0
- package/dist/routes/hosts/types.d.ts.map +1 -0
- package/dist/routes/hosts/types.js +2 -0
- package/dist/routes/hosts/types.js.map +1 -0
- package/dist/routes/index.d.ts +7 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +7 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/jobs/index.d.ts +6 -2
- package/dist/routes/jobs/index.d.ts.map +1 -1
- package/dist/routes/jobs/index.js +99 -21
- package/dist/routes/jobs/index.js.map +1 -1
- package/dist/routes/jobs/types.d.ts +40 -32
- package/dist/routes/jobs/types.d.ts.map +1 -1
- package/dist/routes/markets/index.d.ts +4 -2
- package/dist/routes/markets/index.d.ts.map +1 -1
- package/dist/routes/markets/index.js +58 -10
- package/dist/routes/markets/index.js.map +1 -1
- package/dist/routes/markets/types.d.ts +10 -3
- package/dist/routes/markets/types.d.ts.map +1 -1
- package/dist/routes/newsletter/index.d.ts +7 -0
- package/dist/routes/newsletter/index.d.ts.map +1 -0
- package/dist/routes/newsletter/index.js +17 -0
- package/dist/routes/newsletter/index.js.map +1 -0
- package/dist/routes/newsletter/types.d.ts +6 -0
- package/dist/routes/newsletter/types.d.ts.map +1 -0
- package/dist/routes/newsletter/types.js +2 -0
- package/dist/routes/newsletter/types.js.map +1 -0
- package/dist/routes/payments/index.d.ts +7 -0
- package/dist/routes/payments/index.d.ts.map +1 -0
- package/dist/routes/payments/index.js +58 -0
- package/dist/routes/payments/index.js.map +1 -0
- package/dist/routes/payments/types.d.ts +12 -0
- package/dist/routes/payments/types.d.ts.map +1 -0
- package/dist/routes/payments/types.js +2 -0
- package/dist/routes/payments/types.js.map +1 -0
- package/dist/routes/stats/index.d.ts +8 -0
- package/dist/routes/stats/index.d.ts.map +1 -0
- package/dist/routes/stats/index.js +41 -0
- package/dist/routes/stats/index.js.map +1 -0
- package/dist/routes/stats/types.d.ts +11 -0
- package/dist/routes/stats/types.d.ts.map +1 -0
- package/dist/routes/stats/types.js +2 -0
- package/dist/routes/stats/types.js.map +1 -0
- package/dist/routes/templates/index.d.ts +7 -0
- package/dist/routes/templates/index.d.ts.map +1 -0
- package/dist/routes/templates/index.js +48 -0
- package/dist/routes/templates/index.js.map +1 -0
- package/dist/routes/templates/types.d.ts +9 -0
- package/dist/routes/templates/types.d.ts.map +1 -0
- package/dist/routes/templates/types.js +2 -0
- package/dist/routes/templates/types.js.map +1 -0
- package/dist/routes/user/index.d.ts +7 -0
- package/dist/routes/user/index.d.ts.map +1 -0
- package/dist/routes/user/index.js +61 -0
- package/dist/routes/user/index.js.map +1 -0
- package/dist/routes/user/types.d.ts +20 -0
- package/dist/routes/user/types.d.ts.map +1 -0
- package/dist/routes/user/types.js +2 -0
- package/dist/routes/user/types.js.map +1 -0
- package/dist/types.d.ts +22 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/idempotency.d.ts +2 -5
- package/dist/utils/idempotency.d.ts.map +1 -1
- package/dist/utils/idempotency.js +2 -5
- package/dist/utils/idempotency.js.map +1 -1
- package/package.json +18 -8
- package/dist/client/clientManagerClient.d.ts +0 -31
- package/dist/client/clientManagerClient.d.ts.map +0 -1
- package/dist/client/clientManagerClient.js.map +0 -1
- package/dist/client/clientManagerSchema.d.ts.map +0 -1
- package/dist/client/clientManagerSchema.js.map +0 -1
- package/dist/client/clientManagerSchema.lockstep.d.ts +0 -22
- package/dist/client/clientManagerSchema.lockstep.d.ts.map +0 -1
- package/dist/client/clientManagerSchema.lockstep.js +0 -2
- package/dist/client/clientManagerSchema.lockstep.js.map +0 -1
- package/dist/client/dashboardClient.d.ts +0 -10
- package/dist/client/dashboardClient.d.ts.map +0 -1
- package/dist/client/dashboardClient.js.map +0 -1
- package/dist/client/deployment-manager-schema.d.ts.map +0 -1
- package/dist/client/deployment-manager-schema.js.map +0 -1
- package/dist/client/jobsBatch.d.ts +0 -72
- package/dist/client/jobsBatch.d.ts.map +0 -1
- package/dist/client/jobsBatch.js +0 -10
- package/dist/client/jobsBatch.js.map +0 -1
- package/dist/client/schema.d.ts +0 -3167
- package/dist/client/schema.d.ts.map +0 -1
- package/dist/client/schema.js.map +0 -1
- /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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 {
|
|
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
|
-
|
|
40
|
-
|
|
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
|
|
58
|
+
export type DeploymentRouteClientsWithSigner = DeploymentRouteClients & {
|
|
43
59
|
solana: ExternalSolanaFunctions;
|
|
44
60
|
};
|
|
45
61
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
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":"
|
|
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
|
|
10
|
-
*
|
|
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
|
|
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
|
|
10
|
-
*
|
|
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
|
|
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.
|
|
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:
|
|
25
|
-
"generate:types:
|
|
26
|
-
"generate:types:
|
|
27
|
-
"generate:types:client-manager
|
|
28
|
-
"generate:types
|
|
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
|
|
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": "
|
|
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"}
|