import { Ut as DriftBehavior, er as Dialect, nt as DbConfig, rt as MigrationAdapterFactory } from "./index-DcuMZ9kb.mjs"; import { CliTypegen, KickCliPlugin } from "@forinda/kickjs-cli-kit"; import { Command } from "commander"; //#region src/cli-typegen.d.ts declare const kickDbTypegen: () => CliTypegen; //#endregion //#region src/cli.d.ts /** * Authoring shape for the db config — every field optional, defaults * applied by {@link resolveKickDbConfig}. This is the same shape as the * `db` block in `kick.config.ts`, so a config authored with * `defineKickDbConfig` drops straight into either place. */ interface KickDbConfigInput { schemaPath?: string; migrationsDir?: string; dialect?: Dialect; connectionString?: string; adapter?: MigrationAdapterFactory; /** * How `migrate` reacts to out-of-band schema (drift): `'error'` * (default), `'warn'`, or `'ignore'`. The check is dialect-normalised, * so SQLite/MySQL's lossy introspection doesn't false-positive. */ driftCheck?: DriftBehavior; } /** * Identity helper for type inference — mirrors vite's `defineConfig`. * Use it in a standalone `kickjs-db.config.ts` (`export default * defineKickDbConfig({ ... })`) or as the value of `kick.config.ts`'s * `db` field. Both resolve through {@link resolveKickDbConfig}. */ declare function defineKickDbConfig(cfg: KickDbConfigInput): KickDbConfigInput; /** * Shallow-merge db configs, later wins (vite's `mergeConfig` spirit). * Lets a standalone `kickjs-db.config.ts` layer over a project's * `kick.config.ts` `db` block, or vice versa. */ declare function mergeKickDbConfig(...configs: (KickDbConfigInput | undefined)[]): KickDbConfigInput; /** Apply defaults to a {@link KickDbConfigInput}, yielding a resolved {@link DbConfig}. */ declare function resolveKickDbConfig(block: KickDbConfigInput | undefined): DbConfig; /** A config source — resolved lazily so each command reads fresh config. */ type DbConfigResolver = () => DbConfig | Promise; /** * Attach the db commands (`generate`, `migrate *`, `introspect`) onto a * commander command. `parent` is the command they hang off — the plugin * passes a `db` subcommand (so `kick db generate`), the standalone bin * passes the root program (so `kickjs-db generate`). `getConfig` supplies * the resolved {@link DbConfig} — under kickjs-cli from `ctx.config.db`, * standalone from `kickjs-db.config.ts`. */ declare function registerDbCommands(parent: Command, getConfig: DbConfigResolver): void; /** * The database CLI plugin. Mount it in `kick.config.ts`: * * ```ts * import { defineConfig } from '@forinda/kickjs-cli' * import { dbCliPlugin } from '@forinda/kickjs-db/cli' * * export default defineConfig({ plugins: [dbCliPlugin] }) * ``` * * `kick db generate|migrate|introspect` then read config from the * `db` block of the same `kick.config.ts`. */ declare const dbCliPlugin: KickCliPlugin; //#endregion export { DbConfigResolver, KickDbConfigInput, dbCliPlugin, defineKickDbConfig, kickDbTypegen, mergeKickDbConfig, registerDbCommands, resolveKickDbConfig }; //# sourceMappingURL=cli.d.mts.map