@chkit/core 0.1.2-beta.7 → 0.2.0-beta.11

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 (93) hide show
  1. package/README.md +26 -6
  2. package/dist/canonical.d.ts.map +1 -1
  3. package/dist/canonical.js +26 -7
  4. package/dist/canonical.js.map +1 -1
  5. package/dist/column-default.d.ts +62 -0
  6. package/dist/column-default.d.ts.map +1 -0
  7. package/dist/column-default.js +212 -0
  8. package/dist/column-default.js.map +1 -0
  9. package/dist/conflict-markers.d.ts +3 -0
  10. package/dist/conflict-markers.d.ts.map +1 -0
  11. package/dist/conflict-markers.js +9 -0
  12. package/dist/conflict-markers.js.map +1 -0
  13. package/dist/identifier.d.ts +22 -0
  14. package/dist/identifier.d.ts.map +1 -0
  15. package/dist/identifier.js +69 -0
  16. package/dist/identifier.js.map +1 -0
  17. package/dist/index.d.ts +10 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +10 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/insert-columns.d.ts +13 -0
  22. package/dist/insert-columns.d.ts.map +1 -0
  23. package/dist/insert-columns.js +36 -0
  24. package/dist/insert-columns.js.map +1 -0
  25. package/dist/kafka.d.ts +9 -0
  26. package/dist/kafka.d.ts.map +1 -0
  27. package/dist/kafka.js +64 -0
  28. package/dist/kafka.js.map +1 -0
  29. package/dist/key-clause.d.ts +6 -1
  30. package/dist/key-clause.d.ts.map +1 -1
  31. package/dist/key-clause.js +12 -13
  32. package/dist/key-clause.js.map +1 -1
  33. package/dist/model-types.d.ts +84 -6
  34. package/dist/model-types.d.ts.map +1 -1
  35. package/dist/model.d.ts +3 -2
  36. package/dist/model.d.ts.map +1 -1
  37. package/dist/model.js +9 -2
  38. package/dist/model.js.map +1 -1
  39. package/dist/object-dependencies.d.ts +18 -0
  40. package/dist/object-dependencies.d.ts.map +1 -0
  41. package/dist/object-dependencies.js +351 -0
  42. package/dist/object-dependencies.js.map +1 -0
  43. package/dist/on-cluster.d.ts.map +1 -1
  44. package/dist/on-cluster.js +7 -3
  45. package/dist/on-cluster.js.map +1 -1
  46. package/dist/planner.d.ts.map +1 -1
  47. package/dist/planner.js +93 -82
  48. package/dist/planner.js.map +1 -1
  49. package/dist/projection.d.ts.map +1 -1
  50. package/dist/projection.js +5 -40
  51. package/dist/projection.js.map +1 -1
  52. package/dist/schema-loader.d.ts +2 -0
  53. package/dist/schema-loader.d.ts.map +1 -1
  54. package/dist/schema-loader.js +72 -5
  55. package/dist/schema-loader.js.map +1 -1
  56. package/dist/sql-lexer.d.ts +29 -0
  57. package/dist/sql-lexer.d.ts.map +1 -0
  58. package/dist/sql-lexer.js +220 -0
  59. package/dist/sql-lexer.js.map +1 -0
  60. package/dist/sql-normalizer.d.ts +48 -0
  61. package/dist/sql-normalizer.d.ts.map +1 -1
  62. package/dist/sql-normalizer.js +118 -1
  63. package/dist/sql-normalizer.js.map +1 -1
  64. package/dist/sql-scan.d.ts +20 -0
  65. package/dist/sql-scan.d.ts.map +1 -0
  66. package/dist/sql-scan.js +82 -0
  67. package/dist/sql-scan.js.map +1 -0
  68. package/dist/sql-splitter.d.ts.map +1 -1
  69. package/dist/sql-splitter.js +52 -5
  70. package/dist/sql-splitter.js.map +1 -1
  71. package/dist/sql.d.ts +7 -0
  72. package/dist/sql.d.ts.map +1 -1
  73. package/dist/sql.js +51 -39
  74. package/dist/sql.js.map +1 -1
  75. package/dist/text-index-sql.d.ts +6 -0
  76. package/dist/text-index-sql.d.ts.map +1 -0
  77. package/dist/text-index-sql.js +200 -0
  78. package/dist/text-index-sql.js.map +1 -0
  79. package/dist/text-index.d.ts +10 -0
  80. package/dist/text-index.d.ts.map +1 -0
  81. package/dist/text-index.js +121 -0
  82. package/dist/text-index.js.map +1 -0
  83. package/dist/ts-import.d.ts.map +1 -1
  84. package/dist/ts-import.js +23 -3
  85. package/dist/ts-import.js.map +1 -1
  86. package/dist/validate.d.ts.map +1 -1
  87. package/dist/validate.js +303 -3
  88. package/dist/validate.js.map +1 -1
  89. package/package.json +1 -1
  90. package/dist/utils.d.ts +0 -2
  91. package/dist/utils.d.ts.map +0 -1
  92. package/dist/utils.js +0 -2
  93. package/dist/utils.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,13 +1,20 @@
1
1
  export * from './flags.js';
2
2
  export * from './model.js';
3
+ export { isKafkaEngine, parseKafkaSettings, kafkaSettingFingerprint } from './kafka.js';
4
+ export { findQuoteEnd, findTopLevelSQLPattern, isQuoteChar, stripWrappingParens, } from './sql-scan.js';
3
5
  export { SYNTHESIZED_CONFIG_PATH, isSynthesizedConfigPath } from './config-path.js';
4
- export { canonicalizeDefinition, canonicalizeDefinitions, collectDefinitionsFromModule, } from './canonical.js';
6
+ export { hasConflictMarkers } from './conflict-markers.js';
7
+ export { canonicalizeDefinition, canonicalizeDefinitions, collectDefinitionsFromModule, definitionKey, } from './canonical.js';
5
8
  export { planDiff } from './planner.js';
6
9
  export { createSnapshot } from './snapshot.js';
10
+ export { TEXT_INDEX_GRANULARITY, canonicalizeTextIndex, normalizeTextIndexSQL, parseTextIndexParams, renderTextIndexType, textIndexFingerprint, } from './text-index.js';
7
11
  export { splitTopLevelComma } from './key-clause.js';
12
+ export { insertColumnList } from './insert-columns.js';
13
+ export { quoteIdentifier, renderIdentifier, renderQualifiedName, unquoteIdentifiers, } from './identifier.js';
14
+ export { parseColumnDefault, renderDefault, type ParsedColumnDefault } from './column-default.js';
8
15
  export { isIndexProjection, normalizeProjectionIndex } from './projection.js';
9
- export { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
10
- export { renderDictionarySQL, toCreateSQL } from './sql.js';
16
+ export { isSyntheticEphemeralDefault, normalizeEngine, normalizeSQLFragment, sqlExpressionFingerprint, } from './sql-normalizer.js';
17
+ export { renderDictionarySQL, renderKeyClauseColumns, toCreateSQL } from './sql.js';
11
18
  export { applyOnClusterToPlan, onClusterClause } from './on-cluster.js';
12
19
  export { canonicalizeCodec, codec, codecsEqual, isGeneralCodec, isPreprocessorCodec, isRawCodec, parseCodec, renderCodec, } from './codec.js';
13
20
  export { assertValidDefinitions, validateDefinitions } from './validate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,mBAAmB,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,13 +1,20 @@
1
1
  export * from './flags.js';
2
2
  export * from './model.js';
3
+ export { isKafkaEngine, parseKafkaSettings, kafkaSettingFingerprint } from './kafka.js';
4
+ export { findQuoteEnd, findTopLevelSQLPattern, isQuoteChar, stripWrappingParens, } from './sql-scan.js';
3
5
  export { SYNTHESIZED_CONFIG_PATH, isSynthesizedConfigPath } from './config-path.js';
4
- export { canonicalizeDefinition, canonicalizeDefinitions, collectDefinitionsFromModule, } from './canonical.js';
6
+ export { hasConflictMarkers } from './conflict-markers.js';
7
+ export { canonicalizeDefinition, canonicalizeDefinitions, collectDefinitionsFromModule, definitionKey, } from './canonical.js';
5
8
  export { planDiff } from './planner.js';
6
9
  export { createSnapshot } from './snapshot.js';
10
+ export { TEXT_INDEX_GRANULARITY, canonicalizeTextIndex, normalizeTextIndexSQL, parseTextIndexParams, renderTextIndexType, textIndexFingerprint, } from './text-index.js';
7
11
  export { splitTopLevelComma } from './key-clause.js';
12
+ export { insertColumnList } from './insert-columns.js';
13
+ export { quoteIdentifier, renderIdentifier, renderQualifiedName, unquoteIdentifiers, } from './identifier.js';
14
+ export { parseColumnDefault, renderDefault } from './column-default.js';
8
15
  export { isIndexProjection, normalizeProjectionIndex } from './projection.js';
9
- export { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
10
- export { renderDictionarySQL, toCreateSQL } from './sql.js';
16
+ export { isSyntheticEphemeralDefault, normalizeEngine, normalizeSQLFragment, sqlExpressionFingerprint, } from './sql-normalizer.js';
17
+ export { renderDictionarySQL, renderKeyClauseColumns, toCreateSQL } from './sql.js';
11
18
  export { applyOnClusterToPlan, onClusterClause } from './on-cluster.js';
12
19
  export { canonicalizeCodec, codec, codecsEqual, isGeneralCodec, isPreprocessorCodec, isRawCodec, parseCodec, renderCodec, } from './codec.js';
13
20
  export { assertValidDefinitions, validateDefinitions } from './validate.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,mBAAmB,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAyB,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { TableDefinition } from './model-types.js';
2
+ /**
3
+ * The INSERT column list for `INSERT ... FORMAT JSONEachRow`, or `undefined`
4
+ * for a table without EPHEMERAL columns. Without a list ClickHouse treats
5
+ * EPHEMERAL keys as unknown fields and drops them, so the list names every
6
+ * insertable column. Omitted keys still receive their defaults.
7
+ *
8
+ * A `Nested(...)` column is listed by its `name.field` subcolumns: with the
9
+ * default `flatten_nested = 1` those are the table's real columns, and the
10
+ * Nested name itself is rejected as an unknown column.
11
+ */
12
+ export declare function insertColumnList(table: TableDefinition): string[] | undefined;
13
+ //# sourceMappingURL=insert-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-columns.d.ts","sourceRoot":"","sources":["../src/insert-columns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,GAAG,SAAS,CAS7E"}
@@ -0,0 +1,36 @@
1
+ import { renderIdentifier, unescapeQuoted } from './identifier.js';
2
+ import { findQuoteEnd } from './sql-scan.js';
3
+ import { splitTopLevelComma } from './key-clause.js';
4
+ /**
5
+ * The INSERT column list for `INSERT ... FORMAT JSONEachRow`, or `undefined`
6
+ * for a table without EPHEMERAL columns. Without a list ClickHouse treats
7
+ * EPHEMERAL keys as unknown fields and drops them, so the list names every
8
+ * insertable column. Omitted keys still receive their defaults.
9
+ *
10
+ * A `Nested(...)` column is listed by its `name.field` subcolumns: with the
11
+ * default `flatten_nested = 1` those are the table's real columns, and the
12
+ * Nested name itself is rejected as an unknown column.
13
+ */
14
+ export function insertColumnList(table) {
15
+ if (!table.columns.some((column) => column.defaultKind === 'EPHEMERAL'))
16
+ return undefined;
17
+ return table.columns
18
+ .filter((column) => column.defaultKind !== 'MATERIALIZED' && column.defaultKind !== 'ALIAS')
19
+ .flatMap((column) => {
20
+ const fields = nestedFieldNames(column.type);
21
+ return fields ? fields.map((field) => `${column.name}.${field}`) : [column.name];
22
+ })
23
+ .map(renderIdentifier);
24
+ }
25
+ function nestedFieldNames(type) {
26
+ const fields = /^Nested\s*\((.*)\)$/s.exec(type.trim())?.[1];
27
+ return fields === undefined ? undefined : splitTopLevelComma(fields).map(nestedFieldName);
28
+ }
29
+ /** The leading name of a `name Type` field, unquoting a backticked or double-quoted name. */
30
+ function nestedFieldName(field) {
31
+ const quote = field.charAt(0);
32
+ if (quote !== '`' && quote !== '"')
33
+ return field.split(/\s/, 1)[0] ?? field;
34
+ return unescapeQuoted(field.slice(1, findQuoteEnd(field, 0, quote)), quote);
35
+ }
36
+ //# sourceMappingURL=insert-columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert-columns.js","sourceRoot":"","sources":["../src/insert-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC;QAAE,OAAO,SAAS,CAAA;IACzF,OAAO,KAAK,CAAC,OAAO;SACjB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,cAAc,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,CAAC;SAC3F,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClF,CAAC,CAAC;SACD,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5D,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC3F,CAAC;AAED,6FAA6F;AAC7F,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAA;IAC3E,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC7E,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function isKafkaEngine(engine: string): boolean;
2
+ /** Kafka has literal settings; existing engines retain their raw SQL setting contract. */
3
+ export declare function renderKafkaSetting(value: string | number | boolean): string;
4
+ /** Decode a ClickHouse literal from SHOW CREATE, without evaluating expressions. */
5
+ export declare function parseKafkaSetting(value: string): string | number | boolean;
6
+ export declare function parseKafkaSettings(settings: Record<string, string>): Record<string, string | number | boolean>;
7
+ export declare function kafkaSettingFingerprint(value: string | number | boolean): string;
8
+ export declare function normalizeKafkaEngine(engine: string): string;
9
+ //# sourceMappingURL=kafka.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../src/kafka.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAK3E;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAkC1E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAI3C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAEhF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ3D"}
package/dist/kafka.js ADDED
@@ -0,0 +1,64 @@
1
+ import { splitTopLevelComma } from './key-clause.js';
2
+ export function isKafkaEngine(engine) {
3
+ return /^Kafka\s*(?:\(|$)/i.test(engine.trim());
4
+ }
5
+ /** Kafka has literal settings; existing engines retain their raw SQL setting contract. */
6
+ export function renderKafkaSetting(value) {
7
+ if (typeof value === 'string') {
8
+ return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "''")}'`;
9
+ }
10
+ return typeof value === 'boolean' ? (value ? '1' : '0') : String(value);
11
+ }
12
+ /** Decode a ClickHouse literal from SHOW CREATE, without evaluating expressions. */
13
+ export function parseKafkaSetting(value) {
14
+ const trimmed = value.trim();
15
+ if (trimmed.startsWith("'") && trimmed.endsWith("'")) {
16
+ const escapes = {
17
+ n: '\n',
18
+ r: '\r',
19
+ t: '\t',
20
+ b: '\b',
21
+ f: '\f',
22
+ a: '\u0007',
23
+ v: '\v',
24
+ '0': '\0',
25
+ N: '',
26
+ '\\': '\\',
27
+ "'": "'",
28
+ '"': '"',
29
+ };
30
+ const bytes = [];
31
+ const encoder = new TextEncoder();
32
+ for (const token of trimmed.slice(1, -1).match(/\\x[\da-fA-F]{2}|\\[\s\S]|''|[\s\S]/gu) ?? []) {
33
+ if (/^\\x[\da-fA-F]{2}$/.test(token))
34
+ bytes.push(Number.parseInt(token.slice(2), 16));
35
+ else {
36
+ const decoded = token === "''" ? "'" : token.startsWith('\\') ? (escapes[token[1] ?? ''] ?? token) : token;
37
+ bytes.push(...encoder.encode(decoded));
38
+ }
39
+ }
40
+ return new TextDecoder().decode(new Uint8Array(bytes));
41
+ }
42
+ if (/^(true|false)$/i.test(trimmed))
43
+ return trimmed.toLowerCase() === 'true';
44
+ if (/^-?\d+(?:\.\d+)?$/.test(trimmed) && Number.isSafeInteger(Number(trimmed)))
45
+ return Number(trimmed);
46
+ // Keep large integers lossless. String comparison handles numeric metadata.
47
+ return trimmed;
48
+ }
49
+ export function parseKafkaSettings(settings) {
50
+ return Object.fromEntries(Object.entries(settings).map(([key, value]) => [key, parseKafkaSetting(value)]));
51
+ }
52
+ export function kafkaSettingFingerprint(value) {
53
+ return typeof value === 'boolean' ? (value ? '1' : '0') : String(value);
54
+ }
55
+ export function normalizeKafkaEngine(engine) {
56
+ const args = engine.trim().match(/^Kafka\s*\(([\s\S]*)\)$/i)?.[1] ?? '';
57
+ return `Kafka(${splitTopLevelComma(args)
58
+ .map((arg) => {
59
+ const parsed = parseKafkaSetting(arg);
60
+ return arg.trim().startsWith("'") ? renderKafkaSetting(parsed) : arg.trim();
61
+ })
62
+ .join(', ')})`;
63
+ }
64
+ //# sourceMappingURL=kafka.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.js","sourceRoot":"","sources":["../src/kafka.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  export declare function splitTopLevelComma(input: string): string[];
2
- export declare function normalizeKeyColumns(values: string[] | undefined): string[];
2
+ /**
3
+ * Flattens key entries into one token per key part. An entry may hold several
4
+ * comma-separated parts (`'id, toDate(ts)'`), but one that exactly names a
5
+ * declared column is kept whole, since the name itself may contain a comma.
6
+ */
7
+ export declare function normalizeKeyColumns(values: string[] | undefined, declaredColumns?: ReadonlySet<string>): string[];
3
8
  /**
4
9
  * A key entry references a table column only when it is a bare identifier.
5
10
  * Anything else — function calls like `toDate(ts)`, arithmetic, or tuples — is
@@ -1 +1 @@
1
- {"version":3,"file":"key-clause.d.ts","sourceRoot":"","sources":["../src/key-clause.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgD1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAE1E;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"key-clause.d.ts","sourceRoot":"","sources":["../src/key-clause.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAyC1D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,eAAe,GAAE,WAAW,CAAC,MAAM,CAAa,GAC/C,MAAM,EAAE,CAIV;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -1,20 +1,14 @@
1
+ import { findQuoteEnd, isQuoteChar } from './sql-scan.js';
1
2
  export function splitTopLevelComma(input) {
2
3
  const out = [];
3
4
  let current = '';
4
5
  let depth = 0;
5
- let quote = null;
6
6
  for (let i = 0; i < input.length; i += 1) {
7
7
  const char = input[i] ?? '';
8
- const prev = i > 0 ? input[i - 1] : '';
9
- if (quote) {
10
- current += char;
11
- if (char === quote && prev !== '\\')
12
- quote = null;
13
- continue;
14
- }
15
- if (char === "'" || char === '"' || char === '`') {
16
- quote = char;
17
- current += char;
8
+ if (isQuoteChar(char)) {
9
+ const end = findQuoteEnd(input, i, char);
10
+ current += input.slice(i, end + 1);
11
+ i = end;
18
12
  continue;
19
13
  }
20
14
  if (char === '(') {
@@ -41,8 +35,13 @@ export function splitTopLevelComma(input) {
41
35
  out.push(tail);
42
36
  return out;
43
37
  }
44
- export function normalizeKeyColumns(values) {
45
- return (values ?? []).flatMap((value) => splitTopLevelComma(value.trim()));
38
+ /**
39
+ * Flattens key entries into one token per key part. An entry may hold several
40
+ * comma-separated parts (`'id, toDate(ts)'`), but one that exactly names a
41
+ * declared column is kept whole, since the name itself may contain a comma.
42
+ */
43
+ export function normalizeKeyColumns(values, declaredColumns = new Set()) {
44
+ return (values ?? []).flatMap((value) => declaredColumns.has(value.trim()) ? [value.trim()] : splitTopLevelComma(value.trim()));
46
45
  }
47
46
  const PLAIN_COLUMN_REFERENCE = /^[A-Za-z_][A-Za-z0-9_]*$/;
48
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"key-clause.js","sourceRoot":"","sources":["../src/key-clause.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAA2B,IAAI,CAAA;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAEtC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,IAAI,CAAA;YACf,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI;gBAAE,KAAK,GAAG,IAAI,CAAA;YACjD,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjD,KAAK,GAAG,IAAI,CAAA;YACZ,OAAO,IAAI,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAA;YACV,OAAO,IAAI,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9B,OAAO,IAAI,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,GAAG,EAAE,CAAA;YACZ,SAAQ;QACV,CAAC;QAED,OAAO,IAAI,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEnC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA4B;IAC9D,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,sBAAsB,GAAG,0BAA0B,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC"}
1
+ {"version":3,"file":"key-clause.js","sourceRoot":"","sources":["../src/key-clause.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEzD,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAE3B,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YACxC,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;YAClC,CAAC,GAAG,GAAG,CAAA;YACP,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAA;YACV,OAAO,IAAI,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC9B,OAAO,IAAI,IAAI,CAAA;YACf,SAAQ;QACV,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,GAAG,EAAE,CAAA;YACZ,SAAQ;QACV,CAAC;QAED,OAAO,IAAI,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEnC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA4B,EAC5B,kBAAuC,IAAI,GAAG,EAAE;IAEhD,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CACtF,CAAA;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,0BAA0B,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC"}
@@ -36,12 +36,47 @@ export interface RawColumnCodec {
36
36
  export type ColumnCodec = GeneralColumnCodec | PreprocessingColumnCodec | RawColumnCodec;
37
37
  /** Single codec or a chain (preprocessors then exactly one general codec). */
38
38
  export type ColumnCodecSpec = ColumnCodec | ColumnCodec[];
39
+ export type ColumnDefaultKind = 'DEFAULT' | 'MATERIALIZED' | 'ALIAS' | 'EPHEMERAL';
40
+ /**
41
+ * Raw ClickHouse SQL, rendered unquoted (trimmed, with SQL comments removed)
42
+ * where chkit would otherwise render a literal: a column
43
+ * `default: { expression: 'now64(3)' }` renders `DEFAULT now64(3)`.
44
+ */
45
+ export interface SQLExpression {
46
+ expression: string;
47
+ }
48
+ /**
49
+ * A column default: a literal (strings are single-quoted, numbers and booleans
50
+ * render as written) or a {@link SQLExpression} rendered as SQL.
51
+ */
52
+ export type ColumnDefaultValue = string | number | boolean | SQLExpression;
39
53
  export interface ColumnDefinition {
40
54
  name: string;
41
55
  type: PrimitiveColumnType | string;
42
56
  renamedFrom?: string;
43
57
  nullable?: boolean;
44
- default?: string | number | boolean;
58
+ /**
59
+ * Value of the column's `defaultKind` clause (`DEFAULT` unless set).
60
+ * - `'pending'` → `DEFAULT 'pending'` (a string is always a literal)
61
+ * - `0` / `false` → `DEFAULT 0` / `DEFAULT false`
62
+ * - `{ expression: 'now64(3)' }` → `DEFAULT now64(3)` (SQL; comments are
63
+ * dropped when rendered)
64
+ *
65
+ * `'fn:now64(3)'` is the legacy spelling of `{ expression: 'now64(3)' }`;
66
+ * snapshots store both as the `fn:` string. `generate` rejects a plain string
67
+ * that starts with a function call as the `DEFAULT` of a column that cannot
68
+ * hold a string (`column_default_looks_like_expression`), and any plain
69
+ * string on a `MATERIALIZED` or `ALIAS` column (`column_expression_requires_fn`).
70
+ */
71
+ default?: ColumnDefaultValue;
72
+ /**
73
+ * How ClickHouse uses `default`: `DEFAULT` (the implicit kind),
74
+ * `MATERIALIZED`, `ALIAS`, or `EPHEMERAL`. The literal and `{ expression }`
75
+ * forms of `default` work for every kind:
76
+ * `{ defaultKind: 'MATERIALIZED', default: { expression: 'toDate(ts)' } }`
77
+ * renders `MATERIALIZED toDate(ts)`.
78
+ */
79
+ defaultKind?: ColumnDefaultKind;
45
80
  comment?: string;
46
81
  codec?: ColumnCodecSpec;
47
82
  }
@@ -50,6 +85,21 @@ interface SkipIndexBase {
50
85
  expression: string;
51
86
  granularity: number;
52
87
  }
88
+ /** Full-text index. ClickHouse ignores granularity and uses one index per part. */
89
+ export interface TextSkipIndex extends Omit<SkipIndexBase, 'granularity'> {
90
+ type: 'text';
91
+ /** SQL tokenizer, e.g. splitByNonAlpha or splitByString([' ', ';']). */
92
+ tokenizer: string;
93
+ granularity?: number;
94
+ preprocessor?: string;
95
+ /** Requires a ClickHouse version that supports postprocessing. */
96
+ postprocessor?: string;
97
+ supportPhraseSearch?: boolean;
98
+ dictionaryBlockSize?: number;
99
+ dictionaryBlockFrontcodingCompression?: boolean;
100
+ postingListBlockSize?: number;
101
+ postingListCodec?: 'none' | 'bitpacking';
102
+ }
53
103
  /**
54
104
  * Skip index with structured, discriminated args per type. Arg signatures
55
105
  * come from ClickHouse MergeTree docs:
@@ -58,11 +108,12 @@ interface SkipIndexBase {
58
108
  * - `bloom_filter([false_positive_rate])` — optional float, default 0.025
59
109
  * - `tokenbf_v1(size_bytes, n_hash, seed)` — 3 required ints
60
110
  * - `ngrambf_v1(n, size_bytes, n_hash, seed)` — 4 required ints
111
+ * - `text(tokenizer = ..., ...)` — named parameters, automatic granularity
61
112
  *
62
113
  * ClickHouse 26+ requires `set(0)` not bare `set`; `maxRows` is required
63
114
  * so this is encoded naturally.
64
115
  */
65
- export type SkipIndexDefinition = SkipIndexBase & ({
116
+ export type SkipIndexDefinition = TextSkipIndex | SkipIndexBase & ({
66
117
  type: 'minmax';
67
118
  } | {
68
119
  type: 'set';
@@ -122,6 +173,21 @@ export interface TableDefinition {
122
173
  comment?: string;
123
174
  plugins?: TablePlugins;
124
175
  }
176
+ /** Omitted primary keys inherit ORDER BY, matching ClickHouse MergeTree semantics. */
177
+ export type TableInput = Omit<TableDefinition, 'kind' | 'primaryKey'> & {
178
+ primaryKey?: string[];
179
+ };
180
+ /** Kafka queues do not have MergeTree sorting/storage clauses. */
181
+ export type KafkaTableInput = Omit<TableDefinition, 'kind' | 'engine' | 'primaryKey' | 'orderBy' | 'partitionBy' | 'uniqueKey' | 'ttl' | 'indexes' | 'projections'> & {
182
+ engine: 'Kafka' | `Kafka(${string})`;
183
+ primaryKey?: never;
184
+ orderBy?: never;
185
+ partitionBy?: never;
186
+ uniqueKey?: never;
187
+ ttl?: never;
188
+ indexes?: never;
189
+ projections?: never;
190
+ };
125
191
  export interface ViewDefinition {
126
192
  kind: 'view';
127
193
  database: string;
@@ -157,7 +223,7 @@ export interface MaterializedViewDefinition {
157
223
  export interface DictionaryAttribute {
158
224
  name: string;
159
225
  type: PrimitiveColumnType | string;
160
- /** DEFAULT / null_value for missing keys. */
226
+ /** DEFAULT / null_value for missing keys. A literal: ClickHouse accepts no expression here. */
161
227
  default?: string | number | boolean;
162
228
  /** EXPRESSION — computed from source columns. Mutually exclusive with default. */
163
229
  expression?: string;
@@ -237,9 +303,19 @@ export interface ChxInlinePluginRegistration<TPlugin = unknown, TOptions extends
237
303
  enabled?: boolean;
238
304
  options?: TOptions;
239
305
  }
240
- export type ChxPluginRegistration = ChxInlinePluginRegistration;
306
+ export type ChxPluginRegistration = ChxInlinePluginRegistration<unknown, object>;
241
307
  export interface ChxUserConfig {
242
- schema: string | string[];
308
+ /**
309
+ * Glob patterns for schema files. Mutually exclusive with `entry`.
310
+ */
311
+ schema?: string | string[];
312
+ /**
313
+ * Single project entry module. It is imported once: exported schema
314
+ * definitions are collected from it, and exported plugin-domain definitions
315
+ * (for example ingestion pipelines) are collected by their plugins. Mutually
316
+ * exclusive with `schema`.
317
+ */
318
+ entry?: string;
243
319
  outDir?: string;
244
320
  migrationsDir?: string;
245
321
  metaDir?: string;
@@ -250,6 +326,7 @@ export interface ChxUserConfig {
250
326
  }
251
327
  export interface ChxResolvedConfig {
252
328
  schema: string[];
329
+ entry?: string;
253
330
  outDir: string;
254
331
  migrationsDir: string;
255
332
  metaDir: string;
@@ -279,6 +356,7 @@ export interface MigrationOperation {
279
356
  key: string;
280
357
  risk: RiskLevel;
281
358
  sql: string;
359
+ warning?: string;
282
360
  }
283
361
  export interface ColumnRenameSuggestion {
284
362
  kind: 'column';
@@ -297,7 +375,7 @@ export interface MigrationPlan {
297
375
  riskSummary: Record<RiskLevel, number>;
298
376
  renameSuggestions: ColumnRenameSuggestion[];
299
377
  }
300
- export type ValidationIssueCode = 'duplicate_object_name' | 'duplicate_column_name' | 'duplicate_index_name' | 'duplicate_projection_name' | 'projection_ambiguous_kind' | 'projection_empty_index' | 'primary_key_missing_column' | 'order_by_missing_column' | 'refresh_requires_every_or_after' | 'refresh_every_after_mutually_exclusive' | 'refresh_interval_format' | 'refresh_append_required_for_replicated_target' | 'refresh_depends_on_requires_every' | 'codec_chain_must_end_with_general' | 'codec_chain_multiple_general' | 'codec_chain_empty' | 'dictionary_missing_primary_key' | 'dictionary_primary_key_missing_attribute' | 'dictionary_missing_source' | 'dictionary_missing_layout' | 'dictionary_missing_lifetime' | 'dictionary_attribute_default_expression_exclusive' | 'dictionary_range_missing_attribute' | 'dictionary_bidirectional_requires_hierarchical';
378
+ export type ValidationIssueCode = 'kafka_unsupported_clause' | 'kafka_column_default' | 'kafka_missing_setting' | 'kafka_invalid_setting' | 'kafka_change_requires_replacement' | 'column_kind_change_unsupported' | 'duplicate_object_name' | 'duplicate_column_name' | 'duplicate_index_name' | 'text_index_invalid_parameters' | 'duplicate_projection_name' | 'projection_ambiguous_kind' | 'projection_empty_index' | 'primary_key_missing_column' | 'order_by_missing_column' | 'refresh_requires_every_or_after' | 'refresh_every_after_mutually_exclusive' | 'refresh_interval_format' | 'refresh_append_required_for_replicated_target' | 'refresh_depends_on_requires_every' | 'codec_chain_must_end_with_general' | 'codec_chain_multiple_general' | 'codec_chain_empty' | 'column_default_kind_invalid' | 'column_expression_required' | 'column_expression_requires_fn' | 'column_kind_not_stored' | 'column_ephemeral_in_projection' | 'column_kind_codec_unsupported' | 'column_default_looks_like_expression' | 'column_default_invalid' | 'dictionary_missing_primary_key' | 'dictionary_primary_key_missing_attribute' | 'dictionary_missing_source' | 'dictionary_missing_layout' | 'dictionary_missing_lifetime' | 'dictionary_attribute_default_expression_exclusive' | 'dictionary_range_missing_attribute' | 'dictionary_bidirectional_requires_hierarchical' | 'invalid_identifier';
301
379
  export interface ValidationIssue {
302
380
  code: ValidationIssueCode;
303
381
  kind: SchemaDefinition['kind'];
@@ -1 +1 @@
1
- {"version":3,"file":"model-types.d.ts","sourceRoot":"","sources":["../src/model-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-types.d.ts","sourceRoot":"","sources":["../src/model-types.ts"],"names":[],"mappings":"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"}
package/dist/model.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ChxConfigFn, ChxResolvedConfig, ChxUserConfig, DictionaryDefinition, MaterializedViewDefinition, SchemaDefinition, TableDefinition, ValidationIssue, ViewDefinition } from './model-types.js';
1
+ import type { ChxConfigFn, ChxResolvedConfig, ChxUserConfig, DictionaryDefinition, KafkaTableInput, MaterializedViewDefinition, SchemaDefinition, TableDefinition, TableInput, ValidationIssue, ViewDefinition } from './model-types.js';
2
2
  export * from './model-types.js';
3
3
  export declare class ChxValidationError extends Error {
4
4
  readonly issues: ValidationIssue[];
@@ -7,7 +7,8 @@ export declare class ChxValidationError extends Error {
7
7
  export declare function defineConfig<T extends ChxUserConfig>(config: T): T;
8
8
  export declare function defineConfig<T extends ChxUserConfig>(config: ChxConfigFn<T>): ChxConfigFn<T>;
9
9
  export declare function resolveConfig(config: ChxUserConfig): ChxResolvedConfig;
10
- export declare function table(input: Omit<TableDefinition, 'kind'>): TableDefinition;
10
+ export declare function table(input: KafkaTableInput): TableDefinition;
11
+ export declare function table(input: TableInput): TableDefinition;
11
12
  export declare function view(input: Omit<ViewDefinition, 'kind'>): ViewDefinition;
12
13
  export declare function materializedView(input: Omit<MaterializedViewDefinition, 'kind'>): MaterializedViewDefinition;
13
14
  export declare function dictionary(input: Omit<DictionaryDefinition, 'kind'>): DictionaryDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EAEX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACf,MAAM,kBAAkB,CAAA;AAEzB,cAAc,kBAAkB,CAAA;AAEhC,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAA;gBAEtB,MAAM,EAAE,eAAe,EAAE;CAOtC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;AACnE,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAoB7F,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAiCtE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,eAAe,CAE3E;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAExE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,GAC9C,0BAA0B,CAE5B;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GACxC,oBAAoB,CAEtB;AAED,wBAAgB,MAAM,CAAC,GAAG,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAM5E"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EAEX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,eAAe,EACf,cAAc,EACf,MAAM,kBAAkB,CAAA;AAEzB,cAAc,kBAAkB,CAAA;AAEhC,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAA;gBAEtB,MAAM,EAAE,eAAe,EAAE;CAOtC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;AACnE,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;AAoB7F,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAyCtE;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAAA;AAC9D,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAA;AAKzD,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAExE;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,GAC9C,0BAA0B,CAE5B;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GACxC,oBAAoB,CAEtB;AAED,wBAAgB,MAAM,CAAC,GAAG,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAM5E"}
package/dist/model.js CHANGED
@@ -26,8 +26,15 @@ export function resolveConfig(config) {
26
26
  const outDir = config.outDir ?? './chkit';
27
27
  const migrationsDir = config.migrationsDir ?? join(outDir, 'migrations');
28
28
  const metaDir = config.metaDir ?? join(outDir, 'meta');
29
+ const schemaGlobs = config.schema === undefined ? [] : Array.isArray(config.schema) ? config.schema : [config.schema];
30
+ if (config.entry !== undefined && schemaGlobs.length > 0) {
31
+ throw new Error('Config fields "entry" and "schema" are mutually exclusive. Use one project entry module or schema globs, not both.');
32
+ }
29
33
  return {
30
- schema: Array.isArray(config.schema) ? config.schema : [config.schema],
34
+ // In entry mode the entry module is the only schema source: its exported
35
+ // definitions are collected exactly like any other schema file.
36
+ schema: config.entry !== undefined ? [config.entry] : schemaGlobs,
37
+ entry: config.entry,
31
38
  outDir,
32
39
  migrationsDir,
33
40
  metaDir,
@@ -56,7 +63,7 @@ export function resolveConfig(config) {
56
63
  };
57
64
  }
58
65
  export function table(input) {
59
- return { ...input, kind: 'table' };
66
+ return { ...input, primaryKey: input.primaryKey ?? input.orderBy ?? [], orderBy: input.orderBy ?? [], kind: 'table' };
60
67
  }
61
68
  export function view(input) {
62
69
  return { ...input, kind: 'view' };
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { SchemaDefinition } from './model.js';
2
+ /** Definition key → keys of the other definitions in the same set it references. */
3
+ export type DependencyGraph = ReadonlyMap<string, ReadonlySet<string>>;
4
+ /**
5
+ * Edges from every definition to the definitions it reads, restricted to the
6
+ * given set. Expects canonical definitions (`canonicalizeDefinitions`).
7
+ */
8
+ export declare function buildDependencyGraph(definitions: SchemaDefinition[]): DependencyGraph;
9
+ /**
10
+ * Stable topological order. Items whose prerequisites are all placed keep their
11
+ * input order; an item moves behind every prerequisite found in `items`.
12
+ * Members of a dependency cycle stay together in input order, and whatever
13
+ * depends on the cycle comes after all of them.
14
+ */
15
+ export declare function orderByDependencies<T>(items: readonly T[], keyOf: (item: T) => string, prerequisitesOf: (key: string) => Iterable<string>): T[];
16
+ /** Reverses every edge: key → keys of the definitions that reference it. */
17
+ export declare function invertDependencyGraph(graph: DependencyGraph): DependencyGraph;
18
+ //# sourceMappingURL=object-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-dependencies.d.ts","sourceRoot":"","sources":["../src/object-dependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwB,gBAAgB,EAAmB,MAAM,YAAY,CAAA;AAGzF,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AA4BtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAmBrF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC1B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,GACjD,CAAC,EAAE,CAgDL;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAQ7E"}