@kadi.build/deploy-ability 0.0.1

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 (198) hide show
  1. package/README.md +523 -0
  2. package/dist/constants.d.ts +82 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +82 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/errors/certificate-error.d.ts +95 -0
  7. package/dist/errors/certificate-error.d.ts.map +1 -0
  8. package/dist/errors/certificate-error.js +111 -0
  9. package/dist/errors/certificate-error.js.map +1 -0
  10. package/dist/errors/deployment-error.d.ts +122 -0
  11. package/dist/errors/deployment-error.d.ts.map +1 -0
  12. package/dist/errors/deployment-error.js +185 -0
  13. package/dist/errors/deployment-error.js.map +1 -0
  14. package/dist/errors/index.d.ts +13 -0
  15. package/dist/errors/index.d.ts.map +1 -0
  16. package/dist/errors/index.js +18 -0
  17. package/dist/errors/index.js.map +1 -0
  18. package/dist/errors/profile-error.d.ts +106 -0
  19. package/dist/errors/profile-error.d.ts.map +1 -0
  20. package/dist/errors/profile-error.js +127 -0
  21. package/dist/errors/profile-error.js.map +1 -0
  22. package/dist/errors/provider-error.d.ts +104 -0
  23. package/dist/errors/provider-error.d.ts.map +1 -0
  24. package/dist/errors/provider-error.js +120 -0
  25. package/dist/errors/provider-error.js.map +1 -0
  26. package/dist/errors/wallet-error.d.ts +131 -0
  27. package/dist/errors/wallet-error.d.ts.map +1 -0
  28. package/dist/errors/wallet-error.js +154 -0
  29. package/dist/errors/wallet-error.js.map +1 -0
  30. package/dist/index.d.ts +49 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +53 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/targets/akash/bid-selectors.d.ts +251 -0
  35. package/dist/targets/akash/bid-selectors.d.ts.map +1 -0
  36. package/dist/targets/akash/bid-selectors.js +322 -0
  37. package/dist/targets/akash/bid-selectors.js.map +1 -0
  38. package/dist/targets/akash/bid-types.d.ts +297 -0
  39. package/dist/targets/akash/bid-types.d.ts.map +1 -0
  40. package/dist/targets/akash/bid-types.js +89 -0
  41. package/dist/targets/akash/bid-types.js.map +1 -0
  42. package/dist/targets/akash/blockchain-client.d.ts +577 -0
  43. package/dist/targets/akash/blockchain-client.d.ts.map +1 -0
  44. package/dist/targets/akash/blockchain-client.js +803 -0
  45. package/dist/targets/akash/blockchain-client.js.map +1 -0
  46. package/dist/targets/akash/certificate-manager.d.ts +228 -0
  47. package/dist/targets/akash/certificate-manager.d.ts.map +1 -0
  48. package/dist/targets/akash/certificate-manager.js +395 -0
  49. package/dist/targets/akash/certificate-manager.js.map +1 -0
  50. package/dist/targets/akash/constants.d.ts +231 -0
  51. package/dist/targets/akash/constants.d.ts.map +1 -0
  52. package/dist/targets/akash/constants.js +225 -0
  53. package/dist/targets/akash/constants.js.map +1 -0
  54. package/dist/targets/akash/deployer.d.ts +136 -0
  55. package/dist/targets/akash/deployer.d.ts.map +1 -0
  56. package/dist/targets/akash/deployer.js +599 -0
  57. package/dist/targets/akash/deployer.js.map +1 -0
  58. package/dist/targets/akash/environment.d.ts +241 -0
  59. package/dist/targets/akash/environment.d.ts.map +1 -0
  60. package/dist/targets/akash/environment.js +245 -0
  61. package/dist/targets/akash/environment.js.map +1 -0
  62. package/dist/targets/akash/index.d.ts +1113 -0
  63. package/dist/targets/akash/index.d.ts.map +1 -0
  64. package/dist/targets/akash/index.js +909 -0
  65. package/dist/targets/akash/index.js.map +1 -0
  66. package/dist/targets/akash/lease-monitor.d.ts +51 -0
  67. package/dist/targets/akash/lease-monitor.d.ts.map +1 -0
  68. package/dist/targets/akash/lease-monitor.js +110 -0
  69. package/dist/targets/akash/lease-monitor.js.map +1 -0
  70. package/dist/targets/akash/logs.d.ts +71 -0
  71. package/dist/targets/akash/logs.d.ts.map +1 -0
  72. package/dist/targets/akash/logs.js +311 -0
  73. package/dist/targets/akash/logs.js.map +1 -0
  74. package/dist/targets/akash/logs.types.d.ts +102 -0
  75. package/dist/targets/akash/logs.types.d.ts.map +1 -0
  76. package/dist/targets/akash/logs.types.js +9 -0
  77. package/dist/targets/akash/logs.types.js.map +1 -0
  78. package/dist/targets/akash/pricing.d.ts +247 -0
  79. package/dist/targets/akash/pricing.d.ts.map +1 -0
  80. package/dist/targets/akash/pricing.js +246 -0
  81. package/dist/targets/akash/pricing.js.map +1 -0
  82. package/dist/targets/akash/provider-client.d.ts +114 -0
  83. package/dist/targets/akash/provider-client.d.ts.map +1 -0
  84. package/dist/targets/akash/provider-client.js +318 -0
  85. package/dist/targets/akash/provider-client.js.map +1 -0
  86. package/dist/targets/akash/provider-metadata.d.ts +228 -0
  87. package/dist/targets/akash/provider-metadata.d.ts.map +1 -0
  88. package/dist/targets/akash/provider-metadata.js +14 -0
  89. package/dist/targets/akash/provider-metadata.js.map +1 -0
  90. package/dist/targets/akash/provider-service.d.ts +133 -0
  91. package/dist/targets/akash/provider-service.d.ts.map +1 -0
  92. package/dist/targets/akash/provider-service.js +391 -0
  93. package/dist/targets/akash/provider-service.js.map +1 -0
  94. package/dist/targets/akash/query-client.d.ts +125 -0
  95. package/dist/targets/akash/query-client.d.ts.map +1 -0
  96. package/dist/targets/akash/query-client.js +332 -0
  97. package/dist/targets/akash/query-client.js.map +1 -0
  98. package/dist/targets/akash/sdl-generator.d.ts +31 -0
  99. package/dist/targets/akash/sdl-generator.d.ts.map +1 -0
  100. package/dist/targets/akash/sdl-generator.js +279 -0
  101. package/dist/targets/akash/sdl-generator.js.map +1 -0
  102. package/dist/targets/akash/types.d.ts +285 -0
  103. package/dist/targets/akash/types.d.ts.map +1 -0
  104. package/dist/targets/akash/types.js +54 -0
  105. package/dist/targets/akash/types.js.map +1 -0
  106. package/dist/targets/akash/wallet-manager.d.ts +526 -0
  107. package/dist/targets/akash/wallet-manager.d.ts.map +1 -0
  108. package/dist/targets/akash/wallet-manager.js +953 -0
  109. package/dist/targets/akash/wallet-manager.js.map +1 -0
  110. package/dist/targets/local/compose-generator.d.ts +244 -0
  111. package/dist/targets/local/compose-generator.d.ts.map +1 -0
  112. package/dist/targets/local/compose-generator.js +324 -0
  113. package/dist/targets/local/compose-generator.js.map +1 -0
  114. package/dist/targets/local/deployer.d.ts +82 -0
  115. package/dist/targets/local/deployer.d.ts.map +1 -0
  116. package/dist/targets/local/deployer.js +367 -0
  117. package/dist/targets/local/deployer.js.map +1 -0
  118. package/dist/targets/local/engine-manager.d.ts +155 -0
  119. package/dist/targets/local/engine-manager.d.ts.map +1 -0
  120. package/dist/targets/local/engine-manager.js +250 -0
  121. package/dist/targets/local/engine-manager.js.map +1 -0
  122. package/dist/targets/local/index.d.ts +40 -0
  123. package/dist/targets/local/index.d.ts.map +1 -0
  124. package/dist/targets/local/index.js +43 -0
  125. package/dist/targets/local/index.js.map +1 -0
  126. package/dist/targets/local/network-manager.d.ts +160 -0
  127. package/dist/targets/local/network-manager.d.ts.map +1 -0
  128. package/dist/targets/local/network-manager.js +337 -0
  129. package/dist/targets/local/network-manager.js.map +1 -0
  130. package/dist/targets/local/types.d.ts +327 -0
  131. package/dist/targets/local/types.d.ts.map +1 -0
  132. package/dist/targets/local/types.js +9 -0
  133. package/dist/targets/local/types.js.map +1 -0
  134. package/dist/types/common.d.ts +585 -0
  135. package/dist/types/common.d.ts.map +1 -0
  136. package/dist/types/common.js +13 -0
  137. package/dist/types/common.js.map +1 -0
  138. package/dist/types/index.d.ts +15 -0
  139. package/dist/types/index.d.ts.map +1 -0
  140. package/dist/types/index.js +12 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/options.d.ts +329 -0
  143. package/dist/types/options.d.ts.map +1 -0
  144. package/dist/types/options.js +10 -0
  145. package/dist/types/options.js.map +1 -0
  146. package/dist/types/profiles.d.ts +329 -0
  147. package/dist/types/profiles.d.ts.map +1 -0
  148. package/dist/types/profiles.js +27 -0
  149. package/dist/types/profiles.js.map +1 -0
  150. package/dist/types/results.d.ts +443 -0
  151. package/dist/types/results.d.ts.map +1 -0
  152. package/dist/types/results.js +64 -0
  153. package/dist/types/results.js.map +1 -0
  154. package/dist/types/validators.d.ts +118 -0
  155. package/dist/types/validators.d.ts.map +1 -0
  156. package/dist/types/validators.js +198 -0
  157. package/dist/types/validators.js.map +1 -0
  158. package/dist/utils/command-runner.d.ts +128 -0
  159. package/dist/utils/command-runner.d.ts.map +1 -0
  160. package/dist/utils/command-runner.js +210 -0
  161. package/dist/utils/command-runner.js.map +1 -0
  162. package/dist/utils/index.d.ts +10 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +10 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/logger.d.ts +68 -0
  167. package/dist/utils/logger.d.ts.map +1 -0
  168. package/dist/utils/logger.js +93 -0
  169. package/dist/utils/logger.js.map +1 -0
  170. package/dist/utils/profile-loader.d.ts +76 -0
  171. package/dist/utils/profile-loader.d.ts.map +1 -0
  172. package/dist/utils/profile-loader.js +194 -0
  173. package/dist/utils/profile-loader.js.map +1 -0
  174. package/dist/utils/registry/index.d.ts +27 -0
  175. package/dist/utils/registry/index.d.ts.map +1 -0
  176. package/dist/utils/registry/index.js +29 -0
  177. package/dist/utils/registry/index.js.map +1 -0
  178. package/dist/utils/registry/manager.d.ts +319 -0
  179. package/dist/utils/registry/manager.d.ts.map +1 -0
  180. package/dist/utils/registry/manager.js +671 -0
  181. package/dist/utils/registry/manager.js.map +1 -0
  182. package/dist/utils/registry/setup.d.ts +135 -0
  183. package/dist/utils/registry/setup.d.ts.map +1 -0
  184. package/dist/utils/registry/setup.js +207 -0
  185. package/dist/utils/registry/setup.js.map +1 -0
  186. package/dist/utils/registry/transformer.d.ts +92 -0
  187. package/dist/utils/registry/transformer.d.ts.map +1 -0
  188. package/dist/utils/registry/transformer.js +131 -0
  189. package/dist/utils/registry/transformer.js.map +1 -0
  190. package/dist/utils/registry/types.d.ts +241 -0
  191. package/dist/utils/registry/types.d.ts.map +1 -0
  192. package/dist/utils/registry/types.js +10 -0
  193. package/dist/utils/registry/types.js.map +1 -0
  194. package/docs/EXAMPLES.md +293 -0
  195. package/docs/PLACEMENT.md +433 -0
  196. package/docs/STORAGE.md +318 -0
  197. package/docs/building-provider-reliability-tracker.md +2581 -0
  198. package/package.json +109 -0
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Akash RPC Query Client
3
+ *
4
+ * Provides typed helper functions for querying Akash blockchain state via the
5
+ * gRPC query endpoints exposed by @akashnetwork/akash-api. All helpers return
6
+ * Result<T, DeploymentError> to encourage explicit error handling by callers.
7
+ *
8
+ * Responsibilities:
9
+ * 1. Fetch lease information (price, state, identifiers)
10
+ * 2. Fetch deployment group/resource information
11
+ * 3. Fetch provider metadata (host URI, attributes)
12
+ * 4. Optionally combine the above into a consolidated deployment overview
13
+ *
14
+ * Each function normalises protobuf responses into lightweight, serialisable
15
+ * TypeScript interfaces – ready for logging, display, or further processing.
16
+ *
17
+ * @module targets/akash/query-client
18
+ */
19
+ import type { Result } from '../../types/index.js';
20
+ import { DeploymentError } from '../../errors/index.js';
21
+ import type { WalletAddress, ProviderUri } from '../../types/common.js';
22
+ import { type AkashNetwork } from './environment.js';
23
+ /**
24
+ * Filters for lease queries
25
+ */
26
+ export interface LeaseFilters {
27
+ readonly owner: string;
28
+ readonly dseq: string | number;
29
+ readonly provider?: string;
30
+ readonly gseq?: number;
31
+ readonly oseq?: number;
32
+ readonly state?: string;
33
+ }
34
+ /**
35
+ * Normalised lease record returned from Akash
36
+ */
37
+ export interface LeaseDetails {
38
+ readonly owner: WalletAddress;
39
+ readonly dseq: string;
40
+ readonly gseq: number;
41
+ readonly oseq: number;
42
+ readonly provider: WalletAddress;
43
+ readonly state: string;
44
+ readonly price: {
45
+ readonly denom: string;
46
+ readonly amount: string;
47
+ };
48
+ readonly createdAt: string;
49
+ }
50
+ /**
51
+ * Normalised resource specification for a deployment group
52
+ */
53
+ export interface DeploymentGroupResource {
54
+ readonly resourceId: number;
55
+ readonly count: number;
56
+ readonly cpuUnits: string;
57
+ readonly memoryQuantity: string;
58
+ readonly storageQuantities: readonly string[];
59
+ }
60
+ /**
61
+ * Deployment group information containing aggregated resources
62
+ */
63
+ export interface DeploymentGroupDetails {
64
+ readonly name: string;
65
+ readonly resources: readonly DeploymentGroupResource[];
66
+ }
67
+ /**
68
+ * Deployment details combining high-level metadata and group specs
69
+ */
70
+ export interface DeploymentDetails {
71
+ readonly owner: WalletAddress;
72
+ readonly dseq: string;
73
+ readonly state: string;
74
+ readonly version: string;
75
+ readonly createdAt: string;
76
+ readonly groups: readonly DeploymentGroupDetails[];
77
+ }
78
+ /**
79
+ * Provider metadata returned from on-chain provider module
80
+ */
81
+ export interface ProviderMetadata {
82
+ readonly owner: WalletAddress;
83
+ readonly hostUri?: ProviderUri;
84
+ readonly attributes: readonly ProviderAttribute[];
85
+ }
86
+ /**
87
+ * Provider attribute key/value pair
88
+ */
89
+ export interface ProviderAttribute {
90
+ readonly key: string;
91
+ readonly value: string;
92
+ }
93
+ /**
94
+ * Consolidated deployment overview combining lease, deployment and provider data
95
+ */
96
+ export interface DeploymentOverview {
97
+ readonly lease: LeaseDetails;
98
+ readonly deployment: DeploymentDetails;
99
+ readonly provider?: ProviderMetadata;
100
+ }
101
+ /**
102
+ * Fetches leases matching the provided filters.
103
+ */
104
+ export declare function getLeaseRecords(network: AkashNetwork, filters: LeaseFilters): Promise<Result<readonly LeaseDetails[], DeploymentError>>;
105
+ /**
106
+ * Fetches a single lease by exact identifier.
107
+ *
108
+ * Accepts either a full LeaseDetails object or a minimal identifier with just
109
+ * the required fields (owner, provider, dseq, gseq, oseq).
110
+ */
111
+ export declare function getLeaseById(network: AkashNetwork, lease: LeaseDetails): Promise<Result<LeaseDetails, DeploymentError>>;
112
+ export declare function getLeaseById(network: AkashNetwork, lease: Pick<LeaseDetails, 'owner' | 'provider' | 'dseq' | 'gseq' | 'oseq'>): Promise<Result<LeaseDetails, DeploymentError>>;
113
+ /**
114
+ * Fetches deployment metadata and group resource information.
115
+ */
116
+ export declare function getDeploymentDetails(network: AkashNetwork, owner: string, dseq: string | number): Promise<Result<DeploymentDetails, DeploymentError>>;
117
+ /**
118
+ * Fetches provider metadata (host URI and attributes).
119
+ */
120
+ export declare function getProviderMetadata(network: AkashNetwork, providerAddress: string): Promise<Result<ProviderMetadata | undefined, DeploymentError>>;
121
+ /**
122
+ * Aggregates lease, deployment, and provider information into one object.
123
+ */
124
+ export declare function getDeploymentOverview(network: AkashNetwork, lease: LeaseDetails): Promise<Result<DeploymentOverview, DeploymentError>>;
125
+ //# sourceMappingURL=query-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-client.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/query-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Akash RPC Query Client
3
+ *
4
+ * Provides typed helper functions for querying Akash blockchain state via the
5
+ * gRPC query endpoints exposed by @akashnetwork/akash-api. All helpers return
6
+ * Result<T, DeploymentError> to encourage explicit error handling by callers.
7
+ *
8
+ * Responsibilities:
9
+ * 1. Fetch lease information (price, state, identifiers)
10
+ * 2. Fetch deployment group/resource information
11
+ * 3. Fetch provider metadata (host URI, attributes)
12
+ * 4. Optionally combine the above into a consolidated deployment overview
13
+ *
14
+ * Each function normalises protobuf responses into lightweight, serialisable
15
+ * TypeScript interfaces – ready for logging, display, or further processing.
16
+ *
17
+ * @module targets/akash/query-client
18
+ */
19
+ import Long from 'long';
20
+ import { URL } from 'node:url';
21
+ import { getRpc } from '@akashnetwork/akashjs/build/rpc/index.js';
22
+ import { QueryClientImpl as MarketQueryClient, QueryLeasesRequest, QueryLeaseRequest, } from '@akashnetwork/akash-api/akash/market/v1beta4';
23
+ import { QueryClientImpl as DeploymentQueryClient, QueryDeploymentRequest, } from '@akashnetwork/akash-api/akash/deployment/v1beta3';
24
+ import { QueryClientImpl as ProviderQueryClient, QueryProviderRequest, } from '@akashnetwork/akash-api/akash/provider/v1beta3';
25
+ import { success, failure } from '../../types/index.js';
26
+ import { DeploymentError } from '../../errors/index.js';
27
+ import { getNetworkConfig, } from './environment.js';
28
+ /** Text decoder for protobuf byte fields */
29
+ const DECODER = new TextDecoder();
30
+ /**
31
+ * Creates a query client for the Akash market module
32
+ */
33
+ async function createMarketClient(network) {
34
+ const { rpc } = getNetworkConfig(network);
35
+ return new MarketQueryClient(await getRpc(rpc));
36
+ }
37
+ /**
38
+ * Creates a query client for the Akash deployment module
39
+ */
40
+ async function createDeploymentClient(network) {
41
+ const { rpc } = getNetworkConfig(network);
42
+ return new DeploymentQueryClient(await getRpc(rpc));
43
+ }
44
+ /**
45
+ * Creates a query client for the Akash provider module
46
+ */
47
+ async function createProviderClient(network) {
48
+ const { rpc } = getNetworkConfig(network);
49
+ return new ProviderQueryClient(await getRpc(rpc));
50
+ }
51
+ /**
52
+ * Fetches leases matching the provided filters.
53
+ */
54
+ export async function getLeaseRecords(network, filters) {
55
+ try {
56
+ const client = await createMarketClient(network);
57
+ const leaseFilters = {};
58
+ if (filters.owner)
59
+ leaseFilters.owner = filters.owner;
60
+ if (filters.dseq !== undefined) {
61
+ leaseFilters.dseq = Long.fromString(String(filters.dseq));
62
+ }
63
+ if (filters.provider)
64
+ leaseFilters.provider = filters.provider;
65
+ if (typeof filters.gseq === 'number')
66
+ leaseFilters.gseq = filters.gseq;
67
+ if (typeof filters.oseq === 'number')
68
+ leaseFilters.oseq = filters.oseq;
69
+ if (filters.state)
70
+ leaseFilters.state = filters.state;
71
+ const request = QueryLeasesRequest.fromPartial({ filters: leaseFilters });
72
+ const response = await client.Leases(request);
73
+ const leases = [];
74
+ for (const entry of response.leases ?? []) {
75
+ const details = mapLease(entry);
76
+ if (details) {
77
+ leases.push(details);
78
+ }
79
+ }
80
+ return success(Object.freeze(leases));
81
+ }
82
+ catch (error) {
83
+ return failure(createRpcError('Failed to query leases', network, error));
84
+ }
85
+ }
86
+ export async function getLeaseById(network, lease) {
87
+ try {
88
+ const client = await createMarketClient(network);
89
+ const request = QueryLeaseRequest.fromPartial({
90
+ id: {
91
+ owner: lease.owner,
92
+ provider: lease.provider,
93
+ dseq: Long.fromString(String(lease.dseq)),
94
+ gseq: lease.gseq,
95
+ oseq: lease.oseq,
96
+ },
97
+ });
98
+ const response = await client.Lease(request);
99
+ const details = mapLease(response);
100
+ if (!details) {
101
+ return failure(new DeploymentError('Lease not found', 'LEASE_NOT_FOUND', { network, lease }));
102
+ }
103
+ return success(details);
104
+ }
105
+ catch (error) {
106
+ return failure(createRpcError('Failed to query lease', network, error));
107
+ }
108
+ }
109
+ /**
110
+ * Fetches deployment metadata and group resource information.
111
+ */
112
+ export async function getDeploymentDetails(network, owner, dseq) {
113
+ try {
114
+ const client = await createDeploymentClient(network);
115
+ const request = QueryDeploymentRequest.fromPartial({
116
+ id: {
117
+ owner,
118
+ dseq: Long.fromString(String(dseq)),
119
+ },
120
+ });
121
+ const response = await client.Deployment(request);
122
+ if (!response.deployment) {
123
+ return failure(new DeploymentError('Deployment not found', 'DEPLOYMENT_NOT_FOUND', { network, owner, dseq }));
124
+ }
125
+ const details = mapDeployment(response);
126
+ return success(details);
127
+ }
128
+ catch (error) {
129
+ return failure(createRpcError('Failed to query deployment', network, error));
130
+ }
131
+ }
132
+ /**
133
+ * Fetches provider metadata (host URI and attributes).
134
+ */
135
+ export async function getProviderMetadata(network, providerAddress) {
136
+ try {
137
+ const client = await createProviderClient(network);
138
+ const request = QueryProviderRequest.fromPartial({ owner: providerAddress });
139
+ const response = await client.Provider(request);
140
+ if (!response.provider) {
141
+ return success(undefined);
142
+ }
143
+ return success(mapProvider(response.provider));
144
+ }
145
+ catch (error) {
146
+ return failure(createRpcError('Failed to query provider', network, error));
147
+ }
148
+ }
149
+ /**
150
+ * Aggregates lease, deployment, and provider information into one object.
151
+ */
152
+ export async function getDeploymentOverview(network, lease) {
153
+ const [deploymentResult, providerResult] = await Promise.all([
154
+ getDeploymentDetails(network, lease.owner, lease.dseq),
155
+ getProviderMetadata(network, lease.provider),
156
+ ]);
157
+ if (!deploymentResult.success) {
158
+ return deploymentResult;
159
+ }
160
+ if (!providerResult.success) {
161
+ return providerResult;
162
+ }
163
+ return success(Object.freeze({
164
+ lease,
165
+ deployment: deploymentResult.data,
166
+ provider: providerResult.data,
167
+ }));
168
+ }
169
+ /**
170
+ * Maps a QueryLeaseResponse into a LeaseDetails structure.
171
+ */
172
+ function mapLease(response) {
173
+ // Early return if response or lease is missing
174
+ if (!response?.lease) {
175
+ return null;
176
+ }
177
+ const lease = response.lease;
178
+ const id = lease.leaseId;
179
+ // Additional check: lease ID must exist
180
+ if (!id) {
181
+ return null;
182
+ }
183
+ return {
184
+ owner: id.owner,
185
+ provider: id.provider,
186
+ dseq: longToString(id.dseq),
187
+ gseq: id.gseq,
188
+ oseq: id.oseq,
189
+ state: mapLeaseState(lease.state),
190
+ price: {
191
+ denom: lease.price?.denom ?? 'uakt',
192
+ amount: lease.price?.amount ?? '0',
193
+ },
194
+ createdAt: longToString(lease.createdAt ?? Long.ZERO),
195
+ };
196
+ }
197
+ /**
198
+ * Maps deployment response into DeploymentDetails.
199
+ */
200
+ function mapDeployment(response) {
201
+ const deployment = response.deployment;
202
+ const owner = deployment.deploymentId?.owner ?? '';
203
+ const dseq = deployment.deploymentId?.dseq ?? '';
204
+ // Map deployment state enum to string
205
+ const state = mapDeploymentState(deployment.state);
206
+ const version = toHexString(deployment.version);
207
+ // Long types from protobuf need explicit conversion
208
+ const createdAt = longToString(deployment.createdAt ?? Long.ZERO);
209
+ const groups = (response.groups ?? []).map((group) => {
210
+ const groupSpec = group.groupSpec;
211
+ const resources = (groupSpec?.resources ?? []).map((item) => {
212
+ const resource = item.resource;
213
+ return {
214
+ resourceId: resource?.id ?? 0,
215
+ count: item.count ?? 0,
216
+ cpuUnits: decodeResourceValue(resource?.cpu?.units?.val),
217
+ memoryQuantity: decodeResourceValue(resource?.memory?.quantity?.val),
218
+ storageQuantities: (resource?.storage ?? []).map((storage) => decodeResourceValue(storage.quantity?.val)),
219
+ };
220
+ });
221
+ return {
222
+ name: groupSpec?.name ?? 'group',
223
+ resources: Object.freeze(resources),
224
+ };
225
+ });
226
+ return {
227
+ owner: owner,
228
+ dseq: String(dseq),
229
+ state,
230
+ version,
231
+ createdAt,
232
+ groups: Object.freeze(groups),
233
+ };
234
+ }
235
+ /**
236
+ * Maps provider metadata into a typed structure.
237
+ */
238
+ function mapProvider(provider) {
239
+ return {
240
+ owner: provider.owner,
241
+ hostUri: normaliseProviderUri(provider.hostUri),
242
+ attributes: Object.freeze((provider.attributes ?? []).map((attr) => ({
243
+ key: attr.key ?? '',
244
+ value: attr.value ?? '',
245
+ }))),
246
+ };
247
+ }
248
+ /**
249
+ * Converts protobuf byte arrays into UTF-8 strings. Returns empty string if missing.
250
+ */
251
+ function decodeResourceValue(value) {
252
+ if (!value || value.length === 0) {
253
+ return '0';
254
+ }
255
+ return DECODER.decode(value);
256
+ }
257
+ /**
258
+ * Converts binary version hash to hexadecimal string.
259
+ */
260
+ function toHexString(value) {
261
+ if (!value || value.length === 0) {
262
+ return '';
263
+ }
264
+ return Buffer.from(value).toString('hex');
265
+ }
266
+ /**
267
+ * Converts Long/number/string values to string representation.
268
+ */
269
+ function longToString(value) {
270
+ if (Long.isLong(value)) {
271
+ return value.toString();
272
+ }
273
+ return String(value);
274
+ }
275
+ function mapLeaseState(state) {
276
+ if (typeof state === 'string') {
277
+ return state;
278
+ }
279
+ switch (state) {
280
+ case 1:
281
+ return 'active';
282
+ case 2:
283
+ return 'insufficient_funds';
284
+ case 3:
285
+ return 'closed';
286
+ default:
287
+ return 'unknown';
288
+ }
289
+ }
290
+ /**
291
+ * Maps deployment state enum to human-readable string
292
+ */
293
+ function mapDeploymentState(state) {
294
+ if (typeof state === 'string') {
295
+ return state;
296
+ }
297
+ switch (state) {
298
+ case 1:
299
+ return 'active';
300
+ case 2:
301
+ return 'closed';
302
+ default:
303
+ return 'unknown';
304
+ }
305
+ }
306
+ /**
307
+ * Normalises provider URI strings, returning undefined if invalid.
308
+ */
309
+ function normaliseProviderUri(uri) {
310
+ if (!uri) {
311
+ return undefined;
312
+ }
313
+ try {
314
+ const parsed = new URL(uri);
315
+ if (parsed.protocol !== 'https:') {
316
+ return undefined;
317
+ }
318
+ parsed.pathname = parsed.pathname.replace(/\/$/, '');
319
+ return parsed.toString();
320
+ }
321
+ catch {
322
+ return undefined;
323
+ }
324
+ }
325
+ /**
326
+ * Wraps low-level RPC errors into DeploymentError instances for consistency.
327
+ */
328
+ function createRpcError(message, network, error) {
329
+ const description = error instanceof Error ? error.message : String(error);
330
+ return new DeploymentError(message, 'RPC_ERROR', { network, error: description }, true);
331
+ }
332
+ //# sourceMappingURL=query-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-client.js","sourceRoot":"","sources":["../../../src/targets/akash/query-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Akash SDL Generator
3
+ *
4
+ * Transforms a loaded Akash deployment profile into an SDL (Stack Definition
5
+ * Language) document that can be submitted to the Akash blockchain and
6
+ * providers. The generator mirrors the logic from the legacy kadi-deploy
7
+ * implementation, but is rewritten for clarity and type safety.
8
+ *
9
+ * @module targets/akash/sdl-generator
10
+ */
11
+ import { SDL } from '@akashnetwork/akashjs/build/sdl/index.js';
12
+ import type { LoadedProfile, AkashDeploymentProfile } from '../../types/index.js';
13
+ /**
14
+ * Generation options allowing the caller to override resource/pricing defaults
15
+ */
16
+ export interface AkashSdlGenerationOptions {
17
+ readonly defaultCpuUnits?: number;
18
+ readonly defaultMemorySize?: string;
19
+ readonly defaultStorageSize?: string;
20
+ readonly defaultPricingDenom?: string;
21
+ readonly defaultPricingAmount?: number;
22
+ }
23
+ /**
24
+ * Generates Akash SDL YAML string from a loaded deployment profile.
25
+ */
26
+ export declare function generateAkashSdl(loadedProfile: LoadedProfile<AkashDeploymentProfile>, options?: AkashSdlGenerationOptions): string;
27
+ /**
28
+ * Generates SDL string and returns an instantiated SDL helper from akashjs.
29
+ */
30
+ export declare function createSdlObject(loadedProfile: LoadedProfile<AkashDeploymentProfile>, options?: AkashSdlGenerationOptions): SDL;
31
+ //# sourceMappingURL=sdl-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdl-generator.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/sdl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,0CAA0C,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAQlF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,aAAa,CAAC,sBAAsB,CAAC,EACpD,OAAO,GAAE,yBAA8B,GACtC,MAAM,CAmGR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,CAAC,sBAAsB,CAAC,EACpD,OAAO,CAAC,EAAE,yBAAyB,GAClC,GAAG,CAGL"}