@chkit/core 0.1.0-beta.8 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/canonical.d.ts.map +1 -1
  2. package/dist/canonical.js +67 -5
  3. package/dist/canonical.js.map +1 -1
  4. package/dist/codec.d.ts +23 -0
  5. package/dist/codec.d.ts.map +1 -0
  6. package/dist/codec.js +193 -0
  7. package/dist/codec.js.map +1 -0
  8. package/dist/config-path.d.ts +3 -0
  9. package/dist/config-path.d.ts.map +1 -0
  10. package/dist/config-path.js +5 -0
  11. package/dist/config-path.js.map +1 -0
  12. package/dist/diff-primitives.d.ts +5 -4
  13. package/dist/diff-primitives.d.ts.map +1 -1
  14. package/dist/flags.d.ts +26 -0
  15. package/dist/flags.d.ts.map +1 -1
  16. package/dist/flags.js +63 -17
  17. package/dist/flags.js.map +1 -1
  18. package/dist/index.d.ts +5 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +5 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/key-clause.d.ts +1 -1
  23. package/dist/key-clause.d.ts.map +1 -1
  24. package/dist/key-clause.js +1 -1
  25. package/dist/key-clause.js.map +1 -1
  26. package/dist/model-types.d.ts +99 -11
  27. package/dist/model-types.d.ts.map +1 -1
  28. package/dist/model.d.ts.map +1 -1
  29. package/dist/model.js +1 -0
  30. package/dist/model.js.map +1 -1
  31. package/dist/planner.d.ts.map +1 -1
  32. package/dist/planner.js +116 -13
  33. package/dist/planner.js.map +1 -1
  34. package/dist/schema-loader.d.ts.map +1 -1
  35. package/dist/schema-loader.js +2 -2
  36. package/dist/schema-loader.js.map +1 -1
  37. package/dist/sql-normalizer.d.ts +1 -0
  38. package/dist/sql-normalizer.d.ts.map +1 -1
  39. package/dist/sql-normalizer.js +7 -0
  40. package/dist/sql-normalizer.js.map +1 -1
  41. package/dist/sql-splitter.d.ts +3 -0
  42. package/dist/sql-splitter.d.ts.map +1 -0
  43. package/dist/sql-splitter.js +168 -0
  44. package/dist/sql-splitter.js.map +1 -0
  45. package/dist/sql.d.ts +8 -1
  46. package/dist/sql.d.ts.map +1 -1
  47. package/dist/sql.js +74 -3
  48. package/dist/sql.js.map +1 -1
  49. package/dist/ts-import.d.ts +12 -0
  50. package/dist/ts-import.d.ts.map +1 -0
  51. package/dist/ts-import.js +29 -0
  52. package/dist/ts-import.js.map +1 -0
  53. package/dist/utils.d.ts +2 -0
  54. package/dist/utils.d.ts.map +1 -0
  55. package/dist/utils.js +2 -0
  56. package/dist/utils.js.map +1 -0
  57. package/dist/validate.d.ts.map +1 -1
  58. package/dist/validate.js +68 -0
  59. package/dist/validate.js.map +1 -1
  60. package/package.json +24 -2
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AAmGnB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAI9E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAc3F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAiB7F"}
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,gBAAgB,EAIjB,MAAM,YAAY,CAAA;AAiKnB,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,CAI9E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAc3F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAiB7F"}
package/dist/canonical.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { normalizeKeyColumns } from './key-clause.js';
2
2
  import { isSchemaDefinition } from './model.js';
3
- import { normalizeSQLFragment } from './sql-normalizer.js';
3
+ import { canonicalizeCodec } from './codec.js';
4
+ import { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
4
5
  function sortByName(items) {
5
6
  return [...items].sort((a, b) => a.name.localeCompare(b.name));
6
7
  }
@@ -18,6 +19,7 @@ function canonicalizeColumn(column) {
18
19
  renamedFrom: column.renamedFrom?.trim(),
19
20
  type: typeof column.type === 'string' ? column.type.trim() : column.type,
20
21
  comment: column.comment?.trim(),
22
+ codec: column.codec ? canonicalizeCodec(column.codec) : undefined,
21
23
  };
22
24
  }
23
25
  function canonicalizeIndex(index) {
@@ -40,6 +42,11 @@ function canonicalizeTable(def) {
40
42
  const projections = def.projections
41
43
  ? sortByName(def.projections).map(canonicalizeProjection)
42
44
  : undefined;
45
+ const orderBy = normalizeKeyColumns(def.orderBy);
46
+ // ClickHouse derives the primary key from ORDER BY when PRIMARY KEY is
47
+ // omitted. Mirror that so a table with `orderBy` but no `primaryKey` is
48
+ // valid instead of crashing on `undefined.flatMap`.
49
+ const primaryKey = normalizeKeyColumns(def.primaryKey);
43
50
  return {
44
51
  ...def,
45
52
  database: def.database.trim(),
@@ -50,10 +57,10 @@ function canonicalizeTable(def) {
50
57
  name: def.renamedFrom.name.trim(),
51
58
  }
52
59
  : undefined,
53
- engine: def.engine.trim(),
60
+ engine: normalizeEngine(def.engine),
54
61
  columns: def.columns.map(canonicalizeColumn),
55
- primaryKey: normalizeKeyColumns(def.primaryKey),
56
- orderBy: normalizeKeyColumns(def.orderBy),
62
+ primaryKey: primaryKey.length > 0 ? primaryKey : orderBy,
63
+ orderBy,
57
64
  uniqueKey: def.uniqueKey ? normalizeKeyColumns(def.uniqueKey) : undefined,
58
65
  partitionBy: def.partitionBy ? normalizeSQLFragment(def.partitionBy) : undefined,
59
66
  ttl: def.ttl ? normalizeSQLFragment(def.ttl) : undefined,
@@ -72,8 +79,55 @@ function canonicalizeView(def) {
72
79
  comment: def.comment?.trim(),
73
80
  };
74
81
  }
82
+ const INTERVAL_UNIT_PATTERN = /\b(second|minute|hour|day|week|month|year)s?\b/gi;
83
+ function canonicalizeInterval(value) {
84
+ if (value === undefined)
85
+ return undefined;
86
+ return value
87
+ .trim()
88
+ .replace(/\s+/g, ' ')
89
+ .replace(INTERVAL_UNIT_PATTERN, (unit) => unit.toUpperCase().replace(/S$/, ''));
90
+ }
91
+ function canonicalizeRefresh(refresh) {
92
+ if (!refresh)
93
+ return undefined;
94
+ const dependsOn = refresh.dependsOn
95
+ ? [...refresh.dependsOn]
96
+ .map((dep) => ({ database: dep.database.trim(), name: dep.name.trim() }))
97
+ .sort((a, b) => {
98
+ const aKey = `${a.database}.${a.name}`;
99
+ const bKey = `${b.database}.${b.name}`;
100
+ return aKey.localeCompare(bKey);
101
+ })
102
+ : undefined;
103
+ const settings = refresh.settings
104
+ ? Object.fromEntries(Object.entries(refresh.settings).sort(([a], [b]) => a.localeCompare(b)))
105
+ : undefined;
106
+ const canonical = {};
107
+ const every = canonicalizeInterval(refresh.every);
108
+ const after = canonicalizeInterval(refresh.after);
109
+ const offset = canonicalizeInterval(refresh.offset);
110
+ const randomize = canonicalizeInterval(refresh.randomize);
111
+ if (every !== undefined)
112
+ canonical.every = every;
113
+ if (after !== undefined)
114
+ canonical.after = after;
115
+ if (offset !== undefined)
116
+ canonical.offset = offset;
117
+ if (randomize !== undefined)
118
+ canonical.randomize = randomize;
119
+ if (dependsOn && dependsOn.length > 0)
120
+ canonical.dependsOn = dependsOn;
121
+ if (settings && Object.keys(settings).length > 0)
122
+ canonical.settings = settings;
123
+ if (refresh.append)
124
+ canonical.append = true;
125
+ if (refresh.empty)
126
+ canonical.empty = true;
127
+ return canonical;
128
+ }
75
129
  function canonicalizeMaterializedView(def) {
76
- return {
130
+ const canonical = {
77
131
  ...def,
78
132
  database: def.database.trim(),
79
133
  name: def.name.trim(),
@@ -84,6 +138,14 @@ function canonicalizeMaterializedView(def) {
84
138
  as: normalizeSQLFragment(def.as),
85
139
  comment: def.comment?.trim(),
86
140
  };
141
+ const refresh = canonicalizeRefresh(def.refresh);
142
+ if (refresh) {
143
+ canonical.refresh = refresh;
144
+ }
145
+ else {
146
+ delete canonical.refresh;
147
+ }
148
+ return canonical;
87
149
  }
88
150
  export function canonicalizeDefinition(def) {
89
151
  if (def.kind === 'table')
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../src/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { ColumnCodec, ColumnCodecSpec, GeneralColumnCodec, PreprocessingColumnCodec, RawColumnCodec } from './model-types.js';
2
+ export declare function isGeneralCodec(codec: ColumnCodec): codec is GeneralColumnCodec;
3
+ export declare function isPreprocessorCodec(codec: ColumnCodec): codec is PreprocessingColumnCodec;
4
+ export declare function isRawCodec(codec: ColumnCodec): codec is RawColumnCodec;
5
+ export declare function renderCodec(spec: ColumnCodecSpec): string;
6
+ /**
7
+ * Parses a ClickHouse-returned codec expression (e.g. `CODEC(Delta(4), ZSTD(1))`).
8
+ * Returns undefined for empty/missing input. Unknown or unparsable tokens fall
9
+ * back to a single `raw` atom holding the whole chain, so ClickHouse-returned
10
+ * codecs we haven't typed still round-trip cleanly.
11
+ */
12
+ export declare function parseCodec(raw: string | undefined | null): ColumnCodec[] | undefined;
13
+ /**
14
+ * Normalizes a codec spec to array form with ClickHouse defaults filled in,
15
+ * so that `{kind:'ZSTD'}` and `{kind:'ZSTD', level:1}` compare equal.
16
+ * Does not reorder chain steps — `[Delta, ZSTD]` ≠ `[ZSTD, Delta]` semantically.
17
+ */
18
+ export declare function canonicalizeCodec(spec: ColumnCodecSpec): ColumnCodec[];
19
+ export declare function codecsEqual(a?: ColumnCodecSpec, b?: ColumnCodecSpec): boolean;
20
+ export declare const codec: {
21
+ raw: (expression: string) => RawColumnCodec;
22
+ };
23
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACf,MAAM,kBAAkB,CAAA;AASzB,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,kBAAkB,CAE9E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,wBAAwB,CAEzF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,IAAI,cAAc,CAEtE;AAyBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGzD;AA4ED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,EAAE,GAAG,SAAS,CAkBpF;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,EAAE,CAEtE;AAED,wBAAgB,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,OAAO,CAI7E;AAED,eAAO,MAAM,KAAK;sBACE,MAAM,KAAG,cAAc;CAC1C,CAAA"}
package/dist/codec.js ADDED
@@ -0,0 +1,193 @@
1
+ const GENERAL_KINDS = new Set(['NONE', 'LZ4', 'LZ4HC', 'ZSTD', 'T64', 'GCD', 'ALP']);
2
+ const PREPROCESSOR_KINDS = new Set(['Delta', 'DoubleDelta', 'Gorilla', 'FPC']);
3
+ function toArray(spec) {
4
+ return Array.isArray(spec) ? spec : [spec];
5
+ }
6
+ export function isGeneralCodec(codec) {
7
+ return GENERAL_KINDS.has(codec.kind);
8
+ }
9
+ export function isPreprocessorCodec(codec) {
10
+ return PREPROCESSOR_KINDS.has(codec.kind);
11
+ }
12
+ export function isRawCodec(codec) {
13
+ return codec.kind === 'raw';
14
+ }
15
+ function renderStep(step) {
16
+ switch (step.kind) {
17
+ case 'NONE':
18
+ case 'LZ4':
19
+ case 'T64':
20
+ case 'GCD':
21
+ case 'ALP':
22
+ return step.kind;
23
+ case 'LZ4HC':
24
+ return step.level !== undefined ? `LZ4HC(${step.level})` : 'LZ4HC';
25
+ case 'ZSTD':
26
+ return step.level !== undefined ? `ZSTD(${step.level})` : 'ZSTD';
27
+ case 'Delta':
28
+ case 'DoubleDelta':
29
+ case 'Gorilla':
30
+ return step.size !== undefined ? `${step.kind}(${step.size})` : step.kind;
31
+ case 'FPC':
32
+ return `FPC(${step.level}, ${step.floatSize})`;
33
+ case 'raw':
34
+ return step.expression;
35
+ }
36
+ }
37
+ export function renderCodec(spec) {
38
+ const steps = toArray(spec);
39
+ return `CODEC(${steps.map(renderStep).join(', ')})`;
40
+ }
41
+ const ATOM_PATTERN = /^(\w+)(?:\(([^)]*)\))?$/;
42
+ function parseAtom(raw) {
43
+ const trimmed = raw.trim();
44
+ if (trimmed.length === 0)
45
+ return undefined;
46
+ const match = trimmed.match(ATOM_PATTERN);
47
+ if (!match)
48
+ return undefined;
49
+ const [, name, argsRaw] = match;
50
+ if (!name)
51
+ return undefined;
52
+ const rawArgs = argsRaw?.split(',').map((value) => value.trim());
53
+ const args = rawArgs && !(rawArgs.length === 1 && rawArgs[0] === '') ? rawArgs : undefined;
54
+ switch (name) {
55
+ case 'NONE':
56
+ case 'LZ4':
57
+ case 'T64':
58
+ case 'GCD':
59
+ case 'ALP':
60
+ if (args !== undefined)
61
+ return undefined;
62
+ return { kind: name };
63
+ case 'LZ4HC': {
64
+ if (args === undefined)
65
+ return { kind: 'LZ4HC' };
66
+ if (args.length !== 1)
67
+ return undefined;
68
+ const level = Number(args[0]);
69
+ if (!Number.isFinite(level))
70
+ return undefined;
71
+ return { kind: 'LZ4HC', level };
72
+ }
73
+ case 'ZSTD': {
74
+ if (args === undefined)
75
+ return { kind: 'ZSTD' };
76
+ if (args.length !== 1)
77
+ return undefined;
78
+ const level = Number(args[0]);
79
+ if (!Number.isFinite(level))
80
+ return undefined;
81
+ return { kind: 'ZSTD', level };
82
+ }
83
+ case 'Delta':
84
+ case 'DoubleDelta':
85
+ case 'Gorilla': {
86
+ if (args === undefined)
87
+ return { kind: name };
88
+ if (args.length !== 1)
89
+ return undefined;
90
+ const size = Number(args[0]);
91
+ if (size !== 1 && size !== 2 && size !== 4 && size !== 8)
92
+ return undefined;
93
+ return { kind: name, size };
94
+ }
95
+ case 'FPC': {
96
+ if (!args || args.length !== 2)
97
+ return undefined;
98
+ const level = Number(args[0]);
99
+ const floatSize = Number(args[1]);
100
+ if (!Number.isFinite(level))
101
+ return undefined;
102
+ if (floatSize !== 4 && floatSize !== 8)
103
+ return undefined;
104
+ return { kind: 'FPC', level, floatSize };
105
+ }
106
+ default:
107
+ return undefined;
108
+ }
109
+ }
110
+ function splitTopLevelCommas(input) {
111
+ const out = [];
112
+ let depth = 0;
113
+ let current = '';
114
+ for (const ch of input) {
115
+ if (ch === '(')
116
+ depth += 1;
117
+ else if (ch === ')')
118
+ depth = Math.max(0, depth - 1);
119
+ if (ch === ',' && depth === 0) {
120
+ out.push(current);
121
+ current = '';
122
+ continue;
123
+ }
124
+ current += ch;
125
+ }
126
+ if (current.length > 0)
127
+ out.push(current);
128
+ return out;
129
+ }
130
+ /**
131
+ * Parses a ClickHouse-returned codec expression (e.g. `CODEC(Delta(4), ZSTD(1))`).
132
+ * Returns undefined for empty/missing input. Unknown or unparsable tokens fall
133
+ * back to a single `raw` atom holding the whole chain, so ClickHouse-returned
134
+ * codecs we haven't typed still round-trip cleanly.
135
+ */
136
+ export function parseCodec(raw) {
137
+ if (!raw)
138
+ return undefined;
139
+ const trimmed = raw.trim();
140
+ if (trimmed.length === 0)
141
+ return undefined;
142
+ const stripped = trimmed.replace(/^CODEC\s*\(([\s\S]*)\)\s*$/i, '$1').trim();
143
+ if (stripped.length === 0)
144
+ return undefined;
145
+ const atoms = splitTopLevelCommas(stripped)
146
+ .map((value) => value.trim())
147
+ .filter((value) => value.length > 0);
148
+ const parsed = [];
149
+ for (const atom of atoms) {
150
+ const step = parseAtom(atom);
151
+ if (!step)
152
+ return [{ kind: 'raw', expression: stripped }];
153
+ parsed.push(step);
154
+ }
155
+ return parsed;
156
+ }
157
+ function canonicalizeStep(step) {
158
+ switch (step.kind) {
159
+ case 'ZSTD':
160
+ return { kind: 'ZSTD', level: step.level ?? 1 };
161
+ case 'LZ4HC':
162
+ return { kind: 'LZ4HC', level: step.level ?? 9 };
163
+ case 'Delta':
164
+ case 'DoubleDelta':
165
+ case 'Gorilla':
166
+ return { kind: step.kind, size: step.size ?? 1 };
167
+ case 'FPC':
168
+ return { kind: 'FPC', level: step.level, floatSize: step.floatSize };
169
+ case 'raw':
170
+ return { kind: 'raw', expression: step.expression.trim() };
171
+ default:
172
+ return { kind: step.kind };
173
+ }
174
+ }
175
+ /**
176
+ * Normalizes a codec spec to array form with ClickHouse defaults filled in,
177
+ * so that `{kind:'ZSTD'}` and `{kind:'ZSTD', level:1}` compare equal.
178
+ * Does not reorder chain steps — `[Delta, ZSTD]` ≠ `[ZSTD, Delta]` semantically.
179
+ */
180
+ export function canonicalizeCodec(spec) {
181
+ return toArray(spec).map(canonicalizeStep);
182
+ }
183
+ export function codecsEqual(a, b) {
184
+ if (a === undefined && b === undefined)
185
+ return true;
186
+ if (a === undefined || b === undefined)
187
+ return false;
188
+ return JSON.stringify(canonicalizeCodec(a)) === JSON.stringify(canonicalizeCodec(b));
189
+ }
190
+ export const codec = {
191
+ raw: (expression) => ({ kind: 'raw', expression: expression.trim() }),
192
+ };
193
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const SYNTHESIZED_CONFIG_PATH = "<default:obsessiondb>";
2
+ export declare function isSynthesizedConfigPath(path: string): boolean;
3
+ //# sourceMappingURL=config-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-path.d.ts","sourceRoot":"","sources":["../src/config-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,0BAA0B,CAAA;AAE9D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,5 @@
1
+ export const SYNTHESIZED_CONFIG_PATH = '<default:obsessiondb>';
2
+ export function isSynthesizedConfigPath(path) {
3
+ return path === SYNTHESIZED_CONFIG_PATH;
4
+ }
5
+ //# sourceMappingURL=config-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-path.js","sourceRoot":"","sources":["../src/config-path.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,uBAAuB,CAAA;AAE9D,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI,KAAK,uBAAuB,CAAA;AACzC,CAAC"}
@@ -1,15 +1,15 @@
1
- export interface NamedDiffChange<T> {
1
+ interface NamedDiffChange<T> {
2
2
  name: string;
3
3
  oldItem: T;
4
4
  newItem: T;
5
5
  }
6
- export interface NamedDiffResult<T> {
6
+ interface NamedDiffResult<T> {
7
7
  added: T[];
8
8
  removed: T[];
9
9
  changed: NamedDiffChange<T>[];
10
10
  }
11
11
  export declare function diffByName<T>(oldItems: readonly T[], newItems: readonly T[], getName: (item: T) => string, equals: (left: T, right: T) => boolean): NamedDiffResult<T>;
12
- export interface SettingDiffResult {
12
+ interface SettingDiffResult {
13
13
  changes: Array<{
14
14
  kind: 'modify';
15
15
  key: string;
@@ -20,9 +20,10 @@ export interface SettingDiffResult {
20
20
  }>;
21
21
  }
22
22
  export declare function diffSettings(oldSettings: Record<string, string | number | boolean>, newSettings: Record<string, string | number | boolean>): SettingDiffResult;
23
- export interface ClauseComparison {
23
+ interface ClauseComparison {
24
24
  oldValue: string;
25
25
  newValue: string;
26
26
  }
27
27
  export declare function diffClauses(comparisons: readonly ClauseComparison[]): boolean;
28
+ export {};
28
29
  //# sourceMappingURL=diff-primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff-primitives.d.ts","sourceRoot":"","sources":["../src/diff-primitives.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,EAAE,CAAC,CAAA;CACX;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;CAC9B;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,GACrC,eAAe,CAAC,CAAC,CAAC,CA+BpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CACV;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,GACjE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CACjC,CAAA;CACF;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,iBAAiB,CAmBnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAE7E"}
1
+ {"version":3,"file":"diff-primitives.d.ts","sourceRoot":"","sources":["../src/diff-primitives.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe,CAAC,CAAC;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,EAAE,CAAC,CAAA;CACX;AAED,UAAU,eAAe,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;CAC9B;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,QAAQ,EAAE,SAAS,CAAC,EAAE,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,GACrC,eAAe,CAAC,CAAC,CAAC,CA+BpB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,KAAK,CACV;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,GACjE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CACjC,CAAA;CACF;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,iBAAiB,CAmBnB;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAE7E"}
package/dist/flags.d.ts CHANGED
@@ -24,6 +24,32 @@ export declare class MissingFlagValueError extends Error {
24
24
  readonly flag: string;
25
25
  constructor(flag: string);
26
26
  }
27
+ export interface FlagMappingEntry {
28
+ key: string;
29
+ coerce?: (value: string) => unknown;
30
+ }
31
+ export type FlagMapping = Record<string, FlagMappingEntry>;
32
+ export declare function mapFlags(flags: ParsedFlags, mapping: FlagMapping): Record<string, unknown>;
33
+ /** Minimal interface compatible with Zod's safeParse — avoids a zod dependency in core. */
34
+ export interface SafeParseable<T> {
35
+ safeParse(data: unknown): {
36
+ success: true;
37
+ data: T;
38
+ } | {
39
+ success: false;
40
+ error: {
41
+ issues: Array<{
42
+ path: PropertyKey[];
43
+ message: string;
44
+ }>;
45
+ };
46
+ };
47
+ }
48
+ /**
49
+ * Two-layer option resolution: registration options → CLI flags.
50
+ * Merges sources, validates through a schema, and throws ErrorClass on failure.
51
+ */
52
+ export declare function resolveOptions<T>(schema: SafeParseable<T>, options: Record<string, unknown>, flags: ParsedFlags, flagMapping: FlagMapping, ErrorClass?: new (message: string) => Error): T;
27
53
  export declare function parseFlags<const T extends readonly FlagDef[]>(argv: string[], flagDefs: T): InferFlags<T>;
28
54
  export {};
29
55
  //# sourceMappingURL=flags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI;KACpD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CACtD,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAE1E;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAC3D,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,CAAC,GACP,UAAU,CAAC,CAAC,CAAC,CAEf;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA0DzG"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;AAEjF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI;KACpD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CACtD,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAE1E;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAC3D,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,CAAC,GACP,UAAU,CAAC,CAAC,CAAC,CAEf;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,IAAI,EAAE,MAAM;CAKzB;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CACpC;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAE1D,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,WAAW,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,SAAS,CAAC,IAAI,EAAE,OAAO,GACnB;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAC1B;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAC3F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,KAAK,OAAO,EAAE,MAAM,KAAK,KAAa,GACjD,CAAC,CAWH;AAID,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA2EzG"}
package/dist/flags.js CHANGED
@@ -20,6 +20,36 @@ export class MissingFlagValueError extends Error {
20
20
  this.flag = flag;
21
21
  }
22
22
  }
23
+ export function mapFlags(flags, mapping) {
24
+ const result = {};
25
+ for (const [flagName, entry] of Object.entries(mapping)) {
26
+ const raw = flags[flagName];
27
+ if (raw === undefined)
28
+ continue;
29
+ if (entry.coerce && typeof raw === 'string') {
30
+ result[entry.key] = entry.coerce(raw);
31
+ }
32
+ else {
33
+ result[entry.key] = raw;
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+ /**
39
+ * Two-layer option resolution: registration options → CLI flags.
40
+ * Merges sources, validates through a schema, and throws ErrorClass on failure.
41
+ */
42
+ export function resolveOptions(schema, options, flags, flagMapping, ErrorClass = Error) {
43
+ const cliOverrides = mapFlags(flags, flagMapping);
44
+ const merged = { ...options, ...cliOverrides };
45
+ const result = schema.safeParse(merged);
46
+ if (!result.success) {
47
+ const issue = result.error.issues[0];
48
+ throw new ErrorClass(issue ? `${issue.path.join('.')}: ${issue.message}` : 'Invalid options');
49
+ }
50
+ return result.data;
51
+ }
52
+ // ───── Flag parsing ─────
23
53
  export function parseFlags(argv, flagDefs) {
24
54
  const lookup = new Map();
25
55
  const negationMap = new Map();
@@ -32,41 +62,57 @@ export function parseFlags(argv, flagDefs) {
32
62
  }
33
63
  }
34
64
  const flags = {};
65
+ const addArrayValue = (key, raw) => {
66
+ const values = raw.split(',').map((v) => v.trim()).filter((v) => v.length > 0);
67
+ const existing = flags[key];
68
+ if (Array.isArray(existing)) {
69
+ existing.push(...values);
70
+ }
71
+ else {
72
+ flags[key] = values;
73
+ }
74
+ };
35
75
  for (let i = 0; i < argv.length; i += 1) {
36
76
  const token = argv[i];
37
77
  if (!token || !token.startsWith('--'))
38
78
  continue;
39
- if (negationMap.has(token)) {
40
- const originalName = negationMap.get(token);
79
+ const eqIdx = token.indexOf('=');
80
+ const name = eqIdx === -1 ? token : token.slice(0, eqIdx);
81
+ const inlineValue = eqIdx === -1 ? undefined : token.slice(eqIdx + 1);
82
+ if (eqIdx === -1 && negationMap.has(name)) {
83
+ const originalName = negationMap.get(name);
41
84
  flags[originalName] = false;
42
85
  continue;
43
86
  }
44
- const def = lookup.get(token);
87
+ const def = lookup.get(name);
45
88
  if (!def) {
46
- throw new UnknownFlagError(token);
89
+ throw new UnknownFlagError(name);
47
90
  }
48
91
  if (def.type === 'boolean') {
92
+ if (inlineValue !== undefined) {
93
+ throw new UnknownFlagError(token);
94
+ }
49
95
  flags[def.name] = true;
50
96
  continue;
51
97
  }
52
- const nextToken = argv[i + 1];
53
- if (nextToken === undefined || nextToken.startsWith('--')) {
54
- throw new MissingFlagValueError(def.name);
98
+ let value;
99
+ if (inlineValue !== undefined) {
100
+ value = inlineValue;
101
+ }
102
+ else {
103
+ const nextToken = argv[i + 1];
104
+ if (nextToken === undefined || nextToken.startsWith('--')) {
105
+ throw new MissingFlagValueError(def.name);
106
+ }
107
+ value = nextToken;
108
+ i += 1;
55
109
  }
56
- i += 1;
57
110
  if (def.type === 'string') {
58
- flags[def.name] = nextToken;
111
+ flags[def.name] = value;
59
112
  continue;
60
113
  }
61
114
  if (def.type === 'string[]') {
62
- const values = nextToken.split(',').map((v) => v.trim()).filter((v) => v.length > 0);
63
- const existing = flags[def.name];
64
- if (Array.isArray(existing)) {
65
- existing.push(...values);
66
- }
67
- else {
68
- flags[def.name] = values;
69
- }
115
+ addArrayValue(def.name, value);
70
116
  }
71
117
  }
72
118
  return flags;
package/dist/flags.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,WAAW,CAAqC,IAAO;IACrE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAkB,EAClB,KAAQ;IAER,OAAO,KAAsB,CAAA;AAC/B,CAAC;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAQ;IACrB,YAAY,IAAY;QACtB,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,CAAQ;IACrB,YAAY,IAAY;QACtB,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAWD,MAAM,UAAU,QAAQ,CACtB,KAAkB,EAClB,OAAoB;IAEpB,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,SAAQ;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;QACzB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAwB,EACxB,OAAgC,EAChC,KAAkB,EAClB,WAAwB,EACxB,aAA6C,KAAK;IAElD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACpC,MAAM,IAAI,UAAU,CAClB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,iBAAiB,CACxE,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,2BAA2B;AAE3B,MAAM,UAAU,UAAU,CAAqC,IAAc,EAAE,QAAW;IACxF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAA;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE7C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC5C,MAAM,OAAO,GAAG,QAAQ,QAAQ,EAAE,CAAA;YAClC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAA;IAE7B,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,GAAW,EAAQ,EAAE;QACvD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,SAAQ;QAE/C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACzD,MAAM,WAAW,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAErE,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAW,CAAA;YACpD,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAA;YAC3B,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACnC,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YACtB,SAAQ;QACV,CAAC;QAED,IAAI,KAAa,CAAA;QACjB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,GAAG,WAAW,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7B,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3C,CAAC;YACD,KAAK,GAAG,SAAS,CAAA;YACjB,CAAC,IAAI,CAAC,CAAA;QACR,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAED,OAAO,KAAsB,CAAA;AAC/B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,15 @@
1
1
  export * from './flags.js';
2
2
  export * from './model.js';
3
+ export { SYNTHESIZED_CONFIG_PATH, isSynthesizedConfigPath } from './config-path.js';
3
4
  export { canonicalizeDefinition, canonicalizeDefinitions, collectDefinitionsFromModule, } from './canonical.js';
4
5
  export { planDiff } from './planner.js';
5
6
  export { createSnapshot } from './snapshot.js';
6
- export { loadSchemaDefinitions, type SchemaLoaderOptions } from './schema-loader.js';
7
7
  export { splitTopLevelComma } from './key-clause.js';
8
- export { normalizeSQLFragment } from './sql-normalizer.js';
8
+ export { normalizeEngine, normalizeSQLFragment } from './sql-normalizer.js';
9
9
  export { toCreateSQL } from './sql.js';
10
+ export { canonicalizeCodec, codec, codecsEqual, isGeneralCodec, isPreprocessorCodec, isRawCodec, parseCodec, renderCodec, } from './codec.js';
10
11
  export { assertValidDefinitions, validateDefinitions } from './validate.js';
11
12
  export { wrapPluginRun } from './plugin-error.js';
13
+ export { splitSqlStatements, extractExecutableStatements } from './sql-splitter.js';
14
+ export { importModuleFile } from './ts-import.js';
12
15
  //# sourceMappingURL=index.d.ts.map