@stacksjs/ts-cloud 0.16.25 → 0.16.26
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/cloudfront.d.ts +88 -49
- package/dist/aws/index.js +1 -1
- package/dist/bin/chunk-08hxbrmv.js +1 -0
- package/dist/bin/{chunk-y4g86dpe.js → chunk-0apv4e8e.js} +2 -2
- 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-9066j2kz.js → chunk-2857cbf1.js} +1 -1
- package/dist/bin/chunk-2qrr4ydb.js +1 -0
- package/dist/bin/{chunk-db9zx72q.js → chunk-3rzabz10.js} +1 -1
- package/dist/bin/{chunk-t5gkbppg.js → chunk-4a8qt6e8.js} +12 -12
- package/dist/bin/chunk-4jgespb7.js +1 -0
- package/dist/bin/{chunk-mdbzfvba.js → chunk-4xfwb21f.js} +1 -1
- package/dist/bin/{chunk-8wnpx6n2.js → chunk-5ky6qf18.js} +10 -10
- package/dist/bin/{chunk-21jwbrap.js → chunk-817q3s2p.js} +1 -1
- package/dist/bin/{chunk-9rya3733.js → chunk-85733wwc.js} +50 -50
- package/dist/bin/{chunk-g0gqwszk.js → chunk-8hnph1yy.js} +1 -1
- package/dist/bin/{chunk-n5zwm2z4.js → chunk-8k87zpnp.js} +1 -1
- package/dist/bin/{chunk-p1cv4n00.js → chunk-8tp6srfc.js} +1 -1
- package/dist/bin/{chunk-td8zgch7.js → chunk-92rhkvpx.js} +2 -2
- package/dist/bin/{chunk-tnzp96vn.js → chunk-ccykpema.js} +1 -1
- package/dist/bin/{chunk-nxyhheav.js → chunk-cgyqnbcm.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-ntmnpteh.js → chunk-f4rp62j4.js} +8 -8
- package/dist/bin/chunk-ff888cnm.js +1 -0
- package/dist/bin/{chunk-n8ya6q6d.js → chunk-fjxsj9z9.js} +1 -1
- package/dist/bin/{chunk-3kvz4kyq.js → chunk-h3shxxh4.js} +1 -1
- package/dist/bin/{chunk-z96ssb7e.js → chunk-hvd87xj9.js} +1 -1
- package/dist/bin/chunk-jxyt009c.js +1 -0
- package/dist/bin/chunk-kxmq7r53.js +1 -0
- package/dist/bin/{chunk-v4e4726j.js → chunk-qsyna6ng.js} +1 -1
- package/dist/bin/{chunk-mfer1e5z.js → chunk-qxssaa4s.js} +1 -1
- package/dist/bin/{chunk-78tzgf65.js → chunk-r2ft7vek.js} +1 -1
- package/dist/bin/{chunk-82sbpydz.js → chunk-rfvx641h.js} +1 -1
- package/dist/bin/chunk-swnef46q.js +1 -0
- package/dist/bin/chunk-v95b2dy0.js +1 -0
- package/dist/bin/chunk-wjwxtz68.js +1 -0
- package/dist/bin/{chunk-gj530nqd.js → chunk-x2r1zm2r.js} +1 -1
- package/dist/bin/{chunk-5mk3sxpw.js → chunk-z3962as2.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-826gp2kd.js → chunk-k75jv8s6.js} +1 -1
- package/dist/{chunk-jwx5t3vf.js → chunk-mdqnpbbc.js} +9 -9
- package/dist/{chunk-r1730x8g.js → chunk-mte9da2p.js} +2 -2
- package/dist/{chunk-kmwnzw91.js → chunk-nkd35khb.js} +1 -1
- package/dist/deploy/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 +6 -6
- package/dist/ui/account/security.html +2 -2
- package/dist/ui/applications/compose.html +6 -6
- package/dist/ui/applications/new.html +2 -2
- package/dist/ui/data/backups.html +6 -6
- package/dist/ui/data/services.html +6 -6
- package/dist/ui/data/volumes.html +6 -6
- package/dist/ui/index.html +5 -5
- 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 +5 -5
- package/dist/ui/operations/queue.html +6 -6
- package/dist/ui/operations/regions.html +5 -5
- package/dist/ui/operations/releases.html +6 -6
- package/dist/ui/operations/spend.html +6 -6
- package/dist/ui/operations/workloads.html +6 -6
- package/dist/ui/security.html +1 -1
- 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 +6 -6
- 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 +1 -1
- package/dist/ui/server/sites.html +6 -6
- package/dist/ui/server/ssh-keys.html +6 -6
- package/dist/ui/server/team.html +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 +5 -5
- package/dist/ui/serverless/logs.html +6 -6
- package/dist/ui/serverless/metrics.html +2 -2
- package/dist/ui/serverless/queues.html +6 -6
- package/dist/ui/serverless/secrets.html +6 -6
- package/dist/ui/serverless/traces.html +6 -6
- package/dist/ui/serverless.html +6 -6
- package/package.json +3 -3
- 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-cnmngqqg.js +0 -1
- package/dist/bin/chunk-dhj4786e.js +0 -1
- package/dist/bin/chunk-es4sdbrr.js +0 -1
- package/dist/bin/chunk-hje6rsxj.js +0 -2
- package/dist/bin/chunk-ksfr2ya8.js +0 -1
- package/dist/bin/chunk-s7axkfrs.js +0 -1
- package/dist/bin/chunk-yavtz60y.js +0 -1
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-0p7ddjt6.js";import{Ie,it,vn,xh}from"../chunk-3zv0e36t.js";import{y}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-0p7ddjt6.js";import{Ie,it,vn,xh}from"../chunk-3zv0e36t.js";import{y}from"../chunk-mdqnpbbc.js";import{Le}from"../chunk-dm6kyz6e.js";import{K}from"../chunk-tvwrthfq.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-setpnrtg.js";import{S}from"../chunk-5db32a4x.js";import{Tr,we}from"../chunk-x9bpm5s1.js";import{f}from"../chunk-08tswmb3.js";import{o}from"../chunk-2nma0bd8.js";import{Rr,di,n,l,tf}from"../chunk-wrpnnrdf.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Jn}from"./chunk-5ky6qf18.js";import"./chunk-w23en85y.js";import"./chunk-2857cbf1.js";import"./chunk-qsyna6ng.js";import"./chunk-e3tjy3wg.js";import"./chunk-2q27v6vz.js";import"./chunk-q3xwh0r8.js";import"./chunk-4a8qt6e8.js";export{Jn as resolveServerDashboardData};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{De,ea,Io,ga,dn,Uo,fa,ha,Ea,wa}from"./chunk-t5gkbppg.js";import{n,r,a,e,p,i,Se}from"./chunk-3jjggqfj.js";import{u}from"./chunk-q3xwh0r8.js";import{v}from"./chunk-v4e4726j.js";import{R}from"./chunk-1j9vy88a.js";import{g}from"./chunk-2q27v6vz.js";import{existsSync as de,readdirSync as me,readFileSync as pe,statSync as fe}from"node:fs";import{join as ne,relative as ye}from"node:path";class K{client;region;constructor(t="us-east-1",s){this.region=t,this.client=new u}async createSecret(t){let s={Name:t.Name};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.Tags&&t.Tags.length>0)s.Tags=t.Tags;if(t.AddReplicaRegions&&t.AddReplicaRegions.length>0)s.AddReplicaRegions=t.AddReplicaRegions;if(t.ForceOverwriteReplicaSecret!==void 0)s.ForceOverwriteReplicaSecret=t.ForceOverwriteReplicaSecret;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CreateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,ReplicationStatus:o.ReplicationStatus}}async updateSecret(t){let s={SecretId:t.SecretId,ClientRequestToken:t.ClientRequestToken||crypto.randomUUID()};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UpdateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async putSecretValue(t){let s={SecretId:t.SecretId};if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.VersionStages&&t.VersionStages.length>0)s.VersionStages=t.VersionStages;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,VersionStages:o.VersionStages}}async getSecretValue(t){let s={SecretId:t.SecretId};if(t.VersionId)s.VersionId=t.VersionId;if(t.VersionStage)s.VersionStage=t.VersionStage;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,SecretBinary:o.SecretBinary,SecretString:o.SecretString,VersionStages:o.VersionStages,CreatedDate:o.CreatedDate}}async describeSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DescribeSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return this.parseSecret(o)}async listSecrets(t){let s={};if(t?.MaxResults)s.MaxResults=t.MaxResults;if(t?.NextToken)s.NextToken=t.NextToken;if(t?.Filters&&t.Filters.length>0)s.Filters=t.Filters;if(t?.SortOrder)s.SortOrder=t.SortOrder;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.ListSecrets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{SecretList:o.SecretList?.map((c)=>this.parseSecret(c)),NextToken:o.NextToken}}async deleteSecret(t){let s={SecretId:t.SecretId};if(t.RecoveryWindowInDays!==void 0)s.RecoveryWindowInDays=t.RecoveryWindowInDays;if(t.ForceDeleteWithoutRecovery!==void 0)s.ForceDeleteWithoutRecovery=t.ForceDeleteWithoutRecovery;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,DeletionDate:o.DeletionDate}}async restoreSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RestoreSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async rotateSecret(t){let s={SecretId:t.SecretId};if(t.ClientRequestToken)s.ClientRequestToken=t.ClientRequestToken;if(t.RotationLambdaARN)s.RotationLambdaARN=t.RotationLambdaARN;if(t.RotationRules)s.RotationRules=t.RotationRules;if(t.RotateImmediately!==void 0)s.RotateImmediately=t.RotateImmediately;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async cancelRotateSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CancelRotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async getResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,ResourcePolicy:o.ResourcePolicy}}async putResourcePolicy(t){let s={SecretId:t.SecretId,ResourcePolicy:t.ResourcePolicy};if(t.BlockPublicPolicy!==void 0)s.BlockPublicPolicy=t.BlockPublicPolicy;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async deleteResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async tagResource(t){let s={SecretId:t.SecretId,Tags:t.Tags};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async untagResource(t){let s={SecretId:t.SecretId,TagKeys:t.TagKeys};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UntagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async setString(t,s,o){try{let c=await this.putSecretValue({SecretId:t,SecretString:s});return{ARN:c.ARN,VersionId:c.VersionId}}catch(c){if(c.code==="ResourceNotFoundException"){let l=await this.createSecret({Name:t,SecretString:s,Description:o?.description,KmsKeyId:o?.kmsKeyId,Tags:o?.tags});return{ARN:l.ARN,VersionId:l.VersionId}}throw c}}async setJson(t,s,o){return this.setString(t,JSON.stringify(s),o)}async getString(t){return(await this.getSecretValue({SecretId:t})).SecretString}async getJson(t){let s=await this.getString(t);if(s)return JSON.parse(s);return}async listAll(){let t=[],s;do{let o=await this.listSecrets({NextToken:s});if(o.SecretList)t.push(...o.SecretList);s=o.NextToken}while(s);return t}parseSecret(t){return{ARN:t.ARN,Name:t.Name,Description:t.Description,KmsKeyId:t.KmsKeyId,RotationEnabled:t.RotationEnabled,RotationLambdaARN:t.RotationLambdaARN,RotationRules:t.RotationRules,LastRotatedDate:t.LastRotatedDate,LastChangedDate:t.LastChangedDate,LastAccessedDate:t.LastAccessedDate,DeletedDate:t.DeletedDate,NextRotationDate:t.NextRotationDate,Tags:t.Tags,SecretVersionsToStages:t.SecretVersionsToStages,CreatedDate:t.CreatedDate,PrimaryRegion:t.PrimaryRegion}}}function E(t,s){let o=t.environments?.[s]?.app;if(!o)throw Error(`No serverless app configured for environment '${s}'. Add environments.${s}.app to your config.`);let c=t.project.slug,l=t.environments?.[s]?.region||t.project.region||"us-east-1";return{app:o,slug:c,region:l,stackName:De(t,s),artifactBucket:ea(c,s),assetsBucket:Io(c,s)}}function yt(t,s){let o=E(t,s),c=`${o.slug}-${s}`;return{region:o.region,slug:o.slug,stackName:o.stackName,functions:{http:`${c}-http`,queue:`${c}-queue`,cli:`${c}-cli`}}}async function q(t,s=8){let o;for(let c=0;c<s;c++)try{return await t()}catch(l){let d=l?.code||l?.name||"",m=String(l?.message||"");if(d==="ResourceConflictException"||/update is in progress|currently in the following state/i.test(m)){o=l,await new Promise((f)=>setTimeout(f,3000));continue}throw l}throw o}var ie=(t,s)=>`releases/${t}/${s}/current.json`;async function G(t,s,o,c){try{return await t.getObjectJson(s,ie(o,c))}catch{return null}}async function ae(t,s,o,c,l){await t.putObjectJson(s,ie(o,c),l)}async function Re(t,s){if(!t.secrets)return{};let o=new K(s),c={},l=Array.isArray(t.secrets)?t.secrets.map((d)=>({envName:d.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),secretId:d})):Object.entries(t.secrets).map(([d,m])=>({envName:d,secretId:m}));if(Array.isArray(t.secrets)){let d=new Map;for(let{envName:f,secretId:S}of l)d.set(f,[...d.get(f)??[],S]);let m=[...d.entries()].filter(([,f])=>f.length>1);if(m.length){let f=m.map(([S,h])=>`${S} ← ${h.join(", ")}`).join("; ");throw Error(`serverless secrets: multiple secrets map to the same env var (${f}). Use the map form { ENV_NAME: 'secret/id' } to disambiguate.`)}}for(let{envName:d,secretId:m}of l){let S=(await o.getSecretValue({SecretId:m})).SecretString??"";try{let h=JSON.parse(S);if(h&&typeof h==="object"&&!Array.isArray(h)){for(let[C,w]of Object.entries(h))c[C]=String(w);continue}}catch{}c[d]=S}return c}function Cd(t,s){let o={},c=s.DbProxyEndpoint||s.DbEndpoint;if(c)o.DB_CONNECTION="mysql",o.DB_HOST=c,o.DB_PORT="3306",o.DB_DATABASE=o.DB_DATABASE||"app";if(s.CacheEndpoint){if(o.REDIS_HOST=s.CacheEndpoint,o.REDIS_PORT="6379",t.cache?.driver==="elasticache")o.CACHE_STORE="redis",o.CACHE_DRIVER="redis",o.SESSION_DRIVER="redis"}return o}function Es(t,s,o,c,l,d,m,f={}){let S=t.kind==="php"?Ea({cacheDriver:t.cache?.driver==="elasticache"?"redis":"dynamodb"}):{};return{TSCLOUD_LAMBDA_MODE:c,TSCLOUD_ENV:o,MAINTENANCE_MODE:"0",...t.octane?{TSCLOUD_OCTANE:"1"}:{},...t.serveAssets?{TSCLOUD_SERVE_ASSETS:"1"}:{},...t.redirectRobotsTxt===!1?{TSCLOUD_REDIRECT_ROBOTS_TXT:"0"}:{},...S,...f,...s.app.cache?.driver!=="elasticache"?{TSCLOUD_CACHE_TABLE:`${s.slug}-${o}-cache`}:{},...m?{TSCLOUD_QUEUE:m,SQS_QUEUE:m}:{},...d?{ASSET_URL:d}:{},...t.env??{},...l}}function he(t){let s=t.slice(t.lastIndexOf(".")).toLowerCase();return{".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain",".map":"application/json"}[s]??"application/octet-stream"}function*oe(t){for(let s of me(t)){let o=ne(t,s);if(fe(o).isDirectory())yield*oe(o);else yield o}}async function ve(t,s,o,c,l=!1){let d=0;for(let m of oe(o)){let f=ye(o,m).replace(/\\/g,"/");if(!l&&f.split("/").some((S)=>S.startsWith(".")))continue;await t.putObject({bucket:s,key:`${c}/${f}`,body:pe(m),contentType:he(m),cacheControl:"public, max-age=31536000, immutable"}),d++}return d}function uo(t,s){let o=Object.entries(s).reduce((c,[l,d])=>c+Buffer.byteLength(`${l}=${d}`,"utf8"),0);if(o>4096){let c=Object.entries(s).map(([l,d])=>[l,Buffer.byteLength(`${l}=${d}`,"utf8")]).sort((l,d)=>d[1]-l[1]).slice(0,5).map(([l,d])=>`${l} (${d}B)`).join(", ");throw Error(`${t}: environment variables total ${o}B, over AWS's 4096B limit (${o-4096}B too large). Largest: ${c}. Move large/secret values out of env — store them in Secrets Manager and fetch at cold start.`)}}async function U(t,s,o,c){uo(s,o),await q(()=>t.updateFunctionConfiguration({FunctionName:s,Environment:{Variables:o}})),await t.waitForFunctionActive(s,120);let l=c.kind==="image"?{FunctionName:s,ImageUri:c.imageUri}:{FunctionName:s,S3Bucket:c.bucket,S3Key:c.key};await q(()=>t.updateFunctionCode(l)),await t.waitForFunctionActive(s,120)}async function X(t,s){let c=(await q(()=>t.publishVersion({FunctionName:s}))).Version;if(!c)throw Error(`publishVersion returned no version for ${s}`);return await q(()=>t.updateAlias({FunctionName:s,Name:"live",FunctionVersion:c})),c}async function lp(t,s,o={}){let c=E(t,s),{app:l,slug:d,region:m,stackName:f,artifactBucket:S}=c,h=o.projectRoot??process.cwd();i(`Deploying serverless app: ${d} (${s})`),e(`Stack: ${f}`),e(`Region: ${m}`);let C=new g(m),w=new v(m),b=new R(m),P=l.kind==="php",O=l.packaging==="image",N=Uo(l),V,I,k,Y,M=[];if(O&&N.usesLayer&&N.layerKind!=="php")throw Error(`packaging: 'image' currently supports PHP and managed Node runtimes. ${N.kind}${N.kind==="node"?` ${N.version}`:""} uses a custom runtime — `+"use the default zip packaging (the runtime layer is built + attached automatically).");if(O){p("Building + pushing container image");let{buildAndPushServerlessImage:y}=await import("./chunk-es4sdbrr.js"),A=await y({app:l,projectRoot:h,region:m,repository:`${d}-${s}`,skipBuild:o.skipBuild,onStep:(D)=>e(` ${D}`)});V=A.handlers,I={kind:"image",imageUri:A.imageUri},k=A.tag,M.push({ParameterKey:"ImageUri",ParameterValue:A.imageUri})}else{p("Packaging application");let y=P?wa({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}):await dn({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}),A=ga(d,s,y.sha256);if(e(`Artifact: ${y.sha256.slice(0,12)} (${(y.zip.length/1024).toFixed(0)} KB)`),V=y.handlers,k=y.sha256,N.usesLayer){let x=N.layerEnvVar?process.env[N.layerEnvVar]:void 0;if(Y=l.layers??(x?[x]:void 0),!Y?.length){let ge=N.layerKind==="php"?"serverless:build-php-layer":N.layerKind==="bun"?"serverless:build-bun-layer":"serverless:build-node-layer";throw Error(`${N.kind} apps on provided.al2023 need a runtime layer. Set environments.<env>.app.layers or the ${N.layerEnvVar} env var (build one with \`cloud ${ge}\`)${N.kind==="node"?", or use a managed Node version (18/20/22)":""}.`)}}if(!await C.bucketExists(S))p(`Creating artifact bucket ${S}`),await C.createBucket(S);if(await C.headObject(S,A).then((x)=>x!==null).catch(()=>!1))e("Artifact already uploaded — reusing");else p("Uploading artifact"),await C.putObject({bucket:S,key:A,body:y.zip,contentType:"application/zip"});I={kind:"zip",bucket:S,key:A},M.push({ParameterKey:"ArtifactBucket",ParameterValue:S},{ParameterKey:"ArtifactKey",ParameterValue:A})}let T=ha({config:t,environment:s,app:l,handlers:V,runtimeLayers:Y}),te=JSON.stringify(T.template),re=["CAPABILITY_NAMED_IAM"],L=await w.describeStacks({stackName:f}).then((y)=>y.Stacks[0]?.StackStatus).catch(()=>{return}),J=L!==void 0;if(L&&/DELETE_IN_PROGRESS/.test(L))p("Waiting for an in-progress stack delete to finish"),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;else if(L&&/(?:ROLLBACK_COMPLETE|REVIEW_IN_PROGRESS|CREATE_FAILED)/.test(L))p(`Deleting unusable stack (status ${L}) before recreate`),await w.deleteStack(f),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;p(J?"Updating infrastructure stack":"Creating infrastructure stack");try{if(J)await w.updateStack({stackName:f,templateBody:te,parameters:M,capabilities:re}),await w.waitForStack(f,"stack-update-complete");else await w.createStack({stackName:f,templateBody:te,parameters:M,capabilities:re,onFailure:"DELETE"}),await w.waitForStack(f,"stack-create-complete")}catch(y){if(/No updates are to be performed/i.test(String(y?.message)))e("No infrastructure changes");else throw y}let Q=await w.getStackOutputs(f).catch(()=>({})),B;if(l.assets){let y=ne(h,l.assets);if(de(y)){let A=l.assetDomain||Q.AssetsCdnDomain;B=A?`https://${A}/${k}`:void 0,p(`Syncing assets from ${l.assets}`);let D=await ve(C,c.assetsBucket,y,k,l.dotFilesAsAssets);e(`Uploaded ${D} asset(s)${B?` → ${B}`:""}`)}else a(`Assets directory not found: ${y}`)}p("Resolving secrets");let _=await Re(l,m);if(l.database?.connection==="aurora-serverless")try{let A=await new K(m).getSecretValue({SecretId:`${d}/${s}/db`}),D=JSON.parse(A.SecretString??"{}");if(D.username)_.DB_USERNAME=D.username;if(D.password)_.DB_PASSWORD=D.password}catch(y){a(`Could not resolve Aurora DB credentials: ${y.message}`)}if(!await C.bucketExists(S))await C.createBucket(S);let H=await G(C,S,d,s),F={},Z=T.queueNames[0],ee=Cd(l,Q);if(p("Activating functions"),F.http=Es(l,c,s,"http",_,B,Z,ee),await U(b,T.functionNames.http,F.http,I),F.cli=Es(l,c,s,"cli",_,B,Z,ee),await U(b,T.functionNames.cli,F.cli,I),T.queueNames.length)F.queue=Es(l,c,s,"queue",_,B,Z,ee),await U(b,T.functionNames.queue,F.queue,I);let se=(l.provisionedConcurrency??0)>0,W={};if(se){if(p("Publishing versions + flipping live alias"),W.http=await X(b,T.functionNames.http),W.cli=await X(b,T.functionNames.cli),T.queueNames.length)W.queue=await X(b,T.functionNames.queue)}if(await ae(C,S,d,s,{sha:k,code:I,previousSha:H?.sha,previousCode:H?.code,previousFunctionEnv:H?.functionEnv,...se?{functionVersions:W,previousFunctionVersions:H?.functionVersions}:{},functionEnv:F,functionNames:{http:T.functionNames.http,cli:T.functionNames.cli,...T.queueNames.length?{queue:T.functionNames.queue}:{}},assetUrl:B,timestamp:new Date().toISOString()}),!o.skipDeployHooks&&l.deploy?.length){p("Running deploy hooks");for(let y of l.deploy){e(` deploy: ${y}`);let A=await b.invoke({FunctionName:T.functionNames.cli,InvocationType:"RequestResponse",Payload:{command:y},LogType:"Tail"});if(A.FunctionError)throw r("Deploy hook failed — the new build is ALREADY LIVE."),e(` Roll back with: cloud serverless:rollback --env ${s}`),Error(`Deploy hook failed (${y}): ${A.Payload}`)}}let j=Q.HttpApiEndpoint;if(!o.skipHealthCheck&&j){p("Health check");try{let y=await fetch(j,{method:"GET"});e(`GET ${j} → ${y.status}`)}catch(y){a(`Health check could not reach ${j}: ${y.message}`)}}Se(["Serverless deploy complete","",j?`URL: ${j}`:"",`Stack: ${f}`,`Build: ${k.slice(0,12)}`].filter(Boolean).join(`
|
|
2
|
-
`),"green")}async function ws(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d)throw Error("No previous release to redeploy. Run a full deploy first.");i(`Redeploying ${o.slug} (${s}) — build ${d.sha.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Re-activating ${m} (${f})`),await U(l,f,d.functionEnv[m]??{},d.code);let S=d.functionVersions?.[m];if(S)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:S}))}n("Redeploy complete")}async function Cs(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d?.previousCode)throw Error("No previous release to roll back to.");i(`Rolling back ${o.slug} (${s}) → ${d.previousSha?.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Restoring ${m} (${f})`);let S=d.previousFunctionEnv?.[m]??d.functionEnv[m]??{};await U(l,f,S,d.previousCode);let h=d.previousFunctionVersions?.[m];if(h)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:h}))}await ae(c,o.artifactBucket,o.slug,s,{...d,sha:d.previousSha??d.sha,code:d.previousCode,functionEnv:d.previousFunctionEnv??d.functionEnv,functionVersions:d.previousFunctionVersions??d.functionVersions,previousSha:void 0,previousCode:void 0,previousFunctionEnv:void 0,previousFunctionVersions:void 0,timestamp:new Date().toISOString()}),n("Rollback complete")}async function po(t,s,o,c){let l=E(t,s),d=new R(l.region),m=`${l.slug}-${s}-http`,S={...(await d.getFunction(m)).Configuration?.Environment?.Variables??{}};if(S.MAINTENANCE_MODE=o?"1":"0",o&&c)S.MAINTENANCE_BYPASS_SECRET=c;if(!o)delete S.MAINTENANCE_BYPASS_SECRET;if(await q(()=>d.updateFunctionConfiguration({FunctionName:m,Environment:{Variables:S}})),(l.app.provisionedConcurrency??0)>0)await d.waitForFunctionActive(m,120),await X(d,m);n(o?"Application is now in maintenance mode (503)":"Application is live")}async function Mt(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"});if(m.FunctionError)throw Error(`Command failed: ${m.Payload}`);return m.Payload??""}var ce=(t,s)=>`commands/${t}/${s}/history.json`,Ne=50;async function le(t,s,o,c){try{return(await t.getObjectJson(s,ce(o,c)))?.records??[]}catch{return[]}}async function dp(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"}),f=m.Payload??"",S=m.FunctionError?"error":"ok",h=-1;try{let C=new g(c.region);if(await C.bucketExists(c.artifactBucket)){let w=await le(C,c.artifactBucket,c.slug,s);h=w.reduce((b,P)=>Math.max(b,P.id),0)+1,w.push({id:h,command:o,timestamp:new Date().toISOString(),status:S,output:f.slice(0,4000)}),await C.putObjectJson(c.artifactBucket,ce(c.slug,s),{records:w.slice(-Ne)})}}catch{}if(m.FunctionError)throw Error(`Command failed${h>0?` (#${h})`:""}: ${f}`);return{id:h,status:S,output:f}}async function Ad(t,s){let o=E(t,s),c=new g(o.region);return le(c,o.artifactBucket,o.slug,s)}async function up(t,s,o){let c=await Ad(t,s);if(!c.length)return;return o==null?c[c.length-1]:c.find((l)=>l.id===o)}async function pp(t,s,o){let c=Buffer.from(o,"utf-8").toString("base64");return Mt(t,s,`tscloud:db-query --sql-base64=${c}`)}async function z(t,s){let o=E(t,s),c=new v(o.region),l=new R(o.region),d=new g(o.region),m="not deployed",f={};try{let{Stacks:O}=await c.describeStacks({stackName:o.stackName});m=O?.[0]?.StackStatus??m;for(let N of O?.[0]?.Outputs??[])if(N.OutputKey)f[N.OutputKey]=N.OutputValue??""}catch{}let S=fa(o.app,o.slug,s),h=o.app.provisionedConcurrency??0,C=["http","cli",...S.length?["queue"]:[]],w=`${o.slug}-${s}`,b=[];for(let O of C){let N=`${w}-${O}`,V={mode:O,name:N,version:"$LATEST"};if(h>0){let I=await l.getAlias(N,"live").catch(()=>null);if(I?.FunctionVersion){V.version=I.FunctionVersion;let k=await l.getProvisionedConcurrencyConfig(N,"live").catch(()=>null);if(k)V.provisioned={status:k.Status??"-",allocated:k.AllocatedProvisionedConcurrentExecutions??0,requested:k.RequestedProvisionedConcurrentExecutions??0}}}b.push(V)}let P=await G(d,o.artifactBucket,o.slug,s).catch(()=>null);return{slug:o.slug,environment:s,region:o.region,stackStatus:m,endpoint:f.HttpApiEndpoint,assetUrl:P?.assetUrl,scheduler:o.app.scheduler??"on",queues:S,provisionedConcurrency:h,functions:b,lastRelease:P?{sha:P.sha,timestamp:P.timestamp}:void 0}}function ue(t,s){return`${t}-${s}-db`}async function As(t,s,o,c){let l=E(t,s);if(l.app.database?.connection!=="aurora-serverless")throw Error("No Aurora Serverless v2 database is configured for this environment.");let{RDSClient:d}=await import("./chunk-
|
|
1
|
+
import{De,ea,Io,ga,dn,Uo,fa,ha,Ea,wa}from"./chunk-4a8qt6e8.js";import{n,r,a,e,p,i,Se}from"./chunk-3jjggqfj.js";import{u}from"./chunk-q3xwh0r8.js";import{v}from"./chunk-qsyna6ng.js";import{R}from"./chunk-1j9vy88a.js";import{g}from"./chunk-2q27v6vz.js";import{existsSync as de,readdirSync as me,readFileSync as pe,statSync as fe}from"node:fs";import{join as ne,relative as ye}from"node:path";class K{client;region;constructor(t="us-east-1",s){this.region=t,this.client=new u}async createSecret(t){let s={Name:t.Name};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.Tags&&t.Tags.length>0)s.Tags=t.Tags;if(t.AddReplicaRegions&&t.AddReplicaRegions.length>0)s.AddReplicaRegions=t.AddReplicaRegions;if(t.ForceOverwriteReplicaSecret!==void 0)s.ForceOverwriteReplicaSecret=t.ForceOverwriteReplicaSecret;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CreateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,ReplicationStatus:o.ReplicationStatus}}async updateSecret(t){let s={SecretId:t.SecretId,ClientRequestToken:t.ClientRequestToken||crypto.randomUUID()};if(t.Description)s.Description=t.Description;if(t.KmsKeyId)s.KmsKeyId=t.KmsKeyId;if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UpdateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async putSecretValue(t){let s={SecretId:t.SecretId};if(t.SecretBinary)s.SecretBinary=t.SecretBinary;if(t.SecretString)s.SecretString=t.SecretString;if(t.VersionStages&&t.VersionStages.length>0)s.VersionStages=t.VersionStages;s.ClientRequestToken=t.ClientRequestToken||crypto.randomUUID();let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,VersionStages:o.VersionStages}}async getSecretValue(t){let s={SecretId:t.SecretId};if(t.VersionId)s.VersionId=t.VersionId;if(t.VersionStage)s.VersionStage=t.VersionStage;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetSecretValue","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId,SecretBinary:o.SecretBinary,SecretString:o.SecretString,VersionStages:o.VersionStages,CreatedDate:o.CreatedDate}}async describeSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DescribeSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return this.parseSecret(o)}async listSecrets(t){let s={};if(t?.MaxResults)s.MaxResults=t.MaxResults;if(t?.NextToken)s.NextToken=t.NextToken;if(t?.Filters&&t.Filters.length>0)s.Filters=t.Filters;if(t?.SortOrder)s.SortOrder=t.SortOrder;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.ListSecrets","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{SecretList:o.SecretList?.map((c)=>this.parseSecret(c)),NextToken:o.NextToken}}async deleteSecret(t){let s={SecretId:t.SecretId};if(t.RecoveryWindowInDays!==void 0)s.RecoveryWindowInDays=t.RecoveryWindowInDays;if(t.ForceDeleteWithoutRecovery!==void 0)s.ForceDeleteWithoutRecovery=t.ForceDeleteWithoutRecovery;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,DeletionDate:o.DeletionDate}}async restoreSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RestoreSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async rotateSecret(t){let s={SecretId:t.SecretId};if(t.ClientRequestToken)s.ClientRequestToken=t.ClientRequestToken;if(t.RotationLambdaARN)s.RotationLambdaARN=t.RotationLambdaARN;if(t.RotationRules)s.RotationRules=t.RotationRules;if(t.RotateImmediately!==void 0)s.RotateImmediately=t.RotateImmediately;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.RotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,VersionId:o.VersionId}}async cancelRotateSecret(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.CancelRotateSecret","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async getResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.GetResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name,ResourcePolicy:o.ResourcePolicy}}async putResourcePolicy(t){let s={SecretId:t.SecretId,ResourcePolicy:t.ResourcePolicy};if(t.BlockPublicPolicy!==void 0)s.BlockPublicPolicy=t.BlockPublicPolicy;let o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.PutResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async deleteResourcePolicy(t){let s={SecretId:t},o=await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.DeleteResourcePolicy","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)});return{ARN:o.ARN,Name:o.Name}}async tagResource(t){let s={SecretId:t.SecretId,Tags:t.Tags};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.TagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async untagResource(t){let s={SecretId:t.SecretId,TagKeys:t.TagKeys};await this.client.request({service:"secretsmanager",region:this.region,method:"POST",path:"/",headers:{"X-Amz-Target":"secretsmanager.UntagResource","Content-Type":"application/x-amz-json-1.1"},body:JSON.stringify(s)})}async setString(t,s,o){try{let c=await this.putSecretValue({SecretId:t,SecretString:s});return{ARN:c.ARN,VersionId:c.VersionId}}catch(c){if(c.code==="ResourceNotFoundException"){let l=await this.createSecret({Name:t,SecretString:s,Description:o?.description,KmsKeyId:o?.kmsKeyId,Tags:o?.tags});return{ARN:l.ARN,VersionId:l.VersionId}}throw c}}async setJson(t,s,o){return this.setString(t,JSON.stringify(s),o)}async getString(t){return(await this.getSecretValue({SecretId:t})).SecretString}async getJson(t){let s=await this.getString(t);if(s)return JSON.parse(s);return}async listAll(){let t=[],s;do{let o=await this.listSecrets({NextToken:s});if(o.SecretList)t.push(...o.SecretList);s=o.NextToken}while(s);return t}parseSecret(t){return{ARN:t.ARN,Name:t.Name,Description:t.Description,KmsKeyId:t.KmsKeyId,RotationEnabled:t.RotationEnabled,RotationLambdaARN:t.RotationLambdaARN,RotationRules:t.RotationRules,LastRotatedDate:t.LastRotatedDate,LastChangedDate:t.LastChangedDate,LastAccessedDate:t.LastAccessedDate,DeletedDate:t.DeletedDate,NextRotationDate:t.NextRotationDate,Tags:t.Tags,SecretVersionsToStages:t.SecretVersionsToStages,CreatedDate:t.CreatedDate,PrimaryRegion:t.PrimaryRegion}}}function E(t,s){let o=t.environments?.[s]?.app;if(!o)throw Error(`No serverless app configured for environment '${s}'. Add environments.${s}.app to your config.`);let c=t.project.slug,l=t.environments?.[s]?.region||t.project.region||"us-east-1";return{app:o,slug:c,region:l,stackName:De(t,s),artifactBucket:ea(c,s),assetsBucket:Io(c,s)}}function yt(t,s){let o=E(t,s),c=`${o.slug}-${s}`;return{region:o.region,slug:o.slug,stackName:o.stackName,functions:{http:`${c}-http`,queue:`${c}-queue`,cli:`${c}-cli`}}}async function q(t,s=8){let o;for(let c=0;c<s;c++)try{return await t()}catch(l){let d=l?.code||l?.name||"",m=String(l?.message||"");if(d==="ResourceConflictException"||/update is in progress|currently in the following state/i.test(m)){o=l,await new Promise((f)=>setTimeout(f,3000));continue}throw l}throw o}var ie=(t,s)=>`releases/${t}/${s}/current.json`;async function G(t,s,o,c){try{return await t.getObjectJson(s,ie(o,c))}catch{return null}}async function ae(t,s,o,c,l){await t.putObjectJson(s,ie(o,c),l)}async function Re(t,s){if(!t.secrets)return{};let o=new K(s),c={},l=Array.isArray(t.secrets)?t.secrets.map((d)=>({envName:d.split("/").pop().toUpperCase().replace(/[^A-Z0-9_]/g,"_"),secretId:d})):Object.entries(t.secrets).map(([d,m])=>({envName:d,secretId:m}));if(Array.isArray(t.secrets)){let d=new Map;for(let{envName:f,secretId:S}of l)d.set(f,[...d.get(f)??[],S]);let m=[...d.entries()].filter(([,f])=>f.length>1);if(m.length){let f=m.map(([S,h])=>`${S} ← ${h.join(", ")}`).join("; ");throw Error(`serverless secrets: multiple secrets map to the same env var (${f}). Use the map form { ENV_NAME: 'secret/id' } to disambiguate.`)}}for(let{envName:d,secretId:m}of l){let S=(await o.getSecretValue({SecretId:m})).SecretString??"";try{let h=JSON.parse(S);if(h&&typeof h==="object"&&!Array.isArray(h)){for(let[C,w]of Object.entries(h))c[C]=String(w);continue}}catch{}c[d]=S}return c}function Cd(t,s){let o={},c=s.DbProxyEndpoint||s.DbEndpoint;if(c)o.DB_CONNECTION="mysql",o.DB_HOST=c,o.DB_PORT="3306",o.DB_DATABASE=o.DB_DATABASE||"app";if(s.CacheEndpoint){if(o.REDIS_HOST=s.CacheEndpoint,o.REDIS_PORT="6379",t.cache?.driver==="elasticache")o.CACHE_STORE="redis",o.CACHE_DRIVER="redis",o.SESSION_DRIVER="redis"}return o}function Es(t,s,o,c,l,d,m,f={}){let S=t.kind==="php"?Ea({cacheDriver:t.cache?.driver==="elasticache"?"redis":"dynamodb"}):{};return{TSCLOUD_LAMBDA_MODE:c,TSCLOUD_ENV:o,MAINTENANCE_MODE:"0",...t.octane?{TSCLOUD_OCTANE:"1"}:{},...t.serveAssets?{TSCLOUD_SERVE_ASSETS:"1"}:{},...t.redirectRobotsTxt===!1?{TSCLOUD_REDIRECT_ROBOTS_TXT:"0"}:{},...S,...f,...s.app.cache?.driver!=="elasticache"?{TSCLOUD_CACHE_TABLE:`${s.slug}-${o}-cache`}:{},...m?{TSCLOUD_QUEUE:m,SQS_QUEUE:m}:{},...d?{ASSET_URL:d}:{},...t.env??{},...l}}function he(t){let s=t.slice(t.lastIndexOf(".")).toLowerCase();return{".html":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".json":"application/json",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain",".map":"application/json"}[s]??"application/octet-stream"}function*oe(t){for(let s of me(t)){let o=ne(t,s);if(fe(o).isDirectory())yield*oe(o);else yield o}}async function ve(t,s,o,c,l=!1){let d=0;for(let m of oe(o)){let f=ye(o,m).replace(/\\/g,"/");if(!l&&f.split("/").some((S)=>S.startsWith(".")))continue;await t.putObject({bucket:s,key:`${c}/${f}`,body:pe(m),contentType:he(m),cacheControl:"public, max-age=31536000, immutable"}),d++}return d}function uo(t,s){let o=Object.entries(s).reduce((c,[l,d])=>c+Buffer.byteLength(`${l}=${d}`,"utf8"),0);if(o>4096){let c=Object.entries(s).map(([l,d])=>[l,Buffer.byteLength(`${l}=${d}`,"utf8")]).sort((l,d)=>d[1]-l[1]).slice(0,5).map(([l,d])=>`${l} (${d}B)`).join(", ");throw Error(`${t}: environment variables total ${o}B, over AWS's 4096B limit (${o-4096}B too large). Largest: ${c}. Move large/secret values out of env — store them in Secrets Manager and fetch at cold start.`)}}async function U(t,s,o,c){uo(s,o),await q(()=>t.updateFunctionConfiguration({FunctionName:s,Environment:{Variables:o}})),await t.waitForFunctionActive(s,120);let l=c.kind==="image"?{FunctionName:s,ImageUri:c.imageUri}:{FunctionName:s,S3Bucket:c.bucket,S3Key:c.key};await q(()=>t.updateFunctionCode(l)),await t.waitForFunctionActive(s,120)}async function X(t,s){let c=(await q(()=>t.publishVersion({FunctionName:s}))).Version;if(!c)throw Error(`publishVersion returned no version for ${s}`);return await q(()=>t.updateAlias({FunctionName:s,Name:"live",FunctionVersion:c})),c}async function lp(t,s,o={}){let c=E(t,s),{app:l,slug:d,region:m,stackName:f,artifactBucket:S}=c,h=o.projectRoot??process.cwd();i(`Deploying serverless app: ${d} (${s})`),e(`Stack: ${f}`),e(`Region: ${m}`);let C=new g(m),w=new v(m),b=new R(m),P=l.kind==="php",O=l.packaging==="image",N=Uo(l),V,I,k,Y,M=[];if(O&&N.usesLayer&&N.layerKind!=="php")throw Error(`packaging: 'image' currently supports PHP and managed Node runtimes. ${N.kind}${N.kind==="node"?` ${N.version}`:""} uses a custom runtime — `+"use the default zip packaging (the runtime layer is built + attached automatically).");if(O){p("Building + pushing container image");let{buildAndPushServerlessImage:y}=await import("./chunk-v95b2dy0.js"),A=await y({app:l,projectRoot:h,region:m,repository:`${d}-${s}`,skipBuild:o.skipBuild,onStep:(D)=>e(` ${D}`)});V=A.handlers,I={kind:"image",imageUri:A.imageUri},k=A.tag,M.push({ParameterKey:"ImageUri",ParameterValue:A.imageUri})}else{p("Packaging application");let y=P?wa({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}):await dn({projectRoot:h,app:l,skipBuild:o.skipBuild,onStep:(x)=>e(` ${x}`)}),A=ga(d,s,y.sha256);if(e(`Artifact: ${y.sha256.slice(0,12)} (${(y.zip.length/1024).toFixed(0)} KB)`),V=y.handlers,k=y.sha256,N.usesLayer){let x=N.layerEnvVar?process.env[N.layerEnvVar]:void 0;if(Y=l.layers??(x?[x]:void 0),!Y?.length){let ge=N.layerKind==="php"?"serverless:build-php-layer":N.layerKind==="bun"?"serverless:build-bun-layer":"serverless:build-node-layer";throw Error(`${N.kind} apps on provided.al2023 need a runtime layer. Set environments.<env>.app.layers or the ${N.layerEnvVar} env var (build one with \`cloud ${ge}\`)${N.kind==="node"?", or use a managed Node version (18/20/22)":""}.`)}}if(!await C.bucketExists(S))p(`Creating artifact bucket ${S}`),await C.createBucket(S);if(await C.headObject(S,A).then((x)=>x!==null).catch(()=>!1))e("Artifact already uploaded — reusing");else p("Uploading artifact"),await C.putObject({bucket:S,key:A,body:y.zip,contentType:"application/zip"});I={kind:"zip",bucket:S,key:A},M.push({ParameterKey:"ArtifactBucket",ParameterValue:S},{ParameterKey:"ArtifactKey",ParameterValue:A})}let T=ha({config:t,environment:s,app:l,handlers:V,runtimeLayers:Y}),te=JSON.stringify(T.template),re=["CAPABILITY_NAMED_IAM"],L=await w.describeStacks({stackName:f}).then((y)=>y.Stacks[0]?.StackStatus).catch(()=>{return}),J=L!==void 0;if(L&&/DELETE_IN_PROGRESS/.test(L))p("Waiting for an in-progress stack delete to finish"),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;else if(L&&/(?:ROLLBACK_COMPLETE|REVIEW_IN_PROGRESS|CREATE_FAILED)/.test(L))p(`Deleting unusable stack (status ${L}) before recreate`),await w.deleteStack(f),await w.waitForStack(f,"stack-delete-complete").catch(()=>{}),J=!1;p(J?"Updating infrastructure stack":"Creating infrastructure stack");try{if(J)await w.updateStack({stackName:f,templateBody:te,parameters:M,capabilities:re}),await w.waitForStack(f,"stack-update-complete");else await w.createStack({stackName:f,templateBody:te,parameters:M,capabilities:re,onFailure:"DELETE"}),await w.waitForStack(f,"stack-create-complete")}catch(y){if(/No updates are to be performed/i.test(String(y?.message)))e("No infrastructure changes");else throw y}let Q=await w.getStackOutputs(f).catch(()=>({})),B;if(l.assets){let y=ne(h,l.assets);if(de(y)){let A=l.assetDomain||Q.AssetsCdnDomain;B=A?`https://${A}/${k}`:void 0,p(`Syncing assets from ${l.assets}`);let D=await ve(C,c.assetsBucket,y,k,l.dotFilesAsAssets);e(`Uploaded ${D} asset(s)${B?` → ${B}`:""}`)}else a(`Assets directory not found: ${y}`)}p("Resolving secrets");let _=await Re(l,m);if(l.database?.connection==="aurora-serverless")try{let A=await new K(m).getSecretValue({SecretId:`${d}/${s}/db`}),D=JSON.parse(A.SecretString??"{}");if(D.username)_.DB_USERNAME=D.username;if(D.password)_.DB_PASSWORD=D.password}catch(y){a(`Could not resolve Aurora DB credentials: ${y.message}`)}if(!await C.bucketExists(S))await C.createBucket(S);let H=await G(C,S,d,s),F={},Z=T.queueNames[0],ee=Cd(l,Q);if(p("Activating functions"),F.http=Es(l,c,s,"http",_,B,Z,ee),await U(b,T.functionNames.http,F.http,I),F.cli=Es(l,c,s,"cli",_,B,Z,ee),await U(b,T.functionNames.cli,F.cli,I),T.queueNames.length)F.queue=Es(l,c,s,"queue",_,B,Z,ee),await U(b,T.functionNames.queue,F.queue,I);let se=(l.provisionedConcurrency??0)>0,W={};if(se){if(p("Publishing versions + flipping live alias"),W.http=await X(b,T.functionNames.http),W.cli=await X(b,T.functionNames.cli),T.queueNames.length)W.queue=await X(b,T.functionNames.queue)}if(await ae(C,S,d,s,{sha:k,code:I,previousSha:H?.sha,previousCode:H?.code,previousFunctionEnv:H?.functionEnv,...se?{functionVersions:W,previousFunctionVersions:H?.functionVersions}:{},functionEnv:F,functionNames:{http:T.functionNames.http,cli:T.functionNames.cli,...T.queueNames.length?{queue:T.functionNames.queue}:{}},assetUrl:B,timestamp:new Date().toISOString()}),!o.skipDeployHooks&&l.deploy?.length){p("Running deploy hooks");for(let y of l.deploy){e(` deploy: ${y}`);let A=await b.invoke({FunctionName:T.functionNames.cli,InvocationType:"RequestResponse",Payload:{command:y},LogType:"Tail"});if(A.FunctionError)throw r("Deploy hook failed — the new build is ALREADY LIVE."),e(` Roll back with: cloud serverless:rollback --env ${s}`),Error(`Deploy hook failed (${y}): ${A.Payload}`)}}let j=Q.HttpApiEndpoint;if(!o.skipHealthCheck&&j){p("Health check");try{let y=await fetch(j,{method:"GET"});e(`GET ${j} → ${y.status}`)}catch(y){a(`Health check could not reach ${j}: ${y.message}`)}}Se(["Serverless deploy complete","",j?`URL: ${j}`:"",`Stack: ${f}`,`Build: ${k.slice(0,12)}`].filter(Boolean).join(`
|
|
2
|
+
`),"green")}async function ws(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d)throw Error("No previous release to redeploy. Run a full deploy first.");i(`Redeploying ${o.slug} (${s}) — build ${d.sha.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Re-activating ${m} (${f})`),await U(l,f,d.functionEnv[m]??{},d.code);let S=d.functionVersions?.[m];if(S)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:S}))}n("Redeploy complete")}async function Cs(t,s){let o=E(t,s),c=new g(o.region),l=new R(o.region),d=await G(c,o.artifactBucket,o.slug,s);if(!d?.previousCode)throw Error("No previous release to roll back to.");i(`Rolling back ${o.slug} (${s}) → ${d.previousSha?.slice(0,12)}`);for(let[m,f]of Object.entries(d.functionNames)){if(!f)continue;p(`Restoring ${m} (${f})`);let S=d.previousFunctionEnv?.[m]??d.functionEnv[m]??{};await U(l,f,S,d.previousCode);let h=d.previousFunctionVersions?.[m];if(h)await q(()=>l.updateAlias({FunctionName:f,Name:"live",FunctionVersion:h}))}await ae(c,o.artifactBucket,o.slug,s,{...d,sha:d.previousSha??d.sha,code:d.previousCode,functionEnv:d.previousFunctionEnv??d.functionEnv,functionVersions:d.previousFunctionVersions??d.functionVersions,previousSha:void 0,previousCode:void 0,previousFunctionEnv:void 0,previousFunctionVersions:void 0,timestamp:new Date().toISOString()}),n("Rollback complete")}async function po(t,s,o,c){let l=E(t,s),d=new R(l.region),m=`${l.slug}-${s}-http`,S={...(await d.getFunction(m)).Configuration?.Environment?.Variables??{}};if(S.MAINTENANCE_MODE=o?"1":"0",o&&c)S.MAINTENANCE_BYPASS_SECRET=c;if(!o)delete S.MAINTENANCE_BYPASS_SECRET;if(await q(()=>d.updateFunctionConfiguration({FunctionName:m,Environment:{Variables:S}})),(l.app.provisionedConcurrency??0)>0)await d.waitForFunctionActive(m,120),await X(d,m);n(o?"Application is now in maintenance mode (503)":"Application is live")}async function Mt(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"});if(m.FunctionError)throw Error(`Command failed: ${m.Payload}`);return m.Payload??""}var ce=(t,s)=>`commands/${t}/${s}/history.json`,Ne=50;async function le(t,s,o,c){try{return(await t.getObjectJson(s,ce(o,c)))?.records??[]}catch{return[]}}async function dp(t,s,o){let c=E(t,s),l=new R(c.region),d=`${c.slug}-${s}-cli`,m=await l.invoke({FunctionName:d,InvocationType:"RequestResponse",Payload:{command:o},LogType:"Tail"}),f=m.Payload??"",S=m.FunctionError?"error":"ok",h=-1;try{let C=new g(c.region);if(await C.bucketExists(c.artifactBucket)){let w=await le(C,c.artifactBucket,c.slug,s);h=w.reduce((b,P)=>Math.max(b,P.id),0)+1,w.push({id:h,command:o,timestamp:new Date().toISOString(),status:S,output:f.slice(0,4000)}),await C.putObjectJson(c.artifactBucket,ce(c.slug,s),{records:w.slice(-Ne)})}}catch{}if(m.FunctionError)throw Error(`Command failed${h>0?` (#${h})`:""}: ${f}`);return{id:h,status:S,output:f}}async function Ad(t,s){let o=E(t,s),c=new g(o.region);return le(c,o.artifactBucket,o.slug,s)}async function up(t,s,o){let c=await Ad(t,s);if(!c.length)return;return o==null?c[c.length-1]:c.find((l)=>l.id===o)}async function pp(t,s,o){let c=Buffer.from(o,"utf-8").toString("base64");return Mt(t,s,`tscloud:db-query --sql-base64=${c}`)}async function z(t,s){let o=E(t,s),c=new v(o.region),l=new R(o.region),d=new g(o.region),m="not deployed",f={};try{let{Stacks:O}=await c.describeStacks({stackName:o.stackName});m=O?.[0]?.StackStatus??m;for(let N of O?.[0]?.Outputs??[])if(N.OutputKey)f[N.OutputKey]=N.OutputValue??""}catch{}let S=fa(o.app,o.slug,s),h=o.app.provisionedConcurrency??0,C=["http","cli",...S.length?["queue"]:[]],w=`${o.slug}-${s}`,b=[];for(let O of C){let N=`${w}-${O}`,V={mode:O,name:N,version:"$LATEST"};if(h>0){let I=await l.getAlias(N,"live").catch(()=>null);if(I?.FunctionVersion){V.version=I.FunctionVersion;let k=await l.getProvisionedConcurrencyConfig(N,"live").catch(()=>null);if(k)V.provisioned={status:k.Status??"-",allocated:k.AllocatedProvisionedConcurrentExecutions??0,requested:k.RequestedProvisionedConcurrentExecutions??0}}}b.push(V)}let P=await G(d,o.artifactBucket,o.slug,s).catch(()=>null);return{slug:o.slug,environment:s,region:o.region,stackStatus:m,endpoint:f.HttpApiEndpoint,assetUrl:P?.assetUrl,scheduler:o.app.scheduler??"on",queues:S,provisionedConcurrency:h,functions:b,lastRelease:P?{sha:P.sha,timestamp:P.timestamp}:void 0}}function ue(t,s){return`${t}-${s}-db`}async function As(t,s,o,c){let l=E(t,s);if(l.app.database?.connection!=="aurora-serverless")throw Error("No Aurora Serverless v2 database is configured for this environment.");let{RDSClient:d}=await import("./chunk-2qrr4ydb.js"),m=new d(l.region),f=ue(l.slug,s);p(`Scaling ${f} → ${o}–${c} ACUs`),await m.modifyDBCluster({DBClusterIdentifier:f,ServerlessV2ScalingConfiguration:{MinCapacity:o,MaxCapacity:c},ApplyImmediately:!0}),n(`Scaling applied to ${f} (takes effect shortly).`)}async function mp(t,s,o){let c=E(t,s);if(c.app.database?.connection!=="aurora-serverless")throw Error("No Aurora Serverless v2 database is configured for this environment.");if(!o.toTime&&!o.latest)throw Error("Specify a restore point: --to <ISO timestamp> or --latest.");let{RDSClient:l}=await import("./chunk-2qrr4ydb.js"),d=new l(c.region),m=ue(c.slug,s),f=o.latest?"latest":o.toTime.toISOString().replace(/[^0-9]/g,"").slice(0,14),S=o.target??`${m}-restore-${f}`;p(`Restoring ${m} → new cluster ${S} (${o.latest?"latest restorable time":o.toTime.toISOString()})`),await d.restoreDBClusterToPointInTime({DBClusterIdentifier:S,SourceDBClusterIdentifier:m,RestoreToTime:o.toTime,UseLatestRestorableTime:o.latest}),p("Waiting for the restored cluster to be ready");for(let h=0;h<120;h++){let{DBClusters:C}=await d.describeDBClusters({DBClusterIdentifier:S}),w=C?.[0]?.Status;if(w&&w!=="creating")break;await new Promise((b)=>setTimeout(b,15000))}return p("Adding a writer instance"),await d.createDBInstance({DBInstanceIdentifier:`${S}-1`,DBClusterIdentifier:S,Engine:"aurora-mysql",DBInstanceClass:"db.serverless"}),n(`Restore complete → cluster ${S} with writer ${S}-1. Point an env's database at it once available.`),S}
|
|
3
3
|
export{K,yt,Cd,Es,uo,lp,ws,Cs,po,Mt,dp,Ad,up,pp,z,As,mp};
|
|
@@ -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{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{me}from"./chunk-fjxsj9z9.js";import"./chunk-q3xwh0r8.js";export{me as RDSClient};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{zu,Hu,qu,Wu}from"./chunk-
|
|
1
|
+
import{zu,Hu,qu,Wu}from"./chunk-ccykpema.js";import"./chunk-2q27v6vz.js";import"./chunk-q3xwh0r8.js";import"./chunk-4a8qt6e8.js";export{Wu as deleteFailoverReplicaBuckets,zu as ensureFailoverReplicaBuckets,Hu as grantFailoverReplicaAccess,qu as seedFailoverReplicas};
|