@stacksjs/ts-cloud 0.16.49 → 0.16.50
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-z8k9mcn5.js → chunk-0wtshht7.js} +2 -2
- package/dist/bin/{chunk-v7t6f8aw.js → chunk-11y7yang.js} +2 -2
- package/dist/bin/chunk-2wh45zhk.js +2 -0
- package/dist/bin/chunk-334jngt2.js +1 -0
- package/dist/bin/{chunk-4yym8xm4.js → chunk-33ntxz01.js} +5 -5
- package/dist/bin/chunk-3k7y1h18.js +1 -0
- package/dist/bin/chunk-512ecg6y.js +1 -0
- package/dist/bin/{chunk-vhyp4xj0.js → chunk-5ny7rggt.js} +1 -1
- package/dist/bin/chunk-626npmtj.js +1 -0
- package/dist/bin/{chunk-zvbc92pc.js → chunk-734n0gkw.js} +1 -1
- package/dist/bin/chunk-74wppexz.js +1 -0
- package/dist/bin/chunk-7cs9nnjy.js +111 -0
- package/dist/bin/{chunk-q4dywv80.js → chunk-7czb1kgg.js} +2 -2
- package/dist/bin/chunk-7ewbxsan.js +1 -0
- package/dist/bin/{chunk-ynwbzsz8.js → chunk-7jj0g6jk.js} +158 -158
- package/dist/bin/{chunk-kbwm0sqv.js → chunk-811k54jq.js} +2 -2
- package/dist/bin/chunk-8ya34jz7.js +1 -0
- package/dist/bin/chunk-964xmgb6.js +1 -0
- package/dist/bin/{chunk-gyvkravq.js → chunk-9ehb4hc6.js} +5 -5
- package/dist/bin/chunk-azarn24c.js +1 -0
- package/dist/bin/chunk-cw3rhg1c.js +1 -0
- package/dist/bin/chunk-d2fq60kd.js +1 -0
- package/dist/bin/{chunk-01w4zbex.js → chunk-da6dmacg.js} +2 -2
- package/dist/bin/chunk-dpk5r544.js +1 -0
- package/dist/bin/{chunk-12x968en.js → chunk-dv2he3vc.js} +3 -3
- package/dist/bin/chunk-e6ewfmbp.js +1 -0
- package/dist/bin/{chunk-psmpw0ap.js → chunk-e7pce8jb.js} +3 -3
- package/dist/bin/{chunk-cf3jn2ey.js → chunk-f2t67d76.js} +3 -3
- package/dist/bin/chunk-f4mpkpbf.js +1 -0
- package/dist/bin/chunk-f9469h6q.js +1 -0
- package/dist/bin/chunk-fjbhvhqb.js +1 -0
- package/dist/bin/{chunk-nj9x0tb8.js → chunk-gr1ra9nj.js} +2 -2
- package/dist/bin/{chunk-3pazrfsf.js → chunk-hdqxyxs0.js} +7 -7
- package/dist/bin/{chunk-xdk0gmxt.js → chunk-hhmqsrfc.js} +1 -1
- package/dist/bin/{chunk-4mecfcjk.js → chunk-j2wkxp7d.js} +3 -3
- package/dist/bin/{chunk-dj03v81n.js → chunk-k9f94hg4.js} +113 -113
- package/dist/bin/{chunk-znd507q9.js → chunk-kmpvqby6.js} +8 -8
- package/dist/bin/{chunk-n7yefy09.js → chunk-m3xap663.js} +5 -5
- package/dist/bin/chunk-m7pbssep.js +1 -0
- package/dist/{chunk-6rcj3km0.js → bin/chunk-mcg4wg4j.js} +7 -7
- package/dist/bin/{chunk-03gqra5e.js → chunk-mdkd46c5.js} +83 -83
- package/dist/bin/chunk-n7xadeqe.js +1 -0
- package/dist/bin/{chunk-xe527q1k.js → chunk-ppd463ev.js} +2 -2
- package/dist/bin/{chunk-23m8kbwh.js → chunk-q2rqmc2x.js} +3 -3
- package/dist/bin/chunk-q9awn1n3.js +1 -0
- package/dist/bin/chunk-qsfhb3x7.js +1 -0
- package/dist/bin/chunk-r524t8v8.js +1 -0
- package/dist/bin/{chunk-7qbxq0be.js → chunk-rwbdtxte.js} +1 -1
- package/dist/bin/{chunk-v09tfezh.js → chunk-sa9c8vb5.js} +5 -5
- package/dist/bin/{chunk-6y6g726g.js → chunk-t970yjvz.js} +5 -5
- package/dist/bin/{chunk-cz2wq0tf.js → chunk-tcj1z34y.js} +5 -5
- package/dist/bin/{chunk-q8b77zgw.js → chunk-te52z1wk.js} +1 -1
- package/dist/bin/chunk-v2qk9jeb.js +1 -0
- package/dist/bin/{chunk-rdkr74y2.js → chunk-vavwhhrp.js} +1 -1
- package/dist/bin/chunk-w89fyres.js +1 -0
- package/dist/bin/{chunk-frzpqsbj.js → chunk-we2raqk3.js} +2 -2
- package/dist/bin/chunk-wgh66c5r.js +1 -0
- package/dist/bin/chunk-xaqkj8fn.js +1 -0
- package/dist/bin/{chunk-w29z877b.js → chunk-y12vn1h1.js} +2 -2
- package/dist/bin/{chunk-xx9mrcfs.js → chunk-yfa84s0c.js} +1 -1
- package/dist/bin/{chunk-5nmt4s5w.js → chunk-ytzcsskk.js} +2 -2
- package/dist/bin/{chunk-psvqpztv.js → chunk-z06jkvvr.js} +5 -5
- package/dist/bin/cli.js +203 -203
- package/dist/bin/dashboard-server.js +1 -1
- package/dist/chunk-09d6pdgx.js +1 -0
- package/dist/{chunk-yme6q7k4.js → chunk-0cz2s19h.js} +2 -2
- package/dist/{chunk-nryh43p1.js → chunk-0qgfe5ff.js} +3 -3
- package/dist/{chunk-kr8aeva1.js → chunk-18h7na1g.js} +549 -549
- package/dist/chunk-21mmcmm7.js +1 -0
- package/dist/{bin/chunk-k343q24p.js → chunk-3ncnrrvm.js} +7 -7
- package/dist/chunk-4abbccq7.js +2 -0
- package/dist/{chunk-rpng90t9.js → chunk-4yqd62rd.js} +1 -1
- package/dist/chunk-5hgcr7r2.js +709 -0
- package/dist/{chunk-x0ep5ybv.js → chunk-6m8p1n88.js} +13 -13
- package/dist/chunk-85fyadq0.js +448 -0
- package/dist/{chunk-fpkpwbv3.js → chunk-8b2mxhcm.js} +5 -5
- package/dist/{chunk-r3m1fjd4.js → chunk-9ggg2ktx.js} +2 -2
- package/dist/chunk-a8hs75xd.js +5 -0
- package/dist/chunk-ca191b00.js +6 -0
- package/dist/{chunk-jhtp3m31.js → chunk-cpba1hz2.js} +2 -2
- package/dist/{chunk-ynprwawa.js → chunk-erfh93dq.js} +2 -2
- package/dist/{chunk-22hfejjs.js → chunk-ffyx50xx.js} +1 -1
- package/dist/chunk-fqgvackc.js +138 -0
- package/dist/{chunk-jpdpr7k6.js → chunk-j99nkav5.js} +3 -3
- package/dist/chunk-jgsey18z.js +1 -0
- package/dist/{chunk-vb4t2r4r.js → chunk-jtvw9d4x.js} +1 -1
- package/dist/chunk-jytama4e.js +111 -0
- package/dist/chunk-m9r0a1v9.js +2 -0
- package/dist/{chunk-6mp1fyxe.js → chunk-nmnf1ha6.js} +4 -4
- package/dist/{chunk-e8k29wen.js → chunk-nnnhq6sx.js} +19 -19
- package/dist/chunk-qbsrs1gp.js +1 -0
- package/dist/{chunk-xzcpzxtj.js → chunk-qcj3hkba.js} +2 -2
- package/dist/chunk-r4kedmas.js +1 -0
- package/dist/{chunk-p7myt05d.js → chunk-r5mk071y.js} +5 -5
- package/dist/{chunk-xxq1ygp9.js → chunk-thdfk76k.js} +3 -3
- package/dist/chunk-tnqj2en4.js +1 -0
- package/dist/{chunk-da62knsv.js → chunk-zbx9yehq.js} +83 -83
- package/dist/{chunk-vjph4eh0.js → chunk-zf5wdx6v.js} +1 -1
- package/dist/deploy/index.js +1 -1
- package/dist/dns/index.js +1 -1
- package/dist/drivers/aws/provision.d.ts +2 -2
- package/dist/drivers/index.js +1 -1
- package/dist/drivers/shared/mail-provision.d.ts +2 -18
- package/dist/drivers/shared/rpx-gateway.d.ts +3 -1
- package/dist/index.js +60 -60
- package/dist/mail/index.d.ts +5 -0
- package/dist/mail/index.js +3 -0
- package/dist/mail/webmail.d.ts +35 -0
- package/dist/mail/webmail.test.d.ts +1 -0
- 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 +5 -5
- 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 +6 -6
- 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 +6 -6
- package/dist/ui/security.html +1 -1
- package/dist/ui/server/actions.html +6 -6
- package/dist/ui/server/activity.html +2 -2
- package/dist/ui/server/capacity.html +6 -6
- package/dist/ui/server/database.html +6 -6
- package/dist/ui/server/deployments.html +6 -6
- package/dist/ui/server/diagnostics.html +2 -2
- package/dist/ui/server/firewall.html +6 -6
- package/dist/ui/server/fleet.html +6 -6
- package/dist/ui/server/logs.html +5 -5
- package/dist/ui/server/metrics.html +6 -6
- package/dist/ui/server/security.html +1 -1
- package/dist/ui/server/services.html +1 -1
- package/dist/ui/server/sites.html +6 -6
- package/dist/ui/server/ssh-keys.html +6 -6
- package/dist/ui/server/team.html +5 -5
- 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 +2 -2
- 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 +6 -6
- package/dist/ui/serverless/traces.html +6 -6
- package/dist/ui/serverless.html +6 -6
- package/package.json +7 -3
- package/dist/bin/chunk-1fj03993.js +0 -1
- package/dist/bin/chunk-1xxmyx0r.js +0 -1
- package/dist/bin/chunk-2pzh0wxc.js +0 -1
- package/dist/bin/chunk-45qr2bd3.js +0 -1
- package/dist/bin/chunk-4nn00brw.js +0 -1
- package/dist/bin/chunk-52w33yma.js +0 -1
- package/dist/bin/chunk-5f1n5d80.js +0 -1
- package/dist/bin/chunk-5mm6qn6m.js +0 -1
- package/dist/bin/chunk-5xr76cms.js +0 -1
- package/dist/bin/chunk-65yvjecx.js +0 -2
- package/dist/bin/chunk-d0tmmzy5.js +0 -1
- package/dist/bin/chunk-fqghdpvr.js +0 -1
- package/dist/bin/chunk-gkdr09xx.js +0 -1
- package/dist/bin/chunk-hhhrze6m.js +0 -1
- package/dist/bin/chunk-jrztbsnb.js +0 -1
- package/dist/bin/chunk-kqxk1pds.js +0 -1
- package/dist/bin/chunk-m8p7mw67.js +0 -1
- package/dist/bin/chunk-n2c6y0k1.js +0 -1
- package/dist/bin/chunk-pr1dg1km.js +0 -1
- package/dist/bin/chunk-pzj1ac7x.js +0 -1
- package/dist/bin/chunk-rgcrsd5m.js +0 -1
- package/dist/bin/chunk-thph4z3k.js +0 -1
- package/dist/bin/chunk-txykq6f1.js +0 -1
- package/dist/bin/chunk-vjg2fymw.js +0 -1
- package/dist/bin/chunk-ym9h629y.js +0 -111
- package/dist/bin/chunk-z8scg2vy.js +0 -1
- package/dist/bin/chunk-zjvg5pg8.js +0 -1
- package/dist/chunk-25sw2s70.js +0 -1
- package/dist/chunk-2pns2rkf.js +0 -111
- package/dist/chunk-2sc0s7pc.js +0 -6
- package/dist/chunk-7v7dwev4.js +0 -584
- package/dist/chunk-bdv3gpzb.js +0 -709
- package/dist/chunk-fh7apa5n.js +0 -2
- package/dist/chunk-gh0ghb21.js +0 -2
- package/dist/chunk-gqadvddh.js +0 -1
- package/dist/chunk-kpmxvpcv.js +0 -1
- package/dist/chunk-ksqhsz52.js +0 -1
- package/dist/chunk-p588apka.js +0 -1
- package/dist/chunk-vnarc5gc.js +0 -5
- package/dist/chunk-x7d93rxb.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n}from"./chunk-2sc0s7pc.js";import{f}from"./chunk-r3m1fjd4.js";class h{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async createStack(e){let t={Action:"CreateStack",StackName:e.stackName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;else throw Error("Either templateBody or templateUrl must be provided");if(e.parameters)e.parameters.forEach((a,r)=>{t[`Parameters.member.${r+1}.ParameterKey`]=a.ParameterKey,t[`Parameters.member.${r+1}.ParameterValue`]=a.ParameterValue});if(e.capabilities)e.capabilities.forEach((a,r)=>{t[`Capabilities.member.${r+1}`]=a});if(e.roleArn)t.RoleARN=e.roleArn;if(e.tags)e.tags.forEach((a,r)=>{t[`Tags.member.${r+1}.Key`]=a.Key,t[`Tags.member.${r+1}.Value`]=a.Value});if(e.timeoutInMinutes)t.TimeoutInMinutes=e.timeoutInMinutes;if(e.onFailure)t.OnFailure=e.onFailure;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackId:s.StackId||s.CreateStackResult?.StackId}}async updateStack(e){let t={Action:"UpdateStack",StackName:e.stackName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;if(e.parameters)e.parameters.forEach((a,r)=>{if(t[`Parameters.member.${r+1}.ParameterKey`]=a.ParameterKey,a.UsePreviousValue)t[`Parameters.member.${r+1}.UsePreviousValue`]="true";else t[`Parameters.member.${r+1}.ParameterValue`]=a.ParameterValue});if(e.capabilities)e.capabilities.forEach((a,r)=>{t[`Capabilities.member.${r+1}`]=a});if(e.roleArn)t.RoleARN=e.roleArn;if(e.tags)e.tags.forEach((a,r)=>{t[`Tags.member.${r+1}.Key`]=a.Key,t[`Tags.member.${r+1}.Value`]=a.Value});let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackId:s.StackId||s.UpdateStackResult?.StackId}}async deleteStack(e,t,s){let a={Action:"DeleteStack",StackName:e,Version:"2010-05-15"};if(t)a.RoleARN=t;if(s&&s.length>0)s.forEach((r,u)=>{a[`RetainResources.member.${u+1}`]=r});await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(a).toString()})}async describeStacks(e={}){let t={Action:"DescribeStacks",Version:"2010-05-15"};if(e.stackName)t.StackName=e.stackName;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{Stacks:this.parseStacksResponse(s)}}async describeStackEvents(e){let t={Action:"DescribeStackEvents",StackName:e,Version:"2010-05-15"},s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackEvents:this.parseStackEvents(s)}}async listStackResources(e){let t={Action:"ListStackResources",StackName:e,Version:"2010-05-15"},a=(await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}))?.ListStackResourcesResult?.StackResourceSummaries?.member,r=[];if(a)r=Array.isArray(a)?a:[a];return{StackResourceSummaries:r}}async waitForStack(e,t){let s={"stack-create-complete":["CREATE_COMPLETE"],"stack-update-complete":["UPDATE_COMPLETE"],"stack-delete-complete":["DELETE_COMPLETE"]},a=["CREATE_FAILED","ROLLBACK_FAILED","ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE"],r=s[t],u=360,i=0;while(i<360)try{let c=await this.describeStacks({stackName:e});if(c.Stacks.length===0){if(t==="stack-delete-complete")return;if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Stack not visible yet`);await new Promise((m)=>setTimeout(m,2000)),i++;continue}let o=c.Stacks[0];if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Status = ${o.StackStatus}${o.StackStatusReason?` (${o.StackStatusReason})`:""}`);if(r.includes(o.StackStatus))return;if((t==="stack-create-complete"||t==="stack-update-complete")&&(o.StackStatus==="DELETE_IN_PROGRESS"||o.StackStatus==="DELETE_COMPLETE")){console.log("[waitForStack] Stack is being deleted (creation/update failed)");let m="";try{let S=await this.describeStackEvents(e);console.log("[waitForStack] Stack events (most recent first):");for(let k of S.StackEvents.slice(0,15))if(k.ResourceStatus.includes("FAILED")||k.ResourceStatusReason){if(console.log(` ${k.LogicalResourceId}: ${k.ResourceStatus} - ${k.ResourceStatusReason||"No reason provided"}`),k.ResourceStatus.includes("FAILED")&&k.ResourceStatusReason&&!m)m=k.ResourceStatusReason}}catch{}let l=m||o.StackStatusReason||"Check CloudFormation console for details.";throw Error(`Stack creation/update failed - stack is being deleted. Reason: ${l}`)}if(o.StackStatus==="DELETE_FAILED"&&t==="stack-delete-complete"){let m=Error("Stack deletion failed - may have resources that need to be retained");throw m.code="DELETE_FAILED",m.stackStatus=o.StackStatus,m.statusReason=o.StackStatusReason,m}if(a.includes(o.StackStatus))throw Error(`Stack reached failure status: ${o.StackStatus}`);await new Promise((m)=>setTimeout(m,5000)),i++}catch(c){if(t==="stack-delete-complete"&&c.message?.includes("does not exist"))return;if(t==="stack-create-complete"&&c.message?.includes("does not exist")){if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Stack does not exist (error), retrying...`);await new Promise((o)=>setTimeout(o,2000)),i++;continue}throw console.log(`[waitForStack] Unexpected error: ${c.message}`),c}throw console.log(`[waitForStack] Timeout after ${i} attempts`),Error(`Timeout waiting for stack to reach ${t}`)}async validateTemplate(e){let t={Action:"ValidateTemplate",TemplateBody:e,Version:"2010-05-15"};return await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}async listStacks(e){let t={Action:"ListStacks",Version:"2010-05-15"};if(e)e.forEach((c,o)=>{t[`StackStatusFilter.member.${o+1}`]=c});let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),a=s.ListStacksResponse||s,r=a.ListStacksResult||a,u=r.StackSummaries?.member||r.StackSummaries||[];return{StackSummaries:(Array.isArray(u)?u:u?[u]:[]).map((c)=>({StackId:c.StackId||"",StackName:c.StackName||"",TemplateDescription:c.TemplateDescription,CreationTime:c.CreationTime||"",LastUpdatedTime:c.LastUpdatedTime,DeletionTime:c.DeletionTime,StackStatus:c.StackStatus||""}))}}async createChangeSet(e){let t={Action:"CreateChangeSet",StackName:e.stackName,ChangeSetName:e.changeSetName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;if(e.parameters)e.parameters.forEach((r,u)=>{t[`Parameters.member.${u+1}.ParameterKey`]=r.ParameterKey,t[`Parameters.member.${u+1}.ParameterValue`]=r.ParameterValue});if(e.capabilities)e.capabilities.forEach((r,u)=>{t[`Capabilities.member.${u+1}`]=r});if(e.changeSetType)t.ChangeSetType=e.changeSetType;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),a=f(s,"CreateChangeSet");return{Id:a?.Id,StackId:a?.StackId}}async describeChangeSet(e,t){let s={Action:"DescribeChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};return await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async executeChangeSet(e,t){let s={Action:"ExecuteChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async deleteChangeSet(e,t){let s={Action:"DeleteChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async getStackOutputs(e){let t=await this.describeStacks({stackName:e});if(!t.Stacks||t.Stacks.length===0)throw Error(`Stack ${e} not found`);let s=t.Stacks[0],a={};if(s.Outputs)for(let r of s.Outputs)a[r.OutputKey]=r.OutputValue;return a}async getTemplate(e){let t={Action:"GetTemplate",StackName:e,Version:"2010-05-15"},s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{TemplateBody:s?.GetTemplateResult?.TemplateBody||s?.TemplateBody||""}}parseStacksResponse(e){let t=[],s=e?.DescribeStacksResult?.Stacks?.member||e?.Stacks?.member||e?.Stacks||e;if(s&&!Array.isArray(s))s=[s];if(Array.isArray(s)){for(let a of s)if(a.StackId||a.StackName){let r;if(a.Outputs?.member)r=(Array.isArray(a.Outputs.member)?a.Outputs.member:[a.Outputs.member]).map((i)=>({OutputKey:i.OutputKey,OutputValue:i.OutputValue,Description:i.Description,ExportName:i.ExportName}));t.push({StackId:a.StackId,StackName:a.StackName,StackStatus:a.StackStatus,CreationTime:a.CreationTime,LastUpdatedTime:a.LastUpdatedTime,StackStatusReason:a.StackStatusReason,Outputs:r})}}else if(e.StackId)t.push({StackId:e.StackId,StackName:e.StackName,StackStatus:e.StackStatus,CreationTime:e.CreationTime,LastUpdatedTime:e.LastUpdatedTime});return t}parseStackEvents(e){let t=[],s=e?.DescribeStackEventsResult?.StackEvents?.member||e?.StackEvents?.member||e?.StackEvents||[];if(s&&!Array.isArray(s))s=[s];for(let a of s)if(a.LogicalResourceId)t.push({Timestamp:a.Timestamp,ResourceType:a.ResourceType,LogicalResourceId:a.LogicalResourceId,ResourceStatus:a.ResourceStatus,ResourceStatusReason:a.ResourceStatusReason});return t}async waitForStackWithProgress(e,t,s){let a={"stack-create-complete":["CREATE_COMPLETE"],"stack-update-complete":["UPDATE_COMPLETE"],"stack-delete-complete":["DELETE_COMPLETE"]},r=["CREATE_FAILED","ROLLBACK_FAILED","ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE"],u=a[t],i=360,c=0,o=new Set;while(c<360)try{if(s)try{let k=[...(await this.describeStackEvents(e)).StackEvents||[]].reverse();for(let d of k){let g=`${d.LogicalResourceId}-${d.ResourceStatus}-${d.Timestamp}`;if(!o.has(g))o.add(g),s({resourceId:d.LogicalResourceId,resourceType:d.ResourceType,status:d.ResourceStatus,reason:d.ResourceStatusReason,timestamp:d.Timestamp})}}catch{}let m=await this.describeStacks({stackName:e});if(m.Stacks.length===0){if(t==="stack-delete-complete")return;await new Promise((S)=>setTimeout(S,2000)),c++;continue}let l=m.Stacks[0];if(u.includes(l.StackStatus))return;if(l.StackStatus==="DELETE_FAILED"&&t==="stack-delete-complete"){let S=Error("Stack deletion failed - may have resources that need to be retained");throw S.code="DELETE_FAILED",S.stackStatus=l.StackStatus,S.statusReason=l.StackStatusReason,S}if(r.includes(l.StackStatus))throw Error(`Stack reached failure status: ${l.StackStatus}`);await new Promise((S)=>setTimeout(S,3000)),c++}catch(m){if(t==="stack-delete-complete"&&m.message?.includes("does not exist"))return;if(t==="stack-create-complete"&&m.message?.includes("does not exist")){await new Promise((l)=>setTimeout(l,2000)),c++;continue}throw m}throw Error(`Timeout waiting for stack to reach ${t}`)}async waitForStackComplete(e,t=120,s=5000){let a=["CREATE_COMPLETE","UPDATE_COMPLETE","DELETE_COMPLETE"],r=["CREATE_FAILED","UPDATE_FAILED","DELETE_FAILED","ROLLBACK_COMPLETE","ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED"];for(let u=0;u<t;u++)try{let i=await this.describeStacks({stackName:e});if(i.Stacks.length===0)return{success:!0,status:"DELETE_COMPLETE"};let c=i.Stacks[0],o=c.StackStatus;if(a.includes(o))return{success:!0,status:o};if(r.includes(o))return{success:!1,status:o,reason:c.StackStatusReason};await new Promise((m)=>setTimeout(m,s))}catch(i){if(i.message?.includes("does not exist"))return{success:!0,status:"DELETE_COMPLETE"};throw i}return{success:!1,status:"TIMEOUT",reason:"Timeout waiting for stack operation"}}}
|
|
1
|
+
import{n}from"./chunk-ca191b00.js";import{f}from"./chunk-9ggg2ktx.js";class h{client;region;constructor(e="us-east-1",t){this.region=e,this.client=new n(void 0,{profile:t})}async createStack(e){let t={Action:"CreateStack",StackName:e.stackName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;else throw Error("Either templateBody or templateUrl must be provided");if(e.parameters)e.parameters.forEach((a,r)=>{t[`Parameters.member.${r+1}.ParameterKey`]=a.ParameterKey,t[`Parameters.member.${r+1}.ParameterValue`]=a.ParameterValue});if(e.capabilities)e.capabilities.forEach((a,r)=>{t[`Capabilities.member.${r+1}`]=a});if(e.roleArn)t.RoleARN=e.roleArn;if(e.tags)e.tags.forEach((a,r)=>{t[`Tags.member.${r+1}.Key`]=a.Key,t[`Tags.member.${r+1}.Value`]=a.Value});if(e.timeoutInMinutes)t.TimeoutInMinutes=e.timeoutInMinutes;if(e.onFailure)t.OnFailure=e.onFailure;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackId:s.StackId||s.CreateStackResult?.StackId}}async updateStack(e){let t={Action:"UpdateStack",StackName:e.stackName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;if(e.parameters)e.parameters.forEach((a,r)=>{if(t[`Parameters.member.${r+1}.ParameterKey`]=a.ParameterKey,a.UsePreviousValue)t[`Parameters.member.${r+1}.UsePreviousValue`]="true";else t[`Parameters.member.${r+1}.ParameterValue`]=a.ParameterValue});if(e.capabilities)e.capabilities.forEach((a,r)=>{t[`Capabilities.member.${r+1}`]=a});if(e.roleArn)t.RoleARN=e.roleArn;if(e.tags)e.tags.forEach((a,r)=>{t[`Tags.member.${r+1}.Key`]=a.Key,t[`Tags.member.${r+1}.Value`]=a.Value});let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackId:s.StackId||s.UpdateStackResult?.StackId}}async deleteStack(e,t,s){let a={Action:"DeleteStack",StackName:e,Version:"2010-05-15"};if(t)a.RoleARN=t;if(s&&s.length>0)s.forEach((r,u)=>{a[`RetainResources.member.${u+1}`]=r});await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(a).toString()})}async describeStacks(e={}){let t={Action:"DescribeStacks",Version:"2010-05-15"};if(e.stackName)t.StackName=e.stackName;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{Stacks:this.parseStacksResponse(s)}}async describeStackEvents(e){let t={Action:"DescribeStackEvents",StackName:e,Version:"2010-05-15"},s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{StackEvents:this.parseStackEvents(s)}}async listStackResources(e){let t={Action:"ListStackResources",StackName:e,Version:"2010-05-15"},a=(await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}))?.ListStackResourcesResult?.StackResourceSummaries?.member,r=[];if(a)r=Array.isArray(a)?a:[a];return{StackResourceSummaries:r}}async waitForStack(e,t){let s={"stack-create-complete":["CREATE_COMPLETE"],"stack-update-complete":["UPDATE_COMPLETE"],"stack-delete-complete":["DELETE_COMPLETE"]},a=["CREATE_FAILED","ROLLBACK_FAILED","ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE"],r=s[t],u=360,i=0;while(i<360)try{let c=await this.describeStacks({stackName:e});if(c.Stacks.length===0){if(t==="stack-delete-complete")return;if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Stack not visible yet`);await new Promise((m)=>setTimeout(m,2000)),i++;continue}let o=c.Stacks[0];if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Status = ${o.StackStatus}${o.StackStatusReason?` (${o.StackStatusReason})`:""}`);if(r.includes(o.StackStatus))return;if((t==="stack-create-complete"||t==="stack-update-complete")&&(o.StackStatus==="DELETE_IN_PROGRESS"||o.StackStatus==="DELETE_COMPLETE")){console.log("[waitForStack] Stack is being deleted (creation/update failed)");let m="";try{let S=await this.describeStackEvents(e);console.log("[waitForStack] Stack events (most recent first):");for(let k of S.StackEvents.slice(0,15))if(k.ResourceStatus.includes("FAILED")||k.ResourceStatusReason){if(console.log(` ${k.LogicalResourceId}: ${k.ResourceStatus} - ${k.ResourceStatusReason||"No reason provided"}`),k.ResourceStatus.includes("FAILED")&&k.ResourceStatusReason&&!m)m=k.ResourceStatusReason}}catch{}let l=m||o.StackStatusReason||"Check CloudFormation console for details.";throw Error(`Stack creation/update failed - stack is being deleted. Reason: ${l}`)}if(o.StackStatus==="DELETE_FAILED"&&t==="stack-delete-complete"){let m=Error("Stack deletion failed - may have resources that need to be retained");throw m.code="DELETE_FAILED",m.stackStatus=o.StackStatus,m.statusReason=o.StackStatusReason,m}if(a.includes(o.StackStatus))throw Error(`Stack reached failure status: ${o.StackStatus}`);await new Promise((m)=>setTimeout(m,5000)),i++}catch(c){if(t==="stack-delete-complete"&&c.message?.includes("does not exist"))return;if(t==="stack-create-complete"&&c.message?.includes("does not exist")){if(i%10===0)console.log(`[waitForStack] Attempt ${i}: Stack does not exist (error), retrying...`);await new Promise((o)=>setTimeout(o,2000)),i++;continue}throw console.log(`[waitForStack] Unexpected error: ${c.message}`),c}throw console.log(`[waitForStack] Timeout after ${i} attempts`),Error(`Timeout waiting for stack to reach ${t}`)}async validateTemplate(e){let t={Action:"ValidateTemplate",TemplateBody:e,Version:"2010-05-15"};return await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}async listStacks(e){let t={Action:"ListStacks",Version:"2010-05-15"};if(e)e.forEach((c,o)=>{t[`StackStatusFilter.member.${o+1}`]=c});let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),a=s.ListStacksResponse||s,r=a.ListStacksResult||a,u=r.StackSummaries?.member||r.StackSummaries||[];return{StackSummaries:(Array.isArray(u)?u:u?[u]:[]).map((c)=>({StackId:c.StackId||"",StackName:c.StackName||"",TemplateDescription:c.TemplateDescription,CreationTime:c.CreationTime||"",LastUpdatedTime:c.LastUpdatedTime,DeletionTime:c.DeletionTime,StackStatus:c.StackStatus||""}))}}async createChangeSet(e){let t={Action:"CreateChangeSet",StackName:e.stackName,ChangeSetName:e.changeSetName,Version:"2010-05-15"};if(e.templateBody)t.TemplateBody=e.templateBody;else if(e.templateUrl)t.TemplateURL=e.templateUrl;if(e.parameters)e.parameters.forEach((r,u)=>{t[`Parameters.member.${u+1}.ParameterKey`]=r.ParameterKey,t[`Parameters.member.${u+1}.ParameterValue`]=r.ParameterValue});if(e.capabilities)e.capabilities.forEach((r,u)=>{t[`Capabilities.member.${u+1}`]=r});if(e.changeSetType)t.ChangeSetType=e.changeSetType;let s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()}),a=f(s,"CreateChangeSet");return{Id:a?.Id,StackId:a?.StackId}}async describeChangeSet(e,t){let s={Action:"DescribeChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};return await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async executeChangeSet(e,t){let s={Action:"ExecuteChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async deleteChangeSet(e,t){let s={Action:"DeleteChangeSet",StackName:e,ChangeSetName:t,Version:"2010-05-15"};await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(s).toString()})}async getStackOutputs(e){let t=await this.describeStacks({stackName:e});if(!t.Stacks||t.Stacks.length===0)throw Error(`Stack ${e} not found`);let s=t.Stacks[0],a={};if(s.Outputs)for(let r of s.Outputs)a[r.OutputKey]=r.OutputValue;return a}async getTemplate(e){let t={Action:"GetTemplate",StackName:e,Version:"2010-05-15"},s=await this.client.request({service:"cloudformation",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{TemplateBody:s?.GetTemplateResult?.TemplateBody||s?.TemplateBody||""}}parseStacksResponse(e){let t=[],s=e?.DescribeStacksResult?.Stacks?.member||e?.Stacks?.member||e?.Stacks||e;if(s&&!Array.isArray(s))s=[s];if(Array.isArray(s)){for(let a of s)if(a.StackId||a.StackName){let r;if(a.Outputs?.member)r=(Array.isArray(a.Outputs.member)?a.Outputs.member:[a.Outputs.member]).map((i)=>({OutputKey:i.OutputKey,OutputValue:i.OutputValue,Description:i.Description,ExportName:i.ExportName}));t.push({StackId:a.StackId,StackName:a.StackName,StackStatus:a.StackStatus,CreationTime:a.CreationTime,LastUpdatedTime:a.LastUpdatedTime,StackStatusReason:a.StackStatusReason,Outputs:r})}}else if(e.StackId)t.push({StackId:e.StackId,StackName:e.StackName,StackStatus:e.StackStatus,CreationTime:e.CreationTime,LastUpdatedTime:e.LastUpdatedTime});return t}parseStackEvents(e){let t=[],s=e?.DescribeStackEventsResult?.StackEvents?.member||e?.StackEvents?.member||e?.StackEvents||[];if(s&&!Array.isArray(s))s=[s];for(let a of s)if(a.LogicalResourceId)t.push({Timestamp:a.Timestamp,ResourceType:a.ResourceType,LogicalResourceId:a.LogicalResourceId,ResourceStatus:a.ResourceStatus,ResourceStatusReason:a.ResourceStatusReason});return t}async waitForStackWithProgress(e,t,s){let a={"stack-create-complete":["CREATE_COMPLETE"],"stack-update-complete":["UPDATE_COMPLETE"],"stack-delete-complete":["DELETE_COMPLETE"]},r=["CREATE_FAILED","ROLLBACK_FAILED","ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE"],u=a[t],i=360,c=0,o=new Set;while(c<360)try{if(s)try{let k=[...(await this.describeStackEvents(e)).StackEvents||[]].reverse();for(let d of k){let g=`${d.LogicalResourceId}-${d.ResourceStatus}-${d.Timestamp}`;if(!o.has(g))o.add(g),s({resourceId:d.LogicalResourceId,resourceType:d.ResourceType,status:d.ResourceStatus,reason:d.ResourceStatusReason,timestamp:d.Timestamp})}}catch{}let m=await this.describeStacks({stackName:e});if(m.Stacks.length===0){if(t==="stack-delete-complete")return;await new Promise((S)=>setTimeout(S,2000)),c++;continue}let l=m.Stacks[0];if(u.includes(l.StackStatus))return;if(l.StackStatus==="DELETE_FAILED"&&t==="stack-delete-complete"){let S=Error("Stack deletion failed - may have resources that need to be retained");throw S.code="DELETE_FAILED",S.stackStatus=l.StackStatus,S.statusReason=l.StackStatusReason,S}if(r.includes(l.StackStatus))throw Error(`Stack reached failure status: ${l.StackStatus}`);await new Promise((S)=>setTimeout(S,3000)),c++}catch(m){if(t==="stack-delete-complete"&&m.message?.includes("does not exist"))return;if(t==="stack-create-complete"&&m.message?.includes("does not exist")){await new Promise((l)=>setTimeout(l,2000)),c++;continue}throw m}throw Error(`Timeout waiting for stack to reach ${t}`)}async waitForStackComplete(e,t=120,s=5000){let a=["CREATE_COMPLETE","UPDATE_COMPLETE","DELETE_COMPLETE"],r=["CREATE_FAILED","UPDATE_FAILED","DELETE_FAILED","ROLLBACK_COMPLETE","ROLLBACK_FAILED","UPDATE_ROLLBACK_COMPLETE","UPDATE_ROLLBACK_FAILED"];for(let u=0;u<t;u++)try{let i=await this.describeStacks({stackName:e});if(i.Stacks.length===0)return{success:!0,status:"DELETE_COMPLETE"};let c=i.Stacks[0],o=c.StackStatus;if(a.includes(o))return{success:!0,status:o};if(r.includes(o))return{success:!1,status:o,reason:c.StackStatusReason};await new Promise((m)=>setTimeout(m,s))}catch(i){if(i.message?.includes("does not exist"))return{success:!0,status:"DELETE_COMPLETE"};throw i}return{success:!1,status:"TIMEOUT",reason:"Timeout waiting for stack operation"}}}
|
|
2
2
|
export{h};
|
package/dist/deploy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Tn,wn,Fu,ps,Uu,Qu,Hu,Qa,Gu,Vu,th,qu,E,ju,ms,Me,zu,Ku,BS,Wu,Ju,Xu,Yu,Zu,rh,xS,OS,_S,nh,ih,LS,$S,sh,oh,MS,fs,Ar,Ha,Rn,Dn,yr,ct,Lt,hs,ah,Pn,eg,tg,Ga,ys,kn,Ss,nc}from"../chunk-5hgcr7r2.js";import{ic,Bn,xn,Is,bs,Cs,Es,sc,oc}from"../chunk-8b2mxhcm.js";import{ac}from"../chunk-a8hs75xd.js";import"../chunk-jytama4e.js";import"../chunk-0qgfe5ff.js";import"../chunk-0cz2s19h.js";import"../chunk-qcj3hkba.js";import"../chunk-4abbccq7.js";import"../chunk-m9r0a1v9.js";import"../chunk-jtvw9d4x.js";import{Sg,vc,Ig,De,Tc,Kn,bg,wc,zc,Xs,Kc,Jt,Si,Ys}from"../chunk-85fyadq0.js";import"../chunk-fqgvackc.js";import"../chunk-thdfk76k.js";import"../chunk-zf5wdx6v.js";import"../chunk-j99nkav5.js";import"../chunk-ca191b00.js";import{It,gA,sd,Ti,wi,Ri,Np}from"../chunk-nmnf1ha6.js";import{U,Gr,Vr,od,oo,d,pA,kp,Bp,hI,yI}from"../chunk-cpba1hz2.js";import"../chunk-zbx9yehq.js";import"../chunk-18h7na1g.js";import"../chunk-6m8p1n88.js";export{gA as DEFAULT_SITE_PORT_RANGE,It as HOST_SITES_DIR,Tc as IPV6_EXCLUDED_HOST_LABELS,zc as MANAGEMENT_DASHBOARD_SITE,Tn as addSiteToCloudConfig,Np as allocateSitePorts,MS as buildAndPushContainerImage,ac as buildAndPushServerlessImage,Ar as buildFunctionEnv,wi as buildHostSitePortsScript,Ys as buildManagementDashboardArtifact,Lt as buildServerTopology,hs as buildServerlessTopology,ah as buildTopology,Ga as collectEgressMetrics,Sg as collectServerDnsDomains,oh as createContainerImageDependencies,nh as createExistingStaticFullStackDependencies,rh as createStaticApiOriginDependencies,kn as dashboardActions,Xs as dashboardCredentialsFile,zu as dashboardPageRoutes,Yu as deleteFailoverReplicaBuckets,sc as deleteStaticSite,LS as deployExistingStaticFullStack,Ha as deployServerlessApp,yI as deployShipsFiles,Zu as deploySite,xS as deployStaticApiOrigin,bs as deployStaticSite,oc as deployStaticSiteFull,Bn as deployStaticSiteWithExternalDns,xn as deployStaticSiteWithExternalDnsFull,eg as egressReportMetrics,E as ensureDashboardActor,Wu as ensureFailoverReplicaBuckets,Si as ensureManagementDashboard,$S as estimateExistingStaticFullStackMonthlyCost,_S as estimateStaticApiOriginMonthlyCost,tg as fetchEgressReport,ih as generateExistingStaticFullStackTemplate,ic as generateExternalDnsStaticSiteTemplate,Is as generateStaticSiteTemplate,Ju as grantFailoverReplicaAccess,pA as hasComputeConfigured,od as hasProxyUpstream,sh as hashContainerContext,Kn as hostAcceptsIpv6,fs as infraEnvFromOutputs,ju as initializeDashboardControlPlane,Es as invalidateCache,Gr as isPhpSite,Qa as isValidHostname,De as normalizePublicIpv6,Ti as occupiedHostPorts,Ri as parseHostSiteFragments,sd as parseUpstreamPort,bg as reconcileAddressRecords,Rn as redeployServerlessApp,Ig as removeAddressRecords,wn as removeSiteFromCloudConfig,vc as removeStaleServerAddressRecords,Gu as renderAliasesValue,Hu as renderEnvValue,Vu as renderRedirectsValue,th as renderSiteSnippet,Uu as renderSslValue,Qu as renderStringValue,Ss as resolveDashboardAction,Kc as resolveDashboardAuth,Pn as resolveDashboardData,Ku as resolveLegacyDashboardRoute,Vr as resolveProxyUpstreams,oo as resolveSiteDeployTarget,d as resolveSiteKind,Jt as resolveUiSource,Dn as rollbackServerlessApp,BS as routesForDashboard,ct as runRemoteCommand,ys as sanitizeCloudConfig,Xu as seedFailoverReplicas,qu as setAttachToInCloudConfig,yr as setMaintenance,ps as setSitePropertyInCloudConfig,Bp as shipsARelease,hI as shipsToBucket,U as siteInstallBase,nc as startLocalDashboardServer,ms as synchronizeDashboardUsers,Me as trackDashboardOperation,Fu as updateSiteInCloudConfig,Cs as uploadStaticFiles,kp as validateDeploymentConfig,wc as verifyAddressRecord,OS as verifyStaticApiOrigin};
|
package/dist/dns/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{pt,he,Ge,H,qt,qn,Bs,xs,Tr,wr,jn,Rr,Os,_s,Ls,$s,ie,Ms,Fs,Us,Qs,Ae,Hs,Gs,Vs,k,Cc,zn,Ec}from"../chunk-m9r0a1v9.js";import"../chunk-jtvw9d4x.js";import"../chunk-ca191b00.js";export{H as CloudflareProvider,zn as DnsProviderFactory,Ge as GoDaddyProvider,pt as PROXIABLE_RECORD_TYPES,he as PorkbunProvider,ie as Route53Provider,Ae as UnifiedDnsValidator,Ls as applyDeclaredZoneSettings,Us as applyZoneMigration,k as createDnsProvider,Gs as createGoDaddyValidator,Hs as createPorkbunValidator,Vs as createRoute53Validator,Rr as delegateZone,Os as delegateZoneFromConfig,_s as describeDelegation,$s as describeZoneSettings,Cc as detectDnsProvider,Ec as dnsProviders,Ms as exportRoute53Zone,Tr as isNameserverRegistrar,wr as isZoneHost,Fs as planZoneMigration,qt as policyTag,qn as qualifyName,xs as reconcileDeclaredRecords,Bs as resolveDeclaredRecords,jn as sameNameservers,Qs as verifyZoneParity};
|
|
@@ -24,13 +24,13 @@ export interface AwsIngressRule {
|
|
|
24
24
|
* Ingress rules for a PHP/app box: SSH (deploy fallback), HTTP, HTTPS, and any
|
|
25
25
|
* extra app ports any site declares. Deploys themselves run over SSM.
|
|
26
26
|
*/
|
|
27
|
-
export declare function awsComputeIngressRules(config: CloudConfig): AwsIngressRule[];
|
|
27
|
+
export declare function awsComputeIngressRules(config: CloudConfig, environment?: string): AwsIngressRule[];
|
|
28
28
|
/**
|
|
29
29
|
* Build the EC2 UserData (raw bash, not yet base64) from the shared Ubuntu
|
|
30
30
|
* bootstrap — the exact same recipe Hetzner uses. Honors a baked golden image
|
|
31
31
|
* (`compute.bakedImage`) by skipping the install-heavy steps.
|
|
32
32
|
*/
|
|
33
|
-
export declare function buildAwsUserData(config: CloudConfig): string;
|
|
33
|
+
export declare function buildAwsUserData(config: CloudConfig, environment?: string): string;
|
|
34
34
|
/** Base64-encode UserData for the EC2 RunInstances API. */
|
|
35
35
|
export declare function encodeUserData(userData: string): string;
|
|
36
36
|
/**
|
package/dist/drivers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Wn,jt,Pr,zt,Jn,M,Br,Xn,xr,Se,Rc,Yn,Dc,Zn,Pc,Or,vh,Th,Rg,Dg,wh,Rh,Dh,_r,ei,Pg,zs,ti,ri,ni,ii,si,Nc,kc,Lr,xc,Ve,se,Oc,mt,qe,je,ft,Pe,Ks,_c,Ng,kg,Lc,Bg,ht,oi,$c,xg,Og,Mc,$r,Ne,Fc,_g,Lg,Ws,ai,At,$g,Mg,Fg,Ug,Qg,Hg,Gg,Vg,qg,ci,di,li,ui,gi,pi,mi,jg,zg,Mr,F,Js,Kg,Wg,Jg,Uc,Xg,Yg,Ph,Qc,Nh,kh,Zg,ep,Bh,xh,Oh,Hc,tp,_h,Lh,$h,fi,hi,Ai,yi,Gc,Vc,qc,jc,Mh,Zs,Wc,Ii,Jc,rp,np,ip,Fh}from"../chunk-85fyadq0.js";import{to,no,io,Uh,Zc,B,Xt,fI,so,cp,ze,G,ke}from"../chunk-fqgvackc.js";import"../chunk-thdfk76k.js";import"../chunk-zf5wdx6v.js";import"../chunk-j99nkav5.js";import"../chunk-ca191b00.js";import"../chunk-cpba1hz2.js";import"../chunk-18h7na1g.js";import"../chunk-6m8p1n88.js";export{jc as AwsBoxProvisioner,Br as AwsDriver,Jg as BOOT_PARTITION_LABEL,Js as CloudDriverFactory,Dg as DEFAULT_HOST_CLEANUP_ESCALATED,Rh as DEFAULT_HOST_CLEANUP_HIGH_WATER_PERCENT,wh as DEFAULT_HOST_CLEANUP_LOW_WATER_PERCENT,Rg as DEFAULT_HOST_CLEANUP_RETENTION,Dh as DEFAULT_HOST_CLEANUP_SCHEDULE,to as DEFAULT_RPX_CERTS_DIR,Wg as FIRST_BOOT_SCRIPT_PATH,Or as HOST_ARTIFACT_CACHE_DIR,vh as HOST_CLEANUP_SCRIPT_PATH,Th as HOST_CLEANUP_UNIT,qc as HetznerBoxProvisioner,Lr as HetznerClient,Pe as HetznerDriver,Oc as LEGACY_DRIVER_STATE_DIR,Ks as LocalBoxDriver,np as MANAGED_CACHE_POLICY_DISABLED,rp as MANAGED_CACHE_POLICY_OPTIMIZED,ip as MANAGED_ORIGIN_REQUEST_POLICY_ALL_VIEWER,Lg as RASPBERRY_PI_DEFAULT_SWAP_GB,Pc as REMOTE_SCRIPT_RUNNER,so as RPX_DIR,cp as RPX_LAUNCHER_PATH,ze as RPX_SERVICE_NAME,Fc as SSH_BOOTSTRAP_MARKER_DIR,Ne as SSH_BOOTSTRAP_VERSION,At as SSH_DEFAULTS,mi as SSH_DEPLOY_STORAGE_PATH,Ng as SSH_INSECURE_HOST_KEY_OPTS,kg as SSH_KEEPALIVE_OPTS,di as SSH_PREFLIGHT_SCRIPT,jg as SSH_SKIP_BOOTSTRAP_ENV,Mr as SshDriver,$r as SystemSshTransport,Gc as UBUNTU_2404_AMI_PARAM,$h as acquireResizeLock,Bh as applyHetznerHostOptimization,Ws as assertArchSupported,zg as assertSshComputeConfig,Nc as buildAwsArtifactFetch,Vc as buildBoxUserData,Fh as buildCloudFrontOriginConfig,Uc as buildCloudInitFirstBoot,ep as buildHetznerHostOptimizationScript,ti as buildHostCleanupDeployScript,Pg as buildHostCleanupExecutable,zs as buildHostCleanupInstallScript,ei as buildHostCleanupScript,kc as buildLocalArtifactFetch,B as buildRpxConfig,ke as buildRpxFragmentRefreshScript,Xt as buildRpxLbConfig,G as buildRpxProvisionScript,Bg as buildScpArgsFor,ni as buildSiteDeployScript,Xn as buildSshArgs,Lc as buildSshArgsFor,ai as buildSshBootstrapScript,ii as buildStaticSiteDeployScript,Kg as cloudDrivers,xh as collectHetznerHostOptimizationReport,Qc as collectHetznerResizeManifest,Mh as createBoxProvisioner,F as createCloudDriver,Wc as deployAllComputeSites,Zs as deploySiteRelease,Zc as deriveRouteId,Wn as describeScriptSyntaxError,mt as driverStateDir,qe as driverStatePath,hi as ensureFirewall,Ai as ensureServer,fi as ensureSshKey,ui as evaluatePreflight,Ph as executeHetznerServerResize,Og as findKnownHostKey,pi as formatPreflightFindings,jt as formatSshFailure,io as gatewayHostnames,M as generateUbuntuAppCloudInit,no as hasAutoWwwVariant,_c as isBoxMode,Yg as isHetznerCapacityError,Jn as isLocalDatabase,xg as knownHostsLine,$c as knownHostsToken,Uh as normalizeRoutePath,Ve as normalizeSshPublicKey,li as parsePreflightFacts,Xg as planHetznerServerResize,gi as preflightFailed,Nh as prepareHetznerResize,je as readDriverState,_h as readResizeCheckpoint,si as releaseTarballTmpPath,Ii as reloadRpxGateway,Zn as remoteScriptRunner,fI as renderRpxLauncher,Jc as renewRpxCertificates,Hc as resizeCheckpointPath,tp as resizeLockPath,ri as resolveExecStart,xc as resolveHetznerApiToken,Zg as resolveHetznerHostOptimizationPlan,_r as resolveHostCleanupConfig,Qg as resolveSshHostKeyPolicy,$g as resolveSshHosts,qg as resolveSshLan,Fg as resolveSshPort,Ug as resolveSshPrivateKeyPath,Gg as resolveSshProfile,Vg as resolveSshPublicIp,ci as resolveSshSettings,Hg as resolveSshSudo,Mg as resolveSshUser,oi as scanHostKey,Rc as scpUpload,yi as serverPublicIpv4,_g as sshBootstrapMarkerPath,xr as sshExec,Se as sshExecOrThrow,ht as sshHostKeyFingerprint,Mc as sshKnownHostsPath,zt as summarizeRemoteFailures,Pr as surfaceRemoteNotices,Oh as verifyHetznerHostOptimization,kh as verifyHetznerResize,Dc as waitForCloudInit,Yn as waitForSsh,se as wrapCloudInitUserData,ft as writeDriverState,Lh as writeResizeCheckpoint};
|
|
@@ -107,24 +107,8 @@ export declare function mailDnsRecords(mail: ResolvedMailService): MailDnsRecord
|
|
|
107
107
|
* is now failing verification at their end.
|
|
108
108
|
*/
|
|
109
109
|
export declare function buildDkimScript(mail: ResolvedMailService): string[];
|
|
110
|
-
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* Both `create` and `change-password` run, unconditionally, and that is not
|
|
114
|
-
* belt-and-braces. `mail user:local create` on an existing account prints
|
|
115
|
-
* "already exists" and **exits 0**, so a `create || change-password` chain
|
|
116
|
-
* would never reach the second command — an operator who rotated a password in
|
|
117
|
-
* the config and redeployed would get a box that kept the old one and reported
|
|
118
|
-
* success. Running both means the declaration is the truth on every deploy.
|
|
119
|
-
*
|
|
120
|
-
* Each is tolerated failing so one bad account cannot abort a provision that
|
|
121
|
-
* has already installed and started the server, and each runs as the service
|
|
122
|
-
* account with the server's own `SMTP_DB_PATH` — as root it would create a
|
|
123
|
-
* second database beside the one the server reads, and the accounts would
|
|
124
|
-
* exist in a file nothing opens. That is also why the path comes from
|
|
125
|
-
* `$TS_CLOUD_MAIL_DB` rather than being written in twice: see
|
|
126
|
-
* {@link mailDbPath}.
|
|
127
|
-
*/
|
|
110
|
+
/** Create missing mailboxes without undoing users' password changes. Managed
|
|
111
|
+
* credentials explicitly opt into reconciliation on every deployment. */
|
|
128
112
|
export declare function buildMailAccountScript(mail: ResolvedMailService): string[];
|
|
129
113
|
/**
|
|
130
114
|
* The whole provisioning sequence for the mail service.
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* It replaces the old Caddyfile generation — pantry/stacks use rpx (their own
|
|
20
20
|
* tooling), so the gateway is rpx, not Caddy.
|
|
21
21
|
*/
|
|
22
|
-
import type { CloudConfig, ComputeProxyConfig, RpxLoadBalancerConfig, SiteConfig, SiteRedirectConfig } from '@ts-cloud/core';
|
|
22
|
+
import type { CloudConfig, ComputeProxyConfig, ResolvedMailService, RpxLoadBalancerConfig, SiteConfig, SiteRedirectConfig } from '@ts-cloud/core';
|
|
23
23
|
/** Default directory on the box that holds real per-domain TLS certs. */
|
|
24
24
|
export declare const DEFAULT_RPX_CERTS_DIR = "/etc/rpx/certs";
|
|
25
25
|
/**
|
|
@@ -298,6 +298,8 @@ export declare function isWildcardHost(host: string): boolean;
|
|
|
298
298
|
*/
|
|
299
299
|
export declare function rpxGatewayJson(config: RpxGatewayConfig, extra?: Record<string, unknown>): string;
|
|
300
300
|
export interface BuildRpxConfigOptions {
|
|
301
|
+
/** Managed mail adds its webmail hosts to this same route/certificate set. */
|
|
302
|
+
mail?: ResolvedMailService;
|
|
301
303
|
/** Proxy config from `infrastructure.compute.proxy`. */
|
|
302
304
|
proxy: ComputeProxyConfig;
|
|
303
305
|
/** Directory static sites are shipped to. @default '/var/www' */
|