@stacksjs/ts-cloud 0.16.15 → 0.16.17

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 (186) hide show
  1. package/dist/aws/index.js +1 -1
  2. package/dist/bin/{chunk-r7k2mkn7.js → chunk-0znhykt9.js} +5 -5
  3. package/dist/bin/chunk-1aqrfqbz.js +1 -0
  4. package/dist/bin/{chunk-9j7qhwe0.js → chunk-1k1dyh5k.js} +1 -1
  5. package/dist/bin/{chunk-b7b87gxb.js → chunk-30jk87p4.js} +2 -2
  6. package/dist/bin/{chunk-s4z1knq4.js → chunk-36aywmsq.js} +1 -1
  7. package/dist/bin/{chunk-zm95j24a.js → chunk-6wc8a9cs.js} +3 -3
  8. package/dist/bin/chunk-71rdf1sw.js +1 -0
  9. package/dist/bin/chunk-75kmf1ke.js +1 -0
  10. package/dist/bin/chunk-7q37vt87.js +1 -0
  11. package/dist/bin/{chunk-p0vyt3fq.js → chunk-850n63e0.js} +2 -2
  12. package/dist/bin/{chunk-nazx54p5.js → chunk-8af2sky9.js} +2 -2
  13. package/dist/bin/chunk-8r0gvent.js +1 -0
  14. package/dist/bin/chunk-925xkkf9.js +1 -0
  15. package/dist/bin/{chunk-hdr0q89a.js → chunk-94pvxv17.js} +5 -5
  16. package/dist/bin/{chunk-3d8y4a6d.js → chunk-98m9rbpk.js} +109 -109
  17. package/dist/bin/{chunk-cb47f0pb.js → chunk-afzrsjmc.js} +2 -2
  18. package/dist/bin/chunk-am4recks.js +1 -0
  19. package/dist/bin/chunk-az3emrhh.js +1 -0
  20. package/dist/bin/chunk-btfh77e4.js +1 -0
  21. package/dist/bin/{chunk-0y4a84jm.js → chunk-bxfnhnqd.js} +13 -13
  22. package/dist/bin/chunk-bxy657va.js +1 -0
  23. package/dist/bin/{chunk-gwpmn3a3.js → chunk-d5sd5xtt.js} +1 -1
  24. package/dist/bin/{chunk-kft7wdhy.js → chunk-dg918k6w.js} +1 -1
  25. package/dist/bin/{chunk-3z65v87m.js → chunk-dp2fsnpe.js} +6 -6
  26. package/dist/bin/{chunk-4nbq68h4.js → chunk-e7kqxsqh.js} +1 -1
  27. package/dist/bin/{chunk-2a8twtvv.js → chunk-etvcw9we.js} +1 -1
  28. package/dist/bin/{chunk-3eht1tp2.js → chunk-evtcxme1.js} +5 -5
  29. package/dist/bin/chunk-fbhf8kh5.js +1 -0
  30. package/dist/bin/{chunk-tb4ek3s5.js → chunk-frbwzrx4.js} +1 -1
  31. package/dist/bin/{chunk-5ffj7508.js → chunk-fren71ry.js} +1 -1
  32. package/dist/bin/chunk-g0z3a0wx.js +1 -0
  33. package/dist/bin/{chunk-pm2vz6zp.js → chunk-g8yaztb1.js} +3 -3
  34. package/dist/bin/{chunk-21am8b1b.js → chunk-g954ew3x.js} +1 -1
  35. package/dist/bin/{chunk-r0qynqff.js → chunk-gn745j0p.js} +5 -5
  36. package/dist/bin/{chunk-58phgtc8.js → chunk-grs2cwm7.js} +2 -2
  37. package/dist/bin/{chunk-yas09vmt.js → chunk-hn961k5f.js} +3 -3
  38. package/dist/bin/{chunk-me81g606.js → chunk-jq36fh46.js} +1 -1
  39. package/dist/bin/{chunk-4mpfdw94.js → chunk-kymrvq47.js} +2 -2
  40. package/dist/bin/{chunk-31tmm8kx.js → chunk-m2kr333s.js} +2 -2
  41. package/dist/bin/chunk-mtbav1sg.js +1 -0
  42. package/dist/bin/chunk-pk2xwzke.js +1 -0
  43. package/dist/bin/{chunk-trdteh51.js → chunk-q6cayjpr.js} +91 -91
  44. package/dist/bin/{chunk-fjd8tw77.js → chunk-r2vrq2gr.js} +5 -5
  45. package/dist/bin/{chunk-9gcmpcmq.js → chunk-rt51mrj9.js} +1 -1
  46. package/dist/bin/chunk-s5br13d9.js +724 -0
  47. package/dist/bin/chunk-sbhbne4d.js +1 -0
  48. package/dist/bin/chunk-sd0twb8d.js +1 -0
  49. package/dist/bin/chunk-va8pr0ch.js +1 -0
  50. package/dist/bin/{chunk-2cyhks5n.js → chunk-va9y882b.js} +1 -1
  51. package/dist/bin/chunk-vwa96q94.js +1 -0
  52. package/dist/bin/{chunk-5jf6veax.js → chunk-xenj3py3.js} +3 -3
  53. package/dist/bin/chunk-y6vnwk4e.js +1 -0
  54. package/dist/bin/chunk-y7w98fc1.js +1 -0
  55. package/dist/bin/chunk-yw65b70x.js +1 -0
  56. package/dist/bin/{chunk-489c9r4g.js → chunk-z4rx32w4.js} +3 -3
  57. package/dist/bin/chunk-z65rp2mn.js +1 -0
  58. package/dist/bin/{chunk-23nxkj19.js → chunk-znfh0mx7.js} +1 -1
  59. package/dist/bin/cli.js +147 -147
  60. package/dist/bin/dashboard-server.js +1 -1
  61. package/dist/{chunk-tznx5510.js → chunk-1ayadqry.js} +6 -6
  62. package/dist/{chunk-s1bfyvmc.js → chunk-2ht2ve4t.js} +1 -1
  63. package/dist/{chunk-21b8nage.js → chunk-2vr8rqg8.js} +1 -1
  64. package/dist/chunk-3jrvr0pv.js +1 -0
  65. package/dist/{chunk-dxcwfj3h.js → chunk-3rh4m6ag.js} +1 -1
  66. package/dist/chunk-4bcf62qk.js +584 -0
  67. package/dist/{chunk-8a02v9gs.js → chunk-590gwv9d.js} +4 -4
  68. package/dist/{chunk-2rt6xbmv.js → chunk-6jzg0gtw.js} +4 -4
  69. package/dist/{chunk-42ngwzvc.js → chunk-6m18fz5f.js} +104 -104
  70. package/dist/{chunk-g8tp1zj4.js → chunk-81yetzg2.js} +3 -3
  71. package/dist/{chunk-pc0tz6be.js → chunk-84w9n41b.js} +7 -7
  72. package/dist/{chunk-pwpd6jt2.js → chunk-a9pqpqrh.js} +1 -1
  73. package/dist/chunk-ajwt2hzh.js +1 -0
  74. package/dist/{chunk-80vxhxt5.js → chunk-enhddb1a.js} +2 -2
  75. package/dist/{chunk-22ybphxa.js → chunk-f3hhmec2.js} +1 -1
  76. package/dist/{chunk-3bz7xz2d.js → chunk-fw9hk0xt.js} +2 -2
  77. package/dist/{chunk-97a7sxpe.js → chunk-hasa64d4.js} +2 -2
  78. package/dist/{chunk-9nxb5fyp.js → chunk-m1x32x81.js} +5 -5
  79. package/dist/chunk-mcxmdch0.js +1 -0
  80. package/dist/{chunk-dns94gs7.js → chunk-mytcpvg5.js} +1 -1
  81. package/dist/{chunk-8x24tv2g.js → chunk-nca98yaf.js} +20 -20
  82. package/dist/{chunk-sw1p9qge.js → chunk-nz3ygqjb.js} +1 -1
  83. package/dist/{chunk-9be2pb0b.js → chunk-pn8bczhy.js} +5 -5
  84. package/dist/{chunk-p0w0kwhx.js → chunk-r2v44ba2.js} +19 -19
  85. package/dist/chunk-wqhhvh3k.js +1 -0
  86. package/dist/{chunk-y59rkb2n.js → chunk-x3xs6qvx.js} +4 -4
  87. package/dist/chunk-xhn2v84m.js +1 -0
  88. package/dist/{chunk-fs78rxy1.js → chunk-ygrxsjcz.js} +3 -3
  89. package/dist/{chunk-kx7zw3xn.js → chunk-ynjfj2rt.js} +113 -113
  90. package/dist/{chunk-ht8rawp1.js → chunk-z13hksc9.js} +2 -2
  91. package/dist/deploy/index.js +1 -1
  92. package/dist/dns/index.js +1 -1
  93. package/dist/drivers/index.d.ts +2 -0
  94. package/dist/drivers/index.js +1 -1
  95. package/dist/drivers/shared/cloudfront-origin.d.ts +15 -26
  96. package/dist/drivers/shared/deploy-script.d.ts +7 -5
  97. package/dist/drivers/shared/host-cleanup.d.ts +90 -0
  98. package/dist/index.d.ts +1 -1
  99. package/dist/index.js +21 -21
  100. package/dist/operations/index.js +1 -1
  101. package/dist/protection/index.js +1 -1
  102. package/dist/spend/index.js +1 -1
  103. package/dist/ui/404.html +1 -1
  104. package/dist/ui/accept-invitation.html +1 -1
  105. package/dist/ui/access-denied.html +1 -1
  106. package/dist/ui/account/automation.html +5 -5
  107. package/dist/ui/account/security.html +2 -2
  108. package/dist/ui/applications/compose.html +6 -6
  109. package/dist/ui/applications/new.html +2 -2
  110. package/dist/ui/data/backups.html +6 -6
  111. package/dist/ui/data/services.html +6 -6
  112. package/dist/ui/data/volumes.html +5 -5
  113. package/dist/ui/index.html +6 -6
  114. package/dist/ui/infrastructure/topology.html +6 -6
  115. package/dist/ui/integrations.html +1 -1
  116. package/dist/ui/operations/alerts.html +6 -6
  117. package/dist/ui/operations/configuration.html +6 -6
  118. package/dist/ui/operations/jobs.html +6 -6
  119. package/dist/ui/operations/maintenance.html +5 -5
  120. package/dist/ui/operations/observability.html +6 -6
  121. package/dist/ui/operations/previews.html +6 -6
  122. package/dist/ui/operations/queue.html +6 -6
  123. package/dist/ui/operations/regions.html +5 -5
  124. package/dist/ui/operations/releases.html +6 -6
  125. package/dist/ui/operations/spend.html +6 -6
  126. package/dist/ui/operations/workloads.html +6 -6
  127. package/dist/ui/security.html +1 -1
  128. package/dist/ui/server/actions.html +6 -6
  129. package/dist/ui/server/activity.html +2 -2
  130. package/dist/ui/server/capacity.html +5 -5
  131. package/dist/ui/server/database.html +6 -6
  132. package/dist/ui/server/deployments.html +6 -6
  133. package/dist/ui/server/diagnostics.html +2 -2
  134. package/dist/ui/server/firewall.html +5 -5
  135. package/dist/ui/server/fleet.html +6 -6
  136. package/dist/ui/server/logs.html +6 -6
  137. package/dist/ui/server/metrics.html +6 -6
  138. package/dist/ui/server/security.html +2 -2
  139. package/dist/ui/server/services.html +1 -1
  140. package/dist/ui/server/sites.html +6 -6
  141. package/dist/ui/server/ssh-keys.html +6 -6
  142. package/dist/ui/server/team.html +6 -6
  143. package/dist/ui/server/terminal.html +2 -2
  144. package/dist/ui/serverless/alarms.html +6 -6
  145. package/dist/ui/serverless/assets.html +2 -2
  146. package/dist/ui/serverless/cost.html +2 -2
  147. package/dist/ui/serverless/data.html +6 -6
  148. package/dist/ui/serverless/deployments.html +1 -1
  149. package/dist/ui/serverless/firewall.html +1 -1
  150. package/dist/ui/serverless/functions.html +5 -5
  151. package/dist/ui/serverless/logs.html +6 -6
  152. package/dist/ui/serverless/metrics.html +1 -1
  153. package/dist/ui/serverless/queues.html +6 -6
  154. package/dist/ui/serverless/secrets.html +6 -6
  155. package/dist/ui/serverless/traces.html +5 -5
  156. package/dist/ui/serverless.html +5 -5
  157. package/package.json +3 -3
  158. package/dist/bin/chunk-01tmdqe3.js +0 -1
  159. package/dist/bin/chunk-3bwy7atq.js +0 -1
  160. package/dist/bin/chunk-3rsvrp09.js +0 -1
  161. package/dist/bin/chunk-4gf4mk0b.js +0 -1
  162. package/dist/bin/chunk-5wms0mx3.js +0 -1
  163. package/dist/bin/chunk-8t0mrz5d.js +0 -725
  164. package/dist/bin/chunk-c7sqa85j.js +0 -1
  165. package/dist/bin/chunk-cejjg0ts.js +0 -1
  166. package/dist/bin/chunk-e3hn6atg.js +0 -1
  167. package/dist/bin/chunk-fbq61aj0.js +0 -1
  168. package/dist/bin/chunk-g4dytx12.js +0 -1
  169. package/dist/bin/chunk-hssaw82j.js +0 -1
  170. package/dist/bin/chunk-k4x1pq4t.js +0 -1
  171. package/dist/bin/chunk-kcvvpvte.js +0 -1
  172. package/dist/bin/chunk-n8a76gys.js +0 -1
  173. package/dist/bin/chunk-p1k08e45.js +0 -1
  174. package/dist/bin/chunk-ps8ev3tq.js +0 -1
  175. package/dist/bin/chunk-q8s9v9hv.js +0 -1
  176. package/dist/bin/chunk-qcvmyfp7.js +0 -1
  177. package/dist/bin/chunk-qncvqmzy.js +0 -1
  178. package/dist/bin/chunk-r35q7kve.js +0 -1
  179. package/dist/bin/chunk-rt9nbrwd.js +0 -1
  180. package/dist/bin/chunk-xhwjntw1.js +0 -1
  181. package/dist/chunk-29xhksd3.js +0 -1
  182. package/dist/chunk-2vgdfywj.js +0 -1
  183. package/dist/chunk-67wrhk75.js +0 -1
  184. package/dist/chunk-7nq2rwjs.js +0 -1
  185. package/dist/chunk-bd75na8x.js +0 -585
  186. package/dist/chunk-gj27zyk5.js +0 -1
@@ -2,5 +2,5 @@ import*as T from"node:crypto";import{existsSync as W,readFileSync as J}from"node
2
2
  `),i="",s="",n="",a;for(let o of r){let h=o.trim();if(!h||h.startsWith("#"))continue;let g=h.match(/^\[([^\]]+)\]$/);if(g){i=g[1];continue}if(i===e){let[A,...f]=h.split("="),C=f.join("=").trim();if(A.trim()==="aws_access_key_id")s=C;else if(A.trim()==="aws_secret_access_key")n=C;else if(A.trim()==="aws_session_token")a=C}}return{accessKeyId:s,secretAccessKey:n,sessionToken:a}}ec2CredentialsCache;async getCredentials(){let t=process.env.AWS_ACCESS_KEY_ID,e=process.env.AWS_SECRET_ACCESS_KEY;if(t&&e)return{accessKeyId:t,secretAccessKey:e,sessionToken:process.env.AWS_SESSION_TOKEN};let r=this.loadCredentialsFromFile();if(r)return r;if(this.ec2CredentialsCache){let i=Date.now();if(this.ec2CredentialsCache.expiration>i+300000)return this.ec2CredentialsCache.credentials}try{let s=await(await fetch("http://169.254.169.254/latest/api/token",{method:"PUT",headers:{"X-aws-ec2-metadata-token-ttl-seconds":"21600"}})).text(),a=await(await fetch("http://169.254.169.254/latest/meta-data/iam/security-credentials/",{headers:{"X-aws-ec2-metadata-token":s}})).text(),h=await(await fetch(`http://169.254.169.254/latest/meta-data/iam/security-credentials/${a}`,{headers:{"X-aws-ec2-metadata-token":s}})).json(),g={accessKeyId:h.AccessKeyId,secretAccessKey:h.SecretAccessKey,sessionToken:h.Token};return this.ec2CredentialsCache={credentials:g,expiration:new Date(h.Expiration).getTime()},g}catch(i){throw Error("AWS credentials not found. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, or run on an EC2 instance with an IAM role.")}}async request(t){if(t.method==="GET"&&this.config.cacheEnabled&&t.cacheKey){let i=this.getFromCache(t.cacheKey);if(i!==null)return i}let e=t.retries??this.config.maxRetries??3,r=null;for(let i=0;i<=e;i++)try{let s=await this.makeRequest(t);if(t.method==="GET"&&this.config.cacheEnabled&&t.cacheKey)this.setInCache(t.cacheKey,s,t.cacheTTL??this.config.defaultCacheTTL??60000);return s}catch(s){if(r=s,!this.shouldRetry(s))throw s;if(i===e)throw s;let a=this.calculateRetryDelay(i);await this.sleep(a)}throw r||Error("Request failed after retries")}async makeRequest(t){let e=t.credentials||(this.credentials?.accessKeyId?this.credentials:await this.getCredentials());if(!e||!e.accessKeyId||!e.secretAccessKey)throw Error("AWS credentials not provided");let r=this.buildUrl(t),i=this.signRequest(t,e),s=await fetch(r,{method:t.method,headers:i,body:t.body}),n=await s.text();if(!s.ok)throw this.parseError(n,s.status,s.headers);if(!n||n.trim()===""){if(t.returnHeaders)return{body:null,headers:this.headersToObject(s.headers)};return null}if(t.rawResponse){if(t.returnHeaders)return{body:n,headers:this.headersToObject(s.headers)};return n}let a;if(n.startsWith("<"))a=this.parseXmlResponse(n);else try{a=JSON.parse(n)}catch{a=n}if(t.returnHeaders)return{body:a,headers:this.headersToObject(s.headers)};return a}headersToObject(t){let e={};return t.forEach((r,i)=>{e[i]=r}),e}buildUrl(t){let{service:e,region:r,queryParams:i}=t,{path:s}=t,n,a="https";if(e==="s3"){let h=di({region:r,path:s,bucket:t.bucket,endpoint:this.config.endpoint,forcePathStyle:this.config.forcePathStyle});a=h.protocol,n=h.host,s=h.path}else if(e==="cloudfront")n="cloudfront.amazonaws.com";else if(e==="iam")n="iam.amazonaws.com";else if(e==="route53")n="route53.amazonaws.com";else if(e==="route53domains")n="route53domains.us-east-1.amazonaws.com";else if(e==="ecr")n=`api.ecr.${r}.amazonaws.com`;else if(e==="ses")n=`email.${r}.amazonaws.com`;else n=`${e}.${r}.amazonaws.com`;let o=`${a}://${n}${s}`;if(i&&Object.keys(i).length>0){let h=Object.keys(i).map((g)=>`${this.uriEncode(g)}=${this.uriEncode(i[g])}`).join("&");o+=`?${h}`}return o}signRequest(t,e){let{service:r,region:i,method:s,queryParams:n,body:a}=t,{path:o}=t,h=new Date,g=this.getAmzDate(h),A=this.getDateStamp(h),f;if(r==="s3"){let S=di({region:i,path:o,bucket:t.bucket,endpoint:this.config.endpoint,forcePathStyle:this.config.forcePathStyle});f=S.host,o=S.path}else if(r==="cloudfront")f="cloudfront.amazonaws.com";else if(r==="iam")f="iam.amazonaws.com";else if(r==="route53")f="route53.amazonaws.com";else if(r==="route53domains")f="route53domains.us-east-1.amazonaws.com";else if(r==="ecr")f=`api.ecr.${i}.amazonaws.com`;else if(r==="ses")f=`email.${i}.amazonaws.com`;else f=`${r}.${i}.amazonaws.com`;let C={host:f,"x-amz-date":g,...t.headers||{}};if(e.sessionToken)C["x-amz-security-token"]=e.sessionToken;if(a){if(!Object.keys(C).some((O)=>O.toLowerCase()==="content-type"))C["content-type"]="application/x-www-form-urlencoded";C["content-length"]=Buffer.byteLength(a).toString()}let l=this.sha256(a||"");C["x-amz-content-sha256"]=l;let m=o,y=n?Object.keys(n).sort().map((S)=>`${this.uriEncode(S)}=${this.uriEncode(n[S])}`).join("&"):"",d=Object.keys(C).sort((S,O)=>S.toLowerCase().localeCompare(O.toLowerCase())),c=d.map((S)=>`${S.toLowerCase()}:${C[S].trim()}
3
3
  `).join(""),p=d.map((S)=>S.toLowerCase()).join(";"),b=[s,m,y,c,p,l].join(`
4
4
  `),E="AWS4-HMAC-SHA256",w=r;if(r==="email")w="ses";let I=`${A}/${i}/${w}/aws4_request`,F=[E,g,I,this.sha256(b)].join(`
5
- `),q=this.getSignatureKey(e.secretAccessKey,A,i,w),U=this.hmac(q,F),j=`${E} Credential=${e.accessKeyId}/${I}, SignedHeaders=${p}, Signature=${U}`;return{...C,Authorization:j}}getAmzDate(t){return t.toISOString().replace(/[:-]|\.\d{3}/g,"")}getDateStamp(t){return t.toISOString().slice(0,10).replace(/-/g,"")}uriEncode(t){return encodeURIComponent(t).replace(/[!'()*]/g,(e)=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}sha256(t){return T.createHash("sha256").update(t,"utf8").digest("hex")}hmac(t,e){return T.createHmac("sha256",t).update(e,"utf8").digest("hex")}getSignatureKey(t,e,r,i){let s=T.createHmac("sha256",`AWS4${t}`).update(e).digest(),n=T.createHmac("sha256",s).update(r).digest(),a=T.createHmac("sha256",n).update(i).digest();return T.createHmac("sha256",a).update("aws4_request").digest()}parseXmlResponse(t){try{let e=this.xmlParser.parse(t);if(e.ErrorResponse)throw this.createErrorFromXml(e.ErrorResponse.Error);let r=Object.keys(e);if(r.length===1)return e[r[0]];return e}catch(e){if(e.code||e.statusCode)throw e;return{}}}parseError(t,e,r){let i=Error();if(i.statusCode=e,i.requestId=r.get("x-amzn-requestid")||r.get("x-amz-request-id")||void 0,t.startsWith("<"))try{let s=this.xmlParser.parse(t);if(s.ErrorResponse?.Error){let n=s.ErrorResponse.Error;return i.code=n.Code,i.message=`AWS Error [${n.Code}]: ${n.Message||"Unknown error"}`,i.type=n.Type,i}if(s.Error)return i.code=s.Error.Code,i.message=`AWS Error [${s.Error.Code}]: ${s.Error.Message||"Unknown error"}`,i}catch{}try{let s=JSON.parse(t);if(s.__type||s.code)return i.code=s.__type||s.code,i.message=`AWS Error [${i.code}]: ${s.message||s.Message||"Unknown error"}`,i}catch{}return i.message=`AWS API Error (${e}): ${t}`,i}createErrorFromXml(t){let e=Error();return e.code=t.Code,e.message=`AWS Error [${t.Code}]: ${t.Message||"Unknown error"}`,e.type=t.Type,e}isRetryableError(t){return["RequestTimeout","RequestTimeoutException","PriorRequestNotComplete","ConnectionError","ThrottlingException","Throttling","TooManyRequestsException","ProvisionedThroughputExceededException","RequestLimitExceeded","BandwidthLimitExceeded","SlowDown","ServiceUnavailable","ServiceUnavailableException","InternalError","InternalFailure","InternalServerError","InternalServiceException","TransientError","TransientFailure","IDPCommunicationErrorException","NetworkError","ConnectionRefusedException","EC2ThrottledException","503 Slow Down","500 InternalError"].includes(t)}isRetryableStatusCode(t){return t>=500||t===429}shouldRetry(t){if(t.name==="FetchError"||t.name==="TypeError"||t.code==="ECONNRESET")return!0;if(t.code&&this.isRetryableError(t.code))return!0;if(t.statusCode&&this.isRetryableStatusCode(t.statusCode))return!0;if(t.statusCode&&t.statusCode>=400&&t.statusCode<500&&t.statusCode!==429)return!1;if(t.statusCode)return!1;return!0}calculateRetryDelay(t){let e=this.config.retryDelay??1000,r=30000,i=Math.min(e*2**t,30000),s=Math.random()*0.3*i;return i+s}sleep(t){return new Promise((e)=>setTimeout(e,t))}getFromCache(t){let e=this.cache.get(t);if(!e)return null;if(Date.now()>e.expires)return this.cache.delete(t),null;return e.data}setInCache(t,e,r){this.cache.set(t,{data:e,expires:Date.now()+r})}clearCache(){this.cache.clear()}clearExpiredCache(){let t=Date.now();for(let[e,r]of this.cache.entries())if(t>r.expires)this.cache.delete(e)}}function N(t){let e={};for(let[r,i]of Object.entries(t)){if(i===void 0||i===null)continue;if(Array.isArray(i))i.forEach((s,n)=>{e[`${r}.${n+1}`]=String(s)});else if(typeof i==="object")for(let[s,n]of Object.entries(i))e[`${r}.${s}`]=String(n);else e[r]=String(i)}return e}function ks(){let t=process.env.AWS_ACCESS_KEY_ID,e=process.env.AWS_SECRET_ACCESS_KEY,r=t==="",i=e==="";if(t&&e)return{source:"env",emptyEnvKey:r,emptyEnvSecret:i,description:"environment variables (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)"};let s=process.env.AWS_PROFILE||"default",n=process.env.AWS_SHARED_CREDENTIALS_FILE||K(B(),".aws","credentials");if(W(n))return{source:"file",profile:s,emptyEnvKey:r,emptyEnvSecret:i,description:`~/.aws/credentials (profile: ${s})`};return{source:"ec2",emptyEnvKey:r,emptyEnvSecret:i,description:"EC2 instance metadata service (IMDSv2)"}}
6
- export{di,u,N,ks};
5
+ `),q=this.getSignatureKey(e.secretAccessKey,A,i,w),U=this.hmac(q,F),j=`${E} Credential=${e.accessKeyId}/${I}, SignedHeaders=${p}, Signature=${U}`;return{...C,Authorization:j}}getAmzDate(t){return t.toISOString().replace(/[:-]|\.\d{3}/g,"")}getDateStamp(t){return t.toISOString().slice(0,10).replace(/-/g,"")}uriEncode(t){return encodeURIComponent(t).replace(/[!'()*]/g,(e)=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}sha256(t){return T.createHash("sha256").update(t,"utf8").digest("hex")}hmac(t,e){return T.createHmac("sha256",t).update(e,"utf8").digest("hex")}getSignatureKey(t,e,r,i){let s=T.createHmac("sha256",`AWS4${t}`).update(e).digest(),n=T.createHmac("sha256",s).update(r).digest(),a=T.createHmac("sha256",n).update(i).digest();return T.createHmac("sha256",a).update("aws4_request").digest()}parseXmlResponse(t){try{let e=this.xmlParser.parse(t);if(e.ErrorResponse)throw this.createErrorFromXml(e.ErrorResponse.Error);let r=Object.keys(e);if(r.length===1)return e[r[0]];return e}catch(e){if(e.code||e.statusCode)throw e;return{}}}parseError(t,e,r){let i=Error();if(i.statusCode=e,i.requestId=r.get("x-amzn-requestid")||r.get("x-amz-request-id")||void 0,t.startsWith("<"))try{let s=this.xmlParser.parse(t);if(s.ErrorResponse?.Error){let n=s.ErrorResponse.Error;return i.code=n.Code,i.message=`AWS Error [${n.Code}]: ${n.Message||"Unknown error"}`,i.type=n.Type,i}if(s.Error)return i.code=s.Error.Code,i.message=`AWS Error [${s.Error.Code}]: ${s.Error.Message||"Unknown error"}`,i}catch{}try{let s=JSON.parse(t);if(s.__type||s.code)return i.code=s.__type||s.code,i.message=`AWS Error [${i.code}]: ${s.message||s.Message||"Unknown error"}`,i}catch{}return i.message=`AWS API Error (${e}): ${t}`,i}createErrorFromXml(t){let e=Error();return e.code=t.Code,e.message=`AWS Error [${t.Code}]: ${t.Message||"Unknown error"}`,e.type=t.Type,e}isRetryableError(t){return["RequestTimeout","RequestTimeoutException","PriorRequestNotComplete","ConnectionError","ThrottlingException","Throttling","TooManyRequestsException","ProvisionedThroughputExceededException","RequestLimitExceeded","BandwidthLimitExceeded","SlowDown","ServiceUnavailable","ServiceUnavailableException","InternalError","InternalFailure","InternalServerError","InternalServiceException","TransientError","TransientFailure","IDPCommunicationErrorException","NetworkError","ConnectionRefusedException","EC2ThrottledException","503 Slow Down","500 InternalError"].includes(t)}isRetryableStatusCode(t){return t>=500||t===429}shouldRetry(t){if(t.name==="FetchError"||t.name==="TypeError"||t.code==="ECONNRESET")return!0;if(t.code&&this.isRetryableError(t.code))return!0;if(t.statusCode&&this.isRetryableStatusCode(t.statusCode))return!0;if(t.statusCode&&t.statusCode>=400&&t.statusCode<500&&t.statusCode!==429)return!1;if(t.statusCode)return!1;return!0}calculateRetryDelay(t){let e=this.config.retryDelay??1000,r=30000,i=Math.min(e*2**t,30000),s=Math.random()*0.3*i;return i+s}sleep(t){return new Promise((e)=>setTimeout(e,t))}getFromCache(t){let e=this.cache.get(t);if(!e)return null;if(Date.now()>e.expires)return this.cache.delete(t),null;return e.data}setInCache(t,e,r){this.cache.set(t,{data:e,expires:Date.now()+r})}clearCache(){this.cache.clear()}clearExpiredCache(){let t=Date.now();for(let[e,r]of this.cache.entries())if(t>r.expires)this.cache.delete(e)}}function N(t){let e={};for(let[r,i]of Object.entries(t)){if(i===void 0||i===null)continue;if(Array.isArray(i))i.forEach((s,n)=>{e[`${r}.${n+1}`]=String(s)});else if(typeof i==="object")for(let[s,n]of Object.entries(i))e[`${r}.${s}`]=String(n);else e[r]=String(i)}return e}function xs(){let t=process.env.AWS_ACCESS_KEY_ID,e=process.env.AWS_SECRET_ACCESS_KEY,r=t==="",i=e==="";if(t&&e)return{source:"env",emptyEnvKey:r,emptyEnvSecret:i,description:"environment variables (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)"};let s=process.env.AWS_PROFILE||"default",n=process.env.AWS_SHARED_CREDENTIALS_FILE||K(B(),".aws","credentials");if(W(n))return{source:"file",profile:s,emptyEnvKey:r,emptyEnvSecret:i,description:`~/.aws/credentials (profile: ${s})`};return{source:"ec2",emptyEnvKey:r,emptyEnvSecret:i,description:"EC2 instance metadata service (IMDSv2)"}}
6
+ export{di,u,N,xs};
@@ -0,0 +1 @@
1
+ import{ci}from"./chunk-z4rx32w4.js";import"./chunk-frbwzrx4.js";import"./chunk-hn961k5f.js";import"./chunk-rt51mrj9.js";import"./chunk-xenj3py3.js";import"./chunk-jq36fh46.js";import"./chunk-1k1dyh5k.js";import"./chunk-afzrsjmc.js";import"./chunk-98m9rbpk.js";export{ci as resolveDashboardData};
@@ -0,0 +1 @@
1
+ import{di,u,N,xs}from"./chunk-afzrsjmc.js";export{u as AWSClient,N as buildQueryParams,xs as detectCredentialSource,di as resolveS3Endpoint};
@@ -0,0 +1 @@
1
+ import{qo}from"./chunk-850n63e0.js";export{qo as encodeDashboardPayload};