@stacksjs/ts-cloud 0.16.32 → 0.16.33
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.
- package/dist/aws/index.js +1 -1
- package/dist/bin/chunk-0e7bcz1c.js +3 -0
- package/dist/bin/{chunk-6wz04wnk.js → chunk-0wtnhxdt.js} +1 -1
- package/dist/bin/{chunk-zhkbdsfs.js → chunk-1ye6ky7s.js} +1 -1
- package/dist/bin/chunk-2njcbs0c.js +1 -0
- package/dist/bin/chunk-35ct309x.js +1 -0
- package/dist/bin/{chunk-mpq5ct10.js → chunk-3kyny1x7.js} +4 -4
- package/dist/bin/chunk-3ybxaehy.js +1 -0
- package/dist/bin/{chunk-zk3nm0td.js → chunk-47q37egd.js} +3 -3
- package/dist/bin/{chunk-yccdr4be.js → chunk-49y286vw.js} +1 -1
- package/dist/bin/{chunk-py8cvqvx.js → chunk-4c4s5yph.js} +1 -1
- package/dist/bin/{chunk-x56s9b7f.js → chunk-4vbnagyd.js} +1 -1
- package/dist/bin/{chunk-kqf19j9m.js → chunk-59f6mqkj.js} +1 -1
- package/dist/bin/chunk-5p9jnpg2.js +1 -0
- package/dist/bin/{chunk-573red0g.js → chunk-5tfxp3d9.js} +6 -6
- package/dist/bin/{chunk-q6z8wvvb.js → chunk-66g6jdgy.js} +3 -3
- package/dist/bin/{chunk-tg45thhb.js → chunk-70w9nss5.js} +1 -1
- package/dist/bin/{chunk-jzby2kzy.js → chunk-7k52s3qm.js} +2 -2
- package/dist/bin/{chunk-6yr12f64.js → chunk-7kjy2hng.js} +5 -5
- package/dist/bin/{chunk-9e62z9je.js → chunk-7x727gt5.js} +2 -2
- package/dist/bin/{chunk-f7dtn45y.js → chunk-8ba9t3hv.js} +3 -3
- package/dist/bin/chunk-9aram0sm.js +1 -0
- package/dist/bin/{chunk-tgwx5haz.js → chunk-a1zagtx1.js} +2 -2
- package/dist/bin/chunk-axwpxssn.js +1 -0
- package/dist/bin/chunk-c5qbz7ym.js +1 -0
- package/dist/bin/chunk-cqc4pc2h.js +1 -0
- package/dist/bin/chunk-d0xz1vh3.js +1 -0
- package/dist/bin/chunk-d2wm1zy3.js +1 -0
- package/dist/bin/{chunk-gcm9n6ww.js → chunk-dgad3hwh.js} +9 -9
- package/dist/bin/{chunk-81mt497w.js → chunk-hbrb314y.js} +1 -1
- package/dist/bin/chunk-hnwdjkrt.js +1 -0
- package/dist/bin/{chunk-kgtzvh2k.js → chunk-hpzbvc4a.js} +1 -1
- package/dist/bin/chunk-hrvfz72e.js +1 -0
- package/dist/bin/{chunk-sdy79wz7.js → chunk-hs5a6dhm.js} +4 -4
- package/dist/bin/chunk-j4d7h8rh.js +1 -0
- package/dist/bin/{chunk-yqkdyf0w.js → chunk-jsncf48k.js} +2 -2
- package/dist/bin/chunk-k178k5re.js +1 -0
- package/dist/bin/chunk-k5h2a7a8.js +1 -0
- package/dist/bin/{chunk-b9psp74n.js → chunk-kzh4csxz.js} +19 -19
- package/dist/bin/{chunk-0sht4yfg.js → chunk-mb2fh91q.js} +2 -2
- package/dist/bin/chunk-mzzrnkk5.js +9 -0
- package/dist/bin/{chunk-8mgwqpmx.js → chunk-nnxkw5pn.js} +2 -2
- package/dist/bin/{chunk-6k5g8b1w.js → chunk-nw8wmbmq.js} +2 -2
- package/dist/bin/chunk-prz0w9pq.js +1 -0
- package/dist/bin/chunk-rhjjdhhq.js +1 -0
- package/dist/bin/{chunk-fpxb97q5.js → chunk-rkd3x7fw.js} +1 -1
- package/dist/bin/chunk-rv7epkg1.js +1 -0
- package/dist/bin/{chunk-79sd00d1.js → chunk-s38txg38.js} +1 -1
- package/dist/bin/{chunk-qe56mnjc.js → chunk-s6qnx8a8.js} +2 -2
- package/dist/bin/{chunk-nnawqw34.js → chunk-sfb9q18c.js} +102 -102
- package/dist/bin/{chunk-8d8tdhtx.js → chunk-szpqbbyr.js} +4 -4
- package/dist/bin/chunk-tftcv9rt.js +1 -0
- package/dist/bin/{chunk-jhp53qsd.js → chunk-v0va4547.js} +2 -2
- package/dist/bin/{chunk-efbmb8rw.js → chunk-wc5swv1a.js} +1 -1
- package/dist/bin/{chunk-985ev3ns.js → chunk-wef81maa.js} +1 -1
- package/dist/bin/{chunk-vhz2wmb8.js → chunk-wq4hkbgj.js} +64 -64
- package/dist/bin/chunk-yd2155bj.js +1 -0
- package/dist/bin/chunk-yqefsck4.js +1 -0
- package/dist/bin/chunk-yzyt35ys.js +1 -0
- package/dist/bin/cli.js +45 -45
- package/dist/bin/dashboard-server.js +1 -1
- package/dist/{chunk-r45340yc.js → chunk-0pe1dfy0.js} +80 -80
- package/dist/{chunk-peeqkk92.js → chunk-29dcfx1g.js} +73 -73
- package/dist/{chunk-57fhsqzb.js → chunk-444h366b.js} +2 -2
- package/dist/{chunk-qrs912nk.js → chunk-45116tdd.js} +1 -1
- package/dist/chunk-4nfjkggt.js +1 -0
- package/dist/{chunk-kavwrxm8.js → chunk-6n72pe9x.js} +2 -2
- package/dist/{chunk-3harnmd6.js → chunk-7r2qc39k.js} +2 -2
- package/dist/chunk-8nafnyax.js +1 -0
- package/dist/{chunk-nq51dyxz.js → chunk-9r32w840.js} +12 -12
- package/dist/{chunk-xbh2vr95.js → chunk-c4kferxw.js} +95 -95
- package/dist/{chunk-ffxcn7mw.js → chunk-c6nw88s3.js} +1 -1
- package/dist/{chunk-10asqy6j.js → chunk-e08h4q50.js} +2 -2
- package/dist/chunk-e3831mvy.js +1 -0
- package/dist/{chunk-m93g67j0.js → chunk-g3f3ccdw.js} +2 -2
- package/dist/{chunk-9g8as6sa.js → chunk-jp57js5y.js} +1 -1
- package/dist/{chunk-efssa93f.js → chunk-k3azr9e3.js} +3 -3
- package/dist/{chunk-4hdp9ms2.js → chunk-m1jp1abp.js} +1 -1
- package/dist/{chunk-qjxdhb8x.js → chunk-n4gkyye3.js} +1 -1
- package/dist/{chunk-2mw7bjhn.js → chunk-nmm287ym.js} +3 -3
- package/dist/{chunk-s909414m.js → chunk-pkpmz35j.js} +1 -1
- package/dist/{chunk-t1gts5j9.js → chunk-qad1mjmc.js} +6 -6
- package/dist/{chunk-m5vwh9tb.js → chunk-s958jt49.js} +1 -1
- package/dist/{chunk-89rs2afj.js → chunk-tzvtq055.js} +1 -1
- package/dist/{chunk-wbabf3hg.js → chunk-v1wqxgra.js} +1 -1
- package/dist/{chunk-zesd879q.js → chunk-v9t4751b.js} +2 -2
- package/dist/{chunk-dm4vt53n.js → chunk-wctam3r1.js} +1 -1
- package/dist/chunk-xask9f1n.js +1 -0
- package/dist/chunk-xrr334m5.js +1 -0
- package/dist/{chunk-jh38v9zp.js → chunk-y3dj8xwk.js} +1 -1
- package/dist/{chunk-4jgy95bv.js → chunk-y3h0ybmn.js} +19 -19
- package/dist/deploy/index.js +1 -1
- package/dist/dns/index.js +1 -1
- package/dist/drivers/index.js +1 -1
- package/dist/drivers/shared/compute-ops.d.ts +1 -0
- package/dist/drivers/shared/releases.d.ts +43 -16
- package/dist/index.js +5 -5
- package/dist/operations/index.js +1 -1
- package/dist/protection/index.js +1 -1
- package/dist/spend/index.js +1 -1
- package/dist/ui/404.html +1 -1
- package/dist/ui/accept-invitation.html +1 -1
- package/dist/ui/access-denied.html +1 -1
- package/dist/ui/account/automation.html +6 -6
- package/dist/ui/account/security.html +2 -2
- package/dist/ui/applications/compose.html +6 -6
- package/dist/ui/applications/new.html +2 -2
- package/dist/ui/data/backups.html +6 -6
- package/dist/ui/data/services.html +6 -6
- package/dist/ui/data/volumes.html +6 -6
- package/dist/ui/index.html +6 -6
- package/dist/ui/infrastructure/topology.html +6 -6
- package/dist/ui/integrations.html +2 -2
- package/dist/ui/operations/alerts.html +6 -6
- package/dist/ui/operations/configuration.html +6 -6
- package/dist/ui/operations/jobs.html +6 -6
- package/dist/ui/operations/maintenance.html +6 -6
- package/dist/ui/operations/observability.html +6 -6
- package/dist/ui/operations/previews.html +6 -6
- package/dist/ui/operations/queue.html +5 -5
- package/dist/ui/operations/regions.html +6 -6
- package/dist/ui/operations/releases.html +6 -6
- package/dist/ui/operations/spend.html +6 -6
- package/dist/ui/operations/workloads.html +5 -5
- package/dist/ui/security.html +2 -2
- package/dist/ui/server/actions.html +6 -6
- package/dist/ui/server/activity.html +1 -1
- package/dist/ui/server/capacity.html +6 -6
- package/dist/ui/server/database.html +5 -5
- package/dist/ui/server/deployments.html +5 -5
- package/dist/ui/server/diagnostics.html +1 -1
- package/dist/ui/server/firewall.html +5 -5
- package/dist/ui/server/fleet.html +5 -5
- package/dist/ui/server/logs.html +6 -6
- package/dist/ui/server/metrics.html +5 -5
- package/dist/ui/server/security.html +1 -1
- package/dist/ui/server/services.html +2 -2
- package/dist/ui/server/sites.html +5 -5
- package/dist/ui/server/ssh-keys.html +6 -6
- package/dist/ui/server/team.html +6 -6
- package/dist/ui/server/terminal.html +2 -2
- package/dist/ui/serverless/alarms.html +6 -6
- package/dist/ui/serverless/assets.html +2 -2
- package/dist/ui/serverless/cost.html +2 -2
- package/dist/ui/serverless/data.html +6 -6
- package/dist/ui/serverless/deployments.html +2 -2
- package/dist/ui/serverless/firewall.html +1 -1
- package/dist/ui/serverless/functions.html +6 -6
- package/dist/ui/serverless/logs.html +6 -6
- package/dist/ui/serverless/metrics.html +2 -2
- package/dist/ui/serverless/queues.html +6 -6
- package/dist/ui/serverless/secrets.html +5 -5
- package/dist/ui/serverless/traces.html +6 -6
- package/dist/ui/serverless.html +5 -5
- package/package.json +3 -3
- package/dist/bin/chunk-12j17qm5.js +0 -1
- package/dist/bin/chunk-24473jks.js +0 -1
- package/dist/bin/chunk-3932p1z3.js +0 -1
- package/dist/bin/chunk-3eztnxgw.js +0 -1
- package/dist/bin/chunk-4182gadf.js +0 -1
- package/dist/bin/chunk-4er4ktcs.js +0 -1
- package/dist/bin/chunk-9eq18gds.js +0 -1
- package/dist/bin/chunk-9zhp2z0s.js +0 -1
- package/dist/bin/chunk-bmmr5mq6.js +0 -1
- package/dist/bin/chunk-cr56pxpt.js +0 -1
- package/dist/bin/chunk-dvv2z19r.js +0 -1
- package/dist/bin/chunk-eyrmv6c4.js +0 -1
- package/dist/bin/chunk-fnnv0t66.js +0 -1
- package/dist/bin/chunk-fwmje99n.js +0 -1
- package/dist/bin/chunk-gzxpkk0c.js +0 -3
- package/dist/bin/chunk-n775dk3f.js +0 -1
- package/dist/bin/chunk-ppj604c9.js +0 -1
- package/dist/bin/chunk-prq5gw4j.js +0 -1
- package/dist/bin/chunk-pt71fyem.js +0 -1
- package/dist/bin/chunk-qvj454fy.js +0 -1
- package/dist/bin/chunk-smj97rs5.js +0 -1
- package/dist/bin/chunk-wt7wjgcr.js +0 -9
- package/dist/bin/chunk-yf3zys06.js +0 -1
- package/dist/bin/chunk-zmjm7bmm.js +0 -1
- package/dist/chunk-05bmq0z1.js +0 -1
- package/dist/chunk-0qdgw73b.js +0 -1
- package/dist/chunk-983txhkg.js +0 -1
- package/dist/chunk-gv2m8yyg.js +0 -1
- package/dist/chunk-pf6sanwe.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{De,ta,Ro,fa,un,Bo,ha,ya,Ca,wa}from"./chunk-nnawqw34.js";import{n,r,a,e,p,i,Se}from"./chunk-tgwx5haz.js";import{u}from"./chunk-qe56mnjc.js";import{v}from"./chunk-x56s9b7f.js";import{R}from"./chunk-fpxb97q5.js";import{g}from"./chunk-kqf19j9m.js";import{existsSync as de,readdirSync as me,readFileSync as pe,statSync as fe}from"node:fs";import{join as ne,relative as ye}from"node:path";class K{client;region;constructor(t="us-east-1",s){this.region=t,this.client=new u(void 0,{profile:s})}async createSecret(t){let s={Name:t.Name};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.Tags&&t.Tags.length>0)s.Tags=t.Tags;if(t.AddReplicaRegions&&t.AddReplicaRegions.length>0)s.AddReplicaRegions=t.AddReplicaRegions;if(t.ForceOverwriteReplicaSecret!==void 0)s.ForceOverwriteReplicaSecret=t.ForceOverwriteReplicaSecret;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CreateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,ReplicationStatus:o.ReplicationStatus}}async updateSecret(t){let s={SecretId:t.SecretId,ClientRequestToken:t.ClientRequestToken||crypto.randomUUID()};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UpdateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async putSecretValue(t){let s={SecretId:t.SecretId};if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.VersionStages&&t.VersionStages.length>0)s.VersionStages=t.VersionStages;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,VersionStages:o.VersionStages}}async getSecretValue(t){let s={SecretId:t.SecretId};if(t.VersionId)s.VersionId=t.VersionId;if(t.VersionStage)s.VersionStage=t.VersionStage;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,SecretBinary:o.SecretBinary,SecretString:o.SecretString,VersionStages:o.VersionStages,CreatedDate:o.CreatedDate}}async describeSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DescribeSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return this.parseSecret(o)}async listSecrets(t){let s={};if(t?.MaxResults)s.MaxResults=t.MaxResults;if(t?.NextToken)s.NextToken=t.NextToken;if(t?.Filters&&t.Filters.length>0)s.Filters=t.Filters;if(t?.SortOrder)s.SortOrder=t.SortOrder;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.ListSecrets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{SecretList:o.SecretList?.map((c)=>this.parseSecret(c)),NextToken:o.NextToken}}async deleteSecret(t){let s={SecretId:t.SecretId};if(t.RecoveryWindowInDays!==void 0)s.RecoveryWindowInDays=t.RecoveryWindowInDays;if(t.ForceDeleteWithoutRecovery!==void 0)s.ForceDeleteWithoutRecovery=t.ForceDeleteWithoutRecovery;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,DeletionDate:o.DeletionDate}}async restoreSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RestoreSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async rotateSecret(t){let s={SecretId:t.SecretId};if(t.ClientRequestToken)s.ClientRequestToken=t.ClientRequestToken;if(t.RotationLambdaARN)s.RotationLambdaARN=t.RotationLambdaARN;if(t.RotationRules)s.RotationRules=t.RotationRules;if(t.RotateImmediately!==void 0)s.RotateImmediately=t.RotateImmediately;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async cancelRotateSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CancelRotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async getResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,ResourcePolicy:o.ResourcePolicy}}async putResourcePolicy(t){let s={SecretId:t.SecretId,ResourcePolicy:t.ResourcePolicy};if(t.BlockPublicPolicy!==void 0)s.BlockPublicPolicy=t.BlockPublicPolicy;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async deleteResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async tagResource(t){let s={SecretId:t.SecretId,Tags:t.Tags};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async untagResource(t){let s={SecretId:t.SecretId,TagKeys:t.TagKeys};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UntagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async setString(t,s,o){try{let c=await this.putSecretValue({SecretId:t,SecretString:s});return{ARN:c.ARN,VersionId:c.VersionId}}catch(c){if(c.code==="ResourceNotFoundException"){let l=await this.createSecret({Name:t,SecretString:s,Description:o?.description,KmsKeyId:o?.kmsKeyId,Tags:o?.tags});return{ARN:l.ARN,VersionId:l.VersionId}}throw c}}async setJson(t,s,o){return this.setString(t,JSON.stringify(s),o)}async getString(t){return(await this.getSecretValue({SecretId:t})).SecretString}async getJson(t){let s=await this.getString(t);if(s)return JSON.parse(s);return}async listAll(){let t=[],s;do{let o=await this.listSecrets({NextToken:s});if(o.SecretList)t.push(...o.SecretList);s=o.NextToken}while(s);return t}parseSecret(t){return{ARN:t.ARN,Name:t.Name,Description:t.Description,KmsKeyId:t.KmsKeyId,RotationEnabled:t.RotationEnabled,RotationLambdaARN:t.RotationLambdaARN,RotationRules:t.RotationRules,LastRotatedDate:t.LastRotatedDate,LastChangedDate:t.LastChangedDate,LastAccessedDate:t.LastAccessedDate,DeletedDate:t.DeletedDate,NextRotationDate:t.NextRotationDate,Tags:t.Tags,SecretVersionsToStages:t.SecretVersionsToStages,CreatedDate:t.CreatedDate,PrimaryRegion:t.PrimaryRegion}}}function E(t,s){let o=t.environments?.[s]?.app;if(!o)throw Error(`No serverless app configured for environment '${s}'. Add environments.${s}.app to your config.`);let c=t.project.slug,l=t.environments?.[s]?.region||t.project.region||"us-east-1";return{app:o,slug:c,region:l,stackName:De(t,s),artifactBucket:ta(c,s),assetsBucket:Ro(c,s)}}function yt(t,s){let o=E(t,s),c=`${o.slug}-${s}`;return{region:o.region,slug:o.slug,stackName:o.stackName,functions:{http:`${c}-http`,queue:`${c}-queue`,cli:`${c}-cli`}}}async function q(t,s=8){let o;for(let c=0;c<s;c++)try{return await t()}catch(l){let d=l?.code||l?.name||"",m=String(l?.message||"");if(d==="ResourceConflictException"||/update is in progress|currently in the following state/i.test(m)){o=l,await new Promise((f)=>setTimeout(f,3000));continue}throw l}throw o}var ie=(t,s)=>`releases/${t}/${s}/current.json`;async function G(t,s,o,c){try{return await t.getObjectJson(s,ie(o,c))}catch{return null}}async function ae(t,s,o,c,l){await t.putObjectJson(s,ie(o,c),l)}async function Re(t,s){if(!t.secrets)return{};let o=new K(s),c={},l=Array.isArray(t.secrets)?t.secrets.map((d)=>({envName:d.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),secretId:d})):Object.entries(t.secrets).map(([d,m])=>({envName:d,secretId:m}));if(Array.isArray(t.secrets)){let d=new Map;for(let{envName:f,secretId:S}of l)d.set(f,[...d.get(f)??[],S]);let m=[...d.entries()].filter(([,f])=>f.length>1);if(m.length){let f=m.map(([S,h])=>`${S} ← ${h.join(", ")}`).join("; ");throw Error(`serverless secrets: multiple secrets map to the same env var (${f}). Use the map form { ENV_NAME: 'secret/id' } to disambiguate.`)}}for(let{envName:d,secretId:m}of l){let S=(await o.getSecretValue({SecretId:m})).SecretString??"";try{let h=JSON.parse(S);if(h&&typeof h==="object"&&!Array.isArray(h)){for(let[C,w]of Object.entries(h))c[C]=String(w);continue}}catch{}c[d]=S}return c}function Id(t,s){let o={},c=s.DbProxyEndpoint||s.DbEndpoint;if(c)o.DB_CONNECTION="mysql",o.DB_HOST=c,o.DB_PORT="3306",o.DB_DATABASE=o.DB_DATABASE||"app";if(s.CacheEndpoint){if(o.REDIS_HOST=s.CacheEndpoint,o.REDIS_PORT="6379",t.cache?.driver==="elasticache")o.CACHE_STORE="redis",o.CACHE_DRIVER="redis",o.SESSION_DRIVER="redis"}return o}function Cs(t,s,o,c,l,d,m,f={}){let S=t.kind==="php"?Ca({cacheDriver:t.cache?.driver==="elasticache"?"redis":"dynamodb"}):{};return{TSCLOUD_LAMBDA_MODE:c,TSCLOUD_ENV:o,MAINTENANCE_MODE:"0",...t.octane?{TSCLOUD_OCTANE:"1"}:{},...t.serveAssets?{TSCLOUD_SERVE_ASSETS:"1"}:{},...t.redirectRobotsTxt===!1?{TSCLOUD_REDIRECT_ROBOTS_TXT:"0"}:{},...S,...f,...s.app.cache?.driver!=="elasticache"?{TSCLOUD_CACHE_TABLE:`${s.slug}-${o}-cache`}:{},...m?{TSCLOUD_QUEUE:m,SQS_QUEUE:m}:{},...d?{ASSET_URL:d}:{},...t.env??{},...l}}function he(t){let s=t.slice(t.lastIndexOf(".")).toLowerCase();return{".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain",".map":"application/json"}[s]??"application/octet-stream"}function*oe(t){for(let s of me(t)){let o=ne(t,s);if(fe(o).isDirectory())yield*oe(o);else yield o}}async function ve(t,s,o,c,l=!1){let d=0;for(let m of oe(o)){let f=ye(o,m).replace(/\\/g,"/");if(!l&&f.split("/").some((S)=>S.startsWith(".")))continue;await t.putObject({bucket:s,key:`${c}/${f}`,body:pe(m),contentType:he(m),cacheControl:"public, max-age=31536000, immutable"}),d++}return d}function po(t,s){let o=Object.entries(s).reduce((c,[l,d])=>c+Buffer.byteLength(`${l}=${d}`,"utf8"),0);if(o>4096){let c=Object.entries(s).map(([l,d])=>[l,Buffer.byteLength(`${l}=${d}`,"utf8")]).sort((l,d)=>d[1]-l[1]).slice(0,5).map(([l,d])=>`${l} (${d}B)`).join(", ");throw Error(`${t}: environment variables total ${o}B, over AWS's 4096B limit (${o-4096}B too large). Largest: ${c}. Move large/secret values out of env — store them in Secrets Manager and fetch at cold start.`)}}async function U(t,s,o,c){po(s,o),await q(()=>t.updateFunctionConfiguration({FunctionName:s,Environment:{Variables:o}})),await t.waitForFunctionActive(s,120);let l=c.kind==="image"?{FunctionName:s,ImageUri:c.imageUri}:{FunctionName:s,S3Bucket:c.bucket,S3Key:c.key};await q(()=>t.updateFunctionCode(l)),await t.waitForFunctionActive(s,120)}async function X(t,s){let c=(await q(()=>t.publishVersion({FunctionName:s}))).Version;if(!c)throw Error(`publishVersion returned no version for ${s}`);return await q(()=>t.updateAlias({FunctionName:s,Name:"live",FunctionVersion:c})),c}async function up(t,s,o={}){let c=E(t,s),{app:l,slug:d,region:m,stackName:f,artifactBucket:S}=c,h=o.projectRoot??process.cwd();i(`Deploying serverless app: ${d} (${s})`),e(`Stack: ${f}`),e(`Region: ${m}`);let C=new g(m),w=new v(m),b=new R(m),P=l.kind==="php",O=l.packaging==="image",N=Bo(l),V,I,k,Y,M=[];if(O&&N.usesLayer&&N.layerKind!=="php")throw Error(`packaging: 'image' currently supports PHP and managed Node runtimes. ${N.kind}${N.kind==="node"?` ${N.version}`:""} uses a custom runtime — `+"use the default zip packaging (the runtime layer is built + attached automatically).");if(O){p("Building + pushing container image");let{buildAndPushServerlessImage:y}=await import("./chunk-n775dk3f.js"),A=await y({app:l,projectRoot:h,region:m,repository:`${d}-${s}`,skipBuild:o.skipBuild,onStep:(D)=>e(` ${D}`)});V=A.handlers,I={kind:"image",imageUri:A.imageUri},k=A.tag,M.push({ParameterKey:"ImageUri",ParameterValue:A.imageUri})}else{p("Packaging application");let y=P?wa({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}):await un({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}),A=fa(d,s,y.sha256);if(e(`Artifact: ${y.sha256.slice(0,12)} (${(y.zip.length/1024).toFixed(0)} KB)`),V=y.handlers,k=y.sha256,N.usesLayer){let x=N.layerEnvVar?process.env[N.layerEnvVar]:void 0;if(Y=l.layers??(x?[x]:void 0),!Y?.length){let ge=N.layerKind==="php"?"serverless:build-php-layer":N.layerKind==="bun"?"serverless:build-bun-layer":"serverless:build-node-layer";throw Error(`${N.kind} apps on provided.al2023 need a runtime layer. Set environments.<env>.app.layers or the ${N.layerEnvVar} env var (build one with \`cloud ${ge}\`)${N.kind==="node"?", or use a managed Node version (18/20/22)":""}.`)}}if(!await C.bucketExists(S))p(`Creating artifact bucket ${S}`),await C.createBucket(S);if(await C.headObject(S,A).then((x)=>x!==null).catch(()=>!1))e("Artifact already uploaded — reusing");else p("Uploading artifact"),await C.putObject({bucket:S,key:A,body:y.zip,contentType:"application/zip"});I={kind:"zip",bucket:S,key:A},M.push({ParameterKey:"ArtifactBucket",ParameterValue:S},{ParameterKey:"ArtifactKey",ParameterValue:A})}let T=ya({config:t,environment:s,app:l,handlers:V,runtimeLayers:Y}),te=JSON.stringify(T.template),re=["CAPABILITY_NAMED_IAM"],L=await w.describeStacks({stackName:f}).then((y)=>y.Stacks[0]?.StackStatus).catch(()=>{return}),J=L!==void 0;if(L&&/DELETE_IN_PROGRESS/.test(L))p("Waiting for an in-progress stack delete to finish"),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;else if(L&&/(?:ROLLBACK_COMPLETE|REVIEW_IN_PROGRESS|CREATE_FAILED)/.test(L))p(`Deleting unusable stack (status ${L}) before recreate`),await w.deleteStack(f),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;p(J?"Updating infrastructure stack":"Creating infrastructure stack");try{if(J)await w.updateStack({stackName:f,templateBody:te,parameters:M,capabilities:re}),await w.waitForStack(f,"stack-update-complete");else await w.createStack({stackName:f,templateBody:te,parameters:M,capabilities:re,onFailure:"DELETE"}),await w.waitForStack(f,"stack-create-complete")}catch(y){if(/No updates are to be performed/i.test(String(y?.message)))e("No infrastructure changes");else throw y}let Q=await w.getStackOutputs(f).catch(()=>({})),B;if(l.assets){let y=ne(h,l.assets);if(de(y)){let A=l.assetDomain||Q.AssetsCdnDomain;B=A?`https://${A}/${k}`:void 0,p(`Syncing assets from ${l.assets}`);let D=await ve(C,c.assetsBucket,y,k,l.dotFilesAsAssets);e(`Uploaded ${D} asset(s)${B?` → ${B}`:""}`)}else a(`Assets directory not found: ${y}`)}p("Resolving secrets");let _=await Re(l,m);if(l.database?.connection==="aurora-serverless")try{let A=await new K(m).getSecretValue({SecretId:`${d}/${s}/db`}),D=JSON.parse(A.SecretString??"{}");if(D.username)_.DB_USERNAME=D.username;if(D.password)_.DB_PASSWORD=D.password}catch(y){a(`Could not resolve Aurora DB credentials: ${y.message}`)}if(!await C.bucketExists(S))await C.createBucket(S);let H=await G(C,S,d,s),F={},Z=T.queueNames[0],ee=Id(l,Q);if(p("Activating functions"),F.http=Cs(l,c,s,"http",_,B,Z,ee),await U(b,T.functionNames.http,F.http,I),F.cli=Cs(l,c,s,"cli",_,B,Z,ee),await U(b,T.functionNames.cli,F.cli,I),T.queueNames.length)F.queue=Cs(l,c,s,"queue",_,B,Z,ee),await U(b,T.functionNames.queue,F.queue,I);let se=(l.provisionedConcurrency??0)>0,W={};if(se){if(p("Publishing versions + flipping live alias"),W.http=await X(b,T.functionNames.http),W.cli=await X(b,T.functionNames.cli),T.queueNames.length)W.queue=await X(b,T.functionNames.queue)}if(await ae(C,S,d,s,{sha:k,code:I,previousSha:H?.sha,previousCode:H?.code,previousFunctionEnv:H?.functionEnv,...se?{functionVersions:W,previousFunctionVersions:H?.functionVersions}:{},functionEnv:F,functionNames:{http:T.functionNames.http,cli:T.functionNames.cli,...T.queueNames.length?{queue:T.functionNames.queue}:{}},assetUrl:B,timestamp:new Date().toISOString()}),!o.skipDeployHooks&&l.deploy?.length){p("Running deploy hooks");for(let y of l.deploy){e(` deploy: ${y}`);let A=await b.invoke({FunctionName:T.functionNames.cli,InvocationType:"RequestResponse",Payload:{command:y},LogType:"Tail"});if(A.FunctionError)throw r("Deploy hook failed — the new build is ALREADY LIVE."),e(` Roll back with: cloud serverless:rollback --env ${s}`),Error(`Deploy hook failed (${y}): ${A.Payload}`)}}let j=Q.HttpApiEndpoint;if(!o.skipHealthCheck&&j){p("Health check");try{let y=await fetch(j,{method:"GET"});e(`GET ${j} → ${y.status}`)}catch(y){a(`Health check could not reach ${j}: ${y.message}`)}}Se(["Serverless deploy complete","",j?`URL: ${j}`:"",`Stack: ${f}`,`Build: ${k.slice(0,12)}`].filter(Boolean).join(`
|
|
2
|
-
`),"green")}async function ws(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d)throw Error("No previous release to redeploy. Run a full deploy first.");i(`Redeploying ${o.slug} (${s}) — build ${d.sha.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Re-activating ${m} (${f})`),await U(l,f,d.functionEnv[m]??{},d.code);let S=d.functionVersions?.[m];if(S)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:S}))}n("Redeploy complete")}async function As(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d?.previousCode)throw Error("No previous release to roll back to.");i(`Rolling back ${o.slug} (${s}) → ${d.previousSha?.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Restoring ${m} (${f})`);let S=d.previousFunctionEnv?.[m]??d.functionEnv[m]??{};await U(l,f,S,d.previousCode);let h=d.previousFunctionVersions?.[m];if(h)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:h}))}await ae(c,o.artifactBucket,o.slug,s,{...d,sha:d.previousSha??d.sha,code:d.previousCode,functionEnv:d.previousFunctionEnv??d.functionEnv,functionVersions:d.previousFunctionVersions??d.functionVersions,previousSha:void 0,previousCode:void 0,previousFunctionEnv:void 0,previousFunctionVersions:void 0,timestamp:new Date().toISOString()}),n("Rollback complete")}async function mo(t,s,o,c){let l=E(t,s),d=new R(l.region),m=`${l.slug}-${s}-http`,S={...(await d.getFunction(m)).Configuration?.Environment?.Variables??{}};if(S.MAINTENANCE_MODE=o?"1":"0",o&&c)S.MAINTENANCE_BYPASS_SECRET=c;if(!o)delete S.MAINTENANCE_BYPASS_SECRET;if(await q(()=>d.updateFunctionConfiguration({FunctionName:m,Environment:{Variables:S}})),(l.app.provisionedConcurrency??0)>0)await d.waitForFunctionActive(m,120),await X(d,m);n(o?"Application is now in maintenance mode (503)":"Application is live")}async function Mt(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"});if(m.FunctionError)throw Error(`Command failed: ${m.Payload}`);return m.Payload??""}var ce=(t,s)=>`commands/${t}/${s}/history.json`,Ne=50;async function le(t,s,o,c){try{return(await t.getObjectJson(s,ce(o,c)))?.records??[]}catch{return[]}}async function
|
|
3
|
-
export{K,yt,
|
|
1
|
+
import{De,ra,Ro,ha,un,Bo,ya,Sa,wa,Aa}from"./chunk-sfb9q18c.js";import{n,r,a,e,p,i,Se}from"./chunk-a1zagtx1.js";import{u}from"./chunk-s6qnx8a8.js";import{v}from"./chunk-4vbnagyd.js";import{R}from"./chunk-rkd3x7fw.js";import{g}from"./chunk-59f6mqkj.js";import{existsSync as de,readdirSync as me,readFileSync as pe,statSync as fe}from"node:fs";import{join as ne,relative as ye}from"node:path";class K{client;region;constructor(t="us-east-1",s){this.region=t,this.client=new u(void 0,{profile:s})}async createSecret(t){let s={Name:t.Name};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.Tags&&t.Tags.length>0)s.Tags=t.Tags;if(t.AddReplicaRegions&&t.AddReplicaRegions.length>0)s.AddReplicaRegions=t.AddReplicaRegions;if(t.ForceOverwriteReplicaSecret!==void 0)s.ForceOverwriteReplicaSecret=t.ForceOverwriteReplicaSecret;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CreateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,ReplicationStatus:o.ReplicationStatus}}async updateSecret(t){let s={SecretId:t.SecretId,ClientRequestToken:t.ClientRequestToken||crypto.randomUUID()};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UpdateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async putSecretValue(t){let s={SecretId:t.SecretId};if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.VersionStages&&t.VersionStages.length>0)s.VersionStages=t.VersionStages;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,VersionStages:o.VersionStages}}async getSecretValue(t){let s={SecretId:t.SecretId};if(t.VersionId)s.VersionId=t.VersionId;if(t.VersionStage)s.VersionStage=t.VersionStage;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,SecretBinary:o.SecretBinary,SecretString:o.SecretString,VersionStages:o.VersionStages,CreatedDate:o.CreatedDate}}async describeSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DescribeSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return this.parseSecret(o)}async listSecrets(t){let s={};if(t?.MaxResults)s.MaxResults=t.MaxResults;if(t?.NextToken)s.NextToken=t.NextToken;if(t?.Filters&&t.Filters.length>0)s.Filters=t.Filters;if(t?.SortOrder)s.SortOrder=t.SortOrder;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.ListSecrets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{SecretList:o.SecretList?.map((c)=>this.parseSecret(c)),NextToken:o.NextToken}}async deleteSecret(t){let s={SecretId:t.SecretId};if(t.RecoveryWindowInDays!==void 0)s.RecoveryWindowInDays=t.RecoveryWindowInDays;if(t.ForceDeleteWithoutRecovery!==void 0)s.ForceDeleteWithoutRecovery=t.ForceDeleteWithoutRecovery;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,DeletionDate:o.DeletionDate}}async restoreSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RestoreSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async rotateSecret(t){let s={SecretId:t.SecretId};if(t.ClientRequestToken)s.ClientRequestToken=t.ClientRequestToken;if(t.RotationLambdaARN)s.RotationLambdaARN=t.RotationLambdaARN;if(t.RotationRules)s.RotationRules=t.RotationRules;if(t.RotateImmediately!==void 0)s.RotateImmediately=t.RotateImmediately;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async cancelRotateSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CancelRotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async getResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,ResourcePolicy:o.ResourcePolicy}}async putResourcePolicy(t){let s={SecretId:t.SecretId,ResourcePolicy:t.ResourcePolicy};if(t.BlockPublicPolicy!==void 0)s.BlockPublicPolicy=t.BlockPublicPolicy;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async deleteResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async tagResource(t){let s={SecretId:t.SecretId,Tags:t.Tags};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async untagResource(t){let s={SecretId:t.SecretId,TagKeys:t.TagKeys};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UntagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async setString(t,s,o){try{let c=await this.putSecretValue({SecretId:t,SecretString:s});return{ARN:c.ARN,VersionId:c.VersionId}}catch(c){if(c.code==="ResourceNotFoundException"){let l=await this.createSecret({Name:t,SecretString:s,Description:o?.description,KmsKeyId:o?.kmsKeyId,Tags:o?.tags});return{ARN:l.ARN,VersionId:l.VersionId}}throw c}}async setJson(t,s,o){return this.setString(t,JSON.stringify(s),o)}async getString(t){return(await this.getSecretValue({SecretId:t})).SecretString}async getJson(t){let s=await this.getString(t);if(s)return JSON.parse(s);return}async listAll(){let t=[],s;do{let o=await this.listSecrets({NextToken:s});if(o.SecretList)t.push(...o.SecretList);s=o.NextToken}while(s);return t}parseSecret(t){return{ARN:t.ARN,Name:t.Name,Description:t.Description,KmsKeyId:t.KmsKeyId,RotationEnabled:t.RotationEnabled,RotationLambdaARN:t.RotationLambdaARN,RotationRules:t.RotationRules,LastRotatedDate:t.LastRotatedDate,LastChangedDate:t.LastChangedDate,LastAccessedDate:t.LastAccessedDate,DeletedDate:t.DeletedDate,NextRotationDate:t.NextRotationDate,Tags:t.Tags,SecretVersionsToStages:t.SecretVersionsToStages,CreatedDate:t.CreatedDate,PrimaryRegion:t.PrimaryRegion}}}function E(t,s){let o=t.environments?.[s]?.app;if(!o)throw Error(`No serverless app configured for environment '${s}'. Add environments.${s}.app to your config.`);let c=t.project.slug,l=t.environments?.[s]?.region||t.project.region||"us-east-1";return{app:o,slug:c,region:l,stackName:De(t,s),artifactBucket:ra(c,s),assetsBucket:Ro(c,s)}}function yt(t,s){let o=E(t,s),c=`${o.slug}-${s}`;return{region:o.region,slug:o.slug,stackName:o.stackName,functions:{http:`${c}-http`,queue:`${c}-queue`,cli:`${c}-cli`}}}async function q(t,s=8){let o;for(let c=0;c<s;c++)try{return await t()}catch(l){let d=l?.code||l?.name||"",m=String(l?.message||"");if(d==="ResourceConflictException"||/update is in progress|currently in the following state/i.test(m)){o=l,await new Promise((f)=>setTimeout(f,3000));continue}throw l}throw o}var ie=(t,s)=>`releases/${t}/${s}/current.json`;async function G(t,s,o,c){try{return await t.getObjectJson(s,ie(o,c))}catch{return null}}async function ae(t,s,o,c,l){await t.putObjectJson(s,ie(o,c),l)}async function Re(t,s){if(!t.secrets)return{};let o=new K(s),c={},l=Array.isArray(t.secrets)?t.secrets.map((d)=>({envName:d.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),secretId:d})):Object.entries(t.secrets).map(([d,m])=>({envName:d,secretId:m}));if(Array.isArray(t.secrets)){let d=new Map;for(let{envName:f,secretId:S}of l)d.set(f,[...d.get(f)??[],S]);let m=[...d.entries()].filter(([,f])=>f.length>1);if(m.length){let f=m.map(([S,h])=>`${S} ← ${h.join(", ")}`).join("; ");throw Error(`serverless secrets: multiple secrets map to the same env var (${f}). Use the map form { ENV_NAME: 'secret/id' } to disambiguate.`)}}for(let{envName:d,secretId:m}of l){let S=(await o.getSecretValue({SecretId:m})).SecretString??"";try{let h=JSON.parse(S);if(h&&typeof h==="object"&&!Array.isArray(h)){for(let[C,w]of Object.entries(h))c[C]=String(w);continue}}catch{}c[d]=S}return c}function Pd(t,s){let o={},c=s.DbProxyEndpoint||s.DbEndpoint;if(c)o.DB_CONNECTION="mysql",o.DB_HOST=c,o.DB_PORT="3306",o.DB_DATABASE=o.DB_DATABASE||"app";if(s.CacheEndpoint){if(o.REDIS_HOST=s.CacheEndpoint,o.REDIS_PORT="6379",t.cache?.driver==="elasticache")o.CACHE_STORE="redis",o.CACHE_DRIVER="redis",o.SESSION_DRIVER="redis"}return o}function Cs(t,s,o,c,l,d,m,f={}){let S=t.kind==="php"?wa({cacheDriver:t.cache?.driver==="elasticache"?"redis":"dynamodb"}):{};return{TSCLOUD_LAMBDA_MODE:c,TSCLOUD_ENV:o,MAINTENANCE_MODE:"0",...t.octane?{TSCLOUD_OCTANE:"1"}:{},...t.serveAssets?{TSCLOUD_SERVE_ASSETS:"1"}:{},...t.redirectRobotsTxt===!1?{TSCLOUD_REDIRECT_ROBOTS_TXT:"0"}:{},...S,...f,...s.app.cache?.driver!=="elasticache"?{TSCLOUD_CACHE_TABLE:`${s.slug}-${o}-cache`}:{},...m?{TSCLOUD_QUEUE:m,SQS_QUEUE:m}:{},...d?{ASSET_URL:d}:{},...t.env??{},...l}}function he(t){let s=t.slice(t.lastIndexOf(".")).toLowerCase();return{".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain",".map":"application/json"}[s]??"application/octet-stream"}function*oe(t){for(let s of me(t)){let o=ne(t,s);if(fe(o).isDirectory())yield*oe(o);else yield o}}async function ve(t,s,o,c,l=!1){let d=0;for(let m of oe(o)){let f=ye(o,m).replace(/\\/g,"/");if(!l&&f.split("/").some((S)=>S.startsWith(".")))continue;await t.putObject({bucket:s,key:`${c}/${f}`,body:pe(m),contentType:he(m),cacheControl:"public, max-age=31536000, immutable"}),d++}return d}function po(t,s){let o=Object.entries(s).reduce((c,[l,d])=>c+Buffer.byteLength(`${l}=${d}`,"utf8"),0);if(o>4096){let c=Object.entries(s).map(([l,d])=>[l,Buffer.byteLength(`${l}=${d}`,"utf8")]).sort((l,d)=>d[1]-l[1]).slice(0,5).map(([l,d])=>`${l} (${d}B)`).join(", ");throw Error(`${t}: environment variables total ${o}B, over AWS's 4096B limit (${o-4096}B too large). Largest: ${c}. Move large/secret values out of env — store them in Secrets Manager and fetch at cold start.`)}}async function U(t,s,o,c){po(s,o),await q(()=>t.updateFunctionConfiguration({FunctionName:s,Environment:{Variables:o}})),await t.waitForFunctionActive(s,120);let l=c.kind==="image"?{FunctionName:s,ImageUri:c.imageUri}:{FunctionName:s,S3Bucket:c.bucket,S3Key:c.key};await q(()=>t.updateFunctionCode(l)),await t.waitForFunctionActive(s,120)}async function X(t,s){let c=(await q(()=>t.publishVersion({FunctionName:s}))).Version;if(!c)throw Error(`publishVersion returned no version for ${s}`);return await q(()=>t.updateAlias({FunctionName:s,Name:"live",FunctionVersion:c})),c}async function mp(t,s,o={}){let c=E(t,s),{app:l,slug:d,region:m,stackName:f,artifactBucket:S}=c,h=o.projectRoot??process.cwd();i(`Deploying serverless app: ${d} (${s})`),e(`Stack: ${f}`),e(`Region: ${m}`);let C=new g(m),w=new v(m),b=new R(m),P=l.kind==="php",O=l.packaging==="image",N=Bo(l),V,I,k,Y,M=[];if(O&&N.usesLayer&&N.layerKind!=="php")throw Error(`packaging: 'image' currently supports PHP and managed Node runtimes. ${N.kind}${N.kind==="node"?` ${N.version}`:""} uses a custom runtime — `+"use the default zip packaging (the runtime layer is built + attached automatically).");if(O){p("Building + pushing container image");let{buildAndPushServerlessImage:y}=await import("./chunk-3ybxaehy.js"),A=await y({app:l,projectRoot:h,region:m,repository:`${d}-${s}`,skipBuild:o.skipBuild,onStep:(D)=>e(` ${D}`)});V=A.handlers,I={kind:"image",imageUri:A.imageUri},k=A.tag,M.push({ParameterKey:"ImageUri",ParameterValue:A.imageUri})}else{p("Packaging application");let y=P?Aa({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}):await un({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}),A=ha(d,s,y.sha256);if(e(`Artifact: ${y.sha256.slice(0,12)} (${(y.zip.length/1024).toFixed(0)} KB)`),V=y.handlers,k=y.sha256,N.usesLayer){let x=N.layerEnvVar?process.env[N.layerEnvVar]:void 0;if(Y=l.layers??(x?[x]:void 0),!Y?.length){let ge=N.layerKind==="php"?"serverless:build-php-layer":N.layerKind==="bun"?"serverless:build-bun-layer":"serverless:build-node-layer";throw Error(`${N.kind} apps on provided.al2023 need a runtime layer. Set environments.<env>.app.layers or the ${N.layerEnvVar} env var (build one with \`cloud ${ge}\`)${N.kind==="node"?", or use a managed Node version (18/20/22)":""}.`)}}if(!await C.bucketExists(S))p(`Creating artifact bucket ${S}`),await C.createBucket(S);if(await C.headObject(S,A).then((x)=>x!==null).catch(()=>!1))e("Artifact already uploaded — reusing");else p("Uploading artifact"),await C.putObject({bucket:S,key:A,body:y.zip,contentType:"application/zip"});I={kind:"zip",bucket:S,key:A},M.push({ParameterKey:"ArtifactBucket",ParameterValue:S},{ParameterKey:"ArtifactKey",ParameterValue:A})}let T=Sa({config:t,environment:s,app:l,handlers:V,runtimeLayers:Y}),te=JSON.stringify(T.template),re=["CAPABILITY_NAMED_IAM"],L=await w.describeStacks({stackName:f}).then((y)=>y.Stacks[0]?.StackStatus).catch(()=>{return}),J=L!==void 0;if(L&&/DELETE_IN_PROGRESS/.test(L))p("Waiting for an in-progress stack delete to finish"),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;else if(L&&/(?:ROLLBACK_COMPLETE|REVIEW_IN_PROGRESS|CREATE_FAILED)/.test(L))p(`Deleting unusable stack (status ${L}) before recreate`),await w.deleteStack(f),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;p(J?"Updating infrastructure stack":"Creating infrastructure stack");try{if(J)await w.updateStack({stackName:f,templateBody:te,parameters:M,capabilities:re}),await w.waitForStack(f,"stack-update-complete");else await w.createStack({stackName:f,templateBody:te,parameters:M,capabilities:re,onFailure:"DELETE"}),await w.waitForStack(f,"stack-create-complete")}catch(y){if(/No updates are to be performed/i.test(String(y?.message)))e("No infrastructure changes");else throw y}let Q=await w.getStackOutputs(f).catch(()=>({})),B;if(l.assets){let y=ne(h,l.assets);if(de(y)){let A=l.assetDomain||Q.AssetsCdnDomain;B=A?`https://${A}/${k}`:void 0,p(`Syncing assets from ${l.assets}`);let D=await ve(C,c.assetsBucket,y,k,l.dotFilesAsAssets);e(`Uploaded ${D} asset(s)${B?` → ${B}`:""}`)}else a(`Assets directory not found: ${y}`)}p("Resolving secrets");let _=await Re(l,m);if(l.database?.connection==="aurora-serverless")try{let A=await new K(m).getSecretValue({SecretId:`${d}/${s}/db`}),D=JSON.parse(A.SecretString??"{}");if(D.username)_.DB_USERNAME=D.username;if(D.password)_.DB_PASSWORD=D.password}catch(y){a(`Could not resolve Aurora DB credentials: ${y.message}`)}if(!await C.bucketExists(S))await C.createBucket(S);let H=await G(C,S,d,s),F={},Z=T.queueNames[0],ee=Pd(l,Q);if(p("Activating functions"),F.http=Cs(l,c,s,"http",_,B,Z,ee),await U(b,T.functionNames.http,F.http,I),F.cli=Cs(l,c,s,"cli",_,B,Z,ee),await U(b,T.functionNames.cli,F.cli,I),T.queueNames.length)F.queue=Cs(l,c,s,"queue",_,B,Z,ee),await U(b,T.functionNames.queue,F.queue,I);let se=(l.provisionedConcurrency??0)>0,W={};if(se){if(p("Publishing versions + flipping live alias"),W.http=await X(b,T.functionNames.http),W.cli=await X(b,T.functionNames.cli),T.queueNames.length)W.queue=await X(b,T.functionNames.queue)}if(await ae(C,S,d,s,{sha:k,code:I,previousSha:H?.sha,previousCode:H?.code,previousFunctionEnv:H?.functionEnv,...se?{functionVersions:W,previousFunctionVersions:H?.functionVersions}:{},functionEnv:F,functionNames:{http:T.functionNames.http,cli:T.functionNames.cli,...T.queueNames.length?{queue:T.functionNames.queue}:{}},assetUrl:B,timestamp:new Date().toISOString()}),!o.skipDeployHooks&&l.deploy?.length){p("Running deploy hooks");for(let y of l.deploy){e(` deploy: ${y}`);let A=await b.invoke({FunctionName:T.functionNames.cli,InvocationType:"RequestResponse",Payload:{command:y},LogType:"Tail"});if(A.FunctionError)throw r("Deploy hook failed — the new build is ALREADY LIVE."),e(` Roll back with: cloud serverless:rollback --env ${s}`),Error(`Deploy hook failed (${y}): ${A.Payload}`)}}let j=Q.HttpApiEndpoint;if(!o.skipHealthCheck&&j){p("Health check");try{let y=await fetch(j,{method:"GET"});e(`GET ${j} → ${y.status}`)}catch(y){a(`Health check could not reach ${j}: ${y.message}`)}}Se(["Serverless deploy complete","",j?`URL: ${j}`:"",`Stack: ${f}`,`Build: ${k.slice(0,12)}`].filter(Boolean).join(`
|
|
2
|
+
`),"green")}async function ws(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d)throw Error("No previous release to redeploy. Run a full deploy first.");i(`Redeploying ${o.slug} (${s}) — build ${d.sha.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Re-activating ${m} (${f})`),await U(l,f,d.functionEnv[m]??{},d.code);let S=d.functionVersions?.[m];if(S)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:S}))}n("Redeploy complete")}async function As(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d?.previousCode)throw Error("No previous release to roll back to.");i(`Rolling back ${o.slug} (${s}) → ${d.previousSha?.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Restoring ${m} (${f})`);let S=d.previousFunctionEnv?.[m]??d.functionEnv[m]??{};await U(l,f,S,d.previousCode);let h=d.previousFunctionVersions?.[m];if(h)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:h}))}await ae(c,o.artifactBucket,o.slug,s,{...d,sha:d.previousSha??d.sha,code:d.previousCode,functionEnv:d.previousFunctionEnv??d.functionEnv,functionVersions:d.previousFunctionVersions??d.functionVersions,previousSha:void 0,previousCode:void 0,previousFunctionEnv:void 0,previousFunctionVersions:void 0,timestamp:new Date().toISOString()}),n("Rollback complete")}async function mo(t,s,o,c){let l=E(t,s),d=new R(l.region),m=`${l.slug}-${s}-http`,S={...(await d.getFunction(m)).Configuration?.Environment?.Variables??{}};if(S.MAINTENANCE_MODE=o?"1":"0",o&&c)S.MAINTENANCE_BYPASS_SECRET=c;if(!o)delete S.MAINTENANCE_BYPASS_SECRET;if(await q(()=>d.updateFunctionConfiguration({FunctionName:m,Environment:{Variables:S}})),(l.app.provisionedConcurrency??0)>0)await d.waitForFunctionActive(m,120),await X(d,m);n(o?"Application is now in maintenance mode (503)":"Application is live")}async function Mt(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"});if(m.FunctionError)throw Error(`Command failed: ${m.Payload}`);return m.Payload??""}var ce=(t,s)=>`commands/${t}/${s}/history.json`,Ne=50;async function le(t,s,o,c){try{return(await t.getObjectJson(s,ce(o,c)))?.records??[]}catch{return[]}}async function gp(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"}),f=m.Payload??"",S=m.FunctionError?"error":"ok",h=-1;try{let C=new g(c.region);if(await C.bucketExists(c.artifactBucket)){let w=await le(C,c.artifactBucket,c.slug,s);h=w.reduce((b,P)=>Math.max(b,P.id),0)+1,w.push({id:h,command:o,timestamp:new Date().toISOString(),status:S,output:f.slice(0,4000)}),await C.putObjectJson(c.artifactBucket,ce(c.slug,s),{records:w.slice(-Ne)})}}catch{}if(m.FunctionError)throw Error(`Command failed${h>0?` (#${h})`:""}: ${f}`);return{id:h,status:S,output:f}}async function Nd(t,s){let o=E(t,s),c=new g(o.region);return le(c,o.artifactBucket,o.slug,s)}async function fp(t,s,o){let c=await Nd(t,s);if(!c.length)return;return o==null?c[c.length-1]:c.find((l)=>l.id===o)}async function hp(t,s,o){let c=Buffer.from(o,"utf-8").toString("base64");return Mt(t,s,`tscloud:db-query --sql-base64=${c}`)}async function z(t,s){let o=E(t,s),c=new v(o.region),l=new R(o.region),d=new g(o.region),m="not deployed",f={};try{let{Stacks:O}=await c.describeStacks({stackName:o.stackName});m=O?.[0]?.StackStatus??m;for(let N of O?.[0]?.Outputs??[])if(N.OutputKey)f[N.OutputKey]=N.OutputValue??""}catch{}let S=ya(o.app,o.slug,s),h=o.app.provisionedConcurrency??0,C=["http","cli",...S.length?["queue"]:[]],w=`${o.slug}-${s}`,b=[];for(let O of C){let N=`${w}-${O}`,V={mode:O,name:N,version:"$LATEST"};if(h>0){let I=await l.getAlias(N,"live").catch(()=>null);if(I?.FunctionVersion){V.version=I.FunctionVersion;let k=await l.getProvisionedConcurrencyConfig(N,"live").catch(()=>null);if(k)V.provisioned={status:k.Status??"-",allocated:k.AllocatedProvisionedConcurrentExecutions??0,requested:k.RequestedProvisionedConcurrentExecutions??0}}}b.push(V)}let P=await G(d,o.artifactBucket,o.slug,s).catch(()=>null);return{slug:o.slug,environment:s,region:o.region,stackStatus:m,endpoint:f.HttpApiEndpoint,assetUrl:P?.assetUrl,scheduler:o.app.scheduler??"on",queues:S,provisionedConcurrency:h,functions:b,lastRelease:P?{sha:P.sha,timestamp:P.timestamp}:void 0}}function ue(t,s){return`${t}-${s}-db`}async function Is(t,s,o,c){let l=E(t,s);if(l.app.database?.connection!=="aurora-serverless")throw Error("No Aurora Serverless v2 database is configured for this environment.");let{RDSClient:d}=await import("./chunk-yzyt35ys.js"),m=new d(l.region),f=ue(l.slug,s);p(`Scaling ${f} → ${o}–${c} ACUs`),await m.modifyDBCluster({DBClusterIdentifier:f,ServerlessV2ScalingConfiguration:{MinCapacity:o,MaxCapacity:c},ApplyImmediately:!0}),n(`Scaling applied to ${f} (takes effect shortly).`)}async function yp(t,s,o){let c=E(t,s);if(c.app.database?.connection!=="aurora-serverless")throw Error("No Aurora Serverless v2 database is configured for this environment.");if(!o.toTime&&!o.latest)throw Error("Specify a restore point: --to <ISO timestamp> or --latest.");let{RDSClient:l}=await import("./chunk-yzyt35ys.js"),d=new l(c.region),m=ue(c.slug,s),f=o.latest?"latest":o.toTime.toISOString().replace(/[^0-9]/g,"").slice(0,14),S=o.target??`${m}-restore-${f}`;p(`Restoring ${m} → new cluster ${S} (${o.latest?"latest restorable time":o.toTime.toISOString()})`),await d.restoreDBClusterToPointInTime({DBClusterIdentifier:S,SourceDBClusterIdentifier:m,RestoreToTime:o.toTime,UseLatestRestorableTime:o.latest}),p("Waiting for the restored cluster to be ready");for(let h=0;h<120;h++){let{DBClusters:C}=await d.describeDBClusters({DBClusterIdentifier:S}),w=C?.[0]?.Status;if(w&&w!=="creating")break;await new Promise((b)=>setTimeout(b,15000))}return p("Adding a writer instance"),await d.createDBInstance({DBInstanceIdentifier:`${S}-1`,DBClusterIdentifier:S,Engine:"aurora-mysql",DBInstanceClass:"db.serverless"}),n(`Restore complete → cluster ${S} with writer ${S}-1. Point an env's database at it once available.`),S}
|
|
3
|
+
export{K,yt,Pd,Cs,po,mp,ws,As,mo,Mt,gp,Nd,fp,hp,z,Is,yp};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Sc,ae,bc,kd,Tp,hi,Ep,Cp,Gs,wp,Ap,Ip,Rp,Pp,Np,Dp,vc,Tc,Ks,Js,Ao,et,A,Xs,Ec,H,Pr,w,_d,yi,Qs,Ys,F,Io,kp,_p,xp,$p,l,s,Op,Lp,E,Zs,ea,ta,Mp,Up,De,ra,Ro,xd,Bp,Fp,Ue,Et,na,Cc,wc,jp,Ac,Ic,Rc,ia,Pc,jt,Po,Si,No,bi,Be,$d,Do,ko,oa,sa,aa,ca,la,da,ve,j,S,L,tt,D,Od,Ct,ge,Vt,Vp,Ld,Te,_o,Fe,zt,vi,Ee,xo,ke,Md,Ti,Ce,we,re,Ei,X,Ht,wt,Ae,t,$o,zp,Nc,ua,Hp,qp,Wp,Gp,pa,Kp,Jp,Xp,Qp,Yp,Zp,em,tm,rm,nm,im,om,Ud,Bd,Fd,jd,Vd,zd,Hd,qt,Dc,kc,Nr,Ci,sm,_c,am,cm,cn,lm,dm,um,pm,mm,gm,qd,Wd,Gd,Kd,Jd,Oo,fm,ma,Xd,Qd,Yd,xc,Ie,hm,Zd,At,Lo,Dr,eu,$c,tu,ru,nu,Oc,_e,ym,Sm,bm,vm,iu,Tm,Re,Em,Cm,wm,Lc,Mc,Am,Uc,Bc,Im,Rm,Pm,Nm,Dm,ou,ga,km,_m,xm,$m,Om,su,au,Lm,Mm,Um,Bm,Fm,jm,Vm,zm,Hm,Fc,fa,qm,Wm,Gm,Km,jc,Vc,zc,Jm,Hc,Xm,Qm,Ym,Zm,qc,eg,tg,rg,ng,ig,og,sg,ag,cu,lu,du,uu,Wc,cg,lg,dg,ug,pg,mg,gg,fg,hg,pu,mu,gu,fu,yg,Sg,Gc,bg,Kc,Jc,Xc,Qc,vg,Tg,Eg,Cg,rt,wi,wg,Ag,Ig,Rg,Pg,Ng,Dg,kg,hu,_g,xg,Yc,Zc,$g,Og,yu,Lg,Mg,Ug,Bg,Fg,jg,Vg,zg,Hg,qg,Wg,Gg,Kg,Jg,Xg,Qg,Yg,Zg,ef,tf,rf,el,nf,tl,of,rl,sf,nl,af,il,cf,ln,lf,ol,df,Mo,uf,sl,pf,al,mf,cl,gf,ll,ff,dl,hf,dn,yf,ul,Sf,pl,bf,ml,vf,gl,Tf,fl,Ef,hl,Cf,yl,wf,Sl,Af,bl,If,vl,Rf,Tl,Pf,El,Nf,Cl,Df,wl,kf,Al,_f,Il,xf,Rl,$f,Pl,Of,Nl,Lf,Dl,Mf,kl,Uf,_l,Bf,xl,Ff,$l,jf,Ol,Vf,Su,bu,vu,Tu,Ll,zf,Ml,Hf,Ul,qf,Bl,Wf,Ai,Eu,Cu,Uo,ha,un,wu,Bo,Wt,ya,Sa,Au,Iu,Fl,Ru,ba,jl,Gf,Kf,va,Ta,Ea,Vl,Fo,zl,Hl,Ca,ql,Wl,Gl,Pu,Nu,Du,Jf,ku,_u,Xf,xu,Kl,$u,Ou,Lu,Qf,Mu,Ii,wa,Uu,Yf,Bu,jo,Vo,Aa,Jl,Zf,Xl,eh,Ql,th,Yl,rh,Zl,nh}from"./chunk-sfb9q18c.js";export{sl as ABTestManager,Fe as AI,tu as AWSAPIError,rl as AWSConfigManager,zp as AWS_PSEUDO_PARAMETERS,rt as AWS_REGIONS,xo as ApiGateway,$o as Arn,re as AssetHasher,Ce as Auth,el as BackupManager,Ul as BatchProcessingManager,ol as BlueGreenManager,_l as BounceComplaintHandler,vl as BuildOptimizationManager,Be as CDN,Ta as CHAIN_HEADER,na as CLOUDFRONT_FAILOVER_STATUS_CODES,Mg as COMMON_CROSS_ACCOUNT_ROLES,vi as Cache,Mo as CanaryManager,yl as CertificateManager,At as CloudError,Nc as CloudFormationBuilder,Yd as CloudFormationClient,Zd as CloudFrontClient,nl as CloudTrailManager,fu as CommandHistory,Ae as Communication,S as Compute,Lo as ConfigurationError,Tl as ContainerRegistryManager,Dr as CredentialError,Kc as CrossRegionReferenceManager,Bd as DASHBOARD_ENTRY,Fd as DASHBOARD_PORT_BASE,jd as DASHBOARD_PORT_SPAN,Ud as DASHBOARD_STATE_DIR,Cc as DEFAULT_FAILOVER_STATUS_CODES,Fo as DEFAULT_RECURSION_LIMITS,Re as DEFAULT_SERVICE_LIMITS,vc as DEFAULT_STATE_DIR,$d as DEFAULT_STORAGE_FAILOVER_STATUS_CODES,va as DEPTH_HEADER,Ml as DLQMonitoringManager,ve as DNS,Dl as DNSSECManager,zt as Database,gl as DatabaseUserManager,_e as DebugLogger,xd as DependencyGraph,we as Deployment,eu as DeploymentError,tl as DisasterRecoveryManager,D as Email,Su as EmailAdvanced,xl as EmailAnalyticsManager,bu as EmailHandlers,Ol as EmailTemplateManager,ru as ErrorCodes,ko as FAILOVER_REPLICA_POLICY_SID,Ll as FIFOQueueManager,Lc as FileCache,tt as FileSystem,t as Fn,Jc as GlobalResourceManager,il as GuardDutyManager,ou as HashCache,Ql as HealthCheckManager,bl as ImageScanningManager,Vt as JobLoader,Uu as LARAVEL_SERVERLESS_BUILD_STEPS,Al as LambdaConcurrencyManager,Pl as LambdaDLQManager,Il as LambdaDestinationsManager,Cl as LambdaLayersManager,Rl as LambdaVPCManager,wl as LambdaVersionsManager,dl as LogsManager,wu as MANAGED_NODE_VERSIONS,Dc as MANAGEMENT_DASHBOARD_SITE_PREFIX,ke as Messaging,ll as MetricsManager,ul as MigrationManager,jc as MockCloudFormation,zc as MockDynamoDB,Vc as MockS3,Ti as Monitoring,Yc as MultiAccountManager,Gc as MultiRegionManager,lu as MultiStepProgress,L as Network,Yl as NetworkSecurityManager,Ic as ORIGIN_CONNECTION_ATTEMPTS,Rc as ORIGIN_CONNECTION_TIMEOUT,wc as ORIGIN_GROUP_ALLOWED_METHODS,jp as ORIGIN_GROUP_ID_SUFFIX,Ac as ORIGIN_GROUP_SELECTION_CRITERIA,Zc as OrganizationManager,Bu as PHP_DEFAULT_EXCLUDES,Au as PHP_LAYER_EXTENSIONS,X as ParameterStore,ml as PerformanceManager,Ee as Permissions,Ct as Phone,vu as PhoneAdvanced,Od as PhoneHandlers,Hc as PreviewEnvironmentManager,qc as PreviewNotificationService,cu as ProgressBar,al as ProgressiveDeploymentManager,$p as Pseudo,ge as Queue,Bl as QueueManagementManager,Np as QueuePresets,yu as RECOMMENDED_ACCOUNT_STRUCTURES,Lg as RECOMMENDED_SCPS,pu as REPL,gu as REPLCommandBuilder,mu as REPLContext,su as RateLimiter,Dp as RealtimePresets,Ca as RecursionGuard,wt as Redirects,Xc as RegionPairManager,Et as Registry,pl as ReplicaManager,Zl as ResourceManagementManager,kl as Route53ResolverManager,Nl as Route53RoutingManager,xc as S3Client,Ie as S3Error,Te as SMS,Tc as STATE_DIR_ENV_VAR,Do as STORAGE_FAILOVER_METADATA_KEY,Ht as Search,Ei as Secrets,hl as SecretsManager,fl as SecretsRotationManager,j as Security,ln as SecurityHubManager,Sl as SecurityScanningManager,$l as SenderReputationManager,El as ServiceMeshManager,_o as Sftp,Tu as SmsAdvanced,Ld as SmsHandlers,du as Spinner,Qc as StackDependencyManager,Vp as StacksIntegration,Jl as StaticSiteManager,Ue as Storage,Xl as StorageAdvancedManager,dn as SyntheticsManager,Ea as TRACE_HEADER,uu as TaskList,Io as TemplateBuilder,Mc as TemplateCache,$c as ValidationError,Md as Workflow,cl as XRayManager,pf as abTestManager,Bp as analyzeStackDiff,ha as artifactKey,Si as assertOriginGroupMethods,pg as autocomplete,sf as awsConfigManager,nf as backupManager,km as batch,qf as batchProcessingManager,df as blueGreenManager,Bf as bounceComplaintHandler,Kf as buildBunRuntimeLayerZip,ua as buildCloudFormationTemplate,la as buildFailoverReplicaPolicyStatement,Ys as buildMailEnv,Gf as buildNodeRuntimeLayerZip,Rf as buildOptimizationManager,Pc as buildOriginGroup,Po as buildOriginGroups,Yf as buildPhpRuntimeLayerZip,ca as buildReplicationConfiguration,aa as buildReplicationRole,uf as canaryManager,Fm as categorizeChanges,wf as certificateManager,vm as checkIAMPermissions,ku as checkInvocation,Em as checkServiceQuotas,au as chunk,Ap as clearSigningKeyCache,zm as cloudConfigSchema,af as cloudTrailManager,Vo as collectPhpAppEntries,am as composePresets,Sa as composeServerlessAppTemplate,Pf as containerRegistryManager,Jp as createApiBackendPreset,Lu as createCliHandler,fm as createCredentialProvider,om as createDashboardSite,em as createDataPipelinePreset,Oc as createError,pa as createExistingStaticFullStackPreset,Kp as createFullStackAppPreset,Qf as createHandlers,$u as createHttpHandler,Qp as createJamstackPreset,nm as createLaravelPreset,tm as createMLApiPreset,Yp as createMicroservicesPreset,Jm as createMockAWS,qp as createNodeJsServerPreset,Wp as createNodeJsServerlessPreset,cm as createPreset,kd as createPresignedUrl,Tp as createPresignedUrlAsync,Ou as createQueueHandler,Zp as createRealtimeAppPreset,hm as createS3Client,im as createServerlessLaravelPreset,Gp as createServerlessNodePreset,Hp as createStaticSitePreset,rm as createTraditionalWebAppPreset,Xp as createWordPressPreset,Ai as createZip,vg as crossRegionReferenceManager,Tf as databaseUserManager,Fc as defaultLocalConfig,Pr as deploymentCoexistenceError,Vd as deriveManagementDashboardPort,Ec as detectDeploymentTargets,Sm as detectMisconfigurations,Sc as detectServiceRegion,Mm as diffTemplates,Hf as dlqMonitoringManager,Mf as dnssecManager,of as drManager,Ff as emailAnalyticsManager,Vf as emailTemplateManager,xu as eventToRequest,_c as extendPreset,zf as fifoQueueManager,Dm as findChangedFiles,jg as formatAccountStructure,ig as formatBytes,Fp as formatDiff,og as formatDuration,gg as formatFlagSuggestions,yg as formatHistory,Sg as formatHistoryStats,ag as formatKeyValue,sg as formatList,ng as formatProgressBar,hu as formatRegion,_g as formatRegionList,cg as formatSuggestion,tg as formatTable,rg as formatTree,Gd as fromEC2Metadata,Kd as fromECSMetadata,qd as fromEnvironment,Wd as fromSharedCredentials,Jd as fromWebIdentity,Vl as functionFingerprint,ba as generateAppImageDockerfile,tf as generateApprovalConfig,Eu as generateBootstrap,Ym as generateCleanupWorkflow,Zm as generateCostReportWorkflow,Bg as generateCrossAccountRoleCF,Yg as generateDeploymentConfig,Gg as generateDeploymentPipeline,Vg as generateDeploymentWorkflow,s as generateLogicalId,Qg as generateManualPipeline,Wg as generateMatrixWorkflow,Zg as generateMultiEnvConfig,Kg as generateMultiEnvPipeline,zg as generateMultiEnvWorkflow,Hg as generatePRPreviewWorkflow,rf as generateParallelConfig,Mu as generatePhpFpmConfig,Ru as generatePhpLayerDockerfile,Jg as generatePreviewPipeline,Qm as generatePreviewWorkflow,l as generateResourceName,ef as generateScheduledConfig,Xg as generateScheduledPipeline,qg as generateScheduledWorkflow,Qd as getAccountId,wg as getAllRegions,Ng as getClosestRegion,fg as getCommandUsage,dg as getContextualHelp,Oo as getCredentials,jm as getDeploymentStrategy,Vm as getDiffStats,Um as getDiffSummary,nu as getErrorDetails,fa as getLocalConfig,Gm as getLocalCredentials,Wm as getLocalEndpoint,Km as getLocalEnvVars,Cm as getQuotaUsageSummary,Ug as getRecommendedStructure,wi as getRegion,xg as getRegionStats,Ig as getRegionsByCompliance,Ag as getRegionsByLocation,Rg as getRegionsByPricingTier,iu as getRequiredPermissions,Ip as getSigningKeyCacheSize,Op as getTimestamp,Tg as globalResourceManager,cf as guardDutyManager,qt as hasManagementDashboardSite,Im as hashBuffer,Rm as hashDirectory,Uc as hashFile,Pm as hashManifest,Bc as hashString,th as healthCheckManager,If as imageScanningManager,Hl as inspectInvocation,Nu as installRecursionFetch,Gl as invocationContext,lg as isLikelyTypo,qm as isLocalDevelopment,Nr as isManagementDashboardSiteName,Rp as isNodeCryptoAvailable,No as isS3RestEndpoint,Js as isStateDirConfigured,Xs as isStatePath,Pg as isValidRegion,Pp as isWebCryptoAvailable,_f as lambdaConcurrencyManager,Of as lambdaDLQManager,xf as lambdaDestinationsManager,Df as lambdaLayersManager,$f as lambdaVPCManager,kf as lambdaVersionsManager,wa as laravelServerlessEnvDefaults,hf as logsManager,_d as mailEnabled,Qs as mailFirewallPorts,hi as makeAWSRequest,Cp as makeAWSRequestAsync,Ep as makeAWSRequestOnce,kc as managementDashboardSiteName,cn as mergeInfrastructure,ff as metricsManager,Sf as migrationManager,$g as multiAccountManager,bg as multiRegionManager,rh as networkSecurityManager,Og as organizationManager,Aa as packagePhpApp,un as packageServerlessApp,ga as parallel,_m as parallelMap,xm as parallelWithRetry,zl as parseChain,wp as parseJSONResponse,Gs as parseXMLResponse,vf as performanceManager,Fl as phpLayerBuildStage,Iu as phpLayerPackages,Ii as phpRuntimeLayerAssets,Xm as previewManager,eg as previewNotifications,Lm as processInChunks,mf as progressiveDeploymentManager,ql as propagationHeaders,Wf as queueManagementManager,Nm as quickHash,Wl as recursionBlockedResponse,Eg as regionPairManager,bf as replicaManager,Bm as requiresReplacement,Jf as resetRecursionRuntime,Xf as resolveApp,w as resolveAppDatabase,F as resolveCloudProvider,ma as resolveCredentials,zd as resolveDashboardDomain,Hd as resolveDashboardDomains,Up as resolveDeployBucketName,H as resolveDeploymentMode,ia as resolveFailoverStatusCodes,yi as resolveMailService,sm as resolveManagementDashboardSite,Ci as resolveManagementDashboardSites,jt as resolveOriginConnection,E as resolveProjectStackName,ya as resolveQueueNames,Wt as resolveQueues,Pu as resolveRecursionConfig,Xd as resolveRegion,De as resolveServerlessAppStackName,ra as resolveServerlessArtifactBucketName,Ro as resolveServerlessAssetBucketName,Bo as resolveServerlessRuntime,ta as resolveSiteBucketName,ea as resolveSiteResourceName,Zs as resolveSiteStackName,A as resolveStatePath,Mp as resolveStorageBucketName,oa as resolveStorageFailover,nh as resourceManagementManager,Kl as responseToResult,Uf as route53ResolverManager,Lf as route53RoutingManager,Cu as runBuildHooks,jo as runPhpBuildHooks,sa as s3RegionalDomain,Lp as sanitizeName,ug as searchCommands,Cf as secretsManager,Ef as secretsRotationManager,lf as securityHubManager,Af as securityScanningManager,jf as senderReputationManager,$m as sequence,Nf as serviceMeshManager,Ks as setStateDir,Uo as sha256,Du as sharedRecursionGuard,jl as sharedRuntimeLoop,ae as signRequest,bc as signRequestAsync,Cg as stackDependencyManager,Ao as stateDir,et as statePath,Zf as staticSiteManager,eh as storageAdvancedManager,da as storageFailoverReplicasFromTemplate,Wc as suggestCommand,mg as suggestFlags,Tm as suggestIAMPolicy,wm as suggestQuotaIncrease,kg as suggestRegionPairs,Dg as suggestRegions,yf as syntheticsManager,Am as templateCache,Fg as validateAccountStructure,Hm as validateAgainstSchema,hg as validateCommand,ym as validateConfiguration,bm as validateCredentials,bi as validateOriginGroups,xp as validateResourceLimits,kp as validateTemplate,_p as validateTemplateSize,mm as withCDN,pm as withCache,um as withDatabase,_u as withInvocation,lm as withMonitoring,gm as withQueue,dm as withSecurity,Om as withTimeout,gf as xrayManager};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Dd}from"./chunk-nw8wmbmq.js";var f={};Dd(f,{ProgressBar:()=>v,Spinner:()=>o,box:()=>Se,checkAwsCli:()=>Rs,checkAwsCredentials:()=>Ps,colorize:()=>Ut,colors:()=>T,confirm:()=>d,error:()=>r,formatBytes:()=>en,formatDuration:()=>b,getAwsAccountId:()=>Ns,getAwsRegions:()=>Ds,header:()=>i,info:()=>e,prompt:()=>I,select:()=>go,step:()=>p,success:()=>n,table:()=>c,warn:()=>a,warning:()=>br});var T={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",gray:"\x1B[90m"};function Ut(t,s){return`${T[s]}${t}${T.reset}`}function n(t){console.log(`${T.green}✓${T.reset} ${t}`)}function r(t){console.error(`${T.red}✗${T.reset} ${t}`)}function a(t){console.warn(`${T.yellow}⚠${T.reset} ${t}`)}var br=a;function e(t){console.log(`${T.blue}ℹ${T.reset} ${t}`)}function p(t){console.log(`${T.cyan}→${T.reset} ${t}`)}function i(t){console.log(`
|
|
2
2
|
${T.bright}${T.cyan}${t}${T.reset}
|
|
3
3
|
`)}var x=!!(process.env.CI||process.env.GITHUB_ACTIONS||process.env.BUILDKITE||process.env.CIRCLECI||process.env.GITLAB_CI);class o{frames=["⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"];interval=null;currentFrame=0;message;constructor(t){this.message=t}get text(){return this.message}set text(t){if(this.message=t,x&&this.interval)console.log(` ${t}`)}start(){if(x){console.log(` ${this.message}`),this.interval=!0;return}this.interval=setInterval(()=>{process.stdout.write(`\r${T.cyan}${this.frames[this.currentFrame]}${T.reset} ${this.message}`),this.currentFrame=(this.currentFrame+1)%this.frames.length},80)}succeed(t){this.stop(),n(t||this.message)}fail(t){this.stop(),r(t||this.message)}warn(t){this.stop(),br(t||this.message)}stop(){if(this.interval){if(!x)process.stdout.write("\r");if(typeof this.interval==="object")clearInterval(this.interval);this.interval=null}}}class v{total;current=0;width=40;constructor(t){this.total=t}update(t){this.current=t,this.render()}increment(){this.current++,this.render()}render(){let t=Math.floor(this.current/this.total*100),s=Math.floor(this.current/this.total*this.width),l=this.width-s,u=`${"█".repeat(s)}${"░".repeat(l)}`;if(process.stdout.write(`\r${T.cyan}${u}${T.reset} ${t}% (${this.current}/${this.total})`),this.current>=this.total)process.stdout.write(`
|
|
4
4
|
`)}}async function I(t,s){let l=await import("node:readline"),u=l.createInterface({input:process.stdin,output:process.stdout});return new Promise((h)=>{let g=s?`${T.cyan}?${T.reset} ${t} ${T.gray}(${s})${T.reset}: `:`${T.cyan}?${T.reset} ${t}: `;u.question(g,(m)=>{u.close(),h(m||s||"")})})}async function d(t,s=!1){let l=await I(`${t} (y/n)`,s?"y":"n");return l.toLowerCase()==="y"||l.toLowerCase()==="yes"}async function go(t,s){console.log(`${T.cyan}?${T.reset} ${t}`),s.forEach((h,g)=>{console.log(` ${T.gray}${g+1}.${T.reset} ${h}`)});let l=await I("Select","1"),u=Number.parseInt(l)-1;if(u>=0&&u<s.length)return s[u];return s[0]}function c(t,s){let l=t.map((h,g)=>{let m=Math.max(...s.map((w)=>(w[g]||"").length));return Math.max(h.length,m)}),u=t.map((h,g)=>h.padEnd(l[g])).join(" ");console.log(Ut(u,"bright")),console.log(Ut("─".repeat(u.length),"gray")),s.forEach((h)=>{let g=h.map((m,w)=>(m||"").padEnd(l[w])).join(" ");console.log(g)})}function en(t){if(t===0)return"0 B";let s=1024,l=["B","KB","MB","GB","TB"],u=Math.floor(Math.log(t)/Math.log(s));return`${Number.parseFloat((t/s**u).toFixed(2))} ${l[u]}`}function b(t){if(t<1000)return`${t}ms`;let s=Math.floor(t/1000);if(s<60)return`${s}s`;let l=Math.floor(s/60),u=s%60;if(l<60)return`${l}m ${u}s`;let h=Math.floor(l/60),g=l%60;return`${h}h ${g}m`}function Se(t,s="cyan"){let l=t.split(`
|
|
5
|
-
`),u=Math.max(...l.map((g)=>g.length)),h="─".repeat(u+2);console.log(Ut(`┌${h}┐`,s)),l.forEach((g)=>{console.log(Ut(`│ ${g.padEnd(u)} │`,s))}),console.log(Ut(`└${h}┘`,s))}async function Rs(){return!0}async function Ps(){try{let{AWSClient:t}=await import("./chunk-
|
|
5
|
+
`),u=Math.max(...l.map((g)=>g.length)),h="─".repeat(u+2);console.log(Ut(`┌${h}┐`,s)),l.forEach((g)=>{console.log(Ut(`│ ${g.padEnd(u)} │`,s))}),console.log(Ut(`└${h}┘`,s))}async function Rs(){return!0}async function Ps(){try{let{AWSClient:t}=await import("./chunk-2njcbs0c.js");return await new t().request({service:"sts",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"GetCallerIdentity",Version:"2011-06-15"}).toString()}),!0}catch{return!1}}async function Ns(){try{let{AWSClient:t}=await import("./chunk-2njcbs0c.js"),l=await new t().request({service:"sts",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"GetCallerIdentity",Version:"2011-06-15"}).toString()});return l.Account||l.GetCallerIdentityResult?.Account||null}catch{return null}}async function Ds(){try{let{AWSClient:t}=await import("./chunk-2njcbs0c.js"),l=await new t().request({service:"ec2",region:"us-east-1",method:"POST",path:"/",body:new URLSearchParams({Action:"DescribeRegions",Version:"2016-11-15"}).toString()}),u=[];if(l.regionInfo){let h=Array.isArray(l.regionInfo)?l.regionInfo:[l.regionInfo];u.push(...h.map((g)=>g.regionName))}return u.length>0?u:y()}catch{return y()}}function y(){return["us-east-1","us-east-2","us-west-1","us-west-2","eu-west-1","eu-central-1","ap-southeast-1","ap-northeast-1"]}
|
|
6
6
|
export{T,Ut,n,r,a,br,e,p,i,o,I,d,go,c,en,Se,Rs,Ps,Ns,Ds,f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ad,Sr,C}from"./chunk-7x727gt5.js";import"./chunk-s6qnx8a8.js";export{C as CloudFrontClient,Ad as configOrigins,Sr as s3OriginBucket};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ks,Sp,bp,_s}from"./chunk-0e7bcz1c.js";import"./chunk-mzzrnkk5.js";import"./chunk-sfb9q18c.js";export{Sp as getComputeDeployHistory,_s as restoreDatabaseBackup,ks as rollbackComputeSite,bp as runComputeRecipe};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{rd,nd,id,od,qu,Wu}from"./chunk-3kyny1x7.js";import"./chunk-4c4s5yph.js";import"./chunk-7x727gt5.js";import"./chunk-4vbnagyd.js";import"./chunk-wc5swv1a.js";import"./chunk-59f6mqkj.js";import"./chunk-s6qnx8a8.js";export{qu as deleteStaticSite,nd as deployStaticSite,Wu as deployStaticSiteFull,rd as generateStaticSiteTemplate,od as invalidateCache,id as uploadStaticFiles};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g}from"./chunk-59f6mqkj.js";import"./chunk-s6qnx8a8.js";export{g as S3Client};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{G,ao}from"./chunk-4c4s5yph.js";import"./chunk-wc5swv1a.js";import"./chunk-s6qnx8a8.js";export{G as ACMClient,ao as ACMDnsValidator};
|