@stacksjs/ts-cloud 0.12.15 → 0.13.0
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-9e22a51n.js → chunk-22c3pk8s.js} +78 -78
- package/dist/bin/chunk-2synp9gh.js +1 -0
- package/dist/bin/{chunk-ejqhbj1h.js → chunk-2v0qm547.js} +1 -1
- package/dist/bin/chunk-4qzpqmhe.js +1 -0
- package/dist/bin/chunk-5n3ejway.js +1 -0
- package/dist/bin/{chunk-ynr22ma8.js → chunk-7jwxgxxf.js} +1 -1
- package/dist/bin/{chunk-gd4w6bht.js → chunk-8bbw6qc2.js} +1 -1
- package/dist/bin/{chunk-7a7n6p2m.js → chunk-9jmnmhpy.js} +1 -1
- package/dist/bin/{chunk-pt2bz3kr.js → chunk-9qndhwbe.js} +1 -1
- package/dist/bin/chunk-9yra64dd.js +1 -0
- package/dist/bin/{chunk-ng0949x3.js → chunk-b48j6k55.js} +1 -1
- package/dist/bin/{chunk-r1w08y38.js → chunk-bdgkeqv6.js} +1 -1
- package/dist/bin/chunk-c82rh7qe.js +1 -0
- package/dist/bin/{chunk-zzsdhhmb.js → chunk-d4bb9qg9.js} +1 -1
- package/dist/bin/{chunk-pcyywgx7.js → chunk-d6kqbp8q.js} +1 -1
- package/dist/bin/{chunk-swete552.js → chunk-dk38j1qr.js} +9 -9
- package/dist/bin/{chunk-x42gb7pq.js → chunk-e1cxh9rj.js} +2 -2
- package/dist/bin/{chunk-9k60q9qz.js → chunk-edaq5jef.js} +3 -3
- package/dist/bin/chunk-fbe5kk6w.js +1 -0
- package/dist/bin/{chunk-n7eq4t9a.js → chunk-fbycbnvj.js} +4 -4
- package/dist/bin/chunk-fj89173b.js +1 -0
- package/dist/bin/{chunk-8tbj9h2a.js → chunk-gxwsq3k0.js} +40 -40
- package/dist/bin/{chunk-kc2e193t.js → chunk-hwp5xp1c.js} +63 -63
- package/dist/bin/chunk-j3w462ep.js +1 -0
- package/dist/bin/chunk-k2zzny51.js +1 -0
- package/dist/bin/{chunk-80zkjpfz.js → chunk-k3er0h4j.js} +1 -1
- package/dist/bin/chunk-kjatss6s.js +1 -0
- package/dist/bin/{chunk-w5hzt11d.js → chunk-kxa4t4wh.js} +2 -2
- package/dist/bin/{chunk-raj6j2j5.js → chunk-m5sjzxm3.js} +1 -1
- package/dist/bin/{chunk-dhxwmkhz.js → chunk-mcqkjhgp.js} +1 -1
- package/dist/bin/{chunk-77qpn2m8.js → chunk-n56c0j1e.js} +4 -4
- package/dist/bin/chunk-ntahmgqg.js +1 -0
- package/dist/bin/{chunk-57w9nsjk.js → chunk-p197a99s.js} +1 -1
- package/dist/bin/{chunk-vymg9ywg.js → chunk-pd8v6bpd.js} +1 -1
- package/dist/bin/{chunk-yhxpmk29.js → chunk-pthfzst7.js} +1 -1
- package/dist/bin/{chunk-5tsxt28g.js → chunk-ptt8me4h.js} +2 -2
- package/dist/bin/{chunk-7xvm2ygt.js → chunk-qmqmnxmm.js} +3 -3
- package/dist/bin/{chunk-r1vtnn8w.js → chunk-rzt92fwv.js} +3 -3
- package/dist/bin/chunk-t1eft7s7.js +1 -0
- package/dist/bin/{chunk-49sthm4q.js → chunk-t7seq21w.js} +1 -1
- package/dist/bin/chunk-t8n2961n.js +1 -0
- package/dist/bin/{chunk-vesvsvdy.js → chunk-vwzgtsn9.js} +1 -1
- package/dist/bin/{chunk-s1j941z1.js → chunk-w0g72e50.js} +1 -1
- package/dist/bin/chunk-wb8y7zey.js +1 -0
- package/dist/bin/{chunk-n8cwx54p.js → chunk-x4gsw45d.js} +5 -5
- package/dist/bin/{chunk-yx1qgp1q.js → chunk-xs62dg7t.js} +2 -2
- package/dist/bin/chunk-xtp2zf3j.js +1 -0
- package/dist/bin/chunk-xvn07b0e.js +1 -0
- package/dist/bin/{chunk-sdwr2tnp.js → chunk-xw9vcdwt.js} +1 -1
- package/dist/bin/{chunk-4zbnwt9b.js → chunk-y1r1evt0.js} +1 -1
- package/dist/bin/{chunk-c51xp8f7.js → chunk-zs8bfer0.js} +1 -1
- package/dist/bin/cli.js +98 -98
- package/dist/bin/dashboard-server.js +1 -1
- package/dist/chunk-05qawkra.js +1 -0
- package/dist/{chunk-jb8em9ba.js → chunk-0g2jkhy5.js} +1 -1
- package/dist/chunk-1jx53q5e.js +1 -0
- package/dist/{chunk-30h9rgfn.js → chunk-2s65yj3g.js} +4 -4
- package/dist/{chunk-x07tpsv0.js → chunk-3k60wm30.js} +5 -5
- package/dist/chunk-3qtce4mm.js +1 -0
- package/dist/chunk-3tt5em2c.js +1 -0
- package/dist/{chunk-hw3p6pth.js → chunk-42kv07cs.js} +1 -1
- package/dist/{chunk-wjgnfg6q.js → chunk-65ajja2a.js} +1 -1
- package/dist/{chunk-yq3pdbz7.js → chunk-6gtqjsg9.js} +3 -3
- package/dist/{chunk-6g81m01r.js → chunk-8s9m8pyb.js} +1 -1
- package/dist/{chunk-gd9g0v9w.js → chunk-asmv4fw1.js} +19 -19
- package/dist/{chunk-83p688yv.js → chunk-ds92qg3g.js} +4 -4
- package/dist/{chunk-6nvn041c.js → chunk-dzqz1sm0.js} +3 -3
- package/dist/{chunk-88nxsyry.js → chunk-hyj2ymp1.js} +6 -6
- package/dist/chunk-j4ed179k.js +2 -0
- package/dist/{chunk-g9mnmddy.js → chunk-m5r0dt28.js} +2 -2
- package/dist/{chunk-zftpjxkr.js → chunk-mcfdtg5w.js} +1 -1
- package/dist/{chunk-cy6qh4ea.js → chunk-ngdhqwf3.js} +3 -3
- package/dist/{chunk-6znnde1s.js → chunk-nhtz2k8d.js} +5 -5
- package/dist/{chunk-rbem58rx.js → chunk-nw0tvrrr.js} +1 -1
- package/dist/{chunk-hnkw6pde.js → chunk-p9fqsz06.js} +2 -2
- package/dist/{chunk-qzwack6w.js → chunk-r4dpn715.js} +7 -7
- package/dist/{chunk-678rwkz8.js → chunk-vk513ge7.js} +89 -89
- package/dist/{chunk-w495x89g.js → chunk-w5fmaaxa.js} +4 -4
- package/dist/chunk-wr7tn9j5.js +1 -0
- package/dist/{chunk-a6k322xc.js → chunk-xqx5szta.js} +30 -30
- package/dist/{chunk-jvqcw0b4.js → chunk-y13zcbnp.js} +101 -101
- package/dist/{chunk-2knc1zyy.js → chunk-ycs26jsj.js} +124 -124
- package/dist/{chunk-r5emv4x8.js → chunk-z7v4evbh.js} +2 -2
- package/dist/deploy/index.js +1 -1
- package/dist/dns/delegate-from-config.d.ts +50 -0
- package/dist/dns/delegate-from-config.test.d.ts +1 -0
- package/dist/dns/delegation.d.ts +110 -0
- package/dist/dns/delegation.test.d.ts +1 -0
- package/dist/dns/index.d.ts +4 -0
- package/dist/dns/index.js +1 -1
- package/dist/drivers/index.js +1 -1
- package/dist/drivers/shared/rpx-gateway.d.ts +17 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +49 -49
- 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 +5 -5
- 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 +5 -5
- package/dist/ui/infrastructure/topology.html +6 -6
- package/dist/ui/integrations.html +1 -1
- package/dist/ui/operations/alerts.html +5 -5
- package/dist/ui/operations/configuration.html +6 -6
- package/dist/ui/operations/jobs.html +6 -6
- package/dist/ui/operations/maintenance.html +5 -5
- 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 +5 -5
- 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 +2 -2
- package/dist/ui/server/actions.html +5 -5
- 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 +2 -2
- package/dist/ui/server/firewall.html +6 -6
- package/dist/ui/server/fleet.html +6 -6
- package/dist/ui/server/logs.html +6 -6
- package/dist/ui/server/metrics.html +5 -5
- package/dist/ui/server/security.html +2 -2
- package/dist/ui/server/services.html +2 -2
- package/dist/ui/server/sites.html +6 -6
- 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 +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 +5 -5
- package/dist/ui/serverless/secrets.html +6 -6
- package/dist/ui/serverless/traces.html +6 -6
- package/dist/ui/serverless.html +6 -6
- package/dist/ui-src/src/charts.ts +1 -1
- package/dist/ui-src/src/topology.ts +1 -1
- package/package.json +3 -3
- package/dist/bin/chunk-1s4dny8d.js +0 -1
- package/dist/bin/chunk-4w80w3sm.js +0 -1
- package/dist/bin/chunk-4yntpqbe.js +0 -1
- package/dist/bin/chunk-7x0hrna6.js +0 -1
- package/dist/bin/chunk-971tfc6m.js +0 -1
- package/dist/bin/chunk-dpw8x3sr.js +0 -1
- package/dist/bin/chunk-h785hw6a.js +0 -1
- package/dist/bin/chunk-jyggrdh2.js +0 -1
- package/dist/bin/chunk-q524s7cx.js +0 -1
- package/dist/bin/chunk-q9gpw6wv.js +0 -1
- package/dist/bin/chunk-r6cvc2pr.js +0 -1
- package/dist/bin/chunk-rh2sqtew.js +0 -1
- package/dist/bin/chunk-tkzpbb7n.js +0 -1
- package/dist/bin/chunk-v78r5tx0.js +0 -1
- package/dist/bin/chunk-v7f4c62s.js +0 -1
- package/dist/bin/chunk-vx649y7t.js +0 -1
- package/dist/chunk-6t9tjvpy.js +0 -2
- package/dist/chunk-9w32efae.js +0 -1
- package/dist/chunk-atny1wp9.js +0 -1
- package/dist/chunk-fdexq9e1.js +0 -1
- package/dist/chunk-hn2v0b0d.js +0 -1
- package/dist/chunk-v46b25w9.js +0 -1
- /package/dist/bin/{chunk-bckm6fre.js → chunk-pdw0qjq1.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n}from"./chunk-
|
|
2
|
-
export{
|
|
1
|
+
import{n}from"./chunk-2s65yj3g.js";class Ne{client;region;constructor(e="us-east-1",r){this.region=e,this.client=new n(void 0,{profile:r})}async createRepository(e){let r={repositoryName:e.repositoryName};if(e.imageTagMutability)r.imageTagMutability=e.imageTagMutability;if(e.imageScanningConfiguration)r.imageScanningConfiguration=e.imageScanningConfiguration;if(e.encryptionConfiguration)r.encryptionConfiguration=e.encryptionConfiguration;if(e.tags&&e.tags.length>0)r.tags=e.tags;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.CreateRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeRepositories(e){let r={};if(e?.repositoryNames&&e.repositoryNames.length>0)r.repositoryNames=e.repositoryNames;if(e?.registryId)r.registryId=e.registryId;if(e?.maxResults)r.maxResults=e.maxResults;if(e?.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeRepositories","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repositories:t.repositories?.map((i)=>this.parseRepository(i)),nextToken:t.nextToken}}async getAuthorizationToken(e){let r={};if(e&&e.length>0)r.registryIds=e;return{authorizationData:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).authorizationData?.map((i)=>({authorizationToken:i.authorizationToken,expiresAt:i.expiresAt,proxyEndpoint:i.proxyEndpoint}))}}async deleteRepository(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DeleteRepository","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{repository:t.repository?this.parseRepository(t.repository):void 0}}async describeImages(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;if(e.imageIds&&e.imageIds.length>0)r.imageIds=e.imageIds;if(e.filter)r.filter=e.filter;if(e.maxResults)r.maxResults=e.maxResults;if(e.nextToken)r.nextToken=e.nextToken;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.DescribeImages","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageDetails:t.imageDetails?.map((i)=>this.parseImageDetail(i)),nextToken:t.nextToken}}async batchDeleteImage(e){let r={repositoryName:e.repositoryName,imageIds:e.imageIds};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{imageIds:t.imageIds,failures:t.failures}}async putLifecyclePolicy(e){let r={repositoryName:e.repositoryName,lifecyclePolicyText:e.lifecyclePolicyText};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText}}async getLifecyclePolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,lifecyclePolicyText:t.lifecyclePolicyText,lastEvaluatedAt:t.lastEvaluatedAt}}async setRepositoryPolicy(e){let r={repositoryName:e.repositoryName,policyText:e.policyText};if(e.registryId)r.registryId=e.registryId;if(e.force!==void 0)r.force=e.force;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async getRepositoryPolicy(e){let r={repositoryName:e.repositoryName};if(e.registryId)r.registryId=e.registryId;let t=await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)});return{registryId:t.registryId,repositoryName:t.repositoryName,policyText:t.policyText}}async tagResource(e){let r={resourceArn:e.resourceArn,tags:e.tags};await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})}async listTagsForResource(e){let r={resourceArn:e};return{tags:(await this.client.request({service:"ecr",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"AmazonEC2ContainerRegistry_V20150921.ListTagsForResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(r)})).tags}}createLifecyclePolicyText(e){return JSON.stringify({rules:e.map((r)=>({rulePriority:r.rulePriority,description:r.description,selection:r.selection,action:r.action}))})}async getDockerLoginCommand(){let e=await this.getAuthorizationToken();if(!e.authorizationData?.[0])throw Error("Failed to get authorization token");let r=e.authorizationData[0],t=r.authorizationToken||"",i=r.proxyEndpoint||"";return`echo "${Buffer.from(t,"base64").toString("utf8").split(":")[1]}" | docker login --username AWS --password-stdin ${i}`}getRegistryUri(e){return`${e}.dkr.ecr.${this.region}.amazonaws.com`}parseRepository(e){return{repositoryArn:e.repositoryArn,registryId:e.registryId,repositoryName:e.repositoryName,repositoryUri:e.repositoryUri,createdAt:e.createdAt,imageTagMutability:e.imageTagMutability,imageScanningConfiguration:e.imageScanningConfiguration,encryptionConfiguration:e.encryptionConfiguration}}parseImageDetail(e){return{registryId:e.registryId,repositoryName:e.repositoryName,imageDigest:e.imageDigest,imageTags:e.imageTags,imageSizeInBytes:e.imageSizeInBytes,imagePushedAt:e.imagePushedAt,imageScanStatus:e.imageScanStatus,imageScanFindingsSummary:e.imageScanFindingsSummary}}}
|
|
2
|
+
export{Ne};
|
package/dist/deploy/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Jr,Xr,wl,Mi,Rl,Dl,Pl,na,Nl,kl,bm,Bl,S,xl,Fi,Re,_l,Ol,DA,Ll,Em,PA,NA,kA,vm,Tm,BA,xA,wm,Rm,_A,Ui,Wt,ia,Yr,Zr,Jt,Je,It,Qi,Dm,en,$l,Ml,sa,Gi,rn,qi,Ia}from"../chunk-ycs26jsj.js";import{Sa,nn,sn,Vi,ji,zi,Ki,Ca,ba}from"../chunk-3k60wm30.js";import{Ea}from"../chunk-w5fmaaxa.js";import"../chunk-hyj2ymp1.js";import"../chunk-ngdhqwf3.js";import"../chunk-8s9m8pyb.js";import"../chunk-z7v4evbh.js";import"../chunk-mcfdtg5w.js";import"../chunk-j4ed179k.js";import"../chunk-65ajja2a.js";import{eu,$a,fe,Ma,yn,tu,Fa,cc,ys,dc,Nt,zn,Is}from"../chunk-vk513ge7.js";import"../chunk-dzqz1sm0.js";import"../chunk-0g2jkhy5.js";import"../chunk-6gtqjsg9.js";import"../chunk-2s65yj3g.js";import{ot,Bh,hc,Yn,Zn,ei,Zu}from"../chunk-ds92qg3g.js";import{B,Ir,Sr,fc,bs,u,xh,ep,tp,uy,py}from"../chunk-m5r0dt28.js";import"../chunk-xqx5szta.js";import"../chunk-y13zcbnp.js";export{Bh as DEFAULT_SITE_PORT_RANGE,ot as HOST_SITES_DIR,Ma as IPV6_EXCLUDED_HOST_LABELS,cc as MANAGEMENT_DASHBOARD_SITE,Jr as addSiteToCloudConfig,Zu as allocateSitePorts,_A as buildAndPushContainerImage,Ea as buildAndPushServerlessImage,Wt as buildFunctionEnv,Zn as buildHostSitePortsScript,Is as buildManagementDashboardArtifact,It as buildServerTopology,Qi as buildServerlessTopology,Dm as buildTopology,sa as collectEgressMetrics,eu as collectServerDnsDomains,Rm as createContainerImageDependencies,vm as createExistingStaticFullStackDependencies,Em as createStaticApiOriginDependencies,rn as dashboardActions,ys as dashboardCredentialsFile,_l as dashboardPageRoutes,Ca as deleteStaticSite,BA as deployExistingStaticFullStack,ia as deployServerlessApp,py as deployShipsFiles,Ll as deploySite,PA as deployStaticApiOrigin,ji as deployStaticSite,ba as deployStaticSiteFull,nn as deployStaticSiteWithExternalDns,sn as deployStaticSiteWithExternalDnsFull,$l as egressReportMetrics,S as ensureDashboardActor,zn as ensureManagementDashboard,xA as estimateExistingStaticFullStackMonthlyCost,kA as estimateStaticApiOriginMonthlyCost,Ml as fetchEgressReport,Tm as generateExistingStaticFullStackTemplate,Sa as generateExternalDnsStaticSiteTemplate,Vi as generateStaticSiteTemplate,xh as hasComputeConfigured,fc as hasProxyUpstream,wm as hashContainerContext,yn as hostAcceptsIpv6,Ui as infraEnvFromOutputs,xl as initializeDashboardControlPlane,Ki as invalidateCache,Ir as isPhpSite,na as isValidHostname,fe as normalizePublicIpv6,Yn as occupiedHostPorts,ei as parseHostSiteFragments,hc as parseUpstreamPort,tu as reconcileAddressRecords,Yr as redeployServerlessApp,Xr as removeSiteFromCloudConfig,$a as removeStaleServerAddressRecords,Nl as renderAliasesValue,Pl as renderEnvValue,kl as renderRedirectsValue,bm as renderSiteSnippet,Rl as renderSslValue,Dl as renderStringValue,qi as resolveDashboardAction,dc as resolveDashboardAuth,en as resolveDashboardData,Ol as resolveLegacyDashboardRoute,Sr as resolveProxyUpstreams,bs as resolveSiteDeployTarget,u as resolveSiteKind,Nt as resolveUiSource,Zr as rollbackServerlessApp,DA as routesForDashboard,Je as runRemoteCommand,Gi as sanitizeCloudConfig,Bl as setAttachToInCloudConfig,Jt as setMaintenance,Mi as setSitePropertyInCloudConfig,tp as shipsARelease,uy as shipsToBucket,B as siteInstallBase,Ia as startLocalDashboardServer,Fi as synchronizeDashboardUsers,Re as trackDashboardOperation,wl as updateSiteInCloudConfig,zi as uploadStaticFiles,ep as validateDeploymentConfig,Fa as verifyAddressRecord,NA as verifyStaticApiOrigin};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn `infrastructure.dns.registrar` into an actual delegation.
|
|
3
|
+
*
|
|
4
|
+
* The deploy already knows where a zone should live — `dns.provider` — and now
|
|
5
|
+
* also where the domain is registered. Everything needed to move the first onto
|
|
6
|
+
* the second is therefore in the config, and the only reason it was ever a
|
|
7
|
+
* manual job at two dashboards is that nothing joined the two halves up.
|
|
8
|
+
*
|
|
9
|
+
* Safe to call on every deploy: once the registrar points at the provider this
|
|
10
|
+
* returns `already-delegated` without reading or writing a record.
|
|
11
|
+
*/
|
|
12
|
+
import type { DelegationReport } from './delegation';
|
|
13
|
+
/** The slice of `infrastructure.dns` this needs. */
|
|
14
|
+
export interface DelegationConfig {
|
|
15
|
+
domain?: string;
|
|
16
|
+
provider?: 'route53' | 'cloudflare' | 'porkbun' | 'godaddy';
|
|
17
|
+
registrar?: {
|
|
18
|
+
provider: 'porkbun' | 'godaddy';
|
|
19
|
+
proxied?: string[];
|
|
20
|
+
dryRun?: boolean;
|
|
21
|
+
delegate?: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface DelegationCredentials {
|
|
25
|
+
porkbunApiKey?: string;
|
|
26
|
+
porkbunSecretKey?: string;
|
|
27
|
+
godaddyApiKey?: string;
|
|
28
|
+
godaddyApiSecret?: string;
|
|
29
|
+
cloudflareApiToken?: string;
|
|
30
|
+
cloudflareAccountId?: string;
|
|
31
|
+
}
|
|
32
|
+
/** Why a delegation was not attempted. Never a failure — just not applicable. */
|
|
33
|
+
export interface DelegationSkipped {
|
|
34
|
+
status: 'skipped';
|
|
35
|
+
reason: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Delegate `dns.domain` from its registrar to `dns.provider`, if the config
|
|
39
|
+
* asks for it and the credentials are there.
|
|
40
|
+
*
|
|
41
|
+
* Returns a `skipped` result rather than throwing when the delegation does not
|
|
42
|
+
* apply — a project with no registrar declared, or one whose zone is already
|
|
43
|
+
* where it belongs, is not an error and must not fail a deploy.
|
|
44
|
+
*/
|
|
45
|
+
export declare function delegateZoneFromConfig(config: DelegationConfig, options?: {
|
|
46
|
+
credentials?: DelegationCredentials;
|
|
47
|
+
env?: Record<string, string | undefined>;
|
|
48
|
+
}): Promise<DelegationReport | DelegationSkipped>;
|
|
49
|
+
/** One line per outcome, for a deploy log. */
|
|
50
|
+
export declare function describeDelegation(result: DelegationReport | DelegationSkipped): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate a zone to the provider that serves it.
|
|
3
|
+
*
|
|
4
|
+
* A domain has two homes that people conflate: the REGISTRAR it is bought
|
|
5
|
+
* from, and the DNS provider whose nameservers actually answer for it. Moving
|
|
6
|
+
* the second is a two-sided operation — create the zone, populate it, then
|
|
7
|
+
* point the registrar at it — and every manual account of it goes wrong in the
|
|
8
|
+
* same place: the nameservers get switched before the new zone is complete,
|
|
9
|
+
* and the records that nothing derives (mail, verification tokens, DKIM) are
|
|
10
|
+
* simply gone until somebody reports that mail stopped.
|
|
11
|
+
*
|
|
12
|
+
* So the order here is fixed and the last step is conditional:
|
|
13
|
+
*
|
|
14
|
+
* 1. ensure the zone exists at the destination and learn its nameservers
|
|
15
|
+
* 2. copy the registrar's records across
|
|
16
|
+
* 3. verify, record for record, that they arrived
|
|
17
|
+
* 4. ONLY THEN point the registrar's nameservers at the destination
|
|
18
|
+
*
|
|
19
|
+
* Step 4 does not run if step 3 found anything missing. A delegation into a
|
|
20
|
+
* half-populated zone is the one outcome worth failing the deploy over, and it
|
|
21
|
+
* is the one an operator cannot easily undo — the old zone keeps answering
|
|
22
|
+
* only until caches expire.
|
|
23
|
+
*
|
|
24
|
+
* Re-running after delegation is a no-op by design. Once the registrar points
|
|
25
|
+
* here, the destination is the source of truth and the registrar's own records
|
|
26
|
+
* are a stale copy; re-importing them would resurrect anything deleted since.
|
|
27
|
+
*/
|
|
28
|
+
import type { DnsProvider, DnsRecord } from './types';
|
|
29
|
+
/**
|
|
30
|
+
* A provider that can also change where a domain's nameservers point.
|
|
31
|
+
*
|
|
32
|
+
* Separate from {@link DnsProvider} because the two capabilities are genuinely
|
|
33
|
+
* different: serving a zone's records and controlling the domain's delegation
|
|
34
|
+
* are usually the same company but never the same permission, and plenty of
|
|
35
|
+
* providers do one without the other.
|
|
36
|
+
*/
|
|
37
|
+
export interface NameserverRegistrar {
|
|
38
|
+
readonly name: string;
|
|
39
|
+
getNameServers: (domain: string) => Promise<string[]>;
|
|
40
|
+
updateNameServers: (domain: string, nameservers: string[]) => Promise<boolean>;
|
|
41
|
+
}
|
|
42
|
+
/** A provider that can host a zone and report the nameservers it assigns. */
|
|
43
|
+
export interface ZoneHost {
|
|
44
|
+
createZone: (domain: string, options?: {
|
|
45
|
+
accountId?: string;
|
|
46
|
+
jumpStart?: boolean;
|
|
47
|
+
}) => Promise<{
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
status: string;
|
|
51
|
+
nameServers: string[];
|
|
52
|
+
created: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
}
|
|
55
|
+
export declare function isNameserverRegistrar(value: unknown): value is NameserverRegistrar;
|
|
56
|
+
export declare function isZoneHost(value: unknown): value is ZoneHost;
|
|
57
|
+
export interface DelegationOptions {
|
|
58
|
+
domain: string;
|
|
59
|
+
/** Where the domain is registered, and where its records live today. */
|
|
60
|
+
registrar: DnsProvider & NameserverRegistrar;
|
|
61
|
+
/** Where the zone is moving to. */
|
|
62
|
+
host: DnsProvider & ZoneHost;
|
|
63
|
+
/**
|
|
64
|
+
* Hostnames to serve through the destination's edge proxy, where it has one.
|
|
65
|
+
*
|
|
66
|
+
* Deliberately opt-in per host rather than "proxy every address record".
|
|
67
|
+
* Proxying a mail host is the classic way to break a domain quietly:
|
|
68
|
+
* Cloudflare does not proxy SMTP, and the proxy hides the origin address that
|
|
69
|
+
* the domain's own SPF record authorises, so delivery degrades hours later
|
|
70
|
+
* with nothing visibly wrong.
|
|
71
|
+
*/
|
|
72
|
+
proxiedHosts?: Iterable<string>;
|
|
73
|
+
/** Account to create the zone under, when the destination needs one. */
|
|
74
|
+
accountId?: string;
|
|
75
|
+
/** Report what would happen and change nothing. */
|
|
76
|
+
dryRun?: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface DelegationRecordOutcome {
|
|
79
|
+
record: DnsRecord;
|
|
80
|
+
status: 'copied' | 'present' | 'failed' | 'skipped';
|
|
81
|
+
reason?: string;
|
|
82
|
+
}
|
|
83
|
+
export type DelegationStatus =
|
|
84
|
+
/** The registrar already points at the destination; nothing to do. */
|
|
85
|
+
'already-delegated'
|
|
86
|
+
/** Records copied and verified, nameservers updated. */
|
|
87
|
+
| 'delegated'
|
|
88
|
+
/** Records copied and verified; nameservers left alone (dry run). */
|
|
89
|
+
| 'ready'
|
|
90
|
+
/** Something is missing at the destination — nameservers deliberately untouched. */
|
|
91
|
+
| 'blocked';
|
|
92
|
+
export interface DelegationReport {
|
|
93
|
+
status: DelegationStatus;
|
|
94
|
+
domain: string;
|
|
95
|
+
zoneId?: string;
|
|
96
|
+
/** Nameservers the destination assigned. */
|
|
97
|
+
targetNameservers: string[];
|
|
98
|
+
/** Nameservers the registrar had when this ran. */
|
|
99
|
+
currentNameservers: string[];
|
|
100
|
+
records: DelegationRecordOutcome[];
|
|
101
|
+
/** Planned records that are absent or wrong at the destination. */
|
|
102
|
+
missing: DnsRecord[];
|
|
103
|
+
warnings: string[];
|
|
104
|
+
}
|
|
105
|
+
/** Nameserver sets, compared as sets — order and trailing dots are noise. */
|
|
106
|
+
export declare function sameNameservers(a: string[], b: string[]): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Move `domain` onto `host`, and point `registrar` at it once that is safe.
|
|
109
|
+
*/
|
|
110
|
+
export declare function delegateZone(options: DelegationOptions): Promise<DelegationReport>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/dns/index.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export { GoDaddyProvider } from './godaddy';
|
|
|
8
8
|
export { CloudflareProvider } from './cloudflare';
|
|
9
9
|
export type { DeclaredRecord, DeclaredRecordInput, DeclaredRecordOutcome, DeclaredRecordsReport, } from './declared-records';
|
|
10
10
|
export { policyTag, qualifyName, reconcileDeclaredRecords, resolveDeclaredRecords, } from './declared-records';
|
|
11
|
+
export type { DelegationOptions, DelegationRecordOutcome, DelegationReport, DelegationStatus, NameserverRegistrar, ZoneHost, } from './delegation';
|
|
12
|
+
export { delegateZone, isNameserverRegistrar, isZoneHost, sameNameservers, } from './delegation';
|
|
13
|
+
export type { DelegationConfig, DelegationCredentials, DelegationSkipped, } from './delegate-from-config';
|
|
14
|
+
export { delegateZoneFromConfig, describeDelegation, } from './delegate-from-config';
|
|
11
15
|
export { Route53Provider } from './route53-adapter';
|
|
12
16
|
export type { MigratedRecord, SkippedRecord, ZoneMigrationPlan, ZoneMigrationReport, ZoneParityReport, } from './zone-migration';
|
|
13
17
|
export { applyZoneMigration, exportRoute53Zone, planZoneMigration, verifyZoneParity, } from './zone-migration';
|
package/dist/dns/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{tt,ie,ke,Be,Tt,hn,rs,ns,nr,ir,fn,sr,is,ss,he,os,as,cs,ds,se,ls,us,ps,T,Oa,An,La}from"../chunk-j4ed179k.js";import"../chunk-65ajja2a.js";import"../chunk-2s65yj3g.js";export{Be as CloudflareProvider,An as DnsProviderFactory,ke as GoDaddyProvider,tt as PROXIABLE_RECORD_TYPES,ie as PorkbunProvider,he as Route53Provider,se as UnifiedDnsValidator,cs as applyZoneMigration,T as createDnsProvider,us as createGoDaddyValidator,ls as createPorkbunValidator,ps as createRoute53Validator,sr as delegateZone,is as delegateZoneFromConfig,ss as describeDelegation,Oa as detectDnsProvider,La as dnsProviders,os as exportRoute53Zone,nr as isNameserverRegistrar,ir as isZoneHost,as as planZoneMigration,Tt as policyTag,hn as qualifyName,ns as reconcileDeclaredRecords,rs as resolveDeclaredRecords,fn as sameNameservers,ds as verifyZoneParity};
|
package/dist/drivers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{In,wt,ar,Rt,Sn,Cn,bn,En,su,Ua,z,lr,qm,vn,Qa,xe,Ae,_e,N,ur,Tn,pr,ae,Ha,wn,Ga,Rn,qa,gr,ja,Oe,K,za,rt,Le,$e,nt,ye,hs,Ka,ou,au,Wa,cu,it,Dn,Ja,du,lu,Xa,mr,Ie,Ya,uu,pu,fs,Pn,st,gu,mu,hu,fu,Au,yu,Iu,Su,Cu,Nn,kn,Bn,xn,_n,On,Ln,bu,Eu,hr,k,As,vu,Tu,wu,Za,Ru,Du,Vm,ec,jm,zm,Pu,Nu,Km,Wm,Jm,tc,ku,Xm,Ym,Zm,$n,Mn,Un,Qn,rc,nc,ic,sc,eh,Hn,Gn,qn,Vn,oc,ac,jn,Ss,lc,Kn,uc,th,rh,nh,ih}from"../chunk-vk513ge7.js";import"../chunk-dzqz1sm0.js";import"../chunk-0g2jkhy5.js";import"../chunk-6gtqjsg9.js";import"../chunk-2s65yj3g.js";import"../chunk-m5r0dt28.js";import"../chunk-y13zcbnp.js";export{sc as AwsBoxProvisioner,ur as AwsDriver,wu as BOOT_PARTITION_LABEL,As as CloudDriverFactory,Cn as DEFAULT_RPX_CERTS_DIR,Tu as FIRST_BOOT_SCRIPT_PATH,ic as HetznerBoxProvisioner,gr as HetznerClient,ye as HetznerDriver,za as LEGACY_DRIVER_STATE_DIR,hs as LocalBoxDriver,rh as MANAGED_CACHE_POLICY_DISABLED,th as MANAGED_CACHE_POLICY_OPTIMIZED,nh as MANAGED_ORIGIN_REQUEST_POLICY_ALL_VIEWER,pu as RASPBERRY_PI_DEFAULT_SWAP_GB,qa as REMOTE_SCRIPT_RUNNER,vn as RPX_DIR,Qa as RPX_LAUNCHER_PATH,xe as RPX_SERVICE_NAME,Ya as SSH_BOOTSTRAP_MARKER_DIR,Ie as SSH_BOOTSTRAP_VERSION,st as SSH_DEFAULTS,Ln as SSH_DEPLOY_STORAGE_PATH,ou as SSH_INSECURE_HOST_KEY_OPTS,au as SSH_KEEPALIVE_OPTS,kn as SSH_PREFLIGHT_SCRIPT,bu as SSH_SKIP_BOOTSTRAP_ENV,hr as SshDriver,mr as SystemSshTransport,rc as UBUNTU_2404_AMI_PARAM,Zm as acquireResizeLock,Km as applyHetznerHostOptimization,fs as assertArchSupported,Eu as assertSshComputeConfig,oc as buildAwsArtifactFetch,nc as buildBoxUserData,ih as buildCloudFrontOriginConfig,Za as buildCloudInitFirstBoot,Nu as buildHetznerHostOptimizationScript,jn as buildHostCleanupScript,ac as buildLocalArtifactFetch,z as buildRpxConfig,_e as buildRpxFragmentRefreshScript,lr as buildRpxLbConfig,Ae as buildRpxProvisionScript,cu as buildScpArgsFor,Gn as buildSiteDeployScript,Tn as buildSshArgs,Wa as buildSshArgsFor,Pn as buildSshBootstrapScript,qn as buildStaticSiteDeployScript,vu as cloudDrivers,Wm as collectHetznerHostOptimizationReport,ec as collectHetznerResizeManifest,eh as createBoxProvisioner,k as createCloudDriver,lc as deployAllComputeSites,Ss as deploySiteRelease,Ua as deriveRouteId,In as describeScriptSyntaxError,rt as driverStateDir,Le as driverStatePath,Mn as ensureFirewall,Un as ensureServer,$n as ensureSshKey,xn as evaluatePreflight,Vm as executeHetznerServerResize,lu as findKnownHostKey,On as formatPreflightFindings,wt as formatSshFailure,En as gatewayHostnames,N as generateUbuntuAppCloudInit,bn as hasAutoWwwVariant,Ka as isBoxMode,Du as isHetznerCapacityError,Sn as isLocalDatabase,du as knownHostsLine,Ja as knownHostsToken,su as normalizeRoutePath,Oe as normalizeSshPublicKey,Bn as parsePreflightFacts,Ru as planHetznerServerResize,_n as preflightFailed,jm as prepareHetznerResize,$e as readDriverState,Xm as readResizeCheckpoint,Vn as releaseTarballTmpPath,Kn as reloadRpxGateway,Rn as remoteScriptRunner,qm as renderRpxLauncher,uc as renewRpxCertificates,tc as resizeCheckpointPath,ku as resizeLockPath,Hn as resolveExecStart,ja as resolveHetznerApiToken,Pu as resolveHetznerHostOptimizationPlan,Au as resolveSshHostKeyPolicy,gu as resolveSshHosts,Cu as resolveSshLan,hu as resolveSshPort,fu as resolveSshPrivateKeyPath,Iu as resolveSshProfile,Su as resolveSshPublicIp,Nn as resolveSshSettings,yu as resolveSshSudo,mu as resolveSshUser,Dn as scanHostKey,Ha as scpUpload,Qn as serverPublicIpv4,uu as sshBootstrapMarkerPath,pr as sshExec,ae as sshExecOrThrow,it as sshHostKeyFingerprint,Xa as sshKnownHostsPath,Rt as summarizeRemoteFailures,ar as surfaceRemoteNotices,Jm as verifyHetznerHostOptimization,zm as verifyHetznerResize,Ga as waitForCloudInit,wn as waitForSsh,K as wrapCloudInitUserData,nt as writeDriverState,Ym as writeResizeCheckpoint};
|
|
@@ -415,6 +415,23 @@ export interface BuildRpxProvisionOptions {
|
|
|
415
415
|
* {@link RASPBERRY_PI_PROXY_MEMORY}.
|
|
416
416
|
*/
|
|
417
417
|
profile?: 'raspberry-pi' | 'generic';
|
|
418
|
+
/**
|
|
419
|
+
* Is this project a TENANT on a box another project owns (`cloud.attachTo`)?
|
|
420
|
+
*
|
|
421
|
+
* A tenant publishes its own routes and its own certificate renewal, and
|
|
422
|
+
* nothing else. The rpx install, the compiled launcher and the systemd unit
|
|
423
|
+
* are box-wide and belong to the owner: a tenant that rewrites them imposes
|
|
424
|
+
* its `proxy.version`, its memory ceilings and its pool settings on every
|
|
425
|
+
* other project sharing the machine.
|
|
426
|
+
*
|
|
427
|
+
* That was not theoretical. One tenant of an eight-tenant box pinned
|
|
428
|
+
* `proxy.version: '0.11.45'`, so each of its deploys reinstalled and
|
|
429
|
+
* recompiled the shared gateway at that release - rolling the box back from
|
|
430
|
+
* 0.11.52 twice in one evening and re-breaking a redirect fix that had just
|
|
431
|
+
* shipped, for every tenant at once. Nobody could see it from the tenant's
|
|
432
|
+
* config, which reads like a local setting.
|
|
433
|
+
*/
|
|
434
|
+
tenant?: boolean;
|
|
418
435
|
}
|
|
419
436
|
/**
|
|
420
437
|
* Gateway cgroup ceilings by host profile.
|
package/dist/index.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export type { CreateCloudDriverOptions } from './drivers/factory';
|
|
|
44
44
|
export type { DriverState, FirstBootBundle, FirstBootIdentity, FirstBootOs, ResolvedSshSettings, SshDriverOptions, SshDriverState, SshPreflightFacts, SshTransport, SshTransportOptions, } from './drivers';
|
|
45
45
|
export { dashboardActions, resolveDashboardAction, sanitizeCloudConfig, startLocalDashboardServer, } from './deploy/local-dashboard-server';
|
|
46
46
|
export type { DashboardAction, LocalDashboardServer, LocalDashboardServerOptions, } from './deploy/local-dashboard-server';
|
|
47
|
-
export { createDnsProvider, detectDnsProvider, DnsProviderFactory, dnsProviders, PorkbunProvider, GoDaddyProvider, Route53Provider, CloudflareProvider, policyTag, qualifyName, reconcileDeclaredRecords, resolveDeclaredRecords, UnifiedDnsValidator, createPorkbunValidator, createGoDaddyValidator, createRoute53Validator, } from './dns';
|
|
47
|
+
export { createDnsProvider, detectDnsProvider, DnsProviderFactory, dnsProviders, PorkbunProvider, GoDaddyProvider, Route53Provider, CloudflareProvider, delegateZone, delegateZoneFromConfig, describeDelegation, isNameserverRegistrar, isZoneHost, policyTag, qualifyName, reconcileDeclaredRecords, resolveDeclaredRecords, sameNameservers, UnifiedDnsValidator, createPorkbunValidator, createGoDaddyValidator, createRoute53Validator, } from './dns';
|
|
48
48
|
export type { CloudflareProviderOptions, CloudflareRule, CloudflareRulesetPhase, CloudflareZoneSetting, } from './dns/cloudflare';
|
|
49
49
|
export { CLOUDFLARE_MANAGED_RULE_PREFIX } from './dns/cloudflare';
|
|
50
50
|
export * from './source';
|