chkit 0.1.0-beta.8 → 0.1.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.
Files changed (300) hide show
  1. package/README.md +38 -2
  2. package/dist/bin/chkit.js +230 -203
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/bin/clickhouse-resource.d.ts +4 -0
  5. package/dist/bin/clickhouse-resource.d.ts.map +1 -0
  6. package/dist/bin/clickhouse-resource.js +11 -0
  7. package/dist/bin/clickhouse-resource.js.map +1 -0
  8. package/dist/bin/command-dispatch.d.ts +13 -0
  9. package/dist/bin/command-dispatch.d.ts.map +1 -0
  10. package/dist/bin/command-dispatch.js +186 -0
  11. package/dist/bin/command-dispatch.js.map +1 -0
  12. package/dist/bin/commands/check.d.ts +1 -1
  13. package/dist/bin/commands/check.d.ts.map +1 -1
  14. package/dist/bin/commands/check.js +160 -105
  15. package/dist/bin/commands/check.js.map +1 -1
  16. package/dist/bin/commands/drift.d.ts +6 -2
  17. package/dist/bin/commands/drift.d.ts.map +1 -1
  18. package/dist/bin/commands/drift.js +49 -8
  19. package/dist/bin/commands/drift.js.map +1 -1
  20. package/dist/bin/commands/generate.d.ts.map +1 -1
  21. package/dist/bin/commands/generate.js +4 -0
  22. package/dist/bin/commands/generate.js.map +1 -1
  23. package/dist/bin/commands/migrate.d.ts.map +1 -1
  24. package/dist/bin/commands/migrate.js +192 -176
  25. package/dist/bin/commands/migrate.js.map +1 -1
  26. package/dist/bin/commands/plugin.js.map +1 -1
  27. package/dist/bin/commands/status.d.ts.map +1 -1
  28. package/dist/bin/commands/status.js +20 -5
  29. package/dist/bin/commands/status.js.map +1 -1
  30. package/dist/bin/config.d.ts.map +1 -1
  31. package/dist/bin/config.js +14 -5
  32. package/dist/bin/config.js.map +1 -1
  33. package/dist/bin/debug.d.ts +3 -0
  34. package/dist/bin/debug.d.ts.map +1 -0
  35. package/dist/bin/debug.js +14 -0
  36. package/dist/bin/debug.js.map +1 -0
  37. package/dist/bin/help.d.ts.map +1 -1
  38. package/dist/bin/help.js +1 -0
  39. package/dist/bin/help.js.map +1 -1
  40. package/dist/bin/internal-plugins/index.d.ts +3 -0
  41. package/dist/bin/internal-plugins/index.d.ts.map +1 -0
  42. package/dist/bin/internal-plugins/index.js +5 -0
  43. package/dist/bin/internal-plugins/index.js.map +1 -0
  44. package/dist/bin/internal-plugins/skill-hint.d.ts +31 -0
  45. package/dist/bin/internal-plugins/skill-hint.d.ts.map +1 -0
  46. package/dist/bin/internal-plugins/skill-hint.js +172 -0
  47. package/dist/bin/internal-plugins/skill-hint.js.map +1 -0
  48. package/dist/bin/journal-store.d.ts +10 -0
  49. package/dist/bin/journal-store.d.ts.map +1 -0
  50. package/dist/bin/journal-store.js +137 -0
  51. package/dist/bin/journal-store.js.map +1 -0
  52. package/dist/bin/json-output.d.ts +2 -5
  53. package/dist/bin/json-output.d.ts.map +1 -1
  54. package/dist/bin/json-output.js +1 -1
  55. package/dist/bin/json-output.js.map +1 -1
  56. package/dist/bin/lib.d.ts +2 -4
  57. package/dist/bin/lib.d.ts.map +1 -1
  58. package/dist/bin/lib.js +2 -4
  59. package/dist/bin/lib.js.map +1 -1
  60. package/dist/bin/logging.d.ts +3 -0
  61. package/dist/bin/logging.d.ts.map +1 -0
  62. package/dist/bin/logging.js +31 -0
  63. package/dist/bin/logging.js.map +1 -0
  64. package/dist/bin/migration-store.d.ts +2 -4
  65. package/dist/bin/migration-store.d.ts.map +1 -1
  66. package/dist/bin/migration-store.js +2 -38
  67. package/dist/bin/migration-store.js.map +1 -1
  68. package/dist/bin/plugin-runtime.d.ts +9 -1
  69. package/dist/bin/plugin-runtime.d.ts.map +1 -1
  70. package/dist/bin/plugin-runtime.js +251 -2
  71. package/dist/bin/plugin-runtime.js.map +1 -1
  72. package/dist/bin/safety-markers.d.ts +3 -4
  73. package/dist/bin/safety-markers.d.ts.map +1 -1
  74. package/dist/bin/safety-markers.js +4 -13
  75. package/dist/bin/safety-markers.js.map +1 -1
  76. package/dist/bin/schema-loader.d.ts +1 -1
  77. package/dist/bin/schema-loader.d.ts.map +1 -1
  78. package/dist/bin/schema-loader.js +7 -2
  79. package/dist/bin/schema-loader.js.map +1 -1
  80. package/dist/bin/table-scope.d.ts +1 -2
  81. package/dist/bin/table-scope.d.ts.map +1 -1
  82. package/dist/bin/table-scope.js +1 -1
  83. package/dist/bin/table-scope.js.map +1 -1
  84. package/dist/commands/check/command.d.ts +3 -0
  85. package/dist/commands/check/command.d.ts.map +1 -0
  86. package/dist/commands/check/command.js +106 -0
  87. package/dist/commands/check/command.js.map +1 -0
  88. package/dist/commands/check/output.d.ts +35 -0
  89. package/dist/commands/check/output.d.ts.map +1 -0
  90. package/dist/commands/check/output.js +105 -0
  91. package/dist/commands/check/output.js.map +1 -0
  92. package/dist/commands/drift/command.d.ts +3 -0
  93. package/dist/commands/drift/command.d.ts.map +1 -0
  94. package/dist/commands/drift/command.js +128 -0
  95. package/dist/commands/drift/command.js.map +1 -0
  96. package/dist/commands/drift/compare.d.ts +66 -0
  97. package/dist/commands/drift/compare.d.ts.map +1 -0
  98. package/dist/commands/drift/compare.js +220 -0
  99. package/dist/commands/drift/compare.js.map +1 -0
  100. package/dist/commands/drift/diff.d.ts +8 -0
  101. package/dist/commands/drift/diff.d.ts.map +1 -0
  102. package/dist/commands/drift/diff.js +46 -0
  103. package/dist/commands/drift/diff.js.map +1 -0
  104. package/dist/commands/drift/payload.d.ts +38 -0
  105. package/dist/commands/drift/payload.d.ts.map +1 -0
  106. package/dist/commands/drift/payload.js +111 -0
  107. package/dist/commands/drift/payload.js.map +1 -0
  108. package/dist/commands/generate/command.d.ts +3 -0
  109. package/dist/commands/generate/command.d.ts.map +1 -0
  110. package/dist/commands/generate/command.js +163 -0
  111. package/dist/commands/generate/command.js.map +1 -0
  112. package/dist/commands/generate/output.d.ts +8 -0
  113. package/dist/commands/generate/output.d.ts.map +1 -0
  114. package/dist/commands/generate/output.js +59 -0
  115. package/dist/commands/generate/output.js.map +1 -0
  116. package/dist/commands/generate/plan-pipeline.d.ts +7 -0
  117. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -0
  118. package/dist/commands/generate/plan-pipeline.js +143 -0
  119. package/dist/commands/generate/plan-pipeline.js.map +1 -0
  120. package/dist/commands/generate/rename-mappings.d.ts +29 -0
  121. package/dist/commands/generate/rename-mappings.d.ts.map +1 -0
  122. package/dist/commands/generate/rename-mappings.js +195 -0
  123. package/dist/commands/generate/rename-mappings.js.map +1 -0
  124. package/dist/commands/init.d.ts +2 -0
  125. package/dist/commands/init.d.ts.map +1 -0
  126. package/dist/commands/init.js +101 -0
  127. package/dist/commands/init.js.map +1 -0
  128. package/dist/commands/migrate/apply.d.ts +33 -0
  129. package/dist/commands/migrate/apply.d.ts.map +1 -0
  130. package/dist/commands/migrate/apply.js +143 -0
  131. package/dist/commands/migrate/apply.js.map +1 -0
  132. package/dist/commands/migrate/async-apply.d.ts +30 -0
  133. package/dist/commands/migrate/async-apply.d.ts.map +1 -0
  134. package/dist/commands/migrate/async-apply.js +258 -0
  135. package/dist/commands/migrate/async-apply.js.map +1 -0
  136. package/dist/commands/migrate/command.d.ts +3 -0
  137. package/dist/commands/migrate/command.d.ts.map +1 -0
  138. package/dist/commands/migrate/command.js +207 -0
  139. package/dist/commands/migrate/command.js.map +1 -0
  140. package/dist/commands/migrate/destructive.d.ts +7 -0
  141. package/dist/commands/migrate/destructive.d.ts.map +1 -0
  142. package/dist/commands/migrate/destructive.js +24 -0
  143. package/dist/commands/migrate/destructive.js.map +1 -0
  144. package/dist/commands/migrate/prompts.d.ts +6 -0
  145. package/dist/commands/migrate/prompts.d.ts.map +1 -0
  146. package/dist/commands/migrate/prompts.js +40 -0
  147. package/dist/commands/migrate/prompts.js.map +1 -0
  148. package/dist/commands/migrate/scope.d.ts +12 -0
  149. package/dist/commands/migrate/scope.d.ts.map +1 -0
  150. package/dist/commands/migrate/scope.js +35 -0
  151. package/dist/commands/migrate/scope.js.map +1 -0
  152. package/dist/commands/plugin.d.ts +3 -0
  153. package/dist/commands/plugin.d.ts.map +1 -0
  154. package/dist/commands/plugin.js +129 -0
  155. package/dist/commands/plugin.js.map +1 -0
  156. package/dist/commands/query.d.ts +17 -0
  157. package/dist/commands/query.d.ts.map +1 -0
  158. package/dist/commands/query.js +155 -0
  159. package/dist/commands/query.js.map +1 -0
  160. package/dist/commands/skills.d.ts +13 -0
  161. package/dist/commands/skills.d.ts.map +1 -0
  162. package/dist/commands/skills.js +25 -0
  163. package/dist/commands/skills.js.map +1 -0
  164. package/dist/commands/status.d.ts +3 -0
  165. package/dist/commands/status.d.ts.map +1 -0
  166. package/dist/commands/status.js +69 -0
  167. package/dist/commands/status.js.map +1 -0
  168. package/dist/drift.d.ts +7 -6
  169. package/dist/drift.d.ts.map +1 -1
  170. package/dist/drift.js +19 -8
  171. package/dist/drift.js.map +1 -1
  172. package/dist/internal-plugins/core/plugin.d.ts +2 -0
  173. package/dist/internal-plugins/core/plugin.d.ts.map +1 -0
  174. package/dist/internal-plugins/core/plugin.js +21 -0
  175. package/dist/internal-plugins/core/plugin.js.map +1 -0
  176. package/dist/internal-plugins/index.d.ts +3 -0
  177. package/dist/internal-plugins/index.d.ts.map +1 -0
  178. package/dist/internal-plugins/index.js +6 -0
  179. package/dist/internal-plugins/index.js.map +1 -0
  180. package/dist/internal-plugins/skill-hint/agent-detect.d.ts +20 -0
  181. package/dist/internal-plugins/skill-hint/agent-detect.d.ts.map +1 -0
  182. package/dist/internal-plugins/skill-hint/agent-detect.js +68 -0
  183. package/dist/internal-plugins/skill-hint/agent-detect.js.map +1 -0
  184. package/dist/internal-plugins/skill-hint/plugin.d.ts +16 -0
  185. package/dist/internal-plugins/skill-hint/plugin.d.ts.map +1 -0
  186. package/dist/internal-plugins/skill-hint/plugin.js +60 -0
  187. package/dist/internal-plugins/skill-hint/plugin.js.map +1 -0
  188. package/dist/internal-plugins/skill-hint/prompt.d.ts +5 -0
  189. package/dist/internal-plugins/skill-hint/prompt.d.ts.map +1 -0
  190. package/dist/internal-plugins/skill-hint/prompt.js +37 -0
  191. package/dist/internal-plugins/skill-hint/prompt.js.map +1 -0
  192. package/dist/internal-plugins/skill-hint/state.d.ts +7 -0
  193. package/dist/internal-plugins/skill-hint/state.d.ts.map +1 -0
  194. package/dist/internal-plugins/skill-hint/state.js +23 -0
  195. package/dist/internal-plugins/skill-hint/state.js.map +1 -0
  196. package/dist/plugins.d.ts +109 -27
  197. package/dist/plugins.d.ts.map +1 -1
  198. package/dist/plugins.js +0 -6
  199. package/dist/plugins.js.map +1 -1
  200. package/dist/runtime/command-dispatch.d.ts +18 -0
  201. package/dist/runtime/command-dispatch.d.ts.map +1 -0
  202. package/dist/runtime/command-dispatch.js +227 -0
  203. package/dist/runtime/command-dispatch.js.map +1 -0
  204. package/dist/runtime/command-registry.d.ts +31 -0
  205. package/dist/runtime/command-registry.d.ts.map +1 -0
  206. package/dist/runtime/command-registry.js +74 -0
  207. package/dist/runtime/command-registry.js.map +1 -0
  208. package/dist/runtime/config-merge.d.ts +4 -0
  209. package/dist/runtime/config-merge.d.ts.map +1 -0
  210. package/dist/runtime/config-merge.js +72 -0
  211. package/dist/runtime/config-merge.js.map +1 -0
  212. package/dist/runtime/config.d.ts +30 -0
  213. package/dist/runtime/config.d.ts.map +1 -0
  214. package/dist/runtime/config.js +173 -0
  215. package/dist/runtime/config.js.map +1 -0
  216. package/dist/runtime/debug.d.ts +3 -0
  217. package/dist/runtime/debug.d.ts.map +1 -0
  218. package/dist/runtime/debug.js +14 -0
  219. package/dist/runtime/debug.js.map +1 -0
  220. package/dist/runtime/deps.d.ts +28 -0
  221. package/dist/runtime/deps.d.ts.map +1 -0
  222. package/dist/runtime/deps.js +91 -0
  223. package/dist/runtime/deps.js.map +1 -0
  224. package/dist/runtime/extract-config-path.d.ts +2 -0
  225. package/dist/runtime/extract-config-path.d.ts.map +1 -0
  226. package/dist/runtime/extract-config-path.js +13 -0
  227. package/dist/runtime/extract-config-path.js.map +1 -0
  228. package/dist/runtime/global-flags.d.ts +16 -0
  229. package/dist/runtime/global-flags.d.ts.map +1 -0
  230. package/dist/runtime/global-flags.js +7 -0
  231. package/dist/runtime/global-flags.js.map +1 -0
  232. package/dist/runtime/help.d.ts +5 -0
  233. package/dist/runtime/help.d.ts.map +1 -0
  234. package/dist/runtime/help.js +94 -0
  235. package/dist/runtime/help.js.map +1 -0
  236. package/dist/runtime/journal-store.d.ts +31 -0
  237. package/dist/runtime/journal-store.d.ts.map +1 -0
  238. package/dist/runtime/journal-store.js +235 -0
  239. package/dist/runtime/journal-store.js.map +1 -0
  240. package/dist/runtime/json-output.d.ts +25 -0
  241. package/dist/runtime/json-output.d.ts.map +1 -0
  242. package/dist/runtime/json-output.js +50 -0
  243. package/dist/runtime/json-output.js.map +1 -0
  244. package/dist/runtime/logging.d.ts +3 -0
  245. package/dist/runtime/logging.d.ts.map +1 -0
  246. package/dist/runtime/logging.js +31 -0
  247. package/dist/runtime/logging.js.map +1 -0
  248. package/dist/runtime/migration-metadata.d.ts +5 -0
  249. package/dist/runtime/migration-metadata.d.ts.map +1 -0
  250. package/dist/runtime/migration-metadata.js +29 -0
  251. package/dist/runtime/migration-metadata.js.map +1 -0
  252. package/dist/runtime/migration-store.d.ts +22 -0
  253. package/dist/runtime/migration-store.d.ts.map +1 -0
  254. package/dist/runtime/migration-store.js +60 -0
  255. package/dist/runtime/migration-store.js.map +1 -0
  256. package/dist/runtime/plugin-runtime/errors.d.ts +3 -0
  257. package/dist/runtime/plugin-runtime/errors.d.ts.map +1 -0
  258. package/dist/runtime/plugin-runtime/errors.js +13 -0
  259. package/dist/runtime/plugin-runtime/errors.js.map +1 -0
  260. package/dist/runtime/plugin-runtime/executor-debug.d.ts +3 -0
  261. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -0
  262. package/dist/runtime/plugin-runtime/executor-debug.js +65 -0
  263. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -0
  264. package/dist/runtime/plugin-runtime/hooks.d.ts +23 -0
  265. package/dist/runtime/plugin-runtime/hooks.d.ts.map +1 -0
  266. package/dist/runtime/plugin-runtime/hooks.js +148 -0
  267. package/dist/runtime/plugin-runtime/hooks.js.map +1 -0
  268. package/dist/runtime/plugin-runtime/index.d.ts +9 -0
  269. package/dist/runtime/plugin-runtime/index.d.ts.map +1 -0
  270. package/dist/runtime/plugin-runtime/index.js +184 -0
  271. package/dist/runtime/plugin-runtime/index.js.map +1 -0
  272. package/dist/runtime/plugin-runtime/loader.d.ts +11 -0
  273. package/dist/runtime/plugin-runtime/loader.d.ts.map +1 -0
  274. package/dist/runtime/plugin-runtime/loader.js +37 -0
  275. package/dist/runtime/plugin-runtime/loader.js.map +1 -0
  276. package/dist/runtime/plugin-runtime/null-executor.d.ts +3 -0
  277. package/dist/runtime/plugin-runtime/null-executor.d.ts.map +1 -0
  278. package/dist/runtime/plugin-runtime/null-executor.js +17 -0
  279. package/dist/runtime/plugin-runtime/null-executor.js.map +1 -0
  280. package/dist/runtime/safety-markers.d.ts +56 -0
  281. package/dist/runtime/safety-markers.d.ts.map +1 -0
  282. package/dist/runtime/safety-markers.js +211 -0
  283. package/dist/runtime/safety-markers.js.map +1 -0
  284. package/dist/runtime/schema-loader.d.ts +3 -0
  285. package/dist/runtime/schema-loader.d.ts.map +1 -0
  286. package/dist/runtime/schema-loader.js +11 -0
  287. package/dist/runtime/schema-loader.js.map +1 -0
  288. package/dist/runtime/table-scope.d.ts +33 -0
  289. package/dist/runtime/table-scope.d.ts.map +1 -0
  290. package/dist/runtime/table-scope.js +167 -0
  291. package/dist/runtime/table-scope.js.map +1 -0
  292. package/dist/runtime/user-config.d.ts +4 -0
  293. package/dist/runtime/user-config.d.ts.map +1 -0
  294. package/dist/runtime/user-config.js +11 -0
  295. package/dist/runtime/user-config.js.map +1 -0
  296. package/dist/runtime/version.d.ts +2 -0
  297. package/dist/runtime/version.d.ts.map +1 -0
  298. package/dist/runtime/version.js +5 -0
  299. package/dist/runtime/version.js.map +1 -0
  300. package/package.json +24 -6
@@ -0,0 +1,37 @@
1
+ export function normalizePluginRegistration(entry) {
2
+ return {
3
+ plugin: entry.plugin,
4
+ nameHint: entry.name,
5
+ enabled: entry.enabled !== false,
6
+ options: entry.options ?? {},
7
+ };
8
+ }
9
+ function parseCliMajor(version) {
10
+ const major = Number(version.split('.')[0] ?? Number.NaN);
11
+ if (!Number.isInteger(major) || major < 0) {
12
+ throw new Error(`Invalid CLI version "${version}" while loading plugins.`);
13
+ }
14
+ return major;
15
+ }
16
+ export function validatePlugin(cliVersion, plugin, sourceLabel) {
17
+ const name = plugin.manifest.name;
18
+ if (!name || name.trim().length === 0) {
19
+ throw new Error(`Plugin at ${sourceLabel} has an empty manifest.name.`);
20
+ }
21
+ if (plugin.manifest.apiVersion !== 1) {
22
+ throw new Error(`Plugin "${name}" requires apiVersion=${String(plugin.manifest.apiVersion)} but CLI supports apiVersion=1.`);
23
+ }
24
+ const compatibility = plugin.manifest.compatibility?.cli;
25
+ if (!compatibility)
26
+ return;
27
+ const cliMajor = parseCliMajor(cliVersion);
28
+ if (compatibility.minMajor !== undefined &&
29
+ cliMajor < compatibility.minMajor) {
30
+ throw new Error(`Plugin "${name}" is incompatible with CLI ${cliVersion}. Requires cli major >= ${compatibility.minMajor}.`);
31
+ }
32
+ if (compatibility.maxMajor !== undefined &&
33
+ cliMajor > compatibility.maxMajor) {
34
+ throw new Error(`Plugin "${name}" is incompatible with CLI ${cliVersion}. Requires cli major <= ${compatibility.maxMajor}.`);
35
+ }
36
+ }
37
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/runtime/plugin-runtime/loader.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,2BAA2B,CACzC,KAA4B;IAE5B,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAmB;QACjC,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK;QAChC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;KAC7B,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,0BAA0B,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,MAAiB,EACjB,WAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA;IACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,aAAa,WAAW,8BAA8B,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,yBAAyB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,iCAAiC,CAC5G,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAA;IACxD,IAAI,CAAC,aAAa;QAAE,OAAM;IAE1B,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAC1C,IACE,aAAa,CAAC,QAAQ,KAAK,SAAS;QACpC,QAAQ,GAAG,aAAa,CAAC,QAAQ,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,8BAA8B,UAAU,2BAA2B,aAAa,CAAC,QAAQ,GAAG,CAC5G,CAAA;IACH,CAAC;IACD,IACE,aAAa,CAAC,QAAQ,KAAK,SAAS;QACpC,QAAQ,GAAG,aAAa,CAAC,QAAQ,EACjC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,8BAA8B,UAAU,2BAA2B,aAAa,CAAC,QAAQ,GAAG,CAC5G,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -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,56 @@
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
+ export type MigrationOperationMode = 'sync' | 'async';
15
+ export interface MigrationOperationSummary {
16
+ type: string;
17
+ key: string;
18
+ risk: string;
19
+ mode: MigrationOperationMode;
20
+ /**
21
+ * SQL to run BEFORE re-attempting this operation, parsed from a
22
+ * `-- before-retry: <sql>` header line that follows the `-- operation:`
23
+ * line. Empty / null on first attempt; runs on every retry. Compensates
24
+ * for partial side effects left behind by a failed prior attempt
25
+ * (e.g. TRUNCATE a partially-loaded table before re-INSERTing).
26
+ */
27
+ beforeRetry: string | null;
28
+ summary: string;
29
+ }
30
+ export declare function migrationContainsDangerOperation(sql: string): boolean;
31
+ export declare function extractMigrationOperationSummaries(sql: string): MigrationOperationSummary[];
32
+ export declare function collectDestructiveOperationMarkers(migration: string, sql: string): DestructiveOperationMarker[];
33
+ export interface ScannedDestructiveStatement {
34
+ type: string;
35
+ statement: string;
36
+ }
37
+ /**
38
+ * Scan the executable SQL (comments stripped) for destructive statements that
39
+ * are NOT covered by a planner `-- operation:` marker.
40
+ *
41
+ * Generated migrations emit exactly one marker per statement, in order (the same
42
+ * 1:1 invariant apply.ts relies on), so a marker-covered statement is governed
43
+ * by the planner's risk classification and is trusted — e.g. a non-danger
44
+ * `DROP MATERIALIZED VIEW` recreate. Only marker-less positions are flagged: a
45
+ * fully hand-written migration (no markers) or a destructive statement
46
+ * hand-appended to a generated one.
47
+ */
48
+ export declare function scanDestructiveSqlStatements(sql: string): ScannedDestructiveStatement[];
49
+ export declare function migrationContainsDestructiveSql(sql: string): boolean;
50
+ /**
51
+ * Synthesize destructive-operation markers for migrations that contain
52
+ * destructive SQL but carry no `-- operation: risk=danger` marker (hand-written
53
+ * migrations). Used as a fallback so these still require --allow-destructive.
54
+ */
55
+ export declare function collectUnmarkedDestructiveStatements(migration: string, sql: string): DestructiveOperationMarker[];
56
+ //# 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,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAA;AAErD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,sBAAsB,CAAA;IAC5B;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErE;AAoCD,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,EAAE,CA0B3F;AAuDD,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,0BAA0B,EAAE,CA6B9B;AAkCD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,2BAA2B,EAAE,CAWvF;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,0BAA0B,EAAE,CAgB9B"}
@@ -0,0 +1,211 @@
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, beforeRetry) {
14
+ const match = summary.match(/^([a-z_]+)\s+key=([^\s]+)\s+risk=([a-z_]+)(?:\s+mode=([a-z_]+))?$/);
15
+ if (!match)
16
+ return null;
17
+ const rawMode = match[4];
18
+ const mode = rawMode === 'async' ? 'async' : 'sync';
19
+ return {
20
+ type: match[1] ?? 'unknown',
21
+ key: match[2] ?? 'unknown',
22
+ risk: match[3] ?? 'unknown',
23
+ mode,
24
+ beforeRetry,
25
+ summary,
26
+ };
27
+ }
28
+ const BEFORE_RETRY_PREFIX = '-- before-retry:';
29
+ function stripTrailingSemicolon(value) {
30
+ return value.replace(/;\s*$/, '').trim();
31
+ }
32
+ export function extractMigrationOperationSummaries(sql) {
33
+ const lines = sql.split('\n').map((line) => line.trim());
34
+ const summaries = [];
35
+ for (let i = 0; i < lines.length; i++) {
36
+ const line = lines[i];
37
+ if (!line?.startsWith('-- operation:'))
38
+ continue;
39
+ const summary = line.replace(/^-- operation:\s*/, '');
40
+ // A `-- before-retry: <sql>` line is associated with the operation if it
41
+ // appears in the comment block immediately following the operation line
42
+ // (allowing blank/comment lines in between, but not executable SQL).
43
+ let beforeRetry = null;
44
+ for (let j = i + 1; j < lines.length; j++) {
45
+ const next = lines[j];
46
+ if (next === undefined)
47
+ break;
48
+ if (next === '')
49
+ continue;
50
+ if (!next.startsWith('--'))
51
+ break;
52
+ if (next.startsWith(BEFORE_RETRY_PREFIX)) {
53
+ beforeRetry = stripTrailingSemicolon(next.slice(BEFORE_RETRY_PREFIX.length).trim());
54
+ if (beforeRetry === '')
55
+ beforeRetry = null;
56
+ break;
57
+ }
58
+ }
59
+ const parsed = parseOperationLine(summary, beforeRetry);
60
+ if (parsed !== null)
61
+ summaries.push(parsed);
62
+ }
63
+ return summaries;
64
+ }
65
+ function describeDestructiveOperation(type, opts = {}) {
66
+ if (type === 'drop_table' && opts.recreate) {
67
+ return {
68
+ warningCode: 'table_recreate_data_loss',
69
+ reason: 'A change to engine, ORDER BY, PRIMARY KEY, PARTITION BY, or UNIQUE KEY can only be applied by dropping and recreating this table.',
70
+ impact: 'ALL ROWS are permanently deleted — the table is recreated empty and existing data is NOT copied over.',
71
+ recommendation: 'Back up the data first, or migrate via a temporary table (rename, INSERT ... SELECT, then drop) before approving.',
72
+ };
73
+ }
74
+ if (type === 'drop_table') {
75
+ return {
76
+ warningCode: 'drop_table_data_loss',
77
+ reason: 'Dropping a table removes table data and metadata from the target database.',
78
+ impact: 'Queries that depend on this table will fail until it is recreated and repopulated.',
79
+ recommendation: 'Verify backups and downstream dependencies before approving.',
80
+ };
81
+ }
82
+ if (type === 'alter_table_drop_column') {
83
+ return {
84
+ warningCode: 'drop_column_irreversible',
85
+ reason: 'Dropping a column permanently removes stored values for that column.',
86
+ impact: 'Applications or analytics depending on the column will break or return incomplete data.',
87
+ recommendation: 'Confirm the column is deprecated and no readers still require it.',
88
+ };
89
+ }
90
+ if (type === 'drop_view' || type === 'drop_materialized_view') {
91
+ return {
92
+ warningCode: 'drop_view_dependency_break',
93
+ reason: 'Dropping a view removes a query interface used by clients and pipelines.',
94
+ impact: 'Dependent workloads may fail until compatible replacements are in place.',
95
+ recommendation: 'Confirm replacement view rollout and dependency readiness.',
96
+ };
97
+ }
98
+ return {
99
+ warningCode: 'destructive_operation_review_required',
100
+ reason: 'This operation is marked destructive by planner risk classification.',
101
+ impact: 'Execution may cause irreversible schema or data changes.',
102
+ recommendation: 'Review SQL and dependency impact before approving.',
103
+ };
104
+ }
105
+ export function collectDestructiveOperationMarkers(migration, sql) {
106
+ // A table recreate emits a drop_table + create_table for the SAME key in the
107
+ // same migration (an engine/ORDER BY/PRIMARY KEY/PARTITION BY/UNIQUE KEY
108
+ // change). Flag those drops with a louder, distinct warning than a plain drop
109
+ // so the user knows all rows are lost and the table is recreated empty (#23).
110
+ const createdTableKeys = new Set(extractMigrationOperationSummaries(sql)
111
+ .filter((op) => op.type === 'create_table')
112
+ .map((op) => op.key));
113
+ return extractDestructiveOperationSummaries(sql).map((summary) => {
114
+ const parsed = parseOperationLine(summary, null);
115
+ const type = parsed?.type ?? 'unknown';
116
+ const key = parsed?.key ?? 'unknown';
117
+ const risk = parsed?.risk ?? 'danger';
118
+ const recreate = type === 'drop_table' && createdTableKeys.has(key);
119
+ const detail = describeDestructiveOperation(type, { recreate });
120
+ return {
121
+ migration,
122
+ type,
123
+ key,
124
+ risk,
125
+ warningCode: detail.warningCode,
126
+ reason: detail.reason,
127
+ impact: detail.impact,
128
+ recommendation: detail.recommendation,
129
+ summary,
130
+ };
131
+ });
132
+ }
133
+ // Defense-in-depth (#2): planner-emitted `-- operation: risk=danger` markers only
134
+ // exist on generated migrations. A hand-written or hand-edited migration can
135
+ // contain destructive SQL with no marker — so we also scan the executable SQL
136
+ // itself. Comments are stripped first, so a commented-out `-- DROP TABLE` is not
137
+ // flagged, while a real statement is.
138
+ // Each rule requires the statement keyword that follows the verb, so a SQL
139
+ // function such as `truncate(x)` (a ClickHouse math function) is NOT mistaken
140
+ // for a `TRUNCATE TABLE` statement.
141
+ const DESTRUCTIVE_SQL_RULES = [
142
+ { type: 'drop_database', re: /\bDROP\s+DATABASE\b/i },
143
+ { type: 'drop_materialized_view', re: /\bDROP\s+MATERIALIZED\s+VIEW\b/i },
144
+ { type: 'drop_view', re: /\bDROP\s+VIEW\b/i },
145
+ { type: 'drop_table', re: /\bDROP\s+(?:TEMPORARY\s+)?TABLE\b/i },
146
+ { type: 'alter_table_drop_column', re: /\bDROP\s+COLUMN\b/i },
147
+ { type: 'truncate_table', re: /\bTRUNCATE\s+(?:TABLE|DATABASE|ALL\s+TABLES)\b/i },
148
+ { type: 'detach', re: /\bDETACH\s+(?:TABLE|VIEW|DICTIONARY|DATABASE|PARTITION|PART)\b/i },
149
+ ];
150
+ function classifyDestructiveStatement(statement) {
151
+ for (const rule of DESTRUCTIVE_SQL_RULES) {
152
+ if (rule.re.test(statement))
153
+ return rule.type;
154
+ }
155
+ return null;
156
+ }
157
+ function extractObjectKey(statement) {
158
+ const match = statement.match(/\b(?:TABLE|VIEW|DATABASE)\s+(?:IF\s+EXISTS\s+)?`?([\w.]+)`?/i);
159
+ return match?.[1] ?? 'unknown';
160
+ }
161
+ /**
162
+ * Scan the executable SQL (comments stripped) for destructive statements that
163
+ * are NOT covered by a planner `-- operation:` marker.
164
+ *
165
+ * Generated migrations emit exactly one marker per statement, in order (the same
166
+ * 1:1 invariant apply.ts relies on), so a marker-covered statement is governed
167
+ * by the planner's risk classification and is trusted — e.g. a non-danger
168
+ * `DROP MATERIALIZED VIEW` recreate. Only marker-less positions are flagged: a
169
+ * fully hand-written migration (no markers) or a destructive statement
170
+ * hand-appended to a generated one.
171
+ */
172
+ export function scanDestructiveSqlStatements(sql) {
173
+ const statements = extractExecutableStatements(sql);
174
+ const operations = extractMigrationOperationSummaries(sql);
175
+ const found = [];
176
+ for (let i = 0; i < statements.length; i++) {
177
+ if (operations[i] !== undefined)
178
+ continue;
179
+ const statement = statements[i] ?? '';
180
+ const type = classifyDestructiveStatement(statement);
181
+ if (type)
182
+ found.push({ type, statement: statement.trim() });
183
+ }
184
+ return found;
185
+ }
186
+ export function migrationContainsDestructiveSql(sql) {
187
+ return scanDestructiveSqlStatements(sql).length > 0;
188
+ }
189
+ /**
190
+ * Synthesize destructive-operation markers for migrations that contain
191
+ * destructive SQL but carry no `-- operation: risk=danger` marker (hand-written
192
+ * migrations). Used as a fallback so these still require --allow-destructive.
193
+ */
194
+ export function collectUnmarkedDestructiveStatements(migration, sql) {
195
+ return scanDestructiveSqlStatements(sql).map(({ type, statement }) => {
196
+ const detail = describeDestructiveOperation(type);
197
+ const preview = statement.length > 120 ? `${statement.slice(0, 117)}...` : statement;
198
+ return {
199
+ migration,
200
+ type,
201
+ key: extractObjectKey(statement),
202
+ risk: 'danger',
203
+ warningCode: detail.warningCode,
204
+ reason: detail.reason,
205
+ impact: detail.impact,
206
+ recommendation: detail.recommendation,
207
+ summary: `unmarked destructive SQL: ${preview}`,
208
+ };
209
+ });
210
+ }
211
+ //# sourceMappingURL=safety-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safety-markers.js","sourceRoot":"","sources":["../../src/runtime/safety-markers.ts"],"names":[],"mappings":"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"}
@@ -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,4 @@
1
+ export declare function getUserConfigDir(): string;
2
+ export declare const USER_PROFILE_CONFIG_FILE = "config.ts";
3
+ export declare const USER_CREDENTIALS_FILE = "credentials.json";
4
+ //# sourceMappingURL=user-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-config.d.ts","sourceRoot":"","sources":["../../src/runtime/user-config.ts"],"names":[],"mappings":"AAIA,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,eAAO,MAAM,wBAAwB,cAAc,CAAA;AACnD,eAAO,MAAM,qBAAqB,qBAAqB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { homedir } from 'node:os';
2
+ import { join } from 'node:path';
3
+ import process from 'node:process';
4
+ export function getUserConfigDir() {
5
+ const xdgConfig = process.env.XDG_CONFIG_HOME;
6
+ const configDir = xdgConfig && xdgConfig.length > 0 ? xdgConfig : join(homedir(), '.config');
7
+ return join(configDir, 'chkit');
8
+ }
9
+ export const USER_PROFILE_CONFIG_FILE = 'config.ts';
10
+ export const USER_CREDENTIALS_FILE = 'credentials.json';
11
+ //# sourceMappingURL=user-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/runtime/user-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;IAC7C,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;IAC5F,OAAO,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAA;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAA"}
@@ -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"}