/** * The Fjall-owned dev-substrate synth entrypoint, as source text. * * The webapp worker (B2a) materialises this VERBATIM into * `fjall//infrastructure.ts` in the ephemeral CDK workspace and writes a * sibling `dev-substrate-params.json`; deploy-core then runs it via the workspace * `cdk.json` (`"app": "npx tsx infrastructure.ts"`). It is held as a string (not a * compiled module) so the worker — which has `@fjall/util` but NOT * `@fjall/components-infrastructure` — can emit it without importing the construct * package; its imports resolve at synth time in the workspace, where the pinned * `@fjall/*` packages are installed. * * The schema/props drift guard is NOT this string (it is not typechecked): it is * the compile-time `IDevSubstrateProps` ≡ `DevSubstrateSynthProps` assertion in * `@fjall/components-infrastructure`. This string only wires the parsed params into * `addDevSubstrate`. */ export declare const DEV_SUBSTRATE_ENTRYPOINT_SOURCE = "#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { App } from \"@fjall/components-infrastructure\";\nimport {\n DevSubstrateParamsSchema,\n DEV_SUBSTRATE_PARAMS_FILENAME\n} from \"@fjall/util\";\n\n// Deliberate throw (not a Result): a malformed/stale params file aborts synth\n// cleanly before any CFN stack exists, so nothing rolls back. The only caller is\n// this entrypoint under cdk synth, which surfaces the ZodError as a synth failure.\nconst params = DevSubstrateParamsSchema.parse(\n JSON.parse(readFileSync(DEV_SUBSTRATE_PARAMS_FILENAME, \"utf-8\"))\n);\n\n// appName is the single source (design VERDICT-3): it drives the CDK stack prefix\n// here AND must equal the on-disk fjall/ dir basename deploy-core derives\n// operation.appName from \u2014 divergence is a hard \"no stacks match\" no-deploy.\nconst app = App.getApp(params.appName, { network: { maxAzs: 2 } });\n\napp.addDevSubstrate(params);\n";