@stacksjs/ts-cloud 0.12.10 → 0.12.12

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 (201) hide show
  1. package/dist/aws/index.js +1 -1
  2. package/dist/bin/{chunk-d7ke90zt.js → chunk-0b49jjgr.js} +1 -1
  3. package/dist/bin/chunk-0xnnkeb1.js +1 -0
  4. package/dist/bin/{chunk-9a88fp00.js → chunk-227jmf2b.js} +2 -2
  5. package/dist/bin/chunk-2nyyg44g.js +1 -0
  6. package/dist/bin/{chunk-e2bybahr.js → chunk-2ztr119n.js} +1 -1
  7. package/dist/bin/chunk-43xj5cny.js +1 -0
  8. package/dist/bin/chunk-5w6y9pmz.js +1 -0
  9. package/dist/bin/{chunk-8ewncfce.js → chunk-5x4rdx8k.js} +1 -1
  10. package/dist/bin/chunk-6zc6a6t3.js +725 -0
  11. package/dist/bin/chunk-7aagqqr9.js +1 -0
  12. package/dist/{chunk-pb47hr0h.js → bin/chunk-85qrgshq.js} +1 -1
  13. package/dist/bin/{chunk-c0bdafbx.js → chunk-8zk8msx0.js} +1 -1
  14. package/dist/bin/chunk-9j83q0r4.js +1 -0
  15. package/dist/bin/{chunk-b4wt9jcg.js → chunk-9nhqbes6.js} +2 -2
  16. package/dist/bin/chunk-a4js49mx.js +1 -0
  17. package/dist/bin/{chunk-6tfwm33r.js → chunk-a9e0hvwe.js} +3 -3
  18. package/dist/bin/{chunk-cd0ps58j.js → chunk-a9tgxf2h.js} +1 -1
  19. package/dist/bin/chunk-aahrv359.js +1 -0
  20. package/dist/bin/{chunk-zpe64t4r.js → chunk-bfx23be3.js} +1 -1
  21. package/dist/bin/{chunk-tfbs8k8v.js → chunk-bpps61am.js} +1 -1
  22. package/dist/bin/{chunk-ja1vjdn1.js → chunk-bzth6d1s.js} +1 -1
  23. package/dist/bin/{chunk-0zwknfwp.js → chunk-ca3taw2m.js} +1 -1
  24. package/dist/bin/chunk-cgzp0328.js +1 -0
  25. package/dist/{chunk-w2ddj42w.js → bin/chunk-d2aaef9v.js} +1 -1
  26. package/dist/bin/{chunk-xk08030d.js → chunk-e0z2t4mf.js} +2 -2
  27. package/dist/bin/{chunk-btsyjhk7.js → chunk-e2dnxp8d.js} +2 -2
  28. package/dist/bin/{chunk-s4yzes15.js → chunk-empfsmdk.js} +1 -1
  29. package/dist/bin/chunk-er3mww4m.js +1 -0
  30. package/dist/bin/{chunk-azymqbcy.js → chunk-fmp5bv0j.js} +1 -1
  31. package/dist/bin/{chunk-71t1gmsq.js → chunk-g3kp5ddx.js} +1 -1
  32. package/dist/bin/{chunk-q5cmfpzt.js → chunk-grepda40.js} +1 -1
  33. package/dist/{chunk-c8cadhgc.js → bin/chunk-h6xqtypj.js} +2 -2
  34. package/dist/bin/{chunk-3aph4c1w.js → chunk-hwk9ahms.js} +1 -1
  35. package/dist/bin/{chunk-dz1ec589.js → chunk-jxd3j00s.js} +2 -2
  36. package/dist/bin/{chunk-my3ewh3a.js → chunk-k1xw3zbm.js} +2 -2
  37. package/dist/bin/{chunk-ehc63fvs.js → chunk-m07s5esk.js} +1 -1
  38. package/dist/bin/{chunk-e5ab5twy.js → chunk-m9r5jype.js} +2 -2
  39. package/dist/bin/{chunk-4q6tad44.js → chunk-n20kbxwb.js} +91 -91
  40. package/dist/bin/{chunk-kg61p5hw.js → chunk-n2fnav53.js} +2 -2
  41. package/dist/bin/{chunk-w32xv8n4.js → chunk-nv211m42.js} +2 -2
  42. package/dist/bin/chunk-psgjy3z4.js +1 -0
  43. package/dist/bin/chunk-qmnr82da.js +1 -0
  44. package/dist/bin/{chunk-mcr0r4at.js → chunk-qqpb82ty.js} +2 -2
  45. package/dist/bin/{chunk-xhwqpgwq.js → chunk-rqc8btkj.js} +1 -1
  46. package/dist/bin/chunk-rs85xvt7.js +1 -0
  47. package/dist/bin/{chunk-hq9x489e.js → chunk-t5ngva49.js} +1 -1
  48. package/dist/bin/{chunk-82mj52xr.js → chunk-t7rcfwqc.js} +1 -1
  49. package/dist/bin/{chunk-vj2dp0nh.js → chunk-tjgy10zm.js} +6 -6
  50. package/dist/bin/chunk-v0beqdna.js +1 -0
  51. package/dist/bin/chunk-vf2s3tba.js +1 -0
  52. package/dist/bin/{chunk-0thy7q96.js → chunk-vzkfjrx2.js} +74 -75
  53. package/dist/bin/{chunk-rtecnmts.js → chunk-wcem4cqb.js} +2 -2
  54. package/dist/bin/chunk-wsh5ervz.js +1 -0
  55. package/dist/bin/chunk-xenhbdmr.js +1 -0
  56. package/dist/bin/chunk-xrdpxwbf.js +1 -0
  57. package/dist/bin/{chunk-mfrf9q4b.js → chunk-y68m9bx7.js} +1 -1
  58. package/dist/bin/cli.js +143 -143
  59. package/dist/bin/dashboard-server.js +1 -1
  60. package/dist/{chunk-982rye5b.js → chunk-2ybcnrte.js} +1 -1
  61. package/dist/chunk-4884der5.js +1 -0
  62. package/dist/{bin/chunk-9kf0np8j.js → chunk-4wdxsnn2.js} +1 -1
  63. package/dist/{bin/chunk-xkfrqqcs.js → chunk-5hhyyhjt.js} +1 -1
  64. package/dist/chunk-5zkacdw1.js +1 -0
  65. package/dist/{chunk-557qj7q9.js → chunk-6cxb8d6y.js} +2 -2
  66. package/dist/chunk-6f68caq0.js +1 -0
  67. package/dist/{chunk-2qm3rw8b.js → chunk-7z50g5xz.js} +2 -2
  68. package/dist/chunk-8fh4m5ge.js +1 -0
  69. package/dist/chunk-97pb7wb1.js +1 -0
  70. package/dist/{chunk-a368cs92.js → chunk-ac87ds1k.js} +1 -1
  71. package/dist/{chunk-qrte4gy2.js → chunk-dndxwssj.js} +1 -1
  72. package/dist/{chunk-y3tbcxb7.js → chunk-ea7tn8nn.js} +89 -90
  73. package/dist/{bin/chunk-a7w13qfm.js → chunk-ess6vxfj.js} +2 -2
  74. package/dist/{chunk-rg7d67xk.js → chunk-j06r5rwv.js} +1 -1
  75. package/dist/{chunk-70v77sqv.js → chunk-j1g67djb.js} +2 -2
  76. package/dist/{chunk-fbwpm0zm.js → chunk-k8x8mrkr.js} +1 -1
  77. package/dist/{chunk-82gezmen.js → chunk-mnmz8t7q.js} +1 -1
  78. package/dist/{chunk-7j100g7w.js → chunk-n1fyryha.js} +1 -1
  79. package/dist/{chunk-c1hr34a5.js → chunk-n1hg0jxs.js} +2 -2
  80. package/dist/{chunk-bcffjsnj.js → chunk-n5xmh0ma.js} +1 -1
  81. package/dist/chunk-q22qfwsc.js +22 -0
  82. package/dist/{chunk-5hkq5081.js → chunk-q9a1z53k.js} +2 -2
  83. package/dist/{chunk-fsssdd5k.js → chunk-r8t25tbm.js} +91 -91
  84. package/dist/chunk-t8hzekmk.js +585 -0
  85. package/dist/{chunk-2k0mt6j5.js → chunk-whyttetx.js} +1 -1
  86. package/dist/{chunk-gkj1tpsn.js → chunk-yf8stygs.js} +1 -1
  87. package/dist/{chunk-jphewtbx.js → chunk-ze5x2bpm.js} +1 -1
  88. package/dist/{chunk-jxrs1219.js → chunk-zh0apedk.js} +2 -2
  89. package/dist/{chunk-0hw5wjjg.js → chunk-zjyz926j.js} +1 -1
  90. package/dist/deploy/index.js +1 -1
  91. package/dist/dns/index.js +1 -1
  92. package/dist/drivers/hetzner/cloud-init.d.ts +14 -1
  93. package/dist/drivers/hetzner/driver.d.ts +2 -15
  94. package/dist/drivers/hetzner/state.d.ts +17 -2
  95. package/dist/drivers/index.d.ts +17 -1
  96. package/dist/drivers/index.js +1 -1
  97. package/dist/drivers/local-box/driver.d.ts +1 -1
  98. package/dist/drivers/shared/compute-deploy.d.ts +0 -12
  99. package/dist/drivers/shared/compute-provision.d.ts +7 -0
  100. package/dist/drivers/shared/driver-state.d.ts +68 -0
  101. package/dist/drivers/shared/remote-exec.d.ts +10 -1
  102. package/dist/drivers/shared/remote-failure.d.ts +41 -0
  103. package/dist/drivers/shared/rpx-gateway.d.ts +124 -4
  104. package/dist/drivers/shared/ssh-transport.d.ts +121 -0
  105. package/dist/drivers/ssh/bootstrap.d.ts +71 -0
  106. package/dist/drivers/ssh/config.d.ts +94 -0
  107. package/dist/drivers/ssh/config.test.d.ts +1 -0
  108. package/dist/drivers/ssh/driver.d.ts +107 -0
  109. package/dist/drivers/ssh/factory-wiring.test.d.ts +1 -0
  110. package/dist/drivers/ssh/first-boot.d.ts +38 -0
  111. package/dist/drivers/ssh/preflight.d.ts +76 -0
  112. package/dist/index.d.ts +2 -1
  113. package/dist/index.js +7 -7
  114. package/dist/operations/index.js +1 -1
  115. package/dist/operations/inventory.d.ts +46 -1
  116. package/dist/protection/index.js +1 -1
  117. package/dist/push/index.js +1 -1
  118. package/dist/spend/index.js +1 -1
  119. package/dist/ui/404.html +1 -1
  120. package/dist/ui/accept-invitation.html +1 -1
  121. package/dist/ui/access-denied.html +1 -1
  122. package/dist/ui/account/automation.html +5 -5
  123. package/dist/ui/account/security.html +2 -2
  124. package/dist/ui/applications/compose.html +5 -5
  125. package/dist/ui/applications/new.html +2 -2
  126. package/dist/ui/data/backups.html +6 -6
  127. package/dist/ui/data/services.html +6 -6
  128. package/dist/ui/data/volumes.html +5 -5
  129. package/dist/ui/index.html +6 -6
  130. package/dist/ui/infrastructure/topology.html +6 -6
  131. package/dist/ui/integrations.html +2 -2
  132. package/dist/ui/operations/alerts.html +6 -6
  133. package/dist/ui/operations/configuration.html +6 -6
  134. package/dist/ui/operations/jobs.html +6 -6
  135. package/dist/ui/operations/maintenance.html +5 -5
  136. package/dist/ui/operations/observability.html +6 -6
  137. package/dist/ui/operations/previews.html +6 -6
  138. package/dist/ui/operations/queue.html +6 -6
  139. package/dist/ui/operations/regions.html +5 -5
  140. package/dist/ui/operations/releases.html +6 -6
  141. package/dist/ui/operations/spend.html +6 -6
  142. package/dist/ui/operations/workloads.html +5 -5
  143. package/dist/ui/security.html +1 -1
  144. package/dist/ui/server/actions.html +5 -5
  145. package/dist/ui/server/activity.html +2 -2
  146. package/dist/ui/server/capacity.html +6 -6
  147. package/dist/ui/server/database.html +5 -5
  148. package/dist/ui/server/deployments.html +5 -5
  149. package/dist/ui/server/diagnostics.html +2 -2
  150. package/dist/ui/server/firewall.html +6 -6
  151. package/dist/ui/server/fleet.html +5 -5
  152. package/dist/ui/server/logs.html +6 -6
  153. package/dist/ui/server/metrics.html +5 -5
  154. package/dist/ui/server/security.html +2 -2
  155. package/dist/ui/server/services.html +1 -1
  156. package/dist/ui/server/sites.html +6 -6
  157. package/dist/ui/server/ssh-keys.html +6 -6
  158. package/dist/ui/server/team.html +6 -6
  159. package/dist/ui/server/terminal.html +2 -2
  160. package/dist/ui/serverless/alarms.html +6 -6
  161. package/dist/ui/serverless/assets.html +2 -2
  162. package/dist/ui/serverless/cost.html +2 -2
  163. package/dist/ui/serverless/data.html +6 -6
  164. package/dist/ui/serverless/deployments.html +2 -2
  165. package/dist/ui/serverless/firewall.html +1 -1
  166. package/dist/ui/serverless/functions.html +6 -6
  167. package/dist/ui/serverless/logs.html +6 -6
  168. package/dist/ui/serverless/metrics.html +1 -1
  169. package/dist/ui/serverless/queues.html +6 -6
  170. package/dist/ui/serverless/secrets.html +6 -6
  171. package/dist/ui/serverless/traces.html +6 -6
  172. package/dist/ui/serverless.html +6 -6
  173. package/dist/ui-src/src/charts.ts +1 -1
  174. package/dist/ui-src/src/topology.ts +1 -1
  175. package/package.json +3 -3
  176. package/dist/bin/chunk-04dkwaqp.js +0 -1
  177. package/dist/bin/chunk-5nkqza92.js +0 -1
  178. package/dist/bin/chunk-64vczwwt.js +0 -1
  179. package/dist/bin/chunk-7g2ahkse.js +0 -1
  180. package/dist/bin/chunk-aw8bhggq.js +0 -594
  181. package/dist/bin/chunk-cxt74wsj.js +0 -1
  182. package/dist/bin/chunk-djg4zyqk.js +0 -1
  183. package/dist/bin/chunk-dkaz333b.js +0 -1
  184. package/dist/bin/chunk-edvvx3hg.js +0 -1
  185. package/dist/bin/chunk-f06c5np9.js +0 -1
  186. package/dist/bin/chunk-gq8794k6.js +0 -1
  187. package/dist/bin/chunk-k3120rx6.js +0 -1
  188. package/dist/bin/chunk-nw3d4k52.js +0 -1
  189. package/dist/bin/chunk-p70bc9yr.js +0 -1
  190. package/dist/bin/chunk-sg1g92cf.js +0 -1
  191. package/dist/bin/chunk-tvz9c388.js +0 -1
  192. package/dist/bin/chunk-y1h63vpm.js +0 -1
  193. package/dist/bin/chunk-zdt2rjk6.js +0 -1
  194. package/dist/bin/chunk-zh2d4704.js +0 -1
  195. package/dist/chunk-1bj94sc2.js +0 -1
  196. package/dist/chunk-3swnmwfc.js +0 -454
  197. package/dist/chunk-5pbtmy2k.js +0 -1
  198. package/dist/chunk-7sc8t7v1.js +0 -1
  199. package/dist/chunk-gny5s4kp.js +0 -1
  200. package/dist/chunk-qpjcd415.js +0 -22
  201. package/dist/chunk-xkw7h4pw.js +0 -1
package/dist/aws/index.js CHANGED
@@ -1 +1 @@
1
- import{$e as Fa,Ae as ea,Af as eb,Be as fa,Bf as fb,Ce as ga,Cf as gb,De as ha,Df as hb,Ee as ia,Ef as ib,Fe as ja,Ff as jb,Ge as ka,Gf as kb,He as la,Hf as lb,Ie as ma,If as mb,Je as na,Jf as nb,Ke as oa,Kf as ob,Le as pa,Lf as pb,Me as qa,Mf as qb,Ne as ra,Nf as rb,Oe as sa,Of as sb,Pe as ta,Pf as tb,Qe as ua,Re as va,Se as wa,Te as xa,Ue as ya,Ve as za,We as Aa,Xe as Ba,Ye as Ca,Ze as Da,_e as Ea,af as Ga,bf as Ha,cf as Ia,df as Ja,ef as Ka,ff as La,gf as Ma,hf as Na,ie as k,if as Oa,je as l,jf as Pa,ke as m,kf as Qa,le as n,lf as Ra,me as o,mf as Sa,ne as p,nf as Ta,oe as q,of as Ua,pe as r,pf as Va,qe as t,qf as Wa,re as w,rf as Xa,se as V,sf as Ya,te as X,tf as Za,ue as Y,uf as _a,ve as Z,vf as $a,we as _,wf as ab,xe as aa,xf as bb,ye as ba,yf as cb,ze as ca,zf as db}from"../chunk-gkj1tpsn.js";import{Qf as e,Rf as h,Sf as i,Tf as j}from"../chunk-82gezmen.js";import{Uf as v}from"../chunk-7j100g7w.js";import{Vf as U}from"../chunk-jphewtbx.js";import{Wf as da}from"../chunk-fbwpm0zm.js";import{$f as A,Xf as x,Yf as y,Zf as z,ag as B,bg as C,cg as D,dg as E,eg as F,fg as G,gg as H,hg as I,ig as J,jg as K,kg as L,lg as M,mg as N,ng as O,og as P,pg as Q,qg as R,rg as S,sg as T}from"../chunk-rg7d67xk.js";import{tg as f}from"../chunk-982rye5b.js";import{qi as u,ri as W}from"../chunk-557qj7q9.js";import{si as s}from"../chunk-c8cadhgc.js";import{ui as g}from"../chunk-70v77sqv.js";import{vi as a,wi as b,xi as c,yi as d}from"../chunk-a368cs92.js";import"../chunk-0hw5wjjg.js";export{S as ACMClient,T as ACMDnsValidator,b as AWSClient,Wa as ApplicationAutoScalingClient,l as AwsBackupClient,ka as BedrockAgentClient,ja as BedrockAgentRuntimeClient,ia as BedrockClient,ha as BedrockRuntimeClient,s as CloudFormationClient,v as CloudFrontClient,aa as CloudWatchLogsClient,A as CloudflareProvider,pa as ComprehendClient,ba as ConnectClient,t as CostExplorerClient,Q as DnsProviderFactory,ea as DynamoDBClient,u as EC2Client,U as ECRClient,V as ECSClient,tb as EFSClient,ca as ELBv2Client,Ua as ElastiCacheClient,i as EmailClient,Ta as EventBridgeClient,z as GoDaddyProvider,e as IAMClient,Xa as ImapServer,Qa as KendraClient,_ as LambdaClient,fa as OpenSearchClient,x as PROXIABLE_RECORD_TYPES,Ka as PersonalizeClient,Ma as PersonalizeEventsClient,La as PersonalizeRuntimeClient,Ca as PollyClient,y as PorkbunProvider,da as RDSClient,ua as RekognitionClient,f as Route53Client,w as Route53DomainsClient,F as Route53Provider,g as S3Client,h as SESClient,Y as SNSClient,Z as SQSClient,W as SSMClient,k as STSClient,Va as SchedulerClient,X as SecretsManagerClient,$a as SmsClient,sb as SmsVoiceClient,Za as SmtpServer,nb as SupportClient,ob as SupportTemplates,ya as TextractClient,ga as TranscribeClient,Ga as TranslateClient,K as UnifiedDnsValidator,jb as VoiceClient,qa as analyzeSentiment,I as applyZoneMigration,c as buildQueryParams,na as completeWithClaude,ta as containsPii,wa as countFacesInS3Image,db as createDeliveryReceiptHandler,O as createDnsProvider,M as createGoDaddyValidator,r as createObjectStorageClient,L as createPorkbunValidator,lb as createRecordingHandler,N as createRoute53Validator,Fa as createSSML,bb as createScheduledSmsHandler,cb as createSmsClient,ab as createSmsInboxHandler,rb as createSmsInfrastructure,mb as createVoiceClient,kb as createVoicemailHandler,d as detectCredentialSource,P as detectDnsProvider,va as detectLabelsFromS3,sa as detectLanguage,R as dnsProviders,j as email,G as exportRoute53Zone,ra as extractEntities,Aa as extractFormsFromS3,Ba as extractTablesFromS3,za as extractTextFromS3,fb as formatPhoneNumber,oa as generateEmbeddings,hb as getCountryCode,Na as getRecommendations,Oa as getSimilarItems,qb as getSmsInfrastructureStatus,xa as isContentSafe,ib as isSamePhoneNumber,gb as isValidPhoneNumber,n as keyMatchesFilters,ma as listClaudeModels,Ja as listLanguages,Ea as listVoices,o as migrateObjectStorage,eb as normalizePhoneNumber,H as planZoneMigration,B as policyTag,p as providerEndpoint,C as qualifyName,E as reconcileDeclaredRecords,m as remapKey,la as requestModelAccess,D as resolveDeclaredRecords,q as resolveObjectStorage,a as resolveS3Endpoint,Sa as retrieveForRag,Ra as search,pb as setupSmsInfrastructure,Ya as startImapServer,_a as startSmtpServer,Da as textToSpeech,Pa as trackEvent,Ha as translate,Ia as translateToMultiple,J as verifyZoneParity};
1
+ import{$e as Fa,Ae as ea,Af as eb,Be as fa,Bf as fb,Ce as ga,Cf as gb,De as ha,Df as hb,Ee as ia,Ef as ib,Fe as ja,Ff as jb,Ge as ka,Gf as kb,He as la,Hf as lb,Ie as ma,If as mb,Je as na,Jf as nb,Ke as oa,Kf as ob,Le as pa,Lf as pb,Me as qa,Mf as qb,Ne as ra,Nf as rb,Oe as sa,Of as sb,Pe as ta,Pf as tb,Qe as ua,Re as va,Se as wa,Te as xa,Ue as ya,Ve as za,We as Aa,Xe as Ba,Ye as Ca,Ze as Da,_e as Ea,af as Ga,bf as Ha,cf as Ia,df as Ja,ef as Ka,ff as La,gf as Ma,hf as Na,ie as k,if as Oa,je as l,jf as Pa,ke as m,kf as Qa,le as n,lf as Ra,me as o,mf as Sa,ne as p,nf as Ta,oe as q,of as Ua,pe as r,pf as Va,qe as t,qf as Wa,re as w,rf as Xa,se as V,sf as Ya,te as X,tf as Za,ue as Y,uf as _a,ve as Z,vf as $a,we as _,wf as ab,xe as aa,xf as bb,ye as ba,yf as cb,ze as ca,zf as db}from"../chunk-yf8stygs.js";import{Qf as e,Rf as h,Sf as i,Tf as j}from"../chunk-mnmz8t7q.js";import{Uf as v}from"../chunk-n1fyryha.js";import{Vf as U}from"../chunk-ze5x2bpm.js";import{Wf as da}from"../chunk-k8x8mrkr.js";import{$f as A,Xf as x,Yf as y,Zf as z,ag as B,bg as C,cg as D,dg as E,eg as F,fg as G,gg as H,hg as I,ig as J,jg as K,kg as L,lg as M,mg as N,ng as O,og as P,pg as Q,qg as R,rg as S,sg as T}from"../chunk-j06r5rwv.js";import{tg as f}from"../chunk-2ybcnrte.js";import{nj as u,oj as W}from"../chunk-6cxb8d6y.js";import{pj as s}from"../chunk-ess6vxfj.js";import{rj as g}from"../chunk-j1g67djb.js";import{sj as a,tj as b,uj as c,vj as d}from"../chunk-ac87ds1k.js";import"../chunk-zjyz926j.js";export{S as ACMClient,T as ACMDnsValidator,b as AWSClient,Wa as ApplicationAutoScalingClient,l as AwsBackupClient,ka as BedrockAgentClient,ja as BedrockAgentRuntimeClient,ia as BedrockClient,ha as BedrockRuntimeClient,s as CloudFormationClient,v as CloudFrontClient,aa as CloudWatchLogsClient,A as CloudflareProvider,pa as ComprehendClient,ba as ConnectClient,t as CostExplorerClient,Q as DnsProviderFactory,ea as DynamoDBClient,u as EC2Client,U as ECRClient,V as ECSClient,tb as EFSClient,ca as ELBv2Client,Ua as ElastiCacheClient,i as EmailClient,Ta as EventBridgeClient,z as GoDaddyProvider,e as IAMClient,Xa as ImapServer,Qa as KendraClient,_ as LambdaClient,fa as OpenSearchClient,x as PROXIABLE_RECORD_TYPES,Ka as PersonalizeClient,Ma as PersonalizeEventsClient,La as PersonalizeRuntimeClient,Ca as PollyClient,y as PorkbunProvider,da as RDSClient,ua as RekognitionClient,f as Route53Client,w as Route53DomainsClient,F as Route53Provider,g as S3Client,h as SESClient,Y as SNSClient,Z as SQSClient,W as SSMClient,k as STSClient,Va as SchedulerClient,X as SecretsManagerClient,$a as SmsClient,sb as SmsVoiceClient,Za as SmtpServer,nb as SupportClient,ob as SupportTemplates,ya as TextractClient,ga as TranscribeClient,Ga as TranslateClient,K as UnifiedDnsValidator,jb as VoiceClient,qa as analyzeSentiment,I as applyZoneMigration,c as buildQueryParams,na as completeWithClaude,ta as containsPii,wa as countFacesInS3Image,db as createDeliveryReceiptHandler,O as createDnsProvider,M as createGoDaddyValidator,r as createObjectStorageClient,L as createPorkbunValidator,lb as createRecordingHandler,N as createRoute53Validator,Fa as createSSML,bb as createScheduledSmsHandler,cb as createSmsClient,ab as createSmsInboxHandler,rb as createSmsInfrastructure,mb as createVoiceClient,kb as createVoicemailHandler,d as detectCredentialSource,P as detectDnsProvider,va as detectLabelsFromS3,sa as detectLanguage,R as dnsProviders,j as email,G as exportRoute53Zone,ra as extractEntities,Aa as extractFormsFromS3,Ba as extractTablesFromS3,za as extractTextFromS3,fb as formatPhoneNumber,oa as generateEmbeddings,hb as getCountryCode,Na as getRecommendations,Oa as getSimilarItems,qb as getSmsInfrastructureStatus,xa as isContentSafe,ib as isSamePhoneNumber,gb as isValidPhoneNumber,n as keyMatchesFilters,ma as listClaudeModels,Ja as listLanguages,Ea as listVoices,o as migrateObjectStorage,eb as normalizePhoneNumber,H as planZoneMigration,B as policyTag,p as providerEndpoint,C as qualifyName,E as reconcileDeclaredRecords,m as remapKey,la as requestModelAccess,D as resolveDeclaredRecords,q as resolveObjectStorage,a as resolveS3Endpoint,Sa as retrieveForRag,Ra as search,pb as setupSmsInfrastructure,Ya as startImapServer,_a as startSmtpServer,Da as textToSpeech,Pa as trackEvent,Ha as translate,Ia as translateToMultiple,J as verifyZoneParity};
@@ -1,2 +1,2 @@
1
- import{dh as u}from"./chunk-ja1vjdn1.js";class d{client;region;constructor(e="us-east-1",i){this.region=e,this.client=new u}async createQueue(e){let t={Action:"CreateQueue",QueueName:e.fifo&&!e.queueName.endsWith(".fifo")?`${e.queueName}.fifo`:e.queueName,Version:"2012-11-05"},s=1;if(e.visibilityTimeout!==void 0)t[`Attribute.${s}.Name`]="VisibilityTimeout",t[`Attribute.${s}.Value`]=e.visibilityTimeout.toString(),s++;if(e.messageRetentionPeriod!==void 0)t[`Attribute.${s}.Name`]="MessageRetentionPeriod",t[`Attribute.${s}.Value`]=e.messageRetentionPeriod.toString(),s++;if(e.delaySeconds!==void 0)t[`Attribute.${s}.Name`]="DelaySeconds",t[`Attribute.${s}.Value`]=e.delaySeconds.toString(),s++;if(e.maxMessageSize!==void 0)t[`Attribute.${s}.Name`]="MaximumMessageSize",t[`Attribute.${s}.Value`]=e.maxMessageSize.toString(),s++;if(e.receiveMessageWaitTime!==void 0)t[`Attribute.${s}.Name`]="ReceiveMessageWaitTimeSeconds",t[`Attribute.${s}.Value`]=e.receiveMessageWaitTime.toString(),s++;if(e.fifo){if(t[`Attribute.${s}.Name`]="FifoQueue",t[`Attribute.${s}.Value`]="true",s++,e.contentBasedDeduplication)t[`Attribute.${s}.Name`]="ContentBasedDeduplication",t[`Attribute.${s}.Value`]="true",s++}if(e.deadLetterTargetArn&&e.maxReceiveCount)t[`Attribute.${s}.Name`]="RedrivePolicy",t[`Attribute.${s}.Value`]=JSON.stringify({deadLetterTargetArn:e.deadLetterTargetArn,maxReceiveCount:e.maxReceiveCount}),s++;if(e.tags&&Object.keys(e.tags).length>0){let a=1;for(let[n,g]of Object.entries(e.tags))t[`Tag.${a}.Key`]=n,t[`Tag.${a}.Value`]=g,a++}let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{QueueUrl:r.QueueUrl||r.CreateQueueResult?.QueueUrl}}async listQueues(e){let i={Action:"ListQueues",Version:"2012-11-05"};if(e)i.QueueNamePrefix=e;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[];if(t.QueueUrl)s.push(t.QueueUrl);else if(t.ListQueuesResult?.QueueUrl)if(Array.isArray(t.ListQueuesResult.QueueUrl))s.push(...t.ListQueuesResult.QueueUrl);else s.push(t.ListQueuesResult.QueueUrl);return{QueueUrls:s}}async getQueueAttributes(e){let i={Action:"GetQueueAttributes",QueueUrl:e,Version:"2012-11-05","AttributeName.1":"All"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{Attributes:t.Attributes||t.GetQueueAttributesResult?.Attributes||{}}}async getQueueUrl(e){let i={Action:"GetQueueUrl",QueueName:e,Version:"2012-11-05"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{QueueUrl:t.QueueUrl||t.GetQueueUrlResult?.QueueUrl}}async deleteQueue(e){let i={Action:"DeleteQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async purgeQueue(e){let i={Action:"PurgeQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async sendMessage(e){let i={Action:"SendMessage",QueueUrl:e.queueUrl,MessageBody:e.messageBody,Version:"2012-11-05"};if(e.delaySeconds!==void 0)i.DelaySeconds=e.delaySeconds;if(e.messageGroupId)i.MessageGroupId=e.messageGroupId;if(e.messageDeduplicationId)i.MessageDeduplicationId=e.messageDeduplicationId;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{MessageId:t.MessageId||t.SendMessageResult?.MessageId}}async receiveMessages(e){let i={Action:"ReceiveMessage",QueueUrl:e.queueUrl,Version:"2012-11-05"};if(e.maxMessages!==void 0)i.MaxNumberOfMessages=e.maxMessages;if(e.visibilityTimeout!==void 0)i.VisibilityTimeout=e.visibilityTimeout;if(e.waitTimeSeconds!==void 0)i.WaitTimeSeconds=e.waitTimeSeconds;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[],r=t.Message||t.ReceiveMessageResult?.Message;if(r)if(Array.isArray(r))s.push(...r.map((a)=>({MessageId:a.MessageId,ReceiptHandle:a.ReceiptHandle,Body:a.Body})));else s.push({MessageId:r.MessageId,ReceiptHandle:r.ReceiptHandle,Body:r.Body});return{Messages:s}}async deleteMessage(e,i){let t={Action:"DeleteMessage",QueueUrl:e,ReceiptHandle:i,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}}
1
+ import{ph as u}from"./chunk-bzth6d1s.js";class d{client;region;constructor(e="us-east-1",i){this.region=e,this.client=new u}async createQueue(e){let t={Action:"CreateQueue",QueueName:e.fifo&&!e.queueName.endsWith(".fifo")?`${e.queueName}.fifo`:e.queueName,Version:"2012-11-05"},s=1;if(e.visibilityTimeout!==void 0)t[`Attribute.${s}.Name`]="VisibilityTimeout",t[`Attribute.${s}.Value`]=e.visibilityTimeout.toString(),s++;if(e.messageRetentionPeriod!==void 0)t[`Attribute.${s}.Name`]="MessageRetentionPeriod",t[`Attribute.${s}.Value`]=e.messageRetentionPeriod.toString(),s++;if(e.delaySeconds!==void 0)t[`Attribute.${s}.Name`]="DelaySeconds",t[`Attribute.${s}.Value`]=e.delaySeconds.toString(),s++;if(e.maxMessageSize!==void 0)t[`Attribute.${s}.Name`]="MaximumMessageSize",t[`Attribute.${s}.Value`]=e.maxMessageSize.toString(),s++;if(e.receiveMessageWaitTime!==void 0)t[`Attribute.${s}.Name`]="ReceiveMessageWaitTimeSeconds",t[`Attribute.${s}.Value`]=e.receiveMessageWaitTime.toString(),s++;if(e.fifo){if(t[`Attribute.${s}.Name`]="FifoQueue",t[`Attribute.${s}.Value`]="true",s++,e.contentBasedDeduplication)t[`Attribute.${s}.Name`]="ContentBasedDeduplication",t[`Attribute.${s}.Value`]="true",s++}if(e.deadLetterTargetArn&&e.maxReceiveCount)t[`Attribute.${s}.Name`]="RedrivePolicy",t[`Attribute.${s}.Value`]=JSON.stringify({deadLetterTargetArn:e.deadLetterTargetArn,maxReceiveCount:e.maxReceiveCount}),s++;if(e.tags&&Object.keys(e.tags).length>0){let a=1;for(let[n,g]of Object.entries(e.tags))t[`Tag.${a}.Key`]=n,t[`Tag.${a}.Value`]=g,a++}let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{QueueUrl:r.QueueUrl||r.CreateQueueResult?.QueueUrl}}async listQueues(e){let i={Action:"ListQueues",Version:"2012-11-05"};if(e)i.QueueNamePrefix=e;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[];if(t.QueueUrl)s.push(t.QueueUrl);else if(t.ListQueuesResult?.QueueUrl)if(Array.isArray(t.ListQueuesResult.QueueUrl))s.push(...t.ListQueuesResult.QueueUrl);else s.push(t.ListQueuesResult.QueueUrl);return{QueueUrls:s}}async getQueueAttributes(e){let i={Action:"GetQueueAttributes",QueueUrl:e,Version:"2012-11-05","AttributeName.1":"All"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{Attributes:t.Attributes||t.GetQueueAttributesResult?.Attributes||{}}}async getQueueUrl(e){let i={Action:"GetQueueUrl",QueueName:e,Version:"2012-11-05"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{QueueUrl:t.QueueUrl||t.GetQueueUrlResult?.QueueUrl}}async deleteQueue(e){let i={Action:"DeleteQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async purgeQueue(e){let i={Action:"PurgeQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async sendMessage(e){let i={Action:"SendMessage",QueueUrl:e.queueUrl,MessageBody:e.messageBody,Version:"2012-11-05"};if(e.delaySeconds!==void 0)i.DelaySeconds=e.delaySeconds;if(e.messageGroupId)i.MessageGroupId=e.messageGroupId;if(e.messageDeduplicationId)i.MessageDeduplicationId=e.messageDeduplicationId;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{MessageId:t.MessageId||t.SendMessageResult?.MessageId}}async receiveMessages(e){let i={Action:"ReceiveMessage",QueueUrl:e.queueUrl,Version:"2012-11-05"};if(e.maxMessages!==void 0)i.MaxNumberOfMessages=e.maxMessages;if(e.visibilityTimeout!==void 0)i.VisibilityTimeout=e.visibilityTimeout;if(e.waitTimeSeconds!==void 0)i.WaitTimeSeconds=e.waitTimeSeconds;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[],r=t.Message||t.ReceiveMessageResult?.Message;if(r)if(Array.isArray(r))s.push(...r.map((a)=>({MessageId:a.MessageId,ReceiptHandle:a.ReceiptHandle,Body:a.Body})));else s.push({MessageId:r.MessageId,ReceiptHandle:r.ReceiptHandle,Body:r.Body});return{Messages:s}}async deleteMessage(e,i){let t={Action:"DeleteMessage",QueueUrl:e,ReceiptHandle:i,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}}
2
2
  export{d as Hd};
@@ -0,0 +1 @@
1
+ import{gd as a}from"./chunk-hwk9ahms.js";import"./chunk-bzth6d1s.js";import"./chunk-m07s5esk.js";export{a as RDSClient};
@@ -1,2 +1,2 @@
1
- import{dh as s}from"./chunk-ja1vjdn1.js";class a{client;region;constructor(e="us-east-1",r){this.region=e,this.client=new s(void 0,{profile:r})}async createRepository(e){let r={repositoryName:e.repositoryName};if(e.imageTagMutability)r.imageTagMutability=e.imageTagMutability;if(e.imageScanningConfiguration)r.imageScanningConfiguration=e.imageScanningConfiguration;if(e.encryptionConfiguration)r.encryptionConfiguration=e.encryptionConfiguration;if(e.tags&&e.tags.length>0)r.tags=e.tags;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.CreateRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeRepositories(e){let r={};if(e?.repositoryNames&&e.repositoryNames.length>0)r.repositoryNames=e.repositoryNames;if(e?.registryId)r.registryId=e.registryId;if(e?.maxResults)r.maxResults=e.maxResults;if(e?.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeRepositories","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repositories:t.repositories?.map((i)=>this.parseRepository(i)),nextToken:t.nextToken}}async getAuthorizationToken(e){let r={};if(e&&e.length>0)r.registryIds=e;return{authorizationData:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).authorizationData?.map((i)=>({authorizationToken:i.authorizationToken,expiresAt:i.expiresAt,proxyEndpoint:i.proxyEndpoint}))}}async deleteRepository(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DeleteRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeImages(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.imageIds&&e.imageIds.length>0)r.imageIds=e.imageIds;if(e.filter)r.filter=e.filter;if(e.maxResults)r.maxResults=e.maxResults;if(e.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeImages","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageDetails:t.imageDetails?.map((i)=>this.parseImageDetail(i)),nextToken:t.nextToken}}async batchDeleteImage(e){let r={repositoryName:e.repositoryName,imageIds:e.imageIds};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageIds:t.imageIds,failures:t.failures}}async putLifecyclePolicy(e){let r={repositoryName:e.repositoryName,lifecyclePolicyText:e.lifecyclePolicyText};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText}}async getLifecyclePolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText,lastEvaluatedAt:t.lastEvaluatedAt}}async setRepositoryPolicy(e){let r={repositoryName:e.repositoryName,policyText:e.policyText};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async getRepositoryPolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async tagResource(e){let r={resourceArn:e.resourceArn,tags:e.tags};await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})}async listTagsForResource(e){let r={resourceArn:e};return{tags:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.ListTagsForResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).tags}}createLifecyclePolicyText(e){return JSON.stringify({rules:e.map((r)=>({rulePriority:r.rulePriority,description:r.description,selection:r.selection,action:r.action}))})}async getDockerLoginCommand(){let e=await this.getAuthorizationToken();if(!e.authorizationData?.[0])throw Error("Failed to get authorization token");let r=e.authorizationData[0],t=r.authorizationToken||"",i=r.proxyEndpoint||"";return`echo "${Buffer.from(t,"base64").toString("utf8").split(":")[1]}" | docker login --username AWS --password-stdin ${i}`}getRegistryUri(e){return`${e}.dkr.ecr.${this.region}.amazonaws.com`}parseRepository(e){return{repositoryArn:e.repositoryArn,registryId:e.registryId,repositoryName:e.repositoryName,repositoryUri:e.repositoryUri,createdAt:e.createdAt,imageTagMutability:e.imageTagMutability,imageScanningConfiguration:e.imageScanningConfiguration,encryptionConfiguration:e.encryptionConfiguration}}parseImageDetail(e){return{registryId:e.registryId,repositoryName:e.repositoryName,imageDigest:e.imageDigest,imageTags:e.imageTags,imageSizeInBytes:e.imageSizeInBytes,imagePushedAt:e.imagePushedAt,imageScanStatus:e.imageScanStatus,imageScanFindingsSummary:e.imageScanFindingsSummary}}}
2
- export{a as Ig};
1
+ import{ph as s}from"./chunk-bzth6d1s.js";class a{client;region;constructor(e="us-east-1",r){this.region=e,this.client=new s(void 0,{profile:r})}async createRepository(e){let r={repositoryName:e.repositoryName};if(e.imageTagMutability)r.imageTagMutability=e.imageTagMutability;if(e.imageScanningConfiguration)r.imageScanningConfiguration=e.imageScanningConfiguration;if(e.encryptionConfiguration)r.encryptionConfiguration=e.encryptionConfiguration;if(e.tags&&e.tags.length>0)r.tags=e.tags;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.CreateRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeRepositories(e){let r={};if(e?.repositoryNames&&e.repositoryNames.length>0)r.repositoryNames=e.repositoryNames;if(e?.registryId)r.registryId=e.registryId;if(e?.maxResults)r.maxResults=e.maxResults;if(e?.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeRepositories","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repositories:t.repositories?.map((i)=>this.parseRepository(i)),nextToken:t.nextToken}}async getAuthorizationToken(e){let r={};if(e&&e.length>0)r.registryIds=e;return{authorizationData:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).authorizationData?.map((i)=>({authorizationToken:i.authorizationToken,expiresAt:i.expiresAt,proxyEndpoint:i.proxyEndpoint}))}}async deleteRepository(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DeleteRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeImages(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.imageIds&&e.imageIds.length>0)r.imageIds=e.imageIds;if(e.filter)r.filter=e.filter;if(e.maxResults)r.maxResults=e.maxResults;if(e.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeImages","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageDetails:t.imageDetails?.map((i)=>this.parseImageDetail(i)),nextToken:t.nextToken}}async batchDeleteImage(e){let r={repositoryName:e.repositoryName,imageIds:e.imageIds};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageIds:t.imageIds,failures:t.failures}}async putLifecyclePolicy(e){let r={repositoryName:e.repositoryName,lifecyclePolicyText:e.lifecyclePolicyText};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText}}async getLifecyclePolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText,lastEvaluatedAt:t.lastEvaluatedAt}}async setRepositoryPolicy(e){let r={repositoryName:e.repositoryName,policyText:e.policyText};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async getRepositoryPolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async tagResource(e){let r={resourceArn:e.resourceArn,tags:e.tags};await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})}async listTagsForResource(e){let r={resourceArn:e};return{tags:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.ListTagsForResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).tags}}createLifecyclePolicyText(e){return JSON.stringify({rules:e.map((r)=>({rulePriority:r.rulePriority,description:r.description,selection:r.selection,action:r.action}))})}async getDockerLoginCommand(){let e=await this.getAuthorizationToken();if(!e.authorizationData?.[0])throw Error("Failed to get authorization token");let r=e.authorizationData[0],t=r.authorizationToken||"",i=r.proxyEndpoint||"";return`echo "${Buffer.from(t,"base64").toString("utf8").split(":")[1]}" | docker login --username AWS --password-stdin ${i}`}getRegistryUri(e){return`${e}.dkr.ecr.${this.region}.amazonaws.com`}parseRepository(e){return{repositoryArn:e.repositoryArn,registryId:e.registryId,repositoryName:e.repositoryName,repositoryUri:e.repositoryUri,createdAt:e.createdAt,imageTagMutability:e.imageTagMutability,imageScanningConfiguration:e.imageScanningConfiguration,encryptionConfiguration:e.encryptionConfiguration}}parseImageDetail(e){return{registryId:e.registryId,repositoryName:e.repositoryName,imageDigest:e.imageDigest,imageTags:e.imageTags,imageSizeInBytes:e.imageSizeInBytes,imagePushedAt:e.imagePushedAt,imageScanStatus:e.imageScanStatus,imageScanFindingsSummary:e.imageScanFindingsSummary}}}
2
+ export{a as Ug};
@@ -0,0 +1 @@
1
+ import{Gd as a}from"./chunk-2ztr119n.js";import"./chunk-0b49jjgr.js";import"./chunk-n2fnav53.js";import"./chunk-8zk8msx0.js";import"./chunk-rqc8btkj.js";import"./chunk-h6xqtypj.js";import"./chunk-e2dnxp8d.js";import"./chunk-a9e0hvwe.js";import"./chunk-bzth6d1s.js";import"./chunk-n20kbxwb.js";import"./chunk-m07s5esk.js";export{a as resolveDashboardData};
@@ -1,3 +1,3 @@
1
- import{Hd as he}from"./chunk-d7ke90zt.js";import{Sd as ge,Xd as pe}from"./chunk-kg61p5hw.js";import{_d as de}from"./chunk-c0bdafbx.js";import{ig as ye}from"./chunk-xhwqpgwq.js";import{jg as le}from"./chunk-a7w13qfm.js";import{pg as V,qg as Z}from"./chunk-btsyjhk7.js";import{dh as N,eh as te}from"./chunk-ja1vjdn1.js";import{$h as ce,no as ue}from"./chunk-4q6tad44.js";class j{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new N(V(t))}async query(e){let t=new URLSearchParams(te({Version:"2010-08-01",...e})).toString();return this.client.request({service:"monitoring",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t})}async getMetricStatistics(e){let t={Action:"GetMetricStatistics",Namespace:e.Namespace,MetricName:e.MetricName,StartTime:e.StartTime.toISOString(),EndTime:e.EndTime.toISOString(),Period:e.Period};(e.Statistics??[]).forEach((o,h)=>{t[`Statistics.member.${h+1}`]=o}),(e.ExtendedStatistics??[]).forEach((o,h)=>{t[`ExtendedStatistics.member.${h+1}`]=o}),(e.Dimensions??[]).forEach((o,h)=>{t[`Dimensions.member.${h+1}.Name`]=o.Name,t[`Dimensions.member.${h+1}.Value`]=o.Value});let r=await this.query(t),s=(r.GetMetricStatisticsResult||r)?.Datapoints?.member??[];if(!Array.isArray(s))s=s?[s]:[];return s.map((o)=>{let h={},m=o.ExtendedStatistics?.entry;if(m){if(!Array.isArray(m))m=[m];for(let d of m)if(d?.key!=null)h[d.key]=Number(d.value)}return{Timestamp:o.Timestamp,Sum:o.Sum!=null?Number(o.Sum):void 0,Average:o.Average!=null?Number(o.Average):void 0,Maximum:o.Maximum!=null?Number(o.Maximum):void 0,Minimum:o.Minimum!=null?Number(o.Minimum):void 0,Percentiles:Object.keys(h).length?h:void 0,Unit:o.Unit}})}async getMetricSeries(e){let t=/^p\d/.test(e.Stat);return(await this.getMetricStatistics({Namespace:e.Namespace,MetricName:e.MetricName,Dimensions:e.Dimensions,StartTime:e.StartTime,EndTime:e.EndTime,Period:e.Period,Statistics:t?[]:[e.Stat],ExtendedStatistics:t?[e.Stat]:[]})).slice().sort((a,s)=>new Date(a.Timestamp??0).getTime()-new Date(s.Timestamp??0).getTime()).map((a)=>t?a.Percentiles?.[e.Stat]??0:a[e.Stat]??0)}async describeAlarms(e){let t={Action:"DescribeAlarms"};if(e?.AlarmNamePrefix)t.AlarmNamePrefix=e.AlarmNamePrefix;if(e?.MaxRecords)t.MaxRecords=e.MaxRecords;let r=await this.query(t),s=(r.DescribeAlarmsResult||r)?.MetricAlarms?.member??[];if(!Array.isArray(s))s=s?[s]:[];return s.map((o)=>({AlarmName:o.AlarmName,StateValue:o.StateValue,MetricName:o.MetricName,ComparisonOperator:o.ComparisonOperator,Threshold:o.Threshold!=null?Number(o.Threshold):void 0,Namespace:o.Namespace}))}async putMetricAlarm(e){let t={Action:"PutMetricAlarm",AlarmName:e.AlarmName,Namespace:e.Namespace,MetricName:e.MetricName,ComparisonOperator:e.ComparisonOperator,Threshold:e.Threshold,EvaluationPeriods:e.EvaluationPeriods,Period:e.Period,Statistic:e.Statistic};if(e.AlarmDescription)t.AlarmDescription=e.AlarmDescription;(e.Dimensions??[]).forEach((r,a)=>{t[`Dimensions.member.${a+1}.Name`]=r.Name,t[`Dimensions.member.${a+1}.Value`]=r.Value}),(e.AlarmActions??[]).forEach((r,a)=>{t[`AlarmActions.member.${a+1}`]=r}),await this.query(t)}async deleteAlarms(e){if(!e.length)return;let t={Action:"DeleteAlarms"};e.forEach((r,a)=>{t[`AlarmNames.member.${a+1}`]=r}),await this.query(t)}}class K{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new N(void 0,{profile:t})}async createLogGroup(e,t){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.CreateLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,...t?{tags:t}:{}})})}async putRetentionPolicy(e,t){if(![1,3,5,7,14,30,60,90,120,150,180,365,400,545,731,1096,1827,2192,2557,2922,3288,3653].includes(t))throw Error("Unsupported CloudWatch Logs retention period");await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.PutRetentionPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,retentionInDays:t})})}async describeLogStreams(e){let t={logGroupName:e.logGroupName};if(e.logStreamNamePrefix)t.logStreamNamePrefix=e.logStreamNamePrefix;if(e.orderBy)t.orderBy=e.orderBy;if(e.descending!==void 0)t.descending=e.descending;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogStreams","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async getLogEvents(e){let t={logGroupName:e.logGroupName,logStreamName:e.logStreamName};if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.limit)t.limit=e.limit;if(e.startFromHead!==void 0)t.startFromHead=e.startFromHead;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.GetLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeLogGroups(e){let t={};if(e?.logGroupNamePrefix)t.logGroupNamePrefix=e.logGroupNamePrefix;if(e?.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogGroups","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async deleteLogGroup(e){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DeleteLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e})})}async filterLogEvents(e){let t={logGroupName:e.logGroupName};if(e.logStreamNames)t.logStreamNames=e.logStreamNames;if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.filterPattern)t.filterPattern=e.filterPattern;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.FilterLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}}import{createHash as fe}from"node:crypto";import{existsSync as re,mkdirSync as Se,readdirSync as Ce,readFileSync as Te,rmSync as be,writeFileSync as Ne}from"node:fs";import{homedir as Ae}from"node:os";import{join as I}from"node:path";var se=1,ie=3600000,Me=24*ie,ve=ie,xe=30*Me;function H(){let e=process.env.XDG_CACHE_HOME;return I(e&&e.trim()?e:I(Ae(),".cache"),"ts-cloud","cost-explorer")}function B(e){return I(H(),e??"__default__")}function ae(e){let t={s:e.start,e:e.end,g:e.granularity,m:[...e.metrics].sort(),gb:[...e.groupBy].map((r)=>`${r.Type}:${r.Key}`).sort(),f:e.filter??null};return fe("sha256").update(JSON.stringify(t)).digest("hex").slice(0,24)}function De(e,t){let r=Date.parse(`${t}T00:00:00Z`);if(Number.isNaN(r))return!1;let a=new Date,s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1);return r<=s}function Pe(e){return De(e.start,e.end)?xe:ve}function ne(e,t){let r=I(B(e),`${ae(t)}.json`);if(!re(r))return null;let a;try{a=JSON.parse(Te(r,"utf-8"))}catch{return null}if(a.schema!==se)return null;let s=Date.now()-a.savedAt;if(s<0||s>Pe(t))return null;return{response:a.response,ageSeconds:Math.floor(s/1000)}}function oe(e,t,r){let a=B(e);Se(a,{recursive:!0});let s={schema:se,savedAt:Date.now(),key:t,response:r};Ne(I(a,`${ae(t)}.json`),JSON.stringify(s))}function We(e){let t=e===void 0?H():B(e);if(!re(t))return{deletedFiles:0,scope:e??"all profiles"};let r=0;function a(s){for(let o of Ce(s,{withFileTypes:!0})){let h=I(s,o.name);if(o.isDirectory())a(h);else if(o.isFile()&&o.name.endsWith(".json"))r++}}return a(t),be(t,{recursive:!0,force:!0}),{deletedFiles:r,scope:e??"all profiles"}}function Ge(e){return e===void 0?H():B(e)}class Y{client;profile;useCache;lastCacheAgeSeconds=null;constructor(e,t){this.profile=e,this.useCache=t?.useCache??!0,this.client=new N(V(e))}async getCostByService(e){return(await this.getCostByDimension({...e,dimension:"SERVICE"})).map((r)=>({service:r.key,amount:r.amount,unit:r.unit}))}async getCostByDimension(e){let{start:t,end:r,dimension:a,granularity:s="MONTHLY",filter:o}=e,h=["UnblendedCost"],m=[{Type:"DIMENSION",Key:a}],d={start:t,end:r,granularity:s,metrics:h,groupBy:m,filter:o};if(this.useCache){let C=ne(this.profile,d);if(C)return this.lastCacheAgeSeconds=C.ageSeconds,C.response}this.lastCacheAgeSeconds=null;let p=new Map,i;do{let C={TimePeriod:{Start:t,End:r},Granularity:s,Metrics:h,GroupBy:m};if(o)C.Filter=o;if(i)C.NextPageToken=i;let D=await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify(C)});for(let G of D?.ResultsByTime??[])for(let T of G?.Groups??[]){let O=T.Keys?.[0]??"Unknown",_=Number.parseFloat(T.Metrics?.UnblendedCost?.Amount??"0"),q=T.Metrics?.UnblendedCost?.Unit??"USD",P=p.get(O);p.set(O,{key:O,amount:(P?.amount??0)+_,unit:q})}i=D?.NextPageToken||void 0}while(i);let E=[...p.values()].filter((C)=>C.amount>0).sort((C,D)=>D.amount-C.amount);if(this.useCache)oe(this.profile,d,E);return E}async getDailyTotals(e){return((await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify({TimePeriod:{Start:e.start,End:e.end},Granularity:"DAILY",Metrics:["UnblendedCost"]})}))?.ResultsByTime??[]).map((a)=>Number.parseFloat(a.Total?.UnblendedCost?.Amount??"0"))}}class J{client;region;constructor(e="us-east-1"){this.region=e,this.client=new N}async describeFileSystems(e){let t=[];if(e?.FileSystemId)t.push(`FileSystemId=${encodeURIComponent(e.FileSystemId)}`);if(e?.CreationToken)t.push(`CreationToken=${encodeURIComponent(e.CreationToken)}`);let r=`/2015-02-01/file-systems${t.length>0?`?${t.join("&")}`:""}`;return{FileSystems:((await this.client.request({service:"elasticfilesystem",region:this.region,method:"GET",path:r,headers:{"Content-Type":"application/json"}})).FileSystems||[]).map((s)=>({FileSystemId:s.FileSystemId,Name:s.Name,CreationTime:s.CreationTime,LifeCycleState:s.LifeCycleState,NumberOfMountTargets:s.NumberOfMountTargets,SizeInBytes:s.SizeInBytes?{Value:s.SizeInBytes.Value,Timestamp:s.SizeInBytes.Timestamp}:void 0,PerformanceMode:s.PerformanceMode,Encrypted:s.Encrypted,ThroughputMode:s.ThroughputMode,Tags:s.Tags}))}}}class Q{client;region;constructor(e="us-east-1"){this.region=e,this.client=new N}async call(e,t){return this.client.request({service:"wafv2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSWAF_20190729.${e}`},body:JSON.stringify(t)})}async listWebACLs(e="REGIONAL"){return(await this.call("ListWebACLs",{Scope:e,Limit:100}))?.WebACLs??[]}async getWebACLRules(e,t,r="REGIONAL"){return((await this.call("GetWebACL",{Name:e,Id:t,Scope:r}))?.WebACL?.Rules??[]).map((o)=>({Name:o.Name,Priority:o.Priority,Action:o.Action?Object.keys(o.Action)[0]:o.OverrideAction?Object.keys(o.OverrideAction)[0]:"count"}))}}function me(e){return String(e).padStart(2,"0")}function F(e){return`${e.getUTCFullYear()}-${me(e.getUTCMonth()+1)}-${me(e.getUTCDate())}`}function we(e){let t=Math.max(0,Math.round((Date.now()-e)/1000));if(t<60)return`${t}s ago`;let r=Math.round(t/60);if(r<60)return`${r}m ago`;let a=Math.round(r/60);if(a<48)return`${a}h ago`;return`${Math.round(a/24)}d ago`}async function k(e,t,r,a,s,o){let h=await e.getMetricStatistics({Namespace:"AWS/Lambda",MetricName:r,Dimensions:[{Name:"FunctionName",Value:t}],StartTime:s,EndTime:o,Period:86400,Statistics:[a]}).catch(()=>[]);if(!h.length)return 0;if(a==="Sum")return h.reduce((m,d)=>m+(d.Sum??0),0);if(a==="Maximum")return Math.max(...h.map((m)=>m.Maximum??0));return h.reduce((m,d)=>m+(d.Average??0),0)/h.length}async function W(e,t,r,a,s,o,h){let m=await e.getMetricStatistics({Namespace:t,MetricName:r,Dimensions:a,StartTime:o,EndTime:h,Period:86400,Statistics:[s]}).catch(()=>[]);if(!m.length)return 0;if(s==="Sum")return m.reduce((d,p)=>d+(p.Sum??0),0);if(s==="Maximum")return Math.max(...m.map((d)=>d.Maximum??0));return m.reduce((d,p)=>d+(p.Average??0),0)/m.length}async function X(e,t,r,a,s){let o=await e.getMetricStatistics({Namespace:"AWS/Lambda",MetricName:"Duration",Dimensions:[{Name:"FunctionName",Value:t}],StartTime:a,EndTime:s,Period:86400,ExtendedStatistics:[r]}).catch(()=>[]);return Math.round(o.reduce((h,m)=>h+(m.Percentiles?.[r]??0),0))}async function mt(e,t){let r=await pe(e,t),a=r.region,s=new j(a),o=new de(a),h=new K(a),m=new Date,d=new Date(m.getTime()-86400000),p=e.environments?.[t]?.app,i={};i.app={name:r.slug,env:t,region:a,runtime:p?.kind==="php"?`php-${p?.phpVersion??"8.3"} (fpm)`:p?.kind??"node",url:r.endpoint??"",build:r.lastRelease?.sha?.slice(0,7)??"—",deployedAt:r.lastRelease?.timestamp??"—"},i.maintenance={enabled:!1},i.scheduler={enabled:r.scheduler!=="off",expression:r.scheduler==="sub-minute"?"rate(1 minute) · sub-minute":"rate(1 minute)",lastRun:"—"};let E=0,C=0,D=0,G=[],T=[],O=[];for(let n of r.functions){let[u,l,c,f,g,S,b,A,w]=await Promise.all([k(s,n.name,"Invocations","Sum",d,m),k(s,n.name,"Errors","Sum",d,m),k(s,n.name,"Throttles","Sum",d,m),k(s,n.name,"Duration","Average",d,m),o.getFunction(n.name).catch(()=>null),X(s,n.name,"p50",d,m),X(s,n.name,"p95",d,m),X(s,n.name,"p99",d,m),s.getMetricSeries({Namespace:"AWS/Lambda",MetricName:"Invocations",Dimensions:[{Name:"FunctionName",Value:n.name}],StartTime:new Date(m.getTime()-43200000),EndTime:m,Period:3600,Stat:"Sum"}).catch(()=>[])]);E+=u,C+=l,D=Math.max(D,f);let R=g?.Configuration?.MemorySize??0,M=Object.keys(g?.Configuration?.Environment?.Variables??{}),U=[],y=0;try{let{events:z=[]}=await h.filterLogEvents({logGroupName:`/aws/lambda/${n.name}`,startTime:d.getTime(),limit:120});for(let x of z){let L=(x.message??"").trim(),ee=/Max Memory Used:\s*(\d+)\s*MB/.exec(L);if(ee)y=Math.max(y,Number(ee[1]));if(L&&!/^(?:START|END|REPORT|INIT_START)/.test(L))O.push({source:n.mode||n.name,timestamp:new Date(x.timestamp??0).toISOString(),when:we(x.timestamp??0),message:L.slice(0,400),level:/error|exception|fatal|panic|traceback/i.test(L)?"error":/warn|warning|timeout|retr(?:y|ies)|throttl/i.test(L)?"warn":"info"})}U=z.filter((x)=>!/^(?:START|END|REPORT|INIT_START)/.test((x.message??"").trim())).slice(-6).map((x)=>({ts:new Date(x.timestamp??0).toISOString().slice(11,19),msg:(x.message??"").trim().slice(0,120),err:/error|exception|fatal/i.test(x.message??"")}))}catch{}let v=Math.max(1,...w);G.push({key:n.mode,name:n.name,version:n.version,memory:R,timeout:g?.Configuration?.Timeout??0,runtime:g?.Configuration?.Runtime??"provided.al2023",invocations:Math.round(u),errors:Math.round(l),p95:b||Math.round(f),status:"active",provisioned:n.provisioned?`${n.provisioned.allocated}/${n.provisioned.requested}`:void 0}),T.push({key:n.mode,name:n.name,runtime:g?.Configuration?.Runtime??"provided.al2023",arch:g?.Configuration?.Architectures?.[0]??"x86_64",memory:R,timeout:g?.Configuration?.Timeout??0,ephemeral:g?.Configuration?.EphemeralStorage?.Size??512,version:n.version,concurrency:p?.concurrency??"—",invocations:Math.round(u),errors:Math.round(l),throttles:Math.round(c),p50:S||Math.round(f),p95:b||Math.round(f),p99:A||Math.round(f),maxMem:y,spark:w.length?w.map((z)=>Math.round(z/v*100)):[0],env:M.length?M:["(none)"],recent:U.length?U:[{ts:"—",msg:"no recent events",err:!1}]})}i.functions=G,i.functionsDetail=T,i.serverlessLogs=O.sort((n,u)=>String(u.timestamp).localeCompare(String(n.timestamp))).slice(0,600),i.serverlessLogsEmptyReason=O.length?void 0:"No recent function logs were found in CloudWatch for this environment.";let _=E?Number((C/E*100).toFixed(2)):0,q=Math.round(await k(s,r.functions[0]?.name??"","ConcurrentExecutions","Maximum",d,m));i.metrics={invocations:Math.round(E),errorRatePct:_,p95Ms:Math.round(D),coldStartPct:void 0,concurrency:q,estCostUsd:void 0};try{let n=new he(a),u=[],l=[],c=0;try{let{QueueUrl:g}=await n.getQueueUrl(`${r.slug}-${t}-dlq`),{Attributes:S}=await n.getQueueAttributes(g);c=Number(S.ApproximateNumberOfMessages??0)}catch{}let f=p?ue(p,r.slug,t):[];for(let g of f){let S=g.name.replace(`${r.slug}-${t}-`,""),b=0,A=0;try{let{QueueUrl:R}=await n.getQueueUrl(g.name),{Attributes:M}=await n.getQueueAttributes(R);b=Number(M.ApproximateNumberOfMessages??0),A=Number(M.ApproximateNumberOfMessagesNotVisible??0)}catch{}let w=Math.round(await W(s,"AWS/SQS","NumberOfMessagesDeleted",[{Name:"QueueName",Value:g.name}],"Sum",d,m));u.push({name:S,visible:b,inFlight:A,processed:w,dlq:c}),l.push({name:g.name,short:S,visible:b,inFlight:A,delayed:0,processed:w,oldestSec:0,concurrency:g.concurrency??p?.queueConcurrency??"—",tries:p?.queueTries??3,visTimeout:(p?.queueTimeout??120)*6,dlq:c})}if(u.length)i.queues=u;if(l.length)i.queuesDetail=l;i.dlqItems=[]}catch{}try{let n=new le(a),{Stacks:u}=await n.describeStacks({stackName:ce(e,t)}),l={};for(let c of u?.[0]?.Outputs??[])if(c.OutputKey)l[c.OutputKey]=c.OutputValue??"";if(p?.database?.connection==="aurora-serverless"){let c=`${r.slug}-${t}-db`,f=[{Name:"DBClusterIdentifier",Value:c}],[g,S]=await Promise.all([W(s,"AWS/RDS","ServerlessDatabaseCapacity",f,"Average",d,m),W(s,"AWS/RDS","DatabaseConnections",f,"Maximum",d,m)]);if(i.aurora={id:c,engine:"aurora-mysql",minAcu:p?.database?.minCapacity??0.5,maxAcu:p?.database?.maxCapacity??4,currentAcu:g?Number(g.toFixed(1)):p?.database?.minCapacity??0.5,database:"app",connections:Math.round(S),status:l.DbEndpoint?"available":"creating"},p?.rdsProxy)i.proxy={name:`${r.slug}-${t}-proxy`,endpoint:l.DbProxyEndpoint??"—",pooledConns:Math.round(S),status:"available"}}if(p?.cache?.driver==="elasticache"){let c=`${r.slug}-${t}-cache`,f=[{Name:"CacheClusterId",Value:`${c}-001`}],[g,S]=await Promise.all([W(s,"AWS/ElastiCache","CacheHits",f,"Sum",d,m),W(s,"AWS/ElastiCache","CacheMisses",f,"Sum",d,m)]),b=g+S>0?Number((g/(g+S)*100).toFixed(1)):0;i.redis={id:c,node:"cache.t4g.micro",engine:"redis",hitRate:b,status:l.CacheEndpoint?"available":"creating"}}if(p?.efs){let c=0;try{if(l.EfsFileSystemId){let f=new J(a),{FileSystems:g}=await f.describeFileSystems({FileSystemId:l.EfsFileSystemId});c=Number(((g?.[0]?.SizeInBytes?.Value??0)/1048576).toFixed(1))}}catch{}i.efs={id:l.EfsFileSystemId??"efs",mount:"/mnt/local",sizeMb:c,status:"available"}}i.assetsInfo=l.AssetsCdnDomain?{bucket:l.AssetsBucketName??`${r.slug}-${t}-assets`,cdn:l.AssetsCdnDomain,customDomain:p?.assetDomain??"—",assetUrl:r.assetUrl??"—",files:0,sizeMb:0,cacheHitPct:0,build:i.app.build}:void 0}catch{}if(i.assetsInfo)try{let u=await new Z(a).list({bucket:i.assetsInfo.bucket,maxKeys:1000});i.assetsInfo.files=u.length,i.assetsInfo.sizeMb=Number((u.reduce((l,c)=>l+(c.Size??0),0)/1048576).toFixed(1)),i.assetsRecent=u.slice(0,8).map((l)=>({path:`/${l.Key}`,size:`${Math.max(1,Math.round((l.Size??0)/1024))} KB`,type:l.Key.split(".").pop()??""}))}catch{}try{if(p?.secrets){let n=Array.isArray(p.secrets)?p.secrets.map((u)=>({key:u.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),source:u})):Object.entries(p.secrets).map(([u,l])=>({key:u,source:String(l)}));i.secretsList=n.map((u)=>({...u,updated:"—"}))}}catch{}try{let n=new Z(a),u=`${r.slug}-${t}-deployments`,l=await n.getObjectJson(u,`deployments/${r.slug}/${t}/history.json`).catch(()=>null);if(l?.records?.length)i.deploymentsDetail=l.records.slice(-12).reverse().map((c)=>({sha:(c.sha??"").slice(0,7),status:c.status??"success",when:c.timestamp??"—",took:c.took??"—",by:c.by??"—",version:c.version??"—",hooks:c.hooks??[]}))}catch{}i.metricsTotals={invocations:i.metrics.invocations,errors:Math.round(C),errorRatePct:_,p95Ms:i.metrics.p95Ms,throttles:T.reduce((n,u)=>n+u.throttles,0),coldStartPct:void 0,estCostUsd:void 0,concurrency:q},i.metricsPerFn=T.map((n)=>({key:n.key,invocations:n.invocations,errors:n.errors,throttles:n.throttles,avgMs:n.p50,maxMs:n.p99,costUsd:void 0}));try{i.invSpark=await s.getMetricSeries({Namespace:"AWS/Lambda",MetricName:"Invocations",Dimensions:[{Name:"FunctionName",Value:r.functions.find((n)=>n.mode==="http")?.name??""}],StartTime:new Date(m.getTime()-86400000),EndTime:m,Period:3600,Stat:"Sum"})}catch{}try{let n=new Y,u=m,l=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth(),1)),c=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()-1,1)),[f,g]=await Promise.all([n.getCostByService({start:F(l),end:F(u),granularity:"MONTHLY"}).catch(()=>[]),n.getCostByService({start:F(c),end:F(l),granularity:"MONTHLY"}).catch(()=>[])]);if(f.length){let S=f.reduce((y,v)=>y+v.amount,0),b=g.reduce((y,v)=>y+v.amount,0),A=u.getUTCDate(),w=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()+1,0)).getUTCDate();i.costSummary={monthToDateUsd:Number(S.toFixed(2)),projectedUsd:Number((S/A*w).toFixed(2)),lastMonthUsd:Number(b.toFixed(2)),dailyAvgUsd:Number((S/A).toFixed(2))},i.costServices=f.filter((y)=>y.amount>0).sort((y,v)=>v.amount-y.amount).slice(0,12).map((y)=>({name:y.service,usd:Number(y.amount.toFixed(2)),note:""})),i.metrics.estCostUsd=Number((S/A).toFixed(2)),i.metricsTotals.estCostUsd=i.metrics.estCostUsd,i.costTrend=await n.getDailyTotals({start:F(l),end:F(u)}).catch(()=>[]);let R=f.find((y)=>/lambda/i.test(y.service))?.amount??0,M=(y)=>y.invocations*(y.p50/1000)*(y.memory/1024),U=T.reduce((y,v)=>y+M(v),0)||1;i.costPerFn=T.map((y)=>({key:y.key,requests:y.invocations,gbSec:Math.round(M(y)),usd:Number((R*(M(y)/U)).toFixed(2))}))}}catch{}if(p?.firewall)try{let n=await s.getMetricStatistics({Namespace:"AWS/WAFV2",MetricName:"BlockedRequests",StartTime:d,EndTime:m,Period:86400,Statistics:["Sum"]}).catch(()=>[]),u=await s.getMetricStatistics({Namespace:"AWS/WAFV2",MetricName:"AllowedRequests",StartTime:d,EndTime:m,Period:86400,Statistics:["Sum"]}).catch(()=>[]);i.waf={enabled:!0,scope:"REGIONAL",acl:`${r.slug}-${t}-waf`,allowed24h:Math.round(u.reduce((l,c)=>l+(c.Sum??0),0)),blocked24h:Math.round(n.reduce((l,c)=>l+(c.Sum??0),0))};try{let l=new Q(a),c=await l.listWebACLs("REGIONAL"),f=c.find((g)=>g.Name?.includes(`${r.slug}-${t}`))??c[0];if(f?.Name&&f.Id){i.waf.acl=f.Name;let g=await l.getWebACLRules(f.Name,f.Id,"REGIONAL");if(g.length)i.wafRules=g.map((S)=>({name:S.Name??"—",detail:`priority ${S.Priority??0}`,action:S.Action??"count",blocked24h:0}))}}catch{}}catch{}let P=[];if(i.aurora)P.push({name:"Aurora Serverless v2",detail:`${i.aurora.id} · ${i.aurora.minAcu}-${i.aurora.maxAcu} ACU`,status:i.aurora.status});if(i.proxy)P.push({name:"RDS Proxy",detail:i.proxy.name,status:i.proxy.status});if(i.redis)P.push({name:`ElastiCache (${i.redis.engine})`,detail:`${i.redis.node} · ${i.redis.hitRate}% hit rate`,status:i.redis.status});if(i.efs)P.push({name:"EFS",detail:`${i.efs.mount} · ${i.efs.sizeMb} MB`,status:i.efs.status});if(P.length)i.dataServices=P;if(r.scheduler!=="off"&&p?.kind==="php")try{let n=await ge(e,t,"schedule:list"),u=[];for(let l of(n||"").split(`
1
+ import{Hd as he}from"./chunk-0b49jjgr.js";import{Sd as ge,Xd as pe}from"./chunk-n2fnav53.js";import{_d as de}from"./chunk-8zk8msx0.js";import{ug as ye}from"./chunk-rqc8btkj.js";import{vg as le}from"./chunk-h6xqtypj.js";import{Bg as V,Cg as Z}from"./chunk-e2dnxp8d.js";import{ph as N,qh as te}from"./chunk-bzth6d1s.js";import{Ao as ue,mi as ce}from"./chunk-n20kbxwb.js";class j{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new N(V(t))}async query(e){let t=new URLSearchParams(te({Version:"2010-08-01",...e})).toString();return this.client.request({service:"monitoring",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t})}async getMetricStatistics(e){let t={Action:"GetMetricStatistics",Namespace:e.Namespace,MetricName:e.MetricName,StartTime:e.StartTime.toISOString(),EndTime:e.EndTime.toISOString(),Period:e.Period};(e.Statistics??[]).forEach((o,h)=>{t[`Statistics.member.${h+1}`]=o}),(e.ExtendedStatistics??[]).forEach((o,h)=>{t[`ExtendedStatistics.member.${h+1}`]=o}),(e.Dimensions??[]).forEach((o,h)=>{t[`Dimensions.member.${h+1}.Name`]=o.Name,t[`Dimensions.member.${h+1}.Value`]=o.Value});let r=await this.query(t),s=(r.GetMetricStatisticsResult||r)?.Datapoints?.member??[];if(!Array.isArray(s))s=s?[s]:[];return s.map((o)=>{let h={},m=o.ExtendedStatistics?.entry;if(m){if(!Array.isArray(m))m=[m];for(let d of m)if(d?.key!=null)h[d.key]=Number(d.value)}return{Timestamp:o.Timestamp,Sum:o.Sum!=null?Number(o.Sum):void 0,Average:o.Average!=null?Number(o.Average):void 0,Maximum:o.Maximum!=null?Number(o.Maximum):void 0,Minimum:o.Minimum!=null?Number(o.Minimum):void 0,Percentiles:Object.keys(h).length?h:void 0,Unit:o.Unit}})}async getMetricSeries(e){let t=/^p\d/.test(e.Stat);return(await this.getMetricStatistics({Namespace:e.Namespace,MetricName:e.MetricName,Dimensions:e.Dimensions,StartTime:e.StartTime,EndTime:e.EndTime,Period:e.Period,Statistics:t?[]:[e.Stat],ExtendedStatistics:t?[e.Stat]:[]})).slice().sort((a,s)=>new Date(a.Timestamp??0).getTime()-new Date(s.Timestamp??0).getTime()).map((a)=>t?a.Percentiles?.[e.Stat]??0:a[e.Stat]??0)}async describeAlarms(e){let t={Action:"DescribeAlarms"};if(e?.AlarmNamePrefix)t.AlarmNamePrefix=e.AlarmNamePrefix;if(e?.MaxRecords)t.MaxRecords=e.MaxRecords;let r=await this.query(t),s=(r.DescribeAlarmsResult||r)?.MetricAlarms?.member??[];if(!Array.isArray(s))s=s?[s]:[];return s.map((o)=>({AlarmName:o.AlarmName,StateValue:o.StateValue,MetricName:o.MetricName,ComparisonOperator:o.ComparisonOperator,Threshold:o.Threshold!=null?Number(o.Threshold):void 0,Namespace:o.Namespace}))}async putMetricAlarm(e){let t={Action:"PutMetricAlarm",AlarmName:e.AlarmName,Namespace:e.Namespace,MetricName:e.MetricName,ComparisonOperator:e.ComparisonOperator,Threshold:e.Threshold,EvaluationPeriods:e.EvaluationPeriods,Period:e.Period,Statistic:e.Statistic};if(e.AlarmDescription)t.AlarmDescription=e.AlarmDescription;(e.Dimensions??[]).forEach((r,a)=>{t[`Dimensions.member.${a+1}.Name`]=r.Name,t[`Dimensions.member.${a+1}.Value`]=r.Value}),(e.AlarmActions??[]).forEach((r,a)=>{t[`AlarmActions.member.${a+1}`]=r}),await this.query(t)}async deleteAlarms(e){if(!e.length)return;let t={Action:"DeleteAlarms"};e.forEach((r,a)=>{t[`AlarmNames.member.${a+1}`]=r}),await this.query(t)}}class K{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new N(void 0,{profile:t})}async createLogGroup(e,t){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.CreateLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,...t?{tags:t}:{}})})}async putRetentionPolicy(e,t){if(![1,3,5,7,14,30,60,90,120,150,180,365,400,545,731,1096,1827,2192,2557,2922,3288,3653].includes(t))throw Error("Unsupported CloudWatch Logs retention period");await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.PutRetentionPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e,retentionInDays:t})})}async describeLogStreams(e){let t={logGroupName:e.logGroupName};if(e.logStreamNamePrefix)t.logStreamNamePrefix=e.logStreamNamePrefix;if(e.orderBy)t.orderBy=e.orderBy;if(e.descending!==void 0)t.descending=e.descending;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogStreams","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async getLogEvents(e){let t={logGroupName:e.logGroupName,logStreamName:e.logStreamName};if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.limit)t.limit=e.limit;if(e.startFromHead!==void 0)t.startFromHead=e.startFromHead;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.GetLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async describeLogGroups(e){let t={};if(e?.logGroupNamePrefix)t.logGroupNamePrefix=e.logGroupNamePrefix;if(e?.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DescribeLogGroups","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}async deleteLogGroup(e){await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.DeleteLogGroup","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify({logGroupName:e})})}async filterLogEvents(e){let t={logGroupName:e.logGroupName};if(e.logStreamNames)t.logStreamNames=e.logStreamNames;if(e.startTime)t.startTime=e.startTime;if(e.endTime)t.endTime=e.endTime;if(e.filterPattern)t.filterPattern=e.filterPattern;if(e.limit)t.limit=e.limit;return await this.client.request({service:"logs",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"Logs_20140328.FilterLogEvents","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(t)})}}import{createHash as fe}from"node:crypto";import{existsSync as re,mkdirSync as Se,readdirSync as Ce,readFileSync as Te,rmSync as be,writeFileSync as Ne}from"node:fs";import{homedir as Ae}from"node:os";import{join as I}from"node:path";var se=1,ie=3600000,Me=24*ie,ve=ie,xe=30*Me;function H(){let e=process.env.XDG_CACHE_HOME;return I(e&&e.trim()?e:I(Ae(),".cache"),"ts-cloud","cost-explorer")}function B(e){return I(H(),e??"__default__")}function ae(e){let t={s:e.start,e:e.end,g:e.granularity,m:[...e.metrics].sort(),gb:[...e.groupBy].map((r)=>`${r.Type}:${r.Key}`).sort(),f:e.filter??null};return fe("sha256").update(JSON.stringify(t)).digest("hex").slice(0,24)}function De(e,t){let r=Date.parse(`${t}T00:00:00Z`);if(Number.isNaN(r))return!1;let a=new Date,s=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1);return r<=s}function Pe(e){return De(e.start,e.end)?xe:ve}function ne(e,t){let r=I(B(e),`${ae(t)}.json`);if(!re(r))return null;let a;try{a=JSON.parse(Te(r,"utf-8"))}catch{return null}if(a.schema!==se)return null;let s=Date.now()-a.savedAt;if(s<0||s>Pe(t))return null;return{response:a.response,ageSeconds:Math.floor(s/1000)}}function oe(e,t,r){let a=B(e);Se(a,{recursive:!0});let s={schema:se,savedAt:Date.now(),key:t,response:r};Ne(I(a,`${ae(t)}.json`),JSON.stringify(s))}function We(e){let t=e===void 0?H():B(e);if(!re(t))return{deletedFiles:0,scope:e??"all profiles"};let r=0;function a(s){for(let o of Ce(s,{withFileTypes:!0})){let h=I(s,o.name);if(o.isDirectory())a(h);else if(o.isFile()&&o.name.endsWith(".json"))r++}}return a(t),be(t,{recursive:!0,force:!0}),{deletedFiles:r,scope:e??"all profiles"}}function Ge(e){return e===void 0?H():B(e)}class Y{client;profile;useCache;lastCacheAgeSeconds=null;constructor(e,t){this.profile=e,this.useCache=t?.useCache??!0,this.client=new N(V(e))}async getCostByService(e){return(await this.getCostByDimension({...e,dimension:"SERVICE"})).map((r)=>({service:r.key,amount:r.amount,unit:r.unit}))}async getCostByDimension(e){let{start:t,end:r,dimension:a,granularity:s="MONTHLY",filter:o}=e,h=["UnblendedCost"],m=[{Type:"DIMENSION",Key:a}],d={start:t,end:r,granularity:s,metrics:h,groupBy:m,filter:o};if(this.useCache){let C=ne(this.profile,d);if(C)return this.lastCacheAgeSeconds=C.ageSeconds,C.response}this.lastCacheAgeSeconds=null;let p=new Map,i;do{let C={TimePeriod:{Start:t,End:r},Granularity:s,Metrics:h,GroupBy:m};if(o)C.Filter=o;if(i)C.NextPageToken=i;let D=await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify(C)});for(let G of D?.ResultsByTime??[])for(let T of G?.Groups??[]){let O=T.Keys?.[0]??"Unknown",_=Number.parseFloat(T.Metrics?.UnblendedCost?.Amount??"0"),q=T.Metrics?.UnblendedCost?.Unit??"USD",P=p.get(O);p.set(O,{key:O,amount:(P?.amount??0)+_,unit:q})}i=D?.NextPageToken||void 0}while(i);let E=[...p.values()].filter((C)=>C.amount>0).sort((C,D)=>D.amount-C.amount);if(this.useCache)oe(this.profile,d,E);return E}async getDailyTotals(e){return((await this.client.request({service:"ce",region:"us-east-1",method:"POST",path:"/",headers:{"content-type":"application/x-amz-json-1.1","x-amz-target":"AWSInsightsIndexService.GetCostAndUsage"},body:JSON.stringify({TimePeriod:{Start:e.start,End:e.end},Granularity:"DAILY",Metrics:["UnblendedCost"]})}))?.ResultsByTime??[]).map((a)=>Number.parseFloat(a.Total?.UnblendedCost?.Amount??"0"))}}class J{client;region;constructor(e="us-east-1"){this.region=e,this.client=new N}async describeFileSystems(e){let t=[];if(e?.FileSystemId)t.push(`FileSystemId=${encodeURIComponent(e.FileSystemId)}`);if(e?.CreationToken)t.push(`CreationToken=${encodeURIComponent(e.CreationToken)}`);let r=`/2015-02-01/file-systems${t.length>0?`?${t.join("&")}`:""}`;return{FileSystems:((await this.client.request({service:"elasticfilesystem",region:this.region,method:"GET",path:r,headers:{"Content-Type":"application/json"}})).FileSystems||[]).map((s)=>({FileSystemId:s.FileSystemId,Name:s.Name,CreationTime:s.CreationTime,LifeCycleState:s.LifeCycleState,NumberOfMountTargets:s.NumberOfMountTargets,SizeInBytes:s.SizeInBytes?{Value:s.SizeInBytes.Value,Timestamp:s.SizeInBytes.Timestamp}:void 0,PerformanceMode:s.PerformanceMode,Encrypted:s.Encrypted,ThroughputMode:s.ThroughputMode,Tags:s.Tags}))}}}class Q{client;region;constructor(e="us-east-1"){this.region=e,this.client=new N}async call(e,t){return this.client.request({service:"wafv2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-amz-json-1.1","X-Amz-Target":`AWSWAF_20190729.${e}`},body:JSON.stringify(t)})}async listWebACLs(e="REGIONAL"){return(await this.call("ListWebACLs",{Scope:e,Limit:100}))?.WebACLs??[]}async getWebACLRules(e,t,r="REGIONAL"){return((await this.call("GetWebACL",{Name:e,Id:t,Scope:r}))?.WebACL?.Rules??[]).map((o)=>({Name:o.Name,Priority:o.Priority,Action:o.Action?Object.keys(o.Action)[0]:o.OverrideAction?Object.keys(o.OverrideAction)[0]:"count"}))}}function me(e){return String(e).padStart(2,"0")}function F(e){return`${e.getUTCFullYear()}-${me(e.getUTCMonth()+1)}-${me(e.getUTCDate())}`}function we(e){let t=Math.max(0,Math.round((Date.now()-e)/1000));if(t<60)return`${t}s ago`;let r=Math.round(t/60);if(r<60)return`${r}m ago`;let a=Math.round(r/60);if(a<48)return`${a}h ago`;return`${Math.round(a/24)}d ago`}async function k(e,t,r,a,s,o){let h=await e.getMetricStatistics({Namespace:"AWS/Lambda",MetricName:r,Dimensions:[{Name:"FunctionName",Value:t}],StartTime:s,EndTime:o,Period:86400,Statistics:[a]}).catch(()=>[]);if(!h.length)return 0;if(a==="Sum")return h.reduce((m,d)=>m+(d.Sum??0),0);if(a==="Maximum")return Math.max(...h.map((m)=>m.Maximum??0));return h.reduce((m,d)=>m+(d.Average??0),0)/h.length}async function W(e,t,r,a,s,o,h){let m=await e.getMetricStatistics({Namespace:t,MetricName:r,Dimensions:a,StartTime:o,EndTime:h,Period:86400,Statistics:[s]}).catch(()=>[]);if(!m.length)return 0;if(s==="Sum")return m.reduce((d,p)=>d+(p.Sum??0),0);if(s==="Maximum")return Math.max(...m.map((d)=>d.Maximum??0));return m.reduce((d,p)=>d+(p.Average??0),0)/m.length}async function X(e,t,r,a,s){let o=await e.getMetricStatistics({Namespace:"AWS/Lambda",MetricName:"Duration",Dimensions:[{Name:"FunctionName",Value:t}],StartTime:a,EndTime:s,Period:86400,ExtendedStatistics:[r]}).catch(()=>[]);return Math.round(o.reduce((h,m)=>h+(m.Percentiles?.[r]??0),0))}async function mt(e,t){let r=await pe(e,t),a=r.region,s=new j(a),o=new de(a),h=new K(a),m=new Date,d=new Date(m.getTime()-86400000),p=e.environments?.[t]?.app,i={};i.app={name:r.slug,env:t,region:a,runtime:p?.kind==="php"?`php-${p?.phpVersion??"8.3"} (fpm)`:p?.kind??"node",url:r.endpoint??"",build:r.lastRelease?.sha?.slice(0,7)??"—",deployedAt:r.lastRelease?.timestamp??"—"},i.maintenance={enabled:!1},i.scheduler={enabled:r.scheduler!=="off",expression:r.scheduler==="sub-minute"?"rate(1 minute) · sub-minute":"rate(1 minute)",lastRun:"—"};let E=0,C=0,D=0,G=[],T=[],O=[];for(let n of r.functions){let[u,l,c,f,g,S,b,A,w]=await Promise.all([k(s,n.name,"Invocations","Sum",d,m),k(s,n.name,"Errors","Sum",d,m),k(s,n.name,"Throttles","Sum",d,m),k(s,n.name,"Duration","Average",d,m),o.getFunction(n.name).catch(()=>null),X(s,n.name,"p50",d,m),X(s,n.name,"p95",d,m),X(s,n.name,"p99",d,m),s.getMetricSeries({Namespace:"AWS/Lambda",MetricName:"Invocations",Dimensions:[{Name:"FunctionName",Value:n.name}],StartTime:new Date(m.getTime()-43200000),EndTime:m,Period:3600,Stat:"Sum"}).catch(()=>[])]);E+=u,C+=l,D=Math.max(D,f);let R=g?.Configuration?.MemorySize??0,M=Object.keys(g?.Configuration?.Environment?.Variables??{}),U=[],y=0;try{let{events:z=[]}=await h.filterLogEvents({logGroupName:`/aws/lambda/${n.name}`,startTime:d.getTime(),limit:120});for(let x of z){let L=(x.message??"").trim(),ee=/Max Memory Used:\s*(\d+)\s*MB/.exec(L);if(ee)y=Math.max(y,Number(ee[1]));if(L&&!/^(?:START|END|REPORT|INIT_START)/.test(L))O.push({source:n.mode||n.name,timestamp:new Date(x.timestamp??0).toISOString(),when:we(x.timestamp??0),message:L.slice(0,400),level:/error|exception|fatal|panic|traceback/i.test(L)?"error":/warn|warning|timeout|retr(?:y|ies)|throttl/i.test(L)?"warn":"info"})}U=z.filter((x)=>!/^(?:START|END|REPORT|INIT_START)/.test((x.message??"").trim())).slice(-6).map((x)=>({ts:new Date(x.timestamp??0).toISOString().slice(11,19),msg:(x.message??"").trim().slice(0,120),err:/error|exception|fatal/i.test(x.message??"")}))}catch{}let v=Math.max(1,...w);G.push({key:n.mode,name:n.name,version:n.version,memory:R,timeout:g?.Configuration?.Timeout??0,runtime:g?.Configuration?.Runtime??"provided.al2023",invocations:Math.round(u),errors:Math.round(l),p95:b||Math.round(f),status:"active",provisioned:n.provisioned?`${n.provisioned.allocated}/${n.provisioned.requested}`:void 0}),T.push({key:n.mode,name:n.name,runtime:g?.Configuration?.Runtime??"provided.al2023",arch:g?.Configuration?.Architectures?.[0]??"x86_64",memory:R,timeout:g?.Configuration?.Timeout??0,ephemeral:g?.Configuration?.EphemeralStorage?.Size??512,version:n.version,concurrency:p?.concurrency??"—",invocations:Math.round(u),errors:Math.round(l),throttles:Math.round(c),p50:S||Math.round(f),p95:b||Math.round(f),p99:A||Math.round(f),maxMem:y,spark:w.length?w.map((z)=>Math.round(z/v*100)):[0],env:M.length?M:["(none)"],recent:U.length?U:[{ts:"—",msg:"no recent events",err:!1}]})}i.functions=G,i.functionsDetail=T,i.serverlessLogs=O.sort((n,u)=>String(u.timestamp).localeCompare(String(n.timestamp))).slice(0,600),i.serverlessLogsEmptyReason=O.length?void 0:"No recent function logs were found in CloudWatch for this environment.";let _=E?Number((C/E*100).toFixed(2)):0,q=Math.round(await k(s,r.functions[0]?.name??"","ConcurrentExecutions","Maximum",d,m));i.metrics={invocations:Math.round(E),errorRatePct:_,p95Ms:Math.round(D),coldStartPct:void 0,concurrency:q,estCostUsd:void 0};try{let n=new he(a),u=[],l=[],c=0;try{let{QueueUrl:g}=await n.getQueueUrl(`${r.slug}-${t}-dlq`),{Attributes:S}=await n.getQueueAttributes(g);c=Number(S.ApproximateNumberOfMessages??0)}catch{}let f=p?ue(p,r.slug,t):[];for(let g of f){let S=g.name.replace(`${r.slug}-${t}-`,""),b=0,A=0;try{let{QueueUrl:R}=await n.getQueueUrl(g.name),{Attributes:M}=await n.getQueueAttributes(R);b=Number(M.ApproximateNumberOfMessages??0),A=Number(M.ApproximateNumberOfMessagesNotVisible??0)}catch{}let w=Math.round(await W(s,"AWS/SQS","NumberOfMessagesDeleted",[{Name:"QueueName",Value:g.name}],"Sum",d,m));u.push({name:S,visible:b,inFlight:A,processed:w,dlq:c}),l.push({name:g.name,short:S,visible:b,inFlight:A,delayed:0,processed:w,oldestSec:0,concurrency:g.concurrency??p?.queueConcurrency??"—",tries:p?.queueTries??3,visTimeout:(p?.queueTimeout??120)*6,dlq:c})}if(u.length)i.queues=u;if(l.length)i.queuesDetail=l;i.dlqItems=[]}catch{}try{let n=new le(a),{Stacks:u}=await n.describeStacks({stackName:ce(e,t)}),l={};for(let c of u?.[0]?.Outputs??[])if(c.OutputKey)l[c.OutputKey]=c.OutputValue??"";if(p?.database?.connection==="aurora-serverless"){let c=`${r.slug}-${t}-db`,f=[{Name:"DBClusterIdentifier",Value:c}],[g,S]=await Promise.all([W(s,"AWS/RDS","ServerlessDatabaseCapacity",f,"Average",d,m),W(s,"AWS/RDS","DatabaseConnections",f,"Maximum",d,m)]);if(i.aurora={id:c,engine:"aurora-mysql",minAcu:p?.database?.minCapacity??0.5,maxAcu:p?.database?.maxCapacity??4,currentAcu:g?Number(g.toFixed(1)):p?.database?.minCapacity??0.5,database:"app",connections:Math.round(S),status:l.DbEndpoint?"available":"creating"},p?.rdsProxy)i.proxy={name:`${r.slug}-${t}-proxy`,endpoint:l.DbProxyEndpoint??"—",pooledConns:Math.round(S),status:"available"}}if(p?.cache?.driver==="elasticache"){let c=`${r.slug}-${t}-cache`,f=[{Name:"CacheClusterId",Value:`${c}-001`}],[g,S]=await Promise.all([W(s,"AWS/ElastiCache","CacheHits",f,"Sum",d,m),W(s,"AWS/ElastiCache","CacheMisses",f,"Sum",d,m)]),b=g+S>0?Number((g/(g+S)*100).toFixed(1)):0;i.redis={id:c,node:"cache.t4g.micro",engine:"redis",hitRate:b,status:l.CacheEndpoint?"available":"creating"}}if(p?.efs){let c=0;try{if(l.EfsFileSystemId){let f=new J(a),{FileSystems:g}=await f.describeFileSystems({FileSystemId:l.EfsFileSystemId});c=Number(((g?.[0]?.SizeInBytes?.Value??0)/1048576).toFixed(1))}}catch{}i.efs={id:l.EfsFileSystemId??"efs",mount:"/mnt/local",sizeMb:c,status:"available"}}i.assetsInfo=l.AssetsCdnDomain?{bucket:l.AssetsBucketName??`${r.slug}-${t}-assets`,cdn:l.AssetsCdnDomain,customDomain:p?.assetDomain??"—",assetUrl:r.assetUrl??"—",files:0,sizeMb:0,cacheHitPct:0,build:i.app.build}:void 0}catch{}if(i.assetsInfo)try{let u=await new Z(a).list({bucket:i.assetsInfo.bucket,maxKeys:1000});i.assetsInfo.files=u.length,i.assetsInfo.sizeMb=Number((u.reduce((l,c)=>l+(c.Size??0),0)/1048576).toFixed(1)),i.assetsRecent=u.slice(0,8).map((l)=>({path:`/${l.Key}`,size:`${Math.max(1,Math.round((l.Size??0)/1024))} KB`,type:l.Key.split(".").pop()??""}))}catch{}try{if(p?.secrets){let n=Array.isArray(p.secrets)?p.secrets.map((u)=>({key:u.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),source:u})):Object.entries(p.secrets).map(([u,l])=>({key:u,source:String(l)}));i.secretsList=n.map((u)=>({...u,updated:"—"}))}}catch{}try{let n=new Z(a),u=`${r.slug}-${t}-deployments`,l=await n.getObjectJson(u,`deployments/${r.slug}/${t}/history.json`).catch(()=>null);if(l?.records?.length)i.deploymentsDetail=l.records.slice(-12).reverse().map((c)=>({sha:(c.sha??"").slice(0,7),status:c.status??"success",when:c.timestamp??"—",took:c.took??"—",by:c.by??"—",version:c.version??"—",hooks:c.hooks??[]}))}catch{}i.metricsTotals={invocations:i.metrics.invocations,errors:Math.round(C),errorRatePct:_,p95Ms:i.metrics.p95Ms,throttles:T.reduce((n,u)=>n+u.throttles,0),coldStartPct:void 0,estCostUsd:void 0,concurrency:q},i.metricsPerFn=T.map((n)=>({key:n.key,invocations:n.invocations,errors:n.errors,throttles:n.throttles,avgMs:n.p50,maxMs:n.p99,costUsd:void 0}));try{i.invSpark=await s.getMetricSeries({Namespace:"AWS/Lambda",MetricName:"Invocations",Dimensions:[{Name:"FunctionName",Value:r.functions.find((n)=>n.mode==="http")?.name??""}],StartTime:new Date(m.getTime()-86400000),EndTime:m,Period:3600,Stat:"Sum"})}catch{}try{let n=new Y,u=m,l=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth(),1)),c=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()-1,1)),[f,g]=await Promise.all([n.getCostByService({start:F(l),end:F(u),granularity:"MONTHLY"}).catch(()=>[]),n.getCostByService({start:F(c),end:F(l),granularity:"MONTHLY"}).catch(()=>[])]);if(f.length){let S=f.reduce((y,v)=>y+v.amount,0),b=g.reduce((y,v)=>y+v.amount,0),A=u.getUTCDate(),w=new Date(Date.UTC(u.getUTCFullYear(),u.getUTCMonth()+1,0)).getUTCDate();i.costSummary={monthToDateUsd:Number(S.toFixed(2)),projectedUsd:Number((S/A*w).toFixed(2)),lastMonthUsd:Number(b.toFixed(2)),dailyAvgUsd:Number((S/A).toFixed(2))},i.costServices=f.filter((y)=>y.amount>0).sort((y,v)=>v.amount-y.amount).slice(0,12).map((y)=>({name:y.service,usd:Number(y.amount.toFixed(2)),note:""})),i.metrics.estCostUsd=Number((S/A).toFixed(2)),i.metricsTotals.estCostUsd=i.metrics.estCostUsd,i.costTrend=await n.getDailyTotals({start:F(l),end:F(u)}).catch(()=>[]);let R=f.find((y)=>/lambda/i.test(y.service))?.amount??0,M=(y)=>y.invocations*(y.p50/1000)*(y.memory/1024),U=T.reduce((y,v)=>y+M(v),0)||1;i.costPerFn=T.map((y)=>({key:y.key,requests:y.invocations,gbSec:Math.round(M(y)),usd:Number((R*(M(y)/U)).toFixed(2))}))}}catch{}if(p?.firewall)try{let n=await s.getMetricStatistics({Namespace:"AWS/WAFV2",MetricName:"BlockedRequests",StartTime:d,EndTime:m,Period:86400,Statistics:["Sum"]}).catch(()=>[]),u=await s.getMetricStatistics({Namespace:"AWS/WAFV2",MetricName:"AllowedRequests",StartTime:d,EndTime:m,Period:86400,Statistics:["Sum"]}).catch(()=>[]);i.waf={enabled:!0,scope:"REGIONAL",acl:`${r.slug}-${t}-waf`,allowed24h:Math.round(u.reduce((l,c)=>l+(c.Sum??0),0)),blocked24h:Math.round(n.reduce((l,c)=>l+(c.Sum??0),0))};try{let l=new Q(a),c=await l.listWebACLs("REGIONAL"),f=c.find((g)=>g.Name?.includes(`${r.slug}-${t}`))??c[0];if(f?.Name&&f.Id){i.waf.acl=f.Name;let g=await l.getWebACLRules(f.Name,f.Id,"REGIONAL");if(g.length)i.wafRules=g.map((S)=>({name:S.Name??"—",detail:`priority ${S.Priority??0}`,action:S.Action??"count",blocked24h:0}))}}catch{}}catch{}let P=[];if(i.aurora)P.push({name:"Aurora Serverless v2",detail:`${i.aurora.id} · ${i.aurora.minAcu}-${i.aurora.maxAcu} ACU`,status:i.aurora.status});if(i.proxy)P.push({name:"RDS Proxy",detail:i.proxy.name,status:i.proxy.status});if(i.redis)P.push({name:`ElastiCache (${i.redis.engine})`,detail:`${i.redis.node} · ${i.redis.hitRate}% hit rate`,status:i.redis.status});if(i.efs)P.push({name:"EFS",detail:`${i.efs.mount} · ${i.efs.sizeMb} MB`,status:i.efs.status});if(P.length)i.dataServices=P;if(r.scheduler!=="off"&&p?.kind==="php")try{let n=await ge(e,t,"schedule:list"),u=[];for(let l of(n||"").split(`
2
2
  `)){let c=/^\s*([\d*/,\-\s]+?)\s{2,}(.+?)(?:\s{2,}Next Due.*)?$/.exec(l);if(c&&/[*\d]/.test(c[1])&&c[1].trim().split(/\s+/).length===5)u.push({command:c[2].trim().replace(/^php artisan /,""),cron:c[1].trim(),desc:"",lastRun:"—",lastStatus:"ok"})}if(u.length)i.schedulerTasks=u}catch{}return i.topology=ye(i,{project:e.project.name,environment:t}),i}
3
3
  export{K as Bd,j as Cd,We as Dd,Ge as Ed,Y as Fd,mt as Gd};
@@ -0,0 +1 @@
1
+ import{yg as a,zg as b}from"./chunk-k1xw3zbm.js";import"./chunk-m9r5jype.js";import"./chunk-e2dnxp8d.js";import"./chunk-bzth6d1s.js";import"./chunk-m07s5esk.js";export{a as EmailClient,b as email};
@@ -0,0 +1 @@
1
+ import{Tg as a}from"./chunk-qqpb82ty.js";import"./chunk-227jmf2b.js";import"./chunk-a9e0hvwe.js";import"./chunk-bzth6d1s.js";import"./chunk-n20kbxwb.js";import"./chunk-m07s5esk.js";export{a as buildAndPushServerlessImage};
@@ -34,4 +34,4 @@ fi
34
34
  mv "${s}.new" "${s}"
35
35
  echo "ts-cloud: WAF config installed (mode: ${n.mode})"
36
36
  `}function _(e,r){return e.map((t)=>({projectId:r.projectId,environmentId:r.environmentId,resourceId:r.resourceId,kind:"event",source:"zig-waf",name:t.action==="blocked"?"waf.blocked":"waf.matched",timestamp:t.timestamp,value:1,host:t.host,pathTemplate:t.path,method:t.method,attributes:{ruleId:t.ruleId??null,anomalyScore:t.anomalyScore,action:t.action,messages:t.messages.slice(0,5)}}))}
37
- export{l as Ze,g as _e,R as $e,v as af,I as bf,_ as cf};
37
+ export{l as if,g as jf,R as kf,v as lf,I as mf,_ as nf};