/** * Deploy binding: which indexed function a function resource runs (change: add-iac-deploy-binding). * * A Lambda (Terraform `aws_lambda_function.handler`, CloudFormation/SAM `Handler` with `CodeUri`) * names its code as `.`: `src/orders.handler`, `app.lambda_handler`, * `pkg.module.handler`. The module is resolved literally against the indexed source files, relative * to the code location, the repository root, and the template's directory; the export must be a * function indexed in that file. The result is a `deploys_symbol` edge from the resource to the * function, so impact reaches the infrastructure and the function counts as deployed (live). * * A handler that names the BUILT file (`dist/orders.handler`) is mapped to its source through the * project's own declared mapping — `tsconfig`'s `outDir`/`rootDir`, or a package's `main`/`source` * pair (change: add-iac-deploy-binding-commands). An `outDir` the project maps to no input stays * unresolved: an output path says nothing about where its input lives. * * Nothing is matched by similarity. A handler that is not a literal, names no indexed file, or * names no indexed function in it is returned as an unresolved binding with the reason, never * dropped silently. */ import type { CallEdge, FunctionNode } from '../call-graph-types.js'; import type { IacGraph } from './types.js'; import { type BuildOutputMap } from './build-output.js'; export interface UnresolvedDeployBinding { resource: string; file: string; line: number; handler?: string; reason: string; } /** * The ecosystems whose extractor populates `IacResource.deploys` — the authoritative source of * the `iacCodeBinding` capability, so the matrix cannot claim an ecosystem no reader binds * (change: add-iac-deploy-binding-commands). A resource in any other ecosystem names no code, so * no binding is looked for and none is reported. */ export declare const IAC_CODE_BINDING_LANGUAGES: ReadonlySet; export declare function bindDeployHandlers(graph: IacGraph, codeNodes: readonly FunctionNode[], build?: BuildOutputMap): { edges: CallEdge[]; unresolved: UnresolvedDeployBinding[]; }; //# sourceMappingURL=deploy-binding.d.ts.map