/** * Compile Command * * Loads configuration and features from disk, calls the remote compiler API, * writes the generated files to the project root, and runs post-compile commands. * * Project structure: * my-app/ * ├── quickback/ * │ ├── quickback.config.ts * │ ├── features/... * │ └── drizzle/ ← migration SQL + meta (compiler-owned) * ├── src/ ← compiled code written here * ├── supabase/migrations/ ← for Supabase provider * └── package.json */ /** * `build.outputDir` → the migration staging workspace's `outputRootPath`. * * The two use different bases, which is the whole reason this exists. * `outputDir` is authored relative to the **quickback/ dir** (every other * reader does `join(quickbackDir, outputDir)`), while staging resolves its * paths against the **project root** and rejects anything containing `..`. * Passing the raw value made a legitimate `outputDir: "../src"` — config in * `quickback/`, generated tree at `/src`, the standard nested layout — * read as a path-escape attempt and fail the compile. * * Returns a POSIX-style path relative to the project root, or `undefined` * when the project doesn't set `outputDir`. */ export declare function resolveOutputRootPath(projectRoot: string, quickbackDir: string, outputDir: string | undefined): string | undefined; export interface CompileOptions { /** * Whether to splice the schema-driven kitchen-sink block into the * user's quickback.config.ts after a successful compile. Defaults * to true; the CLI accepts `--no-sync-config` to disable. */ syncConfig?: boolean; /** * Request detailed compiler failure output, including the failing command, * exit code, stderr/stdout tails, and any suggested fixes. */ verbose?: boolean; /** * Apply safe additive managed-column declarations to authored feature * schemas before loading them for compilation. */ fixSchema?: boolean; /** * Continue compiling when an action's input schema fails to harvest, * falling back to the compiler's static Zod parser. `--allow-degraded-schemas`. * * Off by default since v0.63.0: a fallback schema keeps its `properties` * and silently loses `required` + `additionalProperties`, so the operation * still looks typed while enforcing nothing. That degradation used to be * the default and shipped hundreds of unenforced operations * before anyone compared the specs structurally. */ allowDegradedSchemas?: boolean; } export declare function compile(options?: CompileOptions): Promise; //# sourceMappingURL=compile.d.ts.map