@duckcodeailabs/dql-cli 1.6.2 → 1.6.4

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 (91) hide show
  1. package/dist/apps-api.d.ts +25 -0
  2. package/dist/apps-api.d.ts.map +1 -1
  3. package/dist/apps-api.js +682 -0
  4. package/dist/apps-api.js.map +1 -1
  5. package/dist/args.d.ts +1 -0
  6. package/dist/args.d.ts.map +1 -1
  7. package/dist/args.js +4 -0
  8. package/dist/args.js.map +1 -1
  9. package/dist/assets/dql-notebook/assets/{index-60sOoPrg.js → index-BFUUTIWF.js} +657 -638
  10. package/dist/assets/dql-notebook/index.html +1 -1
  11. package/dist/block-studio-import.d.ts +1 -1
  12. package/dist/block-studio-import.d.ts.map +1 -1
  13. package/dist/block-studio-import.js +44 -7
  14. package/dist/block-studio-import.js.map +1 -1
  15. package/dist/commands/import.d.ts.map +1 -1
  16. package/dist/commands/import.js +80 -11
  17. package/dist/commands/import.js.map +1 -1
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +13 -6
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/index.js +13 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/llm/providers/dql-agent-provider.d.ts.map +1 -1
  24. package/dist/llm/providers/dql-agent-provider.js +32 -2
  25. package/dist/llm/providers/dql-agent-provider.js.map +1 -1
  26. package/dist/local-runtime.d.ts +24 -0
  27. package/dist/local-runtime.d.ts.map +1 -1
  28. package/dist/local-runtime.js +493 -62
  29. package/dist/local-runtime.js.map +1 -1
  30. package/dist/package.json +44 -0
  31. package/package.json +12 -12
  32. package/dist/apps-api.test.d.ts +0 -2
  33. package/dist/apps-api.test.d.ts.map +0 -1
  34. package/dist/apps-api.test.js +0 -196
  35. package/dist/apps-api.test.js.map +0 -1
  36. package/dist/args.test.d.ts +0 -2
  37. package/dist/args.test.d.ts.map +0 -1
  38. package/dist/args.test.js +0 -41
  39. package/dist/args.test.js.map +0 -1
  40. package/dist/block-studio-import.test.d.ts +0 -2
  41. package/dist/block-studio-import.test.d.ts.map +0 -1
  42. package/dist/block-studio-import.test.js +0 -168
  43. package/dist/block-studio-import.test.js.map +0 -1
  44. package/dist/commands/build.test.d.ts +0 -2
  45. package/dist/commands/build.test.d.ts.map +0 -1
  46. package/dist/commands/build.test.js +0 -44
  47. package/dist/commands/build.test.js.map +0 -1
  48. package/dist/commands/compile.test.d.ts +0 -2
  49. package/dist/commands/compile.test.d.ts.map +0 -1
  50. package/dist/commands/compile.test.js +0 -115
  51. package/dist/commands/compile.test.js.map +0 -1
  52. package/dist/commands/doctor.test.d.ts +0 -2
  53. package/dist/commands/doctor.test.d.ts.map +0 -1
  54. package/dist/commands/doctor.test.js +0 -44
  55. package/dist/commands/doctor.test.js.map +0 -1
  56. package/dist/commands/init.test.d.ts +0 -2
  57. package/dist/commands/init.test.d.ts.map +0 -1
  58. package/dist/commands/init.test.js +0 -182
  59. package/dist/commands/init.test.js.map +0 -1
  60. package/dist/commands/new.test.d.ts +0 -2
  61. package/dist/commands/new.test.d.ts.map +0 -1
  62. package/dist/commands/new.test.js +0 -297
  63. package/dist/commands/new.test.js.map +0 -1
  64. package/dist/commands/sync.test.d.ts +0 -2
  65. package/dist/commands/sync.test.d.ts.map +0 -1
  66. package/dist/commands/sync.test.js +0 -147
  67. package/dist/commands/sync.test.js.map +0 -1
  68. package/dist/commands/validate.test.d.ts +0 -2
  69. package/dist/commands/validate.test.d.ts.map +0 -1
  70. package/dist/commands/validate.test.js +0 -140
  71. package/dist/commands/validate.test.js.map +0 -1
  72. package/dist/local-runtime.test.d.ts +0 -2
  73. package/dist/local-runtime.test.d.ts.map +0 -1
  74. package/dist/local-runtime.test.js +0 -363
  75. package/dist/local-runtime.test.js.map +0 -1
  76. package/dist/metricflow.test.d.ts +0 -2
  77. package/dist/metricflow.test.d.ts.map +0 -1
  78. package/dist/metricflow.test.js +0 -54
  79. package/dist/metricflow.test.js.map +0 -1
  80. package/dist/promote-from-draft.test.d.ts +0 -2
  81. package/dist/promote-from-draft.test.d.ts.map +0 -1
  82. package/dist/promote-from-draft.test.js +0 -149
  83. package/dist/promote-from-draft.test.js.map +0 -1
  84. package/dist/semantic-import.test.d.ts +0 -2
  85. package/dist/semantic-import.test.d.ts.map +0 -1
  86. package/dist/semantic-import.test.js +0 -95
  87. package/dist/semantic-import.test.js.map +0 -1
  88. package/dist/template-adoption.test.d.ts +0 -2
  89. package/dist/template-adoption.test.d.ts.map +0 -1
  90. package/dist/template-adoption.test.js +0 -105
  91. package/dist/template-adoption.test.js.map +0 -1
@@ -1,115 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { mkdtempSync, writeFileSync, readFileSync, mkdirSync, rmSync } from 'node:fs';
3
- import { tmpdir } from 'node:os';
4
- import { join } from 'node:path';
5
- import { ManifestCache } from '@duckcodeailabs/dql-project';
6
- import { collectInputFiles } from '@duckcodeailabs/dql-core';
7
- import { runCompile } from './compile.js';
8
- const baseFlags = {
9
- format: 'text',
10
- verbose: false,
11
- help: false,
12
- version: false,
13
- check: false,
14
- open: null,
15
- input: '',
16
- outDir: '',
17
- port: null,
18
- chart: '',
19
- domain: '',
20
- owner: '',
21
- queryOnly: false,
22
- template: '',
23
- connection: '',
24
- skipTests: false,
25
- };
26
- function seedProject() {
27
- const projectRoot = mkdtempSync(join(tmpdir(), 'dql-compile-'));
28
- writeFileSync(join(projectRoot, 'dql.config.json'), JSON.stringify({ project: 'demo' }));
29
- mkdirSync(join(projectRoot, 'blocks'), { recursive: true });
30
- writeFileSync(join(projectRoot, 'blocks', 'revenue.dql'), `block "Revenue" {
31
- domain = "sales"
32
- type = "custom"
33
- query = """SELECT SUM(amount) AS revenue FROM orders"""
34
- }`);
35
- return projectRoot;
36
- }
37
- describe('runCompile cache integration', () => {
38
- it('populates the SQLite cache and serves the next compile from it', async () => {
39
- const projectRoot = seedProject();
40
- try {
41
- // First compile — cold miss, builds and writes to cache.
42
- await runCompile(projectRoot, [], baseFlags);
43
- const manifestPath = join(projectRoot, 'dql-manifest.json');
44
- const firstManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
45
- expect(firstManifest.blocks).toHaveProperty('Revenue');
46
- // Cache file should exist and contain a hit for the current fingerprint.
47
- const cachePath = join(projectRoot, '.dql', 'cache', 'manifest.sqlite');
48
- const cache = new ManifestCache({ path: cachePath });
49
- try {
50
- const files = collectInputFiles({ projectRoot }).map((path) => ({ path }));
51
- const fp = cache.fingerprint(files);
52
- const lookup = cache.lookup(fp, files);
53
- expect(lookup.hit).toBe(true);
54
- if (lookup.hit) {
55
- expect(lookup.value.blocks).toHaveProperty('Revenue');
56
- }
57
- }
58
- finally {
59
- cache.close();
60
- }
61
- }
62
- finally {
63
- rmSync(projectRoot, { recursive: true, force: true });
64
- }
65
- });
66
- it('invalidates the cache entry when a tracked file changes', async () => {
67
- const projectRoot = seedProject();
68
- try {
69
- await runCompile(projectRoot, [], baseFlags);
70
- const cachePath = join(projectRoot, '.dql', 'cache', 'manifest.sqlite');
71
- const files1 = collectInputFiles({ projectRoot }).map((path) => ({ path }));
72
- let fp1;
73
- {
74
- const cache = new ManifestCache({ path: cachePath });
75
- fp1 = cache.fingerprint(files1);
76
- expect(cache.lookup(fp1, files1).hit).toBe(true);
77
- cache.close();
78
- }
79
- // Mutate a tracked block — fingerprint must change → miss under fp1.
80
- writeFileSync(join(projectRoot, 'blocks', 'revenue.dql'), `block "Revenue" {
81
- domain = "sales"
82
- type = "custom"
83
- query = """SELECT COUNT(*) AS revenue FROM orders"""
84
- }`);
85
- {
86
- const cache = new ManifestCache({ path: cachePath });
87
- const files2 = collectInputFiles({ projectRoot }).map((path) => ({ path }));
88
- const fp2 = cache.fingerprint(files2);
89
- expect(fp2).not.toBe(fp1);
90
- const lookup = cache.lookup(fp2, files2);
91
- expect(lookup.hit).toBe(false);
92
- if (!lookup.hit) {
93
- // Diff should report the block file as changed.
94
- expect(lookup.changedFiles).toContain(join(projectRoot, 'blocks', 'revenue.dql'));
95
- }
96
- cache.close();
97
- }
98
- }
99
- finally {
100
- rmSync(projectRoot, { recursive: true, force: true });
101
- }
102
- });
103
- it('--no-cache skips the cache entirely (no .dql/cache directory created)', async () => {
104
- const projectRoot = seedProject();
105
- try {
106
- await runCompile(projectRoot, ['--no-cache'], baseFlags);
107
- expect(() => readFileSync(join(projectRoot, '.dql', 'cache', 'manifest.sqlite')))
108
- .toThrow();
109
- }
110
- finally {
111
- rmSync(projectRoot, { recursive: true, force: true });
112
- }
113
- });
114
- });
115
- //# sourceMappingURL=compile.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/commands/compile.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=doctor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.test.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { tmpdir } from 'node:os';
4
- import { describe, expect, it, vi } from 'vitest';
5
- import { runDoctor } from './doctor.js';
6
- describe('runDoctor', () => {
7
- it('reports health for a starter-like project', async () => {
8
- const projectDir = mkdtempSync(join(tmpdir(), 'dql-doctor-'));
9
- mkdirSync(join(projectDir, 'blocks'));
10
- mkdirSync(join(projectDir, 'semantic-layer'));
11
- mkdirSync(join(projectDir, 'data'));
12
- writeFileSync(join(projectDir, 'dql.config.json'), JSON.stringify({
13
- defaultConnection: { driver: 'file', filepath: ':memory:' },
14
- }, null, 2));
15
- writeFileSync(join(projectDir, 'package.json'), JSON.stringify({
16
- dependencies: { duckdb: '^1.1.0' },
17
- }, null, 2));
18
- const spy = vi.spyOn(console, 'log').mockImplementation(() => { });
19
- await runDoctor(projectDir, {
20
- check: false,
21
- chart: '',
22
- domain: '',
23
- format: 'text',
24
- help: false,
25
- open: null,
26
- input: '',
27
- outDir: '',
28
- owner: '',
29
- port: null,
30
- queryOnly: false,
31
- template: 'starter',
32
- connection: '',
33
- verbose: false,
34
- skipTests: false, version: false,
35
- });
36
- expect(spy).toHaveBeenCalled();
37
- const output = spy.mock.calls.flat().join('\n');
38
- expect(output).toContain('DQL Doctor');
39
- expect(output).toContain('blocks/');
40
- expect(output).not.toContain('add duckdb for file/duckdb local preview support');
41
- spy.mockRestore();
42
- });
43
- });
44
- //# sourceMappingURL=doctor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;QAC9D,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC9C,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YAChE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE;SAC5D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YAC7D,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SACnC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEb,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAElE,MAAM,SAAS,CAAC,UAAU,EAAE;YAC1B,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;SACjC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;QACjF,GAAG,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=init.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":""}
@@ -1,182 +0,0 @@
1
- import { mkdirSync, mkdtempSync, readFileSync, readdirSync, writeFileSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { tmpdir } from 'node:os';
4
- import { describe, expect, it } from 'vitest';
5
- import { runInit } from './init.js';
6
- const DBT_SEMANTIC_YAML = `semantic_models:
7
- - name: orders
8
- model: ref('fct_orders')
9
- defaults:
10
- agg_time_dimension: ordered_at
11
- entities:
12
- - name: order
13
- type: primary
14
- expr: order_id
15
- dimensions:
16
- - name: ordered_at
17
- type: time
18
- type_params:
19
- time_granularity: day
20
- measures:
21
- - name: order_total
22
- agg: sum
23
- expr: order_total
24
- metrics:
25
- - name: order_total
26
- type: simple
27
- type_params:
28
- measure: order_total
29
- `;
30
- describe('runInit', () => {
31
- it('scaffolds a DQL project with config, blocks dir, and notebook', async () => {
32
- const targetDir = mkdtempSync(join(tmpdir(), 'dql-init-'));
33
- const projectDir = join(targetDir, 'demo-project');
34
- await runInit(projectDir, {
35
- check: false,
36
- chart: '',
37
- domain: '',
38
- format: 'json',
39
- help: false,
40
- open: null,
41
- input: '',
42
- outDir: '',
43
- owner: '',
44
- port: null,
45
- queryOnly: false,
46
- template: '',
47
- connection: '',
48
- verbose: false,
49
- skipTests: false, version: false,
50
- });
51
- const contents = readdirSync(projectDir);
52
- expect(contents).toContain('apps');
53
- expect(contents).toContain('blocks');
54
- expect(contents).toContain('terms');
55
- expect(contents).toContain('business-views');
56
- expect(contents).toContain('dql.config.json');
57
- expect(contents).toContain('notebooks');
58
- const config = readFileSync(join(projectDir, 'dql.config.json'), 'utf-8');
59
- expect(config).toContain('demo-project');
60
- expect(config).toContain('duckdb');
61
- const notebook = readFileSync(join(projectDir, 'notebooks', 'welcome.dqlnb'), 'utf-8');
62
- expect(notebook).toContain('DQL');
63
- });
64
- it('detects a Jaffle Shop-style dbt project and DuckDB file', async () => {
65
- const projectDir = mkdtempSync(join(tmpdir(), 'dql-init-dbt-'));
66
- writeFileSync(join(projectDir, 'dbt_project.yml'), 'name: "jaffle_shop"\n');
67
- writeFileSync(join(projectDir, 'jaffle_shop.duckdb'), '');
68
- await runInit(projectDir, {
69
- check: false,
70
- chart: '',
71
- domain: '',
72
- format: 'json',
73
- help: false,
74
- open: null,
75
- input: '',
76
- outDir: '',
77
- owner: '',
78
- port: null,
79
- queryOnly: false,
80
- template: '',
81
- connection: '',
82
- verbose: false,
83
- skipTests: false, version: false,
84
- });
85
- const config = JSON.parse(readFileSync(join(projectDir, 'dql.config.json'), 'utf-8'));
86
- expect(config.connections.default.filepath).toBe('jaffle_shop.duckdb');
87
- expect(config.semanticLayer.provider).toBe('dbt');
88
- expect(config.semanticLayer.projectPath).toBe('.');
89
- expect(readdirSync(projectDir)).not.toContain('semantic-layer');
90
- });
91
- it('keeps DQL isolated under ./dql while wiring to a parent dbt repo', async () => {
92
- const repoDir = mkdtempSync(join(tmpdir(), 'dql-init-dbt-parent-'));
93
- const dqlDir = join(repoDir, 'dql');
94
- writeFileSync(join(repoDir, 'dbt_project.yml'), 'name: "jaffle_shop"\n');
95
- await runInit(dqlDir, {
96
- check: false,
97
- chart: '',
98
- domain: '',
99
- format: 'json',
100
- help: false,
101
- open: null,
102
- input: '',
103
- outDir: '',
104
- owner: '',
105
- port: null,
106
- queryOnly: false,
107
- template: '',
108
- connection: '',
109
- verbose: false,
110
- skipTests: false, version: false,
111
- });
112
- const config = JSON.parse(readFileSync(join(dqlDir, 'dql.config.json'), 'utf-8'));
113
- const contents = readdirSync(dqlDir);
114
- expect(contents).toContain('apps');
115
- expect(contents).toContain('blocks');
116
- expect(contents).toContain('terms');
117
- expect(contents).toContain('business-views');
118
- expect(contents).toContain('notebooks');
119
- expect(config.semanticLayer).toEqual({ provider: 'dbt', projectPath: '..' });
120
- expect(config.dbt).toEqual({ projectDir: '..', manifestPath: 'target/manifest.json' });
121
- });
122
- it('auto-imports dbt semantic definitions into local semantic-layer YAML on init', async () => {
123
- const projectDir = mkdtempSync(join(tmpdir(), 'dql-init-dbt-semantic-'));
124
- const metricsDir = join(projectDir, 'models', 'metrics');
125
- mkdirSync(metricsDir, { recursive: true });
126
- writeFileSync(join(projectDir, 'dbt_project.yml'), 'name: "jaffle_shop"\n');
127
- writeFileSync(join(projectDir, 'jaffle_shop.duckdb'), '');
128
- writeFileSync(join(metricsDir, 'orders.yml'), DBT_SEMANTIC_YAML);
129
- await runInit(projectDir, {
130
- check: false,
131
- chart: '',
132
- domain: '',
133
- format: 'json',
134
- help: false,
135
- open: null,
136
- input: '',
137
- outDir: '',
138
- owner: '',
139
- port: null,
140
- queryOnly: false,
141
- template: '',
142
- connection: '',
143
- verbose: false,
144
- skipTests: false, version: false,
145
- });
146
- const config = JSON.parse(readFileSync(join(projectDir, 'dql.config.json'), 'utf-8'));
147
- expect(config.semanticLayer.provider).toBe('dql');
148
- expect(config.semanticLayer.path).toBe('./semantic-layer');
149
- expect(readdirSync(projectDir)).toContain('semantic-layer');
150
- expect(readFileSync(join(projectDir, 'semantic-layer', 'imports', 'manifest.json'), 'utf-8')).toContain('"provider": "dbt"');
151
- });
152
- it('imports parent dbt semantic definitions when DQL is isolated under ./dql', async () => {
153
- const repoDir = mkdtempSync(join(tmpdir(), 'dql-init-dbt-parent-semantic-'));
154
- const dqlDir = join(repoDir, 'dql');
155
- const metricsDir = join(repoDir, 'models', 'metrics');
156
- mkdirSync(metricsDir, { recursive: true });
157
- writeFileSync(join(repoDir, 'dbt_project.yml'), 'name: "jaffle_shop"\n');
158
- writeFileSync(join(metricsDir, 'orders.yml'), DBT_SEMANTIC_YAML);
159
- await runInit(dqlDir, {
160
- check: false,
161
- chart: '',
162
- domain: '',
163
- format: 'json',
164
- help: false,
165
- open: null,
166
- input: '',
167
- outDir: '',
168
- owner: '',
169
- port: null,
170
- queryOnly: false,
171
- template: '',
172
- connection: '',
173
- verbose: false,
174
- skipTests: false, version: false,
175
- });
176
- const config = JSON.parse(readFileSync(join(dqlDir, 'dql.config.json'), 'utf-8'));
177
- expect(config.semanticLayer.provider).toBe('dql');
178
- expect(config.semanticLayer.path).toBe('./semantic-layer');
179
- expect(readFileSync(join(dqlDir, 'semantic-layer', 'imports', 'manifest.json'), 'utf-8')).toContain('"provider": "dbt"');
180
- });
181
- });
182
- //# sourceMappingURL=init.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=new.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new.test.d.ts","sourceRoot":"","sources":["../../src/commands/new.test.ts"],"names":[],"mappings":""}