@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,154 @@
1
+ /**
2
+ * Wallet-related error classes
3
+ *
4
+ * Errors specific to wallet connection, signing, and balance operations
5
+ *
6
+ * @module errors/wallet-error
7
+ */
8
+ import { DeploymentError } from './deployment-error.js';
9
+ /**
10
+ * Wallet error codes
11
+ */
12
+ export const WalletErrorCodes = {
13
+ /** Wallet extension not found (e.g., Keplr not installed) */
14
+ WALLET_NOT_FOUND: 'WALLET_NOT_FOUND',
15
+ /** User rejected wallet connection */
16
+ CONNECTION_REJECTED: 'CONNECTION_REJECTED',
17
+ /** Wallet is locked */
18
+ WALLET_LOCKED: 'WALLET_LOCKED',
19
+ /** Insufficient funds for transaction */
20
+ INSUFFICIENT_FUNDS: 'INSUFFICIENT_FUNDS',
21
+ /** Transaction signing failed */
22
+ SIGNING_FAILED: 'SIGNING_FAILED',
23
+ /** WalletConnect initialization failed */
24
+ WALLETCONNECT_INIT_FAILED: 'WALLETCONNECT_INIT_FAILED',
25
+ /** QR code modal was closed */
26
+ QR_MODAL_CLOSED: 'QR_MODAL_CLOSED',
27
+ /** Network mismatch (wallet on wrong network) */
28
+ NETWORK_MISMATCH: 'NETWORK_MISMATCH',
29
+ /** Account not found */
30
+ ACCOUNT_NOT_FOUND: 'ACCOUNT_NOT_FOUND',
31
+ /** WalletConnect project ID missing or invalid */
32
+ MISSING_PROJECT_ID: 'MISSING_PROJECT_ID',
33
+ /** WalletConnect client initialization failed */
34
+ INIT_FAILED: 'INIT_FAILED',
35
+ /** Failed to generate connection URI */
36
+ URI_GENERATION_FAILED: 'URI_GENERATION_FAILED',
37
+ /** WalletConnect connection failed */
38
+ CONNECTION_FAILED: 'CONNECTION_FAILED',
39
+ /** No accounts in WalletConnect session */
40
+ NO_ACCOUNTS: 'NO_ACCOUNTS',
41
+ /** Connection approval timed out */
42
+ APPROVAL_TIMEOUT: 'APPROVAL_TIMEOUT',
43
+ /** User rejected connection approval */
44
+ APPROVAL_REJECTED: 'APPROVAL_REJECTED',
45
+ /** Approval process failed */
46
+ APPROVAL_FAILED: 'APPROVAL_FAILED',
47
+ /** No accounts available from signer */
48
+ NO_SIGNER_ACCOUNTS: 'NO_SIGNER_ACCOUNTS',
49
+ /** Failed to create wallet context */
50
+ CONTEXT_CREATION_FAILED: 'CONTEXT_CREATION_FAILED',
51
+ /** Failed to disconnect wallet */
52
+ DISCONNECT_FAILED: 'DISCONNECT_FAILED',
53
+ /** Feature not yet implemented */
54
+ NOT_IMPLEMENTED: 'NOT_IMPLEMENTED',
55
+ /** Generic wallet error */
56
+ WALLET_ERROR: 'WALLET_ERROR',
57
+ };
58
+ /**
59
+ * Wallet connection or operation error
60
+ *
61
+ * Thrown when wallet-related operations fail, including:
62
+ * - Wallet not found/installed
63
+ * - Connection rejected by user
64
+ * - Signing failures
65
+ * - Insufficient balance
66
+ *
67
+ * @example
68
+ * throw new WalletError(
69
+ * 'Keplr wallet not found',
70
+ * WalletErrorCodes.WALLET_NOT_FOUND,
71
+ * {},
72
+ * false,
73
+ * 'Please install the Keplr browser extension from https://keplr.app'
74
+ * );
75
+ */
76
+ export class WalletError extends DeploymentError {
77
+ constructor(message, code = WalletErrorCodes.WALLET_ERROR, context = {}, recoverable = false, suggestion, severity = 'error', cause) {
78
+ super(message, code, context, recoverable, suggestion, severity, cause);
79
+ // Maintain proper prototype chain
80
+ Object.setPrototypeOf(this, WalletError.prototype);
81
+ this.name = 'WalletError';
82
+ }
83
+ }
84
+ /**
85
+ * Create a wallet not found error
86
+ *
87
+ * @param walletType - Type of wallet that wasn't found
88
+ * @returns WalletError instance
89
+ */
90
+ export function walletNotFoundError(walletType) {
91
+ const suggestions = {
92
+ keplr: 'Please install the Keplr browser extension from https://keplr.app',
93
+ walletconnect: 'Please provide a valid WalletConnect project ID or use Keplr instead',
94
+ };
95
+ return new WalletError(`${walletType === 'keplr' ? 'Keplr' : 'WalletConnect'} wallet not found`, WalletErrorCodes.WALLET_NOT_FOUND, { walletType }, false, suggestions[walletType], 'error');
96
+ }
97
+ /**
98
+ * Create a connection rejected error
99
+ *
100
+ * @returns WalletError instance
101
+ */
102
+ export function connectionRejectedError() {
103
+ return new WalletError('Wallet connection was rejected by user', WalletErrorCodes.CONNECTION_REJECTED, {}, true, 'Please approve the connection request in your wallet', 'warning');
104
+ }
105
+ /**
106
+ * Create an insufficient funds error
107
+ *
108
+ * @param required - Amount required
109
+ * @param available - Amount available
110
+ * @param denom - Token denomination
111
+ * @returns WalletError instance
112
+ */
113
+ export function insufficientFundsError(required, available, denom = 'uakt') {
114
+ const shortfall = required - available;
115
+ return new WalletError(`Insufficient funds: need ${required} ${denom}, have ${available} ${denom}`, WalletErrorCodes.INSUFFICIENT_FUNDS, { required, available, shortfall, denom }, false, `Please add at least ${shortfall} ${denom} to your wallet`, 'error');
116
+ }
117
+ /**
118
+ * Create a wallet locked error
119
+ *
120
+ * @returns WalletError instance
121
+ */
122
+ export function walletLockedError() {
123
+ return new WalletError('Wallet is locked', WalletErrorCodes.WALLET_LOCKED, {}, true, 'Please unlock your wallet and try again', 'warning');
124
+ }
125
+ /**
126
+ * Create a signing failed error
127
+ *
128
+ * @param operation - The operation that failed
129
+ * @param cause - Original error
130
+ * @returns WalletError instance
131
+ */
132
+ export function signingFailedError(operation, cause) {
133
+ return new WalletError(`Failed to sign ${operation}`, WalletErrorCodes.SIGNING_FAILED, { operation }, true, 'Please try the operation again. If the problem persists, check your wallet connection.', 'error', cause);
134
+ }
135
+ /**
136
+ * Create a network mismatch error
137
+ *
138
+ * @param expected - Expected network
139
+ * @param actual - Actual network
140
+ * @returns WalletError instance
141
+ */
142
+ export function networkMismatchError(expected, actual) {
143
+ return new WalletError(`Network mismatch: expected ${expected}, wallet is on ${actual}`, WalletErrorCodes.NETWORK_MISMATCH, { expected, actual }, true, `Please switch your wallet to the ${expected} network`, 'error');
144
+ }
145
+ /**
146
+ * Type guard to check if an error is a WalletError
147
+ *
148
+ * @param error - The error to check
149
+ * @returns True if error is a WalletError
150
+ */
151
+ export function isWalletError(error) {
152
+ return error instanceof WalletError;
153
+ }
154
+ //# sourceMappingURL=wallet-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-error.js","sourceRoot":"","sources":["../../src/errors/wallet-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAyC,MAAM,uBAAuB,CAAC;AAE/F;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,6DAA6D;IAC7D,gBAAgB,EAAE,kBAAkB;IAEpC,sCAAsC;IACtC,mBAAmB,EAAE,qBAAqB;IAE1C,uBAAuB;IACvB,aAAa,EAAE,eAAe;IAE9B,yCAAyC;IACzC,kBAAkB,EAAE,oBAAoB;IAExC,iCAAiC;IACjC,cAAc,EAAE,gBAAgB;IAEhC,0CAA0C;IAC1C,yBAAyB,EAAE,2BAA2B;IAEtD,+BAA+B;IAC/B,eAAe,EAAE,iBAAiB;IAElC,iDAAiD;IACjD,gBAAgB,EAAE,kBAAkB;IAEpC,wBAAwB;IACxB,iBAAiB,EAAE,mBAAmB;IAEtC,kDAAkD;IAClD,kBAAkB,EAAE,oBAAoB;IAExC,iDAAiD;IACjD,WAAW,EAAE,aAAa;IAE1B,wCAAwC;IACxC,qBAAqB,EAAE,uBAAuB;IAE9C,sCAAsC;IACtC,iBAAiB,EAAE,mBAAmB;IAEtC,2CAA2C;IAC3C,WAAW,EAAE,aAAa;IAE1B,oCAAoC;IACpC,gBAAgB,EAAE,kBAAkB;IAEpC,wCAAwC;IACxC,iBAAiB,EAAE,mBAAmB;IAEtC,8BAA8B;IAC9B,eAAe,EAAE,iBAAiB;IAElC,wCAAwC;IACxC,kBAAkB,EAAE,oBAAoB;IAExC,sCAAsC;IACtC,uBAAuB,EAAE,yBAAyB;IAElD,kCAAkC;IAClC,iBAAiB,EAAE,mBAAmB;IAEtC,kCAAkC;IAClC,eAAe,EAAE,iBAAiB;IAElC,2BAA2B;IAC3B,YAAY,EAAE,cAAc;CACpB,CAAC;AAKX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC9C,YACE,OAAe,EACf,OAAwB,gBAAgB,CAAC,YAAY,EACrD,UAAwB,EAAE,EAC1B,cAAuB,KAAK,EAC5B,UAAmB,EACnB,WAA0B,OAAO,EACjC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAExE,kCAAkC;QAClC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAqC;IAErC,MAAM,WAAW,GAAG;QAClB,KAAK,EAAE,mEAAmE;QAC1E,aAAa,EACX,sEAAsE;KACzE,CAAC;IAEF,OAAO,IAAI,WAAW,CACpB,GAAG,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,mBAAmB,EACxE,gBAAgB,CAAC,gBAAgB,EACjC,EAAE,UAAU,EAAE,EACd,KAAK,EACL,WAAW,CAAC,UAAU,CAAC,EACvB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,WAAW,CACpB,wCAAwC,EACxC,gBAAgB,CAAC,mBAAmB,EACpC,EAAE,EACF,IAAI,EACJ,sDAAsD,EACtD,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,SAAiB,EACjB,QAAgB,MAAM;IAEtB,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEvC,OAAO,IAAI,WAAW,CACpB,4BAA4B,QAAQ,IAAI,KAAK,UAAU,SAAS,IAAI,KAAK,EAAE,EAC3E,gBAAgB,CAAC,kBAAkB,EACnC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EACzC,KAAK,EACL,uBAAuB,SAAS,IAAI,KAAK,iBAAiB,EAC1D,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,WAAW,CACpB,kBAAkB,EAClB,gBAAgB,CAAC,aAAa,EAC9B,EAAE,EACF,IAAI,EACJ,yCAAyC,EACzC,SAAS,CACV,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,KAAa;IAEb,OAAO,IAAI,WAAW,CACpB,kBAAkB,SAAS,EAAE,EAC7B,gBAAgB,CAAC,cAAc,EAC/B,EAAE,SAAS,EAAE,EACb,IAAI,EACJ,wFAAwF,EACxF,OAAO,EACP,KAAK,CACN,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,MAAc;IAEd,OAAO,IAAI,WAAW,CACpB,8BAA8B,QAAQ,kBAAkB,MAAM,EAAE,EAChE,gBAAgB,CAAC,gBAAgB,EACjC,EAAE,QAAQ,EAAE,MAAM,EAAE,EACpB,IAAI,EACJ,oCAAoC,QAAQ,UAAU,EACtD,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,WAAW,CAAC;AACtC,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * deploy-ability - Programmatic deployment library for KADI
3
+ *
4
+ * Deploy applications to Akash Network, local Docker, or other platforms
5
+ * without CLI dependencies.
6
+ *
7
+ * @example Quick Start - Akash
8
+ * ```typescript
9
+ * import { deployToAkash } from 'deploy-ability';
10
+ *
11
+ * const result = await deployToAkash({
12
+ * projectRoot: process.cwd(),
13
+ * profile: 'production'
14
+ * });
15
+ *
16
+ * if (result.success) {
17
+ * console.log(`Deployed! DSEQ: ${result.data.dseq}`);
18
+ * console.log(`Provider: ${result.data.providerUri}`);
19
+ * } else {
20
+ * console.error(`Deployment failed: ${result.error.message}`);
21
+ * }
22
+ * ```
23
+ *
24
+ * @example Quick Start - Local
25
+ * ```typescript
26
+ * import { deployToLocal } from 'deploy-ability';
27
+ *
28
+ * const result = await deployToLocal({
29
+ * projectRoot: process.cwd(),
30
+ * profile: 'local-dev',
31
+ * engine: 'docker'
32
+ * });
33
+ *
34
+ * if (result.success) {
35
+ * console.log('Deployed locally!');
36
+ * console.log('Services:', result.data.services);
37
+ * console.log('Endpoints:', result.data.endpoints);
38
+ * }
39
+ * ```
40
+ *
41
+ * @module deploy-ability
42
+ */
43
+ export type * from './types/index.js';
44
+ export * from './errors/index.js';
45
+ export * from './utils/index.js';
46
+ export * from './constants.js';
47
+ export { deployToLocal } from './targets/local/index.js';
48
+ export * from './targets/akash/index.js';
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,mBAAmB,kBAAkB,CAAC;AAGtC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,cAAc,0BAA0B,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ /**
2
+ * deploy-ability - Programmatic deployment library for KADI
3
+ *
4
+ * Deploy applications to Akash Network, local Docker, or other platforms
5
+ * without CLI dependencies.
6
+ *
7
+ * @example Quick Start - Akash
8
+ * ```typescript
9
+ * import { deployToAkash } from 'deploy-ability';
10
+ *
11
+ * const result = await deployToAkash({
12
+ * projectRoot: process.cwd(),
13
+ * profile: 'production'
14
+ * });
15
+ *
16
+ * if (result.success) {
17
+ * console.log(`Deployed! DSEQ: ${result.data.dseq}`);
18
+ * console.log(`Provider: ${result.data.providerUri}`);
19
+ * } else {
20
+ * console.error(`Deployment failed: ${result.error.message}`);
21
+ * }
22
+ * ```
23
+ *
24
+ * @example Quick Start - Local
25
+ * ```typescript
26
+ * import { deployToLocal } from 'deploy-ability';
27
+ *
28
+ * const result = await deployToLocal({
29
+ * projectRoot: process.cwd(),
30
+ * profile: 'local-dev',
31
+ * engine: 'docker'
32
+ * });
33
+ *
34
+ * if (result.success) {
35
+ * console.log('Deployed locally!');
36
+ * console.log('Services:', result.data.services);
37
+ * console.log('Endpoints:', result.data.endpoints);
38
+ * }
39
+ * ```
40
+ *
41
+ * @module deploy-ability
42
+ */
43
+ // Re-export errors
44
+ export * from './errors/index.js';
45
+ // Re-export utilities
46
+ export * from './utils/index.js';
47
+ // Re-export constants
48
+ export * from './constants.js';
49
+ // Main deployment functions
50
+ export { deployToLocal } from './targets/local/index.js';
51
+ // Akash target - complete API exported
52
+ export * from './targets/akash/index.js';
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,mBAAmB;AACnB,cAAc,mBAAmB,CAAC;AAElC,sBAAsB;AACtB,cAAc,kBAAkB,CAAC;AAEjC,sBAAsB;AACtB,cAAc,gBAAgB,CAAC;AAE/B,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,uCAAuC;AACvC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Bid Selection Helpers
3
+ *
4
+ * Provides pre-built selection strategies and filtering utilities for choosing
5
+ * providers based on different criteria. These functions can be used directly
6
+ * as bidSelectors in the deployment flow, or combined to create custom
7
+ * selection logic.
8
+ *
9
+ * **Selection Strategies:**
10
+ * - `selectCheapestBid` - Lowest price (perMonth basis)
11
+ * - `selectMostReliableBid` - Highest uptime percentage
12
+ * - `selectBalancedBid` - Weighted combination of price and reliability
13
+ *
14
+ * **Filtering:**
15
+ * - `filterBids` - Apply multiple criteria to narrow down options
16
+ *
17
+ * @module targets/akash/bid-selectors
18
+ */
19
+ import type { EnhancedBid } from './bid-types.js';
20
+ /**
21
+ * Select the cheapest bid based on monthly price
22
+ *
23
+ * Compares all bids and returns the one with the lowest cost per month.
24
+ * Useful when price is the primary concern and provider quality is
25
+ * less critical (e.g., development/testing deployments).
26
+ *
27
+ * **Note:** This only considers price, not provider reliability, location,
28
+ * or audit status. For production deployments, consider using `filterBids`
29
+ * first to ensure minimum quality standards, then select the cheapest
30
+ * from the filtered set.
31
+ *
32
+ * @param bids - Array of enhanced bids to choose from
33
+ * @returns The cheapest bid, or null if array is empty
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { deployToAkash, selectCheapestBid } from 'deploy-ability/akash';
38
+ *
39
+ * const result = await deployToAkash({
40
+ * wallet,
41
+ * certificate,
42
+ * projectRoot: './',
43
+ * profile: 'dev',
44
+ * bidSelector: selectCheapestBid
45
+ * });
46
+ * ```
47
+ *
48
+ * @example With quality filtering
49
+ * ```typescript
50
+ * const result = await deployToAkash({
51
+ * wallet,
52
+ * certificate,
53
+ * projectRoot: './',
54
+ * profile: 'prod',
55
+ * bidSelector: (bids) => {
56
+ * // Only consider audited providers with good uptime
57
+ * const qualityBids = filterBids(bids, {
58
+ * requireAudited: true,
59
+ * minUptime: { value: 0.95, period: '7d' }
60
+ * });
61
+ * // Then pick cheapest among quality providers
62
+ * return selectCheapestBid(qualityBids);
63
+ * }
64
+ * });
65
+ * ```
66
+ */
67
+ export declare function selectCheapestBid(bids: EnhancedBid[]): EnhancedBid | null;
68
+ /**
69
+ * Select the most reliable provider based on uptime
70
+ *
71
+ * Chooses the provider with the highest uptime percentage for the specified
72
+ * time period. Providers without reliability data are considered last.
73
+ *
74
+ * **Uptime Periods:**
75
+ * - `1d`: Last 24 hours (most recent, but limited sample)
76
+ * - `7d`: Last 7 days (good balance, recommended default)
77
+ * - `30d`: Last 30 days (long-term stability indicator)
78
+ *
79
+ * **Fallback Behavior:**
80
+ * If no providers have reliability data, returns the first bid from the
81
+ * original array (maintains deterministic behavior).
82
+ *
83
+ * @param bids - Array of enhanced bids to choose from
84
+ * @param period - Uptime period to evaluate (default: '7d')
85
+ * @returns The most reliable bid, or null if array is empty
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * import { deployToAkash, selectMostReliableBid } from 'deploy-ability/akash';
90
+ *
91
+ * const result = await deployToAkash({
92
+ * wallet,
93
+ * certificate,
94
+ * projectRoot: './',
95
+ * profile: 'production',
96
+ * bidSelector: selectMostReliableBid // Uses 7d default
97
+ * });
98
+ * ```
99
+ *
100
+ * @example With custom period
101
+ * ```typescript
102
+ * const result = await deployToAkash({
103
+ * wallet,
104
+ * certificate,
105
+ * projectRoot: './',
106
+ * profile: 'production',
107
+ * bidSelector: (bids) => selectMostReliableBid(bids, '30d')
108
+ * });
109
+ * ```
110
+ */
111
+ export declare function selectMostReliableBid(bids: EnhancedBid[], period?: '1d' | '7d' | '30d'): EnhancedBid | null;
112
+ /**
113
+ * Select bid using balanced scoring (price + reliability)
114
+ *
115
+ * Calculates a composite score for each bid based on normalized price
116
+ * and reliability metrics, then selects the highest-scoring option.
117
+ *
118
+ * **Scoring Methodology:**
119
+ * - Price score: Normalized 0-1 (lower price = higher score)
120
+ * - Reliability score: Uptime percentage (0-1)
121
+ * - Total score = (price score × price weight) + (reliability score × reliability weight)
122
+ *
123
+ * **Default Weights:**
124
+ * Equal balance (0.5 each) - adjust based on your priorities.
125
+ *
126
+ * **Use Cases:**
127
+ * - Production deployments where both cost and reliability matter
128
+ * - Finding "best value" providers (good balance of quality and price)
129
+ * - Avoiding both the cheapest-but-unreliable and expensive-but-reliable extremes
130
+ *
131
+ * @param bids - Array of enhanced bids to choose from
132
+ * @param weights - Scoring weights (default: equal balance)
133
+ * @param weights.price - Weight for price score (0-1)
134
+ * @param weights.reliability - Weight for reliability score (0-1)
135
+ * @returns The best balanced bid, or null if array is empty
136
+ *
137
+ * @example Equal balance (default)
138
+ * ```typescript
139
+ * import { deployToAkash, selectBalancedBid } from 'deploy-ability/akash';
140
+ *
141
+ * const result = await deployToAkash({
142
+ * wallet,
143
+ * certificate,
144
+ * projectRoot: './',
145
+ * profile: 'production',
146
+ * bidSelector: selectBalancedBid // 50/50 price/reliability
147
+ * });
148
+ * ```
149
+ *
150
+ * @example Prioritize reliability
151
+ * ```typescript
152
+ * const result = await deployToAkash({
153
+ * wallet,
154
+ * certificate,
155
+ * projectRoot: './',
156
+ * profile: 'critical-prod',
157
+ * bidSelector: (bids) => selectBalancedBid(bids, {
158
+ * price: 0.3,
159
+ * reliability: 0.7
160
+ * })
161
+ * });
162
+ * ```
163
+ *
164
+ * @example Prioritize cost
165
+ * ```typescript
166
+ * const result = await deployToAkash({
167
+ * wallet,
168
+ * certificate,
169
+ * projectRoot: './',
170
+ * profile: 'dev',
171
+ * bidSelector: (bids) => selectBalancedBid(bids, {
172
+ * price: 0.8,
173
+ * reliability: 0.2
174
+ * })
175
+ * });
176
+ * ```
177
+ */
178
+ export declare function selectBalancedBid(bids: EnhancedBid[], weights?: {
179
+ price: number;
180
+ reliability: number;
181
+ }): EnhancedBid | null;
182
+ /**
183
+ * Filter bids by multiple criteria
184
+ *
185
+ * Apply various filters to narrow down bid options based on price,
186
+ * reliability, audit status, location, and provider status.
187
+ *
188
+ * **All criteria are optional** - only specify the ones you care about.
189
+ * Multiple criteria are combined with AND logic (all must match).
190
+ *
191
+ * **Filtering Philosophy:**
192
+ * Use this to establish minimum quality standards, then apply a selection
193
+ * strategy to the filtered results. This ensures you never select a provider
194
+ * that doesn't meet your requirements, even if they're the cheapest.
195
+ *
196
+ * @param bids - Array of enhanced bids to filter
197
+ * @param criteria - Filtering criteria (all optional)
198
+ * @returns Filtered array of bids matching all specified criteria
199
+ *
200
+ * @example Filter by price and uptime
201
+ * ```typescript
202
+ * import { filterBids, selectCheapestBid } from 'deploy-ability/akash';
203
+ *
204
+ * const result = await deployToAkash({
205
+ * wallet,
206
+ * certificate,
207
+ * projectRoot: './',
208
+ * profile: 'prod',
209
+ * bidSelector: (bids) => {
210
+ * // Only providers under $50/month with >95% uptime
211
+ * const filtered = filterBids(bids, {
212
+ * maxPricePerMonth: { usd: 50, aktPrice: 0.45 },
213
+ * minUptime: { value: 0.95, period: '7d' }
214
+ * });
215
+ * return selectCheapestBid(filtered);
216
+ * }
217
+ * });
218
+ * ```
219
+ *
220
+ * @example Filter by audit status and location
221
+ * ```typescript
222
+ * const filtered = filterBids(bids, {
223
+ * requireAudited: true,
224
+ * preferredRegions: ['US', 'EU'], // Country codes
225
+ * requireOnline: true
226
+ * });
227
+ * ```
228
+ *
229
+ * @example Price filtering in uAKT
230
+ * ```typescript
231
+ * const filtered = filterBids(bids, {
232
+ * maxPricePerMonth: { uakt: 500_000_000 } // 500M uAKT/month
233
+ * });
234
+ * ```
235
+ */
236
+ export declare function filterBids(bids: EnhancedBid[], criteria: {
237
+ readonly maxPricePerMonth?: {
238
+ uakt: number;
239
+ } | {
240
+ usd: number;
241
+ aktPrice: number;
242
+ };
243
+ readonly minUptime?: {
244
+ value: number;
245
+ period: '1d' | '7d' | '30d';
246
+ };
247
+ readonly requireAudited?: boolean;
248
+ readonly preferredRegions?: string[];
249
+ readonly requireOnline?: boolean;
250
+ }): EnhancedBid[];
251
+ //# sourceMappingURL=bid-selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bid-selectors.d.ts","sourceRoot":"","sources":["../../../src/targets/akash/bid-selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,IAAI,CAQzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,GAAE,IAAI,GAAG,IAAI,GAAG,KAAY,GACjC,WAAW,GAAG,IAAI,CAsBpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,GAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAqC,GACjF,WAAW,GAAG,IAAI,CAiCpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EAAE,EACnB,QAAQ,EAAE;IACR,QAAQ,CAAC,gBAAgB,CAAC,EACtB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAChB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;KAAE,CAAC;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,GACA,WAAW,EAAE,CA+Cf"}