@stacksjs/ts-cloud 0.16.16 → 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 (177) hide show
  1. package/dist/aws/index.js +1 -1
  2. package/dist/bin/{chunk-m5wc1ent.js → chunk-1aqrfqbz.js} +1 -1
  3. package/dist/bin/{chunk-2943bszc.js → chunk-1k1dyh5k.js} +1 -1
  4. package/dist/bin/{chunk-2v91xnqx.js → chunk-30jk87p4.js} +2 -2
  5. package/dist/bin/{chunk-n02421y9.js → chunk-36aywmsq.js} +1 -1
  6. package/dist/bin/{chunk-80295akq.js → chunk-6wc8a9cs.js} +2 -2
  7. package/dist/bin/chunk-71rdf1sw.js +1 -0
  8. package/dist/bin/{chunk-vx9mmpaz.js → chunk-75kmf1ke.js} +1 -1
  9. package/dist/bin/chunk-7q37vt87.js +1 -0
  10. package/dist/bin/{chunk-gv9deppc.js → chunk-850n63e0.js} +2 -2
  11. package/dist/bin/{chunk-tfasfg4a.js → chunk-8af2sky9.js} +1 -1
  12. package/dist/bin/chunk-8r0gvent.js +1 -0
  13. package/dist/bin/{chunk-v93xyx1p.js → chunk-925xkkf9.js} +1 -1
  14. package/dist/bin/{chunk-tc24txss.js → chunk-94pvxv17.js} +1 -1
  15. package/dist/bin/{chunk-zzmk290g.js → chunk-98m9rbpk.js} +28 -28
  16. package/dist/bin/{chunk-cs6a98r1.js → chunk-afzrsjmc.js} +2 -2
  17. package/dist/bin/chunk-am4recks.js +1 -0
  18. package/dist/bin/chunk-az3emrhh.js +1 -0
  19. package/dist/bin/chunk-btfh77e4.js +1 -0
  20. package/dist/bin/{chunk-khta83xb.js → chunk-bxfnhnqd.js} +13 -13
  21. package/dist/bin/chunk-bxy657va.js +1 -0
  22. package/dist/bin/{chunk-2w591cvg.js → chunk-d5sd5xtt.js} +1 -1
  23. package/dist/bin/{chunk-pd8tk3z5.js → chunk-dg918k6w.js} +1 -1
  24. package/dist/bin/{chunk-xxf1vhfr.js → chunk-e7kqxsqh.js} +1 -1
  25. package/dist/bin/{chunk-y4c26gaf.js → chunk-etvcw9we.js} +1 -1
  26. package/dist/bin/{chunk-dczw0nxw.js → chunk-evtcxme1.js} +4 -4
  27. package/dist/bin/chunk-fbhf8kh5.js +1 -0
  28. package/dist/bin/{chunk-bhay1f8a.js → chunk-frbwzrx4.js} +1 -1
  29. package/dist/bin/{chunk-j0wfftk1.js → chunk-fren71ry.js} +1 -1
  30. package/dist/bin/{chunk-fddwwac7.js → chunk-g0z3a0wx.js} +1 -1
  31. package/dist/bin/{chunk-b3yp7bak.js → chunk-g8yaztb1.js} +1 -1
  32. package/dist/bin/{chunk-edfh9ts2.js → chunk-g954ew3x.js} +1 -1
  33. package/dist/bin/{chunk-tvv6vdx6.js → chunk-gn745j0p.js} +1 -1
  34. package/dist/bin/{chunk-j76935z3.js → chunk-hn961k5f.js} +3 -3
  35. package/dist/bin/{chunk-vx9qk1g1.js → chunk-jq36fh46.js} +1 -1
  36. package/dist/bin/{chunk-zacbzz1w.js → chunk-kymrvq47.js} +1 -1
  37. package/dist/bin/chunk-mtbav1sg.js +1 -0
  38. package/dist/bin/chunk-pk2xwzke.js +1 -0
  39. package/dist/bin/{chunk-whww424p.js → chunk-q6cayjpr.js} +75 -75
  40. package/dist/bin/{chunk-90c3rkd8.js → chunk-r2vrq2gr.js} +4 -4
  41. package/dist/bin/{chunk-yk4p2k8w.js → chunk-rt51mrj9.js} +1 -1
  42. package/dist/bin/chunk-s5br13d9.js +724 -0
  43. package/dist/bin/chunk-sbhbne4d.js +1 -0
  44. package/dist/bin/chunk-sd0twb8d.js +1 -0
  45. package/dist/bin/chunk-va8pr0ch.js +1 -0
  46. package/dist/bin/{chunk-fjz07v7g.js → chunk-va9y882b.js} +1 -1
  47. package/dist/bin/chunk-vwa96q94.js +1 -0
  48. package/dist/bin/{chunk-3qfd0vnc.js → chunk-xenj3py3.js} +3 -3
  49. package/dist/bin/chunk-y6vnwk4e.js +1 -0
  50. package/dist/bin/chunk-y7w98fc1.js +1 -0
  51. package/dist/bin/chunk-yw65b70x.js +1 -0
  52. package/dist/bin/{chunk-3x4p2s2r.js → chunk-z4rx32w4.js} +1 -1
  53. package/dist/bin/chunk-z65rp2mn.js +1 -0
  54. package/dist/bin/{chunk-1baj8p0r.js → chunk-znfh0mx7.js} +1 -1
  55. package/dist/bin/cli.js +118 -118
  56. package/dist/bin/dashboard-server.js +1 -1
  57. package/dist/{chunk-a6aw2jtz.js → chunk-1ayadqry.js} +6 -6
  58. package/dist/{chunk-jgv0x24e.js → chunk-2ht2ve4t.js} +1 -1
  59. package/dist/{chunk-emx1j2yt.js → chunk-2vr8rqg8.js} +1 -1
  60. package/dist/chunk-3jrvr0pv.js +1 -0
  61. package/dist/{chunk-6eq5xfcx.js → chunk-3rh4m6ag.js} +1 -1
  62. package/dist/chunk-4bcf62qk.js +584 -0
  63. package/dist/{chunk-ss4q8kge.js → chunk-590gwv9d.js} +4 -4
  64. package/dist/{chunk-0bbrbzf9.js → chunk-6jzg0gtw.js} +4 -4
  65. package/dist/{chunk-jncbm332.js → chunk-6m18fz5f.js} +85 -85
  66. package/dist/{chunk-a21phhyj.js → chunk-81yetzg2.js} +3 -3
  67. package/dist/{chunk-fdn4wnd8.js → chunk-84w9n41b.js} +7 -7
  68. package/dist/{chunk-gn42mekr.js → chunk-a9pqpqrh.js} +1 -1
  69. package/dist/chunk-ajwt2hzh.js +1 -0
  70. package/dist/{chunk-4twnkjyq.js → chunk-enhddb1a.js} +2 -2
  71. package/dist/{chunk-g0yyw5k8.js → chunk-f3hhmec2.js} +1 -1
  72. package/dist/{chunk-z87dekhm.js → chunk-fw9hk0xt.js} +2 -2
  73. package/dist/{chunk-gstz8w2d.js → chunk-hasa64d4.js} +2 -2
  74. package/dist/{chunk-whwg2nzb.js → chunk-m1x32x81.js} +5 -5
  75. package/dist/chunk-mcxmdch0.js +1 -0
  76. package/dist/{chunk-4xta1s4z.js → chunk-mytcpvg5.js} +1 -1
  77. package/dist/{chunk-rmn71xjb.js → chunk-nca98yaf.js} +20 -20
  78. package/dist/{chunk-yxn6tpbg.js → chunk-nz3ygqjb.js} +1 -1
  79. package/dist/{chunk-pekptc1b.js → chunk-pn8bczhy.js} +5 -5
  80. package/dist/{chunk-sm5rn3db.js → chunk-r2v44ba2.js} +19 -19
  81. package/dist/chunk-wqhhvh3k.js +1 -0
  82. package/dist/{chunk-rgw06xbk.js → chunk-x3xs6qvx.js} +4 -4
  83. package/dist/chunk-xhn2v84m.js +1 -0
  84. package/dist/{chunk-fz70vxrk.js → chunk-ygrxsjcz.js} +2 -2
  85. package/dist/{chunk-wdrqt329.js → chunk-ynjfj2rt.js} +112 -112
  86. package/dist/{chunk-v9t92ak2.js → chunk-z13hksc9.js} +2 -2
  87. package/dist/deploy/index.js +1 -1
  88. package/dist/dns/index.js +1 -1
  89. package/dist/drivers/index.d.ts +2 -0
  90. package/dist/drivers/index.js +1 -1
  91. package/dist/drivers/shared/deploy-script.d.ts +7 -5
  92. package/dist/drivers/shared/host-cleanup.d.ts +90 -0
  93. package/dist/index.d.ts +1 -1
  94. package/dist/index.js +21 -21
  95. package/dist/operations/index.js +1 -1
  96. package/dist/protection/index.js +1 -1
  97. package/dist/spend/index.js +1 -1
  98. package/dist/ui/404.html +1 -1
  99. package/dist/ui/accept-invitation.html +1 -1
  100. package/dist/ui/access-denied.html +1 -1
  101. package/dist/ui/account/automation.html +5 -5
  102. package/dist/ui/account/security.html +2 -2
  103. package/dist/ui/applications/compose.html +6 -6
  104. package/dist/ui/applications/new.html +2 -2
  105. package/dist/ui/data/backups.html +6 -6
  106. package/dist/ui/data/services.html +6 -6
  107. package/dist/ui/data/volumes.html +6 -6
  108. package/dist/ui/index.html +5 -5
  109. package/dist/ui/infrastructure/topology.html +6 -6
  110. package/dist/ui/integrations.html +2 -2
  111. package/dist/ui/operations/alerts.html +5 -5
  112. package/dist/ui/operations/configuration.html +6 -6
  113. package/dist/ui/operations/jobs.html +6 -6
  114. package/dist/ui/operations/maintenance.html +6 -6
  115. package/dist/ui/operations/observability.html +6 -6
  116. package/dist/ui/operations/previews.html +6 -6
  117. package/dist/ui/operations/queue.html +6 -6
  118. package/dist/ui/operations/regions.html +6 -6
  119. package/dist/ui/operations/releases.html +6 -6
  120. package/dist/ui/operations/spend.html +6 -6
  121. package/dist/ui/operations/workloads.html +6 -6
  122. package/dist/ui/security.html +2 -2
  123. package/dist/ui/server/actions.html +6 -6
  124. package/dist/ui/server/activity.html +2 -2
  125. package/dist/ui/server/capacity.html +6 -6
  126. package/dist/ui/server/database.html +5 -5
  127. package/dist/ui/server/deployments.html +5 -5
  128. package/dist/ui/server/diagnostics.html +2 -2
  129. package/dist/ui/server/firewall.html +6 -6
  130. package/dist/ui/server/fleet.html +5 -5
  131. package/dist/ui/server/logs.html +6 -6
  132. package/dist/ui/server/metrics.html +5 -5
  133. package/dist/ui/server/security.html +2 -2
  134. package/dist/ui/server/services.html +2 -2
  135. package/dist/ui/server/sites.html +5 -5
  136. package/dist/ui/server/ssh-keys.html +6 -6
  137. package/dist/ui/server/team.html +6 -6
  138. package/dist/ui/server/terminal.html +2 -2
  139. package/dist/ui/serverless/alarms.html +6 -6
  140. package/dist/ui/serverless/assets.html +2 -2
  141. package/dist/ui/serverless/cost.html +2 -2
  142. package/dist/ui/serverless/data.html +6 -6
  143. package/dist/ui/serverless/deployments.html +2 -2
  144. package/dist/ui/serverless/firewall.html +2 -2
  145. package/dist/ui/serverless/functions.html +6 -6
  146. package/dist/ui/serverless/logs.html +6 -6
  147. package/dist/ui/serverless/metrics.html +2 -2
  148. package/dist/ui/serverless/queues.html +6 -6
  149. package/dist/ui/serverless/secrets.html +6 -6
  150. package/dist/ui/serverless/traces.html +6 -6
  151. package/dist/ui/serverless.html +6 -6
  152. package/package.json +3 -3
  153. package/dist/bin/chunk-2tn43y0d.js +0 -1
  154. package/dist/bin/chunk-4v6f496n.js +0 -1
  155. package/dist/bin/chunk-64cdtvar.js +0 -1
  156. package/dist/bin/chunk-66egshmp.js +0 -1
  157. package/dist/bin/chunk-7raskz63.js +0 -1
  158. package/dist/bin/chunk-9bxyy4th.js +0 -1
  159. package/dist/bin/chunk-bbt0vyzj.js +0 -1
  160. package/dist/bin/chunk-cpcae7e2.js +0 -1
  161. package/dist/bin/chunk-dsc7ef1w.js +0 -1
  162. package/dist/bin/chunk-f2wn46nw.js +0 -1
  163. package/dist/bin/chunk-ffcyj2jj.js +0 -1
  164. package/dist/bin/chunk-gbejgj71.js +0 -1
  165. package/dist/bin/chunk-kjbkwzxd.js +0 -1
  166. package/dist/bin/chunk-knthwdhz.js +0 -1
  167. package/dist/bin/chunk-nm000jpj.js +0 -725
  168. package/dist/bin/chunk-pjgbnk3q.js +0 -1
  169. package/dist/bin/chunk-rn0pgnt4.js +0 -1
  170. package/dist/bin/chunk-xtzy90zh.js +0 -1
  171. package/dist/bin/chunk-z6mnhd0j.js +0 -1
  172. package/dist/chunk-051jwkd2.js +0 -1
  173. package/dist/chunk-1gne7rkf.js +0 -1
  174. package/dist/chunk-38c310s1.js +0 -1
  175. package/dist/chunk-acpxtkfy.js +0 -585
  176. package/dist/chunk-dk3t3hgq.js +0 -1
  177. package/dist/chunk-qc2v4h2q.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 _s(){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,_s};
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};