/** * Migration pragmas — per-file declarations read from the migration's own * comments. * * Authorization for a hazardous migration lives here rather than on the * `pipework migrate` command line, and the distinction is the whole point. * A CLI flag authorizes an *invocation*: it is written once, into a deploy * workflow, by someone who cannot know what migration 0071 will contain nine * months later. The first destructive migration that has to ship puts * `--allow-destructive` in CI permanently, and from then on the gate is * decorative — every later migration is pre-approved by a decision nobody * revisits, and nothing about it shows up in review. * * A pragma authorizes a *file*. It is written by the person writing the * destructive statement, at the moment they write it; it appears in the diff, * so it is reviewed; it is versioned, so `git log` says who approved which * drop; and it cannot go blanket — a pragma in 0065 says nothing about 0071. * The deploy command stays a bare `pipework migrate` forever, which means * there is no flag to erode. * * The migration tracker already records a content hash per applied migration * and refuses edited-but-applied files, so a pragma cannot be quietly added * after the fact. */ export declare const PRAGMA_PREFIX = "-- pipework:"; /** Hazard classes that require a per-migration declaration. */ export type PragmaKind = 'destructive' | 'locking' | 'dynamic'; export declare const PRAGMA_FOR: Record; /** * True when `sql` declares the given pragma. Pragmas are recognized only on * their own comment line, so prose that happens to mention one does not * authorize anything. */ export declare function hasPragma(sql: string, kind: PragmaKind): boolean; //# sourceMappingURL=pragma.d.ts.map