@kysera/migrations 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import {z}from'zod';var i=z.object({dryRun:z.boolean().default(false),logger:z.any().optional(),useTransactions:z.boolean().default(false),stopOnError:z.boolean().default(true),verbose:z.boolean().default(true)}),o=z.object({name:z.string().min(1,"Migration name is required"),description:z.string().optional(),breaking:z.boolean().default(false),tags:z.array(z.string()).default([]),estimatedDuration:z.string().optional()}),a=z.object({logger:z.any().optional()}),e=z.object({name:z.string().min(1,"Plugin name is required"),version:z.string().min(1,"Plugin version is required"),onInit:z.any().optional(),beforeMigration:z.any().optional(),afterMigration:z.any().optional(),onMigrationError:z.any().optional()}),p=z.object({executed:z.array(z.string()),pending:z.array(z.string()),total:z.number().int().nonnegative()}),u=z.object({executed:z.array(z.string()),skipped:z.array(z.string()),failed:z.array(z.string()),duration:z.number().nonnegative(),dryRun:z.boolean()}),g=i.extend({plugins:z.array(e).optional()});function s(n){return i.parse(n)}function l(n){return i.safeParse(n)}function f(n){return o.parse(n)}function y(n){return o.safeParse(n)}export{o as MigrationDefinitionSchema,a as MigrationPluginOptionsSchema,e as MigrationPluginSchema,u as MigrationResultSchema,i as MigrationRunnerOptionsSchema,g as MigrationRunnerWithPluginsOptionsSchema,p as MigrationStatusSchema,f as parseMigrationDefinition,s as parseMigrationRunnerOptions,y as safeParseMigrationDefinition,l as safeParseMigrationRunnerOptions};//# sourceMappingURL=schemas.js.map
2
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemas.ts"],"names":["MigrationRunnerOptionsSchema","z","MigrationDefinitionSchema","MigrationPluginOptionsSchema","MigrationPluginSchema","MigrationStatusSchema","MigrationResultSchema","MigrationRunnerWithPluginsOptionsSchema","parseMigrationRunnerOptions","options","safeParseMigrationRunnerOptions","parseMigrationDefinition","definition","safeParseMigrationDefinition"],"mappings":"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","file":"schemas.js","sourcesContent":["import { z } from 'zod';\n\n// ============================================================================\n// Migration Runner Options Schema\n// ============================================================================\n\n/**\n * Schema for MigrationRunnerOptions\n * Validates configuration options for the migration runner\n */\nexport const MigrationRunnerOptionsSchema = z.object({\n /** Enable dry run mode (preview only, no changes) */\n dryRun: z.boolean().default(false),\n /** Logger function - validated as any since function schemas are complex in Zod v4 */\n logger: z.any().optional(),\n /** Wrap each migration in a transaction */\n useTransactions: z.boolean().default(false),\n /** Stop on first error */\n stopOnError: z.boolean().default(true),\n /** Show detailed metadata in logs */\n verbose: z.boolean().default(true),\n});\n\n// ============================================================================\n// Migration Definition Schema\n// ============================================================================\n\n/**\n * Schema for MigrationDefinition\n * Validates migration definition objects used with defineMigrations()\n */\nexport const MigrationDefinitionSchema = z.object({\n /** Migration name - must be non-empty */\n name: z.string().min(1, 'Migration name is required'),\n /** Human-readable description shown during migration */\n description: z.string().optional(),\n /** Whether this is a breaking change - shows warning before execution */\n breaking: z.boolean().default(false),\n /** Tags for categorization (e.g., ['schema', 'data', 'index']) */\n tags: z.array(z.string()).default([]),\n /** Estimated duration as human-readable string (e.g., '30s', '2m') */\n estimatedDuration: z.string().optional(),\n});\n\n// ============================================================================\n// Migration Plugin Options Schema\n// ============================================================================\n\n/**\n * Schema for MigrationPluginOptions\n * Validates options passed to migration plugins\n */\nexport const MigrationPluginOptionsSchema = z.object({\n /** Optional logger for the plugin */\n logger: z.any().optional(),\n});\n\n// ============================================================================\n// Migration Plugin Schema\n// ============================================================================\n\n/**\n * Schema for MigrationPlugin\n * Validates migration plugin structure\n */\nexport const MigrationPluginSchema = z.object({\n /** Plugin name */\n name: z.string().min(1, 'Plugin name is required'),\n /** Plugin version */\n version: z.string().min(1, 'Plugin version is required'),\n /** Called once when the runner is initialized */\n onInit: z.any().optional(),\n /** Called before migration execution */\n beforeMigration: z.any().optional(),\n /** Called after successful migration execution */\n afterMigration: z.any().optional(),\n /** Called on migration error */\n onMigrationError: z.any().optional(),\n});\n\n// ============================================================================\n// Migration Status Schema\n// ============================================================================\n\n/**\n * Schema for MigrationStatus\n * Validates migration status results\n */\nexport const MigrationStatusSchema = z.object({\n /** List of executed migration names */\n executed: z.array(z.string()),\n /** List of pending migration names */\n pending: z.array(z.string()),\n /** Total migration count */\n total: z.number().int().nonnegative(),\n});\n\n// ============================================================================\n// Migration Result Schema\n// ============================================================================\n\n/**\n * Schema for MigrationResult\n * Validates results from migration runs\n */\nexport const MigrationResultSchema = z.object({\n /** Successfully executed migrations */\n executed: z.array(z.string()),\n /** Migrations that were skipped (already executed) */\n skipped: z.array(z.string()),\n /** Migrations that failed */\n failed: z.array(z.string()),\n /** Total duration in milliseconds */\n duration: z.number().nonnegative(),\n /** Whether the run was in dry-run mode */\n dryRun: z.boolean(),\n});\n\n// ============================================================================\n// Extended Runner Options Schema (with plugins)\n// ============================================================================\n\n/**\n * Schema for MigrationRunnerWithPluginsOptions\n * Extends MigrationRunnerOptionsSchema with plugin support\n */\nexport const MigrationRunnerWithPluginsOptionsSchema = MigrationRunnerOptionsSchema.extend({\n /** Plugins to apply */\n plugins: z.array(MigrationPluginSchema).optional(),\n});\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\n/** Input type for MigrationRunnerOptions - before defaults are applied */\nexport type MigrationRunnerOptionsInput = z.input<typeof MigrationRunnerOptionsSchema>;\n\n/** Output type for MigrationRunnerOptions - after defaults are applied */\nexport type MigrationRunnerOptionsOutput = z.output<typeof MigrationRunnerOptionsSchema>;\n\n/** Input type for MigrationDefinition - before defaults are applied */\nexport type MigrationDefinitionInput = z.input<typeof MigrationDefinitionSchema>;\n\n/** Output type for MigrationDefinition - after defaults are applied */\nexport type MigrationDefinitionOutput = z.output<typeof MigrationDefinitionSchema>;\n\n/** Input type for MigrationPluginOptions */\nexport type MigrationPluginOptionsInput = z.input<typeof MigrationPluginOptionsSchema>;\n\n/** Output type for MigrationPluginOptions */\nexport type MigrationPluginOptionsOutput = z.output<typeof MigrationPluginOptionsSchema>;\n\n/** Input type for MigrationPlugin */\nexport type MigrationPluginInput = z.input<typeof MigrationPluginSchema>;\n\n/** Output type for MigrationPlugin */\nexport type MigrationPluginOutput = z.output<typeof MigrationPluginSchema>;\n\n/** Type for MigrationStatus */\nexport type MigrationStatusType = z.infer<typeof MigrationStatusSchema>;\n\n/** Type for MigrationResult */\nexport type MigrationResultType = z.infer<typeof MigrationResultSchema>;\n\n/** Input type for MigrationRunnerWithPluginsOptions */\nexport type MigrationRunnerWithPluginsOptionsInput = z.input<typeof MigrationRunnerWithPluginsOptionsSchema>;\n\n/** Output type for MigrationRunnerWithPluginsOptions */\nexport type MigrationRunnerWithPluginsOptionsOutput = z.output<typeof MigrationRunnerWithPluginsOptionsSchema>;\n\n// ============================================================================\n// Validation Helpers\n// ============================================================================\n\n/**\n * Validate and parse MigrationRunnerOptions with defaults\n */\nexport function parseMigrationRunnerOptions(\n options: unknown\n): MigrationRunnerOptionsOutput {\n return MigrationRunnerOptionsSchema.parse(options);\n}\n\n/**\n * Safely validate MigrationRunnerOptions without throwing\n * Returns result with success boolean and either data or error\n */\nexport function safeParseMigrationRunnerOptions(options: unknown) {\n return MigrationRunnerOptionsSchema.safeParse(options);\n}\n\n/**\n * Validate and parse MigrationDefinition with defaults\n */\nexport function parseMigrationDefinition(\n definition: unknown\n): MigrationDefinitionOutput {\n return MigrationDefinitionSchema.parse(definition);\n}\n\n/**\n * Safely validate MigrationDefinition without throwing\n * Returns result with success boolean and either data or error\n */\nexport function safeParseMigrationDefinition(definition: unknown) {\n return MigrationDefinitionSchema.safeParse(definition);\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kysera/migrations",
3
- "version": "0.4.1",
4
- "description": "Database migration management for Kysera ORM",
3
+ "version": "0.5.1",
4
+ "description": "Database migration management for Kysera ORM with dry-run support and flexible rollback capabilities",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -20,21 +20,33 @@
20
20
  "orm",
21
21
  "migrations",
22
22
  "database",
23
- "typescript"
23
+ "typescript",
24
+ "kysera"
24
25
  ],
25
26
  "author": "Kysera Team",
26
27
  "license": "MIT",
27
- "peerDependencies": {
28
- "kysely": "^0.28.7"
28
+ "dependencies": {
29
+ "@kysera/core": "0.5.1"
29
30
  },
30
31
  "devDependencies": {
31
- "@types/node": "^24.6.2",
32
- "kysely": "^0.28.7",
33
- "typescript": "^5.9.3",
34
- "vitest": "^3.2.4",
35
- "better-sqlite3": "^12.4.1",
36
32
  "@types/better-sqlite3": "^7.6.13",
37
- "tsup": "^8.5.0"
33
+ "@types/node": "^24.10.1",
34
+ "@vitest/coverage-v8": "^4.0.15",
35
+ "better-sqlite3": "^12.5.0",
36
+ "kysely": "^0.28.8",
37
+ "tsup": "^8.5.1",
38
+ "typescript": "^5.9.3",
39
+ "vitest": "^4.0.15",
40
+ "zod": "^4.1.13"
41
+ },
42
+ "peerDependencies": {
43
+ "kysely": ">=0.28.8",
44
+ "zod": "^4.1.13"
45
+ },
46
+ "peerDependenciesMeta": {
47
+ "zod": {
48
+ "optional": true
49
+ }
38
50
  },
39
51
  "sideEffects": false,
40
52
  "engines": {
@@ -46,6 +58,7 @@
46
58
  "dev": "tsup --watch",
47
59
  "test": "vitest run",
48
60
  "test:watch": "vitest",
61
+ "test:coverage": "vitest run --coverage",
49
62
  "typecheck": "tsc --noEmit"
50
63
  }
51
64
  }