@hypequery/clickhouse 1.6.0 → 1.6.2

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 (128) hide show
  1. package/README.md +19 -14
  2. package/dist/cli/generate-types.js +3 -88
  3. package/dist/cli/type-parsing.js +124 -0
  4. package/dist/core/adapters/clickhouse-adapter.d.ts +14 -0
  5. package/dist/core/adapters/clickhouse-adapter.d.ts.map +1 -0
  6. package/dist/core/adapters/clickhouse-adapter.js +58 -0
  7. package/dist/core/adapters/database-adapter.d.ts +13 -0
  8. package/dist/core/adapters/database-adapter.d.ts.map +1 -0
  9. package/dist/core/adapters/database-adapter.js +1 -0
  10. package/dist/core/cache/cache-manager.d.ts.map +1 -1
  11. package/dist/core/cache/cache-manager.js +6 -5
  12. package/dist/core/dialects/clickhouse-dialect.d.ts +10 -0
  13. package/dist/core/dialects/clickhouse-dialect.d.ts.map +1 -0
  14. package/dist/core/dialects/clickhouse-dialect.js +47 -0
  15. package/dist/core/dialects/sql-dialect.d.ts +11 -0
  16. package/dist/core/dialects/sql-dialect.d.ts.map +1 -0
  17. package/dist/core/dialects/sql-dialect.js +1 -0
  18. package/dist/core/features/aggregations.d.ts +5 -5
  19. package/dist/core/features/analytics.d.ts +804 -5
  20. package/dist/core/features/analytics.d.ts.map +1 -1
  21. package/dist/core/features/analytics.js +6 -9
  22. package/dist/core/features/executor.d.ts.map +1 -1
  23. package/dist/core/features/executor.js +26 -53
  24. package/dist/core/features/filtering.d.ts +5 -5
  25. package/dist/core/features/joins.d.ts +1 -1
  26. package/dist/core/features/query-modifiers.d.ts +6 -6
  27. package/dist/core/query-builder.d.ts +17 -6
  28. package/dist/core/query-builder.d.ts.map +1 -1
  29. package/dist/core/query-builder.js +25 -32
  30. package/dist/core/tests/integration/setup.d.ts +3 -1
  31. package/dist/core/tests/integration/setup.d.ts.map +1 -1
  32. package/dist/core/tests/test-utils.d.ts.map +1 -1
  33. package/dist/core/tests/test-utils.js +12 -2
  34. package/dist/core/types/select-types.d.ts +1 -1
  35. package/dist/core/types/select-types.d.ts.map +1 -1
  36. package/dist/core/utils/streaming-helpers.d.ts.map +1 -1
  37. package/dist/core/utils/streaming-helpers.js +8 -0
  38. package/dist/core/utils.d.ts.map +1 -1
  39. package/dist/core/utils.js +3 -0
  40. package/dist/dataset/definition.d.ts +135 -0
  41. package/dist/dataset/definition.d.ts.map +1 -0
  42. package/dist/dataset/definition.js +265 -0
  43. package/dist/dataset/helpers.d.ts +136 -0
  44. package/dist/dataset/helpers.d.ts.map +1 -0
  45. package/dist/dataset/helpers.js +189 -0
  46. package/dist/dataset/index.d.ts +51 -0
  47. package/dist/dataset/index.d.ts.map +1 -0
  48. package/dist/dataset/index.js +59 -0
  49. package/dist/dataset/introspection.d.ts +133 -0
  50. package/dist/dataset/introspection.d.ts.map +1 -0
  51. package/dist/dataset/introspection.js +239 -0
  52. package/dist/dataset/sql-tag.d.ts +51 -0
  53. package/dist/dataset/sql-tag.d.ts.map +1 -0
  54. package/dist/dataset/sql-tag.js +86 -0
  55. package/dist/dataset/types.d.ts +300 -0
  56. package/dist/dataset/types.d.ts.map +1 -0
  57. package/dist/dataset/types.js +11 -0
  58. package/dist/index.d.ts +23 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +26 -15
  61. package/dist/migrations/config/index.d.ts +3 -0
  62. package/dist/migrations/config/index.d.ts.map +1 -0
  63. package/dist/migrations/config/index.js +1 -0
  64. package/dist/migrations/config/types.d.ts +45 -0
  65. package/dist/migrations/config/types.d.ts.map +1 -0
  66. package/dist/migrations/config/types.js +28 -0
  67. package/dist/migrations/diff/diff.d.ts +11 -0
  68. package/dist/migrations/diff/diff.d.ts.map +1 -0
  69. package/dist/migrations/diff/diff.js +240 -0
  70. package/dist/migrations/diff/index.d.ts +3 -0
  71. package/dist/migrations/diff/index.d.ts.map +1 -0
  72. package/dist/migrations/diff/index.js +1 -0
  73. package/dist/migrations/diff/types.d.ts +74 -0
  74. package/dist/migrations/diff/types.d.ts.map +1 -0
  75. package/dist/migrations/diff/types.js +1 -0
  76. package/dist/migrations/plan/index.d.ts +3 -0
  77. package/dist/migrations/plan/index.d.ts.map +1 -0
  78. package/dist/migrations/plan/index.js +1 -0
  79. package/dist/migrations/plan/plan.d.ts +12 -0
  80. package/dist/migrations/plan/plan.d.ts.map +1 -0
  81. package/dist/migrations/plan/plan.js +416 -0
  82. package/dist/migrations/plan/types.d.ts +93 -0
  83. package/dist/migrations/plan/types.d.ts.map +1 -0
  84. package/dist/migrations/plan/types.js +1 -0
  85. package/dist/migrations/schema/column.d.ts +71 -0
  86. package/dist/migrations/schema/column.d.ts.map +1 -0
  87. package/dist/migrations/schema/column.js +123 -0
  88. package/dist/migrations/schema/define.d.ts +24 -0
  89. package/dist/migrations/schema/define.d.ts.map +1 -0
  90. package/dist/migrations/schema/define.js +47 -0
  91. package/dist/migrations/schema/index.d.ts +4 -0
  92. package/dist/migrations/schema/index.d.ts.map +1 -0
  93. package/dist/migrations/schema/index.js +2 -0
  94. package/dist/migrations/schema/types.d.ts +74 -0
  95. package/dist/migrations/schema/types.d.ts.map +1 -0
  96. package/dist/migrations/schema/types.js +1 -0
  97. package/dist/migrations/snapshot/index.d.ts +3 -0
  98. package/dist/migrations/snapshot/index.d.ts.map +1 -0
  99. package/dist/migrations/snapshot/index.js +1 -0
  100. package/dist/migrations/snapshot/serialize.d.ts +21 -0
  101. package/dist/migrations/snapshot/serialize.d.ts.map +1 -0
  102. package/dist/migrations/snapshot/serialize.js +127 -0
  103. package/dist/migrations/snapshot/types.d.ts +47 -0
  104. package/dist/migrations/snapshot/types.d.ts.map +1 -0
  105. package/dist/migrations/snapshot/types.js +1 -0
  106. package/dist/migrations/sql/index.d.ts +4 -0
  107. package/dist/migrations/sql/index.d.ts.map +1 -0
  108. package/dist/migrations/sql/index.js +2 -0
  109. package/dist/migrations/sql/render.d.ts +10 -0
  110. package/dist/migrations/sql/render.d.ts.map +1 -0
  111. package/dist/migrations/sql/render.js +347 -0
  112. package/dist/migrations/sql/types.d.ts +53 -0
  113. package/dist/migrations/sql/types.d.ts.map +1 -0
  114. package/dist/migrations/sql/types.js +1 -0
  115. package/dist/migrations/sql/write.d.ts +10 -0
  116. package/dist/migrations/sql/write.d.ts.map +1 -0
  117. package/dist/migrations/sql/write.js +35 -0
  118. package/dist/types/base.d.ts +2 -1
  119. package/dist/types/base.d.ts.map +1 -1
  120. package/dist/types/clickhouse-types.d.ts +7 -2
  121. package/dist/types/clickhouse-types.d.ts.map +1 -1
  122. package/dist/types/index.d.ts +1 -0
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/index.js +1 -0
  125. package/dist/types/type-helpers.d.ts +7 -0
  126. package/dist/types/type-helpers.d.ts.map +1 -0
  127. package/dist/types/type-helpers.js +1 -0
  128. package/package.json +3 -3
@@ -0,0 +1,11 @@
1
+ import type { Snapshot } from '../snapshot/types.js';
2
+ import type { SnapshotDiffResult } from './types.js';
3
+ /**
4
+ * Computes migration operations needed to move from one snapshot to another.
5
+ *
6
+ * The diff layer is deliberately SQL-free. It emits structured operations,
7
+ * warnings for potentially expensive changes, and unsupported-change diagnostics
8
+ * that the SQL renderer refuses to render automatically.
9
+ */
10
+ export declare function diffSnapshots(previousSnapshot: Snapshot, nextSnapshot: Snapshot): SnapshotDiffResult;
11
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/migrations/diff/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAIT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAQV,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,GAAG,kBAAkB,CAqCpG"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Computes migration operations needed to move from one snapshot to another.
3
+ *
4
+ * The diff layer is deliberately SQL-free. It emits structured operations,
5
+ * warnings for potentially expensive changes, and unsupported-change diagnostics
6
+ * that the SQL renderer refuses to render automatically.
7
+ */
8
+ export function diffSnapshots(previousSnapshot, nextSnapshot) {
9
+ const warnings = [];
10
+ const unsupportedChanges = [];
11
+ const previousTables = toNameMap(previousSnapshot.tables);
12
+ const nextTables = toNameMap(nextSnapshot.tables);
13
+ const previousViews = toNameMap(previousSnapshot.materializedViews);
14
+ const nextViews = toNameMap(nextSnapshot.materializedViews);
15
+ const dropMaterializedViewOperations = diffDroppedMaterializedViews(previousViews, nextViews);
16
+ const dropTableOperations = diffDroppedTables(previousTables, nextTables);
17
+ const tableOperations = diffTables(previousSnapshot, nextSnapshot, previousTables, nextTables, warnings, unsupportedChanges);
18
+ const createTableOperations = diffCreatedTables(previousTables, nextTables);
19
+ const recreateMaterializedViewOperations = diffChangedMaterializedViews(previousViews, nextViews);
20
+ const createMaterializedViewOperations = diffCreatedMaterializedViews(previousViews, nextViews);
21
+ return {
22
+ previousSnapshot,
23
+ nextSnapshot,
24
+ operations: [
25
+ ...dropMaterializedViewOperations,
26
+ ...dropTableOperations,
27
+ ...tableOperations,
28
+ ...createTableOperations,
29
+ ...recreateMaterializedViewOperations,
30
+ ...createMaterializedViewOperations,
31
+ ],
32
+ warnings,
33
+ unsupportedChanges,
34
+ };
35
+ }
36
+ function diffDroppedMaterializedViews(previousViews, nextViews) {
37
+ return [...previousViews.values()]
38
+ .filter(view => !nextViews.has(view.name))
39
+ .map(view => ({
40
+ kind: 'DropMaterializedView',
41
+ viewName: view.name,
42
+ }));
43
+ }
44
+ function diffDroppedTables(previousTables, nextTables) {
45
+ return [...previousTables.values()]
46
+ .filter(table => !nextTables.has(table.name))
47
+ .map(table => ({
48
+ kind: 'DropTable',
49
+ tableName: table.name,
50
+ }));
51
+ }
52
+ function diffCreatedTables(previousTables, nextTables) {
53
+ return [...nextTables.values()]
54
+ .filter(table => !previousTables.has(table.name))
55
+ .map(table => ({
56
+ kind: 'CreateTable',
57
+ table,
58
+ }));
59
+ }
60
+ function diffCreatedMaterializedViews(previousViews, nextViews) {
61
+ return [...nextViews.values()]
62
+ .filter(view => !previousViews.has(view.name))
63
+ .map(view => ({
64
+ kind: 'CreateMaterializedView',
65
+ view,
66
+ }));
67
+ }
68
+ function diffChangedMaterializedViews(previousViews, nextViews) {
69
+ const operations = [];
70
+ for (const previousView of previousViews.values()) {
71
+ const nextView = nextViews.get(previousView.name);
72
+ if (!nextView) {
73
+ continue;
74
+ }
75
+ if (!isSameMaterializedView(previousView, nextView)) {
76
+ operations.push({
77
+ kind: 'RecreateMaterializedView',
78
+ previousView,
79
+ nextView,
80
+ });
81
+ }
82
+ }
83
+ return operations;
84
+ }
85
+ function diffTables(previousSnapshot, nextSnapshot, previousTables, nextTables, warnings, unsupportedChanges) {
86
+ const operations = [];
87
+ for (const previousTable of previousTables.values()) {
88
+ const nextTable = nextTables.get(previousTable.name);
89
+ if (!nextTable) {
90
+ continue;
91
+ }
92
+ if (!isSameTableEngine(previousTable.engine, nextTable.engine)) {
93
+ unsupportedChanges.push({
94
+ kind: 'TableEngineChanged',
95
+ tableName: previousTable.name,
96
+ message: `Table engine changed for "${previousTable.name}". Engine evolution is not auto-generated yet.`,
97
+ });
98
+ }
99
+ if (!isSameSettings(previousTable.settings, nextTable.settings)) {
100
+ unsupportedChanges.push({
101
+ kind: 'TableSettingsChanged',
102
+ tableName: previousTable.name,
103
+ message: `Table settings changed for "${previousTable.name}". Settings diffs are not auto-generated yet.`,
104
+ });
105
+ }
106
+ const tableMutations = diffColumns(previousTable, nextTable, warnings, unsupportedChanges);
107
+ if (tableMutations.length === 0) {
108
+ continue;
109
+ }
110
+ const dependentViewNames = getDependentViewNames(previousSnapshot, nextSnapshot, previousTable.name);
111
+ if (dependentViewNames.length > 0) {
112
+ operations.push({
113
+ kind: 'AlterTableWithDependentViews',
114
+ tableName: previousTable.name,
115
+ dependentViewNames,
116
+ operations: tableMutations,
117
+ });
118
+ continue;
119
+ }
120
+ operations.push(...tableMutations);
121
+ }
122
+ return operations;
123
+ }
124
+ function diffColumns(previousTable, nextTable, warnings, unsupportedChanges) {
125
+ const operations = [];
126
+ const previousColumns = toNameMap(previousTable.columns);
127
+ const nextColumns = toNameMap(nextTable.columns);
128
+ const droppedColumns = [...previousColumns.values()].filter(column => !nextColumns.has(column.name));
129
+ const addedColumns = [...nextColumns.values()].filter(column => !previousColumns.has(column.name));
130
+ detectPossibleRenames(previousTable.name, droppedColumns, addedColumns, unsupportedChanges);
131
+ for (const column of droppedColumns) {
132
+ operations.push({
133
+ kind: 'DropColumn',
134
+ tableName: previousTable.name,
135
+ columnName: column.name,
136
+ });
137
+ }
138
+ for (const column of addedColumns) {
139
+ operations.push({
140
+ kind: 'AddColumn',
141
+ tableName: previousTable.name,
142
+ column,
143
+ });
144
+ }
145
+ for (const previousColumn of previousColumns.values()) {
146
+ const nextColumn = nextColumns.get(previousColumn.name);
147
+ if (!nextColumn) {
148
+ continue;
149
+ }
150
+ if (previousColumn.type !== nextColumn.type) {
151
+ operations.push({
152
+ kind: 'ModifyColumnType',
153
+ tableName: previousTable.name,
154
+ columnName: previousColumn.name,
155
+ previousType: previousColumn.type,
156
+ nextType: nextColumn.type,
157
+ });
158
+ warnings.push({
159
+ kind: 'ModifyColumnTypeRequiresConfirmation',
160
+ tableName: previousTable.name,
161
+ columnName: previousColumn.name,
162
+ message: `Column type changed for "${previousTable.name}.${previousColumn.name}" ` +
163
+ `from "${previousColumn.type}" to "${nextColumn.type}".`,
164
+ });
165
+ }
166
+ if (!isSameColumnDefault(previousColumn.default, nextColumn.default)) {
167
+ operations.push({
168
+ kind: 'ModifyColumnDefault',
169
+ tableName: previousTable.name,
170
+ columnName: previousColumn.name,
171
+ previousDefault: previousColumn.default,
172
+ nextDefault: nextColumn.default,
173
+ });
174
+ }
175
+ }
176
+ return operations;
177
+ }
178
+ function isSameColumnDefault(left, right) {
179
+ if (left === right) {
180
+ return true;
181
+ }
182
+ if (left === undefined || right === undefined) {
183
+ return false;
184
+ }
185
+ return left.kind === right.kind && left.value === right.value;
186
+ }
187
+ function detectPossibleRenames(tableName, droppedColumns, addedColumns, unsupportedChanges) {
188
+ for (const droppedColumn of droppedColumns) {
189
+ const renameCandidate = addedColumns.find(addedColumn => addedColumn.type === droppedColumn.type &&
190
+ isSameColumnDefault(addedColumn.default, droppedColumn.default));
191
+ if (!renameCandidate) {
192
+ continue;
193
+ }
194
+ unsupportedChanges.push({
195
+ kind: 'PossibleColumnRename',
196
+ tableName,
197
+ columnName: droppedColumn.name,
198
+ message: `Possible column rename detected in "${tableName}": ` +
199
+ `"${droppedColumn.name}" -> "${renameCandidate.name}". ` +
200
+ `Rename inference is not supported in generated migrations.`,
201
+ });
202
+ }
203
+ }
204
+ function getDependentViewNames(previousSnapshot, nextSnapshot, tableName) {
205
+ return [...new Set([
206
+ ...previousSnapshot.dependencies
207
+ .filter(edge => edge.kind === 'table_to_materialized_view' && edge.from === tableName)
208
+ .map(edge => edge.to),
209
+ ...nextSnapshot.dependencies
210
+ .filter(edge => edge.kind === 'table_to_materialized_view' && edge.from === tableName)
211
+ .map(edge => edge.to),
212
+ ])].sort((left, right) => left.localeCompare(right));
213
+ }
214
+ function isSameTableEngine(left, right) {
215
+ return left.type === right.type &&
216
+ isSameStringArray(left.orderBy, right.orderBy) &&
217
+ (left.partitionBy ?? null) === (right.partitionBy ?? null) &&
218
+ isSameStringArray(left.primaryKey, right.primaryKey) &&
219
+ (left.sampleBy ?? null) === (right.sampleBy ?? null);
220
+ }
221
+ function isSameSettings(left, right) {
222
+ const leftEntries = Object.entries(left);
223
+ const rightEntries = Object.entries(right);
224
+ if (leftEntries.length !== rightEntries.length) {
225
+ return false;
226
+ }
227
+ return leftEntries.every(([key, value]) => right[key] === value);
228
+ }
229
+ function isSameMaterializedView(left, right) {
230
+ return left.name === right.name &&
231
+ left.from === right.from &&
232
+ (left.to ?? null) === (right.to ?? null) &&
233
+ left.select === right.select;
234
+ }
235
+ function isSameStringArray(left, right) {
236
+ return left.length === right.length && left.every((value, index) => value === right[index]);
237
+ }
238
+ function toNameMap(entries) {
239
+ return new Map(entries.map(entry => [entry.name, entry]));
240
+ }
@@ -0,0 +1,3 @@
1
+ export { diffSnapshots } from './diff.js';
2
+ export type { AddColumnOperation, AlterTableWithDependentViewsOperation, CreateMaterializedViewOperation, CreateTableOperation, DiffWarning, DropColumnOperation, DropMaterializedViewOperation, DropTableOperation, MigrationOperation, ModifyColumnDefaultOperation, ModifyColumnTypeOperation, RecreateMaterializedViewOperation, SnapshotDiffResult, TableMutationOperation, UnsupportedChange, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACV,kBAAkB,EAClB,qCAAqC,EACrC,+BAA+B,EAC/B,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { diffSnapshots } from './diff.js';
@@ -0,0 +1,74 @@
1
+ import type { Snapshot, SnapshotColumn, SnapshotColumnDefault, SnapshotMaterializedView, SnapshotTable } from '../snapshot/types.js';
2
+ export interface CreateTableOperation {
3
+ kind: 'CreateTable';
4
+ table: SnapshotTable;
5
+ }
6
+ export interface DropTableOperation {
7
+ kind: 'DropTable';
8
+ tableName: string;
9
+ }
10
+ export interface AddColumnOperation {
11
+ kind: 'AddColumn';
12
+ tableName: string;
13
+ column: SnapshotColumn;
14
+ }
15
+ export interface DropColumnOperation {
16
+ kind: 'DropColumn';
17
+ tableName: string;
18
+ columnName: string;
19
+ }
20
+ export interface ModifyColumnDefaultOperation {
21
+ kind: 'ModifyColumnDefault';
22
+ tableName: string;
23
+ columnName: string;
24
+ previousDefault?: SnapshotColumnDefault;
25
+ nextDefault?: SnapshotColumnDefault;
26
+ }
27
+ export interface ModifyColumnTypeOperation {
28
+ kind: 'ModifyColumnType';
29
+ tableName: string;
30
+ columnName: string;
31
+ previousType: string;
32
+ nextType: string;
33
+ }
34
+ export interface CreateMaterializedViewOperation {
35
+ kind: 'CreateMaterializedView';
36
+ view: SnapshotMaterializedView;
37
+ }
38
+ export interface DropMaterializedViewOperation {
39
+ kind: 'DropMaterializedView';
40
+ viewName: string;
41
+ }
42
+ export interface RecreateMaterializedViewOperation {
43
+ kind: 'RecreateMaterializedView';
44
+ previousView: SnapshotMaterializedView;
45
+ nextView: SnapshotMaterializedView;
46
+ }
47
+ export type TableMutationOperation = AddColumnOperation | DropColumnOperation | ModifyColumnDefaultOperation | ModifyColumnTypeOperation;
48
+ export interface AlterTableWithDependentViewsOperation {
49
+ kind: 'AlterTableWithDependentViews';
50
+ tableName: string;
51
+ dependentViewNames: string[];
52
+ operations: TableMutationOperation[];
53
+ }
54
+ export type MigrationOperation = AlterTableWithDependentViewsOperation | CreateMaterializedViewOperation | CreateTableOperation | DropMaterializedViewOperation | DropTableOperation | RecreateMaterializedViewOperation | TableMutationOperation;
55
+ export interface DiffWarning {
56
+ kind: 'ModifyColumnTypeRequiresConfirmation';
57
+ tableName: string;
58
+ columnName: string;
59
+ message: string;
60
+ }
61
+ export interface UnsupportedChange {
62
+ kind: 'PossibleColumnRename' | 'TableEngineChanged' | 'TableSettingsChanged';
63
+ message: string;
64
+ tableName: string;
65
+ columnName?: string;
66
+ }
67
+ export interface SnapshotDiffResult {
68
+ previousSnapshot: Snapshot;
69
+ nextSnapshot: Snapshot;
70
+ operations: MigrationOperation[];
71
+ warnings: DiffWarning[];
72
+ unsupportedChanges: UnsupportedChange[];
73
+ }
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/diff/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,0BAA0B,CAAC;IACjC,YAAY,EAAE,wBAAwB,CAAC;IACvC,QAAQ,EAAE,wBAAwB,CAAC;CACpC;AAED,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,4BAA4B,GAC5B,yBAAyB,CAAC;AAE9B,MAAM,WAAW,qCAAqC;IACpD,IAAI,EAAE,8BAA8B,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,kBAAkB,GAC1B,qCAAqC,GACrC,+BAA+B,GAC/B,oBAAoB,GACpB,6BAA6B,GAC7B,kBAAkB,GAClB,iCAAiC,GACjC,sBAAsB,CAAC;AAE3B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,sCAAsC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EACA,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,YAAY,EAAE,QAAQ,CAAC;IACvB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export { createMigrationPlan, isMigrationPlan } from './plan.js';
2
+ export type { ClickHouseMigrationSyncSetting, ClickHouseMigrationPlanContext, ClickHouseTableCostStats, CreateMigrationPlanOptions, MigrationPlanAnalyzer, MigrationPlanAnalyzerContext, MigrationPlanAnalyzerResult, MigrationOperationClassification, MigrationOperationCostEstimate, MigrationPlan, MigrationPlanBlocker, MigrationPlanConfirmation, MigrationPlanDiagnostic, MigrationPlanDiagnosticLevel, MigrationPlanInput, PlannedMigrationOperation, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/plan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjE,YAAY,EACV,8BAA8B,EAC9B,8BAA8B,EAC9B,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,EAChC,8BAA8B,EAC9B,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { createMigrationPlan, isMigrationPlan } from './plan.js';
@@ -0,0 +1,12 @@
1
+ import type { SnapshotDiffResult } from '../diff/types.js';
2
+ import type { CreateMigrationPlanOptions, MigrationPlan, MigrationPlanInput } from './types.js';
3
+ /**
4
+ * Converts a raw snapshot diff into an explicit migration plan.
5
+ *
6
+ * The initial planner is intentionally static: it classifies operations and
7
+ * carries diagnostics/blockers without querying a live ClickHouse instance.
8
+ * Later phases can enrich this plan with system-table cost estimates.
9
+ */
10
+ export declare function createMigrationPlan(diff: SnapshotDiffResult, options?: CreateMigrationPlanOptions): MigrationPlan;
11
+ export declare function isMigrationPlan(input: MigrationPlanInput): input is MigrationPlan;
12
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/migrations/plan/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAIV,0BAA0B,EAG1B,aAAa,EAMb,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,0BAA+B,GACvC,aAAa,CAqFf;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,aAAa,CAMjF"}