@malloy-publisher/server 0.0.382-dev → 0.2.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/README.docker.md +145 -20
- package/README.md +65 -12
- package/dist/app/api-doc.html +5 -0
- package/dist/app/api-doc.yaml +3903 -583
- package/dist/app/assets/EnvironmentPage-DiUgLuCH.js +1 -0
- package/dist/app/assets/HomePage-MhhjhnFj.js +1 -0
- package/dist/app/assets/LightMode-BEyvNUzT.js +1 -0
- package/dist/app/assets/MainPage-D4Cfee9o.js +2 -0
- package/dist/app/assets/MaterializationsPage-nGgGqwSN.js +1 -0
- package/dist/app/assets/ModelPage-DLAcEw-F.js +1 -0
- package/dist/app/assets/PackagePage-Df0ikH7w.js +1 -0
- package/dist/app/assets/RouteError-BFQwtroH.js +1 -0
- package/dist/app/assets/ThemeEditorPage-OoskoQYN.js +1 -0
- package/dist/app/assets/WorkbookPage-CpFgvUDC.js +1 -0
- package/dist/app/assets/{core-CjeTkq8O.es-BqRc6yhC.js → core-lb28vQkR.es-BoVSOc75.js} +1 -1
- package/dist/app/assets/github-dark-DenFmJkN.es-DHJKELXO.js +1 -0
- package/dist/app/assets/index-5eLCcNmP.css +1 -0
- package/dist/app/assets/index-6ypuFH6g.js +1774 -0
- package/dist/app/assets/index-B8pnU_V_.js +615 -0
- package/dist/app/assets/index-BImcHmVP.js +1 -0
- package/dist/app/assets/index-DSoCUF-f.js +2725 -0
- package/dist/app/assets/index-DfqzSItA.js +2 -0
- package/dist/app/assets/index-w_0OQJgZ.js +23 -0
- package/dist/app/index.html +8 -4
- package/dist/cpufeatures-1yrn0vtw.node +0 -0
- package/dist/default-publisher.config.json +23 -0
- package/dist/{instrumentation.js → instrumentation.mjs} +10631 -10573
- package/dist/package_load_worker.mjs +15219 -0
- package/dist/runtime/publisher.js +331 -0
- package/dist/{server.js → server.mjs} +115548 -49590
- package/dist/sshcrypto-vd2k5hq9.node +0 -0
- package/package.json +41 -28
- package/publisher.config.example.bigquery.json +33 -0
- package/publisher.config.example.duckdb.json +23 -0
- package/.eslintrc.json +0 -44
- package/.prettierignore +0 -1
- package/.prettierrc +0 -4
- package/build.ts +0 -38
- package/dist/app/assets/HomePage-Dn3E4CuB.js +0 -1
- package/dist/app/assets/MainPage-BzB3yoqi.js +0 -2
- package/dist/app/assets/ModelPage-C9O_sAXT.js +0 -1
- package/dist/app/assets/PackagePage-DcxKEjBX.js +0 -1
- package/dist/app/assets/ProjectPage-BDj307rF.js +0 -1
- package/dist/app/assets/RouteError-DAShbVCG.js +0 -1
- package/dist/app/assets/WorkbookPage-Cs_XYEaB.js +0 -1
- package/dist/app/assets/index-15BOvhp0.js +0 -456
- package/dist/app/assets/index-Bb2jqquW.js +0 -676
- package/dist/app/assets/index-CMlGQMcl.css +0 -1
- package/dist/app/assets/index-D68X76-7.js +0 -1276
- package/dist/app/assets/index.umd-DGBekgSu.js +0 -1145
- package/dxt/malloy_bridge.py +0 -354
- package/dxt/manifest.json +0 -22
- package/eslint.config.mjs +0 -76
- package/k6-tests/README.md +0 -144
- package/k6-tests/bun.lock +0 -797
- package/k6-tests/load-test/load-test-crud-connections.ts +0 -263
- package/k6-tests/load-test/load-test-crud-packages.ts +0 -461
- package/k6-tests/load-test/load-test-crud-projects.ts +0 -160
- package/k6-tests/load-test/load-test-crud.ts +0 -142
- package/k6-tests/load-test/load-test.ts +0 -784
- package/k6-tests/package.json +0 -27
- package/k6-tests/scripts/run-with-otel.sh +0 -50
- package/k6-tests/smoke-test/smoke-test.ts +0 -158
- package/k6-tests/tsconfig.json +0 -29
- package/k6-tests/utils/client_factory.ts +0 -128
- package/k6-tests/utils/common.ts +0 -489
- package/k6-tests/utils/logger.ts +0 -62
- package/k6-tests/utils/types.d.ts +0 -35
- package/malloy_mcp.dxt +0 -0
- package/publisher.config.json +0 -33
- package/src/config.spec.ts +0 -850
- package/src/config.ts +0 -305
- package/src/constants.ts +0 -10
- package/src/controller/compile.controller.ts +0 -35
- package/src/controller/connection.controller.ts +0 -515
- package/src/controller/database.controller.ts +0 -21
- package/src/controller/manifest.controller.ts +0 -29
- package/src/controller/materialization.controller.ts +0 -125
- package/src/controller/model.controller.ts +0 -107
- package/src/controller/package.controller.ts +0 -182
- package/src/controller/query.controller.ts +0 -60
- package/src/controller/watch-mode.controller.ts +0 -98
- package/src/data_styles.ts +0 -71
- package/src/dto/connection.dto.spec.ts +0 -131
- package/src/dto/connection.dto.ts +0 -174
- package/src/dto/index.ts +0 -2
- package/src/dto/package.dto.spec.ts +0 -42
- package/src/dto/package.dto.ts +0 -12
- package/src/dto/validate.spec.ts +0 -76
- package/src/dto/validate.ts +0 -31
- package/src/errors.ts +0 -116
- package/src/health.ts +0 -189
- package/src/instrumentation.ts +0 -148
- package/src/logger.ts +0 -154
- package/src/mcp/error_messages.ts +0 -199
- package/src/mcp/handler_utils.ts +0 -239
- package/src/mcp/mcp_constants.ts +0 -22
- package/src/mcp/prompts/handlers.ts +0 -84
- package/src/mcp/prompts/index.ts +0 -11
- package/src/mcp/prompts/prompt_definitions.ts +0 -160
- package/src/mcp/prompts/prompt_service.ts +0 -67
- package/src/mcp/prompts/utils.ts +0 -62
- package/src/mcp/resource_metadata.ts +0 -47
- package/src/mcp/resources/model_resource.ts +0 -153
- package/src/mcp/resources/notebook_resource.ts +0 -137
- package/src/mcp/resources/package_resource.ts +0 -370
- package/src/mcp/resources/project_resource.ts +0 -184
- package/src/mcp/resources/query_resource.ts +0 -117
- package/src/mcp/resources/source_resource.ts +0 -141
- package/src/mcp/resources/view_resource.ts +0 -136
- package/src/mcp/server.ts +0 -62
- package/src/mcp/tools/discovery_tools.ts +0 -258
- package/src/mcp/tools/execute_query_tool.ts +0 -265
- package/src/server.ts +0 -1195
- package/src/service/connection.spec.ts +0 -1331
- package/src/service/connection.ts +0 -1511
- package/src/service/connection_service.spec.ts +0 -641
- package/src/service/connection_service.ts +0 -181
- package/src/service/db_utils.spec.ts +0 -714
- package/src/service/db_utils.ts +0 -1227
- package/src/service/filter.spec.ts +0 -447
- package/src/service/filter.ts +0 -337
- package/src/service/filter_integration.spec.ts +0 -825
- package/src/service/gcs_s3_utils.ts +0 -427
- package/src/service/manifest_service.spec.ts +0 -201
- package/src/service/manifest_service.ts +0 -106
- package/src/service/materialization_service.spec.ts +0 -648
- package/src/service/materialization_service.ts +0 -929
- package/src/service/materialized_table_gc.spec.ts +0 -383
- package/src/service/materialized_table_gc.ts +0 -279
- package/src/service/model.spec.ts +0 -257
- package/src/service/model.ts +0 -1069
- package/src/service/package.spec.ts +0 -236
- package/src/service/package.ts +0 -463
- package/src/service/project.ts +0 -681
- package/src/service/project_compile.spec.ts +0 -197
- package/src/service/project_store.spec.ts +0 -859
- package/src/service/project_store.ts +0 -1531
- package/src/service/quoting.ts +0 -41
- package/src/service/resolve_project.ts +0 -13
- package/src/storage/BaseRepository.ts +0 -31
- package/src/storage/DatabaseInterface.ts +0 -180
- package/src/storage/StorageManager.mock.ts +0 -59
- package/src/storage/StorageManager.ts +0 -210
- package/src/storage/duckdb/ConnectionRepository.ts +0 -141
- package/src/storage/duckdb/DuckDBConnection.ts +0 -177
- package/src/storage/duckdb/DuckDBManifestStore.ts +0 -70
- package/src/storage/duckdb/DuckDBRepository.ts +0 -224
- package/src/storage/duckdb/ManifestRepository.ts +0 -119
- package/src/storage/duckdb/MaterializationRepository.ts +0 -249
- package/src/storage/duckdb/PackageRepository.ts +0 -135
- package/src/storage/duckdb/ProjectRepository.ts +0 -148
- package/src/storage/duckdb/manifest_store.spec.ts +0 -133
- package/src/storage/duckdb/schema.ts +0 -147
- package/src/storage/ducklake/DuckLakeManifestStore.ts +0 -146
- package/src/utils.ts +0 -13
- package/tests/fixtures/persist-test/data/orders.csv +0 -5
- package/tests/fixtures/persist-test/persist_test.malloy +0 -11
- package/tests/fixtures/persist-test/publisher.json +0 -5
- package/tests/fixtures/publisher.config.json +0 -15
- package/tests/harness/e2e.ts +0 -96
- package/tests/harness/mcp_test_setup.ts +0 -344
- package/tests/harness/mocks.ts +0 -37
- package/tests/harness/rest_e2e.ts +0 -68
- package/tests/harness/uris.ts +0 -31
- package/tests/integration/materialization/materialization_lifecycle.integration.spec.ts +0 -470
- package/tests/integration/mcp/mcp_execute_query_tool.integration.spec.ts +0 -434
- package/tests/integration/mcp/mcp_resource.integration.spec.ts +0 -663
- package/tests/integration/mcp/mcp_transport.integration.spec.ts +0 -122
- package/tests/integration/mcp/setup.spec.ts +0 -5
- package/tests/unit/duckdb/attached_databases.test.ts +0 -1132
- package/tests/unit/ducklake/ducklake.test.ts +0 -950
- package/tests/unit/mcp/prompt_definitions.test.ts +0 -102
- package/tests/unit/mcp/prompt_happy.test.ts +0 -51
- package/tsconfig.json +0 -32
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloy-publisher/server",
|
|
3
3
|
"description": "Malloy Publisher Server",
|
|
4
|
-
"version": "0.0
|
|
5
|
-
"main": "dist/server.
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"main": "dist/server.mjs",
|
|
6
6
|
"bin": {
|
|
7
|
-
"malloy-publisher": "dist/server.
|
|
7
|
+
"malloy-publisher": "dist/server.mjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"publisher.config.example.duckdb.json",
|
|
12
|
+
"publisher.config.example.bigquery.json"
|
|
13
|
+
],
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=20"
|
|
8
16
|
},
|
|
9
17
|
"repository": {
|
|
10
18
|
"type": "git",
|
|
@@ -16,33 +24,39 @@
|
|
|
16
24
|
"scripts": {
|
|
17
25
|
"test": "bun run test:unit && bun run test:integration",
|
|
18
26
|
"test:unit": "bun test --timeout 100000 src",
|
|
19
|
-
"test:integration": "bun test --timeout
|
|
20
|
-
"build": "bun generate-api-types && bun build:app && NODE_ENV=production bun run build.ts",
|
|
21
|
-
"build:server-only": "bun generate-api-types && NODE_ENV=production bun run build.ts",
|
|
22
|
-
"
|
|
23
|
-
"start
|
|
27
|
+
"test:integration": "bun test --timeout 200000 tests --max-workers=1",
|
|
28
|
+
"build": "bun generate-api-types && bun build:app && NODE_ENV=production bun run build.ts && bun run bake-duckdb-extensions",
|
|
29
|
+
"build:server-only": "bun generate-api-types && NODE_ENV=production SKIP_APP_BUNDLE=1 bun run build.ts && bun run bake-duckdb-extensions",
|
|
30
|
+
"bake-duckdb-extensions": "bun scripts/bake-duckdb-extensions.js",
|
|
31
|
+
"start": "NODE_ENV=production bun run ./dist/server.mjs",
|
|
32
|
+
"start:init": "NODE_ENV=production bun run ./dist/server.mjs --init",
|
|
24
33
|
"start:dev": "NODE_ENV=development bun --watch src/server.ts",
|
|
25
34
|
"start:dev:init": "NODE_ENV=development bun --watch src/server.ts --init",
|
|
26
|
-
"start:instrumented": "
|
|
35
|
+
"start:instrumented": "bun --preload ./dist/instrumentation.mjs ./dist/server.mjs",
|
|
27
36
|
"lint": "bunx eslint \"./src/**/*.ts\"",
|
|
28
37
|
"format": "bunx prettier --write '**/*.{ts,tsx}'",
|
|
29
38
|
"build:app": "cd ../app && NODE_ENV=production bunx vite build",
|
|
30
|
-
"generate-api-types": "bunx openapi-typescript ../../api-doc.yaml --output src/api.ts"
|
|
39
|
+
"generate-api-types": "bunx openapi-typescript ../../api-doc.yaml --output src/api.ts && node ../../scripts/add-license-headers.mjs src/api.ts"
|
|
31
40
|
},
|
|
32
41
|
"dependencies": {
|
|
33
42
|
"@aws-sdk/client-s3": "^3.958.0",
|
|
34
43
|
"@azure/identity": "^4.13.0",
|
|
35
44
|
"@azure/storage-blob": "^12.26.0",
|
|
45
|
+
"@duckdb/node-api": "1.5.5-r.4",
|
|
46
|
+
"@google-cloud/bigquery": "^7.9.4",
|
|
36
47
|
"@google-cloud/storage": "^7.16.0",
|
|
37
|
-
"@malloydata/db-bigquery": "^0.0.
|
|
38
|
-
"@malloydata/db-
|
|
39
|
-
"@malloydata/db-
|
|
40
|
-
"@malloydata/db-
|
|
41
|
-
"@malloydata/db-
|
|
42
|
-
"@malloydata/db-
|
|
43
|
-
"@malloydata/
|
|
44
|
-
"@malloydata/
|
|
45
|
-
"@malloydata/
|
|
48
|
+
"@malloydata/db-bigquery": "^0.0.432",
|
|
49
|
+
"@malloydata/db-databricks": "^0.0.432",
|
|
50
|
+
"@malloydata/db-duckdb": "^0.0.432",
|
|
51
|
+
"@malloydata/db-mysql": "^0.0.432",
|
|
52
|
+
"@malloydata/db-postgres": "^0.0.432",
|
|
53
|
+
"@malloydata/db-publisher": "^0.0.432",
|
|
54
|
+
"@malloydata/db-snowflake": "^0.0.432",
|
|
55
|
+
"@malloydata/db-trino": "^0.0.432",
|
|
56
|
+
"@malloydata/malloy": "^0.0.432",
|
|
57
|
+
"@malloydata/malloy-sql": "^0.0.432",
|
|
58
|
+
"@malloydata/malloy-tag": "^0.0.432",
|
|
59
|
+
"@malloydata/render-validator": "^0.0.432",
|
|
46
60
|
"@modelcontextprotocol/sdk": "^1.13.2",
|
|
47
61
|
"@opentelemetry/api": "^1.9.0",
|
|
48
62
|
"@opentelemetry/auto-instrumentations-node": "^0.57.0",
|
|
@@ -50,36 +64,35 @@
|
|
|
50
64
|
"@opentelemetry/sdk-metrics": "^2.0.0",
|
|
51
65
|
"@opentelemetry/sdk-node": "^0.200.0",
|
|
52
66
|
"@opentelemetry/sdk-trace-node": "^2.0.0",
|
|
53
|
-
"adm-zip": "^0.5.16",
|
|
54
67
|
"async-mutex": "^0.5.0",
|
|
55
|
-
"aws-sdk": "^2.1692.0",
|
|
56
68
|
"body-parser": "^1.20.2",
|
|
57
69
|
"chokidar": "^4.0.3",
|
|
58
|
-
"class-transformer": "^0.5.1",
|
|
59
|
-
"class-validator": "^0.14.1",
|
|
60
70
|
"cors": "^2.8.5",
|
|
61
|
-
"
|
|
71
|
+
"cron-parser": "^5.6.2",
|
|
62
72
|
"express": "^4.21.0",
|
|
73
|
+
"express-rate-limit": "^8",
|
|
74
|
+
"extract-zip": "^2.0.1",
|
|
63
75
|
"globals": "^15.9.0",
|
|
76
|
+
"google-auth-library": "^9.15.1",
|
|
64
77
|
"handlebars": "^4.7.8",
|
|
65
78
|
"http-proxy-middleware": "^3.0.5",
|
|
79
|
+
"lunr": "^2.3.6",
|
|
66
80
|
"morgan": "^1.10.0",
|
|
67
81
|
"node-cron": "^3.0.3",
|
|
68
82
|
"recursive-readdir": "^2.2.3",
|
|
69
83
|
"simple-git": "^3.28.0",
|
|
70
|
-
"
|
|
71
|
-
"
|
|
84
|
+
"uuid": "^11.0.3",
|
|
85
|
+
"winston": "^3.17.0"
|
|
72
86
|
},
|
|
73
87
|
"devDependencies": {
|
|
74
|
-
"@anthropic-ai/dxt": "^0.1.0",
|
|
75
88
|
"@eslint/compat": "^1.2.7",
|
|
76
89
|
"@eslint/eslintrc": "^3.3.1",
|
|
77
90
|
"@eslint/js": "^9.23.0",
|
|
78
91
|
"@faker-js/faker": "^9.4.0",
|
|
79
|
-
"@types/adm-zip": "^0.5.7",
|
|
80
92
|
"@types/bun": "^1.2.20",
|
|
81
93
|
"@types/cors": "^2.8.12",
|
|
82
94
|
"@types/express": "^4.17.14",
|
|
95
|
+
"@types/lunr": "^2.3.7",
|
|
83
96
|
"@types/morgan": "^1.9.9",
|
|
84
97
|
"@types/node": "^24.10.1",
|
|
85
98
|
"@types/node-cron": "^3.0.11",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"frozenConfig": false,
|
|
3
|
+
"environments": [
|
|
4
|
+
{
|
|
5
|
+
"name": "examples",
|
|
6
|
+
"packages": [
|
|
7
|
+
{
|
|
8
|
+
"name": "storefront",
|
|
9
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/storefront"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "governed-analytics",
|
|
13
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/governed-analytics"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "html-data-app",
|
|
17
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/html-data-app"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "bigquery-hackernews",
|
|
21
|
+
"location": "https://github.com/credibledata/malloy-samples/tree/main/bigquery-hackernews"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"connections": [
|
|
25
|
+
{
|
|
26
|
+
"name": "bigquery",
|
|
27
|
+
"type": "bigquery",
|
|
28
|
+
"bigqueryConnection": {}
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"frozenConfig": false,
|
|
3
|
+
"environments": [
|
|
4
|
+
{
|
|
5
|
+
"name": "examples",
|
|
6
|
+
"packages": [
|
|
7
|
+
{
|
|
8
|
+
"name": "storefront",
|
|
9
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/storefront"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "governed-analytics",
|
|
13
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/governed-analytics"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "html-data-app",
|
|
17
|
+
"location": "https://github.com/malloydata/publisher/tree/main/examples/html-data-app"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"connections": []
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
package/.eslintrc.json
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Specify the environments where the code will run
|
|
3
|
-
"env": {
|
|
4
|
-
"jest": true, // Enable Jest for testing
|
|
5
|
-
"browser": true // Enable browser environment
|
|
6
|
-
},
|
|
7
|
-
|
|
8
|
-
// Stop ESLint from searching for configuration in parent folders
|
|
9
|
-
"root": true,
|
|
10
|
-
|
|
11
|
-
// Specify the parser for TypeScript (using @typescript-eslint/parser)
|
|
12
|
-
"parser": "@typescript-eslint/parser", // Leverages TS ESTree to lint TypeScript
|
|
13
|
-
|
|
14
|
-
// Add additional rules and configuration options
|
|
15
|
-
"plugins": ["@typescript-eslint"],
|
|
16
|
-
|
|
17
|
-
// Extend various ESLint configurations and plugins
|
|
18
|
-
"extends": [
|
|
19
|
-
"eslint:recommended", // ESLint recommended rules
|
|
20
|
-
"plugin:react/recommended", // React recommended rules
|
|
21
|
-
"plugin:@typescript-eslint/recommended", // TypeScript recommended rules
|
|
22
|
-
"plugin:@typescript-eslint/eslint-recommended", // ESLint overrides for TypeScript
|
|
23
|
-
"prettier", // Prettier rules
|
|
24
|
-
"plugin:prettier/recommended", // Prettier plugin integration
|
|
25
|
-
"plugin:react-hooks/recommended", // Recommended rules for React hooks
|
|
26
|
-
"plugin:storybook/recommended" // Recommended rules for Storybook
|
|
27
|
-
],
|
|
28
|
-
"settings": {
|
|
29
|
-
"react": {
|
|
30
|
-
"version": "detect"
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
"rules": {
|
|
34
|
-
"react/react-in-jsx-scope": "off",
|
|
35
|
-
"@typescript-eslint/no-unused-vars": [
|
|
36
|
-
"error",
|
|
37
|
-
{
|
|
38
|
-
"argsIgnorePattern": "^_",
|
|
39
|
-
"varsIgnorePattern": "^_",
|
|
40
|
-
"caughtErrorsIgnorePattern": "^_"
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
}
|
package/.prettierignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
src/api.ts
|
package/.prettierrc
DELETED
package/build.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { build } from "bun";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
|
|
4
|
-
fs.rmSync("./dist", { recursive: true, force: true });
|
|
5
|
-
fs.mkdirSync("./dist");
|
|
6
|
-
|
|
7
|
-
await build({
|
|
8
|
-
entrypoints: ["./src/server.ts", "./src/instrumentation.ts"],
|
|
9
|
-
outdir: "./dist",
|
|
10
|
-
target: "node",
|
|
11
|
-
format: "cjs",
|
|
12
|
-
external: [
|
|
13
|
-
"@malloydata/db-duckdb",
|
|
14
|
-
"duckdb",
|
|
15
|
-
"@malloydata/malloy",
|
|
16
|
-
"@malloydata/malloy-sql",
|
|
17
|
-
"@malloydata/render",
|
|
18
|
-
"@malloydata/db-bigquery",
|
|
19
|
-
"@malloydata/db-mysql",
|
|
20
|
-
"@malloydata/db-postgres",
|
|
21
|
-
"@malloydata/db-snowflake",
|
|
22
|
-
"@malloydata/db-trino",
|
|
23
|
-
"@google-cloud/storage",
|
|
24
|
-
"@azure/identity",
|
|
25
|
-
"@azure/storage-blob",
|
|
26
|
-
],
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
fs.cpSync("../app/dist", "./dist/app", { recursive: true });
|
|
30
|
-
|
|
31
|
-
// Add shebang to server.js for npx compatibility
|
|
32
|
-
const serverJsPath = "./dist/server.js";
|
|
33
|
-
const serverJsContent = fs.readFileSync(serverJsPath, "utf8");
|
|
34
|
-
const shebangContent = "#!/usr/bin/env node\n" + serverJsContent;
|
|
35
|
-
fs.writeFileSync(serverJsPath, shebangContent);
|
|
36
|
-
|
|
37
|
-
// Make the file executable
|
|
38
|
-
fs.chmodSync(serverJsPath, "755");
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as o,j as a,i as e}from"./index-15BOvhp0.js";function i(){const t=o();return a.jsx(e,{onClickProject:t})}export{i as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as V,g as F,r as g,R as _,a as X,b as S,c as M,e as A,j as t,s as m,f as w,h as v,k as I,P as Y,m as R,l as J,n as z,B as K,o as N,p as Z,T as U,q,t as oo,d as eo,v as b,C as j,w as ro,x as to,I as so,M as ao,y as $,S as no,z as lo,A as io,O as co}from"./index-15BOvhp0.js";function po(o,e,r,s,n){const[a,i]=g.useState(()=>n&&r?r(o).matches:s?s(o).matches:e);return X(()=>{if(!r)return;const p=r(o),u=()=>{i(p.matches)};return u(),p.addEventListener("change",u),()=>{p.removeEventListener("change",u)}},[o,r]),a}const uo={..._},L=uo.useSyncExternalStore;function go(o,e,r,s,n){const a=g.useCallback(()=>e,[e]),i=g.useMemo(()=>{if(n&&r)return()=>r(o).matches;if(s!==null){const{matches:c}=s(o);return()=>c}return a},[a,o,s,n,r]),[p,u]=g.useMemo(()=>{if(r===null)return[a,()=>()=>{}];const c=r(o);return[()=>c.matches,l=>(c.addEventListener("change",l),()=>{c.removeEventListener("change",l)})]},[a,r,o]);return L(u,p,i)}function O(o={}){const{themeId:e}=o;return function(s,n={}){let a=V();a&&e&&(a=a[e]||a);const i=typeof window<"u"&&typeof window.matchMedia<"u",{defaultMatches:p=!1,matchMedia:u=i?window.matchMedia:null,ssrMatchMedia:d=null,noSsr:c=!1}=F({name:"MuiUseMediaQuery",props:n,theme:a});let l=typeof s=="function"?s(a):s;return l=l.replace(/^@media( ?)/m,""),l.includes("print")&&console.warn(["MUI: You have provided a `print` query to the `useMediaQuery` hook.","Using the print media query to modify print styles can lead to unexpected results.","Consider using the `displayPrint` field in the `sx` prop instead.","More information about `displayPrint` on our docs: https://mui.com/system/display/#display-in-print."].join(`
|
|
2
|
-
`)),(L!==void 0?go:po)(l,p,u,d,c)}}O();function xo(o){return S("MuiAppBar",o)}M("MuiAppBar",["root","positionFixed","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","colorInherit","colorTransparent","colorError","colorInfo","colorSuccess","colorWarning"]);const mo=o=>{const{color:e,position:r,classes:s}=o,n={root:["root",`color${v(e)}`,`position${v(r)}`]};return I(n,xo,s)},D=(o,e)=>o?`${o?.replace(")","")}, ${e})`:e,bo=m(Y,{name:"MuiAppBar",slot:"Root",overridesResolver:(o,e)=>{const{ownerState:r}=o;return[e.root,e[`position${v(r.position)}`],e[`color${v(r.color)}`]]}})(R(({theme:o})=>({display:"flex",flexDirection:"column",width:"100%",boxSizing:"border-box",flexShrink:0,variants:[{props:{position:"fixed"},style:{position:"fixed",zIndex:(o.vars||o).zIndex.appBar,top:0,left:"auto",right:0,"@media print":{position:"absolute"}}},{props:{position:"absolute"},style:{position:"absolute",zIndex:(o.vars||o).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"sticky"},style:{position:"sticky",zIndex:(o.vars||o).zIndex.appBar,top:0,left:"auto",right:0}},{props:{position:"static"},style:{position:"static"}},{props:{position:"relative"},style:{position:"relative"}},{props:{color:"inherit"},style:{"--AppBar-color":"inherit"}},{props:{color:"default"},style:{"--AppBar-background":o.vars?o.vars.palette.AppBar.defaultBg:o.palette.grey[100],"--AppBar-color":o.vars?o.vars.palette.text.primary:o.palette.getContrastText(o.palette.grey[100]),...o.applyStyles("dark",{"--AppBar-background":o.vars?o.vars.palette.AppBar.defaultBg:o.palette.grey[900],"--AppBar-color":o.vars?o.vars.palette.text.primary:o.palette.getContrastText(o.palette.grey[900])})}},...Object.entries(o.palette).filter(J(["contrastText"])).map(([e])=>({props:{color:e},style:{"--AppBar-background":(o.vars??o).palette[e].main,"--AppBar-color":(o.vars??o).palette[e].contrastText}})),{props:e=>e.enableColorOnDark===!0&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)"}},{props:e=>e.enableColorOnDark===!1&&!["inherit","transparent"].includes(e.color),style:{backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...o.applyStyles("dark",{backgroundColor:o.vars?D(o.vars.palette.AppBar.darkBg,"var(--AppBar-background)"):null,color:o.vars?D(o.vars.palette.AppBar.darkColor,"var(--AppBar-color)"):null})}},{props:{color:"transparent"},style:{"--AppBar-background":"transparent","--AppBar-color":"inherit",backgroundColor:"var(--AppBar-background)",color:"var(--AppBar-color)",...o.applyStyles("dark",{backgroundImage:"none"})}}]}))),fo=g.forwardRef(function(e,r){const s=A({props:e,name:"MuiAppBar"}),{className:n,color:a="primary",enableColorOnDark:i=!1,position:p="fixed",...u}=s,d={...s,color:a,position:p,enableColorOnDark:i},c=mo(d);return t.jsx(bo,{square:!0,component:"header",ownerState:d,elevation:4,className:w(c.root,n,p==="fixed"&&"mui-fixed"),ref:r,...u})}),ho=z(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),yo=m(K,{name:"MuiBreadcrumbCollapsed"})(R(({theme:o})=>({display:"flex",marginLeft:`calc(${o.spacing(1)} * 0.5)`,marginRight:`calc(${o.spacing(1)} * 0.5)`,...o.palette.mode==="light"?{backgroundColor:o.palette.grey[100],color:o.palette.grey[700]}:{backgroundColor:o.palette.grey[700],color:o.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...o.palette.mode==="light"?{backgroundColor:o.palette.grey[200]}:{backgroundColor:o.palette.grey[600]}},"&:active":{boxShadow:o.shadows[0],...o.palette.mode==="light"?{backgroundColor:N(o.palette.grey[200],.12)}:{backgroundColor:N(o.palette.grey[600],.12)}}}))),vo=m(ho)({width:24,height:16});function Bo(o){const{slots:e={},slotProps:r={},...s}=o,n=o;return t.jsx("li",{children:t.jsx(yo,{focusRipple:!0,...s,ownerState:n,children:t.jsx(vo,{as:e.CollapsedIcon,ownerState:n,...r.collapsedIcon})})})}function ko(o){return S("MuiBreadcrumbs",o)}const Co=M("MuiBreadcrumbs",["root","ol","li","separator"]),jo=o=>{const{classes:e}=o;return I({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},ko,e)},So=m(U,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(o,e)=>[{[`& .${Co.li}`]:e.li},e.root]})({}),Mo=m("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),Ao=m("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function wo(o,e,r,s){return o.reduce((n,a,i)=>(i<o.length-1?n=n.concat(a,t.jsx(Ao,{"aria-hidden":!0,className:e,ownerState:s,children:r},`separator-${i}`)):n.push(a),n),[])}const Io=g.forwardRef(function(e,r){const s=A({props:e,name:"MuiBreadcrumbs"}),{children:n,className:a,component:i="nav",slots:p={},slotProps:u={},expandText:d="Show path",itemsAfterCollapse:c=1,itemsBeforeCollapse:l=1,maxItems:h=8,separator:B="/",...Q}=s,[T,W]=g.useState(!1),f={...s,component:i,expanded:T,expandText:d,itemsAfterCollapse:c,itemsBeforeCollapse:l,maxItems:h,separator:B},y=jo(f),H=Z({elementType:p.CollapsedIcon,externalSlotProps:u.collapsedIcon,ownerState:f}),P=g.useRef(null),G=x=>{const C=()=>{W(!0);const E=P.current.querySelector("a[href],button,[tabindex]");E&&E.focus()};return l+c>=x.length?x:[...x.slice(0,l),t.jsx(Bo,{"aria-label":d,slots:{CollapsedIcon:p.CollapsedIcon},slotProps:{collapsedIcon:H},onClick:C},"ellipsis"),...x.slice(x.length-c,x.length)]},k=g.Children.toArray(n).filter(x=>g.isValidElement(x)).map((x,C)=>t.jsx("li",{className:y.li,children:x},`child-${C}`));return t.jsx(So,{ref:r,component:i,color:"textSecondary",className:w(y.root,a),ownerState:f,...Q,children:t.jsx(Mo,{className:y.ol,ref:P,ownerState:f,children:wo(T||h&&k.length<=h?k:G(k),y.separator,B,f)})})});function Ro(o){return S("MuiToolbar",o)}M("MuiToolbar",["root","gutters","regular","dense"]);const zo=o=>{const{classes:e,disableGutters:r,variant:s}=o;return I({root:["root",!r&&"gutters",s]},Ro,e)},To=m("div",{name:"MuiToolbar",slot:"Root",overridesResolver:(o,e)=>{const{ownerState:r}=o;return[e.root,!r.disableGutters&&e.gutters,e[r.variant]]}})(R(({theme:o})=>({position:"relative",display:"flex",alignItems:"center",variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:o.spacing(2),paddingRight:o.spacing(2),[o.breakpoints.up("sm")]:{paddingLeft:o.spacing(3),paddingRight:o.spacing(3)}}},{props:{variant:"dense"},style:{minHeight:48}},{props:{variant:"regular"},style:o.mixins.toolbar}]}))),Po=g.forwardRef(function(e,r){const s=A({props:e,name:"MuiToolbar"}),{className:n,component:a="div",disableGutters:i=!1,variant:p="regular",...u}=s,d={...s,component:a,disableGutters:i,variant:p},c=zo(d);return t.jsx(To,{as:a,className:w(c.root,n),ref:r,ownerState:d,...u})}),Eo=O({themeId:q}),No=z(t.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),$o=z(t.jsx("path",{d:"M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"}));function Do(){const o=oo(),e=o["*"],r=eo();return t.jsx(b,{sx:{display:"flex",alignItems:"center"},children:t.jsxs(Io,{"aria-label":"breadcrumb",separator:t.jsx(No,{sx:{fontSize:14,color:"text.secondary"}}),sx:{"& .MuiBreadcrumbs-separator":{margin:"0 6px"}},children:[o.projectName&&t.jsx(j,{onClick:s=>r(`/${o.projectName}/`,s),label:o.projectName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"1rem",cursor:"pointer","&:hover":{backgroundColor:"primary.100"}}}),o.packageName&&t.jsx(j,{onClick:s=>r(`/${o.projectName}/${o.packageName}/`,s),label:o.packageName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"1rem",cursor:"pointer","&:hover":{backgroundColor:"secondary.100"}}}),e&&t.jsx(j,{onClick:s=>r(`/${o.projectName}/${o.packageName}/${e}`,s),label:e,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"1rem",cursor:"pointer","&:hover":{backgroundColor:"grey.200"}}})]})})}function Uo({logoHeader:o,endCap:e}){const r=ro(),s=to(),n=Eo(s.breakpoints.down("sm")),[a,i]=g.useState(null),p=!!a,u=l=>{i(l.currentTarget)},d=()=>i(null),c=[{label:"Malloy Docs",link:"https://docs.malloydata.dev/documentation/",sx:{color:"#14b3cb"}},{label:"Publisher Docs",link:"https://github.com/malloydata/publisher/blob/main/README.md",sx:{color:"#14b3cb"}},{label:"Publisher API",link:"/api-doc.html",sx:{color:"#14b3cb"}}];return t.jsxs(fo,{position:"sticky",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider"},children:[t.jsxs(Po,{sx:{justifyContent:"space-between",flexWrap:"nowrap",minHeight:44},children:[o||t.jsxs(b,{sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer"},onClick:()=>r("/"),children:[t.jsx(b,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:28,height:28}}),t.jsx(U,{variant:"h6",sx:{color:"text.primary",fontWeight:700,letterSpacing:"-0.025em",fontSize:{xs:"1.1rem",sm:"1.25rem"}},children:"Malloy Publisher"})]}),n?t.jsxs(t.Fragment,{children:[t.jsx(so,{color:"inherit",onClick:u,children:t.jsx($o,{})}),t.jsxs(ao,{anchorEl:a,open:p,onClose:d,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:[c.map(l=>t.jsx($,{onClick:()=>{d(),window.location.href=l.link},sx:l.sx,children:l.label},l.label)),e&&t.jsx($,{children:e})]})]}):t.jsxs(no,{direction:"row",spacing:2,alignItems:"center",children:[c.map(l=>t.jsx(lo,{href:l.link,sx:l.sx,children:l.label},l.label)),e]})]}),t.jsx(b,{sx:{borderTop:"1px solid white",paddingLeft:"16px",paddingRight:"16px",marginBottom:"1px",overflowX:"auto"},children:t.jsx(Do,{})})]})}function Oo({headerProps:o}){return t.jsxs(b,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh"},children:[t.jsx(Uo,{...o}),t.jsx(io,{maxWidth:"xl",component:"main",sx:{flex:1,display:"flex",flexDirection:"column",py:2,gap:2},children:t.jsx(b,{sx:{flex:1},children:t.jsx(co,{})})})]})}export{Oo as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as n,j as e,D as i,E as t,F as c}from"./index-15BOvhp0.js";function o(){const a=n(),r=a["*"];if(!a.projectName)return e.jsx("div",{children:e.jsx("h2",{children:"Missing project name"})});if(!a.packageName)return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});const s=i({projectName:a.projectName,packageName:a.packageName,modelPath:r});return r?.endsWith(".malloy")?e.jsx(t,{resourceUri:s,runOnDemand:!0,maxResultSize:512*1024}):r?.endsWith(".malloynb")?e.jsx(c,{resourceUri:s,maxResultSize:1024*1024}):e.jsx("div",{children:e.jsxs("h2",{children:["Unrecognized file type: ",r]})})}export{o as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as n,d as c,j as e,D as t,G as o}from"./index-15BOvhp0.js";function l(){const{projectName:s,packageName:a}=n(),r=c();if(s)if(a){const i=t({projectName:s,packageName:a});return e.jsx(o,{onClickPackageFile:r,resourceUri:i})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing project name"})})}export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as a,t as n,j as e,D as o,H as c}from"./index-15BOvhp0.js";function u(){const r=a(),{projectName:s}=n();if(s){const t=o({projectName:s});return e.jsx(c,{onSelectPackage:r,resourceUri:t})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing project name"})})}export{u as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as o,j as r,A as s,S as n,v as t,T as a}from"./index-15BOvhp0.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(n,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(t,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(a,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as a,j as e,D as t,Z as c}from"./index-15BOvhp0.js";function d(){const{workspace:r,workbookPath:s,projectName:i,packageName:n}=a();if(r)if(s)if(i)if(n){const o=t({projectName:i,packageName:n});return e.jsx(c,{workbookPath:{path:s,workspace:r},resourceUri:o},`${s}`)}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing package name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing project name"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing workbook path"})});else return e.jsx("div",{children:e.jsx("h2",{children:"Missing workspace"})})}export{d as default};
|