chkit 0.1.0-beta.20 → 0.1.0-beta.22

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.
Files changed (229) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/chkit.js +124 -94
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/bin/command-dispatch.d.ts +0 -5
  5. package/dist/bin/command-dispatch.d.ts.map +1 -1
  6. package/dist/bin/command-dispatch.js +1 -1
  7. package/dist/bin/command-dispatch.js.map +1 -1
  8. package/dist/bin/commands/drift.d.ts +2 -1
  9. package/dist/bin/commands/drift.d.ts.map +1 -1
  10. package/dist/bin/debug.d.ts +1 -1
  11. package/dist/bin/debug.d.ts.map +1 -1
  12. package/dist/bin/debug.js +8 -15
  13. package/dist/bin/debug.js.map +1 -1
  14. package/dist/bin/internal-plugins/skill-hint.d.ts +1 -6
  15. package/dist/bin/internal-plugins/skill-hint.d.ts.map +1 -1
  16. package/dist/bin/internal-plugins/skill-hint.js +1 -1
  17. package/dist/bin/internal-plugins/skill-hint.js.map +1 -1
  18. package/dist/bin/journal-store.d.ts +2 -6
  19. package/dist/bin/journal-store.d.ts.map +1 -1
  20. package/dist/bin/journal-store.js +1 -5
  21. package/dist/bin/journal-store.js.map +1 -1
  22. package/dist/bin/json-output.d.ts +2 -5
  23. package/dist/bin/json-output.d.ts.map +1 -1
  24. package/dist/bin/json-output.js +1 -1
  25. package/dist/bin/json-output.js.map +1 -1
  26. package/dist/bin/lib.d.ts +2 -5
  27. package/dist/bin/lib.d.ts.map +1 -1
  28. package/dist/bin/lib.js +2 -5
  29. package/dist/bin/lib.js.map +1 -1
  30. package/dist/bin/logging.d.ts +3 -0
  31. package/dist/bin/logging.d.ts.map +1 -0
  32. package/dist/bin/logging.js +31 -0
  33. package/dist/bin/logging.js.map +1 -0
  34. package/dist/bin/migration-store.d.ts +2 -2
  35. package/dist/bin/migration-store.d.ts.map +1 -1
  36. package/dist/bin/migration-store.js +1 -1
  37. package/dist/bin/migration-store.js.map +1 -1
  38. package/dist/bin/safety-markers.d.ts +1 -3
  39. package/dist/bin/safety-markers.d.ts.map +1 -1
  40. package/dist/bin/safety-markers.js +2 -2
  41. package/dist/bin/safety-markers.js.map +1 -1
  42. package/dist/bin/table-scope.d.ts +1 -2
  43. package/dist/bin/table-scope.d.ts.map +1 -1
  44. package/dist/bin/table-scope.js +1 -1
  45. package/dist/bin/table-scope.js.map +1 -1
  46. package/dist/commands/check/command.d.ts +3 -0
  47. package/dist/commands/check/command.d.ts.map +1 -0
  48. package/dist/commands/check/command.js +105 -0
  49. package/dist/commands/check/command.js.map +1 -0
  50. package/dist/commands/check/output.d.ts +35 -0
  51. package/dist/commands/check/output.d.ts.map +1 -0
  52. package/dist/commands/check/output.js +105 -0
  53. package/dist/commands/check/output.js.map +1 -0
  54. package/dist/commands/drift/command.d.ts +3 -0
  55. package/dist/commands/drift/command.d.ts.map +1 -0
  56. package/dist/commands/drift/command.js +127 -0
  57. package/dist/commands/drift/command.js.map +1 -0
  58. package/dist/commands/drift/compare.d.ts +66 -0
  59. package/dist/commands/drift/compare.d.ts.map +1 -0
  60. package/dist/commands/drift/compare.js +220 -0
  61. package/dist/commands/drift/compare.js.map +1 -0
  62. package/dist/commands/drift/diff.d.ts +8 -0
  63. package/dist/commands/drift/diff.d.ts.map +1 -0
  64. package/dist/commands/drift/diff.js +46 -0
  65. package/dist/commands/drift/diff.js.map +1 -0
  66. package/dist/commands/drift/payload.d.ts +24 -0
  67. package/dist/commands/drift/payload.d.ts.map +1 -0
  68. package/dist/commands/drift/payload.js +96 -0
  69. package/dist/commands/drift/payload.js.map +1 -0
  70. package/dist/commands/generate/command.d.ts +3 -0
  71. package/dist/commands/generate/command.d.ts.map +1 -0
  72. package/dist/commands/generate/command.js +161 -0
  73. package/dist/commands/generate/command.js.map +1 -0
  74. package/dist/commands/generate/output.d.ts +8 -0
  75. package/dist/commands/generate/output.d.ts.map +1 -0
  76. package/dist/commands/generate/output.js +59 -0
  77. package/dist/commands/generate/output.js.map +1 -0
  78. package/dist/commands/generate/plan-pipeline.d.ts +7 -0
  79. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -0
  80. package/dist/commands/generate/plan-pipeline.js +143 -0
  81. package/dist/commands/generate/plan-pipeline.js.map +1 -0
  82. package/dist/commands/generate/rename-mappings.d.ts +29 -0
  83. package/dist/commands/generate/rename-mappings.d.ts.map +1 -0
  84. package/dist/commands/generate/rename-mappings.js +195 -0
  85. package/dist/commands/generate/rename-mappings.js.map +1 -0
  86. package/dist/commands/init.d.ts +2 -0
  87. package/dist/commands/init.d.ts.map +1 -0
  88. package/dist/commands/init.js +24 -0
  89. package/dist/commands/init.js.map +1 -0
  90. package/dist/commands/migrate/apply.d.ts +18 -0
  91. package/dist/commands/migrate/apply.d.ts.map +1 -0
  92. package/dist/commands/migrate/apply.js +48 -0
  93. package/dist/commands/migrate/apply.js.map +1 -0
  94. package/dist/commands/migrate/command.d.ts +3 -0
  95. package/dist/commands/migrate/command.d.ts.map +1 -0
  96. package/dist/commands/migrate/command.js +175 -0
  97. package/dist/commands/migrate/command.js.map +1 -0
  98. package/dist/commands/migrate/destructive.d.ts +7 -0
  99. package/dist/commands/migrate/destructive.d.ts.map +1 -0
  100. package/dist/commands/migrate/destructive.js +16 -0
  101. package/dist/commands/migrate/destructive.js.map +1 -0
  102. package/dist/commands/migrate/prompts.d.ts +6 -0
  103. package/dist/commands/migrate/prompts.d.ts.map +1 -0
  104. package/dist/commands/migrate/prompts.js +40 -0
  105. package/dist/commands/migrate/prompts.js.map +1 -0
  106. package/dist/commands/migrate/scope.d.ts +2 -0
  107. package/dist/commands/migrate/scope.d.ts.map +1 -0
  108. package/dist/commands/migrate/scope.js +25 -0
  109. package/dist/commands/migrate/scope.js.map +1 -0
  110. package/dist/commands/plugin.d.ts +3 -0
  111. package/dist/commands/plugin.d.ts.map +1 -0
  112. package/dist/commands/plugin.js +132 -0
  113. package/dist/commands/plugin.js.map +1 -0
  114. package/dist/commands/query.d.ts +8 -0
  115. package/dist/commands/query.d.ts.map +1 -0
  116. package/dist/commands/query.js +114 -0
  117. package/dist/commands/query.js.map +1 -0
  118. package/dist/commands/status.d.ts +3 -0
  119. package/dist/commands/status.d.ts.map +1 -0
  120. package/dist/commands/status.js +63 -0
  121. package/dist/commands/status.js.map +1 -0
  122. package/dist/drift.d.ts +7 -6
  123. package/dist/drift.d.ts.map +1 -1
  124. package/dist/drift.js +17 -2
  125. package/dist/drift.js.map +1 -1
  126. package/dist/internal-plugins/index.d.ts +3 -0
  127. package/dist/internal-plugins/index.d.ts.map +1 -0
  128. package/dist/internal-plugins/index.js +5 -0
  129. package/dist/internal-plugins/index.js.map +1 -0
  130. package/dist/internal-plugins/skill-hint/agent-detect.d.ts +20 -0
  131. package/dist/internal-plugins/skill-hint/agent-detect.d.ts.map +1 -0
  132. package/dist/internal-plugins/skill-hint/agent-detect.js +68 -0
  133. package/dist/internal-plugins/skill-hint/agent-detect.js.map +1 -0
  134. package/dist/internal-plugins/skill-hint/plugin.d.ts +16 -0
  135. package/dist/internal-plugins/skill-hint/plugin.d.ts.map +1 -0
  136. package/dist/internal-plugins/skill-hint/plugin.js +60 -0
  137. package/dist/internal-plugins/skill-hint/plugin.js.map +1 -0
  138. package/dist/internal-plugins/skill-hint/prompt.d.ts +5 -0
  139. package/dist/internal-plugins/skill-hint/prompt.d.ts.map +1 -0
  140. package/dist/internal-plugins/skill-hint/prompt.js +37 -0
  141. package/dist/internal-plugins/skill-hint/prompt.js.map +1 -0
  142. package/dist/internal-plugins/skill-hint/state.d.ts +7 -0
  143. package/dist/internal-plugins/skill-hint/state.d.ts.map +1 -0
  144. package/dist/internal-plugins/skill-hint/state.js +23 -0
  145. package/dist/internal-plugins/skill-hint/state.js.map +1 -0
  146. package/dist/plugins.d.ts +42 -2
  147. package/dist/plugins.d.ts.map +1 -1
  148. package/dist/plugins.js.map +1 -1
  149. package/dist/runtime/command-dispatch.d.ts +18 -0
  150. package/dist/runtime/command-dispatch.d.ts.map +1 -0
  151. package/dist/runtime/command-dispatch.js +237 -0
  152. package/dist/runtime/command-dispatch.js.map +1 -0
  153. package/dist/runtime/command-registry.d.ts +34 -0
  154. package/dist/runtime/command-registry.d.ts.map +1 -0
  155. package/dist/runtime/command-registry.js +87 -0
  156. package/dist/runtime/command-registry.js.map +1 -0
  157. package/dist/runtime/config.d.ts +13 -0
  158. package/dist/runtime/config.d.ts.map +1 -0
  159. package/dist/runtime/config.js +49 -0
  160. package/dist/runtime/config.js.map +1 -0
  161. package/dist/runtime/debug.d.ts +3 -0
  162. package/dist/runtime/debug.d.ts.map +1 -0
  163. package/dist/runtime/debug.js +14 -0
  164. package/dist/runtime/debug.js.map +1 -0
  165. package/dist/runtime/global-flags.d.ts +16 -0
  166. package/dist/runtime/global-flags.d.ts.map +1 -0
  167. package/dist/runtime/global-flags.js +7 -0
  168. package/dist/runtime/global-flags.js.map +1 -0
  169. package/dist/runtime/help.d.ts +5 -0
  170. package/dist/runtime/help.d.ts.map +1 -0
  171. package/dist/runtime/help.js +84 -0
  172. package/dist/runtime/help.js.map +1 -0
  173. package/dist/runtime/journal-store.d.ts +10 -0
  174. package/dist/runtime/journal-store.d.ts.map +1 -0
  175. package/dist/runtime/journal-store.js +137 -0
  176. package/dist/runtime/journal-store.js.map +1 -0
  177. package/dist/runtime/json-output.d.ts +5 -0
  178. package/dist/runtime/json-output.d.ts.map +1 -0
  179. package/dist/runtime/json-output.js +21 -0
  180. package/dist/runtime/json-output.js.map +1 -0
  181. package/dist/runtime/logging.d.ts +3 -0
  182. package/dist/runtime/logging.d.ts.map +1 -0
  183. package/dist/runtime/logging.js +31 -0
  184. package/dist/runtime/logging.js.map +1 -0
  185. package/dist/runtime/migration-store.d.ts +22 -0
  186. package/dist/runtime/migration-store.d.ts.map +1 -0
  187. package/dist/runtime/migration-store.js +60 -0
  188. package/dist/runtime/migration-store.js.map +1 -0
  189. package/dist/runtime/plugin-runtime/errors.d.ts +3 -0
  190. package/dist/runtime/plugin-runtime/errors.d.ts.map +1 -0
  191. package/dist/runtime/plugin-runtime/errors.js +13 -0
  192. package/dist/runtime/plugin-runtime/errors.js.map +1 -0
  193. package/dist/runtime/plugin-runtime/executor-debug.d.ts +3 -0
  194. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -0
  195. package/dist/runtime/plugin-runtime/executor-debug.js +65 -0
  196. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -0
  197. package/dist/runtime/plugin-runtime/hooks.d.ts +23 -0
  198. package/dist/runtime/plugin-runtime/hooks.d.ts.map +1 -0
  199. package/dist/runtime/plugin-runtime/hooks.js +148 -0
  200. package/dist/runtime/plugin-runtime/hooks.js.map +1 -0
  201. package/dist/runtime/plugin-runtime/index.d.ts +9 -0
  202. package/dist/runtime/plugin-runtime/index.d.ts.map +1 -0
  203. package/dist/runtime/plugin-runtime/index.js +144 -0
  204. package/dist/runtime/plugin-runtime/index.js.map +1 -0
  205. package/dist/runtime/plugin-runtime/loader.d.ts +14 -0
  206. package/dist/runtime/plugin-runtime/loader.d.ts.map +1 -0
  207. package/dist/runtime/plugin-runtime/loader.js +70 -0
  208. package/dist/runtime/plugin-runtime/loader.js.map +1 -0
  209. package/dist/runtime/plugin-runtime/null-executor.d.ts +3 -0
  210. package/dist/runtime/plugin-runtime/null-executor.d.ts.map +1 -0
  211. package/dist/runtime/plugin-runtime/null-executor.js +17 -0
  212. package/dist/runtime/plugin-runtime/null-executor.js.map +1 -0
  213. package/dist/runtime/safety-markers.d.ts +23 -0
  214. package/dist/runtime/safety-markers.d.ts.map +1 -0
  215. package/dist/runtime/safety-markers.js +85 -0
  216. package/dist/runtime/safety-markers.js.map +1 -0
  217. package/dist/runtime/schema-loader.d.ts +3 -0
  218. package/dist/runtime/schema-loader.d.ts.map +1 -0
  219. package/dist/runtime/schema-loader.js +11 -0
  220. package/dist/runtime/schema-loader.js.map +1 -0
  221. package/dist/runtime/table-scope.d.ts +33 -0
  222. package/dist/runtime/table-scope.d.ts.map +1 -0
  223. package/dist/runtime/table-scope.js +167 -0
  224. package/dist/runtime/table-scope.js.map +1 -0
  225. package/dist/runtime/version.d.ts +2 -0
  226. package/dist/runtime/version.d.ts.map +1 -0
  227. package/dist/runtime/version.js +5 -0
  228. package/dist/runtime/version.js.map +1 -0
  229. package/package.json +6 -6
@@ -0,0 +1,70 @@
1
+ import { pathToFileURL } from 'node:url';
2
+ import { isInlinePluginRegistration } from '../../plugins.js';
3
+ export function normalizePluginRegistration(entry) {
4
+ if (typeof entry === 'string') {
5
+ return {
6
+ kind: 'legacy',
7
+ resolvePath: entry,
8
+ enabled: true,
9
+ options: {},
10
+ };
11
+ }
12
+ if (isInlinePluginRegistration(entry)) {
13
+ return {
14
+ kind: 'inline',
15
+ resolvePath: '',
16
+ inlinePlugin: entry.plugin,
17
+ nameHint: entry.name,
18
+ enabled: entry.enabled !== false,
19
+ options: entry.options ?? {},
20
+ };
21
+ }
22
+ const legacy = entry;
23
+ return {
24
+ kind: 'legacy',
25
+ resolvePath: legacy.resolve,
26
+ nameHint: legacy.name,
27
+ enabled: legacy.enabled !== false,
28
+ options: legacy.options ?? {},
29
+ };
30
+ }
31
+ function parseCliMajor(version) {
32
+ const major = Number(version.split('.')[0] ?? Number.NaN);
33
+ if (!Number.isInteger(major) || major < 0) {
34
+ throw new Error(`Invalid CLI version "${version}" while loading plugins.`);
35
+ }
36
+ return major;
37
+ }
38
+ export function validatePlugin(cliVersion, plugin, sourcePath) {
39
+ const name = plugin.manifest.name;
40
+ if (!name || name.trim().length === 0) {
41
+ throw new Error(`Plugin at ${sourcePath} has an empty manifest.name.`);
42
+ }
43
+ if (plugin.manifest.apiVersion !== 1) {
44
+ throw new Error(`Plugin "${name}" requires apiVersion=${String(plugin.manifest.apiVersion)} but CLI supports apiVersion=1.`);
45
+ }
46
+ const compatibility = plugin.manifest.compatibility?.cli;
47
+ if (!compatibility)
48
+ return;
49
+ const cliMajor = parseCliMajor(cliVersion);
50
+ if (compatibility.minMajor !== undefined &&
51
+ cliMajor < compatibility.minMajor) {
52
+ throw new Error(`Plugin "${name}" is incompatible with CLI ${cliVersion}. Requires cli major >= ${compatibility.minMajor}.`);
53
+ }
54
+ if (compatibility.maxMajor !== undefined &&
55
+ cliMajor > compatibility.maxMajor) {
56
+ throw new Error(`Plugin "${name}" is incompatible with CLI ${cliVersion}. Requires cli major <= ${compatibility.maxMajor}.`);
57
+ }
58
+ }
59
+ export async function importPluginModule(absolutePath) {
60
+ const mod = (await import(pathToFileURL(absolutePath).href));
61
+ const candidate = (mod.default ?? mod.plugin);
62
+ if (!candidate || typeof candidate !== 'object') {
63
+ throw new Error(`Plugin module ${absolutePath} must export default definePlugin(...)`);
64
+ }
65
+ if (!candidate.manifest || typeof candidate.manifest !== 'object') {
66
+ throw new Error(`Plugin module ${absolutePath} is missing manifest.`);
67
+ }
68
+ return candidate;
69
+ }
70
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/runtime/plugin-runtime/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ClickHouseExecutor } from '@chkit/clickhouse';
2
+ export declare const NULL_EXECUTOR: ClickHouseExecutor;
3
+ //# sourceMappingURL=null-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-executor.d.ts","sourceRoot":"","sources":["../../../src/runtime/plugin-runtime/null-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAK3D,eAAO,MAAM,aAAa,EAAE,kBAcxB,CAAA"}
@@ -0,0 +1,17 @@
1
+ const NO_CONNECTION_MESSAGE = 'No ClickHouse connection configured and no plugin provided an executor';
2
+ export const NULL_EXECUTOR = (() => {
3
+ const err = () => {
4
+ throw new Error(NO_CONNECTION_MESSAGE);
5
+ };
6
+ return {
7
+ command: err,
8
+ query: err,
9
+ insert: err,
10
+ submit: err,
11
+ queryStatus: err,
12
+ listSchemaObjects: err,
13
+ listTableDetails: err,
14
+ close: () => Promise.resolve(),
15
+ };
16
+ })();
17
+ //# sourceMappingURL=null-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-executor.js","sourceRoot":"","sources":["../../../src/runtime/plugin-runtime/null-executor.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GACzB,wEAAwE,CAAA;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAuB,CAAC,GAAG,EAAE;IACrD,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC,CAAA;IACD,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,GAAG;QAChB,iBAAiB,EAAE,GAAG;QACtB,gBAAgB,EAAE,GAAG;QACrB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;KAC/B,CAAA;AACH,CAAC,CAAC,EAAE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { extractExecutableStatements } from '@chkit/core';
2
+ export { extractExecutableStatements };
3
+ export interface DestructiveOperationMarker {
4
+ migration: string;
5
+ type: string;
6
+ key: string;
7
+ risk: string;
8
+ warningCode: string;
9
+ reason: string;
10
+ impact: string;
11
+ recommendation: string;
12
+ summary: string;
13
+ }
14
+ interface MigrationOperationSummary {
15
+ type: string;
16
+ key: string;
17
+ risk: string;
18
+ summary: string;
19
+ }
20
+ export declare function migrationContainsDangerOperation(sql: string): boolean;
21
+ export declare function extractMigrationOperationSummaries(sql: string): MigrationOperationSummary[];
22
+ export declare function collectDestructiveOperationMarkers(migration: string, sql: string): DestructiveOperationMarker[];
23
+ //# sourceMappingURL=safety-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-markers.d.ts","sourceRoot":"","sources":["../../src/runtime/safety-markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAEzD,OAAO,EAAE,2BAA2B,EAAE,CAAA;AAEtC,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErE;AAqBD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,EAAE,CAQ3F;AAyCD,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,0BAA0B,EAAE,CAmB9B"}
@@ -0,0 +1,85 @@
1
+ import { extractExecutableStatements } from '@chkit/core';
2
+ export { extractExecutableStatements };
3
+ export function migrationContainsDangerOperation(sql) {
4
+ return extractDestructiveOperationSummaries(sql).length > 0;
5
+ }
6
+ function extractDestructiveOperationSummaries(sql) {
7
+ return sql
8
+ .split('\n')
9
+ .map((line) => line.trim())
10
+ .filter((line) => line.startsWith('-- operation:') && line.includes('risk=danger'))
11
+ .map((line) => line.replace(/^-- operation:\s*/, ''));
12
+ }
13
+ function parseOperationLine(summary) {
14
+ const match = summary.match(/^([a-z_]+)\s+key=([^\s]+)\s+risk=([a-z_]+)$/);
15
+ if (!match)
16
+ return null;
17
+ return {
18
+ type: match[1] ?? 'unknown',
19
+ key: match[2] ?? 'unknown',
20
+ risk: match[3] ?? 'unknown',
21
+ summary,
22
+ };
23
+ }
24
+ export function extractMigrationOperationSummaries(sql) {
25
+ return sql
26
+ .split('\n')
27
+ .map((line) => line.trim())
28
+ .filter((line) => line.startsWith('-- operation:'))
29
+ .map((line) => line.replace(/^-- operation:\s*/, ''))
30
+ .map((summary) => parseOperationLine(summary))
31
+ .filter((item) => item !== null);
32
+ }
33
+ function describeDestructiveOperation(type) {
34
+ if (type === 'drop_table') {
35
+ return {
36
+ warningCode: 'drop_table_data_loss',
37
+ reason: 'Dropping a table removes table data and metadata from the target database.',
38
+ impact: 'Queries that depend on this table will fail until it is recreated and repopulated.',
39
+ recommendation: 'Verify backups and downstream dependencies before approving.',
40
+ };
41
+ }
42
+ if (type === 'alter_table_drop_column') {
43
+ return {
44
+ warningCode: 'drop_column_irreversible',
45
+ reason: 'Dropping a column permanently removes stored values for that column.',
46
+ impact: 'Applications or analytics depending on the column will break or return incomplete data.',
47
+ recommendation: 'Confirm the column is deprecated and no readers still require it.',
48
+ };
49
+ }
50
+ if (type === 'drop_view' || type === 'drop_materialized_view') {
51
+ return {
52
+ warningCode: 'drop_view_dependency_break',
53
+ reason: 'Dropping a view removes a query interface used by clients and pipelines.',
54
+ impact: 'Dependent workloads may fail until compatible replacements are in place.',
55
+ recommendation: 'Confirm replacement view rollout and dependency readiness.',
56
+ };
57
+ }
58
+ return {
59
+ warningCode: 'destructive_operation_review_required',
60
+ reason: 'This operation is marked destructive by planner risk classification.',
61
+ impact: 'Execution may cause irreversible schema or data changes.',
62
+ recommendation: 'Review SQL and dependency impact before approving.',
63
+ };
64
+ }
65
+ export function collectDestructiveOperationMarkers(migration, sql) {
66
+ return extractDestructiveOperationSummaries(sql).map((summary) => {
67
+ const parsed = parseOperationLine(summary);
68
+ const type = parsed?.type ?? 'unknown';
69
+ const key = parsed?.key ?? 'unknown';
70
+ const risk = parsed?.risk ?? 'danger';
71
+ const detail = describeDestructiveOperation(type);
72
+ return {
73
+ migration,
74
+ type,
75
+ key,
76
+ risk,
77
+ warningCode: detail.warningCode,
78
+ reason: detail.reason,
79
+ impact: detail.impact,
80
+ recommendation: detail.recommendation,
81
+ summary,
82
+ };
83
+ });
84
+ }
85
+ //# sourceMappingURL=safety-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-markers.js","sourceRoot":"","sources":["../../src/runtime/safety-markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAEzD,OAAO,EAAE,2BAA2B,EAAE,CAAA;AAqBtC,MAAM,UAAU,gCAAgC,CAAC,GAAW;IAC1D,OAAO,oCAAoC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC7D,CAAC;AAED,SAAS,oCAAoC,CAAC,GAAW;IACvD,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAC1E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;QAC3B,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;QAC3B,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,GAAW;IAC5D,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,IAAI,EAAqC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IAMhD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO;YACL,WAAW,EAAE,sBAAsB;YACnC,MAAM,EAAE,4EAA4E;YACpF,MAAM,EAAE,oFAAoF;YAC5F,cAAc,EAAE,8DAA8D;SAC/E,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,OAAO;YACL,WAAW,EAAE,0BAA0B;YACvC,MAAM,EAAE,sEAAsE;YAC9E,MAAM,EAAE,yFAAyF;YACjG,cAAc,EAAE,mEAAmE;SACpF,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;QAC9D,OAAO;YACL,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,0EAA0E;YAClF,MAAM,EAAE,0EAA0E;YAClF,cAAc,EAAE,4DAA4D;SAC7E,CAAA;IACH,CAAC;IAED,OAAO;QACL,WAAW,EAAE,uCAAuC;QACpD,MAAM,EAAE,sEAAsE;QAC9E,MAAM,EAAE,0DAA0D;QAClE,cAAc,EAAE,oDAAoD;KACrE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,SAAiB,EACjB,GAAW;IAEX,OAAO,oCAAoC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,SAAS,CAAA;QACtC,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,SAAS,CAAA;QACpC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAA;QACrC,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAA;QACjD,OAAO;YACL,SAAS;YACT,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO;SACR,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SchemaDefinition } from '@chkit/core';
2
+ export declare function loadSchemaDefinitions(schemaGlobs: string | string[]): Promise<SchemaDefinition[]>;
3
+ //# sourceMappingURL=schema-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-loader.d.ts","sourceRoot":"","sources":["../../src/runtime/schema-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAMvG"}
@@ -0,0 +1,11 @@
1
+ import process from 'node:process';
2
+ import { loadSchemaDefinitions as loadSchemaDefinitionsFromCore } from '@chkit/core/schema-loader';
3
+ import { debug } from './debug.js';
4
+ export async function loadSchemaDefinitions(schemaGlobs) {
5
+ const globs = Array.isArray(schemaGlobs) ? schemaGlobs : [schemaGlobs];
6
+ debug('schema', `loading definitions from globs: [${globs.join(', ')}] (cwd: ${process.cwd()})`);
7
+ const definitions = await loadSchemaDefinitionsFromCore(schemaGlobs, { cwd: process.cwd() });
8
+ debug('schema', `loaded ${definitions.length} schema definitions`);
9
+ return definitions;
10
+ }
11
+ //# sourceMappingURL=schema-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-loader.js","sourceRoot":"","sources":["../../src/runtime/schema-loader.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,qBAAqB,IAAI,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAElG,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAA8B;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACtE,KAAK,CAAC,QAAQ,EAAE,oCAAoC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChG,MAAM,WAAW,GAAG,MAAM,6BAA6B,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC5F,KAAK,CAAC,QAAQ,EAAE,UAAU,WAAW,CAAC,MAAM,qBAAqB,CAAC,CAAA;IAClE,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { MigrationPlan, SchemaDefinition } from '@chkit/core';
2
+ import type { TableScope } from '../plugins.js';
3
+ export type { TableScope } from '../plugins.js';
4
+ interface ParsedTableSelector {
5
+ database?: string;
6
+ mode: 'exact' | 'prefix';
7
+ value: string;
8
+ }
9
+ interface TableScopeFilterResult {
10
+ plan: MigrationPlan;
11
+ omittedOperationCount: number;
12
+ }
13
+ interface TableRenameMapping {
14
+ oldDatabase: string;
15
+ oldName: string;
16
+ newDatabase: string;
17
+ newName: string;
18
+ }
19
+ export declare function tableKeysFromDefinitions(definitions: SchemaDefinition[]): string[];
20
+ export declare function parseTableSelector(input: string): ParsedTableSelector;
21
+ export declare function resolveTableScope(selector: string | undefined, availableTables: string[]): TableScope;
22
+ export declare function tableKeyFromOperationKey(operationKey: string): string | null;
23
+ export declare function databaseKeyFromOperationKey(operationKey: string): string | null;
24
+ export declare function filterPlanByTableScope(plan: MigrationPlan, matchedTables: ReadonlySet<string>, options?: {
25
+ renameMappings?: TableRenameMapping[];
26
+ }): TableScopeFilterResult;
27
+ export declare function buildScopedSnapshotDefinitions(input: {
28
+ previousDefinitions: SchemaDefinition[];
29
+ nextDefinitions: SchemaDefinition[];
30
+ matchedTables: ReadonlySet<string>;
31
+ renameMappings?: TableRenameMapping[];
32
+ }): SchemaDefinition[];
33
+ //# sourceMappingURL=table-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-scope.d.ts","sourceRoot":"","sources":["../../src/runtime/table-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,gBAAgB,EAEjB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,aAAa,CAAA;IACnB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAMD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAElF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAyDrE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,UAAU,CA4BrG;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5E;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG/E;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,EAClC,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,GACtD,sBAAsB,CAqDxB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,mBAAmB,EAAE,gBAAgB,EAAE,CAAA;IACvC,eAAe,EAAE,gBAAgB,EAAE,CAAA;IACnC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAClC,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACtC,GAAG,gBAAgB,EAAE,CAqCrB"}
@@ -0,0 +1,167 @@
1
+ function tableKey(database, name) {
2
+ return `${database}.${name}`;
3
+ }
4
+ export function tableKeysFromDefinitions(definitions) {
5
+ return [...new Set(definitions.filter((def) => def.kind === 'table').map((def) => tableKey(def.database, def.name)))].sort((a, b) => a.localeCompare(b));
6
+ }
7
+ export function parseTableSelector(input) {
8
+ const selector = input.trim();
9
+ if (!selector) {
10
+ throw new Error('Invalid --table selector "". Expected <table>, <table_prefix*>, <database.table>, or <database.table_prefix*>.');
11
+ }
12
+ const dot = selector.indexOf('.');
13
+ const [database, tableToken] = dot === -1
14
+ ? [undefined, selector]
15
+ : [selector.slice(0, dot).trim(), selector.slice(dot + 1).trim()];
16
+ if (database !== undefined && (database.length === 0 || database.includes('*'))) {
17
+ throw new Error(`Invalid --table selector "${selector}". Database qualifier must be non-empty and cannot contain "*".`);
18
+ }
19
+ if (!tableToken || tableToken === '*') {
20
+ throw new Error(`Invalid --table selector "${selector}". A bare "*" is not supported; use an exact table or trailing wildcard prefix.`);
21
+ }
22
+ const wildcardCount = [...tableToken].filter((char) => char === '*').length;
23
+ if (wildcardCount > 1 || (wildcardCount === 1 && !tableToken.endsWith('*'))) {
24
+ throw new Error(`Invalid --table selector "${selector}". "*" is only allowed as a trailing suffix (for example, events_*).`);
25
+ }
26
+ if (tableToken.slice(0, -1).includes('*')) {
27
+ throw new Error(`Invalid --table selector "${selector}". "*" is only allowed as a trailing suffix (for example, events_*).`);
28
+ }
29
+ if (tableToken.endsWith('*')) {
30
+ const value = tableToken.slice(0, -1);
31
+ if (!value) {
32
+ throw new Error(`Invalid --table selector "${selector}". A bare "*" is not supported; use an exact table or trailing wildcard prefix.`);
33
+ }
34
+ return {
35
+ database,
36
+ mode: 'prefix',
37
+ value,
38
+ };
39
+ }
40
+ return {
41
+ database,
42
+ mode: 'exact',
43
+ value: tableToken,
44
+ };
45
+ }
46
+ export function resolveTableScope(selector, availableTables) {
47
+ if (!selector) {
48
+ return {
49
+ enabled: false,
50
+ matchedTables: [],
51
+ matchCount: 0,
52
+ };
53
+ }
54
+ const parsed = parseTableSelector(selector);
55
+ const normalized = [...new Set(availableTables)].sort((a, b) => a.localeCompare(b));
56
+ const matchedTables = normalized.filter((candidate) => {
57
+ const dot = candidate.indexOf('.');
58
+ if (dot <= 0 || dot === candidate.length - 1)
59
+ return false;
60
+ const database = candidate.slice(0, dot);
61
+ const table = candidate.slice(dot + 1);
62
+ if (parsed.database && parsed.database !== database)
63
+ return false;
64
+ if (parsed.mode === 'exact')
65
+ return table === parsed.value;
66
+ return table.startsWith(parsed.value);
67
+ });
68
+ return {
69
+ enabled: true,
70
+ selector,
71
+ matchedTables,
72
+ matchCount: matchedTables.length,
73
+ };
74
+ }
75
+ export function tableKeyFromOperationKey(operationKey) {
76
+ if (!operationKey.startsWith('table:'))
77
+ return null;
78
+ const target = operationKey.slice('table:'.length);
79
+ const nextSegment = target.indexOf(':');
80
+ return nextSegment === -1 ? target : target.slice(0, nextSegment);
81
+ }
82
+ export function databaseKeyFromOperationKey(operationKey) {
83
+ if (!operationKey.startsWith('database:'))
84
+ return null;
85
+ return operationKey.slice('database:'.length);
86
+ }
87
+ export function filterPlanByTableScope(plan, matchedTables, options = {}) {
88
+ if (matchedTables.size === 0) {
89
+ return {
90
+ plan: {
91
+ operations: [],
92
+ renameSuggestions: [],
93
+ riskSummary: { safe: 0, caution: 0, danger: 0 },
94
+ },
95
+ omittedOperationCount: plan.operations.length,
96
+ };
97
+ }
98
+ const selectedTables = new Set(matchedTables);
99
+ for (const mapping of options.renameMappings ?? []) {
100
+ const oldKey = tableKey(mapping.oldDatabase, mapping.oldName);
101
+ const newKey = tableKey(mapping.newDatabase, mapping.newName);
102
+ if (selectedTables.has(oldKey) || selectedTables.has(newKey)) {
103
+ selectedTables.add(oldKey);
104
+ selectedTables.add(newKey);
105
+ }
106
+ }
107
+ const selectedDatabases = new Set([...selectedTables].map((value) => value.split('.')[0] ?? ''));
108
+ const operations = plan.operations.filter((operation) => {
109
+ const targetTable = tableKeyFromOperationKey(operation.key);
110
+ if (targetTable)
111
+ return selectedTables.has(targetTable);
112
+ const targetDatabase = databaseKeyFromOperationKey(operation.key);
113
+ if (targetDatabase)
114
+ return selectedDatabases.has(targetDatabase);
115
+ return false;
116
+ });
117
+ const renameSuggestions = plan.renameSuggestions.filter((suggestion) => selectedTables.has(tableKey(suggestion.database, suggestion.table)));
118
+ const riskSummary = operations.reduce((summary, operation) => {
119
+ summary[operation.risk] += 1;
120
+ return summary;
121
+ }, { safe: 0, caution: 0, danger: 0 });
122
+ return {
123
+ plan: {
124
+ operations,
125
+ renameSuggestions,
126
+ riskSummary,
127
+ },
128
+ omittedOperationCount: plan.operations.length - operations.length,
129
+ };
130
+ }
131
+ export function buildScopedSnapshotDefinitions(input) {
132
+ if (input.matchedTables.size === 0)
133
+ return input.previousDefinitions;
134
+ const selectedTables = new Set(input.matchedTables);
135
+ for (const mapping of input.renameMappings ?? []) {
136
+ const oldKey = tableKey(mapping.oldDatabase, mapping.oldName);
137
+ const newKey = tableKey(mapping.newDatabase, mapping.newName);
138
+ if (selectedTables.has(oldKey) || selectedTables.has(newKey)) {
139
+ selectedTables.add(oldKey);
140
+ selectedTables.add(newKey);
141
+ }
142
+ }
143
+ const result = new Map();
144
+ for (const definition of input.previousDefinitions) {
145
+ result.set(`${definition.kind}:${definition.database}.${definition.name}`, definition);
146
+ }
147
+ for (const [key, definition] of [...result.entries()]) {
148
+ if (definition.kind !== 'table')
149
+ continue;
150
+ const currentTableKey = tableKey(definition.database, definition.name);
151
+ if (!selectedTables.has(currentTableKey))
152
+ continue;
153
+ const stillExists = input.nextDefinitions.some((item) => item.kind === 'table' && tableKey(item.database, item.name) === currentTableKey);
154
+ if (!stillExists)
155
+ result.delete(key);
156
+ }
157
+ for (const definition of input.nextDefinitions) {
158
+ if (definition.kind !== 'table')
159
+ continue;
160
+ const currentTableKey = tableKey(definition.database, definition.name);
161
+ if (!selectedTables.has(currentTableKey))
162
+ continue;
163
+ result.set(`${definition.kind}:${definition.database}.${definition.name}`, definition);
164
+ }
165
+ return [...result.values()];
166
+ }
167
+ //# sourceMappingURL=table-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-scope.js","sourceRoot":"","sources":["../../src/runtime/table-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const CLI_VERSION: string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/runtime/version.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { createRequire } from 'node:module';
2
+ const require = createRequire(import.meta.url);
3
+ const pkg = require('../../package.json');
4
+ export const CLI_VERSION = pkg.version;
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/runtime/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAA;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chkit",
3
- "version": "0.1.0-beta.20",
3
+ "version": "0.1.0-beta.22",
4
4
  "description": "ClickHouse schema and migration CLI for TypeScript projects",
5
5
  "license": "MIT",
6
6
  "author": "ObsessionDB",
@@ -39,10 +39,10 @@
39
39
  "clean": "rm -rf dist"
40
40
  },
41
41
  "dependencies": {
42
- "@clickhouse/client": "^1.11.0",
43
- "@chkit/clickhouse": "0.1.0-beta.20",
44
- "@chkit/codegen": "0.1.0-beta.20",
45
- "@chkit/core": "0.1.0-beta.20",
46
- "fast-glob": "^3.3.2"
42
+ "fast-glob": "^3.3.2",
43
+ "@chkit/clickhouse": "0.1.0-beta.22",
44
+ "@chkit/codegen": "0.1.0-beta.22",
45
+ "@chkit/core": "0.1.0-beta.22",
46
+ "@logtape/logtape": "^2.0.5"
47
47
  }
48
48
  }