@duckcodeailabs/dql-cli 0.1.1 → 0.1.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 (55) hide show
  1. package/dist/assets/notebook-browser/app.js +548 -0
  2. package/dist/assets/notebook-browser/index.html +83 -0
  3. package/dist/assets/notebook-browser/styles.css +336 -0
  4. package/dist/assets/templates/ecommerce/README.md +27 -0
  5. package/dist/assets/templates/ecommerce/blocks/repeat_rate.dql +26 -0
  6. package/dist/assets/templates/ecommerce/blocks/revenue_by_segment.dql +24 -0
  7. package/dist/assets/templates/ecommerce/dashboards/revenue_command_center.dql +25 -0
  8. package/dist/assets/templates/ecommerce/data/customers.csv +11 -0
  9. package/dist/assets/templates/ecommerce/data/funnel.csv +6 -0
  10. package/dist/assets/templates/ecommerce/data/orders.csv +16 -0
  11. package/dist/assets/templates/ecommerce/dql.config.json +13 -0
  12. package/dist/assets/templates/ecommerce/semantic-layer/dimensions/channel.yaml +4 -0
  13. package/dist/assets/templates/ecommerce/semantic-layer/metrics/gmv.yaml +4 -0
  14. package/dist/assets/templates/ecommerce/workbooks/.gitkeep +1 -0
  15. package/dist/assets/templates/saas/README.md +20 -0
  16. package/dist/assets/templates/saas/blocks/churn_pressure.dql +25 -0
  17. package/dist/assets/templates/saas/blocks/revenue_by_segment.dql +25 -0
  18. package/dist/assets/templates/saas/dashboards/growth_scorecard.dql +25 -0
  19. package/dist/assets/templates/saas/data/cohorts.csv +7 -0
  20. package/dist/assets/templates/saas/data/subscriptions.csv +13 -0
  21. package/dist/assets/templates/saas/dql.config.json +13 -0
  22. package/dist/assets/templates/saas/semantic-layer/metrics/mrr.yaml +4 -0
  23. package/dist/assets/templates/saas/workbooks/.gitkeep +1 -0
  24. package/dist/assets/templates/starter/README.md +54 -0
  25. package/dist/assets/templates/starter/blocks/revenue_by_segment.dql +29 -0
  26. package/dist/assets/templates/starter/blocks/revenue_trend_query_only.dql +20 -0
  27. package/dist/assets/templates/starter/dashboards/.gitkeep +1 -0
  28. package/dist/assets/templates/starter/data/revenue.csv +13 -0
  29. package/dist/assets/templates/starter/dql.config.json +13 -0
  30. package/dist/assets/templates/starter/semantic-layer/blocks/revenue_by_segment.yaml +11 -0
  31. package/dist/assets/templates/starter/semantic-layer/dimensions/segment_tier.yaml +6 -0
  32. package/dist/assets/templates/starter/semantic-layer/hierarchies/revenue_time.yaml +12 -0
  33. package/dist/assets/templates/starter/semantic-layer/metrics/revenue.yaml +7 -0
  34. package/dist/assets/templates/starter/workbooks/.gitkeep +1 -0
  35. package/dist/assets/templates/taxi/README.md +19 -0
  36. package/dist/assets/templates/taxi/blocks/airport_mix.dql +25 -0
  37. package/dist/assets/templates/taxi/blocks/revenue_by_segment.dql +24 -0
  38. package/dist/assets/templates/taxi/dashboards/city_operations.dql +25 -0
  39. package/dist/assets/templates/taxi/data/trips.csv +13 -0
  40. package/dist/assets/templates/taxi/dql.config.json +13 -0
  41. package/dist/assets/templates/taxi/semantic-layer/.gitkeep +1 -0
  42. package/dist/assets/templates/taxi/workbooks/.gitkeep +1 -0
  43. package/dist/commands/init.d.ts.map +1 -1
  44. package/dist/commands/init.js +3 -1
  45. package/dist/commands/init.js.map +1 -1
  46. package/dist/commands/notebook.d.ts.map +1 -1
  47. package/dist/commands/notebook.js +8 -2
  48. package/dist/commands/notebook.js.map +1 -1
  49. package/dist/local-runtime.d.ts +6 -0
  50. package/dist/local-runtime.d.ts.map +1 -1
  51. package/dist/local-runtime.js +65 -9
  52. package/dist/local-runtime.js.map +1 -1
  53. package/dist/local-runtime.test.js +24 -1
  54. package/dist/local-runtime.test.js.map +1 -1
  55. package/package.json +8 -8
@@ -0,0 +1,54 @@
1
+ # __PROJECT_NAME__
2
+
3
+ This starter gives you a local-first DQL project that is ready for parsing,
4
+ previewing, notebook exploration, and experimentation.
5
+
6
+ ```text
7
+ blocks/
8
+ dashboards/
9
+ data/
10
+ dql.config.json
11
+ notebooks/
12
+ workbooks/
13
+ semantic-layer/
14
+ metrics/
15
+ dimensions/
16
+ hierarchies/
17
+ blocks/
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ```bash
23
+ dql doctor
24
+ dql notebook
25
+ dql new block "Pipeline Health"
26
+ dql new semantic-block "ARR Growth"
27
+ dql new dashboard "Revenue Overview"
28
+ dql new workbook "Quarterly Review"
29
+ dql parse blocks/pipeline_health.dql
30
+ dql preview blocks/pipeline_health.dql --open
31
+ dql build blocks/pipeline_health.dql
32
+ dql serve dist/pipeline_health
33
+ ```
34
+
35
+ ## What's Included
36
+
37
+ - `blocks/` — example charted and query-only DQL blocks
38
+ - `dashboards/` — empty folder for dashboard scaffolds
39
+ - `data/` — sample revenue CSV for local DuckDB/file preview flows
40
+ - `dql.config.json` — starter project configuration
41
+ - `notebooks/welcome.dqlnb` — guided notebook walkthrough for the browser notebook
42
+ - `workbooks/` — empty folder for workbook scaffolds
43
+ - `semantic-layer/` — example metrics, dimensions, hierarchies, and companion metadata
44
+
45
+ ## Adopt the Starter Safely
46
+
47
+ - start in local file mode first
48
+ - keep sample datasets under `data/`
49
+ - run `dql doctor` before previewing if setup feels off
50
+ - add tests to every reusable block
51
+
52
+ ## Learn More
53
+
54
+ - See the main DQL documentation for `project-config` and `data-sources` guidance.
@@ -0,0 +1,29 @@
1
+ block "Revenue by Segment" {
2
+ domain = "revenue"
3
+ type = "custom"
4
+ description = "Starter block for segment revenue analysis using local CSV sample data"
5
+ tags = ["starter", "revenue"]
6
+ owner = "template"
7
+
8
+ params {
9
+ period = "current_quarter"
10
+ }
11
+
12
+ query = """
13
+ SELECT segment_tier AS segment, SUM(amount) AS revenue
14
+ FROM read_csv_auto('./data/revenue.csv')
15
+ WHERE fiscal_period = ${period}
16
+ GROUP BY segment_tier
17
+ ORDER BY revenue DESC
18
+ """
19
+
20
+ visualization {
21
+ chart = "bar"
22
+ x = segment
23
+ y = revenue
24
+ }
25
+
26
+ tests {
27
+ assert row_count > 0
28
+ }
29
+ }
@@ -0,0 +1,20 @@
1
+ block "Revenue Trend Query" {
2
+ domain = "revenue"
3
+ type = "custom"
4
+ description = "Starter query-only block for monthly revenue trends using local CSV sample data"
5
+ tags = ["starter", "revenue", "query-only"]
6
+ owner = "template"
7
+
8
+ query = """
9
+ SELECT
10
+ DATE_TRUNC('month', CAST(recognized_at AS DATE)) AS revenue_month,
11
+ SUM(amount) AS total_revenue
12
+ FROM read_csv_auto('./data/revenue.csv')
13
+ GROUP BY 1
14
+ ORDER BY 1
15
+ """
16
+
17
+ tests {
18
+ assert row_count > 0
19
+ }
20
+ }
@@ -0,0 +1,13 @@
1
+ recognized_at,segment_tier,amount,fiscal_period,fiscal_year,fiscal_quarter
2
+ 2025-01-03,Enterprise,185000,current_quarter,2025,Q1
3
+ 2025-01-14,Mid-Market,92000,current_quarter,2025,Q1
4
+ 2025-01-25,SMB,28000,current_quarter,2025,Q1
5
+ 2025-02-05,Enterprise,210000,current_quarter,2025,Q1
6
+ 2025-02-09,Mid-Market,101000,current_quarter,2025,Q1
7
+ 2025-02-18,SMB,31000,current_quarter,2025,Q1
8
+ 2025-03-02,Enterprise,223000,current_quarter,2025,Q1
9
+ 2025-03-11,Mid-Market,108000,current_quarter,2025,Q1
10
+ 2025-03-19,SMB,34000,current_quarter,2025,Q1
11
+ 2025-04-07,Enterprise,205000,next_quarter,2025,Q2
12
+ 2025-04-16,Mid-Market,99000,next_quarter,2025,Q2
13
+ 2025-04-23,SMB,29000,next_quarter,2025,Q2
@@ -0,0 +1,13 @@
1
+ {
2
+ "project": "__PROJECT_NAME__",
3
+ "defaultConnection": {
4
+ "driver": "file",
5
+ "filepath": ":memory:"
6
+ },
7
+ "dataDir": "./data",
8
+ "preview": {
9
+ "port": 3474,
10
+ "open": true,
11
+ "theme": "dark"
12
+ }
13
+ }
@@ -0,0 +1,11 @@
1
+ name: revenue_by_segment
2
+ block: revenue_by_segment
3
+ domain: revenue
4
+ description: Optional companion metadata for the starter block
5
+ tags:
6
+ - revenue
7
+ - starter
8
+ semanticMappings:
9
+ segment: segment_tier
10
+ revenue: total_revenue
11
+ reviewStatus: draft
@@ -0,0 +1,6 @@
1
+ name: segment_tier
2
+ label: Segment Tier
3
+ description: Customer segment tier
4
+ sql: segment_tier
5
+ type: string
6
+ table: fct_revenue
@@ -0,0 +1,12 @@
1
+ name: revenue_time
2
+ label: Revenue Time
3
+ description: Example fiscal calendar hierarchy
4
+ domain: revenue
5
+ levels:
6
+ - name: fiscal_year
7
+ dimension: fiscal_year
8
+ order: 1
9
+ - name: fiscal_quarter
10
+ dimension: fiscal_quarter
11
+ order: 2
12
+ defaultRollup: sum
@@ -0,0 +1,7 @@
1
+ name: total_revenue
2
+ label: Total Revenue
3
+ description: Sum of recognized revenue
4
+ domain: revenue
5
+ sql: SUM(amount)
6
+ type: sum
7
+ table: fct_revenue
@@ -0,0 +1,19 @@
1
+ # __PROJECT_NAME__
2
+
3
+ This template packages a city mobility analytics sandbox with taxi trip data.
4
+
5
+ ## Included assets
6
+
7
+ - `blocks/revenue_by_segment.dql` — trip volume by pickup borough
8
+ - `blocks/airport_mix.dql` — airport trip fare mix
9
+ - `dashboards/city_operations.dql` — operations dashboard with fares and trip counts
10
+ - `data/trips.csv` — local taxi trip sample dataset
11
+ - `notebooks/welcome.dqlnb` — browser notebook walkthrough
12
+
13
+ ## Quick start
14
+
15
+ ```bash
16
+ dql doctor
17
+ dql notebook
18
+ dql preview blocks/revenue_by_segment.dql --open
19
+ ```
@@ -0,0 +1,25 @@
1
+ block "Airport Fare Mix" {
2
+ domain = "mobility"
3
+ type = "custom"
4
+ description = "Average fare for airport versus non-airport trips"
5
+ tags = ["taxi", "airport"]
6
+ owner = "template"
7
+
8
+ query = """
9
+ SELECT CASE WHEN airport_flag THEN 'Airport' ELSE 'City' END AS trip_type,
10
+ ROUND(AVG(fare_amount), 2) AS avg_fare
11
+ FROM read_csv_auto('./data/trips.csv')
12
+ GROUP BY trip_type
13
+ ORDER BY avg_fare DESC
14
+ """
15
+
16
+ visualization {
17
+ chart = "bar"
18
+ x = trip_type
19
+ y = avg_fare
20
+ }
21
+
22
+ tests {
23
+ assert row_count > 0
24
+ }
25
+ }
@@ -0,0 +1,24 @@
1
+ block "Trips by Borough" {
2
+ domain = "mobility"
3
+ type = "custom"
4
+ description = "Trip count by pickup borough"
5
+ tags = ["taxi", "operations"]
6
+ owner = "template"
7
+
8
+ query = """
9
+ SELECT pickup_borough, COUNT(*) AS revenue
10
+ FROM read_csv_auto('./data/trips.csv')
11
+ GROUP BY pickup_borough
12
+ ORDER BY revenue DESC
13
+ """
14
+
15
+ visualization {
16
+ chart = "bar"
17
+ x = pickup_borough
18
+ y = revenue
19
+ }
20
+
21
+ tests {
22
+ assert row_count > 0
23
+ }
24
+ }
@@ -0,0 +1,25 @@
1
+ dashboard "City Operations" {
2
+ chart.kpi(
3
+ SELECT COUNT(*) AS total_trips
4
+ FROM read_csv_auto('./data/trips.csv'),
5
+ metrics = ["total_trips"],
6
+ title = "Total Trips"
7
+ )
8
+
9
+ chart.line(
10
+ SELECT pickup_hour, ROUND(AVG(fare_amount), 2) AS avg_fare
11
+ FROM read_csv_auto('./data/trips.csv')
12
+ GROUP BY pickup_hour
13
+ ORDER BY pickup_hour,
14
+ x = pickup_hour,
15
+ y = avg_fare,
16
+ title = "Average Fare by Hour"
17
+ )
18
+
19
+ chart.table(
20
+ SELECT pickup_date, pickup_borough, dropoff_borough, trip_miles, fare_amount, tip_amount
21
+ FROM read_csv_auto('./data/trips.csv')
22
+ ORDER BY fare_amount DESC,
23
+ title = "Highest Fare Trips"
24
+ )
25
+ }
@@ -0,0 +1,13 @@
1
+ trip_id,pickup_date,pickup_hour,pickup_borough,dropoff_borough,payment_type,fare_amount,tip_amount,trip_miles,airport_flag
2
+ T-001,2025-01-03,6,Manhattan,Queens,Card,32.5,6.2,8.4,true
3
+ T-002,2025-01-03,7,Brooklyn,Manhattan,Card,21.4,4.1,5.6,false
4
+ T-003,2025-01-04,8,Queens,Manhattan,Cash,27.8,0,7.1,true
5
+ T-004,2025-01-04,9,Manhattan,Brooklyn,Card,18.9,3.7,4.9,false
6
+ T-005,2025-01-05,11,Bronx,Manhattan,Card,25.7,5.1,6.8,false
7
+ T-006,2025-01-05,12,Manhattan,Queens,Card,34.2,6.8,8.9,true
8
+ T-007,2025-01-06,13,Queens,Brooklyn,Card,19.3,3.5,5.2,false
9
+ T-008,2025-01-06,15,Manhattan,Manhattan,Card,14.6,3.2,2.8,false
10
+ T-009,2025-01-07,17,Brooklyn,Queens,Cash,16.8,0,4.1,false
11
+ T-010,2025-01-07,18,Manhattan,Staten Island,Card,41.1,7.4,12.3,false
12
+ T-011,2025-01-08,19,Queens,Manhattan,Card,29.6,5.9,7.7,true
13
+ T-012,2025-01-08,21,Brooklyn,Manhattan,Card,22.1,4.6,5.9,false
@@ -0,0 +1,13 @@
1
+ {
2
+ "project": "__PROJECT_NAME__",
3
+ "defaultConnection": {
4
+ "driver": "file",
5
+ "filepath": ":memory:"
6
+ },
7
+ "dataDir": "./data",
8
+ "preview": {
9
+ "port": 3474,
10
+ "open": true,
11
+ "theme": "dark"
12
+ }
13
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgB3C,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DtF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB3C,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DtF"}
@@ -4,7 +4,9 @@ import { fileURLToPath } from 'node:url';
4
4
  import { createWelcomeNotebook, serializeNotebook } from '@duckcodeailabs/dql-notebook';
5
5
  import { runNotebook } from './notebook.js';
6
6
  const COMMAND_DIR = dirname(fileURLToPath(import.meta.url));
7
- const TEMPLATE_ROOT = resolve(COMMAND_DIR, '../../../../templates');
7
+ const PACKAGED_TEMPLATE_ROOT = resolve(COMMAND_DIR, '../assets/templates');
8
+ const REPO_TEMPLATE_ROOT = resolve(COMMAND_DIR, '../../../../templates');
9
+ const TEMPLATE_ROOT = existsSync(PACKAGED_TEMPLATE_ROOT) ? PACKAGED_TEMPLATE_ROOT : REPO_TEMPLATE_ROOT;
8
10
  const TEXT_FILE_EXTENSIONS = new Set([
9
11
  '.json',
10
12
  '.md',
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAY3C,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB1F"}
1
+ {"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAc3C,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B1F"}
@@ -1,13 +1,19 @@
1
- import { dirname, resolve } from 'node:path';
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
2
3
  import { fileURLToPath } from 'node:url';
3
4
  import { QueryExecutor } from '@duckcodeailabs/dql-connectors';
4
5
  import { assertLocalQueryRuntimeReady, findProjectRoot, loadProjectConfig, startLocalServer, } from '../local-runtime.js';
5
6
  import { maybeOpenBrowser } from '../open-browser.js';
6
7
  const COMMAND_DIR = dirname(fileURLToPath(import.meta.url));
7
- const NOTEBOOK_APP_DIR = resolve(COMMAND_DIR, '../../../../apps/notebook-browser');
8
+ const PACKAGED_NOTEBOOK_APP_DIR = resolve(COMMAND_DIR, '../assets/notebook-browser');
9
+ const REPO_NOTEBOOK_APP_DIR = resolve(COMMAND_DIR, '../../../../apps/notebook-browser');
10
+ const NOTEBOOK_APP_DIR = existsSync(PACKAGED_NOTEBOOK_APP_DIR) ? PACKAGED_NOTEBOOK_APP_DIR : REPO_NOTEBOOK_APP_DIR;
8
11
  export async function runNotebook(targetArg, flags) {
9
12
  const baseDir = resolve(targetArg ?? '.');
10
13
  const projectRoot = findProjectRoot(baseDir);
14
+ if (!existsSync(join(projectRoot, 'dql.config.json'))) {
15
+ throw new Error(`No DQL project was found at "${baseDir}". Run "dql notebook" from a project root, or pass a project path such as "dql notebook ./my-dql-project".`);
16
+ }
11
17
  const config = loadProjectConfig(projectRoot);
12
18
  const executor = new QueryExecutor();
13
19
  const connection = config.defaultConnection ?? { driver: 'file', filepath: ':memory:' };
@@ -1 +1 @@
1
- {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAwB,EAAE,KAAe;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,MAAM,EAAE,MAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEjG,MAAM,4BAA4B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,OAAO,EAAE,gBAAgB;QACzB,WAAW;QACX,QAAQ;QACR,UAAU;QACV,aAAa,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;KAC1D,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;IACvC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/commands/notebook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,MAAM,yBAAyB,GAAG,OAAO,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;AACrF,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;AACxF,MAAM,gBAAgB,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAEnH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAwB,EAAE,KAAe;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,4GAA4G,CACpJ,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,MAAM,EAAE,MAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEjG,MAAM,4BAA4B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,OAAO,EAAE,gBAAgB;QACzB,WAAW;QACX,QAAQ;QACR,UAAU;QACV,aAAa,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;KAC1D,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;IACvC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -22,4 +22,10 @@ export declare function formatLocalQueryRuntimeError(connection: ConnectionConfi
22
22
  export declare function serializeJSON(value: unknown): string;
23
23
  export declare function findProjectRoot(startDir: string): string;
24
24
  export declare function loadProjectConfig(projectRoot: string): ProjectConfig;
25
+ export declare function prepareLocalExecution(sql: string, connection: ConnectionConfig, projectRoot: string, projectConfig: ProjectConfig): {
26
+ sql: string;
27
+ connection: ConnectionConfig;
28
+ };
29
+ export declare function normalizeProjectConnection(connection: ConnectionConfig, projectRoot: string): ConnectionConfig;
30
+ export declare function resolveProjectRelativeSqlPaths(sql: string, projectRoot: string, dataDir?: string): string;
25
31
  //# sourceMappingURL=local-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-runtime.d.ts","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAStF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqJhF;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,OAAO,GACb,MAAM,CAaR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQpD;AA8BD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAOpE"}
1
+ {"version":3,"file":"local-runtime.d.ts","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAStF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwLhF;AAED,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,OAAO,GACb,MAAM,CAaR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQpD;AA8BD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAOpE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,gBAAgB,EAC5B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,GAC3B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAQ/C;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAY9G;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAezG"}
@@ -4,9 +4,11 @@ import { dirname, extname, join, normalize, resolve } from 'node:path';
4
4
  import { buildExecutionPlan, createWelcomeNotebook, deserializeNotebook, getConnectorFormSchemas, } from '@duckcodeailabs/dql-notebook';
5
5
  export async function startLocalServer(opts) {
6
6
  const { rootDir, executor, connection, preferredPort, projectRoot = process.cwd() } = opts;
7
+ const projectConfig = loadProjectConfig(projectRoot);
7
8
  const server = createServer(async (req, res) => {
8
9
  const requestUrl = req.url || '/';
9
- const path = requestUrl.split('?')[0] || '/';
10
+ const url = new URL(requestUrl, 'http://127.0.0.1');
11
+ const path = url.pathname || '/';
10
12
  if (req.method === 'GET' && path === '/api/health') {
11
13
  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
12
14
  res.end(serializeJSON({ status: 'ok' }));
@@ -20,7 +22,8 @@ export async function startLocalServer(opts) {
20
22
  res.end(serializeJSON({ columns: [], rows: [], error: 'Missing SQL in request body.' }));
21
23
  return;
22
24
  }
23
- const result = await executor.executeQuery(body.sql, Array.isArray(body.sqlParams) ? body.sqlParams : [], body.variables && typeof body.variables === 'object' ? body.variables : {}, isConnectionConfig(body.connection) ? body.connection : connection);
25
+ const prepared = prepareLocalExecution(typeof body.sql === 'string' ? body.sql : '', isConnectionConfig(body.connection) ? body.connection : connection, projectRoot, projectConfig);
26
+ const result = await executor.executeQuery(prepared.sql, Array.isArray(body.sqlParams) ? body.sqlParams : [], body.variables && typeof body.variables === 'object' ? body.variables : {}, prepared.connection);
24
27
  const payload = serializeJSON(result);
25
28
  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
26
29
  res.end(payload);
@@ -42,7 +45,7 @@ export async function startLocalServer(opts) {
42
45
  if (req.method === 'POST' && path === '/api/test-connection') {
43
46
  try {
44
47
  const body = await readJSON(req);
45
- const target = isConnectionConfig(body.connection) ? body.connection : connection;
48
+ const target = normalizeProjectConnection(isConnectionConfig(body.connection) ? body.connection : connection, projectRoot);
46
49
  const connector = await executor.getConnector(target);
47
50
  const ok = await connector.ping();
48
51
  res.writeHead(ok ? 200 : 400, { 'Content-Type': 'application/json; charset=utf-8' });
@@ -55,19 +58,35 @@ export async function startLocalServer(opts) {
55
58
  return;
56
59
  }
57
60
  if (req.method === 'GET' && path === '/api/notebook/bootstrap') {
58
- const config = loadProjectConfig(projectRoot);
59
- const welcomeNotebook = resolveNotebook(projectRoot, config.project ?? 'DQL Project');
61
+ const welcomeNotebook = resolveNotebook(projectRoot, projectConfig.project ?? 'DQL Project');
60
62
  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
61
63
  res.end(serializeJSON({
62
64
  projectRoot,
63
- project: config.project ?? 'DQL Project',
64
- defaultConnection: config.defaultConnection ?? connection,
65
+ project: projectConfig.project ?? 'DQL Project',
66
+ defaultConnection: projectConfig.defaultConnection ?? connection,
65
67
  connectorForms: getConnectorFormSchemas(),
66
68
  files: listProjectFiles(projectRoot),
67
69
  notebook: welcomeNotebook,
68
70
  }));
69
71
  return;
70
72
  }
73
+ if (req.method === 'GET' && path === '/api/notebook/file') {
74
+ const relativePath = url.searchParams.get('path');
75
+ if (!relativePath) {
76
+ res.writeHead(400, { 'Content-Type': 'application/json; charset=utf-8' });
77
+ res.end(serializeJSON({ error: 'Missing file path.' }));
78
+ return;
79
+ }
80
+ const filePath = safeJoin(projectRoot, relativePath);
81
+ if (!filePath || !existsSync(filePath) || statSync(filePath).isDirectory()) {
82
+ res.writeHead(404, { 'Content-Type': 'application/json; charset=utf-8' });
83
+ res.end(serializeJSON({ error: `File not found: ${relativePath}` }));
84
+ return;
85
+ }
86
+ res.writeHead(200, { 'Content-Type': contentTypeFor(filePath) });
87
+ res.end(readFileSync(filePath));
88
+ return;
89
+ }
71
90
  if (req.method === 'POST' && path === '/api/notebook/execute') {
72
91
  try {
73
92
  const body = await readJSON(req);
@@ -77,14 +96,14 @@ export async function startLocalServer(opts) {
77
96
  res.end(serializeJSON({ error: 'Missing notebook cell payload.' }));
78
97
  return;
79
98
  }
80
- const target = isConnectionConfig(body.connection) ? body.connection : connection;
81
99
  const plan = buildExecutionPlan(cell);
82
100
  if (!plan) {
83
101
  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
84
102
  res.end(serializeJSON({ cellType: cell.type, result: null }));
85
103
  return;
86
104
  }
87
- const result = await executor.executeQuery(plan.sql, plan.sqlParams, plan.variables, target);
105
+ const prepared = prepareLocalExecution(plan.sql, isConnectionConfig(body.connection) ? body.connection : connection, projectRoot, projectConfig);
106
+ const result = await executor.executeQuery(prepared.sql, plan.sqlParams, plan.variables, prepared.connection);
88
107
  res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
89
108
  res.end(serializeJSON({
90
109
  cellType: cell.type,
@@ -213,6 +232,43 @@ export function loadProjectConfig(projectRoot) {
213
232
  }
214
233
  return JSON.parse(readFileSync(configPath, 'utf-8'));
215
234
  }
235
+ export function prepareLocalExecution(sql, connection, projectRoot, projectConfig) {
236
+ const normalizedConnection = normalizeProjectConnection(connection, projectRoot);
237
+ return {
238
+ sql: shouldResolveProjectPaths(normalizedConnection)
239
+ ? resolveProjectRelativeSqlPaths(sql, projectRoot, projectConfig.dataDir)
240
+ : sql,
241
+ connection: normalizedConnection,
242
+ };
243
+ }
244
+ export function normalizeProjectConnection(connection, projectRoot) {
245
+ const normalized = { ...connection };
246
+ if ((normalized.driver === 'file' || normalized.driver === 'duckdb') && normalized.filepath && normalized.filepath !== ':memory:' && !isAbsoluteLikePath(normalized.filepath)) {
247
+ normalized.filepath = resolve(projectRoot, normalized.filepath);
248
+ }
249
+ if (normalized.driver === 'sqlite' && normalized.database && normalized.database !== ':memory:' && !isAbsoluteLikePath(normalized.database)) {
250
+ normalized.database = resolve(projectRoot, normalized.database);
251
+ }
252
+ return normalized;
253
+ }
254
+ export function resolveProjectRelativeSqlPaths(sql, projectRoot, dataDir) {
255
+ const resolvedRoot = resolve(projectRoot);
256
+ const normalizedDataDir = typeof dataDir === 'string' && dataDir.trim().length > 0
257
+ ? resolve(projectRoot, dataDir)
258
+ : join(resolvedRoot, 'data');
259
+ return sql.replace(/\b(read_csv_auto|read_csv|read_parquet|read_json_auto|read_json|read_ndjson_auto|read_ndjson|read_xlsx|parquet_scan)\s*\(\s*(['"])(\.{1,2}\/[^'"]*)\2/gi, (_match, fnName, quote, relativePath) => {
260
+ const absolutePath = relativePath.startsWith('./data/')
261
+ ? join(normalizedDataDir, relativePath.slice('./data/'.length))
262
+ : resolve(resolvedRoot, relativePath);
263
+ return `${fnName}(${quote}${absolutePath.replaceAll('\\', '/')}${quote}`;
264
+ });
265
+ }
266
+ function shouldResolveProjectPaths(connection) {
267
+ return connection.driver === 'file' || connection.driver === 'duckdb' || connection.driver === 'sqlite';
268
+ }
269
+ function isAbsoluteLikePath(value) {
270
+ return value.startsWith('/') || value.startsWith('\\') || /^[A-Za-z]:[\\/]/.test(value);
271
+ }
216
272
  function readJSON(req) {
217
273
  return new Promise((resolvePromise, reject) => {
218
274
  const chunks = [];
@@ -1 +1 @@
1
- {"version":3,"file":"local-runtime.js","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-runtime.js","sourceRoot":"","sources":["../src/local-runtime.ts"],"names":[],"mappings":"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"}