chkit 0.1.1 → 0.1.2-beta.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAkCjF,eAAO,MAAM,cAAc,EAAE,gBAK5B,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,gBAAgB,EAKtB,MAAM,kBAAkB,CAAA;AA4CzB,eAAO,MAAM,cAAc,EAAE,gBAK5B,CAAA"}
@@ -1,16 +1,14 @@
1
- import { mkdir, readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- import { defineFlags, typedFlags } from '../../plugins.js';
1
+ import { mkdir } from 'node:fs/promises';
2
+ import { defineFlags, typedFlags, } from '../../plugins.js';
4
3
  import { resolveDirs } from '../../runtime/config.js';
4
+ import { debug } from '../../runtime/debug.js';
5
5
  import { GLOBAL_FLAGS } from '../../runtime/global-flags.js';
6
- import { emitJson } from '../../runtime/json-output.js';
7
- import { createJournalStore, resolveJournalTableName } from '../../runtime/journal-store.js';
8
- import { extractMigrationMetadata } from '../../runtime/migration-metadata.js';
6
+ import { createJournalStore } from '../../runtime/journal-store.js';
9
7
  import { findChecksumMismatches, listMigrations, readSnapshot, } from '../../runtime/migration-store.js';
10
- import { resolveTableScope, tableKeysFromDefinitions, } from '../../runtime/table-scope.js';
11
- import { debug } from '../../runtime/debug.js';
8
+ import { resolveTableScope, tableKeysFromDefinitions } from '../../runtime/table-scope.js';
12
9
  import { applyMigration } from './apply.js';
13
10
  import { scanDestructive } from './destructive.js';
11
+ import { emitApplySummaryJson, emitChecksumMismatchJson, emitDestructiveBlockedJson, emitNoPending, emitNoScopeMatch, emitPlanJson, renderApplied, renderApplySummary, renderMigrationLog, renderPlanOnlyNotice, renderPlanText, } from './output.js';
14
12
  import { confirmApply, confirmDestructiveExecution, isBackgroundOrCI, printDestructiveOperationDetails, } from './prompts.js';
15
13
  import { filterPendingByScope } from './scope.js';
16
14
  const MIGRATE_FLAGS = defineFlags([
@@ -25,6 +23,27 @@ export const migrateCommand = {
25
23
  run: cmdMigrate,
26
24
  };
27
25
  async function cmdMigrate(runCtx) {
26
+ const ctx = await prepareMigration(runCtx);
27
+ const checksumExit = await runChecksumGate(ctx);
28
+ if (checksumExit !== undefined)
29
+ return checksumExit;
30
+ const scope = await resolvePendingScope(ctx);
31
+ if (scope.exit !== undefined)
32
+ return scope.exit;
33
+ const { pending, undeterminedScope } = scope;
34
+ const planExit = await renderPlan(ctx, pending, undeterminedScope);
35
+ if (planExit !== undefined)
36
+ return planExit;
37
+ const confirmExit = await runConfirmGate(ctx);
38
+ if (confirmExit !== undefined)
39
+ return confirmExit;
40
+ const destructiveExit = await runDestructiveGate(ctx, pending);
41
+ if (destructiveExit !== undefined)
42
+ return destructiveExit;
43
+ return applyPending(ctx, pending, undeterminedScope);
44
+ }
45
+ /** Parse flags, resolve deps, run onConfigLoaded, and load the pending set. */
46
+ async function prepareMigration(runCtx) {
28
47
  const { flags, config, configPath, pluginRuntime, pluginContext } = runCtx;
29
48
  const f = typedFlags(flags, [...GLOBAL_FLAGS, ...MIGRATE_FLAGS]);
30
49
  const executeRequested = f['--apply'] === true || f['--execute'] === true;
@@ -54,34 +73,41 @@ async function cmdMigrate(runCtx) {
54
73
  const appliedNames = new Set(journal.applied.map((entry) => entry.name));
55
74
  const pendingAll = files.filter((file) => !appliedNames.has(file));
56
75
  debug('migrate', `migrations: total=${files.length}, applied=${journal.applied.length}, pending=${pendingAll.length}`);
76
+ return {
77
+ jsonMode,
78
+ executeRequested,
79
+ allowDestructive,
80
+ mode,
81
+ migrationsDir,
82
+ db,
83
+ journalStore,
84
+ config,
85
+ flags,
86
+ pluginRuntime,
87
+ tableScope,
88
+ journal,
89
+ pendingAll,
90
+ };
91
+ }
92
+ /** Gate 1: block when applied migrations no longer match their recorded checksum. */
93
+ async function runChecksumGate(ctx) {
94
+ const { migrationsDir, journal, jsonMode, mode, tableScope } = ctx;
57
95
  const checksumMismatches = await findChecksumMismatches(migrationsDir, journal);
58
- if (checksumMismatches.length > 0) {
59
- debug('migrate', `checksum mismatches: ${checksumMismatches.map((m) => m.name).join(', ')}`);
60
- if (jsonMode) {
61
- emitJson('migrate', {
62
- mode,
63
- scope: tableScope,
64
- error: 'Checksum mismatch detected on applied migrations',
65
- checksumMismatches,
66
- });
67
- return 1;
68
- }
69
- throw new Error(`Checksum mismatch detected on applied migrations: ${checksumMismatches.map((item) => item.name).join(', ')}`);
96
+ if (checksumMismatches.length === 0)
97
+ return undefined;
98
+ debug('migrate', `checksum mismatches: ${checksumMismatches.map((m) => m.name).join(', ')}`);
99
+ if (jsonMode) {
100
+ emitChecksumMismatchJson({ mode, scope: tableScope, checksumMismatches });
101
+ return 1;
70
102
  }
103
+ throw new Error(`Checksum mismatch detected on applied migrations: ${checksumMismatches.map((item) => item.name).join(', ')}`);
104
+ }
105
+ /** Resolve table scope, filter the pending set, and short-circuit empty runs. */
106
+ async function resolvePendingScope(ctx) {
107
+ const { tableScope, jsonMode, mode, migrationsDir, pendingAll } = ctx;
71
108
  if (tableScope.enabled && tableScope.matchCount === 0) {
72
- if (jsonMode) {
73
- emitJson('migrate', {
74
- mode,
75
- scope: tableScope,
76
- pending: [],
77
- applied: [],
78
- warning: `No tables matched selector "${tableScope.selector ?? ''}".`,
79
- });
80
- }
81
- else {
82
- console.log(`No tables matched selector "${tableScope.selector ?? ''}". No migrations selected.`);
83
- }
84
- return 0;
109
+ emitNoScopeMatch({ jsonMode, mode, scope: tableScope });
110
+ return { exit: 0, pending: [], undeterminedScope: [] };
85
111
  }
86
112
  let pending = pendingAll;
87
113
  let undeterminedScope = [];
@@ -91,69 +117,49 @@ async function cmdMigrate(runCtx) {
91
117
  undeterminedScope = scoped.undetermined;
92
118
  }
93
119
  if (pending.length === 0) {
94
- if (jsonMode) {
95
- emitJson('migrate', { mode, scope: tableScope, pending: [], applied: [] });
96
- }
97
- else {
98
- console.log('No pending migrations.');
99
- }
100
- return 0;
120
+ emitNoPending({ jsonMode, mode, scope: tableScope });
121
+ return { exit: 0, pending, undeterminedScope };
101
122
  }
123
+ return { pending, undeterminedScope };
124
+ }
125
+ /** Render the pending plan (JSON early-return in plan mode, text otherwise). */
126
+ async function renderPlan(ctx, pending, undeterminedScope) {
127
+ const { jsonMode, executeRequested, mode, tableScope, migrationsDir } = ctx;
102
128
  if (jsonMode && !executeRequested) {
103
- emitJson('migrate', {
104
- mode,
105
- scope: tableScope,
106
- pending,
107
- ...(undeterminedScope.length > 0 ? { undeterminedMigrations: undeterminedScope } : {}),
108
- });
129
+ emitPlanJson({ mode, scope: tableScope, pending, undeterminedScope });
109
130
  return 0;
110
131
  }
111
132
  if (!jsonMode) {
112
- if (tableScope.enabled) {
113
- console.log(`Table scope: ${tableScope.selector ?? ''} (${tableScope.matchCount} matched)`);
114
- for (const table of tableScope.matchedTables)
115
- console.log(`- ${table}`);
116
- }
117
- if (undeterminedScope.length > 0) {
118
- console.log(`⚠ ${undeterminedScope.length} pending migration(s) have no table markers; ` +
119
- "including them because their target tables can't be determined under --table:");
120
- for (const file of undeterminedScope)
121
- console.log(` - ${file}`);
122
- }
123
- console.log(`Pending migrations: ${pending.length}`);
124
- for (const file of pending) {
125
- console.log(`- ${file}`);
126
- const sql = await readFile(join(migrationsDir, file), 'utf8');
127
- const meta = extractMigrationMetadata(sql);
128
- if (meta.log)
129
- console.log(` ${meta.log}`);
130
- }
133
+ await renderPlanText({ migrationsDir, scope: tableScope, undeterminedScope, pending });
131
134
  }
132
- if (!executeRequested) {
133
- if (isBackgroundOrCI() || jsonMode) {
134
- if (!jsonMode) {
135
- console.log('\nPlan only. Re-run with --apply to apply and journal these migrations.');
136
- }
137
- return 0;
138
- }
139
- const confirmed = await confirmApply();
140
- if (!confirmed) {
141
- console.log('Migration apply cancelled by user.');
142
- return 0;
143
- }
135
+ return undefined;
136
+ }
137
+ /** Gate 2: in plan mode, stop unless the user confirms an interactive apply. */
138
+ async function runConfirmGate(ctx) {
139
+ const { executeRequested, jsonMode } = ctx;
140
+ if (executeRequested)
141
+ return undefined;
142
+ if (isBackgroundOrCI() || jsonMode) {
143
+ if (!jsonMode)
144
+ renderPlanOnlyNotice();
145
+ return 0;
144
146
  }
147
+ const confirmed = await confirmApply();
148
+ if (!confirmed) {
149
+ console.log('Migration apply cancelled by user.');
150
+ return 0;
151
+ }
152
+ return undefined;
153
+ }
154
+ /** Gate 3: block destructive migrations unless allowed, confirmed, or forced. */
155
+ async function runDestructiveGate(ctx, pending) {
156
+ const { migrationsDir, allowDestructive, config, jsonMode, tableScope } = ctx;
145
157
  const destructive = await scanDestructive(migrationsDir, pending);
146
158
  let destructiveAllowed = allowDestructive || config.safety?.allowDestructive === true;
147
159
  if (destructive.migrations.length > 0 && !destructiveAllowed) {
148
160
  const error = 'Blocked destructive migration execution. Re-run with --allow-destructive or set safety.allowDestructive=true after review.';
149
161
  if (jsonMode) {
150
- emitJson('migrate', {
151
- mode: 'execute',
152
- scope: tableScope,
153
- error,
154
- destructiveMigrations: destructive.migrations,
155
- destructiveOperations: destructive.operations,
156
- });
162
+ emitDestructiveBlockedJson({ scope: tableScope, error, destructive });
157
163
  return 3;
158
164
  }
159
165
  if (isBackgroundOrCI()) {
@@ -170,14 +176,15 @@ async function cmdMigrate(runCtx) {
170
176
  if (destructive.migrations.length > 0 && !destructiveAllowed) {
171
177
  throw new Error('Blocked destructive migration execution.');
172
178
  }
179
+ return undefined;
180
+ }
181
+ /** Apply each pending migration, journal it, and emit the final summary. */
182
+ async function applyPending(ctx, pending, undeterminedScope) {
183
+ const { jsonMode, migrationsDir, db, journalStore, pluginRuntime, config, tableScope, flags } = ctx;
173
184
  const appliedNow = [];
174
185
  for (const file of pending) {
175
- if (!jsonMode) {
176
- const sql = await readFile(join(migrationsDir, file), 'utf8');
177
- const meta = extractMigrationMetadata(sql);
178
- if (meta.log)
179
- console.log(` ${meta.log}`);
180
- }
186
+ if (!jsonMode)
187
+ await renderMigrationLog(migrationsDir, file);
181
188
  const entry = await applyMigration({
182
189
  db,
183
190
  journalStore,
@@ -190,18 +197,13 @@ async function cmdMigrate(runCtx) {
190
197
  });
191
198
  appliedNow.push(entry);
192
199
  if (!jsonMode)
193
- console.log(`Applied: ${file}`);
200
+ renderApplied(file);
194
201
  }
195
202
  if (jsonMode) {
196
- emitJson('migrate', {
197
- mode: 'execute',
198
- scope: tableScope,
199
- applied: appliedNow,
200
- ...(undeterminedScope.length > 0 ? { undeterminedMigrations: undeterminedScope } : {}),
201
- });
203
+ emitApplySummaryJson({ scope: tableScope, applied: appliedNow, undeterminedScope });
202
204
  return 0;
203
205
  }
204
- console.log(`\nMigrations recorded in ClickHouse ${resolveJournalTableName()} table.`);
206
+ renderApplySummary();
205
207
  return 0;
206
208
  }
207
209
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/migrate/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { TableScope } from '../../plugins.js';
2
+ import type { MigrationJournalEntry } from '../../runtime/migration-store.js';
3
+ import type { DestructiveScan } from './destructive.js';
4
+ export type MigrateMode = 'plan' | 'execute';
5
+ interface ChecksumMismatch {
6
+ name: string;
7
+ expected: string;
8
+ actual: string;
9
+ }
10
+ export declare function emitChecksumMismatchJson(input: {
11
+ mode: MigrateMode;
12
+ scope: TableScope;
13
+ checksumMismatches: ChecksumMismatch[];
14
+ }): void;
15
+ export declare function emitNoScopeMatch(input: {
16
+ jsonMode: boolean;
17
+ mode: MigrateMode;
18
+ scope: TableScope;
19
+ }): void;
20
+ export declare function emitNoPending(input: {
21
+ jsonMode: boolean;
22
+ mode: MigrateMode;
23
+ scope: TableScope;
24
+ }): void;
25
+ export declare function emitPlanJson(input: {
26
+ mode: MigrateMode;
27
+ scope: TableScope;
28
+ pending: string[];
29
+ undeterminedScope: string[];
30
+ }): void;
31
+ export declare function renderPlanText(input: {
32
+ migrationsDir: string;
33
+ scope: TableScope;
34
+ undeterminedScope: string[];
35
+ pending: string[];
36
+ }): Promise<void>;
37
+ export declare function renderPlanOnlyNotice(): void;
38
+ export declare function emitDestructiveBlockedJson(input: {
39
+ scope: TableScope;
40
+ error: string;
41
+ destructive: DestructiveScan;
42
+ }): void;
43
+ export declare function renderMigrationLog(migrationsDir: string, file: string): Promise<void>;
44
+ export declare function renderApplied(file: string): void;
45
+ export declare function emitApplySummaryJson(input: {
46
+ scope: TableScope;
47
+ applied: MigrationJournalEntry[];
48
+ undeterminedScope: string[];
49
+ }): void;
50
+ export declare function renderApplySummary(): void;
51
+ export {};
52
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIlD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;CACvC,GAAG,IAAI,CAOP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB,GAAG,IAAI,CAaP;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;CAClB,GAAG,IAAI,CAMP;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,GAAG,IAAI,CASP;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,UAAU,CAAA;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhB;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,UAAU,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,eAAe,CAAA;CAC7B,GAAG,IAAI,CAQP;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B,GAAG,IAAI,CASP;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -0,0 +1,103 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { emitJson } from '../../runtime/json-output.js';
4
+ import { resolveJournalTableName } from '../../runtime/journal-store.js';
5
+ import { extractMigrationMetadata } from '../../runtime/migration-metadata.js';
6
+ export function emitChecksumMismatchJson(input) {
7
+ emitJson('migrate', {
8
+ mode: input.mode,
9
+ scope: input.scope,
10
+ error: 'Checksum mismatch detected on applied migrations',
11
+ checksumMismatches: input.checksumMismatches,
12
+ });
13
+ }
14
+ export function emitNoScopeMatch(input) {
15
+ const selector = input.scope.selector ?? '';
16
+ if (input.jsonMode) {
17
+ emitJson('migrate', {
18
+ mode: input.mode,
19
+ scope: input.scope,
20
+ pending: [],
21
+ applied: [],
22
+ warning: `No tables matched selector "${selector}".`,
23
+ });
24
+ }
25
+ else {
26
+ console.log(`No tables matched selector "${selector}". No migrations selected.`);
27
+ }
28
+ }
29
+ export function emitNoPending(input) {
30
+ if (input.jsonMode) {
31
+ emitJson('migrate', { mode: input.mode, scope: input.scope, pending: [], applied: [] });
32
+ }
33
+ else {
34
+ console.log('No pending migrations.');
35
+ }
36
+ }
37
+ export function emitPlanJson(input) {
38
+ emitJson('migrate', {
39
+ mode: input.mode,
40
+ scope: input.scope,
41
+ pending: input.pending,
42
+ ...(input.undeterminedScope.length > 0
43
+ ? { undeterminedMigrations: input.undeterminedScope }
44
+ : {}),
45
+ });
46
+ }
47
+ export async function renderPlanText(input) {
48
+ const { migrationsDir, scope, undeterminedScope, pending } = input;
49
+ if (scope.enabled) {
50
+ console.log(`Table scope: ${scope.selector ?? ''} (${scope.matchCount} matched)`);
51
+ for (const table of scope.matchedTables)
52
+ console.log(`- ${table}`);
53
+ }
54
+ if (undeterminedScope.length > 0) {
55
+ console.log(`⚠ ${undeterminedScope.length} pending migration(s) have no table markers; ` +
56
+ "including them because their target tables can't be determined under --table:");
57
+ for (const file of undeterminedScope)
58
+ console.log(` - ${file}`);
59
+ }
60
+ console.log(`Pending migrations: ${pending.length}`);
61
+ for (const file of pending) {
62
+ console.log(`- ${file}`);
63
+ const sql = await readFile(join(migrationsDir, file), 'utf8');
64
+ const meta = extractMigrationMetadata(sql);
65
+ if (meta.log)
66
+ console.log(` ${meta.log}`);
67
+ }
68
+ }
69
+ export function renderPlanOnlyNotice() {
70
+ console.log('\nPlan only. Re-run with --apply to apply and journal these migrations.');
71
+ }
72
+ export function emitDestructiveBlockedJson(input) {
73
+ emitJson('migrate', {
74
+ mode: 'execute',
75
+ scope: input.scope,
76
+ error: input.error,
77
+ destructiveMigrations: input.destructive.migrations,
78
+ destructiveOperations: input.destructive.operations,
79
+ });
80
+ }
81
+ export async function renderMigrationLog(migrationsDir, file) {
82
+ const sql = await readFile(join(migrationsDir, file), 'utf8');
83
+ const meta = extractMigrationMetadata(sql);
84
+ if (meta.log)
85
+ console.log(` ${meta.log}`);
86
+ }
87
+ export function renderApplied(file) {
88
+ console.log(`Applied: ${file}`);
89
+ }
90
+ export function emitApplySummaryJson(input) {
91
+ emitJson('migrate', {
92
+ mode: 'execute',
93
+ scope: input.scope,
94
+ applied: input.applied,
95
+ ...(input.undeterminedScope.length > 0
96
+ ? { undeterminedMigrations: input.undeterminedScope }
97
+ : {}),
98
+ });
99
+ }
100
+ export function renderApplySummary() {
101
+ console.log(`\nMigrations recorded in ClickHouse ${resolveJournalTableName()} table.`);
102
+ }
103
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/commands/migrate/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chkit",
3
- "version": "0.1.1",
3
+ "version": "0.1.2-beta.0",
4
4
  "description": "ClickHouse schema and migration CLI for TypeScript projects",
5
5
  "license": "MIT",
6
6
  "author": "ObsessionDB",
@@ -40,12 +40,12 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "fast-glob": "^3.3.2",
43
- "@chkit/clickhouse": "0.1.1",
44
- "@chkit/codegen": "0.1.1",
45
- "@chkit/core": "0.1.1",
43
+ "@chkit/clickhouse": "0.1.2-beta.0",
44
+ "@chkit/codegen": "0.1.2-beta.0",
45
+ "@chkit/core": "0.1.2-beta.0",
46
46
  "@logtape/logtape": "^2.0.5"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@chkit/plugin-obsessiondb": "0.1.1"
49
+ "@chkit/plugin-obsessiondb": "0.1.2-beta.0"
50
50
  }
51
51
  }