@duckcodeailabs/dql-core 1.6.33 → 1.7.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 (118) hide show
  1. package/dist/apps/app-document.d.ts +3 -1
  2. package/dist/apps/app-document.d.ts.map +1 -1
  3. package/dist/apps/app-document.js +26 -11
  4. package/dist/apps/app-document.js.map +1 -1
  5. package/dist/apps/dashboard-document.d.ts +5 -0
  6. package/dist/apps/dashboard-document.d.ts.map +1 -1
  7. package/dist/apps/dashboard-document.js +4 -0
  8. package/dist/apps/dashboard-document.js.map +1 -1
  9. package/dist/apps/index.d.ts +2 -0
  10. package/dist/apps/index.d.ts.map +1 -1
  11. package/dist/apps/index.js +1 -0
  12. package/dist/apps/index.js.map +1 -1
  13. package/dist/apps/product-domain-context.d.ts +23 -0
  14. package/dist/apps/product-domain-context.d.ts.map +1 -0
  15. package/dist/apps/product-domain-context.js +25 -0
  16. package/dist/apps/product-domain-context.js.map +1 -0
  17. package/dist/artifacts/dql-artifact.d.ts +13 -0
  18. package/dist/artifacts/dql-artifact.d.ts.map +1 -1
  19. package/dist/artifacts/dql-artifact.js +69 -0
  20. package/dist/artifacts/dql-artifact.js.map +1 -1
  21. package/dist/artifacts/index.d.ts +1 -1
  22. package/dist/artifacts/index.d.ts.map +1 -1
  23. package/dist/ast/index.d.ts +1 -1
  24. package/dist/ast/index.d.ts.map +1 -1
  25. package/dist/ast/index.js.map +1 -1
  26. package/dist/ast/nodes.d.ts +19 -1
  27. package/dist/ast/nodes.d.ts.map +1 -1
  28. package/dist/ast/printer.js +24 -0
  29. package/dist/ast/printer.js.map +1 -1
  30. package/dist/blocks/index.d.ts +2 -0
  31. package/dist/blocks/index.d.ts.map +1 -0
  32. package/dist/blocks/index.js +2 -0
  33. package/dist/blocks/index.js.map +1 -0
  34. package/dist/blocks/parameters.d.ts +55 -0
  35. package/dist/blocks/parameters.d.ts.map +1 -0
  36. package/dist/blocks/parameters.js +160 -0
  37. package/dist/blocks/parameters.js.map +1 -0
  38. package/dist/contracts/types.d.ts +6 -0
  39. package/dist/contracts/types.d.ts.map +1 -1
  40. package/dist/contracts/types.js.map +1 -1
  41. package/dist/format/diff.d.ts.map +1 -1
  42. package/dist/format/diff.js +19 -11
  43. package/dist/format/diff.js.map +1 -1
  44. package/dist/format/notebook.d.ts +1 -1
  45. package/dist/format/notebook.js +2 -2
  46. package/dist/formatter/formatter.js +23 -1
  47. package/dist/formatter/formatter.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/lineage/index.d.ts +1 -1
  53. package/dist/lineage/index.d.ts.map +1 -1
  54. package/dist/lineage/index.js.map +1 -1
  55. package/dist/lineage/sql-parser.d.ts +19 -0
  56. package/dist/lineage/sql-parser.d.ts.map +1 -1
  57. package/dist/lineage/sql-parser.js +90 -0
  58. package/dist/lineage/sql-parser.js.map +1 -1
  59. package/dist/manifest/builder.d.ts +5 -0
  60. package/dist/manifest/builder.d.ts.map +1 -1
  61. package/dist/manifest/builder.js +186 -8
  62. package/dist/manifest/builder.js.map +1 -1
  63. package/dist/manifest/datalex-migration.d.ts +68 -0
  64. package/dist/manifest/datalex-migration.d.ts.map +1 -0
  65. package/dist/manifest/datalex-migration.js +369 -0
  66. package/dist/manifest/datalex-migration.js.map +1 -0
  67. package/dist/manifest/dbt-first-authoring.d.ts +210 -0
  68. package/dist/manifest/dbt-first-authoring.d.ts.map +1 -0
  69. package/dist/manifest/dbt-first-authoring.js +510 -0
  70. package/dist/manifest/dbt-first-authoring.js.map +1 -0
  71. package/dist/manifest/dbt-first-modeling.d.ts +34 -0
  72. package/dist/manifest/dbt-first-modeling.d.ts.map +1 -0
  73. package/dist/manifest/dbt-first-modeling.js +931 -0
  74. package/dist/manifest/dbt-first-modeling.js.map +1 -0
  75. package/dist/manifest/domain-discovery.d.ts +98 -0
  76. package/dist/manifest/domain-discovery.d.ts.map +1 -0
  77. package/dist/manifest/domain-discovery.js +503 -0
  78. package/dist/manifest/domain-discovery.js.map +1 -0
  79. package/dist/manifest/domain-package-registry.d.ts +20 -0
  80. package/dist/manifest/domain-package-registry.d.ts.map +1 -0
  81. package/dist/manifest/domain-package-registry.js +265 -0
  82. package/dist/manifest/domain-package-registry.js.map +1 -0
  83. package/dist/manifest/domain-writer.d.ts +18 -0
  84. package/dist/manifest/domain-writer.d.ts.map +1 -1
  85. package/dist/manifest/domain-writer.js +52 -3
  86. package/dist/manifest/domain-writer.js.map +1 -1
  87. package/dist/manifest/index.d.ts +7 -1
  88. package/dist/manifest/index.d.ts.map +1 -1
  89. package/dist/manifest/index.js +6 -0
  90. package/dist/manifest/index.js.map +1 -1
  91. package/dist/manifest/project-snapshot.d.ts +30 -0
  92. package/dist/manifest/project-snapshot.d.ts.map +1 -0
  93. package/dist/manifest/project-snapshot.js +68 -0
  94. package/dist/manifest/project-snapshot.js.map +1 -0
  95. package/dist/manifest/types.d.ts +297 -3
  96. package/dist/manifest/types.d.ts.map +1 -1
  97. package/dist/parser/parser.d.ts.map +1 -1
  98. package/dist/parser/parser.js +88 -6
  99. package/dist/parser/parser.js.map +1 -1
  100. package/dist/semantic/analyzer.js +1 -1
  101. package/dist/semantic/analyzer.js.map +1 -1
  102. package/dist/semantic/index.d.ts +1 -1
  103. package/dist/semantic/index.d.ts.map +1 -1
  104. package/dist/semantic/index.js +1 -1
  105. package/dist/semantic/index.js.map +1 -1
  106. package/dist/semantic/providers/dbt-provider.d.ts +63 -0
  107. package/dist/semantic/providers/dbt-provider.d.ts.map +1 -1
  108. package/dist/semantic/providers/dbt-provider.js +43 -16
  109. package/dist/semantic/providers/dbt-provider.js.map +1 -1
  110. package/dist/semantic/semantic-layer.d.ts +11 -0
  111. package/dist/semantic/semantic-layer.d.ts.map +1 -1
  112. package/dist/semantic/semantic-layer.js +378 -27
  113. package/dist/semantic/semantic-layer.js.map +1 -1
  114. package/dist/semantic/sql-dialect.d.ts +8 -0
  115. package/dist/semantic/sql-dialect.d.ts.map +1 -1
  116. package/dist/semantic/sql-dialect.js +22 -0
  117. package/dist/semantic/sql-dialect.js.map +1 -1
  118. package/package.json +1 -1
@@ -0,0 +1,369 @@
1
+ /**
2
+ * One-way DataLex → DQL v3 migration planner.
3
+ *
4
+ * The planner is intentionally conservative. It imports only DataLex business
5
+ * semantics that can be bound to dbt, writes every migrated governance object
6
+ * as a draft, and reports every dropped/missing item. dbt-owned descriptions,
7
+ * fields and types become *suggested* YAML patches rather than a second DQL
8
+ * catalog.
9
+ */
10
+ import { createHash, randomUUID } from 'node:crypto';
11
+ import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'node:fs';
12
+ import { dirname, join } from 'node:path';
13
+ import * as yaml from 'js-yaml';
14
+ import { renderDomainDeclaration } from './domain-writer.js';
15
+ /** Create a deterministic, reviewable migration plan without writing files. */
16
+ export function planDataLexMigration(input) {
17
+ const datalex = readDataLexManifest(input.datalexManifestPath);
18
+ const dbt = readDbtNodes(input.dbtManifestPath);
19
+ const report = {
20
+ matchedEntities: [],
21
+ droppedDbtMirrors: [],
22
+ draftedObjects: [],
23
+ losses: [],
24
+ ambiguities: [],
25
+ suggestedDbtPatches: [],
26
+ autoCertified: 0,
27
+ };
28
+ const bound = new Map();
29
+ const overlays = new Map();
30
+ const patchModels = new Map();
31
+ for (const domain of datalex.domains ?? []) {
32
+ const domainId = slug(domain.name);
33
+ const overlay = overlayFor(overlays, domainId);
34
+ for (const entity of domain.entities ?? []) {
35
+ const path = `domains.${domainId}.entities.${entity.name}`;
36
+ const match = matchDbtEntity(entity, dbt);
37
+ if (match.ambiguity) {
38
+ report.ambiguities.push({ path, ...match.ambiguity });
39
+ continue;
40
+ }
41
+ const matched = match.node;
42
+ if (!matched) {
43
+ report.losses.push({ path, reason: 'No unambiguous dbt unique ID, relation, or model name matched the DataLex binding.' });
44
+ continue;
45
+ }
46
+ const dqlId = entityId(domainId, entity.name);
47
+ const candidateKeys = stringArray(entity.candidate_keys);
48
+ overlay.entities.push(compact({
49
+ id: dqlId,
50
+ dbt_model: matched.uniqueId,
51
+ grain: entity.grain,
52
+ keys: candidateKeys.length > 0 ? candidateKeys : undefined,
53
+ }));
54
+ bound.set(entityLookup(domain.name, entity.name), { domain: domainId, name: entity.name, dqlId, dbt: matched, raw: entity });
55
+ report.matchedEntities.push({ datalex: `${domain.name}.${entity.name}`, dbtUniqueId: matched.uniqueId, dqlEntity: dqlId });
56
+ const mirrors = mirroredDbtFields(entity, matched);
57
+ if (mirrors.length > 0)
58
+ report.droppedDbtMirrors.push({ path, fields: mirrors });
59
+ const patch = dbtPatchForEntity(entity, matched);
60
+ if (patch) {
61
+ const patches = patchModels.get(domainId) ?? [];
62
+ patches.push(patch);
63
+ patchModels.set(domainId, patches);
64
+ }
65
+ for (const contract of entity.contracts ?? []) {
66
+ const id = typeof contract.id === 'string' ? contract.id : undefined;
67
+ if (!id) {
68
+ report.losses.push({ path: `${path}.contracts`, reason: 'A contract without an id cannot be migrated.' });
69
+ continue;
70
+ }
71
+ overlay.contracts.push(compact({
72
+ id,
73
+ domain: domainId,
74
+ entities: [dqlId],
75
+ status: 'draft',
76
+ owner: contract.owner,
77
+ required_evaluation: true,
78
+ }));
79
+ report.draftedObjects.push({ kind: 'contract', id });
80
+ }
81
+ }
82
+ }
83
+ for (const relationship of datalex.relationships ?? []) {
84
+ migrateRelationship(relationship, bound, overlays, report);
85
+ }
86
+ for (const declaration of datalex.conformance ?? []) {
87
+ const entities = (declaration.physical ?? [])
88
+ .map((physical) => bound.get(entityLookup(declaration.domain ?? '', physical.entity))?.dqlId)
89
+ .filter((id) => Boolean(id));
90
+ if (entities.length < 2) {
91
+ report.losses.push({ path: `conformance.${declaration.concept}`, reason: 'Conformance did not resolve to two or more dbt-bound entities.' });
92
+ continue;
93
+ }
94
+ const domainId = bound.get(entityLookup(declaration.domain ?? '', declaration.physical?.[0]?.entity ?? ''))?.domain ?? 'shared';
95
+ const id = `${slug(domainId)}_${slug(declaration.concept)}_conformance`;
96
+ overlayFor(overlays, domainId).conformance.push({
97
+ id,
98
+ entities: [...new Set(entities)].sort(),
99
+ rule: `DataLex conformance migration for ${declaration.concept}; review canonical key ${stringArray(declaration.canonical_key).join(', ') || 'not supplied'}.`,
100
+ });
101
+ report.draftedObjects.push({ kind: 'conformance', id });
102
+ }
103
+ const files = [];
104
+ for (const domain of [...(datalex.domains ?? [])].sort((a, b) => a.name.localeCompare(b.name))) {
105
+ const domainId = slug(domain.name);
106
+ files.push({
107
+ path: `domains/${domainId}/domain.dql`,
108
+ content: renderDomainDeclaration({
109
+ id: domainId,
110
+ name: domain.name,
111
+ description: domain.description,
112
+ owner: domain.owners?.[0],
113
+ tags: ['migrated-from-datalex'],
114
+ }),
115
+ kind: 'domain_declaration',
116
+ });
117
+ }
118
+ for (const [domainId, overlay] of [...overlays.entries()].sort(([a], [b]) => a.localeCompare(b))) {
119
+ const content = yaml.dump(compact(overlay), { noRefs: true, lineWidth: 120, sortKeys: false });
120
+ if (content.trim()) {
121
+ files.push({
122
+ path: `domains/${domainId}/modeling/datalex-migration.dql.yaml`,
123
+ content,
124
+ kind: 'domain_overlay',
125
+ });
126
+ }
127
+ }
128
+ for (const [domainId, models] of [...patchModels.entries()].sort(([a], [b]) => a.localeCompare(b))) {
129
+ const path = `migrations/datalex/${domainId}.dbt-schema.patch.yaml`;
130
+ files.push({
131
+ path,
132
+ content: yaml.dump({ version: 2, models }, { noRefs: true, lineWidth: 120, sortKeys: false }),
133
+ kind: 'dbt_yaml_patch',
134
+ });
135
+ report.suggestedDbtPatches.push(path);
136
+ }
137
+ report.matchedEntities.sort((a, b) => a.datalex.localeCompare(b.datalex));
138
+ report.droppedDbtMirrors.sort((a, b) => a.path.localeCompare(b.path));
139
+ report.draftedObjects.sort((a, b) => `${a.kind}:${a.id}`.localeCompare(`${b.kind}:${b.id}`));
140
+ report.losses.sort((a, b) => `${a.path}:${a.reason}`.localeCompare(`${b.path}:${b.reason}`));
141
+ report.ambiguities.sort((a, b) => `${a.path}:${a.reference}`.localeCompare(`${b.path}:${b.reference}`));
142
+ files.push({
143
+ path: 'migrations/datalex/report.json',
144
+ content: `${JSON.stringify(report, null, 2)}\n`,
145
+ kind: 'report',
146
+ });
147
+ return {
148
+ version: 1,
149
+ sourceFingerprint: dataLexSourceFingerprint(input.datalexManifestPath, input.dbtManifestPath),
150
+ datalexManifestPath: input.datalexManifestPath,
151
+ dbtManifestPath: input.dbtManifestPath,
152
+ files: files.sort((a, b) => a.path.localeCompare(b.path)),
153
+ report,
154
+ };
155
+ }
156
+ /**
157
+ * Write a reviewed plan idempotently. Existing identical files are left alone;
158
+ * no dbt project file is ever mutated because suggestions live under
159
+ * `migrations/datalex/` for explicit review and application.
160
+ */
161
+ export function applyDataLexMigration(projectRoot, plan) {
162
+ if (plan.report.ambiguities.length > 0) {
163
+ throw new Error('DataLex migration is blocked by ambiguous dbt bindings; no files were written.');
164
+ }
165
+ const currentFingerprint = dataLexSourceFingerprint(plan.datalexManifestPath, plan.dbtManifestPath);
166
+ if (currentFingerprint !== plan.sourceFingerprint) {
167
+ throw new Error('SOURCE_CHANGED: DataLex or dbt artifacts changed after preview; create a new migration plan.');
168
+ }
169
+ const written = [];
170
+ const unchanged = [];
171
+ const changed = plan.files.filter((file) => {
172
+ const absolute = join(projectRoot, file.path);
173
+ if (existsSync(absolute) && readFileSync(absolute, 'utf8') === file.content) {
174
+ unchanged.push(file.path);
175
+ return false;
176
+ }
177
+ return true;
178
+ });
179
+ if (changed.length === 0)
180
+ return { written, unchanged };
181
+ const stageRoot = join(projectRoot, '.dql', 'migration-staging', `datalex-${randomUUID()}`);
182
+ const installed = [];
183
+ const backedUp = [];
184
+ try {
185
+ for (const file of changed) {
186
+ const staged = join(stageRoot, 'after', file.path);
187
+ mkdirSync(dirname(staged), { recursive: true });
188
+ writeFileSync(staged, file.content, 'utf8');
189
+ }
190
+ for (const file of changed) {
191
+ const absolute = join(projectRoot, file.path);
192
+ if (existsSync(absolute)) {
193
+ const backup = join(stageRoot, 'before', file.path);
194
+ mkdirSync(dirname(backup), { recursive: true });
195
+ renameSync(absolute, backup);
196
+ backedUp.push(file.path);
197
+ }
198
+ mkdirSync(dirname(absolute), { recursive: true });
199
+ renameSync(join(stageRoot, 'after', file.path), absolute);
200
+ installed.push(file.path);
201
+ written.push(file.path);
202
+ }
203
+ rmSync(stageRoot, { recursive: true, force: true });
204
+ return { written, unchanged };
205
+ }
206
+ catch (error) {
207
+ for (const path of [...installed].reverse())
208
+ rmSync(join(projectRoot, path), { recursive: true, force: true });
209
+ for (const path of [...backedUp].reverse()) {
210
+ const backup = join(stageRoot, 'before', path);
211
+ if (existsSync(backup)) {
212
+ mkdirSync(dirname(join(projectRoot, path)), { recursive: true });
213
+ renameSync(backup, join(projectRoot, path));
214
+ }
215
+ }
216
+ rmSync(stageRoot, { recursive: true, force: true });
217
+ throw error;
218
+ }
219
+ }
220
+ function migrateRelationship(relationship, bound, overlays, report) {
221
+ const from = bound.get(entityLookup(relationship.from.domain ?? '', relationship.from.entity));
222
+ const to = bound.get(entityLookup(relationship.to.domain ?? '', relationship.to.entity));
223
+ const path = `relationships.${relationship.name}`;
224
+ if (!from || !to) {
225
+ report.losses.push({ path, reason: 'Relationship endpoint did not resolve to a dbt-bound migrated entity.' });
226
+ return;
227
+ }
228
+ if (!relationship.from.column || !relationship.to.column) {
229
+ report.losses.push({ path, reason: 'Relationship lacks physical key columns and cannot be made into DQL join proof.' });
230
+ return;
231
+ }
232
+ const id = slug(relationship.name);
233
+ overlayFor(overlays, from.domain).relationships.push({
234
+ id,
235
+ from: from.dqlId,
236
+ to: to.dqlId,
237
+ keys: [{ from: relationship.from.column, to: relationship.to.column }],
238
+ cardinality: relationship.cardinality ?? 'unknown',
239
+ fanout: relationship.cardinality === 'many_to_many' ? 'attribution_required' : 'unknown',
240
+ crossDomain: from.domain !== to.domain || undefined,
241
+ status: 'draft',
242
+ });
243
+ report.draftedObjects.push({ kind: 'relationship', id });
244
+ }
245
+ function overlayFor(overlays, domainId) {
246
+ const existing = overlays.get(domainId);
247
+ if (existing)
248
+ return existing;
249
+ const created = emptyOverlay();
250
+ overlays.set(domainId, created);
251
+ return created;
252
+ }
253
+ function emptyOverlay() {
254
+ return {
255
+ entities: [],
256
+ relationships: [],
257
+ contracts: [],
258
+ conformance: [],
259
+ rules: [],
260
+ };
261
+ }
262
+ function readDataLexManifest(path) {
263
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
264
+ if (!parsed || !Array.isArray(parsed.domains))
265
+ throw new Error(`DataLex manifest at ${path} does not contain a domains array.`);
266
+ return parsed;
267
+ }
268
+ function readDbtNodes(path) {
269
+ const raw = JSON.parse(readFileSync(path, 'utf8'));
270
+ const nodes = [];
271
+ for (const [uniqueId, node] of Object.entries({ ...(raw.nodes ?? {}), ...(raw.sources ?? {}) })) {
272
+ if (node.resource_type !== 'model' && node.resource_type !== 'source')
273
+ continue;
274
+ const name = string(node.alias) ?? string(node.identifier) ?? string(node.name);
275
+ if (!name)
276
+ continue;
277
+ const relation = [string(node.database), string(node.schema), name].filter(Boolean).join('.');
278
+ const columns = new Map();
279
+ for (const [columnName, rawColumn] of Object.entries(record(node.columns))) {
280
+ columns.set(columnName.toLowerCase(), { description: string(record(rawColumn).description) });
281
+ }
282
+ nodes.push({
283
+ uniqueId,
284
+ name,
285
+ relation,
286
+ description: string(node.description),
287
+ sourcePath: string(node.original_file_path) ?? string(node.path),
288
+ columns,
289
+ });
290
+ }
291
+ return nodes.sort((a, b) => a.uniqueId.localeCompare(b.uniqueId));
292
+ }
293
+ function matchDbtEntity(entity, nodes) {
294
+ const ref = entity.binding?.ref;
295
+ const candidate = normalizeRef(ref || entity.name);
296
+ const exactId = nodes.filter((node) => normalizeRef(node.uniqueId) === candidate);
297
+ if (exactId.length === 1)
298
+ return { node: exactId[0] };
299
+ const evidence = nodes.filter((node) => [node.name, node.relation].map(normalizeRef).includes(candidate));
300
+ if (evidence.length === 1)
301
+ return { node: evidence[0] };
302
+ const matches = exactId.length > 1 ? exactId : evidence;
303
+ if (matches.length > 1) {
304
+ return {
305
+ ambiguity: {
306
+ reference: ref || entity.name,
307
+ candidates: matches.map((node) => node.uniqueId).sort(),
308
+ reason: 'Reference matches multiple dbt nodes; use an exact dbt unique_id.',
309
+ },
310
+ };
311
+ }
312
+ return {};
313
+ }
314
+ function dataLexSourceFingerprint(datalexManifestPath, dbtManifestPath) {
315
+ const hash = createHash('sha256');
316
+ for (const path of [datalexManifestPath, dbtManifestPath]) {
317
+ hash.update(path);
318
+ hash.update('\0');
319
+ hash.update(readFileSync(path));
320
+ hash.update('\0');
321
+ }
322
+ return `sha256:${hash.digest('hex')}`;
323
+ }
324
+ function mirroredDbtFields(entity, dbt) {
325
+ const mirrors = [];
326
+ if (entity.description)
327
+ mirrors.push('description');
328
+ for (const field of entity.fields ?? []) {
329
+ if (field.description || field.type || field.nullable !== undefined || field.unique !== undefined || field.primary_key !== undefined) {
330
+ if (dbt.columns.has(field.name.toLowerCase()))
331
+ mirrors.push(`fields.${field.name}`);
332
+ }
333
+ }
334
+ return mirrors;
335
+ }
336
+ function dbtPatchForEntity(entity, dbt) {
337
+ const columns = (entity.fields ?? [])
338
+ .filter((field) => field.description && dbt.columns.has(field.name.toLowerCase()) && dbt.columns.get(field.name.toLowerCase())?.description !== field.description)
339
+ .map((field) => ({ name: field.name, description: field.description }));
340
+ const descriptionChanged = entity.description && entity.description !== dbt.description;
341
+ if (!descriptionChanged && columns.length === 0)
342
+ return undefined;
343
+ return compact({ name: dbt.name, description: descriptionChanged ? entity.description : undefined, columns: columns.length > 0 ? columns : undefined });
344
+ }
345
+ function compact(value) {
346
+ return Object.fromEntries(Object.entries(value).filter(([, candidate]) => candidate !== undefined && candidate !== null && candidate !== ''));
347
+ }
348
+ function record(value) {
349
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
350
+ }
351
+ function string(value) {
352
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
353
+ }
354
+ function stringArray(value) {
355
+ return Array.isArray(value) ? value.filter((candidate) => typeof candidate === 'string') : [];
356
+ }
357
+ function entityLookup(domain, entity) {
358
+ return `${domain.toLowerCase()}.${entity.toLowerCase()}`;
359
+ }
360
+ function entityId(domain, entity) {
361
+ return `${slug(domain)}_${slug(entity)}`;
362
+ }
363
+ function slug(value) {
364
+ return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '') || 'unnamed';
365
+ }
366
+ function normalizeRef(value) {
367
+ return value.replace(/^ref\(['"]|['"]\)$/g, '').replace(/["`]/g, '').toLowerCase();
368
+ }
369
+ //# sourceMappingURL=datalex-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datalex-migration.js","sourceRoot":"","sources":["../../src/manifest/datalex-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
1
+ import { type DomainInput } from './domain-writer.js';
2
+ import type { ManifestFanoutPolicy, ManifestRelationshipCardinality, ManifestRelationshipValidationEvidence } from './types.js';
3
+ /** PERF-001 instrumentation: physical dbt JSON parses since the last reset. */
4
+ export declare function resetDbtArtifactReadCount(): void;
5
+ /** PERF-001 instrumentation used by the ignored scale evidence harness. */
6
+ export declare function dbtArtifactReadCount(): number;
7
+ export interface DomainPackageAuthoringInput extends DomainInput {
8
+ id: string;
9
+ exports?: string[];
10
+ }
11
+ /**
12
+ * A Model Area is one focused, reviewable source file inside a Domain Package.
13
+ * It is intentionally not a second semantic model: entities and relationships
14
+ * still compile into the domain-wide graph.
15
+ */
16
+ export interface ModelAreaAuthoringInput {
17
+ id: string;
18
+ domain: string;
19
+ name: string;
20
+ description?: string;
21
+ intentExamples?: string[];
22
+ references?: string[];
23
+ }
24
+ export interface EntityBindingAuthoringInput {
25
+ id: string;
26
+ domain: string;
27
+ dbtModel: string;
28
+ /** Optional focused source area. Omit only for legacy/default model files. */
29
+ areaId?: string;
30
+ businessName?: string;
31
+ businessContext?: string;
32
+ conceptRefs?: string[];
33
+ analyticalRole?: 'event' | 'dimension' | 'snapshot' | 'bridge' | 'unknown';
34
+ status?: 'draft' | 'review' | 'certified' | 'deprecated';
35
+ owner?: string;
36
+ grain?: string;
37
+ keys?: string[];
38
+ }
39
+ export interface RelationshipAuthoringInput {
40
+ id: string;
41
+ domain: string;
42
+ /** Optional focused source area that owns this relationship. */
43
+ areaId?: string;
44
+ from: string;
45
+ to: string;
46
+ keys: Array<{
47
+ from: string;
48
+ to: string;
49
+ }>;
50
+ cardinality: ManifestRelationshipCardinality;
51
+ fanout: ManifestFanoutPolicy;
52
+ status?: 'draft' | 'review' | 'certified' | 'deprecated';
53
+ crossDomain?: boolean;
54
+ owner?: string;
55
+ certifiedAgainst?: {
56
+ from: {
57
+ grain: string;
58
+ keys: string[];
59
+ };
60
+ to: {
61
+ grain: string;
62
+ keys: string[];
63
+ };
64
+ };
65
+ validation?: ManifestRelationshipValidationEvidence;
66
+ ownerDomain?: string;
67
+ verb?: string;
68
+ description?: string;
69
+ rationale?: string;
70
+ roles?: {
71
+ from?: string;
72
+ to?: string;
73
+ };
74
+ optionality?: {
75
+ from: 'required' | 'optional' | 'unknown';
76
+ to: 'required' | 'optional' | 'unknown';
77
+ };
78
+ joinTypes?: Array<'left' | 'inner'>;
79
+ aggregation?: {
80
+ measuresFrom: string[];
81
+ dimensionsFrom: string[];
82
+ requiresPreAggregation?: boolean;
83
+ };
84
+ temporal?: {
85
+ factTime: string;
86
+ validFrom: string;
87
+ validTo?: string;
88
+ openEnded?: boolean;
89
+ };
90
+ attributionBlock?: string;
91
+ importRefs?: string[];
92
+ evidenceExpiresAt?: string;
93
+ }
94
+ export interface ContractAuthoringInput {
95
+ id: string;
96
+ domain: string;
97
+ entities: string[];
98
+ blocks?: string[];
99
+ status?: 'draft' | 'review' | 'certified' | 'deprecated';
100
+ owner?: string;
101
+ requiredEvaluation?: boolean;
102
+ version?: number;
103
+ grain?: string;
104
+ metricRefs?: string[];
105
+ dimensions?: string[];
106
+ allowedFilters?: string[];
107
+ requiredFilters?: string[];
108
+ purpose?: string;
109
+ evaluationRefs?: string[];
110
+ }
111
+ export interface DomainExportAuthoringInput {
112
+ id: string;
113
+ domain: string;
114
+ version?: number;
115
+ entity?: string;
116
+ metrics?: string[];
117
+ blocks?: string[];
118
+ allowedKeys?: string[];
119
+ allowedDimensions?: string[];
120
+ allowedFilters?: string[];
121
+ purposes?: string[];
122
+ consumerDomains?: string[];
123
+ classification?: string;
124
+ contract?: string;
125
+ status?: 'draft' | 'review' | 'certified' | 'deprecated';
126
+ owner?: string;
127
+ }
128
+ export interface DomainImportAuthoringInput {
129
+ id?: string;
130
+ domain: string;
131
+ exportRef: string;
132
+ purpose: string;
133
+ status?: 'draft' | 'review' | 'certified' | 'deprecated';
134
+ owner?: string;
135
+ }
136
+ export type ModelingAuthoringChange = {
137
+ operation: 'upsert_domain';
138
+ value: DomainPackageAuthoringInput;
139
+ } | {
140
+ operation: 'upsert_area';
141
+ value: ModelAreaAuthoringInput;
142
+ } | {
143
+ operation: 'upsert_entity';
144
+ value: EntityBindingAuthoringInput;
145
+ } | {
146
+ operation: 'upsert_relationship';
147
+ value: RelationshipAuthoringInput;
148
+ } | {
149
+ operation: 'upsert_contract';
150
+ value: ContractAuthoringInput;
151
+ } | {
152
+ operation: 'upsert_export';
153
+ value: DomainExportAuthoringInput;
154
+ } | {
155
+ operation: 'upsert_import';
156
+ value: DomainImportAuthoringInput;
157
+ };
158
+ export interface ModelingSourcePatch {
159
+ path: string;
160
+ before: string;
161
+ after: string;
162
+ changed: boolean;
163
+ }
164
+ export interface ModelingChangePreview {
165
+ operation: ModelingAuthoringChange['operation'];
166
+ patches: ModelingSourcePatch[];
167
+ fingerprint: string;
168
+ }
169
+ export interface DbtNodeAuthoringDetail {
170
+ uniqueId: string;
171
+ name: string;
172
+ resourceType: 'model' | 'source';
173
+ relation?: string;
174
+ sourcePath?: string;
175
+ description?: string;
176
+ columns: Array<{
177
+ name: string;
178
+ type?: string;
179
+ description?: string;
180
+ tests: string[];
181
+ }>;
182
+ tests: string[];
183
+ dqlMeta?: {
184
+ grain?: string;
185
+ keys: string[];
186
+ };
187
+ }
188
+ /** A dbt-owned documentation/test edit. DQL only plans and applies a source
189
+ * YAML patch; it never mutates manifest.json or mirrors these fields into a
190
+ * Domain Package. */
191
+ export interface DbtSourceAuthoringInput {
192
+ uniqueId: string;
193
+ description?: string;
194
+ columns?: Array<{
195
+ name: string;
196
+ description?: string;
197
+ tests?: string[];
198
+ }>;
199
+ }
200
+ export interface DbtSourcePatchPreview {
201
+ uniqueId: string;
202
+ patch: ModelingSourcePatch;
203
+ fingerprint: string;
204
+ }
205
+ export declare function previewDbtSourcePatch(dbtProjectRoot: string, manifestPath: string, input: DbtSourceAuthoringInput): DbtSourcePatchPreview;
206
+ export declare function applyDbtSourcePatch(dbtProjectRoot: string, manifestPath: string, input: DbtSourceAuthoringInput, expectedFingerprint: string): DbtSourcePatchPreview;
207
+ export declare function previewModelingChange(projectRoot: string, change: ModelingAuthoringChange): ModelingChangePreview;
208
+ export declare function applyModelingChange(projectRoot: string, change: ModelingAuthoringChange, expectedFingerprint?: string): ModelingChangePreview;
209
+ export declare function loadDbtNodeAuthoringDetail(manifestPath: string, uniqueId: string): DbtNodeAuthoringDetail | undefined;
210
+ //# sourceMappingURL=dbt-first-authoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbt-first-authoring.d.ts","sourceRoot":"","sources":["../../src/manifest/dbt-first-authoring.ts"],"names":[],"mappings":"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"}