@duckcodeailabs/dql-cli 0.5.2 → 0.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.
- package/dist/args.d.ts +1 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +4 -0
- package/dist/args.js.map +1 -1
- package/dist/assets/dql-notebook/assets/index-B_X7pyPz.js +510 -0
- package/dist/assets/dql-notebook/index.html +1 -1
- package/dist/assets/templates/dashboard/README.md +30 -0
- package/dist/assets/templates/dashboard/blocks/.gitkeep +1 -0
- package/dist/assets/templates/dashboard/dashboards/pipeline_overview.dql +23 -0
- package/dist/assets/templates/dashboard/data/pipeline.csv +7 -0
- package/dist/assets/templates/dashboard/dql.config.json +18 -0
- package/dist/assets/templates/dashboard/semantic-layer/.gitkeep +1 -0
- package/dist/assets/templates/duckdb-local/README.md +30 -0
- package/dist/assets/templates/duckdb-local/blocks/orders_by_region.dql +24 -0
- package/dist/assets/templates/duckdb-local/data/orders.csv +7 -0
- package/dist/assets/templates/duckdb-local/dql.config.json +18 -0
- package/dist/assets/templates/duckdb-local/semantic-layer/.gitkeep +1 -0
- package/dist/assets/templates/ecommerce/README.md +7 -1
- package/dist/assets/templates/finance-kpi/README.md +31 -0
- package/dist/assets/templates/finance-kpi/blocks/arr_kpi.dql +21 -0
- package/dist/assets/templates/finance-kpi/data/revenue.csv +7 -0
- package/dist/assets/templates/finance-kpi/dql.config.json +18 -0
- package/dist/assets/templates/finance-kpi/semantic-layer/.gitkeep +1 -0
- package/dist/assets/templates/saas/README.md +13 -1
- package/dist/assets/templates/starter/README.md +4 -10
- package/dist/assets/templates/taxi/README.md +13 -1
- package/dist/assets/templates/workbook/README.md +30 -0
- package/dist/assets/templates/workbook/blocks/.gitkeep +1 -0
- package/dist/assets/templates/workbook/data/finance.csv +7 -0
- package/dist/assets/templates/workbook/dql.config.json +18 -0
- package/dist/assets/templates/workbook/semantic-layer/.gitkeep +1 -0
- package/dist/assets/templates/workbook/workbooks/quarterly_business_review.dql +32 -0
- package/dist/commands/build.test.js +1 -0
- package/dist/commands/build.test.js.map +1 -1
- package/dist/commands/certify.d.ts.map +1 -1
- package/dist/commands/certify.js +168 -2
- package/dist/commands/certify.js.map +1 -1
- package/dist/commands/compile.d.ts +15 -0
- package/dist/commands/compile.d.ts.map +1 -0
- package/dist/commands/compile.js +123 -0
- package/dist/commands/compile.js.map +1 -0
- package/dist/commands/doctor.test.js +1 -0
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/init.test.js +1 -0
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/lineage.d.ts +20 -0
- package/dist/commands/lineage.d.ts.map +1 -0
- package/dist/commands/lineage.js +551 -0
- package/dist/commands/lineage.js.map +1 -0
- package/dist/commands/new.test.js +7 -0
- package/dist/commands/new.test.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +16 -8
- package/dist/commands/test.js.map +1 -1
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/local-runtime.d.ts.map +1 -1
- package/dist/local-runtime.js +249 -11
- package/dist/local-runtime.js.map +1 -1
- package/dist/package.json +7 -7
- package/package.json +7 -7
- package/dist/assets/dql-notebook/assets/index-Dp-Vko5m.js +0 -477
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
8
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
9
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-B_X7pyPz.js"></script>
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/react-CRB3T2We.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/codemirror-CCrEt63p.js">
|
|
13
13
|
</head>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Dashboard
|
|
2
|
+
|
|
3
|
+
Multi-chart dashboard over local CSV data — KPI, bar, and table charts in one file.
|
|
4
|
+
|
|
5
|
+
## Scaffold
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dql init my-project --template dashboard
|
|
9
|
+
cd my-project
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What it demonstrates
|
|
13
|
+
|
|
14
|
+
- Dashboard syntax
|
|
15
|
+
- KPI, bar, and table charts in one file
|
|
16
|
+
- Local file-based preview without warehouse credentials
|
|
17
|
+
|
|
18
|
+
## Run it
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
dql doctor
|
|
22
|
+
dql preview dashboards/pipeline_overview.dql --open
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Build it
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
dql build dashboards/pipeline_overview.dql
|
|
29
|
+
dql serve dist/pipeline_overview --open
|
|
30
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
dashboard "Pipeline Overview" {
|
|
2
|
+
chart.kpi(
|
|
3
|
+
SELECT SUM(amount) AS total_pipeline FROM read_csv_auto('./data/pipeline.csv'),
|
|
4
|
+
metrics = ["total_pipeline"],
|
|
5
|
+
title = "Open Pipeline"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
chart.bar(
|
|
9
|
+
SELECT stage, SUM(amount) AS pipeline_amount
|
|
10
|
+
FROM read_csv_auto('./data/pipeline.csv')
|
|
11
|
+
GROUP BY stage,
|
|
12
|
+
x = stage,
|
|
13
|
+
y = pipeline_amount,
|
|
14
|
+
title = "Pipeline by Stage"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
chart.table(
|
|
18
|
+
SELECT rep_name, region, stage, amount, close_month
|
|
19
|
+
FROM read_csv_auto('./data/pipeline.csv')
|
|
20
|
+
ORDER BY amount DESC,
|
|
21
|
+
title = "Top Opportunities"
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
rep_name,region,stage,amount,close_month
|
|
2
|
+
Ava,North America,Qualified,42000,2026-04
|
|
3
|
+
Ava,North America,Proposal,76000,2026-05
|
|
4
|
+
Leo,EMEA,Qualified,52000,2026-04
|
|
5
|
+
Mina,APAC,Negotiation,68000,2026-05
|
|
6
|
+
Omar,EMEA,Proposal,47000,2026-06
|
|
7
|
+
Sara,North America,Negotiation,83000,2026-06
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": "__PROJECT_NAME__",
|
|
3
|
+
"defaultConnection": {
|
|
4
|
+
"driver": "file",
|
|
5
|
+
"filepath": ":memory:"
|
|
6
|
+
},
|
|
7
|
+
"dataDir": "./data",
|
|
8
|
+
|
|
9
|
+
"semanticLayer": {
|
|
10
|
+
"provider": "dql"
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"preview": {
|
|
14
|
+
"port": 3474,
|
|
15
|
+
"open": true,
|
|
16
|
+
"theme": "dark"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# DuckDB Local
|
|
2
|
+
|
|
3
|
+
Local-first analytics using the `duckdb` driver — no warehouse credentials needed.
|
|
4
|
+
|
|
5
|
+
## Scaffold
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dql init my-project --template duckdb-local
|
|
9
|
+
cd my-project
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What it demonstrates
|
|
13
|
+
|
|
14
|
+
- DuckDB as the default connection
|
|
15
|
+
- Local CSV-backed analytics with DuckDB execution
|
|
16
|
+
- Line chart preview and static export
|
|
17
|
+
|
|
18
|
+
## Run it
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
dql doctor
|
|
22
|
+
dql preview blocks/orders_by_region.dql --open
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Build it
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
dql build blocks/orders_by_region.dql
|
|
29
|
+
dql serve dist/orders_by_region --open
|
|
30
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
block "Orders by Region" {
|
|
2
|
+
domain = "sales"
|
|
3
|
+
type = "custom"
|
|
4
|
+
description = "Local DuckDB-backed revenue trend example"
|
|
5
|
+
owner = "dql-example"
|
|
6
|
+
tags = ["duckdb", "sales", "local-data"]
|
|
7
|
+
|
|
8
|
+
query = """
|
|
9
|
+
SELECT order_month, SUM(revenue) AS total_revenue
|
|
10
|
+
FROM read_csv_auto('./data/orders.csv')
|
|
11
|
+
GROUP BY order_month
|
|
12
|
+
ORDER BY order_month
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
visualization {
|
|
16
|
+
chart = "line"
|
|
17
|
+
x = order_month
|
|
18
|
+
y = total_revenue
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
tests {
|
|
22
|
+
assert row_count > 0
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": "__PROJECT_NAME__",
|
|
3
|
+
"defaultConnection": {
|
|
4
|
+
"driver": "duckdb",
|
|
5
|
+
"filepath": ":memory:"
|
|
6
|
+
},
|
|
7
|
+
"dataDir": "./data",
|
|
8
|
+
|
|
9
|
+
"semanticLayer": {
|
|
10
|
+
"provider": "dql"
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"preview": {
|
|
14
|
+
"port": 3474,
|
|
15
|
+
"open": true,
|
|
16
|
+
"theme": "dark"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# __PROJECT_NAME__
|
|
2
2
|
|
|
3
|
-
This template packages a realistic e-commerce analytics sandbox for DQL.
|
|
3
|
+
This template packages a realistic e-commerce analytics sandbox for DQL. It covers channel revenue analysis, repeat purchase behavior, funnel analysis, and semantic metrics — a complete starting point for commerce analytics.
|
|
4
4
|
|
|
5
5
|
## Included assets
|
|
6
6
|
|
|
@@ -25,3 +25,9 @@ dql preview blocks/revenue_by_segment.dql --open
|
|
|
25
25
|
- Compare performance across paid, partner, organic, and lifecycle channels
|
|
26
26
|
- Track repeat order contribution by region and segment
|
|
27
27
|
- Use the notebook to iterate on funnel SQL before promoting it into reusable blocks
|
|
28
|
+
|
|
29
|
+
## Next Steps
|
|
30
|
+
|
|
31
|
+
- [Authoring Blocks](https://github.com/duckcodeailabs/dql/blob/main/docs/authoring-blocks.md) — promote your notebook queries into certified, reusable `.dql` blocks
|
|
32
|
+
- [Semantic Layer Guide](https://github.com/duckcodeailabs/dql/blob/main/docs/semantic-layer-guide.md) — extend the included semantic layer with your own metrics and dimensions
|
|
33
|
+
- [Getting Started](https://github.com/duckcodeailabs/dql/blob/main/docs/getting-started.md) — connect to a cloud database or add DQL to an existing repo
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Finance KPI
|
|
2
|
+
|
|
3
|
+
Smallest runnable DQL project — a single KPI block over local CSV data.
|
|
4
|
+
|
|
5
|
+
## Scaffold
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dql init my-project --template finance-kpi
|
|
9
|
+
cd my-project
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What it demonstrates
|
|
13
|
+
|
|
14
|
+
- Reusable `custom` block syntax
|
|
15
|
+
- Local CSV-backed query execution
|
|
16
|
+
- KPI visualization
|
|
17
|
+
- Preview, build, and serve flow
|
|
18
|
+
|
|
19
|
+
## Run it
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
dql doctor
|
|
23
|
+
dql preview blocks/arr_kpi.dql --open
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Build it
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
dql build blocks/arr_kpi.dql
|
|
30
|
+
dql serve dist/arr_kpi --open
|
|
31
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
block "ARR KPI" {
|
|
2
|
+
domain = "finance"
|
|
3
|
+
type = "custom"
|
|
4
|
+
description = "Simple ARR KPI block backed by local CSV sample data"
|
|
5
|
+
owner = "dql-example"
|
|
6
|
+
tags = ["finance", "kpi", "local-data"]
|
|
7
|
+
|
|
8
|
+
query = """
|
|
9
|
+
SELECT SUM(amount) AS arr_total
|
|
10
|
+
FROM read_csv_auto('./data/revenue.csv')
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
visualization {
|
|
14
|
+
chart = "kpi"
|
|
15
|
+
y = arr_total
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
tests {
|
|
19
|
+
assert row_count > 0
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": "__PROJECT_NAME__",
|
|
3
|
+
"defaultConnection": {
|
|
4
|
+
"driver": "file",
|
|
5
|
+
"filepath": ":memory:"
|
|
6
|
+
},
|
|
7
|
+
"dataDir": "./data",
|
|
8
|
+
|
|
9
|
+
"semanticLayer": {
|
|
10
|
+
"provider": "dql"
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"preview": {
|
|
14
|
+
"port": 3474,
|
|
15
|
+
"open": true,
|
|
16
|
+
"theme": "dark"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# __PROJECT_NAME__
|
|
2
2
|
|
|
3
|
-
This template packages a SaaS KPI sandbox focused on MRR, retention, and expansion.
|
|
3
|
+
This template packages a SaaS KPI sandbox focused on MRR, retention, and expansion. It covers recurring revenue tracking, churn pressure analysis, cohort retention, and semantic metrics for subscription businesses.
|
|
4
4
|
|
|
5
5
|
## Included assets
|
|
6
6
|
|
|
@@ -18,3 +18,15 @@ dql doctor
|
|
|
18
18
|
dql notebook
|
|
19
19
|
dql preview blocks/revenue_by_segment.dql --open
|
|
20
20
|
```
|
|
21
|
+
|
|
22
|
+
## What to explore
|
|
23
|
+
|
|
24
|
+
- Track MRR growth and expansion by plan tier
|
|
25
|
+
- Identify at-risk accounts by churn pressure signals
|
|
26
|
+
- Analyze cohort retention curves over rolling periods
|
|
27
|
+
|
|
28
|
+
## Next Steps
|
|
29
|
+
|
|
30
|
+
- [Authoring Blocks](https://github.com/duckcodeailabs/dql/blob/main/docs/authoring-blocks.md) — promote your notebook queries into certified, reusable `.dql` blocks
|
|
31
|
+
- [Semantic Layer Guide](https://github.com/duckcodeailabs/dql/blob/main/docs/semantic-layer-guide.md) — extend the included semantic layer with MRR and churn metrics
|
|
32
|
+
- [Getting Started](https://github.com/duckcodeailabs/dql/blob/main/docs/getting-started.md) — connect to a cloud database or add DQL to an existing repo
|
|
@@ -5,16 +5,13 @@ previewing, notebook exploration, and experimentation.
|
|
|
5
5
|
|
|
6
6
|
```text
|
|
7
7
|
blocks/
|
|
8
|
-
dashboards/
|
|
9
8
|
data/
|
|
10
9
|
dql.config.json
|
|
11
10
|
notebooks/
|
|
12
|
-
workbooks/
|
|
13
11
|
semantic-layer/
|
|
14
12
|
metrics/
|
|
15
13
|
dimensions/
|
|
16
14
|
hierarchies/
|
|
17
|
-
blocks/
|
|
18
15
|
```
|
|
19
16
|
|
|
20
17
|
## Quick Start
|
|
@@ -23,9 +20,6 @@ semantic-layer/
|
|
|
23
20
|
dql doctor
|
|
24
21
|
dql notebook
|
|
25
22
|
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
23
|
dql parse blocks/pipeline_health.dql
|
|
30
24
|
dql preview blocks/pipeline_health.dql --open
|
|
31
25
|
dql build blocks/pipeline_health.dql
|
|
@@ -35,11 +29,9 @@ dql serve dist/pipeline_health
|
|
|
35
29
|
## What's Included
|
|
36
30
|
|
|
37
31
|
- `blocks/` — example charted and query-only DQL blocks
|
|
38
|
-
- `dashboards/` — empty folder for dashboard scaffolds
|
|
39
32
|
- `data/` — sample revenue CSV for local DuckDB/file preview flows
|
|
40
33
|
- `dql.config.json` — starter project configuration
|
|
41
34
|
- `notebooks/welcome.dqlnb` — guided notebook walkthrough for the browser notebook
|
|
42
|
-
- `workbooks/` — empty folder for workbook scaffolds
|
|
43
35
|
- `semantic-layer/` — example metrics, dimensions, hierarchies, and companion metadata
|
|
44
36
|
|
|
45
37
|
## Adopt the Starter Safely
|
|
@@ -49,6 +41,8 @@ dql serve dist/pipeline_health
|
|
|
49
41
|
- run `dql doctor` before previewing if setup feels off
|
|
50
42
|
- add tests to every reusable block
|
|
51
43
|
|
|
52
|
-
##
|
|
44
|
+
## Next Steps
|
|
53
45
|
|
|
54
|
-
-
|
|
46
|
+
- [Getting Started](https://github.com/duckcodeailabs/dql/blob/main/docs/getting-started.md) — full install options, tutorials, and your first block
|
|
47
|
+
- [Authoring Blocks](https://github.com/duckcodeailabs/dql/blob/main/docs/authoring-blocks.md) — create, validate, certify, and commit custom and semantic blocks
|
|
48
|
+
- [Semantic Layer Guide](https://github.com/duckcodeailabs/dql/blob/main/docs/semantic-layer-guide.md) — define metrics, dimensions, and cubes in YAML
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# __PROJECT_NAME__
|
|
2
2
|
|
|
3
|
-
This template packages a city mobility analytics sandbox with taxi trip data.
|
|
3
|
+
This template packages a city mobility analytics sandbox with taxi trip data. It covers trip volume trends, fare analysis, borough breakdowns, and time-series patterns — a strong starting point for operational and geospatial analytics.
|
|
4
4
|
|
|
5
5
|
## Included assets
|
|
6
6
|
|
|
@@ -17,3 +17,15 @@ dql doctor
|
|
|
17
17
|
dql notebook
|
|
18
18
|
dql preview blocks/revenue_by_segment.dql --open
|
|
19
19
|
```
|
|
20
|
+
|
|
21
|
+
## What to explore
|
|
22
|
+
|
|
23
|
+
- Analyze trip volume and fare trends by borough and time of day
|
|
24
|
+
- Compare airport vs. non-airport trip economics
|
|
25
|
+
- Build time-series line charts for daily or weekly trip counts
|
|
26
|
+
|
|
27
|
+
## Next Steps
|
|
28
|
+
|
|
29
|
+
- [Authoring Blocks](https://github.com/duckcodeailabs/dql/blob/main/docs/authoring-blocks.md) — promote your notebook queries into certified, reusable `.dql` blocks
|
|
30
|
+
- [Semantic Layer Guide](https://github.com/duckcodeailabs/dql/blob/main/docs/semantic-layer-guide.md) — define trip-level metrics and borough dimensions in YAML
|
|
31
|
+
- [Getting Started](https://github.com/duckcodeailabs/dql/blob/main/docs/getting-started.md) — connect to a cloud database or add DQL to an existing repo
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Workbook
|
|
2
|
+
|
|
3
|
+
Multi-page workbook that compiles into a tabbed HTML report.
|
|
4
|
+
|
|
5
|
+
## Scaffold
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
dql init my-project --template workbook
|
|
9
|
+
cd my-project
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What it demonstrates
|
|
13
|
+
|
|
14
|
+
- Workbook syntax
|
|
15
|
+
- Multiple pages in one file
|
|
16
|
+
- Local-first reporting flow with CSV data
|
|
17
|
+
|
|
18
|
+
## Run it
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
dql doctor
|
|
22
|
+
dql preview workbooks/quarterly_business_review.dql --open
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Build it
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
dql build workbooks/quarterly_business_review.dql
|
|
29
|
+
dql serve dist/quarterly_business_review --open
|
|
30
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project": "__PROJECT_NAME__",
|
|
3
|
+
"defaultConnection": {
|
|
4
|
+
"driver": "file",
|
|
5
|
+
"filepath": ":memory:"
|
|
6
|
+
},
|
|
7
|
+
"dataDir": "./data",
|
|
8
|
+
|
|
9
|
+
"semanticLayer": {
|
|
10
|
+
"provider": "dql"
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
"preview": {
|
|
14
|
+
"port": 3474,
|
|
15
|
+
"open": true,
|
|
16
|
+
"theme": "dark"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
workbook "Quarterly Business Review" {
|
|
2
|
+
page "Executive Summary" {
|
|
3
|
+
chart.kpi(
|
|
4
|
+
SELECT SUM(revenue) AS total_revenue FROM read_csv_auto('./data/finance.csv'),
|
|
5
|
+
metrics = ["total_revenue"],
|
|
6
|
+
title = "Total Revenue"
|
|
7
|
+
)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
page "Revenue Trend" {
|
|
11
|
+
chart.line(
|
|
12
|
+
SELECT month, SUM(revenue) AS total_revenue
|
|
13
|
+
FROM read_csv_auto('./data/finance.csv')
|
|
14
|
+
GROUP BY month
|
|
15
|
+
ORDER BY month,
|
|
16
|
+
x = month,
|
|
17
|
+
y = total_revenue,
|
|
18
|
+
title = "Revenue Trend"
|
|
19
|
+
)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
page "Cost by Region" {
|
|
23
|
+
chart.bar(
|
|
24
|
+
SELECT region, SUM(expense) AS total_expense
|
|
25
|
+
FROM read_csv_auto('./data/finance.csv')
|
|
26
|
+
GROUP BY region,
|
|
27
|
+
x = region,
|
|
28
|
+
y = total_expense,
|
|
29
|
+
title = "Cost by Region"
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -35,6 +35,7 @@ describe('runBuild', () => {
|
|
|
35
35
|
template: 'starter',
|
|
36
36
|
connection: '',
|
|
37
37
|
verbose: false,
|
|
38
|
+
skipTests: false,
|
|
38
39
|
});
|
|
39
40
|
expect(readFileSync(join(outDir, 'index.html'), 'utf-8')).toContain('Revenue Preview');
|
|
40
41
|
expect(readFileSync(join(outDir, 'dql-metadata.json'), 'utf-8')).toContain('Revenue Preview');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.test.js","sourceRoot":"","sources":["../../src/commands/build.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEvC,aAAa,CAAC,UAAU,EAAE;;;;;;;;;;;EAW5B,CAAC,CAAC;QAEA,MAAM,QAAQ,CAAC,UAAU,EAAE;YACzB,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;YACN,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"build.test.js","sourceRoot":"","sources":["../../src/commands/build.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEvC,aAAa,CAAC,UAAU,EAAE;;;;;;;;;;;EAW5B,CAAC,CAAC;QAEA,MAAM,QAAQ,CAAC,UAAU,EAAE;YACzB,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;YACN,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;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACvF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../../src/commands/certify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"certify.d.ts","sourceRoot":"","sources":["../../src/commands/certify.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0I3C,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGjF"}
|