chkit 0.1.0-beta.5

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 (114) hide show
  1. package/README.md +43 -0
  2. package/dist/bin/chkit.d.ts +3 -0
  3. package/dist/bin/chkit.d.ts.map +1 -0
  4. package/dist/bin/chkit.js +337 -0
  5. package/dist/bin/chkit.js.map +1 -0
  6. package/dist/bin/commands/check.d.ts +2 -0
  7. package/dist/bin/commands/check.d.ts.map +1 -0
  8. package/dist/bin/commands/check.js +123 -0
  9. package/dist/bin/commands/check.js.map +1 -0
  10. package/dist/bin/commands/codegen.d.ts +2 -0
  11. package/dist/bin/commands/codegen.d.ts.map +1 -0
  12. package/dist/bin/commands/codegen.js +25 -0
  13. package/dist/bin/commands/codegen.js.map +1 -0
  14. package/dist/bin/commands/drift.d.ts +22 -0
  15. package/dist/bin/commands/drift.d.ts.map +1 -0
  16. package/dist/bin/commands/drift.js +170 -0
  17. package/dist/bin/commands/drift.js.map +1 -0
  18. package/dist/bin/commands/generate/output.d.ts +8 -0
  19. package/dist/bin/commands/generate/output.d.ts.map +1 -0
  20. package/dist/bin/commands/generate/output.js +58 -0
  21. package/dist/bin/commands/generate/output.js.map +1 -0
  22. package/dist/bin/commands/generate/plan-pipeline.d.ts +7 -0
  23. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +1 -0
  24. package/dist/bin/commands/generate/plan-pipeline.js +139 -0
  25. package/dist/bin/commands/generate/plan-pipeline.js.map +1 -0
  26. package/dist/bin/commands/generate/rename-mappings.d.ts +29 -0
  27. package/dist/bin/commands/generate/rename-mappings.d.ts.map +1 -0
  28. package/dist/bin/commands/generate/rename-mappings.js +207 -0
  29. package/dist/bin/commands/generate/rename-mappings.js.map +1 -0
  30. package/dist/bin/commands/generate.d.ts +2 -0
  31. package/dist/bin/commands/generate.d.ts.map +1 -0
  32. package/dist/bin/commands/generate.js +137 -0
  33. package/dist/bin/commands/generate.js.map +1 -0
  34. package/dist/bin/commands/init.d.ts +2 -0
  35. package/dist/bin/commands/init.d.ts.map +1 -0
  36. package/dist/bin/commands/init.js +12 -0
  37. package/dist/bin/commands/init.js.map +1 -0
  38. package/dist/bin/commands/migrate.d.ts +2 -0
  39. package/dist/bin/commands/migrate.d.ts.map +1 -0
  40. package/dist/bin/commands/migrate.js +262 -0
  41. package/dist/bin/commands/migrate.js.map +1 -0
  42. package/dist/bin/commands/plugin-like.d.ts +38 -0
  43. package/dist/bin/commands/plugin-like.d.ts.map +1 -0
  44. package/dist/bin/commands/plugin-like.js +101 -0
  45. package/dist/bin/commands/plugin-like.js.map +1 -0
  46. package/dist/bin/commands/plugin.d.ts +2 -0
  47. package/dist/bin/commands/plugin.d.ts.map +1 -0
  48. package/dist/bin/commands/plugin.js +92 -0
  49. package/dist/bin/commands/plugin.js.map +1 -0
  50. package/dist/bin/commands/pull.d.ts +2 -0
  51. package/dist/bin/commands/pull.d.ts.map +1 -0
  52. package/dist/bin/commands/pull.js +25 -0
  53. package/dist/bin/commands/pull.js.map +1 -0
  54. package/dist/bin/commands/status.d.ts +2 -0
  55. package/dist/bin/commands/status.d.ts.map +1 -0
  56. package/dist/bin/commands/status.js +42 -0
  57. package/dist/bin/commands/status.js.map +1 -0
  58. package/dist/bin/commands/typegen.d.ts +2 -0
  59. package/dist/bin/commands/typegen.d.ts.map +1 -0
  60. package/dist/bin/commands/typegen.js +25 -0
  61. package/dist/bin/commands/typegen.js.map +1 -0
  62. package/dist/bin/config.d.ts +26 -0
  63. package/dist/bin/config.d.ts.map +1 -0
  64. package/dist/bin/config.js +59 -0
  65. package/dist/bin/config.js.map +1 -0
  66. package/dist/bin/json-output.d.ts +8 -0
  67. package/dist/bin/json-output.d.ts.map +1 -0
  68. package/dist/bin/json-output.js +21 -0
  69. package/dist/bin/json-output.js.map +1 -0
  70. package/dist/bin/lib.d.ts +7 -0
  71. package/dist/bin/lib.d.ts.map +1 -0
  72. package/dist/bin/lib.js +7 -0
  73. package/dist/bin/lib.js.map +1 -0
  74. package/dist/bin/migration-store.d.ts +24 -0
  75. package/dist/bin/migration-store.d.ts.map +1 -0
  76. package/dist/bin/migration-store.js +96 -0
  77. package/dist/bin/migration-store.js.map +1 -0
  78. package/dist/bin/plugin-runtime.d.ts +37 -0
  79. package/dist/bin/plugin-runtime.d.ts.map +1 -0
  80. package/dist/bin/plugin-runtime.js +264 -0
  81. package/dist/bin/plugin-runtime.js.map +1 -0
  82. package/dist/bin/safety-markers.d.ts +24 -0
  83. package/dist/bin/safety-markers.d.ts.map +1 -0
  84. package/dist/bin/safety-markers.js +94 -0
  85. package/dist/bin/safety-markers.js.map +1 -0
  86. package/dist/bin/schema-loader.d.ts +3 -0
  87. package/dist/bin/schema-loader.d.ts.map +1 -0
  88. package/dist/bin/schema-loader.js +6 -0
  89. package/dist/bin/schema-loader.js.map +1 -0
  90. package/dist/bin/table-scope.d.ts +39 -0
  91. package/dist/bin/table-scope.d.ts.map +1 -0
  92. package/dist/bin/table-scope.js +167 -0
  93. package/dist/bin/table-scope.js.map +1 -0
  94. package/dist/bin/version.d.ts +2 -0
  95. package/dist/bin/version.d.ts.map +1 -0
  96. package/dist/bin/version.js +2 -0
  97. package/dist/bin/version.js.map +1 -0
  98. package/dist/drift-diff.d.ts +8 -0
  99. package/dist/drift-diff.d.ts.map +1 -0
  100. package/dist/drift-diff.js +46 -0
  101. package/dist/drift-diff.js.map +1 -0
  102. package/dist/drift.d.ts +65 -0
  103. package/dist/drift.d.ts.map +1 -0
  104. package/dist/drift.js +209 -0
  105. package/dist/drift.js.map +1 -0
  106. package/dist/index.d.ts +2 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +2 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/plugins.d.ts +103 -0
  111. package/dist/plugins.d.ts.map +1 -0
  112. package/dist/plugins.js +10 -0
  113. package/dist/plugins.js.map +1 -0
  114. package/package.json +28 -0
@@ -0,0 +1,207 @@
1
+ export function parseRenameTableMappings(args) {
2
+ return parseFlagValues('--rename-table', args).map((mapping) => {
3
+ const [fromRaw, toRaw, ...rest] = mapping.split('=').map((part) => part.trim());
4
+ if (!fromRaw || !toRaw || rest.length > 0) {
5
+ throw new Error(`Invalid --rename-table mapping "${mapping}". Expected format: old_db.old_table=new_db.new_table`);
6
+ }
7
+ const from = parseQualifiedTable(fromRaw);
8
+ const to = parseQualifiedTable(toRaw);
9
+ return {
10
+ oldDatabase: from.database,
11
+ oldName: from.name,
12
+ newDatabase: to.database,
13
+ newName: to.name,
14
+ source: 'cli',
15
+ };
16
+ });
17
+ }
18
+ export function parseRenameColumnMappings(args) {
19
+ return parseFlagValues('--rename-column', args).map((mapping) => {
20
+ const [fromRaw, toRaw, ...rest] = mapping.split('=').map((part) => part.trim());
21
+ if (!fromRaw || !toRaw || rest.length > 0) {
22
+ throw new Error(`Invalid --rename-column mapping "${mapping}". Expected format: db.table.old_column=new_column`);
23
+ }
24
+ const parts = fromRaw.split('.').map((part) => part.trim());
25
+ if (parts.length !== 3 || parts.some((part) => part.length === 0)) {
26
+ throw new Error(`Invalid --rename-column source "${fromRaw}". Expected format: db.table.old_column`);
27
+ }
28
+ return {
29
+ database: parts[0],
30
+ table: parts[1],
31
+ from: parts[2],
32
+ to: toRaw,
33
+ source: 'cli',
34
+ };
35
+ });
36
+ }
37
+ export function collectSchemaRenameMappings(definitions) {
38
+ const tableMappings = [];
39
+ const columnMappings = [];
40
+ for (const definition of definitions) {
41
+ if (definition.kind !== 'table')
42
+ continue;
43
+ if (definition.renamedFrom) {
44
+ tableMappings.push({
45
+ oldDatabase: definition.renamedFrom.database ?? definition.database,
46
+ oldName: definition.renamedFrom.name,
47
+ newDatabase: definition.database,
48
+ newName: definition.name,
49
+ source: 'schema',
50
+ });
51
+ }
52
+ for (const column of definition.columns) {
53
+ if (!column.renamedFrom)
54
+ continue;
55
+ columnMappings.push({
56
+ database: definition.database,
57
+ table: definition.name,
58
+ from: column.renamedFrom,
59
+ to: column.name,
60
+ source: 'schema',
61
+ });
62
+ }
63
+ }
64
+ return { tableMappings, columnMappings };
65
+ }
66
+ export function mergeTableMappings(schemaMappings, cliMappings) {
67
+ const merged = [...schemaMappings];
68
+ for (const cliMapping of cliMappings) {
69
+ const cliOldKey = `${cliMapping.oldDatabase}.${cliMapping.oldName}`;
70
+ const cliNewKey = `${cliMapping.newDatabase}.${cliMapping.newName}`;
71
+ for (let i = merged.length - 1; i >= 0; i -= 1) {
72
+ const entry = merged[i];
73
+ if (!entry)
74
+ continue;
75
+ const oldKey = `${entry.oldDatabase}.${entry.oldName}`;
76
+ const newKey = `${entry.newDatabase}.${entry.newName}`;
77
+ if (oldKey === cliOldKey || newKey === cliNewKey) {
78
+ merged.splice(i, 1);
79
+ }
80
+ }
81
+ merged.push(cliMapping);
82
+ }
83
+ return merged;
84
+ }
85
+ export function mergeColumnMappings(schemaMappings, cliMappings) {
86
+ const merged = [...schemaMappings];
87
+ for (const cliMapping of cliMappings) {
88
+ const cliFromKey = `${cliMapping.database}.${cliMapping.table}.${cliMapping.from}`;
89
+ const cliToKey = `${cliMapping.database}.${cliMapping.table}.${cliMapping.to}`;
90
+ for (let i = merged.length - 1; i >= 0; i -= 1) {
91
+ const entry = merged[i];
92
+ if (!entry)
93
+ continue;
94
+ const fromKey = `${entry.database}.${entry.table}.${entry.from}`;
95
+ const toKey = `${entry.database}.${entry.table}.${entry.to}`;
96
+ if (fromKey === cliFromKey || toKey === cliToKey) {
97
+ merged.splice(i, 1);
98
+ }
99
+ }
100
+ merged.push(cliMapping);
101
+ }
102
+ return merged;
103
+ }
104
+ export function resolveActiveTableMappings(previousDefinitions, nextDefinitions, mappings) {
105
+ return mappings.filter((mapping) => tableExists(previousDefinitions, mapping.oldDatabase, mapping.oldName) &&
106
+ tableExists(nextDefinitions, mapping.newDatabase, mapping.newName));
107
+ }
108
+ export function assertNoConflictingTableMappings(mappings) {
109
+ const byOld = new Map();
110
+ const byNew = new Map();
111
+ for (const mapping of mappings) {
112
+ const oldKey = `${mapping.oldDatabase}.${mapping.oldName}`;
113
+ const newKey = `${mapping.newDatabase}.${mapping.newName}`;
114
+ const existingOld = byOld.get(oldKey);
115
+ if (existingOld && (existingOld.newDatabase !== mapping.newDatabase || existingOld.newName !== mapping.newName)) {
116
+ throw new Error(`Conflicting table rename source mapping for "${oldKey}".`);
117
+ }
118
+ byOld.set(oldKey, mapping);
119
+ const existingNew = byNew.get(newKey);
120
+ if (existingNew && (existingNew.oldDatabase !== mapping.oldDatabase || existingNew.oldName !== mapping.oldName)) {
121
+ throw new Error(`Conflicting table rename target mapping for "${newKey}".`);
122
+ }
123
+ byNew.set(newKey, mapping);
124
+ }
125
+ for (const key of byOld.keys()) {
126
+ if (byNew.has(key)) {
127
+ throw new Error(`Unsupported chained or cyclic table rename mapping involving "${key}". Use direct one-step mappings only.`);
128
+ }
129
+ }
130
+ }
131
+ export function assertNoConflictingColumnMappings(mappings) {
132
+ const byFrom = new Map();
133
+ const byTo = new Map();
134
+ for (const mapping of mappings) {
135
+ const fromKey = `${mapping.database}.${mapping.table}.${mapping.from}`;
136
+ const toKey = `${mapping.database}.${mapping.table}.${mapping.to}`;
137
+ const existingFrom = byFrom.get(fromKey);
138
+ if (existingFrom && existingFrom.to !== mapping.to) {
139
+ throw new Error(`Conflicting column rename source mapping for "${fromKey}".`);
140
+ }
141
+ byFrom.set(fromKey, mapping);
142
+ const existingTo = byTo.get(toKey);
143
+ if (existingTo && existingTo.from !== mapping.from) {
144
+ throw new Error(`Conflicting column rename target mapping for "${toKey}".`);
145
+ }
146
+ byTo.set(toKey, mapping);
147
+ }
148
+ }
149
+ export function assertCliTableMappingsResolvable(cliMappings, previousDefinitions, nextDefinitions) {
150
+ for (const mapping of cliMappings) {
151
+ const hasOld = tableExists(previousDefinitions, mapping.oldDatabase, mapping.oldName);
152
+ const hasNew = tableExists(nextDefinitions, mapping.newDatabase, mapping.newName);
153
+ if (hasOld && hasNew)
154
+ continue;
155
+ if (!hasOld && !hasNew) {
156
+ throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: source table is missing from previous snapshot and target table is missing from current schema.`);
157
+ }
158
+ if (!hasOld) {
159
+ throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: source table is missing from previous snapshot.`);
160
+ }
161
+ throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: target table is missing from current schema.`);
162
+ }
163
+ }
164
+ export function remapOldDefinitionsForTableRenames(previousDefinitions, mappings) {
165
+ if (mappings.length === 0)
166
+ return previousDefinitions;
167
+ const mappingByOld = new Map();
168
+ for (const mapping of mappings) {
169
+ mappingByOld.set(`${mapping.oldDatabase}.${mapping.oldName}`, mapping);
170
+ }
171
+ return previousDefinitions.map((definition) => {
172
+ if (definition.kind !== 'table')
173
+ return definition;
174
+ const mapping = mappingByOld.get(`${definition.database}.${definition.name}`);
175
+ if (!mapping)
176
+ return definition;
177
+ const remapped = {
178
+ ...definition,
179
+ database: mapping.newDatabase,
180
+ name: mapping.newName,
181
+ };
182
+ return remapped;
183
+ });
184
+ }
185
+ function parseFlagValues(flag, args) {
186
+ const values = [];
187
+ for (let i = 0; i < args.length; i += 1) {
188
+ if (args[i] !== flag)
189
+ continue;
190
+ const value = args[i + 1];
191
+ if (!value || value.startsWith('--'))
192
+ continue;
193
+ values.push(...value.split(',').map((entry) => entry.trim()).filter((entry) => entry.length > 0));
194
+ }
195
+ return values;
196
+ }
197
+ function parseQualifiedTable(input) {
198
+ const [database, name, ...rest] = input.split('.').map((part) => part.trim());
199
+ if (!database || !name || rest.length > 0) {
200
+ throw new Error(`Invalid table reference "${input}". Expected format: database.table`);
201
+ }
202
+ return { database, name };
203
+ }
204
+ function tableExists(definitions, database, name) {
205
+ return definitions.some((definition) => definition.kind === 'table' && definition.database === database && definition.name === name);
206
+ }
207
+ //# sourceMappingURL=rename-mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename-mappings.js","sourceRoot":"","sources":["../../../../src/bin/commands/generate/rename-mappings.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,wBAAwB,CAAC,IAAc;IACrD,OAAO,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,uDAAuD,CAClG,CAAA;QACH,CAAC;QACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACrC,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,WAAW,EAAE,EAAE,CAAC,QAAQ;YACxB,OAAO,EAAE,EAAE,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAc;IACtD,OAAO,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/E,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,oDAAoD,CAChG,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CACb,mCAAmC,OAAO,yCAAyC,CACpF,CAAA;QACH,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAW;YAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAW;YACzB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAW;YACxB,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,WAA+B;IAE/B,MAAM,aAAa,GAAyB,EAAE,CAAA;IAC9C,MAAM,cAAc,GAA0B,EAAE,CAAA;IAEhD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,SAAQ;QACzC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC;gBACjB,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;gBACnE,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI;gBACpC,WAAW,EAAE,UAAU,CAAC,QAAQ;gBAChC,OAAO,EAAE,UAAU,CAAC,IAAI;gBACxB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,WAAW;gBAAE,SAAQ;YACjC,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,KAAK,EAAE,UAAU,CAAC,IAAI;gBACtB,IAAI,EAAE,MAAM,CAAC,WAAW;gBACxB,EAAE,EAAE,MAAM,CAAC,IAAI;gBACf,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,cAAoC,EACpC,WAAiC;IAEjC,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,CAAA;IAClC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,EAAE,CAAA;QACnE,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,EAAE,CAAA;QACnE,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;YACtD,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;YACtD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,cAAqC,EACrC,WAAkC;IAElC,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,CAAA;IAClC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAA;QAClF,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,EAAE,EAAE,CAAA;QAC9E,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;YAChE,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,CAAA;YAC5D,IAAI,OAAO,KAAK,UAAU,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,mBAAuC,EACvC,eAAmC,EACnC,QAA8B;IAE9B,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,OAAO,EAAE,EAAE,CACV,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC;QACtE,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CACrE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAA8B;IAC7E,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;IAEnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1D,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChH,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,IAAI,CAAC,CAAA;QAC7E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAE1B,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChH,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,IAAI,CAAC,CAAA;QAC7E,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,iEAAiE,GAAG,uCAAuC,CAC5G,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAA+B;IAC/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAA;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAA;IAEnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;QACtE,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,EAAE,CAAA;QAClE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iDAAiD,OAAO,IAAI,CAAC,CAAA;QAC/E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,IAAI,CAAC,CAAA;QAC7E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,WAAiC,EACjC,mBAAuC,EACvC,eAAmC;IAEnC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QACrF,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;QACjF,IAAI,MAAM,IAAI,MAAM;YAAE,SAAQ;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,+GAA+G,CAC3N,CAAA;QACH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,+DAA+D,CAC3K,CAAA;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,4DAA4D,CACxK,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,mBAAuC,EACvC,QAA8B;IAE9B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAA;IAErD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAA;IAC1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC5C,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,UAAU,CAAA;QAClD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7E,IAAI,CAAC,OAAO;YAAE,OAAO,UAAU,CAAA;QAC/B,MAAM,QAAQ,GAAoB;YAChC,GAAG,UAAU;YACb,QAAQ,EAAE,OAAO,CAAC,WAAW;YAC7B,IAAI,EAAE,OAAO,CAAC,OAAO;SACtB,CAAA;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,IAAc;IACnD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,SAAQ;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACnG,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC7E,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,oCAAoC,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,WAA+B,EAAE,QAAgB,EAAE,IAAY;IAClF,OAAO,WAAW,CAAC,IAAI,CACrB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAC5G,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function cmdGenerate(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/generate.ts"],"names":[],"mappings":"AAwCA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJ/D"}
@@ -0,0 +1,137 @@
1
+ import { generateArtifacts } from '@chkit/codegen';
2
+ import process from 'node:process';
3
+ import { ChxValidationError, planDiff } from '@chkit/core';
4
+ import { CLI_VERSION, emitJson, getCommandContext, hasFlag, loadSchemaDefinitions, parseArg, readSnapshot, } from '../lib.js';
5
+ import { loadPluginRuntime } from '../plugin-runtime.js';
6
+ import { buildScopedSnapshotDefinitions, filterPlanByTableScope, resolveTableScope, tableKeysFromDefinitions, } from '../table-scope.js';
7
+ import { applyExplicitTableRenames, applySelectedRenameSuggestions, assertCliColumnMappingsResolvable, buildExplicitColumnRenameSuggestions, } from './generate/plan-pipeline.js';
8
+ import { assertCliTableMappingsResolvable, assertNoConflictingColumnMappings, assertNoConflictingTableMappings, collectSchemaRenameMappings, mergeColumnMappings, mergeTableMappings, parseRenameColumnMappings, parseRenameTableMappings, remapOldDefinitionsForTableRenames, resolveActiveTableMappings, } from './generate/rename-mappings.js';
9
+ import { emitGenerateApplyOutput, emitGeneratePlanOutput } from './generate/output.js';
10
+ export async function cmdGenerate(args) {
11
+ const migrationName = parseArg('--name', args);
12
+ const migrationId = parseArg('--migration-id', args);
13
+ const tableSelector = parseArg('--table', args);
14
+ const planMode = hasFlag('--dryrun', args);
15
+ const { config, configPath, dirs, jsonMode } = await getCommandContext(args);
16
+ const pluginRuntime = await loadPluginRuntime({
17
+ config,
18
+ configPath,
19
+ cliVersion: CLI_VERSION,
20
+ });
21
+ await pluginRuntime.runOnConfigLoaded({
22
+ command: 'generate',
23
+ config,
24
+ configPath,
25
+ tableScope: resolveTableScope(tableSelector, []),
26
+ });
27
+ let definitions = await loadSchemaDefinitions(config.schema);
28
+ definitions = await pluginRuntime.runOnSchemaLoaded({
29
+ command: 'generate',
30
+ config,
31
+ tableScope: resolveTableScope(tableSelector, tableKeysFromDefinitions(definitions)),
32
+ definitions,
33
+ });
34
+ const cliTableMappings = parseRenameTableMappings(args);
35
+ const cliColumnMappings = parseRenameColumnMappings(args);
36
+ const schemaMappings = collectSchemaRenameMappings(definitions);
37
+ const tableMappings = mergeTableMappings(schemaMappings.tableMappings, cliTableMappings);
38
+ const columnMappings = mergeColumnMappings(schemaMappings.columnMappings, cliColumnMappings);
39
+ const { migrationsDir, metaDir } = dirs;
40
+ const previousDefinitions = (await readSnapshot(metaDir))?.definitions ?? [];
41
+ const resolvedScope = resolveTableScope(tableSelector, [
42
+ ...tableKeysFromDefinitions(previousDefinitions),
43
+ ...tableKeysFromDefinitions(definitions),
44
+ ]);
45
+ if (resolvedScope.enabled && resolvedScope.matchCount === 0) {
46
+ if (jsonMode) {
47
+ emitJson('generate', {
48
+ scope: resolvedScope,
49
+ mode: planMode ? 'plan' : 'apply',
50
+ operationCount: 0,
51
+ riskSummary: { safe: 0, caution: 0, danger: 0 },
52
+ operations: [],
53
+ renameSuggestions: [],
54
+ warning: `No tables matched selector "${resolvedScope.selector ?? ''}".`,
55
+ });
56
+ }
57
+ else {
58
+ console.log(`No tables matched selector "${resolvedScope.selector ?? ''}". No changes planned.`);
59
+ }
60
+ return;
61
+ }
62
+ assertNoConflictingTableMappings(tableMappings);
63
+ assertNoConflictingColumnMappings(columnMappings);
64
+ assertCliTableMappingsResolvable(cliTableMappings, previousDefinitions, definitions);
65
+ const activeTableMappings = resolveActiveTableMappings(previousDefinitions, definitions, tableMappings);
66
+ const remappedPreviousDefinitions = remapOldDefinitionsForTableRenames(previousDefinitions, activeTableMappings);
67
+ let plan;
68
+ try {
69
+ plan = planDiff(remappedPreviousDefinitions, definitions);
70
+ }
71
+ catch (error) {
72
+ if (error instanceof ChxValidationError) {
73
+ if (jsonMode) {
74
+ emitJson('generate', {
75
+ error: 'validation_failed',
76
+ issues: error.issues,
77
+ });
78
+ process.exitCode = 1;
79
+ return;
80
+ }
81
+ const details = error.issues.map((issue) => `- [${issue.code}] ${issue.message}`).join('\n');
82
+ throw new Error(`${error.message}\n${details}`);
83
+ }
84
+ throw error;
85
+ }
86
+ plan = applyExplicitTableRenames(plan, activeTableMappings);
87
+ assertCliColumnMappingsResolvable(cliColumnMappings, plan, definitions);
88
+ plan = applySelectedRenameSuggestions(plan, buildExplicitColumnRenameSuggestions(plan, columnMappings));
89
+ plan = await pluginRuntime.runOnPlanCreated({
90
+ command: 'generate',
91
+ config,
92
+ tableScope: resolvedScope,
93
+ }, plan);
94
+ if (resolvedScope.enabled) {
95
+ plan = filterPlanByTableScope(plan, new Set(resolvedScope.matchedTables), {
96
+ renameMappings: activeTableMappings,
97
+ }).plan;
98
+ }
99
+ if (planMode) {
100
+ emitGeneratePlanOutput(plan, jsonMode, resolvedScope);
101
+ return;
102
+ }
103
+ const artifactDefinitions = resolvedScope.enabled
104
+ ? buildScopedSnapshotDefinitions({
105
+ previousDefinitions,
106
+ nextDefinitions: definitions,
107
+ matchedTables: new Set(resolvedScope.matchedTables),
108
+ renameMappings: activeTableMappings,
109
+ })
110
+ : definitions;
111
+ const result = await generateArtifacts({
112
+ definitions: artifactDefinitions,
113
+ migrationsDir,
114
+ metaDir,
115
+ migrationName,
116
+ migrationId,
117
+ plan,
118
+ cliVersion: CLI_VERSION,
119
+ });
120
+ const codegenPlugin = pluginRuntime.plugins.find((entry) => entry.plugin.manifest.name === 'codegen');
121
+ const codegenRunOnGenerate = codegenPlugin ? codegenPlugin.options.runOnGenerate !== false : false;
122
+ if (codegenPlugin && codegenRunOnGenerate) {
123
+ const codegenExitCode = await pluginRuntime.runPluginCommand('codegen', 'codegen', {
124
+ config,
125
+ configPath,
126
+ jsonMode: false,
127
+ tableScope: resolvedScope,
128
+ args: [],
129
+ print() { },
130
+ });
131
+ if (codegenExitCode !== 0) {
132
+ throw new Error(`Plugin "codegen" failed in generate integration with exit code ${codegenExitCode}.`);
133
+ }
134
+ }
135
+ emitGenerateApplyOutput(result, artifactDefinitions, plan, jsonMode, resolvedScope);
136
+ }
137
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/bin/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function cmdInit(): Promise<void>;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/init.ts"],"names":[],"mappings":"AAIA,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB7C"}
@@ -0,0 +1,12 @@
1
+ import { resolve } from 'node:path';
2
+ import { DEFAULT_CONFIG_FILE, writeIfMissing } from '../config.js';
3
+ export async function cmdInit() {
4
+ const configPath = resolve(process.cwd(), DEFAULT_CONFIG_FILE);
5
+ const schemaPath = resolve(process.cwd(), 'src/db/schema/example.ts');
6
+ await writeIfMissing(configPath, `import { defineConfig } from '@chkit/core'\n\nexport default defineConfig({\n schema: './src/db/schema/**/*.ts',\n outDir: './chkit',\n migrationsDir: './chkit/migrations',\n metaDir: './chkit/meta',\n plugins: [\n // Typed plugin registration (recommended):\n // import { codegen } from '@chkit/plugin-codegen'\n // codegen({ emitZod: true }),\n\n // Legacy path-based registration (still supported):\n // { resolve: './plugins/example-plugin.ts', options: {}, enabled: true },\n ],\n clickhouse: {\n url: process.env.CLICKHOUSE_URL ?? 'http://localhost:8123',\n username: process.env.CLICKHOUSE_USER ?? 'default',\n password: process.env.CLICKHOUSE_PASSWORD ?? '',\n database: process.env.CLICKHOUSE_DB ?? 'default',\n },\n})\n`);
7
+ await writeIfMissing(schemaPath, `import { schema, table } from '@chkit/core'\n\nconst events = table({\n database: 'default',\n name: 'events',\n engine: 'MergeTree',\n columns: [\n { name: 'id', type: 'UInt64' },\n { name: 'source', type: 'String' },\n { name: 'ingested_at', type: 'DateTime64(3)', default: 'fn:now64(3)' },\n ],\n primaryKey: ['id'],\n orderBy: ['id'],\n partitionBy: 'toYYYYMM(ingested_at)',\n})\n\nexport default schema(events)\n`);
8
+ console.log(`Initialized chkit project files:`);
9
+ console.log(`- ${configPath}`);
10
+ console.log(`- ${schemaPath}`);
11
+ }
12
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/bin/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElE,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAA;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAA;IAErE,MAAM,cAAc,CAClB,UAAU,EACV,8vBAA8vB,CAC/vB,CAAA;IAED,MAAM,cAAc,CAClB,UAAU,EACV,obAAob,CACrb,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAA;AAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function cmdMigrate(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/migrate.ts"],"names":[],"mappings":"AAsFA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkO9D"}