@stacksjs/ts-cloud 0.16.25 → 0.16.27
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/client.d.ts +6 -0
- package/dist/aws/cloudfront.d.ts +88 -49
- package/dist/aws/index.js +1 -1
- package/dist/bin/{chunk-fdsh3m2q.js → chunk-0hbrkdrc.js} +1 -1
- package/dist/bin/{chunk-h1618tyv.js → chunk-10dnawvx.js} +1 -1
- package/dist/bin/{chunk-w23en85y.js → chunk-13htvxgc.js} +1 -1
- package/dist/bin/{chunk-9066j2kz.js → chunk-2857cbf1.js} +1 -1
- package/dist/bin/chunk-2ar52zq0.js +1 -0
- package/dist/bin/{chunk-mdbzfvba.js → chunk-2chec65b.js} +1 -1
- package/dist/bin/{chunk-p1cv4n00.js → chunk-45v1azhc.js} +1 -1
- package/dist/bin/{chunk-ntmnpteh.js → chunk-494fg5c6.js} +8 -8
- package/dist/bin/{chunk-t5gkbppg.js → chunk-4a8qt6e8.js} +12 -12
- package/dist/bin/chunk-4fwbwjjj.js +1 -0
- package/dist/bin/chunk-57f4mqzk.js +1 -0
- package/dist/bin/{chunk-v4e4726j.js → chunk-5810132y.js} +1 -1
- package/dist/bin/{chunk-tnzp96vn.js → chunk-66f51kn2.js} +1 -1
- package/dist/bin/{chunk-21jwbrap.js → chunk-817q3s2p.js} +1 -1
- package/dist/bin/{chunk-n5zwm2z4.js → chunk-8k87zpnp.js} +1 -1
- package/dist/bin/chunk-ank4fmbx.js +1 -0
- package/dist/bin/{chunk-y6rgvb7r.js → chunk-az5vvf5d.js} +1 -1
- package/dist/bin/chunk-azcxgwhm.js +1 -0
- package/dist/bin/{chunk-db9zx72q.js → chunk-b4p9zknk.js} +1 -1
- package/dist/bin/{chunk-nxyhheav.js → chunk-cgyqnbcm.js} +1 -1
- package/dist/bin/{chunk-78tzgf65.js → chunk-djtt70tn.js} +1 -1
- package/dist/bin/{chunk-0xxc6dy8.js → chunk-e3tjy3wg.js} +1 -1
- package/dist/bin/chunk-eshss5qy.js +2 -0
- package/dist/bin/chunk-f922vrbs.js +1 -0
- package/dist/bin/{chunk-8wnpx6n2.js → chunk-ffyhp5tk.js} +10 -10
- package/dist/bin/{chunk-z96ssb7e.js → chunk-hvd87xj9.js} +1 -1
- package/dist/bin/chunk-jxyt009c.js +1 -0
- package/dist/bin/chunk-k0akp8k0.js +1 -0
- package/dist/bin/{chunk-4r46kw46.js → chunk-k545r9bk.js} +1 -1
- package/dist/bin/chunk-k6dxgzm6.js +1 -0
- package/dist/bin/{chunk-n8ya6q6d.js → chunk-kbwczaa8.js} +1 -1
- package/dist/bin/{chunk-dh6kj6ce.js → chunk-kcprsn33.js} +1 -1
- package/dist/bin/{chunk-y4g86dpe.js → chunk-kfj4w903.js} +2 -2
- package/dist/bin/{chunk-td8zgch7.js → chunk-ne5zevtf.js} +2 -2
- package/dist/bin/{chunk-5mk3sxpw.js → chunk-qfgvvwmb.js} +1 -1
- package/dist/bin/{chunk-1j9vy88a.js → chunk-qx05kccj.js} +1 -1
- package/dist/bin/{chunk-mfer1e5z.js → chunk-qxssaa4s.js} +1 -1
- package/dist/bin/{chunk-82sbpydz.js → chunk-rfvx641h.js} +1 -1
- package/dist/bin/{chunk-6nm91cfw.js → chunk-s5hq7v1h.js} +1 -1
- package/dist/bin/chunk-s7gk1qx2.js +1 -0
- package/dist/bin/{chunk-3jjggqfj.js → chunk-st7s9k78.js} +1 -1
- package/dist/bin/chunk-t644w5rw.js +1 -0
- package/dist/bin/chunk-twq6s0nd.js +1 -0
- package/dist/bin/chunk-vknq0ap2.js +1 -0
- package/dist/bin/{chunk-9rya3733.js → chunk-vsgq1d3s.js} +50 -50
- package/dist/bin/{chunk-gj530nqd.js → chunk-x2r1zm2r.js} +1 -1
- package/dist/bin/{chunk-3kvz4kyq.js → chunk-x6y663t7.js} +1 -1
- package/dist/bin/{chunk-q3xwh0r8.js → chunk-y5e7dmvc.js} +4 -4
- package/dist/bin/{chunk-2q27v6vz.js → chunk-ypsgkj91.js} +1 -1
- package/dist/bin/chunk-za9np4pg.js +1 -0
- package/dist/bin/chunk-zqa6jarz.js +1 -0
- package/dist/bin/{chunk-hwqvx1zb.js → chunk-zrjf1pqy.js} +1 -1
- package/dist/bin/{chunk-mrte8smv.js → chunk-zvt7as22.js} +1 -1
- package/dist/bin/cli.js +375 -375
- package/dist/bin/dashboard-server.js +1 -1
- package/dist/chunk-2p85fnx5.js +1 -0
- package/dist/chunk-3q242cqb.js +1 -0
- package/dist/{chunk-7p1653g6.js → chunk-4ka2s5d8.js} +2 -2
- package/dist/{chunk-wrpnnrdf.js → chunk-55yda01s.js} +4 -4
- package/dist/{chunk-r1730x8g.js → chunk-6eqx6gt8.js} +2 -2
- package/dist/{chunk-0p7ddjt6.js → chunk-818d8w7e.js} +1 -1
- package/dist/{chunk-x9bpm5s1.js → chunk-bx1znp1q.js} +1 -1
- package/dist/chunk-cykr6zyj.js +1 -0
- package/dist/{chunk-setpnrtg.js → chunk-cymsceq6.js} +1 -1
- package/dist/{chunk-3zv0e36t.js → chunk-dygr8ewz.js} +1 -1
- package/dist/{chunk-jwx5t3vf.js → chunk-fvgk05df.js} +9 -9
- package/dist/{chunk-e4z4tfh6.js → chunk-h5gvh859.js} +1 -1
- package/dist/chunk-mqscxx2z.js +1 -0
- package/dist/{chunk-826gp2kd.js → chunk-ne0e6484.js} +5 -5
- package/dist/{chunk-5db32a4x.js → chunk-njz7scff.js} +1 -1
- package/dist/{chunk-2nma0bd8.js → chunk-q70pfhcn.js} +1 -1
- package/dist/{chunk-08tswmb3.js → chunk-qx6nwvgn.js} +1 -1
- package/dist/{chunk-e44ajkha.js → chunk-twj83txn.js} +1 -1
- package/dist/{chunk-tvwrthfq.js → chunk-wyfpz6be.js} +1 -1
- package/dist/{chunk-dm6kyz6e.js → chunk-ys5318bg.js} +1 -1
- package/dist/deploy/index.js +1 -1
- package/dist/dns/index.js +1 -1
- package/dist/drivers/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/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 +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 +5 -5
- 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 +5 -5
- 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 +6 -6
- package/dist/ui/server/activity.html +1 -1
- 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 +5 -5
- package/dist/ui/server/fleet.html +6 -6
- package/dist/ui/server/logs.html +6 -6
- package/dist/ui/server/metrics.html +6 -6
- 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 +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 +6 -6
- package/package.json +3 -3
- package/dist/bin/chunk-0cwbg3pf.js +0 -1
- package/dist/bin/chunk-19tmmwmt.js +0 -1
- package/dist/bin/chunk-4261t3bq.js +0 -1
- package/dist/bin/chunk-4a98nszr.js +0 -1
- package/dist/bin/chunk-ajv4z454.js +0 -1
- package/dist/bin/chunk-aqreqn37.js +0 -1
- package/dist/bin/chunk-cnmngqqg.js +0 -1
- package/dist/bin/chunk-dhj4786e.js +0 -1
- package/dist/bin/chunk-eh3235zq.js +0 -1
- package/dist/bin/chunk-es4sdbrr.js +0 -1
- package/dist/bin/chunk-g0gqwszk.js +0 -1
- package/dist/bin/chunk-hje6rsxj.js +0 -2
- package/dist/bin/chunk-ksfr2ya8.js +0 -1
- package/dist/bin/chunk-mh172wt8.js +0 -1
- package/dist/bin/chunk-s7axkfrs.js +0 -1
- package/dist/bin/chunk-yavtz60y.js +0 -1
- package/dist/chunk-31qham3c.js +0 -1
- package/dist/chunk-7fbfmpyx.js +0 -1
- package/dist/chunk-dschvakr.js +0 -1
- package/dist/chunk-kmwnzw91.js +0 -1
package/dist/aws/client.d.ts
CHANGED
|
@@ -92,6 +92,12 @@ export interface AWSError extends Error {
|
|
|
92
92
|
export declare function coerceXmlValues(node: any): any;
|
|
93
93
|
export declare class AWSClient {
|
|
94
94
|
private credentials?;
|
|
95
|
+
/**
|
|
96
|
+
* Where the credentials came from, named in the error when AWS rejects them.
|
|
97
|
+
* Several sources are tried in order and the first wins silently, so a stale
|
|
98
|
+
* profile and a stale .env key both surfaced as a bare InvalidClientTokenId.
|
|
99
|
+
*/
|
|
100
|
+
private credentialSource;
|
|
95
101
|
private config;
|
|
96
102
|
private cache;
|
|
97
103
|
private xmlParser;
|
package/dist/aws/cloudfront.d.ts
CHANGED
|
@@ -55,6 +55,93 @@ export interface Distribution {
|
|
|
55
55
|
};
|
|
56
56
|
Enabled: boolean;
|
|
57
57
|
}
|
|
58
|
+
/** A repeated XML element as AWSClient parses it: one occurrence is a bare value, several an array. */
|
|
59
|
+
export type XmlList<T> = T | T[];
|
|
60
|
+
/**
|
|
61
|
+
* CloudFront's `<Quantity>`/`<Items>` wrapper as AWSClient parses it. `Items`
|
|
62
|
+
* holds the repeated element under its own name (`{ Method: [..] }`, never a
|
|
63
|
+
* bare array), and is absent when Quantity is 0.
|
|
64
|
+
*/
|
|
65
|
+
export interface CloudFrontItems<Element extends string, T> {
|
|
66
|
+
Quantity: number;
|
|
67
|
+
Items?: {
|
|
68
|
+
[K in Element]: XmlList<T>;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** A cache behavior as it appears in a parsed distribution config. */
|
|
72
|
+
export interface RawCacheBehavior {
|
|
73
|
+
TargetOriginId: string;
|
|
74
|
+
ViewerProtocolPolicy: string;
|
|
75
|
+
/** CachedMethods is nested inside AllowedMethods, as in the XML, not beside it. */
|
|
76
|
+
AllowedMethods?: CloudFrontItems<'Method', string> & {
|
|
77
|
+
CachedMethods?: CloudFrontItems<'Method', string>;
|
|
78
|
+
};
|
|
79
|
+
CachePolicyId?: string;
|
|
80
|
+
OriginRequestPolicyId?: string;
|
|
81
|
+
ResponseHeadersPolicyId?: string;
|
|
82
|
+
Compress?: boolean;
|
|
83
|
+
SmoothStreaming?: boolean;
|
|
84
|
+
FieldLevelEncryptionId?: string;
|
|
85
|
+
FunctionAssociations?: CloudFrontItems<'FunctionAssociation', {
|
|
86
|
+
EventType: string;
|
|
87
|
+
FunctionARN: string;
|
|
88
|
+
}>;
|
|
89
|
+
LambdaFunctionAssociations?: CloudFrontItems<'LambdaFunctionAssociation', Record<string, any>>;
|
|
90
|
+
ForwardedValues?: Record<string, any>;
|
|
91
|
+
TrustedSigners?: Record<string, any>;
|
|
92
|
+
TrustedKeyGroups?: Record<string, any>;
|
|
93
|
+
MinTTL?: number;
|
|
94
|
+
DefaultTTL?: number;
|
|
95
|
+
MaxTTL?: number;
|
|
96
|
+
[field: string]: any;
|
|
97
|
+
}
|
|
98
|
+
/** An origin as it appears in a parsed distribution config. */
|
|
99
|
+
export interface RawOrigin {
|
|
100
|
+
Id: string;
|
|
101
|
+
DomainName: string;
|
|
102
|
+
OriginPath?: string;
|
|
103
|
+
OriginAccessControlId?: string;
|
|
104
|
+
S3OriginConfig?: {
|
|
105
|
+
OriginAccessIdentity?: string;
|
|
106
|
+
};
|
|
107
|
+
CustomOriginConfig?: Record<string, any>;
|
|
108
|
+
ConnectionAttempts?: number;
|
|
109
|
+
ConnectionTimeout?: number;
|
|
110
|
+
[field: string]: any;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A distribution config exactly as getDistributionConfig returns it: the parsed
|
|
114
|
+
* XML, kept raw so it can be PUT back. Every list is a CloudFrontItems node,
|
|
115
|
+
* and numeric text is a number (so a numeric CallerReference is a number).
|
|
116
|
+
* Fields not listed here pass through untouched.
|
|
117
|
+
*/
|
|
118
|
+
export interface RawDistributionConfig {
|
|
119
|
+
CallerReference: string | number;
|
|
120
|
+
Comment?: string;
|
|
121
|
+
Enabled: boolean;
|
|
122
|
+
Origins: CloudFrontItems<'Origin', RawOrigin>;
|
|
123
|
+
DefaultCacheBehavior: RawCacheBehavior;
|
|
124
|
+
CacheBehaviors?: CloudFrontItems<'CacheBehavior', RawCacheBehavior & {
|
|
125
|
+
PathPattern: string;
|
|
126
|
+
}>;
|
|
127
|
+
Aliases?: CloudFrontItems<'CNAME', string>;
|
|
128
|
+
CustomErrorResponses?: CloudFrontItems<'CustomErrorResponse', {
|
|
129
|
+
ErrorCode: number;
|
|
130
|
+
ResponsePagePath?: string;
|
|
131
|
+
ResponseCode?: number | string;
|
|
132
|
+
ErrorCachingMinTTL?: number;
|
|
133
|
+
}>;
|
|
134
|
+
DefaultRootObject?: string;
|
|
135
|
+
PriceClass?: string;
|
|
136
|
+
HttpVersion?: string;
|
|
137
|
+
IsIPV6Enabled?: boolean;
|
|
138
|
+
WebACLId?: string;
|
|
139
|
+
ViewerCertificate?: Record<string, any>;
|
|
140
|
+
Restrictions?: Record<string, any>;
|
|
141
|
+
Logging?: Record<string, any>;
|
|
142
|
+
OriginGroups?: Record<string, any>;
|
|
143
|
+
[field: string]: any;
|
|
144
|
+
}
|
|
58
145
|
/**
|
|
59
146
|
* CloudFront client using direct API calls
|
|
60
147
|
*/
|
|
@@ -111,55 +198,7 @@ export declare class CloudFrontClient {
|
|
|
111
198
|
*/
|
|
112
199
|
getDistributionConfig(distributionId: string): Promise<{
|
|
113
200
|
ETag: string;
|
|
114
|
-
DistributionConfig:
|
|
115
|
-
Origins: {
|
|
116
|
-
Quantity: number;
|
|
117
|
-
Items: any;
|
|
118
|
-
};
|
|
119
|
-
DefaultCacheBehavior: {
|
|
120
|
-
TargetOriginId: string;
|
|
121
|
-
ViewerProtocolPolicy: string;
|
|
122
|
-
AllowedMethods?: {
|
|
123
|
-
Quantity: number;
|
|
124
|
-
Items: string[];
|
|
125
|
-
};
|
|
126
|
-
CachedMethods?: {
|
|
127
|
-
Quantity: number;
|
|
128
|
-
Items: string[];
|
|
129
|
-
};
|
|
130
|
-
ForwardedValues?: any;
|
|
131
|
-
TrustedSigners?: any;
|
|
132
|
-
MinTTL?: number;
|
|
133
|
-
DefaultTTL?: number;
|
|
134
|
-
MaxTTL?: number;
|
|
135
|
-
};
|
|
136
|
-
CacheBehaviors?: {
|
|
137
|
-
Quantity: number;
|
|
138
|
-
Items: Array<{
|
|
139
|
-
PathPattern: string;
|
|
140
|
-
TargetOriginId: string;
|
|
141
|
-
ViewerProtocolPolicy: string;
|
|
142
|
-
AllowedMethods?: {
|
|
143
|
-
Quantity: number;
|
|
144
|
-
Items: string[];
|
|
145
|
-
};
|
|
146
|
-
CachedMethods?: {
|
|
147
|
-
Quantity: number;
|
|
148
|
-
Items: string[];
|
|
149
|
-
};
|
|
150
|
-
ForwardedValues?: any;
|
|
151
|
-
MinTTL?: number;
|
|
152
|
-
DefaultTTL?: number;
|
|
153
|
-
MaxTTL?: number;
|
|
154
|
-
}>;
|
|
155
|
-
};
|
|
156
|
-
Aliases?: {
|
|
157
|
-
Quantity: number;
|
|
158
|
-
Items: string[];
|
|
159
|
-
};
|
|
160
|
-
Comment?: string;
|
|
161
|
-
Enabled: boolean;
|
|
162
|
-
};
|
|
201
|
+
DistributionConfig: RawDistributionConfig;
|
|
163
202
|
}>;
|
|
164
203
|
/**
|
|
165
204
|
* Invalidate all files
|
package/dist/aws/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ae,nr,ls,us,bu,Qa,Ha,ps,gs,Ga,tt,z,rt,se,b,ye,An,qa,Oe,Va,yn,In,Sn,vh,Th,Ny,ky,By,_y,wt,xy,Oy,Ly,$y,Rt,wh,Rh,Dh,Dt,Ph,Nh,kh,Cn,My,Fy,Uy,ir,Qy,Hy,Gy,ja,za,vu,qy,Vy,jy,sr,Bh,_h,or,nt,En,Ka,Tu,zy,wu,Ky,Pt,Wy,Jy,Xy,Yy,ae,Zy,eI,tI,rI,ar,nI,iI,sI,bn,Wa,Ja,Ru,Du,Xa,cr}from"../chunk-
|
|
1
|
+
import{Ae,nr,ls,us,bu,Qa,Ha,ps,gs,Ga,tt,z,rt,se,b,ye,An,qa,Oe,Va,yn,In,Sn,vh,Th,Ny,ky,By,_y,wt,xy,Oy,Ly,$y,Rt,wh,Rh,Dh,Dt,Ph,Nh,kh,Cn,My,Fy,Uy,ir,Qy,Hy,Gy,ja,za,vu,qy,Vy,jy,sr,Bh,_h,or,nt,En,Ka,Tu,zy,wu,Ky,Pt,Wy,Jy,Xy,Yy,ae,Zy,eI,tI,rI,ar,nI,iI,sI,bn,Wa,Ja,Ru,Du,Xa,cr}from"../chunk-818d8w7e.js";import{Ie,it,vn,xh}from"../chunk-dygr8ewz.js";import{y}from"../chunk-fvgk05df.js";import{Le}from"../chunk-ys5318bg.js";import{K}from"../chunk-wyfpz6be.js";import{st,ce,$e,Se,Nt,wn,hs,fs,dr,lr,Rn,ur,As,ys,Is,Ss,W,Cs,Es,bs,vs,de,Ts,ws,Rs,R,ec,Dn,tc,le,pr}from"../chunk-cymsceq6.js";import{S}from"../chunk-njz7scff.js";import{Tr,we}from"../chunk-bx1znp1q.js";import{f}from"../chunk-qx6nwvgn.js";import{o}from"../chunk-q70pfhcn.js";import{Rr,di,n,l,tf}from"../chunk-55yda01s.js";export{le as ACMClient,pr as ACMDnsValidator,n as AWSClient,Ka as ApplicationAutoScalingClient,nr as AwsBackupClient,Th as BedrockAgentClient,vh as BedrockAgentRuntimeClient,Sn as BedrockClient,In as BedrockRuntimeClient,f as CloudFormationClient,y as CloudFrontClient,ye as CloudWatchLogsClient,Se as CloudflareProvider,wt as ComprehendClient,An as ConnectClient,gs as CostExplorerClient,Dn as DnsProviderFactory,Oe as DynamoDBClient,Tr as EC2Client,Le as ECRClient,tt as ECSClient,cr as EFSClient,qa as ELBv2Client,nt as ElastiCacheClient,vn as EmailClient,or as EventBridgeClient,$e as GoDaddyProvider,Ie as IAMClient,Tu as ImapServer,sr as KendraClient,b as LambdaClient,Va as OpenSearchClient,st as PROXIABLE_RECORD_TYPES,ja as PersonalizeClient,vu as PersonalizeEventsClient,za as PersonalizeRuntimeClient,Cn as PollyClient,ce as PorkbunProvider,K as RDSClient,Rt as RekognitionClient,S as Route53Client,Ga as Route53DomainsClient,W as Route53Provider,o as S3Client,it as SESClient,rt as SNSClient,se as SQSClient,we as SSMClient,Ae as STSClient,En as SchedulerClient,z as SecretsManagerClient,Pt as SmsClient,Xa as SmsVoiceClient,wu as SmtpServer,bn as SupportClient,Wa as SupportTemplates,Dt as TextractClient,yn as TranscribeClient,ir as TranslateClient,de as UnifiedDnsValidator,ar as VoiceClient,xy as analyzeSentiment,Is as applyDeclaredZoneSettings,bs as applyZoneMigration,l as buildQueryParams,di as coerceXmlValues,By as completeWithClaude,$y as containsPii,Rh as countFacesInS3Image,Yy as createDeliveryReceiptHandler,R as createDnsProvider,ws as createGoDaddyValidator,ps as createObjectStorageClient,Ts as createPorkbunValidator,iI as createRecordingHandler,Rs as createRoute53Validator,Uy as createSSML,Jy as createScheduledSmsHandler,Xy as createSmsClient,Wy as createSmsInboxHandler,Du as createSmsInfrastructure,sI as createVoiceClient,nI as createVoicemailHandler,ur as delegateZone,As as delegateZoneFromConfig,ys as describeDelegation,Ss as describeZoneSettings,tf as detectCredentialSource,ec as detectDnsProvider,wh as detectLabelsFromS3,Ly as detectLanguage,tc as dnsProviders,xh as email,Cs as exportRoute53Zone,Oy as extractEntities,Nh as extractFormsFromS3,kh as extractTablesFromS3,Ph as extractTextFromS3,Zy as formatPhoneNumber,_y as generateEmbeddings,tI as getCountryCode,qy as getRecommendations,Vy as getSimilarItems,Ru as getSmsInfrastructureStatus,Dh as isContentSafe,dr as isNameserverRegistrar,rI as isSamePhoneNumber,eI as isValidPhoneNumber,lr as isZoneHost,us as keyMatchesFilters,ky as listClaudeModels,Gy as listLanguages,Fy as listVoices,bu as migrateObjectStorage,ae as normalizePhoneNumber,Es as planZoneMigration,Nt as policyTag,Qa as providerEndpoint,wn as qualifyName,fs as reconcileDeclaredRecords,ls as remapKey,Ny as requestModelAccess,hs as resolveDeclaredRecords,Ha as resolveObjectStorage,Rr as resolveS3Endpoint,_h as retrieveForRag,Rn as sameNameservers,Bh as search,Ja as setupSmsInfrastructure,zy as startImapServer,Ky as startSmtpServer,My as textToSpeech,jy as trackEvent,Qy as translate,Hy as translateToMultiple,vs as verifyZoneParity};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{J,U,di,Os,Bt,uc}from"./chunk-
|
|
1
|
+
import{J,U,di,Os,Bt,uc}from"./chunk-e3tjy3wg.js";function c(e){return`'${e.split("'").join("'\\''")}'`}function m(e){let r=e.user||"root",s=e.script.join(`
|
|
2
2
|
`),t=r==="root"?'bash -l "$TS_CLOUD_RECIPE"':`runuser -l ${c(r)} -c "bash $TS_CLOUD_RECIPE"`;return["set -uo pipefail",`echo "__TS_CLOUD_RECIPE_BEGIN__ ${e.name} (user=${r})"`,"TS_CLOUD_RECIPE=$(mktemp)",`cat > "$TS_CLOUD_RECIPE" <<'TS_CLOUD_RECIPE_EOF'`,s,"TS_CLOUD_RECIPE_EOF",'chmod +r "$TS_CLOUD_RECIPE"',t,"TS_CLOUD_RC=$?",'rm -f "$TS_CLOUD_RECIPE"',`echo "__TS_CLOUD_RECIPE_END__ ${e.name} exit=$TS_CLOUD_RC"`,"exit $TS_CLOUD_RC"]}var l={info:()=>{},warn:()=>{},error:()=>{},step:()=>{},success:()=>{}};async function i(e){return await e.driver.findComputeTargets({slug:e.slug,environment:e.environment,role:e.role||"app"})}async function Ds(e,r){let s=e.logger||l,t=await i(e);if(t.length===0)return{success:!1,error:`No '${e.role||"app"}' servers found for ${e.slug}/${e.environment}.`};let n=J(e.slug,r.siteName),u=Bt(n,r.to||"unused"),o=["set -uo pipefail",...uc(u,{...r.to?{to:r.to}:{},unitBase:`${e.slug}-${r.siteName}`}),`(cd ${U} && pantry restart php-fpm) 2>/dev/null || true`,`(cd ${u.current} && eval "$(cd ${U} && pantry env 2>/dev/null)" && php artisan queue:restart) 2>/dev/null || true`];s.step(`Rolling back ${r.siteName}${r.to?` to ${r.to}`:" to the previous release"} on ${t.length} server(s)...`);let a=await e.driver.runRemoteDeploy({targets:t,commands:o,comment:`ts-cloud rollback ${e.slug}/${r.siteName}`,tags:{Project:e.slug,Environment:e.environment,Role:e.role||"app"}});if(!a.success)s.error(`Rollback failed: ${a.error||"unknown error"}`);else s.success(`Rolled back ${r.siteName}.`);return{success:a.success,error:a.error,perInstance:a.perInstance}}async function gp(e,r){let s=await i(e);if(s.length===0)return{success:!1,error:`No '${e.role||"app"}' servers found for ${e.slug}/${e.environment}.`};let t=Os(J(e.slug,r.siteName)),n=Math.max(1,r.limit??20),u=[`[ -f ${t} ] && tail -n ${n} ${t} || echo "no deploy history for ${r.siteName}"`],o=await e.driver.runRemoteDeploy({targets:s,commands:u,comment:`ts-cloud deploy:history ${e.slug}/${r.siteName}`,tags:{Project:e.slug,Environment:e.environment,Role:e.role||"app"}});return{success:o.success,error:o.error,perInstance:o.perInstance}}async function fp(e,r){let s=e.logger||l,t=await i(e);if(t.length===0)return{success:!1,error:`No '${e.role||"app"}' servers found for ${e.slug}/${e.environment}.`};s.step(`Running recipe '${r.name}' as ${r.user||"root"} on ${t.length} server(s)...`);let n=await e.driver.runRemoteDeploy({targets:t,commands:m({name:r.name,script:r.script,user:r.user}),comment:`ts-cloud recipe ${r.name}`,tags:{Project:e.slug,Environment:e.environment,Role:e.role||"app"}});if(!n.success)s.error(`Recipe '${r.name}' failed: ${n.error||"unknown error"}`);else s.success(`Recipe '${r.name}' completed.`);return{success:n.success,error:n.error,perInstance:n.perInstance}}async function ks(e,r){let s=e.logger||l;if(!r.database?.name)return{success:!1,error:"No appDatabase configured to restore."};let t=await i(e);if(t.length===0)return{success:!1,error:`No '${e.role||"app"}' servers found for ${e.slug}/${e.environment}.`};s.step(`Restoring database '${r.database.name}'${r.from?` from ${r.from}`:" from the latest backup"} on ${t.length} server(s)...`);let n=await e.driver.runRemoteDeploy({targets:t,commands:di(r.database,{from:r.from}),comment:`ts-cloud db:restore ${e.slug}/${r.database.name}`,tags:{Project:e.slug,Environment:e.environment,Role:e.role||"app"}});if(!n.success)s.error(`Restore failed: ${n.error||"unknown error"}`);else s.success(`Restored ${r.database.name}.`);return{success:n.success,error:n.error,perInstance:n.perInstance}}
|
|
3
3
|
export{Ds,gp,fp,ks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fc,ae,hc,Rd,yp,fi,Sp,bp,qs,vp,Tp,Ep,wp,Cp,Ap,Ip,yc,Sc,Ws,Gs,Co,et,A,Ks,bc,H,Rr,C,Pd,hi,Js,Xs,F,Ao,Rp,Pp,Np,Dp,l,s,kp,_p,E,Qs,Ys,Zs,xp,$p,De,ea,Io,Nd,Op,Lp,Ue,Et,ta,vc,Tc,Mp,Ec,wc,Cc,ra,Ac,jt,Ro,yi,Po,Si,Be,Dd,No,Do,na,ia,oa,sa,aa,ca,ve,j,S,O,tt,D,kd,wt,ge,Vt,Up,_d,Te,ko,Fe,zt,bi,Ee,_o,ke,xd,vi,we,Ce,re,Ti,X,Ht,Ct,Ae,t,xo,Bp,Ic,la,Fp,jp,Vp,zp,da,Hp,qp,Wp,Gp,Kp,Jp,Xp,Qp,Yp,Zp,em,tm,$d,Od,Ld,Md,Ud,Bd,Fd,qt,Rc,Pc,Pr,Ei,rm,Nc,nm,im,an,om,sm,am,cm,lm,dm,jd,Vd,zd,Hd,qd,$o,um,ua,Wd,Gd,Kd,Dc,Ie,pm,Jd,At,Oo,Nr,Xd,kc,Qd,Yd,Zd,_c,_e,mm,gm,fm,hm,eu,ym,Re,Sm,bm,vm,xc,$c,Tm,Oc,Lc,Em,wm,Cm,Am,Im,tu,pa,Rm,Pm,Nm,Dm,km,ru,nu,_m,xm,$m,Om,Lm,Mm,Um,Bm,Fm,Mc,ma,jm,Vm,zm,Hm,Uc,Bc,Fc,qm,jc,Wm,Gm,Km,Jm,Vc,Xm,Qm,Ym,Zm,eg,tg,rg,ng,iu,ou,su,au,zc,ig,og,sg,ag,cg,lg,dg,ug,pg,cu,lu,du,uu,mg,gg,Hc,fg,qc,Wc,Gc,Kc,hg,yg,Sg,bg,rt,wi,vg,Tg,Eg,wg,Cg,Ag,Ig,Rg,pu,Pg,Ng,Jc,Xc,Dg,kg,mu,_g,xg,$g,Og,Lg,Mg,Ug,Bg,Fg,jg,Vg,zg,Hg,qg,Wg,Gg,Kg,Jg,Xg,Qg,Yg,Qc,Zg,Yc,ef,Zc,tf,el,rf,tl,nf,cn,of,rl,sf,Lo,af,nl,cf,il,lf,ol,df,sl,uf,al,pf,ln,mf,cl,gf,ll,ff,dl,hf,ul,yf,pl,Sf,ml,bf,gl,vf,fl,Tf,hl,Ef,yl,wf,Sl,Cf,bl,Af,vl,If,Tl,Rf,El,Pf,wl,Nf,Cl,Df,Al,kf,Il,_f,Rl,xf,Pl,$f,Nl,Of,Dl,Lf,kl,Mf,_l,Uf,gu,fu,hu,yu,xl,Bf,$l,Ff,Ol,jf,Ll,Vf,Ci,Su,bu,Mo,ga,dn,vu,Uo,Wt,fa,ha,Tu,Eu,Ml,wu,ya,Ul,zf,Hf,Sa,ba,va,Bl,Bo,Fl,jl,Ta,Vl,zl,Hl,Cu,Au,Iu,qf,Ru,Pu,Wf,Nu,ql,Du,ku,_u,Gf,xu,Ai,Ea,$u,Kf,Ou,Fo,jo,wa,Wl,Jf,Gl,Xf,Kl,Qf,Jl,Yf,Xl,Zf}from"./chunk-t5gkbppg.js";export{nl as ABTestManager,Fe as AI,Qd as AWSAPIError,Zc as AWSConfigManager,Bp as AWS_PSEUDO_PARAMETERS,rt as AWS_REGIONS,_o as ApiGateway,xo as Arn,re as AssetHasher,we as Auth,Qc as BackupManager,Ol as BatchProcessingManager,rl as BlueGreenManager,Nl as BounceComplaintHandler,yl as BuildOptimizationManager,Be as CDN,ba as CHAIN_HEADER,ta as CLOUDFRONT_FAILOVER_STATUS_CODES,xg as COMMON_CROSS_ACCOUNT_ROLES,bi as Cache,Lo as CanaryManager,gl as CertificateManager,At as CloudError,Ic as CloudFormationBuilder,Kd as CloudFormationClient,Jd as CloudFrontClient,el as CloudTrailManager,uu as CommandHistory,Ae as Communication,S as Compute,Oo as ConfigurationError,Sl as ContainerRegistryManager,Nr as CredentialError,qc as CrossRegionReferenceManager,Od as DASHBOARD_ENTRY,Ld as DASHBOARD_PORT_BASE,Md as DASHBOARD_PORT_SPAN,$d as DASHBOARD_STATE_DIR,vc as DEFAULT_FAILOVER_STATUS_CODES,Bo as DEFAULT_RECURSION_LIMITS,Re as DEFAULT_SERVICE_LIMITS,yc as DEFAULT_STATE_DIR,Dd as DEFAULT_STORAGE_FAILOVER_STATUS_CODES,Sa as DEPTH_HEADER,$l as DLQMonitoringManager,ve as DNS,Rl as DNSSECManager,zt as Database,ul as DatabaseUserManager,_e as DebugLogger,Nd as DependencyGraph,Ce as Deployment,Xd as DeploymentError,Yc as DisasterRecoveryManager,D as Email,gu as EmailAdvanced,Dl as EmailAnalyticsManager,fu as EmailHandlers,_l as EmailTemplateManager,Yd as ErrorCodes,Do as FAILOVER_REPLICA_POLICY_SID,xl as FIFOQueueManager,xc as FileCache,tt as FileSystem,t as Fn,Wc as GlobalResourceManager,tl as GuardDutyManager,tu as HashCache,Kl as HealthCheckManager,hl as ImageScanningManager,Vt as JobLoader,$u as LARAVEL_SERVERLESS_BUILD_STEPS,El as LambdaConcurrencyManager,Al as LambdaDLQManager,wl as LambdaDestinationsManager,vl as LambdaLayersManager,Cl as LambdaVPCManager,Tl as LambdaVersionsManager,al as LogsManager,vu as MANAGED_NODE_VERSIONS,Rc as MANAGEMENT_DASHBOARD_SITE_PREFIX,ke as Messaging,sl as MetricsManager,cl as MigrationManager,Uc as MockCloudFormation,Fc as MockDynamoDB,Bc as MockS3,vi as Monitoring,Jc as MultiAccountManager,Hc as MultiRegionManager,ou as MultiStepProgress,O as Network,Jl as NetworkSecurityManager,wc as ORIGIN_CONNECTION_ATTEMPTS,Cc as ORIGIN_CONNECTION_TIMEOUT,Tc as ORIGIN_GROUP_ALLOWED_METHODS,Mp as ORIGIN_GROUP_ID_SUFFIX,Ec as ORIGIN_GROUP_SELECTION_CRITERIA,Xc as OrganizationManager,Ou as PHP_DEFAULT_EXCLUDES,Tu as PHP_LAYER_EXTENSIONS,X as ParameterStore,dl as PerformanceManager,Ee as Permissions,wt as Phone,hu as PhoneAdvanced,kd as PhoneHandlers,jc as PreviewEnvironmentManager,Vc as PreviewNotificationService,iu as ProgressBar,il as ProgressiveDeploymentManager,Dp as Pseudo,ge as Queue,Ll as QueueManagementManager,Ap as QueuePresets,mu as RECOMMENDED_ACCOUNT_STRUCTURES,_g as RECOMMENDED_SCPS,cu as REPL,du as REPLCommandBuilder,lu as REPLContext,ru as RateLimiter,Ip as RealtimePresets,Ta as RecursionGuard,Ct as Redirects,Gc as RegionPairManager,Et as Registry,ll as ReplicaManager,Xl as ResourceManagementManager,Pl as Route53ResolverManager,Il as Route53RoutingManager,Dc as S3Client,Ie as S3Error,Te as SMS,Sc as STATE_DIR_ENV_VAR,No as STORAGE_FAILOVER_METADATA_KEY,Ht as Search,Ti as Secrets,ml as SecretsManager,pl as SecretsRotationManager,j as Security,cn as SecurityHubManager,fl as SecurityScanningManager,kl as SenderReputationManager,bl as ServiceMeshManager,ko as Sftp,yu as SmsAdvanced,_d as SmsHandlers,su as Spinner,Kc as StackDependencyManager,Up as StacksIntegration,Wl as StaticSiteManager,Ue as Storage,Gl as StorageAdvancedManager,ln as SyntheticsManager,va as TRACE_HEADER,au as TaskList,Ao as TemplateBuilder,$c as TemplateCache,kc as ValidationError,xd as Workflow,ol as XRayManager,cf as abTestManager,Op as analyzeStackDiff,ga as artifactKey,yi as assertOriginGroupMethods,cg as autocomplete,tf as awsConfigManager,Zg as backupManager,Rm as batch,jf as batchProcessingManager,sf as blueGreenManager,Of as bounceComplaintHandler,Hf as buildBunRuntimeLayerZip,la as buildCloudFormationTemplate,aa as buildFailoverReplicaPolicyStatement,Xs as buildMailEnv,zf as buildNodeRuntimeLayerZip,wf as buildOptimizationManager,Ac as buildOriginGroup,Ro as buildOriginGroups,Kf as buildPhpRuntimeLayerZip,sa as buildReplicationConfiguration,oa as buildReplicationRole,af as canaryManager,Lm as categorizeChanges,vf as certificateManager,hm as checkIAMPermissions,Ru as checkInvocation,Sm as checkServiceQuotas,nu as chunk,Tp as clearSigningKeyCache,Bm as cloudConfigSchema,rf as cloudTrailManager,jo as collectPhpAppEntries,nm as composePresets,ha as composeServerlessAppTemplate,Cf as containerRegistryManager,qp as createApiBackendPreset,_u as createCliHandler,um as createCredentialProvider,tm as createDashboardSite,Xp as createDataPipelinePreset,_c as createError,da as createExistingStaticFullStackPreset,Hp as createFullStackAppPreset,Gf as createHandlers,Du as createHttpHandler,Gp as createJamstackPreset,Zp as createLaravelPreset,Qp as createMLApiPreset,Kp as createMicroservicesPreset,qm as createMockAWS,jp as createNodeJsServerPreset,Vp as createNodeJsServerlessPreset,im as createPreset,Rd as createPresignedUrl,yp as createPresignedUrlAsync,ku as createQueueHandler,Jp as createRealtimeAppPreset,pm as createS3Client,em as createServerlessLaravelPreset,zp as createServerlessNodePreset,Fp as createStaticSitePreset,Yp as createTraditionalWebAppPreset,Wp as createWordPressPreset,Ci as createZip,hg as crossRegionReferenceManager,yf as databaseUserManager,Mc as defaultLocalConfig,Rr as deploymentCoexistenceError,Ud as deriveManagementDashboardPort,bc as detectDeploymentTargets,gm as detectMisconfigurations,fc as detectServiceRegion,xm as diffTemplates,Ff as dlqMonitoringManager,xf as dnssecManager,ef as drManager,Lf as emailAnalyticsManager,Uf as emailTemplateManager,Nu as eventToRequest,Nc as extendPreset,Bf as fifoQueueManager,Im as findChangedFiles,Mg as formatAccountStructure,eg as formatBytes,Lp as formatDiff,tg as formatDuration,dg as formatFlagSuggestions,mg as formatHistory,gg as formatHistoryStats,ng as formatKeyValue,rg as formatList,Zm as formatProgressBar,pu as formatRegion,Pg as formatRegionList,ig as formatSuggestion,Qm as formatTable,Ym as formatTree,zd as fromEC2Metadata,Hd as fromECSMetadata,jd as fromEnvironment,Vd as fromSharedCredentials,qd as fromWebIdentity,Bl as functionFingerprint,ya as generateAppImageDockerfile,Qg as generateApprovalConfig,Su as generateBootstrap,Km as generateCleanupWorkflow,Jm as generateCostReportWorkflow,Og as generateCrossAccountRoleCF,Kg as generateDeploymentConfig,zg as generateDeploymentPipeline,Ug as generateDeploymentWorkflow,s as generateLogicalId,Gg as generateManualPipeline,Vg as generateMatrixWorkflow,Jg as generateMultiEnvConfig,Hg as generateMultiEnvPipeline,Bg as generateMultiEnvWorkflow,Fg as generatePRPreviewWorkflow,Yg as generateParallelConfig,xu as generatePhpFpmConfig,wu as generatePhpLayerDockerfile,qg as generatePreviewPipeline,Gm as generatePreviewWorkflow,l as generateResourceName,Xg as generateScheduledConfig,Wg as generateScheduledPipeline,jg as generateScheduledWorkflow,Gd as getAccountId,vg as getAllRegions,Ag as getClosestRegion,ug as getCommandUsage,sg as getContextualHelp,$o as getCredentials,Mm as getDeploymentStrategy,Um as getDiffStats,$m as getDiffSummary,Zd as getErrorDetails,ma as getLocalConfig,zm as getLocalCredentials,Vm as getLocalEndpoint,Hm as getLocalEnvVars,bm as getQuotaUsageSummary,$g as getRecommendedStructure,wi as getRegion,Ng as getRegionStats,Eg as getRegionsByCompliance,Tg as getRegionsByLocation,wg as getRegionsByPricingTier,eu as getRequiredPermissions,Ep as getSigningKeyCacheSize,kp as getTimestamp,yg as globalResourceManager,nf as guardDutyManager,qt as hasManagementDashboardSite,Em as hashBuffer,wm as hashDirectory,Oc as hashFile,Cm as hashManifest,Lc as hashString,Qf as healthCheckManager,Ef as imageScanningManager,jl as inspectInvocation,Au as installRecursionFetch,Hl as invocationContext,og as isLikelyTypo,jm as isLocalDevelopment,Pr as isManagementDashboardSiteName,wp as isNodeCryptoAvailable,Po as isS3RestEndpoint,Gs as isStateDirConfigured,Ks as isStatePath,Cg as isValidRegion,Cp as isWebCryptoAvailable,Pf as lambdaConcurrencyManager,kf as lambdaDLQManager,Nf as lambdaDestinationsManager,If as lambdaLayersManager,Df as lambdaVPCManager,Rf as lambdaVersionsManager,Ea as laravelServerlessEnvDefaults,pf as logsManager,Pd as mailEnabled,Js as mailFirewallPorts,fi as makeAWSRequest,bp as makeAWSRequestAsync,Sp as makeAWSRequestOnce,Pc as managementDashboardSiteName,an as mergeInfrastructure,uf as metricsManager,gf as migrationManager,Dg as multiAccountManager,fg as multiRegionManager,Yf as networkSecurityManager,kg as organizationManager,wa as packagePhpApp,dn as packageServerlessApp,pa as parallel,Pm as parallelMap,Nm as parallelWithRetry,Fl as parseChain,vp as parseJSONResponse,qs as parseXMLResponse,hf as performanceManager,Ml as phpLayerBuildStage,Eu as phpLayerPackages,Ai as phpRuntimeLayerAssets,Wm as previewManager,Xm as previewNotifications,_m as processInChunks,lf as progressiveDeploymentManager,Vl as propagationHeaders,Vf as queueManagementManager,Am as quickHash,zl as recursionBlockedResponse,Sg as regionPairManager,ff as replicaManager,Om as requiresReplacement,qf as resetRecursionRuntime,Wf as resolveApp,C as resolveAppDatabase,F as resolveCloudProvider,ua as resolveCredentials,Bd as resolveDashboardDomain,Fd as resolveDashboardDomains,$p as resolveDeployBucketName,H as resolveDeploymentMode,ra as resolveFailoverStatusCodes,hi as resolveMailService,rm as resolveManagementDashboardSite,Ei as resolveManagementDashboardSites,jt as resolveOriginConnection,E as resolveProjectStackName,fa as resolveQueueNames,Wt as resolveQueues,Cu as resolveRecursionConfig,Wd as resolveRegion,De as resolveServerlessAppStackName,ea as resolveServerlessArtifactBucketName,Io as resolveServerlessAssetBucketName,Uo as resolveServerlessRuntime,Zs as resolveSiteBucketName,Ys as resolveSiteResourceName,Qs as resolveSiteStackName,A as resolveStatePath,xp as resolveStorageBucketName,na as resolveStorageFailover,Zf as resourceManagementManager,ql as responseToResult,$f as route53ResolverManager,_f as route53RoutingManager,bu as runBuildHooks,Fo as runPhpBuildHooks,ia as s3RegionalDomain,_p as sanitizeName,ag as searchCommands,bf as secretsManager,Sf as secretsRotationManager,of as securityHubManager,Tf as securityScanningManager,Mf as senderReputationManager,Dm as sequence,Af as serviceMeshManager,Ws as setStateDir,Mo as sha256,Iu as sharedRecursionGuard,Ul as sharedRuntimeLoop,ae as signRequest,hc as signRequestAsync,bg as stackDependencyManager,Co as stateDir,et as statePath,Jf as staticSiteManager,Xf as storageAdvancedManager,ca as storageFailoverReplicasFromTemplate,zc as suggestCommand,lg as suggestFlags,ym as suggestIAMPolicy,vm as suggestQuotaIncrease,Rg as suggestRegionPairs,Ig as suggestRegions,mf as syntheticsManager,Tm as templateCache,Lg as validateAccountStructure,Fm as validateAgainstSchema,pg as validateCommand,mm as validateConfiguration,fm as validateCredentials,Si as validateOriginGroups,Np as validateResourceLimits,Rp as validateTemplate,Pp as validateTemplateSize,lm as withCDN,cm as withCache,am as withDatabase,Pu as withInvocation,om as withMonitoring,dm as withQueue,sm as withSecurity,km as withTimeout,df as xrayManager};
|
|
1
|
+
import{fc,ae,hc,Rd,yp,fi,Sp,bp,qs,vp,Tp,Ep,wp,Cp,Ap,Ip,yc,Sc,Ws,Gs,Co,et,A,Ks,bc,H,Rr,C,Pd,hi,Js,Xs,F,Ao,Rp,Pp,Np,Dp,l,s,kp,_p,E,Qs,Ys,Zs,xp,$p,De,ea,Io,Nd,Op,Lp,Ue,Et,ta,vc,Tc,Mp,Ec,wc,Cc,ra,Ac,jt,Ro,yi,Po,Si,Be,Dd,No,Do,na,ia,oa,sa,aa,ca,ve,j,S,L,tt,D,kd,wt,ge,Vt,Up,_d,Te,ko,Fe,zt,bi,Ee,_o,ke,xd,vi,we,Ce,re,Ti,X,Ht,Ct,Ae,t,xo,Bp,Ic,la,Fp,jp,Vp,zp,da,Hp,qp,Wp,Gp,Kp,Jp,Xp,Qp,Yp,Zp,em,tm,$d,Od,Ld,Md,Ud,Bd,Fd,qt,Rc,Pc,Pr,Ei,rm,Nc,nm,im,an,om,sm,am,cm,lm,dm,jd,Vd,zd,Hd,qd,$o,um,ua,Wd,Gd,Kd,Dc,Ie,pm,Jd,At,Oo,Nr,Xd,kc,Qd,Yd,Zd,_c,_e,mm,gm,fm,hm,eu,ym,Re,Sm,bm,vm,xc,$c,Tm,Oc,Lc,Em,wm,Cm,Am,Im,tu,pa,Rm,Pm,Nm,Dm,km,ru,nu,_m,xm,$m,Om,Lm,Mm,Um,Bm,Fm,Mc,ma,jm,Vm,zm,Hm,Uc,Bc,Fc,qm,jc,Wm,Gm,Km,Jm,Vc,Xm,Qm,Ym,Zm,eg,tg,rg,ng,iu,ou,su,au,zc,ig,og,sg,ag,cg,lg,dg,ug,pg,cu,lu,du,uu,mg,gg,Hc,fg,qc,Wc,Gc,Kc,hg,yg,Sg,bg,rt,wi,vg,Tg,Eg,wg,Cg,Ag,Ig,Rg,pu,Pg,Ng,Jc,Xc,Dg,kg,mu,_g,xg,$g,Og,Lg,Mg,Ug,Bg,Fg,jg,Vg,zg,Hg,qg,Wg,Gg,Kg,Jg,Xg,Qg,Yg,Qc,Zg,Yc,ef,Zc,tf,el,rf,tl,nf,cn,of,rl,sf,Lo,af,nl,cf,il,lf,ol,df,sl,uf,al,pf,ln,mf,cl,gf,ll,ff,dl,hf,ul,yf,pl,Sf,ml,bf,gl,vf,fl,Tf,hl,Ef,yl,wf,Sl,Cf,bl,Af,vl,If,Tl,Rf,El,Pf,wl,Nf,Cl,Df,Al,kf,Il,_f,Rl,xf,Pl,$f,Nl,Of,Dl,Lf,kl,Mf,_l,Uf,gu,fu,hu,yu,xl,Bf,$l,Ff,Ol,jf,Ll,Vf,Ci,Su,bu,Mo,ga,dn,vu,Uo,Wt,fa,ha,Tu,Eu,Ml,wu,ya,Ul,zf,Hf,Sa,ba,va,Bl,Bo,Fl,jl,Ta,Vl,zl,Hl,Cu,Au,Iu,qf,Ru,Pu,Wf,Nu,ql,Du,ku,_u,Gf,xu,Ai,Ea,$u,Kf,Ou,Fo,jo,wa,Wl,Jf,Gl,Xf,Kl,Qf,Jl,Yf,Xl,Zf}from"./chunk-4a8qt6e8.js";export{nl as ABTestManager,Fe as AI,Qd as AWSAPIError,Zc as AWSConfigManager,Bp as AWS_PSEUDO_PARAMETERS,rt as AWS_REGIONS,_o as ApiGateway,xo as Arn,re as AssetHasher,we as Auth,Qc as BackupManager,Ol as BatchProcessingManager,rl as BlueGreenManager,Nl as BounceComplaintHandler,yl as BuildOptimizationManager,Be as CDN,ba as CHAIN_HEADER,ta as CLOUDFRONT_FAILOVER_STATUS_CODES,xg as COMMON_CROSS_ACCOUNT_ROLES,bi as Cache,Lo as CanaryManager,gl as CertificateManager,At as CloudError,Ic as CloudFormationBuilder,Kd as CloudFormationClient,Jd as CloudFrontClient,el as CloudTrailManager,uu as CommandHistory,Ae as Communication,S as Compute,Oo as ConfigurationError,Sl as ContainerRegistryManager,Nr as CredentialError,qc as CrossRegionReferenceManager,Od as DASHBOARD_ENTRY,Ld as DASHBOARD_PORT_BASE,Md as DASHBOARD_PORT_SPAN,$d as DASHBOARD_STATE_DIR,vc as DEFAULT_FAILOVER_STATUS_CODES,Bo as DEFAULT_RECURSION_LIMITS,Re as DEFAULT_SERVICE_LIMITS,yc as DEFAULT_STATE_DIR,Dd as DEFAULT_STORAGE_FAILOVER_STATUS_CODES,Sa as DEPTH_HEADER,$l as DLQMonitoringManager,ve as DNS,Rl as DNSSECManager,zt as Database,ul as DatabaseUserManager,_e as DebugLogger,Nd as DependencyGraph,Ce as Deployment,Xd as DeploymentError,Yc as DisasterRecoveryManager,D as Email,gu as EmailAdvanced,Dl as EmailAnalyticsManager,fu as EmailHandlers,_l as EmailTemplateManager,Yd as ErrorCodes,Do as FAILOVER_REPLICA_POLICY_SID,xl as FIFOQueueManager,xc as FileCache,tt as FileSystem,t as Fn,Wc as GlobalResourceManager,tl as GuardDutyManager,tu as HashCache,Kl as HealthCheckManager,hl as ImageScanningManager,Vt as JobLoader,$u as LARAVEL_SERVERLESS_BUILD_STEPS,El as LambdaConcurrencyManager,Al as LambdaDLQManager,wl as LambdaDestinationsManager,vl as LambdaLayersManager,Cl as LambdaVPCManager,Tl as LambdaVersionsManager,al as LogsManager,vu as MANAGED_NODE_VERSIONS,Rc as MANAGEMENT_DASHBOARD_SITE_PREFIX,ke as Messaging,sl as MetricsManager,cl as MigrationManager,Uc as MockCloudFormation,Fc as MockDynamoDB,Bc as MockS3,vi as Monitoring,Jc as MultiAccountManager,Hc as MultiRegionManager,ou as MultiStepProgress,L as Network,Jl as NetworkSecurityManager,wc as ORIGIN_CONNECTION_ATTEMPTS,Cc as ORIGIN_CONNECTION_TIMEOUT,Tc as ORIGIN_GROUP_ALLOWED_METHODS,Mp as ORIGIN_GROUP_ID_SUFFIX,Ec as ORIGIN_GROUP_SELECTION_CRITERIA,Xc as OrganizationManager,Ou as PHP_DEFAULT_EXCLUDES,Tu as PHP_LAYER_EXTENSIONS,X as ParameterStore,dl as PerformanceManager,Ee as Permissions,wt as Phone,hu as PhoneAdvanced,kd as PhoneHandlers,jc as PreviewEnvironmentManager,Vc as PreviewNotificationService,iu as ProgressBar,il as ProgressiveDeploymentManager,Dp as Pseudo,ge as Queue,Ll as QueueManagementManager,Ap as QueuePresets,mu as RECOMMENDED_ACCOUNT_STRUCTURES,_g as RECOMMENDED_SCPS,cu as REPL,du as REPLCommandBuilder,lu as REPLContext,ru as RateLimiter,Ip as RealtimePresets,Ta as RecursionGuard,Ct as Redirects,Gc as RegionPairManager,Et as Registry,ll as ReplicaManager,Xl as ResourceManagementManager,Pl as Route53ResolverManager,Il as Route53RoutingManager,Dc as S3Client,Ie as S3Error,Te as SMS,Sc as STATE_DIR_ENV_VAR,No as STORAGE_FAILOVER_METADATA_KEY,Ht as Search,Ti as Secrets,ml as SecretsManager,pl as SecretsRotationManager,j as Security,cn as SecurityHubManager,fl as SecurityScanningManager,kl as SenderReputationManager,bl as ServiceMeshManager,ko as Sftp,yu as SmsAdvanced,_d as SmsHandlers,su as Spinner,Kc as StackDependencyManager,Up as StacksIntegration,Wl as StaticSiteManager,Ue as Storage,Gl as StorageAdvancedManager,ln as SyntheticsManager,va as TRACE_HEADER,au as TaskList,Ao as TemplateBuilder,$c as TemplateCache,kc as ValidationError,xd as Workflow,ol as XRayManager,cf as abTestManager,Op as analyzeStackDiff,ga as artifactKey,yi as assertOriginGroupMethods,cg as autocomplete,tf as awsConfigManager,Zg as backupManager,Rm as batch,jf as batchProcessingManager,sf as blueGreenManager,Of as bounceComplaintHandler,Hf as buildBunRuntimeLayerZip,la as buildCloudFormationTemplate,aa as buildFailoverReplicaPolicyStatement,Xs as buildMailEnv,zf as buildNodeRuntimeLayerZip,wf as buildOptimizationManager,Ac as buildOriginGroup,Ro as buildOriginGroups,Kf as buildPhpRuntimeLayerZip,sa as buildReplicationConfiguration,oa as buildReplicationRole,af as canaryManager,Lm as categorizeChanges,vf as certificateManager,hm as checkIAMPermissions,Ru as checkInvocation,Sm as checkServiceQuotas,nu as chunk,Tp as clearSigningKeyCache,Bm as cloudConfigSchema,rf as cloudTrailManager,jo as collectPhpAppEntries,nm as composePresets,ha as composeServerlessAppTemplate,Cf as containerRegistryManager,qp as createApiBackendPreset,_u as createCliHandler,um as createCredentialProvider,tm as createDashboardSite,Xp as createDataPipelinePreset,_c as createError,da as createExistingStaticFullStackPreset,Hp as createFullStackAppPreset,Gf as createHandlers,Du as createHttpHandler,Gp as createJamstackPreset,Zp as createLaravelPreset,Qp as createMLApiPreset,Kp as createMicroservicesPreset,qm as createMockAWS,jp as createNodeJsServerPreset,Vp as createNodeJsServerlessPreset,im as createPreset,Rd as createPresignedUrl,yp as createPresignedUrlAsync,ku as createQueueHandler,Jp as createRealtimeAppPreset,pm as createS3Client,em as createServerlessLaravelPreset,zp as createServerlessNodePreset,Fp as createStaticSitePreset,Yp as createTraditionalWebAppPreset,Wp as createWordPressPreset,Ci as createZip,hg as crossRegionReferenceManager,yf as databaseUserManager,Mc as defaultLocalConfig,Rr as deploymentCoexistenceError,Ud as deriveManagementDashboardPort,bc as detectDeploymentTargets,gm as detectMisconfigurations,fc as detectServiceRegion,xm as diffTemplates,Ff as dlqMonitoringManager,xf as dnssecManager,ef as drManager,Lf as emailAnalyticsManager,Uf as emailTemplateManager,Nu as eventToRequest,Nc as extendPreset,Bf as fifoQueueManager,Im as findChangedFiles,Mg as formatAccountStructure,eg as formatBytes,Lp as formatDiff,tg as formatDuration,dg as formatFlagSuggestions,mg as formatHistory,gg as formatHistoryStats,ng as formatKeyValue,rg as formatList,Zm as formatProgressBar,pu as formatRegion,Pg as formatRegionList,ig as formatSuggestion,Qm as formatTable,Ym as formatTree,zd as fromEC2Metadata,Hd as fromECSMetadata,jd as fromEnvironment,Vd as fromSharedCredentials,qd as fromWebIdentity,Bl as functionFingerprint,ya as generateAppImageDockerfile,Qg as generateApprovalConfig,Su as generateBootstrap,Km as generateCleanupWorkflow,Jm as generateCostReportWorkflow,Og as generateCrossAccountRoleCF,Kg as generateDeploymentConfig,zg as generateDeploymentPipeline,Ug as generateDeploymentWorkflow,s as generateLogicalId,Gg as generateManualPipeline,Vg as generateMatrixWorkflow,Jg as generateMultiEnvConfig,Hg as generateMultiEnvPipeline,Bg as generateMultiEnvWorkflow,Fg as generatePRPreviewWorkflow,Yg as generateParallelConfig,xu as generatePhpFpmConfig,wu as generatePhpLayerDockerfile,qg as generatePreviewPipeline,Gm as generatePreviewWorkflow,l as generateResourceName,Xg as generateScheduledConfig,Wg as generateScheduledPipeline,jg as generateScheduledWorkflow,Gd as getAccountId,vg as getAllRegions,Ag as getClosestRegion,ug as getCommandUsage,sg as getContextualHelp,$o as getCredentials,Mm as getDeploymentStrategy,Um as getDiffStats,$m as getDiffSummary,Zd as getErrorDetails,ma as getLocalConfig,zm as getLocalCredentials,Vm as getLocalEndpoint,Hm as getLocalEnvVars,bm as getQuotaUsageSummary,$g as getRecommendedStructure,wi as getRegion,Ng as getRegionStats,Eg as getRegionsByCompliance,Tg as getRegionsByLocation,wg as getRegionsByPricingTier,eu as getRequiredPermissions,Ep as getSigningKeyCacheSize,kp as getTimestamp,yg as globalResourceManager,nf as guardDutyManager,qt as hasManagementDashboardSite,Em as hashBuffer,wm as hashDirectory,Oc as hashFile,Cm as hashManifest,Lc as hashString,Qf as healthCheckManager,Ef as imageScanningManager,jl as inspectInvocation,Au as installRecursionFetch,Hl as invocationContext,og as isLikelyTypo,jm as isLocalDevelopment,Pr as isManagementDashboardSiteName,wp as isNodeCryptoAvailable,Po as isS3RestEndpoint,Gs as isStateDirConfigured,Ks as isStatePath,Cg as isValidRegion,Cp as isWebCryptoAvailable,Pf as lambdaConcurrencyManager,kf as lambdaDLQManager,Nf as lambdaDestinationsManager,If as lambdaLayersManager,Df as lambdaVPCManager,Rf as lambdaVersionsManager,Ea as laravelServerlessEnvDefaults,pf as logsManager,Pd as mailEnabled,Js as mailFirewallPorts,fi as makeAWSRequest,bp as makeAWSRequestAsync,Sp as makeAWSRequestOnce,Pc as managementDashboardSiteName,an as mergeInfrastructure,uf as metricsManager,gf as migrationManager,Dg as multiAccountManager,fg as multiRegionManager,Yf as networkSecurityManager,kg as organizationManager,wa as packagePhpApp,dn as packageServerlessApp,pa as parallel,Pm as parallelMap,Nm as parallelWithRetry,Fl as parseChain,vp as parseJSONResponse,qs as parseXMLResponse,hf as performanceManager,Ml as phpLayerBuildStage,Eu as phpLayerPackages,Ai as phpRuntimeLayerAssets,Wm as previewManager,Xm as previewNotifications,_m as processInChunks,lf as progressiveDeploymentManager,Vl as propagationHeaders,Vf as queueManagementManager,Am as quickHash,zl as recursionBlockedResponse,Sg as regionPairManager,ff as replicaManager,Om as requiresReplacement,qf as resetRecursionRuntime,Wf as resolveApp,C as resolveAppDatabase,F as resolveCloudProvider,ua as resolveCredentials,Bd as resolveDashboardDomain,Fd as resolveDashboardDomains,$p as resolveDeployBucketName,H as resolveDeploymentMode,ra as resolveFailoverStatusCodes,hi as resolveMailService,rm as resolveManagementDashboardSite,Ei as resolveManagementDashboardSites,jt as resolveOriginConnection,E as resolveProjectStackName,fa as resolveQueueNames,Wt as resolveQueues,Cu as resolveRecursionConfig,Wd as resolveRegion,De as resolveServerlessAppStackName,ea as resolveServerlessArtifactBucketName,Io as resolveServerlessAssetBucketName,Uo as resolveServerlessRuntime,Zs as resolveSiteBucketName,Ys as resolveSiteResourceName,Qs as resolveSiteStackName,A as resolveStatePath,xp as resolveStorageBucketName,na as resolveStorageFailover,Zf as resourceManagementManager,ql as responseToResult,$f as route53ResolverManager,_f as route53RoutingManager,bu as runBuildHooks,Fo as runPhpBuildHooks,ia as s3RegionalDomain,_p as sanitizeName,ag as searchCommands,bf as secretsManager,Sf as secretsRotationManager,of as securityHubManager,Tf as securityScanningManager,Mf as senderReputationManager,Dm as sequence,Af as serviceMeshManager,Ws as setStateDir,Mo as sha256,Iu as sharedRecursionGuard,Ul as sharedRuntimeLoop,ae as signRequest,hc as signRequestAsync,bg as stackDependencyManager,Co as stateDir,et as statePath,Jf as staticSiteManager,Xf as storageAdvancedManager,ca as storageFailoverReplicasFromTemplate,zc as suggestCommand,lg as suggestFlags,ym as suggestIAMPolicy,vm as suggestQuotaIncrease,Rg as suggestRegionPairs,Ig as suggestRegions,mf as syntheticsManager,Tm as templateCache,Lg as validateAccountStructure,Fm as validateAgainstSchema,pg as validateCommand,mm as validateConfiguration,fm as validateCredentials,Si as validateOriginGroups,Np as validateResourceLimits,Rp as validateTemplate,Pp as validateTemplateSize,lm as withCDN,cm as withCache,am as withDatabase,Pu as withInvocation,om as withMonitoring,dm as withQueue,sm as withSecurity,km as withTimeout,df as xrayManager};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u}from"./chunk-
|
|
1
|
+
import{u}from"./chunk-y5e7dmvc.js";class Q{client;region;constructor(e="us-east-1"){this.region=e,this.client=new u}async describeInstances(e){let t={Action:"DescribeInstances",Version:"2016-11-15"};if(e?.InstanceIds)e.InstanceIds.forEach((r,a)=>{t[`InstanceId.${a+1}`]=r});if(e?.Filters)e.Filters.forEach((r,a)=>{t[`Filter.${a+1}.Name`]=r.Name,r.Values.forEach((i,c)=>{t[`Filter.${a+1}.Value.${c+1}`]=i})});if(e?.MaxResults)t.MaxResults=String(e.MaxResults);if(e?.NextToken)t.NextToken=e.NextToken;let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),n=s.DescribeInstancesResponse||s;return{Reservations:this.parseReservations(n.reservationSet?.item),NextToken:n.nextToken}}async getInstance(e){return(await this.describeInstances({InstanceIds:[e]})).Reservations?.[0]?.Instances?.[0]}async getConsoleOutput(e,t){let s={Action:"GetConsoleOutput",Version:"2016-11-15",InstanceId:e};if(t)s.Latest="true";let n=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(s).toString()}),r=n.GetConsoleOutputResponse||n;return{InstanceId:r.instanceId,Output:r.output,Timestamp:r.timestamp}}async getConsoleOutputDecoded(e,t){let s=await this.getConsoleOutput(e,t?.latest);if(!s.Output)return"No console output available yet";let n=Buffer.from(s.Output,"base64").toString("utf-8");if(t?.tailLines)return n.split(`
|
|
2
2
|
`).slice(-t.tailLines).join(`
|
|
3
3
|
`);return n}async describeInstanceStatus(e){let t={Action:"DescribeInstanceStatus",Version:"2016-11-15"};if(e?.InstanceIds)e.InstanceIds.forEach((n,r)=>{t[`InstanceId.${r+1}`]=n});if(e?.IncludeAllInstances)t.IncludeAllInstances="true";if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{InstanceStatuses:this.parseArray(s.instanceStatusSet?.item).map((n)=>({InstanceId:n.instanceId,InstanceState:n.instanceState?{Code:Number.parseInt(n.instanceState.code),Name:n.instanceState.name}:void 0,InstanceStatus:n.instanceStatus?{Status:n.instanceStatus.status,Details:this.parseArray(n.instanceStatus.details?.item).map((r)=>({Name:r.name,Status:r.status}))}:void 0,SystemStatus:n.systemStatus?{Status:n.systemStatus.status,Details:this.parseArray(n.systemStatus.details?.item).map((r)=>({Name:r.name,Status:r.status}))}:void 0}))}}async startInstances(e){let t={Action:"StartInstances",Version:"2016-11-15"};e.forEach((n,r)=>{t[`InstanceId.${r+1}`]=n});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{StartingInstances:this.parseArray(s.instancesSet?.item).map((n)=>({InstanceId:n.instanceId,CurrentState:n.currentState?{Name:n.currentState.name}:void 0,PreviousState:n.previousState?{Name:n.previousState.name}:void 0}))}}async stopInstances(e,t){let s={Action:"StopInstances",Version:"2016-11-15"};if(e.forEach((r,a)=>{s[`InstanceId.${a+1}`]=r}),t)s.Force="true";let n=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(s).toString()});return{StoppingInstances:this.parseArray(n.instancesSet?.item).map((r)=>({InstanceId:r.instanceId,CurrentState:r.currentState?{Name:r.currentState.name}:void 0,PreviousState:r.previousState?{Name:r.previousState.name}:void 0}))}}async rebootInstances(e){let t={Action:"RebootInstances",Version:"2016-11-15"};e.forEach((s,n)=>{t[`InstanceId.${n+1}`]=s}),await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async terminateInstances(e){let t={Action:"TerminateInstances",Version:"2016-11-15"};e.forEach((n,r)=>{t[`InstanceId.${r+1}`]=n});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{TerminatingInstances:this.parseArray(s.instancesSet?.item).map((n)=>({InstanceId:n.instanceId,CurrentState:n.currentState?{Name:n.currentState.name}:void 0,PreviousState:n.previousState?{Name:n.previousState.name}:void 0}))}}async createImage(e){let t={Action:"CreateImage",Version:"2016-11-15",InstanceId:e.InstanceId,Name:e.Name};if(e.Description)t.Description=e.Description;if(e.NoReboot!==void 0)t.NoReboot=String(e.NoReboot);if(e.TagSpecifications)e.TagSpecifications.forEach((r,a)=>{t[`TagSpecification.${a+1}.ResourceType`]=r.ResourceType,r.Tags.forEach((i,c)=>{t[`TagSpecification.${a+1}.Tag.${c+1}.Key`]=i.Key,t[`TagSpecification.${a+1}.Tag.${c+1}.Value`]=i.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{ImageId:(s.CreateImageResponse||s).imageId}}async deregisterImage(e){await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({Action:"DeregisterImage",Version:"2016-11-15",ImageId:e}).toString()})}async describeVpcs(e){let t={Action:"DescribeVpcs",Version:"2016-11-15"};if(e?.VpcIds)e.VpcIds.forEach((n,r)=>{t[`VpcId.${r+1}`]=n});if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{Vpcs:this.parseArray(s.vpcSet?.item).map((n)=>({VpcId:n.vpcId,CidrBlock:n.cidrBlock,State:n.state,DhcpOptionsId:n.dhcpOptionsId,InstanceTenancy:n.instanceTenancy,IsDefault:n.isDefault==="true",Tags:this.parseTags(n.tagSet?.item)}))}}async describeSubnets(e){let t={Action:"DescribeSubnets",Version:"2016-11-15"};if(e?.SubnetIds)e.SubnetIds.forEach((n,r)=>{t[`SubnetId.${r+1}`]=n});if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{Subnets:this.parseArray(s.subnetSet?.item).map((n)=>({SubnetId:n.subnetId,VpcId:n.vpcId,CidrBlock:n.cidrBlock,AvailabilityZone:n.availabilityZone,AvailableIpAddressCount:Number.parseInt(n.availableIpAddressCount),State:n.state,MapPublicIpOnLaunch:n.mapPublicIpOnLaunch==="true",Tags:this.parseTags(n.tagSet?.item)}))}}async describeSecurityGroups(e){let t={Action:"DescribeSecurityGroups",Version:"2016-11-15"};if(e?.GroupIds)e.GroupIds.forEach((n,r)=>{t[`GroupId.${r+1}`]=n});if(e?.GroupNames)e.GroupNames.forEach((n,r)=>{t[`GroupName.${r+1}`]=n});if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{SecurityGroups:this.parseArray(s.securityGroupInfo?.item).map((n)=>({GroupId:n.groupId,GroupName:n.groupName,Description:n.groupDescription,VpcId:n.vpcId,IpPermissions:this.parseIpPermissions(n.ipPermissions?.item),IpPermissionsEgress:this.parseIpPermissions(n.ipPermissionsEgress?.item),Tags:this.parseTags(n.tagSet?.item)}))}}async describeInternetGateways(e){let t={Action:"DescribeInternetGateways",Version:"2016-11-15"};if(e?.InternetGatewayIds)e.InternetGatewayIds.forEach((n,r)=>{t[`InternetGatewayId.${r+1}`]=n});if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{InternetGateways:this.parseArray(s.internetGatewaySet?.item).map((n)=>({InternetGatewayId:n.internetGatewayId,Attachments:this.parseArray(n.attachmentSet?.item).map((r)=>({VpcId:r.vpcId,State:r.state})),Tags:this.parseTags(n.tagSet?.item)}))}}async describeAddresses(e){let t={Action:"DescribeAddresses",Version:"2016-11-15"};if(e?.AllocationIds)e.AllocationIds.forEach((n,r)=>{t[`AllocationId.${r+1}`]=n});if(e?.PublicIps)e.PublicIps.forEach((n,r)=>{t[`PublicIp.${r+1}`]=n});if(e?.Filters)e.Filters.forEach((n,r)=>{t[`Filter.${r+1}.Name`]=n.Name,n.Values.forEach((a,i)=>{t[`Filter.${r+1}.Value.${i+1}`]=a})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{Addresses:this.parseArray(s.addressesSet?.item).map((n)=>({PublicIp:n.publicIp,AllocationId:n.allocationId,AssociationId:n.associationId,InstanceId:n.instanceId,NetworkInterfaceId:n.networkInterfaceId,PrivateIpAddress:n.privateIpAddress,Domain:n.domain,Tags:this.parseTags(n.tagSet?.item)}))}}async allocateAddress(e){let t={Action:"AllocateAddress",Version:"2016-11-15"};if(e?.Domain)t.Domain=e.Domain;if(e?.TagSpecifications)e.TagSpecifications.forEach((n,r)=>{t[`TagSpecification.${r+1}.ResourceType`]=n.ResourceType,n.Tags.forEach((a,i)=>{t[`TagSpecification.${r+1}.Tag.${i+1}.Key`]=a.Key,t[`TagSpecification.${r+1}.Tag.${i+1}.Value`]=a.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{AllocationId:s.allocationId,PublicIp:s.publicIp,Domain:s.domain}}async associateAddress(e){let t={Action:"AssociateAddress",Version:"2016-11-15"};if(e.AllocationId)t.AllocationId=e.AllocationId;if(e.PublicIp)t.PublicIp=e.PublicIp;if(e.InstanceId)t.InstanceId=e.InstanceId;if(e.NetworkInterfaceId)t.NetworkInterfaceId=e.NetworkInterfaceId;if(e.PrivateIpAddress)t.PrivateIpAddress=e.PrivateIpAddress;if(e.AllowReassociation)t.AllowReassociation="true";return{AssociationId:(await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})).associationId}}async createTags(e){let t={Action:"CreateTags",Version:"2016-11-15"};e.Resources.forEach((s,n)=>{t[`ResourceId.${n+1}`]=s}),e.Tags.forEach((s,n)=>{t[`Tag.${n+1}.Key`]=s.Key,t[`Tag.${n+1}.Value`]=s.Value}),await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async waitForInstanceState(e,t,s){let n=s?.maxWaitMs||300000,r=s?.pollIntervalMs||5000,a=Date.now();while(Date.now()-a<n){let i;try{i=await this.getInstance(e)}catch{i=void 0}if(i?.State?.Name===t)return i;await new Promise((c)=>setTimeout(c,r))}return}async createVpc(e){let t={Action:"CreateVpc",Version:"2016-11-15",CidrBlock:e.CidrBlock};if(e.InstanceTenancy)t.InstanceTenancy=e.InstanceTenancy;if(e.TagSpecifications)e.TagSpecifications.forEach((a,i)=>{t[`TagSpecification.${i+1}.ResourceType`]=a.ResourceType,a.Tags.forEach((c,o)=>{t[`TagSpecification.${i+1}.Tag.${o+1}.Key`]=c.Key,t[`TagSpecification.${i+1}.Tag.${o+1}.Value`]=c.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),r=(s.CreateVpcResponse||s).vpc;return{Vpc:r?{VpcId:r.vpcId,CidrBlock:r.cidrBlock,State:r.state,DhcpOptionsId:r.dhcpOptionsId,InstanceTenancy:r.instanceTenancy,IsDefault:r.isDefault==="true",Tags:this.parseTags(r.tagSet?.item)}:void 0}}async createSubnet(e){let t={Action:"CreateSubnet",Version:"2016-11-15",VpcId:e.VpcId,CidrBlock:e.CidrBlock};if(e.AvailabilityZone)t.AvailabilityZone=e.AvailabilityZone;if(e.TagSpecifications)e.TagSpecifications.forEach((a,i)=>{t[`TagSpecification.${i+1}.ResourceType`]=a.ResourceType,a.Tags.forEach((c,o)=>{t[`TagSpecification.${i+1}.Tag.${o+1}.Key`]=c.Key,t[`TagSpecification.${i+1}.Tag.${o+1}.Value`]=c.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),r=(s.CreateSubnetResponse||s).subnet;return{Subnet:r?{SubnetId:r.subnetId,VpcId:r.vpcId,CidrBlock:r.cidrBlock,AvailabilityZone:r.availabilityZone,AvailableIpAddressCount:r.availableIpAddressCount?Number.parseInt(r.availableIpAddressCount):void 0,State:r.state,MapPublicIpOnLaunch:r.mapPublicIpOnLaunch==="true",Tags:this.parseTags(r.tagSet?.item)}:void 0}}async modifySubnetAttribute(e){let t={Action:"ModifySubnetAttribute",Version:"2016-11-15",SubnetId:e.SubnetId};if(e.MapPublicIpOnLaunch!==void 0)t["MapPublicIpOnLaunch.Value"]=String(e.MapPublicIpOnLaunch.Value);await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async createSecurityGroup(e){let t={Action:"CreateSecurityGroup",Version:"2016-11-15",GroupName:e.GroupName,GroupDescription:e.Description};if(e.VpcId)t.VpcId=e.VpcId;if(e.TagSpecifications)e.TagSpecifications.forEach((r,a)=>{t[`TagSpecification.${a+1}.ResourceType`]=r.ResourceType,r.Tags.forEach((i,c)=>{t[`TagSpecification.${a+1}.Tag.${c+1}.Key`]=i.Key,t[`TagSpecification.${a+1}.Tag.${c+1}.Value`]=i.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()});return{GroupId:(s.CreateSecurityGroupResponse||s).groupId}}async authorizeSecurityGroupIngress(e){let t={Action:"AuthorizeSecurityGroupIngress",Version:"2016-11-15",GroupId:e.GroupId};this.encodeIpPermissions(t,e.IpPermissions),await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async authorizeSecurityGroupEgress(e){let t={Action:"AuthorizeSecurityGroupEgress",Version:"2016-11-15",GroupId:e.GroupId};this.encodeIpPermissions(t,e.IpPermissions),await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async describeRouteTables(e){let t={Action:"DescribeRouteTables",Version:"2016-11-15"};if(e?.RouteTableIds)e.RouteTableIds.forEach((r,a)=>{t[`RouteTableId.${a+1}`]=r});if(e?.Filters)e.Filters.forEach((r,a)=>{t[`Filter.${a+1}.Name`]=r.Name,r.Values.forEach((i,c)=>{t[`Filter.${a+1}.Value.${c+1}`]=i})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),n=s.DescribeRouteTablesResponse||s;return{RouteTables:this.parseArray(n.routeTableSet?.item).map((r)=>({RouteTableId:r.routeTableId,VpcId:r.vpcId,Routes:this.parseArray(r.routeSet?.item).map((a)=>({DestinationCidrBlock:a.destinationCidrBlock,GatewayId:a.gatewayId,NatGatewayId:a.natGatewayId,State:a.state})),Associations:this.parseArray(r.associationSet?.item).map((a)=>({RouteTableAssociationId:a.routeTableAssociationId,SubnetId:a.subnetId,Main:a.main==="true"||a.main===!0})),Tags:this.parseTags(r.tagSet?.item)}))}}async deleteVpc(e){let t={Action:"DeleteVpc",Version:"2016-11-15",VpcId:e};await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async deleteSubnet(e){let t={Action:"DeleteSubnet",Version:"2016-11-15",SubnetId:e};await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async deleteSecurityGroup(e){await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({Action:"DeleteSecurityGroup",Version:"2016-11-15",GroupId:e}).toString()})}async describeNetworkInterfaces(e){let t={Action:"DescribeNetworkInterfaces",Version:"2016-11-15"};if(e?.NetworkInterfaceIds)e.NetworkInterfaceIds.forEach((r,a)=>{t[`NetworkInterfaceId.${a+1}`]=r});if(e?.Filters)e.Filters.forEach((r,a)=>{t[`Filter.${a+1}.Name`]=r.Name,r.Values.forEach((i,c)=>{t[`Filter.${a+1}.Value.${c+1}`]=i})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),n=s.DescribeNetworkInterfacesResponse||s;return{NetworkInterfaces:this.parseArray(n.networkInterfaceSet?.item).map((r)=>({NetworkInterfaceId:r.networkInterfaceId,SubnetId:r.subnetId,VpcId:r.vpcId,Status:r.status,Attachment:r.attachment?{AttachmentId:r.attachment.attachmentId,InstanceId:r.attachment.instanceId,Status:r.attachment.status}:void 0}))}}async detachNetworkInterface(e,t){let s={Action:"DetachNetworkInterface",Version:"2016-11-15",AttachmentId:e};if(t)s.Force="true";await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(s).toString()})}async deleteNetworkInterface(e){let t={Action:"DeleteNetworkInterface",Version:"2016-11-15",NetworkInterfaceId:e};await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()})}async describeRegions(){let e={Action:"DescribeRegions",Version:"2016-11-15"},t=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(e).toString()}),s=t.DescribeRegionsResponse||t;return{Regions:this.parseArray(s.regionInfo?.item).map((n)=>({RegionName:n.regionName,Endpoint:n.regionEndpoint}))}}async runInstances(e){let t={Action:"RunInstances",Version:"2016-11-15",ImageId:e.ImageId,InstanceType:e.InstanceType,MinCount:String(e.MinCount),MaxCount:String(e.MaxCount)};if(e.SecurityGroupIds)e.SecurityGroupIds.forEach((r,a)=>{t[`SecurityGroupId.${a+1}`]=r});if(e.SubnetId)t.SubnetId=e.SubnetId;if(e.UserData)t.UserData=e.UserData;if(e.IamInstanceProfile){if(e.IamInstanceProfile.Name)t["IamInstanceProfile.Name"]=e.IamInstanceProfile.Name;if(e.IamInstanceProfile.Arn)t["IamInstanceProfile.Arn"]=e.IamInstanceProfile.Arn}if(e.TagSpecifications)e.TagSpecifications.forEach((r,a)=>{t[`TagSpecification.${a+1}.ResourceType`]=r.ResourceType,r.Tags.forEach((i,c)=>{t[`TagSpecification.${a+1}.Tag.${c+1}.Key`]=i.Key,t[`TagSpecification.${a+1}.Tag.${c+1}.Value`]=i.Value})});let s=await this.client.request({service:"ec2",region:this.region,method:"POST",path:"/",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(t).toString()}),n=s.RunInstancesResponse||s;return{Instances:this.parseInstances(n.instancesSet?.item||n.instancesSet)}}encodeIpPermissions(e,t){t.forEach((s,n)=>{let r=`IpPermissions.${n+1}`;if(s.IpProtocol!==void 0)e[`${r}.IpProtocol`]=s.IpProtocol;if(s.FromPort!==void 0)e[`${r}.FromPort`]=String(s.FromPort);if(s.ToPort!==void 0)e[`${r}.ToPort`]=String(s.ToPort);if(s.IpRanges)s.IpRanges.forEach((a,i)=>{if(a.CidrIp)e[`${r}.IpRanges.${i+1}.CidrIp`]=a.CidrIp;if(a.Description)e[`${r}.IpRanges.${i+1}.Description`]=a.Description});if(s.Ipv6Ranges)s.Ipv6Ranges.forEach((a,i)=>{if(a.CidrIpv6)e[`${r}.Ipv6Ranges.${i+1}.CidrIpv6`]=a.CidrIpv6;if(a.Description)e[`${r}.Ipv6Ranges.${i+1}.Description`]=a.Description});if(s.UserIdGroupPairs)s.UserIdGroupPairs.forEach((a,i)=>{if(a.GroupId)e[`${r}.Groups.${i+1}.GroupId`]=a.GroupId;if(a.UserId)e[`${r}.Groups.${i+1}.UserId`]=a.UserId;if(a.Description)e[`${r}.Groups.${i+1}.Description`]=a.Description})})}parseArray(e){if(!e)return[];return Array.isArray(e)?e:[e]}parseFirstIpv6Address(e){for(let t of this.parseArray(e))for(let s of this.parseArray(t?.ipv6AddressesSet?.item))if(s?.ipv6Address)return s.ipv6Address;return}parseTags(e){return this.parseArray(e).map((t)=>({Key:t.key,Value:t.value}))}parseReservations(e){return this.parseArray(e).map((t)=>({ReservationId:t.reservationId,Instances:this.parseInstances(t.instancesSet?.item||t.instancesSet)}))}parseInstances(e){return this.parseArray(e).map((t)=>({InstanceId:t.instanceId,ImageId:t.imageId,InstanceType:t.instanceType,State:t.instanceState?{Code:Number.parseInt(t.instanceState.code),Name:t.instanceState.name}:void 0,PrivateIpAddress:t.privateIpAddress,PublicIpAddress:t.ipAddress,Ipv6Address:this.parseFirstIpv6Address(t.networkInterfaceSet?.item),SubnetId:t.subnetId,VpcId:t.vpcId,SecurityGroups:this.parseArray(t.groupSet?.item).map((s)=>({GroupId:s.groupId,GroupName:s.groupName})),Tags:this.parseTags(t.tagSet?.item),LaunchTime:t.launchTime,Placement:t.placement?{AvailabilityZone:t.placement.availabilityZone,Tenancy:t.placement.tenancy}:void 0,Architecture:t.architecture,RootDeviceType:t.rootDeviceType,RootDeviceName:t.rootDeviceName,BlockDeviceMappings:this.parseArray(t.blockDeviceMapping?.item).map((s)=>({DeviceName:s.deviceName,Ebs:s.ebs?{VolumeId:s.ebs.volumeId,Status:s.ebs.status,AttachTime:s.ebs.attachTime,DeleteOnTermination:s.ebs.deleteOnTermination==="true"}:void 0})),IamInstanceProfile:t.iamInstanceProfile?{Arn:t.iamInstanceProfile.arn,Id:t.iamInstanceProfile.id}:void 0}))}parseIpPermissions(e){return this.parseArray(e).map((t)=>({IpProtocol:t.ipProtocol,FromPort:t.fromPort?Number.parseInt(t.fromPort):void 0,ToPort:t.toPort?Number.parseInt(t.toPort):void 0,IpRanges:this.parseArray(t.ipRanges?.item).map((s)=>({CidrIp:s.cidrIp,Description:s.description})),Ipv6Ranges:this.parseArray(t.ipv6Ranges?.item).map((s)=>({CidrIpv6:s.cidrIpv6,Description:s.description})),UserIdGroupPairs:this.parseArray(t.groups?.item).map((s)=>({GroupId:s.groupId,UserId:s.userId,Description:s.description}))}))}}
|
|
4
4
|
export{Q};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{et,A,qt,Pr,Ei}from"./chunk-
|
|
1
|
+
import{et,A,qt,Pr,Ei}from"./chunk-4a8qt6e8.js";import{execSync as D}from"node:child_process";import{randomBytes as R}from"node:crypto";import{chmodSync as j,copyFileSync as x,existsSync as u,mkdirSync as w,readFileSync as U,statSync as N,writeFileSync as m}from"node:fs";import{tmpdir as E}from"node:os";import{basename as P,dirname as v,isAbsolute as O,join as a,resolve as B}from"node:path";import{fileURLToPath as C}from"node:url";function h(e){if(!e||typeof e!=="object")return e;return Object.fromEntries(Object.keys(e).map((r)=>[r,""]))}function M(e){let r=JSON.parse(JSON.stringify(e??{}));if(r.hetzner)delete r.hetzner.apiToken;delete r.aws,delete r.stateDir;for(let t of Object.values(r.sites??{})){if(t?.env)t.env=h(t.env);if(t?.environment)t.environment=h(t.environment)}for(let t of Object.values(r.environments??{}))if(t?.variables)t.variables=h(t.variables);for(let t of Object.values(r.infrastructure?.databases??{}))if(t?.password)t.password="";if(r.infrastructure?.appDatabase?.password)r.infrastructure.appDatabase.password="";if(r.infrastructure?.compute?.database?.password)r.infrastructure.compute.database.password="";if(r.infrastructure?.compute?.managedServices?.vitess?.password)r.infrastructure.compute.managedServices.vitess.password="";return r}function y(e){let r=M(e);return["// Generated by ts-cloud for the management dashboard — do not edit.","//","// This is the project's resolved cloud config, inlined so it needs no","// imports on the box. Credentials are deliberately absent.",`export default ${JSON.stringify(r,null,2)}`,""].join(`
|
|
2
2
|
`)}var Ed="dashboard";function sc(){return et("dashboard-credentials.json")}function F(){return R(24).toString("base64url")}function wd(e,r,t){let s=process.env.TS_CLOUD_UI_PASSWORD?.trim();if(s)return{password:s,source:"env"};if(b(process.env.TS_CLOUD_UI_PUBLIC))return{password:void 0,source:"public"};let n=sc(),i=A(e,"dashboard-credentials.json");try{if(u(i)){let o=JSON.parse(U(i,"utf8"));if(o?.password)return{password:o.password,source:"generated"}}}catch{}let d=F();try{w(v(i),{recursive:!0}),m(i,`${JSON.stringify({username:r,password:d,generatedAt:new Date().toISOString()},null,2)}
|
|
3
3
|
`),j(i,384),t.info(`Management dashboard: generated a password for '${r}' and saved it to ${n} (read it there — it is not printed). Set TS_CLOUD_UI_PASSWORD to pin your own, or TS_CLOUD_UI_PUBLIC=1 to serve without auth.`)}catch(o){t.warn(`Management dashboard: could not persist the generated password (${o?.message??o}). Using it for this deploy only — pass: ${d}
|
|
4
4
|
This password is now in your deploy log. Set TS_CLOUD_UI_PASSWORD to a value of your own and redeploy once ${n} is writable.`)}return{password:d,source:"generated"}}var I={info:()=>{},warn:()=>{}};function b(e){return e!=null&&e!==""&&e!=="0"&&e.toLowerCase()!=="false"}function J(){return et("dashboard-release")}function L(){let e=v(C(import.meta.url));for(let r of[a(e,"..","..","package.json"),a(e,"..","package.json")])try{let t=JSON.parse(U(r,"utf8"));if(t.name==="@stacksjs/ts-cloud"&&t.version)return`^${t.version}`}catch{}return"latest"}function z(){return process.env.TS_CLOUD_UI_VERSION?.trim()||L()}function V(e,r,t){if(!e?.project?.slug)return t.warn("Management dashboard: the cloud config has no project slug — skipping the live dashboard."),null;let s=A(r,"dashboard-release");try{w(s,{recursive:!0}),m(a(s,"cloud.config.ts"),y(e));let n=z();if(n.startsWith("file:")){let d=n.slice(5),o=O(d)?d:B(r,d);if(!u(o)||!N(o).isFile())n=L(),t.warn(`Management dashboard: TS_CLOUD_UI_VERSION points to a missing package file (${o}); using the deploying ts-cloud version ${n} instead.`);else{let c=P(o),l=a(s,c);if(o!==l)x(o,l);n=`file:./${c}`}}let i={name:"ts-cloud-dashboard",private:!0,type:"module",dependencies:{"@stacksjs/ts-cloud":n}};return m(a(s,"package.json"),`${JSON.stringify(i,null,2)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{v}from"./chunk-5810132y.js";import"./chunk-y5e7dmvc.js";export{v as CloudFormationClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Mo,dn,ya,Ai,Fo,jo}from"./chunk-
|
|
1
|
+
import{Mo,dn,ya,Ai,Fo,jo}from"./chunk-4a8qt6e8.js";import{e}from"./chunk-st7s9k78.js";import{ht}from"./chunk-az5vvf5d.js";import{execFileSync as C}from"node:child_process";import{mkdirSync as w,mkdtempSync as I,rmSync as U,writeFileSync as g}from"node:fs";import{tmpdir as j}from"node:os";import{dirname as O,join as o}from"node:path";function E(s,t){for(let r of t){let d=o(s,r.name);w(O(d),{recursive:!0}),g(d,r.data,r.mode?{mode:r.mode}:void 0)}}async function Fu(s){let{app:t,projectRoot:r,region:d,repository:u}=s,x=t.architecture??"x86_64",R=x==="arm64"?"linux/arm64":"linux/amd64",b=t.kind==="php",n=s.onStep??(()=>{}),a=I(o(j(),"tscloud-img-"));try{let h=o(a,"app");w(h,{recursive:!0});let f,y;if(b){Fo({projectRoot:r,app:t,skipBuild:s.skipBuild,onStep:n}),n("staging application tree");let i=jo(r);E(h,i),E(o(a,"runtime"),Ai().map((c)=>({name:c.path,data:c.contents,mode:c.mode})));let v=t.handlers?.http??"public/index.php";f={http:v,queue:t.handlers?.queue??v,cli:t.handlers?.cli??v},y=Mo(i.map((c)=>`${c.name}:${c.data.length}`).join("|"))}else{n("bundling application");let i=await dn({projectRoot:r,app:t,skipBuild:s.skipBuild,onStep:n});g(o(h,"index.mjs"),i.bundle),f=i.handlers,y=i.sha256}let B=y.slice(0,16);g(o(a,"Dockerfile"),ya({kind:t.kind??"node",phpVersion:t.phpVersion,architecture:x}));let k=new ht(d),p;try{p=(await k.describeRepositories({repositoryNames:[u]})).repositories?.[0]?.repositoryUri??""}catch{p=""}if(!p)n(`creating ECR repository ${u}`),p=(await k.createRepository({repositoryName:u,imageScanningConfiguration:{scanOnPush:!0}})).repository?.repositoryUri??"";if(!p)throw Error(`could not resolve ECR repository URI for ${u}`);let l=`${p}:${B}`;n("docker build"),C("docker",["build","--platform",R,"--provenance=false","--sbom=false","-t",l,a],{stdio:"inherit"}),n("ecr auth + push");let m=(await k.getAuthorizationToken()).authorizationData?.[0];if(!m?.authorizationToken||!m.proxyEndpoint)throw Error("failed to get an ECR authorization token");let A=m.proxyEndpoint.replace(/^https?:\/\//,""),S=o(a,".docker");return w(S,{recursive:!0}),g(o(S,"config.json"),JSON.stringify({auths:{[A]:{auth:m.authorizationToken}}})),C("docker",["push",l],{stdio:"inherit",env:{...process.env,DOCKER_CONFIG:S}}),e(`Image: ${l}`),{imageUri:l,tag:B,handlers:f}}finally{U(a,{recursive:!0,force:!0})}}
|
|
2
2
|
export{Fu};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u}from"./chunk-
|
|
1
|
+
import{u}from"./chunk-y5e7dmvc.js";import{x,k}from"./chunk-eshss5qy.js";class V{client;region;constructor(e="us-east-1",i){this.region=e,this.client=new u}async createQueue(e){let t={Action:"CreateQueue",QueueName:e.fifo&&!e.queueName.endsWith(".fifo")?`${e.queueName}.fifo`:e.queueName,Version:"2012-11-05"},s=1;if(e.visibilityTimeout!==void 0)t[`Attribute.${s}.Name`]="VisibilityTimeout",t[`Attribute.${s}.Value`]=e.visibilityTimeout.toString(),s++;if(e.messageRetentionPeriod!==void 0)t[`Attribute.${s}.Name`]="MessageRetentionPeriod",t[`Attribute.${s}.Value`]=e.messageRetentionPeriod.toString(),s++;if(e.delaySeconds!==void 0)t[`Attribute.${s}.Name`]="DelaySeconds",t[`Attribute.${s}.Value`]=e.delaySeconds.toString(),s++;if(e.maxMessageSize!==void 0)t[`Attribute.${s}.Name`]="MaximumMessageSize",t[`Attribute.${s}.Value`]=e.maxMessageSize.toString(),s++;if(e.receiveMessageWaitTime!==void 0)t[`Attribute.${s}.Name`]="ReceiveMessageWaitTimeSeconds",t[`Attribute.${s}.Value`]=e.receiveMessageWaitTime.toString(),s++;if(e.fifo){if(t[`Attribute.${s}.Name`]="FifoQueue",t[`Attribute.${s}.Value`]="true",s++,e.contentBasedDeduplication)t[`Attribute.${s}.Name`]="ContentBasedDeduplication",t[`Attribute.${s}.Value`]="true",s++}if(e.deadLetterTargetArn&&e.maxReceiveCount)t[`Attribute.${s}.Name`]="RedrivePolicy",t[`Attribute.${s}.Value`]=JSON.stringify({deadLetterTargetArn:e.deadLetterTargetArn,maxReceiveCount:e.maxReceiveCount}),s++;if(e.tags&&Object.keys(e.tags).length>0){let a=1;for(let[n,g]of Object.entries(e.tags))t[`Tag.${a}.Key`]=n,t[`Tag.${a}.Value`]=g,a++}let r=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()});return{QueueUrl:r.QueueUrl||r.CreateQueueResult?.QueueUrl}}async listQueues(e){let i={Action:"ListQueues",Version:"2012-11-05"};if(e)i.QueueNamePrefix=e;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[];if(t.QueueUrl)s.push(t.QueueUrl);else if(t.ListQueuesResult?.QueueUrl)if(Array.isArray(t.ListQueuesResult.QueueUrl))s.push(...t.ListQueuesResult.QueueUrl);else s.push(t.ListQueuesResult.QueueUrl);return{QueueUrls:s}}async getQueueAttributes(e){let i={Action:"GetQueueAttributes",QueueUrl:e,Version:"2012-11-05","AttributeName.1":"All"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s={};for(let r of k(x(t,"GetQueueAttributes")?.Attribute))s[r.Name]=String(r.Value);return{Attributes:s}}async getQueueUrl(e){let i={Action:"GetQueueUrl",QueueName:e,Version:"2012-11-05"},t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{QueueUrl:t.QueueUrl||t.GetQueueUrlResult?.QueueUrl}}async deleteQueue(e){let i={Action:"DeleteQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async purgeQueue(e){let i={Action:"PurgeQueue",QueueUrl:e,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()})}async sendMessage(e){let i={Action:"SendMessage",QueueUrl:e.queueUrl,MessageBody:e.messageBody,Version:"2012-11-05"};if(e.delaySeconds!==void 0)i.DelaySeconds=e.delaySeconds;if(e.messageGroupId)i.MessageGroupId=e.messageGroupId;if(e.messageDeduplicationId)i.MessageDeduplicationId=e.messageDeduplicationId;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()});return{MessageId:t.MessageId||t.SendMessageResult?.MessageId}}async receiveMessages(e){let i={Action:"ReceiveMessage",QueueUrl:e.queueUrl,Version:"2012-11-05"};if(e.maxMessages!==void 0)i.MaxNumberOfMessages=e.maxMessages;if(e.visibilityTimeout!==void 0)i.VisibilityTimeout=e.visibilityTimeout;if(e.waitTimeSeconds!==void 0)i.WaitTimeSeconds=e.waitTimeSeconds;let t=await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(i).toString()}),s=[],r=t.Message||t.ReceiveMessageResult?.Message;if(r)if(Array.isArray(r))s.push(...r.map((a)=>({MessageId:a.MessageId,ReceiptHandle:a.ReceiptHandle,Body:a.Body})));else s.push({MessageId:r.MessageId,ReceiptHandle:r.ReceiptHandle,Body:r.Body});return{Messages:s}}async deleteMessage(e,i){let t={Action:"DeleteMessage",QueueUrl:e,ReceiptHandle:i,Version:"2012-11-05"};await this.client.request({service:"sqs",region:this.region,method:"POST",path:"/",body:new URLSearchParams(t).toString()})}}
|
|
2
2
|
export{V};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u}from"./chunk-
|
|
1
|
+
import{u}from"./chunk-y5e7dmvc.js";import{k}from"./chunk-eshss5qy.js";function A(e){let i=Array.isArray(e?.Items)?e.Items:k(e?.Items?.CNAME);return{Quantity:i.length,Items:i.map(String)}}class w{client;constructor(e,i){this.client=i??new u(void 0,{profile:e})}collectionItems(e,i){let t=e?.Items??e?.[i];if(!t)return[];if(Array.isArray(t))return t;let n=t[i]??t.Item;if(n===void 0)return typeof t==="object"&&(t.Id||t.PathPattern)?[t]:[];return Array.isArray(n)?n:[n]}validateExistingOriginInput(e,i){if(!/^[A-Z0-9]{8,32}$/.test(e))throw Error("CloudFront distribution ID is invalid");if(!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/.test(i.id))throw Error("CloudFront origin ID is invalid");if(!/^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/.test(i.domainName))throw Error("CloudFront origin must be a hostname without a scheme or path");let t=i.pathPattern.startsWith("/")?i.pathPattern:`/${i.pathPattern}`;if(t==="/"||t==="/*"||!/^\/[A-Za-z0-9_.*?~!$&'()+,;=:@%/-]{1,255}$/.test(t))throw Error("CloudFront path pattern must be a non-default absolute pattern");if(i.originPath&&(!i.originPath.startsWith("/")||i.originPath.includes("..")))throw Error("CloudFront origin path must be absolute and traversal-free");if(Object.entries(i.customHeaders??{}).some(([n,s])=>!/^[A-Za-z0-9-]{1,64}$/.test(n)||!s||s.length>1024))throw Error("CloudFront custom origin headers are invalid");return{...i,pathPattern:t}}async upsertExistingDistributionOrigin(e,i){let t=this.validateExistingOriginInput(e,i),n=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:`/2020-05-31/distribution/${e}/config`,returnHeaders:!0}),s=n.headers?.etag||n.headers?.ETag||n.ETag||"",r=n.body?.DistributionConfig||n.DistributionConfig||n.body;if(!r||r.Enabled===void 0||!s)throw Error("Failed to read an ETag-protected CloudFront distribution config");let o=this.collectionItems(r.Origins,"Origin"),a=this.collectionItems(r.CacheBehaviors,"CacheBehavior"),g=o.find((y)=>String(y.Id)===t.id),c=a.find((y)=>String(y.PathPattern)===t.pathPattern);if(g&&String(g.DomainName)!==t.domainName&&!t.replaceExisting)throw Error(`Origin ${t.id} already targets ${g.DomainName}; pass replaceExisting only after reviewing the live config`);if(c&&String(c.TargetOriginId)!==t.id&&!t.replaceExisting)throw Error(`Path ${t.pathPattern} already targets ${c.TargetOriginId}; pass replaceExisting only after reviewing the live config`);let d={Id:t.id,DomainName:t.domainName,OriginPath:t.originPath??"",CustomHeaders:{Quantity:Object.keys(t.customHeaders??{}).length,...Object.keys(t.customHeaders??{}).length?{Items:{OriginCustomHeader:Object.entries(t.customHeaders).map(([y,E])=>({HeaderName:y,HeaderValue:E}))}}:{}},CustomOriginConfig:{HTTPPort:80,HTTPSPort:443,OriginProtocolPolicy:t.protocolPolicy??"https-only",OriginSslProtocols:{Quantity:1,Items:{SslProtocol:["TLSv1.2"]}},OriginReadTimeout:30,OriginKeepaliveTimeout:5},ConnectionAttempts:3,ConnectionTimeout:10,...t.originAccessControlId?{OriginAccessControlId:t.originAccessControlId}:{}},h=["GET","HEAD","OPTIONS","PUT","POST","PATCH","DELETE"],l={PathPattern:t.pathPattern,TargetOriginId:t.id,ViewerProtocolPolicy:"redirect-to-https",Compress:!0,CachePolicyId:"4135ea2d-6df8-44a3-9df3-4b5a84be39ad",OriginRequestPolicyId:"b689b0a8-53d0-40ab-baf2-68738e2966ac",AllowedMethods:{Quantity:h.length,Items:{Method:h},CachedMethods:{Quantity:2,Items:{Method:["GET","HEAD"]}}},SmoothStreaming:!1,FieldLevelEncryptionId:"",TrustedSigners:{Enabled:!1,Quantity:0},TrustedKeyGroups:{Enabled:!1,Quantity:0},LambdaFunctionAssociations:{Quantity:0},FunctionAssociations:{Quantity:0}},f=g?o.map((y)=>String(y.Id)===t.id?d:y):[...o,d],m=c?a.map((y)=>String(y.PathPattern)===t.pathPattern?l:y):[...a,l],C=JSON.stringify(o)!==JSON.stringify(f)||JSON.stringify(a)!==JSON.stringify(m);if(!C||t.dryRun)return{distributionId:e,originId:t.id,domainName:t.domainName,pathPattern:t.pathPattern,changed:C,applied:!1,etag:s};r.Origins={Quantity:f.length,Items:{Origin:f}},r.CacheBehaviors={Quantity:m.length,...m.length?{Items:{CacheBehavior:m}}:{}};let b=await this.client.request({service:"cloudfront",region:"us-east-1",method:"PUT",path:`/2020-05-31/distribution/${e}/config`,body:this.buildDistributionConfigXml(r),headers:{"Content-Type":"application/xml","If-Match":s},returnHeaders:!0});return{distributionId:e,originId:t.id,domainName:t.domainName,pathPattern:t.pathPattern,changed:!0,applied:!0,etag:b.headers?.etag||b.headers?.ETag||""}}async removeExistingDistributionOrigin(e,i){let t=this.validateExistingOriginInput(e,i),n=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:`/2020-05-31/distribution/${e}/config`,returnHeaders:!0}),s=n.headers?.etag||n.headers?.ETag||n.ETag||"",r=n.body?.DistributionConfig||n.DistributionConfig||n.body;if(!r||r.Enabled===void 0||!s)throw Error("Failed to read an ETag-protected CloudFront distribution config");let o=this.collectionItems(r.Origins,"Origin"),a=this.collectionItems(r.CacheBehaviors,"CacheBehavior"),g=o.find((m)=>String(m.Id)===t.id),c=a.find((m)=>String(m.PathPattern)===t.pathPattern);if(g&&String(g.DomainName)!==t.domainName)throw Error(`Origin ${t.id} no longer targets ${t.domainName}; refusing ambiguous removal`);if(c&&String(c.TargetOriginId)!==t.id)throw Error(`Path ${t.pathPattern} no longer targets ${t.id}; refusing ambiguous removal`);if(!c)return{distributionId:e,originId:t.id,domainName:t.domainName,pathPattern:t.pathPattern,changed:!1,applied:!1,originRemoved:!1,etag:s};let d=a.filter((m)=>String(m.PathPattern)!==t.pathPattern),h=String(r.DefaultCacheBehavior?.TargetOriginId)===t.id||d.some((m)=>String(m.TargetOriginId)===t.id),l=h?o:o.filter((m)=>String(m.Id)!==t.id);if(t.dryRun)return{distributionId:e,originId:t.id,domainName:t.domainName,pathPattern:t.pathPattern,changed:!0,applied:!1,originRemoved:!h&&!!g,etag:s};r.Origins={Quantity:l.length,Items:{Origin:l}},r.CacheBehaviors={Quantity:d.length,...d.length?{Items:{CacheBehavior:d}}:{}};let f=await this.client.request({service:"cloudfront",region:"us-east-1",method:"PUT",path:`/2020-05-31/distribution/${e}/config`,body:this.buildDistributionConfigXml(r),headers:{"Content-Type":"application/xml","If-Match":s},returnHeaders:!0});return{distributionId:e,originId:t.id,domainName:t.domainName,pathPattern:t.pathPattern,changed:!0,applied:!0,originRemoved:!h&&!!g,etag:f.headers?.etag||f.headers?.ETag||""}}async createInvalidation(e){let i=e.callerReference||Date.now().toString(),t=`<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<InvalidationBatch>
|
|
3
3
|
<Paths>
|
|
4
4
|
<Quantity>${e.paths.length}</Quantity>
|
|
@@ -15,8 +15,8 @@ ${a} <${l}>${i(f)}</${l}>
|
|
|
15
15
|
${a}</Items>
|
|
16
16
|
`;else if(typeof f==="object"&&!Array.isArray(f))return`${a}<Items>
|
|
17
17
|
${s(l,f,a+" ",r)}${a}</Items>
|
|
18
|
-
`}if(h.length===1&&Array.isArray(o[h[0]])){let l=h[0],f=o[l],m="";for(let
|
|
19
|
-
`;else m+=s(l,
|
|
18
|
+
`}if(h.length===1&&Array.isArray(o[h[0]])){let l=h[0],f=o[l],m="";for(let C of f)if(typeof C==="string")m+=`${a} <${l}>${i(C)}</${l}>
|
|
19
|
+
`;else m+=s(l,C,a+" ",r);return`${a}<Items>
|
|
20
20
|
${m}${a}</Items>
|
|
21
21
|
`}if(Array.isArray(o)){let l="",f=d||"Item";for(let m of o)if(typeof m==="string")l+=`${a} <${f}>${i(m)}</${f}>
|
|
22
22
|
`;else l+=s(f,m,a+" ",r);return`${a}<Items>
|
|
@@ -63,11 +63,11 @@ ${Object.entries(e).filter(([r])=>!r.startsWith("@_")).map(([r,o])=>s(r,o," ","
|
|
|
63
63
|
<SigningProtocol>${n}</SigningProtocol>
|
|
64
64
|
<SigningBehavior>${s}</SigningBehavior>
|
|
65
65
|
<OriginAccessControlOriginType>${r}</OriginAccessControlOriginType>
|
|
66
|
-
</OriginAccessControlConfig>`,a=await this.client.request({service:"cloudfront",region:"us-east-1",method:"POST",path:"/2020-05-31/origin-access-control",body:o,headers:{"Content-Type":"application/xml"},returnHeaders:!0}),g=a.body?.OriginAccessControl||a.OriginAccessControl||a.body||a;return{Id:g.Id,Name:g.OriginAccessControlConfig?.Name||i,Description:g.OriginAccessControlConfig?.Description||t,SigningProtocol:g.OriginAccessControlConfig?.SigningProtocol||n,SigningBehavior:g.OriginAccessControlConfig?.SigningBehavior||s,OriginAccessControlOriginType:g.OriginAccessControlConfig?.OriginAccessControlOriginType||r,ETag:a.headers?.etag||a.ETag||""}}async findOrCreateOriginAccessControl(e,i="s3"){let n=(await this.listOriginAccessControls()).find((r)=>r.Name===e&&r.OriginAccessControlOriginType===i);if(n)return{Id:n.Id,Name:n.Name,isNew:!1};let s=await this.createOriginAccessControl({name:e,originType:i});return{Id:s.Id,Name:s.Name,isNew:!0}}async createDistributionForS3(e){let{bucketName:i,bucketRegion:t,originAccessControlId:n,aliases:s=[],certificateArn:r,defaultRootObject:o="index.html",comment:a=`Distribution for ${i}`,priceClass:g="PriceClass_100",enabled:c=!0,trustedKeyGroupIds:d=[],mediaDelivery:h=!1}=e,l=`S3-${i}`,f=`${i}.s3.${t}.amazonaws.com`,m=`${Date.now()}-${Math.random().toString(36).slice(2)}`,
|
|
66
|
+
</OriginAccessControlConfig>`,a=await this.client.request({service:"cloudfront",region:"us-east-1",method:"POST",path:"/2020-05-31/origin-access-control",body:o,headers:{"Content-Type":"application/xml"},returnHeaders:!0}),g=a.body?.OriginAccessControl||a.OriginAccessControl||a.body||a;return{Id:g.Id,Name:g.OriginAccessControlConfig?.Name||i,Description:g.OriginAccessControlConfig?.Description||t,SigningProtocol:g.OriginAccessControlConfig?.SigningProtocol||n,SigningBehavior:g.OriginAccessControlConfig?.SigningBehavior||s,OriginAccessControlOriginType:g.OriginAccessControlConfig?.OriginAccessControlOriginType||r,ETag:a.headers?.etag||a.ETag||""}}async findOrCreateOriginAccessControl(e,i="s3"){let n=(await this.listOriginAccessControls()).find((r)=>r.Name===e&&r.OriginAccessControlOriginType===i);if(n)return{Id:n.Id,Name:n.Name,isNew:!1};let s=await this.createOriginAccessControl({name:e,originType:i});return{Id:s.Id,Name:s.Name,isNew:!0}}async createDistributionForS3(e){let{bucketName:i,bucketRegion:t,originAccessControlId:n,aliases:s=[],certificateArn:r,defaultRootObject:o="index.html",comment:a=`Distribution for ${i}`,priceClass:g="PriceClass_100",enabled:c=!0,trustedKeyGroupIds:d=[],mediaDelivery:h=!1}=e,l=`S3-${i}`,f=`${i}.s3.${t}.amazonaws.com`,m=`${Date.now()}-${Math.random().toString(36).slice(2)}`,C=d.length>0?`<TrustedKeyGroups>
|
|
67
67
|
<Enabled>true</Enabled>
|
|
68
68
|
<Quantity>${d.length}</Quantity>
|
|
69
69
|
<Items>${d.map((T)=>`<KeyGroup>${T}</KeyGroup>`).join("")}</Items>
|
|
70
|
-
</TrustedKeyGroups>`:"<TrustedKeyGroups><Enabled>false</Enabled><Quantity>0</Quantity></TrustedKeyGroups>",
|
|
70
|
+
</TrustedKeyGroups>`:"<TrustedKeyGroups><Enabled>false</Enabled><Quantity>0</Quantity></TrustedKeyGroups>",b="<Aliases><Quantity>0</Quantity></Aliases>";if(s.length>0)b=`<Aliases>
|
|
71
71
|
<Quantity>${s.length}</Quantity>
|
|
72
72
|
<Items>
|
|
73
73
|
${s.map((T)=>`<CNAME>${T}</CNAME>`).join(`
|
|
@@ -118,9 +118,9 @@ ${Object.entries(e).filter(([r])=>!r.startsWith("@_")).map(([r,o])=>s(r,o," ","
|
|
|
118
118
|
</AllowedMethods>
|
|
119
119
|
<Compress>true</Compress>
|
|
120
120
|
<CachePolicyId>658327ea-f89d-4fab-a63d-7e88639e58f6</CachePolicyId>
|
|
121
|
-
${
|
|
121
|
+
${C}
|
|
122
122
|
</DefaultCacheBehavior>
|
|
123
|
-
${
|
|
123
|
+
${b}
|
|
124
124
|
${y}
|
|
125
125
|
<PriceClass>${g}</PriceClass>
|
|
126
126
|
<Enabled>${c}</Enabled>
|
|
@@ -137,5 +137,5 @@ ${Object.entries(e).filter(([r])=>!r.startsWith("@_")).map(([r,o])=>s(r,o," ","
|
|
|
137
137
|
</CustomErrorResponse>
|
|
138
138
|
</Items>
|
|
139
139
|
</CustomErrorResponses>`}
|
|
140
|
-
</DistributionConfig>`,
|
|
140
|
+
</DistributionConfig>`,p=await this.client.request({service:"cloudfront",region:"us-east-1",method:"POST",path:"/2020-05-31/distribution",body:E,headers:{"Content-Type":"application/xml"},returnHeaders:!0}),I=p.body?.Distribution||p.Distribution||p.body||p;return{Id:I.Id,ARN:I.ARN,DomainName:I.DomainName,Status:I.Status,ETag:p.headers?.etag||p.ETag||""}}async createMediaDistributionForS3(e){return this.createDistributionForS3({...e,defaultRootObject:"",mediaDelivery:!0,comment:e.comment??`Media distribution for ${e.bucketName}`})}async listPublicKeys(){let e=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:"/2020-05-31/public-key"});return this.collectionItems(e.PublicKeyList??e,"PublicKeySummary").map((t)=>({Id:String(t.Id),Name:String(t.Name),Comment:t.Comment?String(t.Comment):void 0}))}async createPublicKey(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e.name))throw TypeError("CloudFront public key name is invalid");if(!e.encodedKey.includes("BEGIN PUBLIC KEY"))throw TypeError("CloudFront public key must be PEM encoded");let i=(s)=>s.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">"),t=await this.client.request({service:"cloudfront",region:"us-east-1",method:"POST",path:"/2020-05-31/public-key",headers:{"Content-Type":"application/xml"},body:`<PublicKeyConfig xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/"><CallerReference>${i(e.callerReference??`${Date.now()}-${e.name}`)}</CallerReference><Name>${i(e.name)}</Name><EncodedKey>${i(e.encodedKey)}</EncodedKey><Comment>${i(e.comment??"")}</Comment></PublicKeyConfig>`}),n=t.PublicKey??t;return{Id:String(n.Id),Name:String(n.PublicKeyConfig?.Name??e.name),EncodedKey:String(n.PublicKeyConfig?.EncodedKey??e.encodedKey),Comment:String(n.PublicKeyConfig?.Comment??e.comment??"")}}async listKeyGroups(){let e=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:"/2020-05-31/key-group"});return this.collectionItems(e.KeyGroupList??e,"KeyGroupSummary").map((t)=>({Id:String(t.KeyGroup?.Id??t.Id),Name:String(t.KeyGroup?.KeyGroupConfig?.Name??t.KeyGroupConfig?.Name??t.Name),Items:this.collectionItems(t.KeyGroup?.KeyGroupConfig?.Items??t.KeyGroupConfig?.Items??t.Items,"Item").map(String),Comment:t.KeyGroup?.KeyGroupConfig?.Comment??t.KeyGroupConfig?.Comment??t.Comment}))}async createKeyGroup(e){if(!/^[A-Za-z0-9_-]{1,128}$/.test(e.name))throw TypeError("CloudFront key group name is invalid");let i=[...new Set(e.publicKeyIds)];if(i.length===0)throw TypeError("CloudFront key group requires at least one public key");let t=(o)=>o.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">"),n=i.map((o)=>`<Item>${t(o)}</Item>`).join(""),s=await this.client.request({service:"cloudfront",region:"us-east-1",method:"POST",path:"/2020-05-31/key-group",headers:{"Content-Type":"application/xml"},body:`<KeyGroupConfig xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/"><Name>${t(e.name)}</Name><Items>${n}</Items><Comment>${t(e.comment??"")}</Comment></KeyGroupConfig>`}),r=s.KeyGroup??s;return{Id:String(r.Id),Name:String(r.KeyGroupConfig?.Name??e.name),Items:i,Comment:String(r.KeyGroupConfig?.Comment??e.comment??"")}}static getS3BucketPolicyForCloudFront(e,i){return{Version:"2012-10-17",Statement:[{Sid:"AllowCloudFrontServicePrincipal",Effect:"Allow",Principal:{Service:"cloudfront.amazonaws.com"},Action:"s3:GetObject",Resource:`arn:aws:s3:::${e}/*`,Condition:{StringEquals:{"AWS:SourceArn":i}}}]}}async waitForDistributionDeployed(e,i=60){for(let t=0;t<i;t++){if((await this.getDistribution(e)).Status==="Deployed")return!0;await new Promise((s)=>setTimeout(s,30000))}return!1}async disableDistribution(e){let i=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:`/2020-05-31/distribution/${e}/config`,returnHeaders:!0}),t=i.headers?.etag||i.headers?.ETag||"",n=i.body?.DistributionConfig||(i.body?.Enabled!==void 0?i.body:void 0)||i.DistributionConfig;if(!n||n.Enabled===void 0)throw Error("Failed to get current distribution config");n.Enabled=!1;let s=this.buildDistributionConfigXml(n),r=await this.client.request({service:"cloudfront",region:"us-east-1",method:"PUT",path:`/2020-05-31/distribution/${e}/config`,body:s,headers:{"Content-Type":"application/xml","If-Match":t},returnHeaders:!0});return{ETag:r.headers?.etag||r.headers?.ETag||r.ETag||""}}async deleteDistribution(e,i){let t=i||"";if(!t){let n=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:`/2020-05-31/distribution/${e}`,returnHeaders:!0});t=n.headers?.etag||n.headers?.ETag||""}await this.client.request({service:"cloudfront",region:"us-east-1",method:"DELETE",path:`/2020-05-31/distribution/${e}`,headers:{"If-Match":t}})}async waitForDistributionDisabled(e,i=60){for(let t=0;t<i;t++){let n=await this.getDistribution(e);if(n.Status==="Deployed"&&!n.Enabled)return!0;await new Promise((s)=>setTimeout(s,30000))}return!1}async removeAlias(e,i){let t=await this.client.request({service:"cloudfront",region:"us-east-1",method:"GET",path:`/2020-05-31/distribution/${e}/config`,returnHeaders:!0}),n=t.headers?.etag||t.headers?.ETag||"",s=t.body?.DistributionConfig||(t.body?.Enabled!==void 0?t.body:void 0)||t.DistributionConfig;if(!s||s.Enabled===void 0)throw Error("Failed to get current distribution config");let r=[];if(s.Aliases?.Items){if(Array.isArray(s.Aliases.Items))r=s.Aliases.Items;else if(typeof s.Aliases.Items==="object"){let c=s.Aliases.Items.CNAME;if(typeof c==="string")r=[c];else if(Array.isArray(c))r=c}}if(r.length===0)throw Error("Distribution has no aliases to remove");let o=r.filter((c)=>c!==i);if(o.length===r.length)throw Error(`Alias ${i} not found in distribution`);if(s.Aliases.Quantity=o.length,s.Aliases.Items=o.length>0?o:void 0,o.length===0)s.ViewerCertificate={CloudFrontDefaultCertificate:!0,MinimumProtocolVersion:"TLSv1.2_2021"};let a=this.buildDistributionConfigXml(s),g=await this.client.request({service:"cloudfront",region:"us-east-1",method:"PUT",path:`/2020-05-31/distribution/${e}/config`,body:a,headers:{"Content-Type":"application/xml","If-Match":n},returnHeaders:!0});return{ETag:g.headers?.etag||g.headers?.ETag||g.ETag||""}}}
|
|
141
141
|
export{w};
|