@venturekit/infra 0.0.0-dev.20260514025106 → 0.0.0-dev.20260515021849
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/cdk/app-stack.d.ts +330 -0
- package/dist/cdk/app-stack.d.ts.map +1 -0
- package/dist/cdk/app-stack.js +875 -0
- package/dist/cdk/app-stack.js.map +1 -0
- package/dist/cdk/config-stack.d.ts +104 -0
- package/dist/cdk/config-stack.d.ts.map +1 -0
- package/dist/cdk/config-stack.js +161 -0
- package/dist/cdk/config-stack.js.map +1 -0
- package/dist/cdk/data-stack.d.ts +198 -0
- package/dist/cdk/data-stack.d.ts.map +1 -0
- package/dist/cdk/data-stack.js +511 -0
- package/dist/cdk/data-stack.js.map +1 -0
- package/dist/cdk/edge-stack.d.ts +91 -0
- package/dist/cdk/edge-stack.d.ts.map +1 -0
- package/dist/cdk/edge-stack.js +364 -0
- package/dist/cdk/edge-stack.js.map +1 -0
- package/dist/cdk/identity-stack.d.ts +98 -0
- package/dist/cdk/identity-stack.d.ts.map +1 -0
- package/dist/cdk/identity-stack.js +254 -0
- package/dist/cdk/identity-stack.js.map +1 -0
- package/dist/cdk/index.d.ts +16 -0
- package/dist/cdk/index.d.ts.map +1 -1
- package/dist/cdk/index.js +17 -0
- package/dist/cdk/index.js.map +1 -1
- package/dist/cdk/messaging-stack.d.ts +109 -0
- package/dist/cdk/messaging-stack.d.ts.map +1 -0
- package/dist/cdk/messaging-stack.js +320 -0
- package/dist/cdk/messaging-stack.js.map +1 -0
- package/dist/cdk/network-stack.d.ts +87 -0
- package/dist/cdk/network-stack.d.ts.map +1 -0
- package/dist/cdk/network-stack.js +265 -0
- package/dist/cdk/network-stack.js.map +1 -0
- package/dist/cdk/shared/cross-stack-refs.d.ts +278 -0
- package/dist/cdk/shared/cross-stack-refs.d.ts.map +1 -0
- package/dist/cdk/shared/cross-stack-refs.js +326 -0
- package/dist/cdk/shared/cross-stack-refs.js.map +1 -0
- package/dist/cdk/shared/lambda-helpers.d.ts +82 -0
- package/dist/cdk/shared/lambda-helpers.d.ts.map +1 -0
- package/dist/cdk/shared/lambda-helpers.js +201 -0
- package/dist/cdk/shared/lambda-helpers.js.map +1 -0
- package/dist/cdk/shared/ssm-keys.d.ts +460 -0
- package/dist/cdk/shared/ssm-keys.d.ts.map +1 -0
- package/dist/cdk/shared/ssm-keys.js +291 -0
- package/dist/cdk/shared/ssm-keys.js.map +1 -0
- package/dist/cdk/stack.d.ts +3 -11
- package/dist/cdk/stack.d.ts.map +1 -1
- package/dist/cdk/stack.js +184 -41
- package/dist/cdk/stack.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tier 6 — App stack (the "fast" tier).
|
|
3
|
+
*
|
|
4
|
+
* Owns every resource that turns over on a normal `vk deploy`:
|
|
5
|
+
*
|
|
6
|
+
* - Lambda functions: route handlers, queue consumers, scheduled
|
|
7
|
+
* handlers, notify dispatcher, bounce handler, migration runner.
|
|
8
|
+
* - HttpApi route/integration registrations on the imported API.
|
|
9
|
+
* - SQS event-source mappings binding consumer Lambdas to
|
|
10
|
+
* queues imported from the messaging stack.
|
|
11
|
+
* - EventBridge rules + Lambda targets for `schedules[]` intents
|
|
12
|
+
* and the notify dispatcher cron.
|
|
13
|
+
* - Per-Lambda CloudWatch LogGroups (so retention is enforced
|
|
14
|
+
* even on cold-start failures, before the runtime can write
|
|
15
|
+
* its first line).
|
|
16
|
+
* - Shared Lambda execution role + shared SG (in VPC) — the
|
|
17
|
+
* common identity through which every grant is plumbed.
|
|
18
|
+
* - Internal HMAC secret for Lambda-to-Lambda `invoke()` signing.
|
|
19
|
+
* - All IAM grants: Cognito admin, S3 R/W, Secrets Manager
|
|
20
|
+
* reads, SES send, SQS consume/produce, SNS publish.
|
|
21
|
+
*
|
|
22
|
+
* # Lifecycle position
|
|
23
|
+
*
|
|
24
|
+
* Updated on every code change (~daily on active projects). Every
|
|
25
|
+
* resource here is DESTROY-on-delete: re-creating a Lambda or an
|
|
26
|
+
* ESM from a saved CFN template is cheap and safe (the durable
|
|
27
|
+
* state — DB rows, queue messages, S3 objects — lives in
|
|
28
|
+
* lower-tier stacks). Logs are an exception: under strict
|
|
29
|
+
* dataSafety we RETAIN log groups so post-mortem debugging
|
|
30
|
+
* survives a redeploy.
|
|
31
|
+
*
|
|
32
|
+
* # What the constructor does (in order)
|
|
33
|
+
*
|
|
34
|
+
* 1. Resolve cross-stack refs from imported props or via SSM.
|
|
35
|
+
* 2. Create shared Lambda execution role + (if VPC) shared SG.
|
|
36
|
+
* 3. Generate / import the internal HMAC secret.
|
|
37
|
+
* 4. Assemble `baseEnvVars` from cross-tier SSM-resolved values:
|
|
38
|
+
* DB connection, primary storage, primary notify, Cognito,
|
|
39
|
+
* federated provider secrets.
|
|
40
|
+
* 5. Wire each Lambda intent (delegated to step-9b/c/d helpers
|
|
41
|
+
* that follow this scaffold).
|
|
42
|
+
*
|
|
43
|
+
* # Why the role + SG live in this stack
|
|
44
|
+
*
|
|
45
|
+
* They're scoped to "the Lambdas in this app deployment" — every
|
|
46
|
+
* grant attached to them is therefore lifecycle-aligned with the
|
|
47
|
+
* Lambdas. A redeploy that adds a new managed policy or a new
|
|
48
|
+
* `addPermission` call only churns the app stack; the lower-tier
|
|
49
|
+
* resources stay untouched.
|
|
50
|
+
*
|
|
51
|
+
* # What this stack does NOT do
|
|
52
|
+
*
|
|
53
|
+
* - **No durable state.** Every resource here is replaceable.
|
|
54
|
+
* If you need RETAIN-class durability, the resource belongs in
|
|
55
|
+
* data / messaging / identity / config / edge.
|
|
56
|
+
*
|
|
57
|
+
* - **No HttpApi creation.** Imported via
|
|
58
|
+
* `HttpApi.fromHttpApiAttributes` from the edge stack's published
|
|
59
|
+
* `apiId` SSM key.
|
|
60
|
+
*
|
|
61
|
+
* - **No SSM publication.** App-stack outputs (Lambda ARNs, log
|
|
62
|
+
* group names) are operational details that no other VentureKit
|
|
63
|
+
* stack consumes. Operators inspecting them go through the AWS
|
|
64
|
+
* console / CLI, not SSM.
|
|
65
|
+
*/
|
|
66
|
+
import * as cdk from 'aws-cdk-lib';
|
|
67
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
68
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
69
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
70
|
+
import * as apigatewayv2 from 'aws-cdk-lib/aws-apigatewayv2';
|
|
71
|
+
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
72
|
+
import { Construct } from 'constructs';
|
|
73
|
+
import { type EnvConfig, type VentureIntent } from '@venturekit/core';
|
|
74
|
+
/**
|
|
75
|
+
* Imported cross-stack refs the CLI generator passes in. Every field
|
|
76
|
+
* is optional because not every project declares every tier — a free-
|
|
77
|
+
* tier project with no auth + no notify + no VPC needs none of these.
|
|
78
|
+
*/
|
|
79
|
+
export interface AppStackImports {
|
|
80
|
+
/**
|
|
81
|
+
* Imported VPC, when the lower-tier stacks created one. Resolved
|
|
82
|
+
* from `networkKeys.vpcId` SSM or constructed via
|
|
83
|
+
* `Vpc.fromVpcAttributes` by the generator. App stack uses it to
|
|
84
|
+
* re-attach the shared Lambda SG and to issue VPC-bound Lambda
|
|
85
|
+
* functions.
|
|
86
|
+
*/
|
|
87
|
+
vpc?: ec2.IVpc;
|
|
88
|
+
/**
|
|
89
|
+
* HttpApi imported from the edge stack via
|
|
90
|
+
* `HttpApi.fromHttpApiAttributes({ httpApiId, apiEndpoint })`.
|
|
91
|
+
* The app stack registers routes on this API.
|
|
92
|
+
*/
|
|
93
|
+
api?: apigatewayv2.IHttpApi;
|
|
94
|
+
/**
|
|
95
|
+
* Cognito User Pool ARN per declared `auth` intent — for
|
|
96
|
+
* `cognito-idp:Admin*` grant scoping. Resolved by the generator
|
|
97
|
+
* from `identityKeys.userPoolArn` SSM.
|
|
98
|
+
*/
|
|
99
|
+
userPoolArnsByAuthId?: Map<string, string>;
|
|
100
|
+
/** Federated-provider Secret ARNs per auth intent. */
|
|
101
|
+
federatedSecretArnsByAuthId?: Map<string, Record<string, string>>;
|
|
102
|
+
/** S3 bucket names per `storage` intent — for env-var injection + grant. */
|
|
103
|
+
storageBucketNamesById?: Map<string, string>;
|
|
104
|
+
/** SQS queue ARNs per `queues` intent — for grant + ESM source. */
|
|
105
|
+
queueArnsById?: Map<string, string>;
|
|
106
|
+
/** SNS notify events topic ARNs per `notify` intent. */
|
|
107
|
+
notifyEventsTopicArnsById?: Map<string, string>;
|
|
108
|
+
/** CloudFront CDN domain per storage intent that has `cdn:true`. */
|
|
109
|
+
storageCdnDomainsById?: Map<string, string>;
|
|
110
|
+
/** SES configuration set names per `notify` intent. */
|
|
111
|
+
notifyConfigurationSetNamesById?: Map<string, string>;
|
|
112
|
+
/** WhatsApp token Secret ARNs per `notify` intent (when channel enabled). */
|
|
113
|
+
whatsappTokenSecretArnsById?: Map<string, string>;
|
|
114
|
+
/**
|
|
115
|
+
* Dispatcher on-failure DLQ ARN per `notify` intent. Created
|
|
116
|
+
* by the messaging stack (RETAIN-class). The dispatcher Lambda
|
|
117
|
+
* uses this as its async-invoke `deadLetterQueue` so a broken
|
|
118
|
+
* dispatcher's failures accumulate across redeploys.
|
|
119
|
+
*/
|
|
120
|
+
notifyDispatcherDlqArnsById?: Map<string, string>;
|
|
121
|
+
/** Same idea for the bounce-handler Lambda. */
|
|
122
|
+
notifyBounceDlqArnsById?: Map<string, string>;
|
|
123
|
+
/**
|
|
124
|
+
* DB connection params per `database` intent. The generator
|
|
125
|
+
* resolves these from `dataKeys.rdsEndpoint*` SSM lookups so
|
|
126
|
+
* env-var injection happens at app-stack synth, not Lambda
|
|
127
|
+
* runtime.
|
|
128
|
+
*/
|
|
129
|
+
databaseEndpointsById?: Map<string, {
|
|
130
|
+
host: string;
|
|
131
|
+
port: string;
|
|
132
|
+
name: string;
|
|
133
|
+
secretArn?: string;
|
|
134
|
+
}>;
|
|
135
|
+
}
|
|
136
|
+
export interface VentureAppStackProps extends cdk.StackProps {
|
|
137
|
+
projectName: string;
|
|
138
|
+
stage: string;
|
|
139
|
+
envConfig: EnvConfig;
|
|
140
|
+
/** Full intent surface — Lambda discovery walks `routes`, `queues`, etc. */
|
|
141
|
+
infrastructure: VentureIntent;
|
|
142
|
+
/** Cross-stack imports (network/data/identity/config/messaging/edge). */
|
|
143
|
+
imports: AppStackImports;
|
|
144
|
+
/**
|
|
145
|
+
* Project root directory — the dir containing `package.json` +
|
|
146
|
+
* `node_modules`. Used as the bundling asset root so esbuild
|
|
147
|
+
* resolves handler imports against installed dependencies.
|
|
148
|
+
* Required when any Lambda intent is declared; ignored otherwise.
|
|
149
|
+
*/
|
|
150
|
+
projectDir?: string;
|
|
151
|
+
/**
|
|
152
|
+
* Routes directory relative to `projectDir`. Defaults to `src/routes`
|
|
153
|
+
* matching the local-dev server convention. Walked by
|
|
154
|
+
* `discoverRouteFiles` to produce one Lambda per file. Pass an
|
|
155
|
+
* empty string or non-existent path to skip route discovery
|
|
156
|
+
* entirely.
|
|
157
|
+
*/
|
|
158
|
+
routesDir?: string;
|
|
159
|
+
/**
|
|
160
|
+
* Queue handlers directory. Defaults to `src/queues`. Each file
|
|
161
|
+
* becomes one consumer Lambda; the corresponding queue (by id ===
|
|
162
|
+
* file-derived name) MUST be present in `imports.queueArnsById`,
|
|
163
|
+
* otherwise the consumer has nothing to consume and we throw at
|
|
164
|
+
* synth time.
|
|
165
|
+
*/
|
|
166
|
+
queuesDir?: string;
|
|
167
|
+
/**
|
|
168
|
+
* Cron handlers directory. Defaults to `src/crons`. Each file
|
|
169
|
+
* becomes one Lambda; the corresponding `schedules[]` intent (by
|
|
170
|
+
* id) provides the schedule expression. Files without a matching
|
|
171
|
+
* intent are created as Lambdas WITHOUT an EventBridge rule —
|
|
172
|
+
* the operator can wire the schedule manually post-deploy.
|
|
173
|
+
*/
|
|
174
|
+
cronsDir?: string;
|
|
175
|
+
/**
|
|
176
|
+
* @internal Test-only flag: when true, every Lambda uses an inline
|
|
177
|
+
* stub instead of Docker bundling. Cuts test runtimes from minutes
|
|
178
|
+
* to seconds and avoids requiring Docker on CI.
|
|
179
|
+
*/
|
|
180
|
+
skipBundling?: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* App stack — see file header for the full lifecycle rationale.
|
|
184
|
+
*
|
|
185
|
+
* **Step 9a scaffold.** This skeleton covers:
|
|
186
|
+
* - shared Lambda role + (if VPC) shared SG
|
|
187
|
+
* - imported HttpApi + VPC handles exposed for sub-step helpers
|
|
188
|
+
* - internal HMAC secret
|
|
189
|
+
* - `baseEnvVars` assembled from cross-stack imports
|
|
190
|
+
*
|
|
191
|
+
* Lambda creation lives in subsequent sub-steps (9b: routes;
|
|
192
|
+
* 9c: queue ESMs + schedules + migration; 9d: notify + grants).
|
|
193
|
+
* Calling the constructor with no Lambda-bearing intents produces
|
|
194
|
+
* a stack with the role / SG / secret only — no Lambdas, no
|
|
195
|
+
* routes — which is the correct no-op behavior for projects that
|
|
196
|
+
* declare only data + messaging.
|
|
197
|
+
*/
|
|
198
|
+
export declare class VentureAppStack extends cdk.Stack {
|
|
199
|
+
/** Shared execution role for every Lambda in this stack. */
|
|
200
|
+
readonly lambdaRole: iam.Role;
|
|
201
|
+
/** Shared SG when a VPC is imported; undefined for VPC-less projects. */
|
|
202
|
+
readonly lambdaSecurityGroup?: ec2.SecurityGroup;
|
|
203
|
+
/** Internal HMAC signing secret for Lambda-to-Lambda `invoke()`. */
|
|
204
|
+
readonly internalHmacSecret: secretsmanager.Secret;
|
|
205
|
+
/**
|
|
206
|
+
* Base environment variables applied to every Lambda this stack
|
|
207
|
+
* creates. Subsequent helpers (9b/c/d) read this when constructing
|
|
208
|
+
* each Lambda's `environment` block. Mutable during construction
|
|
209
|
+
* — per-intent helpers append `STORAGE_<ID>_*`, `NOTIFY_<ID>_*`,
|
|
210
|
+
* etc. — frozen at the end of the constructor.
|
|
211
|
+
*/
|
|
212
|
+
readonly baseEnvVars: Record<string, string>;
|
|
213
|
+
/** The imported HttpApi — sub-step 9b registers routes on this. */
|
|
214
|
+
readonly api?: apigatewayv2.IHttpApi;
|
|
215
|
+
/** Imported VPC, when present. */
|
|
216
|
+
readonly vpc?: ec2.IVpc;
|
|
217
|
+
/**
|
|
218
|
+
* Route Lambdas keyed by slug. Sub-step 9c reads this when wiring
|
|
219
|
+
* cross-cutting grants (e.g. Cognito admin auth) onto every
|
|
220
|
+
* Lambda — though the shared role makes most grants role-level
|
|
221
|
+
* not function-level, this map lets per-function grants happen
|
|
222
|
+
* when needed.
|
|
223
|
+
*/
|
|
224
|
+
readonly routeLambdas: Map<string, lambda.Function>;
|
|
225
|
+
/** Queue consumer Lambdas keyed by handler name. */
|
|
226
|
+
readonly queueLambdas: Map<string, lambda.Function>;
|
|
227
|
+
/** Scheduled / cron Lambdas keyed by handler name. */
|
|
228
|
+
readonly scheduleLambdas: Map<string, lambda.Function>;
|
|
229
|
+
/** Notify dispatcher Lambdas keyed by notify intent id. */
|
|
230
|
+
readonly notifyDispatcherLambdas: Map<string, lambda.Function>;
|
|
231
|
+
/** Notify bounce-handler Lambdas keyed by notify intent id. */
|
|
232
|
+
readonly notifyBounceLambdas: Map<string, lambda.Function>;
|
|
233
|
+
private readonly isStrictRetain;
|
|
234
|
+
private readonly projectName;
|
|
235
|
+
private readonly stage;
|
|
236
|
+
private readonly envConfig;
|
|
237
|
+
private readonly skipBundling;
|
|
238
|
+
private readonly projectDir;
|
|
239
|
+
constructor(scope: Construct, id: string, props: VentureAppStackProps);
|
|
240
|
+
/**
|
|
241
|
+
* Build the Lambda code asset for a handler file. Production path:
|
|
242
|
+
* esbuild in-process, sub-second per handler. Test path: inline
|
|
243
|
+
* stub that satisfies API Gateway's contract without invoking
|
|
244
|
+
* esbuild.
|
|
245
|
+
*/
|
|
246
|
+
private bundleHandlerCode;
|
|
247
|
+
/**
|
|
248
|
+
* Materialise one route handler: a Lambda function + an
|
|
249
|
+
* `HttpRoute` on the imported API + an `HttpLambdaIntegration`
|
|
250
|
+
* binding them together. CDK's `HttpLambdaIntegration` adds the
|
|
251
|
+
* `lambda:InvokeFunction` resource policy automatically so the
|
|
252
|
+
* cross-stack pattern works the same as in-stack.
|
|
253
|
+
*/
|
|
254
|
+
private createRouteFunction;
|
|
255
|
+
/**
|
|
256
|
+
* Build a Lambda function with the standard app-stack properties
|
|
257
|
+
* (shared role, VPC attachment, base env vars, log retention).
|
|
258
|
+
* Used by `createRouteFunction` (now refactored), `createQueueConsumer`,
|
|
259
|
+
* and `createScheduleHandler` to keep the per-Lambda invariants in
|
|
260
|
+
* one place.
|
|
261
|
+
*/
|
|
262
|
+
private buildLambda;
|
|
263
|
+
/**
|
|
264
|
+
* Materialise one queue consumer: a Lambda + an `SqsEventSource`
|
|
265
|
+
* binding it to the queue ARN imported from the messaging stack.
|
|
266
|
+
* The DLQ already lives in the messaging tier (RETAIN-class
|
|
267
|
+
* durability); we don't recreate it here.
|
|
268
|
+
*
|
|
269
|
+
* Throws if no matching queue ARN is in `imports.queueArnsById` —
|
|
270
|
+
* a consumer with no queue is dead infrastructure.
|
|
271
|
+
*/
|
|
272
|
+
private createQueueConsumer;
|
|
273
|
+
/**
|
|
274
|
+
* Materialise one scheduled handler: a Lambda + (optional)
|
|
275
|
+
* EventBridge `Rule` that targets it. When no schedule intent is
|
|
276
|
+
* declared for the handler, the Lambda is created without a Rule
|
|
277
|
+
* — the operator can wire the trigger manually post-deploy.
|
|
278
|
+
*
|
|
279
|
+
* Each scheduled Lambda gets its own DLQ for async-invoke
|
|
280
|
+
* failures. Without it, a broken cron silently stops working
|
|
281
|
+
* after Lambda's 2-retry budget. The DLQ is app-tier (DESTROY-on-
|
|
282
|
+
* delete): EventBridge-delivery failures don't accumulate
|
|
283
|
+
* meaningfully across redeploys, and the messaging-tier DLQs are
|
|
284
|
+
* specific to the notify dispatcher / bounce paths.
|
|
285
|
+
*/
|
|
286
|
+
private createScheduleHandler;
|
|
287
|
+
/**
|
|
288
|
+
* Attach IAM grants to the shared Lambda role for every imported
|
|
289
|
+
* resource. Called once during construction, before any Lambda is
|
|
290
|
+
* created — CDK collects role policies eagerly at synth, so the
|
|
291
|
+
* order doesn't matter, but co-locating all grants in one helper
|
|
292
|
+
* makes the policy surface auditable.
|
|
293
|
+
*
|
|
294
|
+
* Grant inventory:
|
|
295
|
+
* - DB master credential secret read (one per database)
|
|
296
|
+
* - Federated provider Secret reads (one per provider per auth intent)
|
|
297
|
+
* - WhatsApp token Secret reads (one per notify intent with channel)
|
|
298
|
+
* - S3 bucket read+write (one per storage intent)
|
|
299
|
+
* - Cognito admin actions (one per auth intent's user pool)
|
|
300
|
+
* - SES send (account-level, scoped via configuration set)
|
|
301
|
+
*
|
|
302
|
+
* SQS receive grants come from `SqsEventSource` per consumer
|
|
303
|
+
* Lambda, NOT here, because they need the role+function pair and
|
|
304
|
+
* are added at consumer-creation time. Same for HttpApi invoke
|
|
305
|
+
* (added by `HttpLambdaIntegration`) and EventBridge invoke
|
|
306
|
+
* (added by `LambdaFunction` target).
|
|
307
|
+
*/
|
|
308
|
+
private applyImportedGrants;
|
|
309
|
+
/**
|
|
310
|
+
* Provision dispatcher + bounce-handler Lambdas per declared
|
|
311
|
+
* `notify[]` intent. The Lambdas bundle stub modules shipped
|
|
312
|
+
* by `@venturekit/notify` from the consumer's `node_modules`;
|
|
313
|
+
* the stubs delegate to the operator's notify client module at
|
|
314
|
+
* runtime. Each Lambda gets its on-failure DLQ from the
|
|
315
|
+
* messaging tier (RETAIN-class) — losing those DLQs across
|
|
316
|
+
* redeploys would discard the canonical record of failed
|
|
317
|
+
* deliveries.
|
|
318
|
+
*
|
|
319
|
+
* # Why both Lambdas live HERE not in messaging stack
|
|
320
|
+
*
|
|
321
|
+
* The Lambdas are throwaway app-tier code; their schedule
|
|
322
|
+
* (EventBridge rule) and DLQs (messaging-tier RETAIN) are
|
|
323
|
+
* separate concerns. Co-locating the handler with the rule + DLQ
|
|
324
|
+
* would force the messaging stack to depend on the handler
|
|
325
|
+
* code's bundled hash, which churns every code change and
|
|
326
|
+
* defeats the lifecycle split.
|
|
327
|
+
*/
|
|
328
|
+
private provisionNotifyHandlers;
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=app-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-stack.d.ts","sourceRoot":"","sources":["../../src/cdk/app-stack.ts"],"names":[],"mappings":"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"}
|