From 9da86a21436b1adb0f08510c82b0cbe71c4c565b Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 15:56:36 +0200 Subject: [PATCH 01/20] chore(deps): migrate to TypeScript 6.0.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps `typescript` from `~5.2.2` to `~6.0.3` across all 43 packages that pin it, and pays off the tsconfig debt TypeScript 6.0 turns into hard errors. `packages/cubejs-client-ngx` stays on `~5.4.5` — Angular 18 pins it, and the package is nohoisted with its own copy. | Change | Action | | --- | --- | | `moduleResolution: node` (node10) deprecated → error | `module` + `moduleResolution: nodenext` in `tsconfig.base.json` and the standalone CJS configs | | `baseUrl` deprecated → error | removed from the base config and all 41 package configs; the `paths` block it anchored mapped `@cubejs-backend/*` to substitutions with no `*` and was inert | | default `types` changed from every `@types/*` to `[]` | `"types": ["*"]` restores the previous behaviour | | `rootDir` must now be explicit (TS5011) | set to the previously inferred common source dir in client-react, client-ws-transport and rust/cubestore | | default `noUncheckedSideEffectImports: true` | disabled in cubejs-playground, whose `.css` side-effect imports have no ambient declaration | Two packages need a resolution mode other than `nodenext`: - **schema-compiler** uses `moduleResolution: bundler` (with `module: commonjs`, a pair 6.0 newly permits, so emit is unchanged): antlr4 ships `types: index.d.cts` re-exporting `.d.ts` files that are ESM under its own `type: module`, so every re-export fails with TS2834 and the module resolves to nothing. - **client-react** and **playground** use `bundler`; they are bundled, not run by Node. nodenext emits `import()` verbatim instead of downlevelling it to `require()`. Both live sites are converted back to `require`, because jest cannot execute a native dynamic import in its CJS VM and most packages test against `dist/`: - `container.ts` loaded the user's `cube.js` through `import()` of an absolute path — fatal on Windows via the ESM loader. The `esModuleInterop` default-wrapping it relied on is now explicit. - `getDriver.ts` would have received the whole CommonJS module on `.default`. `BaseDriver`'s three lazy cloud-SDK loads become typed `require`s so they stay lazy. | Site | Cause | | --- | --- | | `env.ts` `getEnv` | `Parameters` now yields `any[]`, so every `getEnv('x', { dataSource })` call failed (1592 errors); the signature meant `Parameters[0]` all along | | `LocalQueueDriverConnection` | `@types/ramda` 0.27's `R.filter` returns a union that `R.pipe` cannot thread; replaced the two pipes with array methods | | `CubeSymbols` | the `Proxy` factories masquerade as cube definitions, now stated in their types | | `templates/utils.ts` | `reduce` seed `[]` infers `never[]` | | `native/js/index.ts` | `parseCubestoreResultMessage` is declared `ArrayBuffer` but the neon binding takes a `JsBuffer` | | `client-core/test/data-blending` | named imports from JSON are not allowed in an ES module (TS1544) | | `playground` ui-kit types | `@cube-dev/ui-kit` exports only `.`, so the deep `types/shared` import is unreachable and `tasty()`'s inferred type has no portable name (TS2883) | `cubejs-testing` moves to the end of the root reference list: its tests resolve the driver packages by name, and TypeScript 6 keeps that failed resolution in the cache shared across `tsc --build`, which broke materialize/crate/redshift on a cold build. `@typescript-eslint` 6.12 does not support TypeScript 6 (8.x peers `>=4.8.4 <6.1.0`), so it moves to `^8.46.0` with `eslint` at `^8.57.1` — no flat-config migration. The four stylistic rules v8 dropped (`semi`, `no-extra-semi`, `type-annotation-spacing`, `space-infix-ops`) come from `@stylistic/eslint-plugin-ts@^3`, the last line supporting ESLint 8. `ts-jest` widens to `^29.4.12`, which peers `typescript <7`. Verified: `yarn tsc` from clean, `yarn build`, `yarn lint`, `packages/cubejs-playground` `yarn build:lib`, and `yarn unit` per package — the only reds are pre-existing (schema-compiler `error-reporter`, `raw-time-dimension-timezone`, client-vue3) or environmental (backend-native port conflict, sqlite3 native binding). Co-Authored-By: Claude Opus 5 (1M context) --- package.json | 6 +- packages/cubejs-api-gateway/package.json | 2 +- packages/cubejs-api-gateway/tsconfig.json | 1 - packages/cubejs-athena-driver/package.json | 2 +- packages/cubejs-athena-driver/tsconfig.json | 1 - packages/cubejs-backend-cloud/package.json | 2 +- packages/cubejs-backend-cloud/tsconfig.json | 1 - packages/cubejs-backend-maven/package.json | 2 +- packages/cubejs-backend-maven/tsconfig.json | 1 - packages/cubejs-backend-native/js/index.ts | 2 +- packages/cubejs-backend-native/package.json | 2 +- packages/cubejs-backend-native/tsconfig.json | 1 - packages/cubejs-backend-shared/package.json | 4 +- packages/cubejs-backend-shared/src/env.ts | 2 +- packages/cubejs-backend-shared/tsconfig.json | 1 - packages/cubejs-base-driver/package.json | 4 +- packages/cubejs-base-driver/src/BaseDriver.ts | 12 +- .../cubejs-base-driver/tsconfig.jest.json | 1 - packages/cubejs-base-driver/tsconfig.json | 1 - packages/cubejs-bigquery-driver/package.json | 2 +- packages/cubejs-bigquery-driver/tsconfig.json | 1 - packages/cubejs-cli/package.json | 2 +- packages/cubejs-cli/tsconfig.json | 1 - .../cubejs-clickhouse-driver/package.json | 2 +- .../cubejs-clickhouse-driver/tsconfig.json | 1 - packages/cubejs-client-core/package.json | 2 +- .../test/data-blending.test.ts | 4 +- packages/cubejs-client-core/tsconfig.json | 2 +- packages/cubejs-client-dx/tsconfig.json | 4 +- packages/cubejs-client-react/package.json | 8 +- packages/cubejs-client-react/tsconfig.json | 4 +- .../cubejs-client-ws-transport/package.json | 2 +- .../cubejs-client-ws-transport/tsconfig.json | 5 +- packages/cubejs-crate-driver/package.json | 2 +- packages/cubejs-crate-driver/tsconfig.json | 4 +- packages/cubejs-cubestore-driver/package.json | 2 +- .../cubejs-cubestore-driver/tsconfig.json | 1 - .../package.json | 2 +- .../tsconfig.json | 1 - .../cubejs-dbt-schema-extension/package.json | 2 +- .../cubejs-dbt-schema-extension/tsconfig.json | 1 - packages/cubejs-dremio-driver/tsconfig.json | 1 - packages/cubejs-druid-driver/package.json | 2 +- packages/cubejs-druid-driver/tsconfig.json | 1 - packages/cubejs-duckdb-driver/package.json | 2 +- packages/cubejs-duckdb-driver/tsconfig.json | 1 - packages/cubejs-firebolt-driver/package.json | 2 +- packages/cubejs-firebolt-driver/tsconfig.json | 1 - packages/cubejs-jdbc-driver/package.json | 2 +- packages/cubejs-jdbc-driver/tsconfig.json | 1 - packages/cubejs-ksql-driver/package.json | 2 +- packages/cubejs-ksql-driver/tsconfig.json | 1 - packages/cubejs-linter/index.js | 10 +- packages/cubejs-linter/package.json | 9 +- .../cubejs-materialize-driver/package.json | 2 +- .../cubejs-materialize-driver/tsconfig.json | 4 +- packages/cubejs-mongobi-driver/package.json | 2 +- packages/cubejs-mongobi-driver/tsconfig.json | 1 - packages/cubejs-mssql-driver/tsconfig.json | 1 - packages/cubejs-mysql-driver/package.json | 2 +- packages/cubejs-mysql-driver/tsconfig.json | 1 - packages/cubejs-pinot-driver/package.json | 2 +- packages/cubejs-pinot-driver/tsconfig.json | 1 - packages/cubejs-playground/package.json | 2 +- .../components/EditQueryDialogForm.tsx | 2 +- .../components/MemberLabelText.tsx | 7 +- packages/cubejs-playground/tsconfig.json | 3 +- packages/cubejs-postgres-driver/package.json | 2 +- packages/cubejs-postgres-driver/tsconfig.json | 1 - packages/cubejs-prestodb-driver/package.json | 2 +- packages/cubejs-prestodb-driver/tsconfig.json | 1 - .../cubejs-query-orchestrator/package.json | 4 +- .../LocalQueueDriverConnection.ts | 20 +- .../tsconfig.jest.json | 1 - .../cubejs-query-orchestrator/tsconfig.json | 1 - packages/cubejs-questdb-driver/package.json | 2 +- packages/cubejs-questdb-driver/tsconfig.json | 1 - packages/cubejs-redshift-driver/package.json | 2 +- packages/cubejs-redshift-driver/tsconfig.json | 4 +- packages/cubejs-schema-compiler/package.json | 2 +- .../src/compiler/CubeSymbols.ts | 14 +- .../test/unit/folders.abstract.ts | 2 +- .../test/unit/switch-dimension.test.ts | 2 +- packages/cubejs-schema-compiler/tsconfig.json | 7 +- packages/cubejs-server-core/package.json | 2 +- packages/cubejs-server-core/tsconfig.json | 1 - packages/cubejs-server/package.json | 2 +- .../cubejs-server/src/server/container.ts | 14 +- packages/cubejs-server/tsconfig.json | 1 - packages/cubejs-snowflake-driver/package.json | 2 +- .../cubejs-snowflake-driver/tsconfig.json | 1 - packages/cubejs-templates/package.json | 2 +- packages/cubejs-templates/src/utils.ts | 2 +- packages/cubejs-templates/tsconfig.json | 1 - packages/cubejs-testing-drivers/package.json | 2 +- .../src/helpers/getDriver.ts | 16 +- packages/cubejs-testing-drivers/tsconfig.json | 1 - packages/cubejs-testing-shared/package.json | 2 +- packages/cubejs-testing-shared/tsconfig.json | 1 - packages/cubejs-testing/package.json | 2 +- packages/cubejs-testing/tsconfig.json | 1 - packages/cubejs-trino-driver/package.json | 2 +- packages/cubejs-trino-driver/tsconfig.json | 1 - rust/cubestore/package.json | 2 +- rust/cubestore/tsconfig.json | 6 +- tsconfig.base.json | 19 +- tsconfig.jest.json | 1 - tsconfig.json | 8 +- yarn.lock | 436 +++++++++++------- 109 files changed, 432 insertions(+), 332 deletions(-) diff --git a/package.json b/package.json index f8fdb09ad9d45..6e3036146151c 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,9 @@ "@rollup/plugin-commonjs": "^17.1.0", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^11.2.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/eslint-plugin": "^8.46.0", + "@typescript-eslint/parser": "^8.46.0", + "eslint": "^8.57.1", "@types/fs-extra": "^9.0.1", "@types/jest": "^29", "husky": "^5.0.4", @@ -59,7 +61,7 @@ "rollup": "2.80.0", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-tsconfig-paths": "^1.5.2", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "repository": { "type": "git", diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index 3d7ee10a72a82..e799d6e2d709e 100644 --- a/packages/cubejs-api-gateway/package.json +++ b/packages/cubejs-api-gateway/package.json @@ -66,7 +66,7 @@ "mysql": "^2.18.1", "should": "^13.2.3", "supertest": "^4.0.2", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-api-gateway/tsconfig.json b/packages/cubejs-api-gateway/tsconfig.json index 825db6ff7b9bd..90658e7078c9e 100644 --- a/packages/cubejs-api-gateway/tsconfig.json +++ b/packages/cubejs-api-gateway/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "noImplicitAny": false, }, diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index 200165b0fc348..c672ab10171ad 100644 --- a/packages/cubejs-athena-driver/package.json +++ b/packages/cubejs-athena-driver/package.json @@ -38,7 +38,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "@types/ramda": "^0.27.40", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-athena-driver/tsconfig.json b/packages/cubejs-athena-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-athena-driver/tsconfig.json +++ b/packages/cubejs-athena-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-backend-cloud/package.json b/packages/cubejs-backend-cloud/package.json index 4ba3a8c8f00fa..1c8df0d2b5811 100644 --- a/packages/cubejs-backend-cloud/package.json +++ b/packages/cubejs-backend-cloud/package.json @@ -34,7 +34,7 @@ "@types/fs-extra": "^9.0.8", "@types/jest": "^29", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "dependencies": { "@cubejs-backend/dotenv": "^9.0.2", diff --git a/packages/cubejs-backend-cloud/tsconfig.json b/packages/cubejs-backend-cloud/tsconfig.json index 77a1e19c77ba7..3b775262793da 100644 --- a/packages/cubejs-backend-cloud/tsconfig.json +++ b/packages/cubejs-backend-cloud/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "noImplicitAny": true, "strictNullChecks": true, "strictFunctionTypes": true, diff --git a/packages/cubejs-backend-maven/package.json b/packages/cubejs-backend-maven/package.json index b68dbc0d59be0..2a05e0d7b0f5b 100644 --- a/packages/cubejs-backend-maven/package.json +++ b/packages/cubejs-backend-maven/package.json @@ -40,7 +40,7 @@ "@types/jest": "^29", "@types/node": "^22", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-backend-maven/tsconfig.json b/packages/cubejs-backend-maven/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-backend-maven/tsconfig.json +++ b/packages/cubejs-backend-maven/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-backend-native/js/index.ts b/packages/cubejs-backend-native/js/index.ts index 0178709a8f5b7..a82b172cb4bfc 100644 --- a/packages/cubejs-backend-native/js/index.ts +++ b/packages/cubejs-backend-native/js/index.ts @@ -466,7 +466,7 @@ export const buildSqlAndParams = (cubeEvaluator: any): any[] => { export type ResultRow = Record; -export const parseCubestoreResultMessage = async (message: ArrayBuffer): Promise => { +export const parseCubestoreResultMessage = async (message: Buffer): Promise => { const native = loadNative(); const msg = await native.parseCubestoreResultMessage(message) as NativeQueryResultRef; diff --git a/packages/cubejs-backend-native/package.json b/packages/cubejs-backend-native/package.json index b74ef041dd1dc..6c721cd12035a 100644 --- a/packages/cubejs-backend-native/package.json +++ b/packages/cubejs-backend-native/package.json @@ -46,7 +46,7 @@ "jest": "^29", "jest-bench": "^29", "pg": "^8.11.3", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "uuid": "^11.1.1" }, "dependencies": { diff --git a/packages/cubejs-backend-native/tsconfig.json b/packages/cubejs-backend-native/tsconfig.json index 451dfb99dd029..07bc829a4f044 100644 --- a/packages/cubejs-backend-native/tsconfig.json +++ b/packages/cubejs-backend-native/tsconfig.json @@ -11,7 +11,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, } } diff --git a/packages/cubejs-backend-shared/package.json b/packages/cubejs-backend-shared/package.json index 92e8f3774e27a..64c3d5be2125f 100644 --- a/packages/cubejs-backend-shared/package.json +++ b/packages/cubejs-backend-shared/package.json @@ -36,8 +36,8 @@ "@types/shelljs": "^0.8.5", "@types/throttle-debounce": "^2.1.0", "jest": "^29", - "ts-jest": "^29", - "typescript": "~5.2.2" + "ts-jest": "^29.4.12", + "typescript": "~6.0.3" }, "dependencies": { "@oclif/color": "^0.1.2", diff --git a/packages/cubejs-backend-shared/src/env.ts b/packages/cubejs-backend-shared/src/env.ts index 6a8aaf4c42aff..44a94dd731dd1 100644 --- a/packages/cubejs-backend-shared/src/env.ts +++ b/packages/cubejs-backend-shared/src/env.ts @@ -2115,7 +2115,7 @@ const variables: Record any> = { type Vars = typeof variables; -export function getEnv(key: T, opts?: Parameters): ReturnType { +export function getEnv(key: T, opts?: Parameters[0]): ReturnType { if (key in variables) { return variables[key](opts); } diff --git a/packages/cubejs-backend-shared/tsconfig.json b/packages/cubejs-backend-shared/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-backend-shared/tsconfig.json +++ b/packages/cubejs-backend-shared/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-base-driver/package.json b/packages/cubejs-base-driver/package.json index 7a53371944531..9d918c6c76680 100644 --- a/packages/cubejs-base-driver/package.json +++ b/packages/cubejs-base-driver/package.json @@ -41,8 +41,8 @@ "@types/jest": "^29", "@types/node": "^22", "jest": "^29", - "ts-jest": "^29", - "typescript": "~5.2.2" + "ts-jest": "^29.4.12", + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-base-driver/src/BaseDriver.ts b/packages/cubejs-base-driver/src/BaseDriver.ts index f38da86a46b05..35463a703fbd2 100644 --- a/packages/cubejs-base-driver/src/BaseDriver.ts +++ b/packages/cubejs-base-driver/src/BaseDriver.ts @@ -686,7 +686,9 @@ export abstract class BaseDriver implements DriverInterface { prefix: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite heavy. - return (await import('./storage-fs/aws.fs')).extractUnloadedFilesFromS3(clientOptions, bucketName, prefix); + // eslint-disable-next-line global-require + const { extractUnloadedFilesFromS3 } = require('./storage-fs/aws.fs') as typeof import('./storage-fs/aws.fs.js'); + return extractUnloadedFilesFromS3(clientOptions, bucketName, prefix); } /** @@ -698,7 +700,9 @@ export abstract class BaseDriver implements DriverInterface { tableName: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite heavy. - return (await import('./storage-fs/gcs.fs')).extractFilesFromGCS(gcsConfig, bucketName, tableName); + // eslint-disable-next-line global-require + const { extractFilesFromGCS } = require('./storage-fs/gcs.fs') as typeof import('./storage-fs/gcs.fs.js'); + return extractFilesFromGCS(gcsConfig, bucketName, tableName); } protected async extractFilesFromAzure( @@ -707,6 +711,8 @@ export abstract class BaseDriver implements DriverInterface { tableName: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite (extremely) heavy. - return (await import('./storage-fs/azure.fs')).extractFilesFromAzure(azureConfig, bucketName, tableName); + // eslint-disable-next-line global-require + const { extractFilesFromAzure } = require('./storage-fs/azure.fs') as typeof import('./storage-fs/azure.fs.js'); + return extractFilesFromAzure(azureConfig, bucketName, tableName); } } diff --git a/packages/cubejs-base-driver/tsconfig.jest.json b/packages/cubejs-base-driver/tsconfig.jest.json index 495e82a76cbc2..345eb438b9c66 100644 --- a/packages/cubejs-base-driver/tsconfig.jest.json +++ b/packages/cubejs-base-driver/tsconfig.jest.json @@ -1,7 +1,6 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "module": "CommonJS", "paths": { "@cubejs-backend/shared": ["../cubejs-backend-shared/src"] } diff --git a/packages/cubejs-base-driver/tsconfig.json b/packages/cubejs-base-driver/tsconfig.json index c3af6f40ae9a7..25a0f96dc99b9 100644 --- a/packages/cubejs-base-driver/tsconfig.json +++ b/packages/cubejs-base-driver/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true }, } diff --git a/packages/cubejs-bigquery-driver/package.json b/packages/cubejs-bigquery-driver/package.json index f6535af0993eb..c065c0ed46ccd 100644 --- a/packages/cubejs-bigquery-driver/package.json +++ b/packages/cubejs-bigquery-driver/package.json @@ -43,7 +43,7 @@ "@types/jest": "^29", "@types/ramda": "^0.27.40", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "publishConfig": { diff --git a/packages/cubejs-bigquery-driver/tsconfig.json b/packages/cubejs-bigquery-driver/tsconfig.json index b5f70ed64aff3..17588e557991c 100644 --- a/packages/cubejs-bigquery-driver/tsconfig.json +++ b/packages/cubejs-bigquery-driver/tsconfig.json @@ -8,7 +8,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "resolveJsonModule": true } } diff --git a/packages/cubejs-cli/package.json b/packages/cubejs-cli/package.json index 7b6340405012f..07494ee8d4401 100644 --- a/packages/cubejs-cli/package.json +++ b/packages/cubejs-cli/package.json @@ -63,7 +63,7 @@ "@types/semver": "^7.5.8", "husky": "^4.2.3", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-cli/tsconfig.json b/packages/cubejs-cli/tsconfig.json index d8f5b4c0b85c2..6e7d4656c21a6 100644 --- a/packages/cubejs-cli/tsconfig.json +++ b/packages/cubejs-cli/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "checkJs": true, "noImplicitAny": false, diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json index 1be0fa9791ddb..75bb0aa3bf322 100644 --- a/packages/cubejs-clickhouse-driver/package.json +++ b/packages/cubejs-clickhouse-driver/package.json @@ -40,7 +40,7 @@ "@cubejs-backend/testing-shared": "1.7.35", "@types/jest": "^29", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-clickhouse-driver/tsconfig.json b/packages/cubejs-clickhouse-driver/tsconfig.json index b57e5e39ce673..32ac4cc6a946f 100644 --- a/packages/cubejs-clickhouse-driver/tsconfig.json +++ b/packages/cubejs-clickhouse-driver/tsconfig.json @@ -8,6 +8,5 @@ "allowJs": true, "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-client-core/package.json b/packages/cubejs-client-core/package.json index e0ec9f5bab5d4..49b8cafdc5ef2 100644 --- a/packages/cubejs-client-core/package.json +++ b/packages/cubejs-client-core/package.json @@ -65,7 +65,7 @@ "@types/moment-range": "^4.0.0", "@types/ramda": "^0.27.34", "@vitest/coverage-v8": "^4", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "vitest": "^4" }, "eslintConfig": { diff --git a/packages/cubejs-client-core/test/data-blending.test.ts b/packages/cubejs-client-core/test/data-blending.test.ts index b6e2d95dfe739..39ef3e351dc75 100644 --- a/packages/cubejs-client-core/test/data-blending.test.ts +++ b/packages/cubejs-client-core/test/data-blending.test.ts @@ -1,5 +1,7 @@ import ResultSet from '../src/ResultSet.js'; -import { loadResponse, loadResponseWithoutDateRange } from './fixtures/datablending/load-responses.json'; +import loadResponses from './fixtures/datablending/load-responses.json' with { type: 'json' }; + +const { loadResponse, loadResponseWithoutDateRange } = loadResponses; describe('data blending', () => { const resultSet1 = new ResultSet(loadResponse as any); diff --git a/packages/cubejs-client-core/tsconfig.json b/packages/cubejs-client-core/tsconfig.json index 71edf4ec8cefc..cf02c9707c93f 100644 --- a/packages/cubejs-client-core/tsconfig.json +++ b/packages/cubejs-client-core/tsconfig.json @@ -9,6 +9,7 @@ "lib": ["dom", "dom.iterable", "ES2022"], "module": "NodeNext", "moduleResolution": "NodeNext", + "types": ["*"], "composite": true, "noEmitOnError": true, "declaration": true, @@ -29,7 +30,6 @@ "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "resolveJsonModule": true, } } diff --git a/packages/cubejs-client-dx/tsconfig.json b/packages/cubejs-client-dx/tsconfig.json index d7a96505a301b..0215518a4633f 100644 --- a/packages/cubejs-client-dx/tsconfig.json +++ b/packages/cubejs-client-dx/tsconfig.json @@ -2,7 +2,9 @@ "compilerOptions": { "lib": ["es2017"], "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "module": "nodenext", + "moduleResolution": "nodenext", + "types": ["*"], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", /* Generates a sourcemap for each corresponding '.d.ts' file. */ diff --git a/packages/cubejs-client-react/package.json b/packages/cubejs-client-react/package.json index a81f421f48620..94ed72bda7fc5 100644 --- a/packages/cubejs-client-react/package.json +++ b/packages/cubejs-client-react/package.json @@ -34,16 +34,16 @@ "@babel/core": "^7.13.8", "@types/ramda": "^0.27.40", "@types/react": "^16.9.41", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "eslint": "^7.21.0", + "@typescript-eslint/eslint-plugin": "^8.46.0", + "@typescript-eslint/parser": "^8.46.0", + "eslint": "^8.57.1", "eslint-config-airbnb": "^18.0.1", "eslint-config-airbnb-base": "^14.0.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-node": "^10.0.0", "eslint-plugin-react": "^7.15.1", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "peerDependencies": { "react": ">=16.10.2" diff --git a/packages/cubejs-client-react/tsconfig.json b/packages/cubejs-client-react/tsconfig.json index 8e72608e18dc1..1c65e39ff4979 100644 --- a/packages/cubejs-client-react/tsconfig.json +++ b/packages/cubejs-client-react/tsconfig.json @@ -4,11 +4,13 @@ "lib": ["dom", "dom.iterable", "es2020"], "target": "es2020", "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", + "types": ["*"], "jsx": "react", "declaration": true, "declarationMap": true, "declarationDir": "./dist", + "rootDir": "./src", "emitDeclarationOnly": true, "strict": true, "noImplicitAny": true, diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json index a49abe0dcda64..da6a92c680a7f 100644 --- a/packages/cubejs-client-ws-transport/package.json +++ b/packages/cubejs-client-ws-transport/package.json @@ -35,7 +35,7 @@ "@babel/preset-typescript": "^7.12.1", "@cubejs-backend/linter": "1.7.35", "@types/ws": "^7.2.9", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-client-ws-transport/tsconfig.json b/packages/cubejs-client-ws-transport/tsconfig.json index d7a96505a301b..febc8a6a05b16 100644 --- a/packages/cubejs-client-ws-transport/tsconfig.json +++ b/packages/cubejs-client-ws-transport/tsconfig.json @@ -2,10 +2,13 @@ "compilerOptions": { "lib": ["es2017"], "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "module": "nodenext", + "moduleResolution": "nodenext", + "types": ["*"], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "rootDir": "./src", "sourceMap": false, /* Generates corresponding '.map' file. */ "outDir": "./temp", /* Redirect output structure to the directory. */ "strict": true, /* Enable all strict type-checking options. */ diff --git a/packages/cubejs-crate-driver/package.json b/packages/cubejs-crate-driver/package.json index c2fe11af777bf..352b7a79511f0 100644 --- a/packages/cubejs-crate-driver/package.json +++ b/packages/cubejs-crate-driver/package.json @@ -37,7 +37,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-crate-driver/tsconfig.json b/packages/cubejs-crate-driver/tsconfig.json index 4ca28b45e1100..78b3ab2ba898e 100644 --- a/packages/cubejs-crate-driver/tsconfig.json +++ b/packages/cubejs-crate-driver/tsconfig.json @@ -7,6 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", - } + }, + "references": [{ "path": "../cubejs-postgres-driver" }] } diff --git a/packages/cubejs-cubestore-driver/package.json b/packages/cubejs-cubestore-driver/package.json index d4bbf5041d070..a9a8e5f962b66 100644 --- a/packages/cubejs-cubestore-driver/package.json +++ b/packages/cubejs-cubestore-driver/package.json @@ -47,7 +47,7 @@ "@types/node": "^22", "@types/ws": "^7.4.0", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "publishConfig": { diff --git a/packages/cubejs-cubestore-driver/tsconfig.json b/packages/cubejs-cubestore-driver/tsconfig.json index 33e83c3680f9f..6b631c947bd31 100644 --- a/packages/cubejs-cubestore-driver/tsconfig.json +++ b/packages/cubejs-cubestore-driver/tsconfig.json @@ -9,6 +9,5 @@ "noImplicitAny": false, "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } diff --git a/packages/cubejs-databricks-jdbc-driver/package.json b/packages/cubejs-databricks-jdbc-driver/package.json index 7db7d981d2394..00b9b65428476 100644 --- a/packages/cubejs-databricks-jdbc-driver/package.json +++ b/packages/cubejs-databricks-jdbc-driver/package.json @@ -45,7 +45,7 @@ "@types/node": "^22", "@types/ramda": "^0.27.34", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-databricks-jdbc-driver/tsconfig.json b/packages/cubejs-databricks-jdbc-driver/tsconfig.json index 889114bc38306..f84ebd107ad81 100644 --- a/packages/cubejs-databricks-jdbc-driver/tsconfig.json +++ b/packages/cubejs-databricks-jdbc-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } diff --git a/packages/cubejs-dbt-schema-extension/package.json b/packages/cubejs-dbt-schema-extension/package.json index 597a6efeb02d1..ae9007fb2d8c3 100644 --- a/packages/cubejs-dbt-schema-extension/package.json +++ b/packages/cubejs-dbt-schema-extension/package.json @@ -36,7 +36,7 @@ "@types/jest": "^29", "jest": "^29", "stream-to-array": "^2.3.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "eslintConfig": { "extends": "../cubejs-linter" diff --git a/packages/cubejs-dbt-schema-extension/tsconfig.json b/packages/cubejs-dbt-schema-extension/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-dbt-schema-extension/tsconfig.json +++ b/packages/cubejs-dbt-schema-extension/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-dremio-driver/tsconfig.json b/packages/cubejs-dremio-driver/tsconfig.json index 6af4af6de9a44..fcb143eff494c 100644 --- a/packages/cubejs-dremio-driver/tsconfig.json +++ b/packages/cubejs-dremio-driver/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "resolveJsonModule": true } } diff --git a/packages/cubejs-druid-driver/package.json b/packages/cubejs-druid-driver/package.json index fdbde021c9853..e74b491a877d5 100644 --- a/packages/cubejs-druid-driver/package.json +++ b/packages/cubejs-druid-driver/package.json @@ -39,7 +39,7 @@ "@types/node": "^22", "jest": "^29", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-druid-driver/tsconfig.json b/packages/cubejs-druid-driver/tsconfig.json index 8cbf0255db679..2935a7e4f1695 100644 --- a/packages/cubejs-druid-driver/tsconfig.json +++ b/packages/cubejs-druid-driver/tsconfig.json @@ -8,6 +8,5 @@ "noImplicitAny": false, "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-duckdb-driver/package.json b/packages/cubejs-duckdb-driver/package.json index eb93838618d83..03926dcf5a7ad 100644 --- a/packages/cubejs-duckdb-driver/package.json +++ b/packages/cubejs-duckdb-driver/package.json @@ -40,7 +40,7 @@ "@types/jest": "^29", "@types/node": "^22", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-duckdb-driver/tsconfig.json b/packages/cubejs-duckdb-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-duckdb-driver/tsconfig.json +++ b/packages/cubejs-duckdb-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-firebolt-driver/package.json b/packages/cubejs-firebolt-driver/package.json index 7588b3cfd73d4..e2d1f4727331d 100644 --- a/packages/cubejs-firebolt-driver/package.json +++ b/packages/cubejs-firebolt-driver/package.json @@ -37,7 +37,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-firebolt-driver/tsconfig.json b/packages/cubejs-firebolt-driver/tsconfig.json index 6af4af6de9a44..fcb143eff494c 100644 --- a/packages/cubejs-firebolt-driver/tsconfig.json +++ b/packages/cubejs-firebolt-driver/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "resolveJsonModule": true } } diff --git a/packages/cubejs-jdbc-driver/package.json b/packages/cubejs-jdbc-driver/package.json index 8eb323229effd..995f5e3d57559 100644 --- a/packages/cubejs-jdbc-driver/package.json +++ b/packages/cubejs-jdbc-driver/package.json @@ -44,6 +44,6 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@types/node": "^22", - "typescript": "~5.2.2" + "typescript": "~6.0.3" } } diff --git a/packages/cubejs-jdbc-driver/tsconfig.json b/packages/cubejs-jdbc-driver/tsconfig.json index 1de3aa569a938..2aa9ba9e86979 100644 --- a/packages/cubejs-jdbc-driver/tsconfig.json +++ b/packages/cubejs-jdbc-driver/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "checkJs": false } diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json index dafe84350841a..d72f6b8df7cac 100644 --- a/packages/cubejs-ksql-driver/package.json +++ b/packages/cubejs-ksql-driver/package.json @@ -42,6 +42,6 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", - "typescript": "~5.2.2" + "typescript": "~6.0.3" } } diff --git a/packages/cubejs-ksql-driver/tsconfig.json b/packages/cubejs-ksql-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-ksql-driver/tsconfig.json +++ b/packages/cubejs-ksql-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-linter/index.js b/packages/cubejs-linter/index.js index 9d2c470987ab1..2e83c11f64c56 100644 --- a/packages/cubejs-linter/index.js +++ b/packages/cubejs-linter/index.js @@ -4,7 +4,7 @@ module.exports = { env: { node: true, }, - plugins: ['import', '@typescript-eslint/eslint-plugin'], + plugins: ['import', '@typescript-eslint/eslint-plugin', '@stylistic/ts'], parser: '@typescript-eslint/parser', parserOptions: { sourceType: 'module', @@ -43,7 +43,7 @@ module.exports = { 'no-empty-function': 'off', '@typescript-eslint/no-empty-function': 'error', 'no-extra-semi': 'off', - '@typescript-eslint/no-extra-semi': 'error', + '@stylistic/ts/no-extra-semi': 'error', 'no-underscore-dangle': 'off', 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': [ @@ -57,8 +57,8 @@ module.exports = { '@typescript-eslint/prefer-as-const': 'error', '@typescript-eslint/prefer-namespace-keyword': 'error', '@typescript-eslint/triple-slash-reference': 'error', - '@typescript-eslint/type-annotation-spacing': 'error', - '@typescript-eslint/space-infix-ops': 'error', + '@stylistic/ts/type-annotation-spacing': 'error', + '@stylistic/ts/space-infix-ops': 'error', 'no-restricted-syntax': [ 'error', { @@ -107,7 +107,7 @@ module.exports = { '@typescript-eslint/no-shadow': ['error', { ignoreTypeValueShadow: true }], 'no-duplicate-imports': 'off', semi: 'off', - '@typescript-eslint/semi': 'error', + '@stylistic/ts/semi': 'error', }, }, ], diff --git a/packages/cubejs-linter/package.json b/packages/cubejs-linter/package.json index 54f23ebb44e98..3d2955f8b9481 100644 --- a/packages/cubejs-linter/package.json +++ b/packages/cubejs-linter/package.json @@ -13,12 +13,13 @@ }, "main": "index.js", "peerDependencies": { - "eslint": ">=7.21" + "eslint": ">=8.57" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "eslint": "^8.54.0", + "@stylistic/eslint-plugin-ts": "^3.1.0", + "@typescript-eslint/eslint-plugin": "^8.46.0", + "@typescript-eslint/parser": "^8.46.0", + "eslint": "^8.57.1", "eslint-config-airbnb-base": "^14.2.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-node": "^10.0.0" diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json index 6f92764586bf7..0c44544d2fbe3 100644 --- a/packages/cubejs-materialize-driver/package.json +++ b/packages/cubejs-materialize-driver/package.json @@ -36,7 +36,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing": "1.7.35", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-materialize-driver/tsconfig.json b/packages/cubejs-materialize-driver/tsconfig.json index 932a7f7fc00a7..2853f0ed06253 100644 --- a/packages/cubejs-materialize-driver/tsconfig.json +++ b/packages/cubejs-materialize-driver/tsconfig.json @@ -4,6 +4,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." - } + }, + "references": [{ "path": "../cubejs-postgres-driver" }] } diff --git a/packages/cubejs-mongobi-driver/package.json b/packages/cubejs-mongobi-driver/package.json index ab1f021d97a51..59c48792e7d30 100644 --- a/packages/cubejs-mongobi-driver/package.json +++ b/packages/cubejs-mongobi-driver/package.json @@ -40,7 +40,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "jest": { "testEnvironment": "node" diff --git a/packages/cubejs-mongobi-driver/tsconfig.json b/packages/cubejs-mongobi-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-mongobi-driver/tsconfig.json +++ b/packages/cubejs-mongobi-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-mssql-driver/tsconfig.json b/packages/cubejs-mssql-driver/tsconfig.json index 014fba0433cbb..970aa4c02b456 100644 --- a/packages/cubejs-mssql-driver/tsconfig.json +++ b/packages/cubejs-mssql-driver/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "typeRoots": ["./node_modules/@types", "./src/types"] } } diff --git a/packages/cubejs-mysql-driver/package.json b/packages/cubejs-mysql-driver/package.json index 0207029ac7c01..1a6fc999dbbb5 100644 --- a/packages/cubejs-mysql-driver/package.json +++ b/packages/cubejs-mysql-driver/package.json @@ -38,7 +38,7 @@ "jest": "^29", "stream-to-array": "^2.3.0", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "eslintConfig": { "extends": "../cubejs-linter" diff --git a/packages/cubejs-mysql-driver/tsconfig.json b/packages/cubejs-mysql-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-mysql-driver/tsconfig.json +++ b/packages/cubejs-mysql-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json index 8da3b70029027..077877002fd1a 100644 --- a/packages/cubejs-pinot-driver/package.json +++ b/packages/cubejs-pinot-driver/package.json @@ -44,7 +44,7 @@ "jest": "^29", "should": "^13.2.3", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "eslintConfig": { "extends": "../cubejs-linter" diff --git a/packages/cubejs-pinot-driver/tsconfig.json b/packages/cubejs-pinot-driver/tsconfig.json index 889114bc38306..f84ebd107ad81 100644 --- a/packages/cubejs-pinot-driver/tsconfig.json +++ b/packages/cubejs-pinot-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } diff --git a/packages/cubejs-playground/package.json b/packages/cubejs-playground/package.json index 247385d722046..aabf3d1f1619f 100644 --- a/packages/cubejs-playground/package.json +++ b/packages/cubejs-playground/package.json @@ -90,7 +90,7 @@ "react-dom": "^18.3.1", "styled-components": "6.1.12", "tslib": "^2.3.0", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "vite": "^8", "vitest": "^4" }, diff --git a/packages/cubejs-playground/src/QueryBuilderV2/components/EditQueryDialogForm.tsx b/packages/cubejs-playground/src/QueryBuilderV2/components/EditQueryDialogForm.tsx index b67d667ae5a38..e5ff24cbbc98a 100644 --- a/packages/cubejs-playground/src/QueryBuilderV2/components/EditQueryDialogForm.tsx +++ b/packages/cubejs-playground/src/QueryBuilderV2/components/EditQueryDialogForm.tsx @@ -1,6 +1,6 @@ import { DialogForm, LoadingIcon, Radio, Space, TextArea, useForm } from '@cube-dev/ui-kit'; import { Meta, Query } from '@cubejs-client/core'; -import { ValidationRule } from '@cube-dev/ui-kit/types/shared'; +import { ValidationRule } from '@cube-dev/ui-kit'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { parse as BestEffortJsonParse } from 'best-effort-json-parser'; diff --git a/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx b/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx index 3a70aa7b9a8be..b2bad82a9c50c 100644 --- a/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx +++ b/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx @@ -1,6 +1,9 @@ -import { tasty } from '@cube-dev/ui-kit'; +import { Props, tasty } from '@cube-dev/ui-kit'; +import { ComponentType } from 'react'; -export const MemberLabelText = tasty({ +// Annotated because ui-kit re-exports neither `VariantMap` nor `WithVariant`, so the inferred +// type has no portable name (TS2883). +export const MemberLabelText: ComponentType = tasty({ qa: 'MemberLabel', 'aria-label': 'Member label', styles: { diff --git a/packages/cubejs-playground/tsconfig.json b/packages/cubejs-playground/tsconfig.json index 6691cf10b214a..03ed29dbc82f8 100644 --- a/packages/cubejs-playground/tsconfig.json +++ b/packages/cubejs-playground/tsconfig.json @@ -23,7 +23,8 @@ "strictNullChecks": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", + "moduleResolution": "bundler", + "noUncheckedSideEffectImports": false, "resolveJsonModule": true, "isolatedModules": true, "noImplicitAny": false, diff --git a/packages/cubejs-postgres-driver/package.json b/packages/cubejs-postgres-driver/package.json index 5a1cc38e1f864..a9ee37e26e18b 100644 --- a/packages/cubejs-postgres-driver/package.json +++ b/packages/cubejs-postgres-driver/package.json @@ -39,7 +39,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-postgres-driver/tsconfig.json b/packages/cubejs-postgres-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-postgres-driver/tsconfig.json +++ b/packages/cubejs-postgres-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json index b1b3774cd383d..21f489a5da33b 100644 --- a/packages/cubejs-prestodb-driver/package.json +++ b/packages/cubejs-prestodb-driver/package.json @@ -43,7 +43,7 @@ "jest": "^29", "should": "^13.2.3", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "eslintConfig": { "extends": "../cubejs-linter" diff --git a/packages/cubejs-prestodb-driver/tsconfig.json b/packages/cubejs-prestodb-driver/tsconfig.json index 889114bc38306..f84ebd107ad81 100644 --- a/packages/cubejs-prestodb-driver/tsconfig.json +++ b/packages/cubejs-prestodb-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } diff --git a/packages/cubejs-query-orchestrator/package.json b/packages/cubejs-query-orchestrator/package.json index 22ed94a771ea9..2bbef3e9583cb 100644 --- a/packages/cubejs-query-orchestrator/package.json +++ b/packages/cubejs-query-orchestrator/package.json @@ -44,8 +44,8 @@ "@types/ramda": "^0.27.32", "@types/yargs": "^17.0.31", "jest": "^29", - "ts-jest": "^29", - "typescript": "~5.2.2", + "ts-jest": "^29.4.12", + "typescript": "~6.0.3", "yargs": "^17.7.1" }, "license": "Apache-2.0", diff --git a/packages/cubejs-query-orchestrator/src/orchestrator/LocalQueueDriverConnection.ts b/packages/cubejs-query-orchestrator/src/orchestrator/LocalQueueDriverConnection.ts index 9ac867ae02c78..a03fa656dd178 100644 --- a/packages/cubejs-query-orchestrator/src/orchestrator/LocalQueueDriverConnection.ts +++ b/packages/cubejs-query-orchestrator/src/orchestrator/LocalQueueDriverConnection.ts @@ -138,22 +138,18 @@ export class LocalQueueDriverConnection implements QueueDriverConnectionInterfac return null; } + private orderedQueueItems(queueObj: Record, orderFilterLessThan?: number): QueueItem[] { + return Object.values(queueObj) + .filter((q) => !orderFilterLessThan || q.order < orderFilterLessThan) + .sort((a, b) => a.order - b.order); + } + protected queueArray(queueObj: Record, orderFilterLessThan?: number): string[] { - return R.pipe( - R.values, - R.filter(orderFilterLessThan ? (q: QueueItem) => q.order < orderFilterLessThan : R.identity), - R.sortBy((q: QueueItem) => q.order), - R.map((q: QueueItem) => q.key) - )(queueObj); + return this.orderedQueueItems(queueObj, orderFilterLessThan).map((q) => q.key); } protected queueArrayAsTuple(queueObj: Record, orderFilterLessThan?: number): QueryKeysTuple[] { - return R.pipe( - R.values, - R.filter(orderFilterLessThan ? (q: QueueItem) => q.order < orderFilterLessThan : R.identity), - R.sortBy((q: QueueItem) => q.order), - R.map((q: QueueItem): QueryKeysTuple => [q.key, q.queueId]) - )(queueObj); + return this.orderedQueueItems(queueObj, orderFilterLessThan).map((q) => [q.key, q.queueId]); } public async addToQueue(queryKey: QueryKey, queryHandler: string, query: AddToQueueQuery, priority: QueuePriority, options: AddToQueueOptions): Promise { diff --git a/packages/cubejs-query-orchestrator/tsconfig.jest.json b/packages/cubejs-query-orchestrator/tsconfig.jest.json index dfe2dad018afe..474e0ec598c10 100644 --- a/packages/cubejs-query-orchestrator/tsconfig.jest.json +++ b/packages/cubejs-query-orchestrator/tsconfig.jest.json @@ -1,7 +1,6 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "module": "CommonJS", "paths": { "@cubejs-backend/shared": ["../cubejs-backend-shared/src"], "@cubejs-backend/base-driver": ["../cubejs-base-driver/src"] diff --git a/packages/cubejs-query-orchestrator/tsconfig.json b/packages/cubejs-query-orchestrator/tsconfig.json index 604c535fea438..16633fbebc20c 100644 --- a/packages/cubejs-query-orchestrator/tsconfig.json +++ b/packages/cubejs-query-orchestrator/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "noImplicitAny": false, "strictNullChecks": false, diff --git a/packages/cubejs-questdb-driver/package.json b/packages/cubejs-questdb-driver/package.json index f0bd820169b3b..5295f3e68d15c 100644 --- a/packages/cubejs-questdb-driver/package.json +++ b/packages/cubejs-questdb-driver/package.json @@ -40,7 +40,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-questdb-driver/tsconfig.json b/packages/cubejs-questdb-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-questdb-driver/tsconfig.json +++ b/packages/cubejs-questdb-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-redshift-driver/package.json b/packages/cubejs-redshift-driver/package.json index 1e07ba1991c45..04689f1047322 100644 --- a/packages/cubejs-redshift-driver/package.json +++ b/packages/cubejs-redshift-driver/package.json @@ -34,7 +34,7 @@ "license": "Apache-2.0", "devDependencies": { "@cubejs-backend/linter": "1.7.35", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-redshift-driver/tsconfig.json b/packages/cubejs-redshift-driver/tsconfig.json index 4ca28b45e1100..78b3ab2ba898e 100644 --- a/packages/cubejs-redshift-driver/tsconfig.json +++ b/packages/cubejs-redshift-driver/tsconfig.json @@ -7,6 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", - } + }, + "references": [{ "path": "../cubejs-postgres-driver" }] } diff --git a/packages/cubejs-schema-compiler/package.json b/packages/cubejs-schema-compiler/package.json index 410cca4f8f4ba..53b8648e12917 100644 --- a/packages/cubejs-schema-compiler/package.json +++ b/packages/cubejs-schema-compiler/package.json @@ -82,7 +82,7 @@ "source-map-support": "^0.5.19", "sqlstring": "^2.3.1", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts index e77f848b3fa94..23766167c3f80 100644 --- a/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts +++ b/packages/cubejs-schema-compiler/src/compiler/CubeSymbols.ts @@ -1234,7 +1234,7 @@ export class CubeSymbols implements TranspilerSymbolResolver, CompilerInterface // arrayOrSingle is of type `T`, and we just checked that it is an array // Which means that both `T` and result must be arrays // For any branch of return type that can contain array it's OK to return array - return options.originalSorting ? references : R.sortBy(R.identity, references) as any; + return (options.originalSorting ? references : R.sortBy(R.identity, references)) as any; } public evaluateReference( @@ -1366,7 +1366,7 @@ export class CubeSymbols implements TranspilerSymbolResolver, CompilerInterface } protected filtersProxyDep() { - return new Proxy({}, { + return new Proxy({} as CubeSymbolsDefinition, { get: (target, name) => { if (name === '_objectWithResolvedProperties') { return true; @@ -1447,13 +1447,13 @@ export class CubeSymbols implements TranspilerSymbolResolver, CompilerInterface return cube || this.symbols[cubeName]?.[name]; } - protected cubeReferenceProxy(cubeName, joinHints?: any[], refProperty?: any) { + protected cubeReferenceProxy(cubeName, joinHints?: any[], refProperty?: any): CubeSymbolsDefinition { if (joinHints) { joinHints = joinHints.concat(cubeName); } const self = this; const { sqlResolveFn, cubeAliasFn, query, cubeReferencesUsed } = self.resolveSymbolsCallContext || {}; - return new Proxy({}, { + return new Proxy({} as CubeSymbolsDefinition, { get: (v, propertyName) => { if (propertyName === '_objectWithResolvedProperties') { return true; @@ -1548,10 +1548,10 @@ export class CubeSymbols implements TranspilerSymbolResolver, CompilerInterface return cube?.[dimName]?.[gr]?.[granName]; } - protected cubeDependenciesProxy(parentIndex, cubeName) { + protected cubeDependenciesProxy(parentIndex, cubeName): CubeSymbolsDefinition { const self = this; const { depsResolveFn } = self.resolveSymbolsCallContext || {}; - return new Proxy({}, { + return new Proxy({} as CubeSymbolsDefinition, { get: (v, propertyName) => { if (propertyName === '__cubeName') { depsResolveFn('__cubeName', parentIndex); @@ -1593,7 +1593,7 @@ export class CubeSymbols implements TranspilerSymbolResolver, CompilerInterface protected timeDimDependenciesProxy(parentIndex) { const self = this; const { depsResolveFn } = self.resolveSymbolsCallContext || {}; - return new Proxy({}, { + return new Proxy({} as CubeSymbolsDefinition, { get: (v, propertyName) => { if (propertyName === '_objectWithResolvedProperties') { return true; diff --git a/packages/cubejs-schema-compiler/test/unit/folders.abstract.ts b/packages/cubejs-schema-compiler/test/unit/folders.abstract.ts index 1c185c8ba233f..5189a820d4310 100644 --- a/packages/cubejs-schema-compiler/test/unit/folders.abstract.ts +++ b/packages/cubejs-schema-compiler/test/unit/folders.abstract.ts @@ -1,4 +1,4 @@ -import { CubeToMetaTransformer } from 'src/compiler/CubeToMetaTransformer'; +import { CubeToMetaTransformer } from '../../src/compiler/CubeToMetaTransformer'; type PreparedCompiler = { compiler: any; diff --git a/packages/cubejs-schema-compiler/test/unit/switch-dimension.test.ts b/packages/cubejs-schema-compiler/test/unit/switch-dimension.test.ts index 60c8baa0a1318..2e1ff9dcba120 100644 --- a/packages/cubejs-schema-compiler/test/unit/switch-dimension.test.ts +++ b/packages/cubejs-schema-compiler/test/unit/switch-dimension.test.ts @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; -import { CubeToMetaTransformer } from 'src/compiler/CubeToMetaTransformer'; +import { CubeToMetaTransformer } from '../../src/compiler/CubeToMetaTransformer'; import { prepareYamlCompiler } from './PrepareCompiler'; describe('Switch Dimension', () => { diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index 36bebbc9a8763..c0a3a87755cde 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -2,9 +2,14 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { + // antlr4 ships `types: index.d.cts` re-exporting `.d.ts` files that are ESM under its + // `type: module`, so every re-export fails under node16/nodenext resolution (TS2834) and + // the module resolves to nothing. `bundler` resolution ignores the CJS/ESM split; emit is + // unaffected because `module` stays commonjs. + "module": "commonjs", + "moduleResolution": "bundler", "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "checkJs": false, "noImplicitAny": false, diff --git a/packages/cubejs-server-core/package.json b/packages/cubejs-server-core/package.json index 43558a47359cc..56c9b44f16eb4 100644 --- a/packages/cubejs-server-core/package.json +++ b/packages/cubejs-server-core/package.json @@ -73,7 +73,7 @@ "@types/node-fetch": "^2.5.7", "@types/ramda": "^0.27.34", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index 97b648681f042..9c870d18a9065 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -7,7 +7,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "noImplicitAny": false, "strictNullChecks": false, diff --git a/packages/cubejs-server/package.json b/packages/cubejs-server/package.json index 3c4a4cd2b756b..1242dc61de197 100644 --- a/packages/cubejs-server/package.json +++ b/packages/cubejs-server/package.json @@ -73,7 +73,7 @@ "@types/ws": "^7.2.9", "@types/yarnpkg__lockfile": "^1.1.4", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "license": "Apache-2.0", "eslintConfig": { diff --git a/packages/cubejs-server/src/server/container.ts b/packages/cubejs-server/src/server/container.ts index 146bb1490a75d..bf76a6ad7a8fd 100644 --- a/packages/cubejs-server/src/server/container.ts +++ b/packages/cubejs-server/src/server/container.ts @@ -309,16 +309,20 @@ export class ServerContainer { } protected async loadConfigurationFromFile(): Promise { - const file = await import( - path.join(process.cwd(), 'cube.js') - ); + // require, not import(): under `module: nodenext` a dynamic import is emitted verbatim, which + // hands an absolute path to the ESM loader (fatal on Windows) and changes the namespace shape. + // eslint-disable-next-line global-require, import/no-dynamic-require + const file = require(path.join(process.cwd(), 'cube.js')); if (this.configuration.debug) { console.log('Loaded js configuration file', file); } - if (file.default) { - return file.default; + // A transpiled `export default` lands on `.default`; `module.exports = {...}` is the module itself. + const config = file?.__esModule ? file.default : file; + + if (config) { + return config; } throw new Error( diff --git a/packages/cubejs-server/tsconfig.json b/packages/cubejs-server/tsconfig.json index 9071045575b60..89512b2c22d4d 100644 --- a/packages/cubejs-server/tsconfig.json +++ b/packages/cubejs-server/tsconfig.json @@ -8,7 +8,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "allowJs": true, "resolveJsonModule": true } diff --git a/packages/cubejs-snowflake-driver/package.json b/packages/cubejs-snowflake-driver/package.json index 981182955ff06..6ffae8e36823b 100644 --- a/packages/cubejs-snowflake-driver/package.json +++ b/packages/cubejs-snowflake-driver/package.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "vitest": "^4" } } diff --git a/packages/cubejs-snowflake-driver/tsconfig.json b/packages/cubejs-snowflake-driver/tsconfig.json index 4ca28b45e1100..f84ebd107ad81 100644 --- a/packages/cubejs-snowflake-driver/tsconfig.json +++ b/packages/cubejs-snowflake-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json index 8817789e0c3dd..99ea864c68add 100644 --- a/packages/cubejs-templates/package.json +++ b/packages/cubejs-templates/package.json @@ -41,6 +41,6 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", - "typescript": "~5.2.2" + "typescript": "~6.0.3" } } diff --git a/packages/cubejs-templates/src/utils.ts b/packages/cubejs-templates/src/utils.ts index 7fb011ac8a622..8b2552f97b1ee 100644 --- a/packages/cubejs-templates/src/utils.ts +++ b/packages/cubejs-templates/src/utils.ts @@ -42,7 +42,7 @@ export async function fileContentsRecursive(dir: string, rootPath?: string, incl } }) ) - ).reduce((a, b) => a.concat(b), []); + ).reduce((a, b) => a.concat(b), []); } export async function proxyFetch(url) { diff --git a/packages/cubejs-templates/tsconfig.json b/packages/cubejs-templates/tsconfig.json index 9e556ff7696fe..2841fcbe7d038 100644 --- a/packages/cubejs-templates/tsconfig.json +++ b/packages/cubejs-templates/tsconfig.json @@ -6,7 +6,6 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "noImplicitAny": false, }, } diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json index 441c4e2dd6ddf..278462702db23 100644 --- a/packages/cubejs-testing-drivers/package.json +++ b/packages/cubejs-testing-drivers/package.json @@ -121,7 +121,7 @@ "pg": "^8.7.3", "ramda": "^0.28.0", "testcontainers": "^10.28.0", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "yaml": "^1.10.2", "yargs": "^17.7.1" }, diff --git a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts index b1908cbfed3b7..abc02bbc34d51 100644 --- a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts +++ b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts @@ -5,11 +5,13 @@ export async function getDriver(type: string): Promise<{ source: BaseDriver, storage: BaseDriver, }> { - return import(`@cubejs-backend/${type}-driver`).then((module) => { - // eslint-disable-next-line new-cap - const source: BaseDriver = new module.default(); - source.setLogger((msg: unknown, event: unknown) => console.log(`${msg}: ${JSON.stringify(event)}`)); - const storage = new CubeStoreDriver(); - return { source, storage }; - }); + // require, not import(): under `module: nodenext` a dynamic import is emitted verbatim, and a + // native import of these CommonJS driver packages puts the whole module on `.default`. + // eslint-disable-next-line global-require, import/no-dynamic-require + const driverModule = require(`@cubejs-backend/${type}-driver`); + // eslint-disable-next-line new-cap + const source: BaseDriver = new driverModule.default(); + source.setLogger((msg: unknown, event: unknown) => console.log(`${msg}: ${JSON.stringify(event)}`)); + const storage = new CubeStoreDriver(); + return { source, storage }; } diff --git a/packages/cubejs-testing-drivers/tsconfig.json b/packages/cubejs-testing-drivers/tsconfig.json index 4c7db2b84ac09..13d6730d06ddf 100644 --- a/packages/cubejs-testing-drivers/tsconfig.json +++ b/packages/cubejs-testing-drivers/tsconfig.json @@ -4,6 +4,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } \ No newline at end of file diff --git a/packages/cubejs-testing-shared/package.json b/packages/cubejs-testing-shared/package.json index 7eea999922d7b..94e3ed79afd5b 100644 --- a/packages/cubejs-testing-shared/package.json +++ b/packages/cubejs-testing-shared/package.json @@ -41,7 +41,7 @@ "@types/jest": "^29", "@types/node": "^22", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/packages/cubejs-testing-shared/tsconfig.json b/packages/cubejs-testing-shared/tsconfig.json index f0701c153823d..53a11a20640c1 100644 --- a/packages/cubejs-testing-shared/tsconfig.json +++ b/packages/cubejs-testing-shared/tsconfig.json @@ -6,6 +6,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index e8fd6cebf2ae8..32020e84875b4 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -129,7 +129,7 @@ "jsonwebtoken": "^9.0.2", "jwt-decode": "^3.1.2", "pg": "^8.7.3", - "typescript": "~5.2.2", + "typescript": "~6.0.3", "yaml": "^1.10.2" }, "publishConfig": { diff --git a/packages/cubejs-testing/tsconfig.json b/packages/cubejs-testing/tsconfig.json index 1653d8fcb294a..002d36b34889d 100644 --- a/packages/cubejs-testing/tsconfig.json +++ b/packages/cubejs-testing/tsconfig.json @@ -8,6 +8,5 @@ "types": ["cypress", "@4tw/cypress-drag-drop"], "outDir": "dist", "rootDir": ".", - "baseUrl": ".", } } \ No newline at end of file diff --git a/packages/cubejs-trino-driver/package.json b/packages/cubejs-trino-driver/package.json index eed6e951aed62..ca1a9044ee577 100644 --- a/packages/cubejs-trino-driver/package.json +++ b/packages/cubejs-trino-driver/package.json @@ -44,7 +44,7 @@ "@types/jest": "^29", "jest": "^29", "testcontainers": "^10.28.0", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "eslintConfig": { "extends": "../cubejs-linter" diff --git a/packages/cubejs-trino-driver/tsconfig.json b/packages/cubejs-trino-driver/tsconfig.json index 889114bc38306..f84ebd107ad81 100644 --- a/packages/cubejs-trino-driver/tsconfig.json +++ b/packages/cubejs-trino-driver/tsconfig.json @@ -7,6 +7,5 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - "baseUrl": "." } } diff --git a/rust/cubestore/package.json b/rust/cubestore/package.json index 883739ac0c081..f23eda7a03ce3 100644 --- a/rust/cubestore/package.json +++ b/rust/cubestore/package.json @@ -37,7 +37,7 @@ "@types/jest": "^29", "@types/node": "^18", "jest": "^29", - "typescript": "~5.2.2" + "typescript": "~6.0.3" }, "publishConfig": { "access": "public" diff --git a/rust/cubestore/tsconfig.json b/rust/cubestore/tsconfig.json index e057fa5101972..d3fce280ff8c2 100644 --- a/rust/cubestore/tsconfig.json +++ b/rust/cubestore/tsconfig.json @@ -1,10 +1,11 @@ { "compilerOptions": { "outDir": "dist", + "rootDir": "./js-wrapper", "incremental": true, "lib": ["es2017", "es2018", "es2019", "es2020"], "target": "es2018", - "module": "commonjs", + "module": "nodenext", "declaration": true, "declarationMap": true, "sourceMap": true, @@ -17,7 +18,8 @@ "strictPropertyInitialization": true, "noImplicitThis": true, "alwaysStrict": true, - "moduleResolution": "node", + "moduleResolution": "nodenext", + "types": ["*"], "esModuleInterop": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true, diff --git a/tsconfig.base.json b/tsconfig.base.json index e2007451bb64b..e667ee04210e8 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -9,20 +9,10 @@ "incremental": true, "lib": ["es2023"], "target": "es2022", - "module": "commonjs", - "baseUrl": ".", - "paths": { - "@cubejs-backend/*": [ - "rust/js-wrapper", - "packages/cubejs-cubestore-driver/src", - "packages/cubejs-api-gateway/src", - "packages/cubejs-cli/src", - "packages/cubejs-query-orchestrator/src", - "packages/cubejs-schema-compiler/src", - "packages/cubejs-server/src", - "packages/cubejs-server-core/src" - ] - }, + "module": "nodenext", + "moduleResolution": "nodenext", + // TypeScript 6.0 defaults `types` to [], which would drop the ambient @types/* globals + "types": ["*"], "composite": true, "declaration": true, "declarationMap": true, @@ -35,7 +25,6 @@ "strictPropertyInitialization": true, "noImplicitThis": true, "alwaysStrict": true, - "moduleResolution": "node", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true, diff --git a/tsconfig.jest.json b/tsconfig.jest.json index 2cd2e6642cdae..f9c70ad209917 100644 --- a/tsconfig.jest.json +++ b/tsconfig.jest.json @@ -1,7 +1,6 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "module": "CommonJS", "sourceMap": true, "inlineSourceMap": true, "inlineSources": true, diff --git a/tsconfig.json b/tsconfig.json index a58a1843f7234..db7b06f13953f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -46,9 +46,6 @@ { "path": "packages/cubejs-api-gateway" }, - { - "path": "packages/cubejs-testing" - }, { "path": "packages/cubejs-druid-driver" }, @@ -129,6 +126,11 @@ }, { "path": "packages/cubejs-dbt-schema-extension" + }, + // Keep last: its tests resolve the driver packages by name, and a resolution failure recorded + // before those projects are built poisons the shared cache for the rest of `tsc --build`. + { + "path": "packages/cubejs-testing" } ] } diff --git a/yarn.lock b/yarn.lock index cd3ea1b02f24b..95900f00cd7ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3315,14 +3315,26 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699" integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/eslint-utils@^4.9.1": + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz#8911bd72b2c3640a543609e0400b8c4d2e7e7cb6" + integrity sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.12.2": + version "4.12.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" + integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== + +"@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -3342,10 +3354,10 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -3357,10 +3369,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== "@fastify/busboy@^2.0.0": version "2.1.1" @@ -3530,13 +3542,13 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/config-array@^0.5.0": @@ -3558,10 +3570,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@inquirer/ansi@^1.0.0", "@inquirer/ansi@^1.0.2": version "1.0.2" @@ -7931,6 +7943,15 @@ resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== +"@stylistic/eslint-plugin-ts@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-3.1.0.tgz#bb2622bdb307a258e041e04bbce8c398097d0dfa" + integrity sha512-ExsbaLmPTt3Y9bWN64nw+hpsnLAScLH25ncPxrV16FG2Lvg5wn6aRfMqldUGpu+YdqVmFFU1zehgFh6RIHT6YA== + dependencies: + "@typescript-eslint/utils" "^8.13.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + "@swc/helpers@^0.5.0": version "0.5.6" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.6.tgz#d16d8566b7aea2bef90d059757e2d77f48224160" @@ -8411,7 +8432,7 @@ resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.1.tgz#201062a6990119a8cc18023cfe1fed12fc2fc8a7" integrity sha512-zpchZLNsNuzJHi6v64UBoFWAvQlPhch7XAi36FkH6tL1bbbmimIF+cS7vwkzY4u5RaSWMoflQfu+TshMPPw8uw== -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -8668,7 +8689,7 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@types/semver@^7.5.0", "@types/semver@^7.5.8": +"@types/semver@^7.5.8": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== @@ -8848,90 +8869,101 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" - integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/type-utils" "6.12.0" - "@typescript-eslint/utils" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" +"@typescript-eslint/eslint-plugin@^8.46.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.69.0.tgz#bf74cc392ebcaaf096bc8b4c4d7bbeb0677687b8" + integrity sha512-t5jQTKPIgVW1PE6dR6H6Qz5gm8zjMlX5/2gRaOGd9eO6V7J+tQc6iWKukEe7dY8u9HyYasQ0yfF0/FSSTEO2gA== + dependencies: + "@eslint-community/regexpp" "^4.12.2" + "@typescript-eslint/scope-manager" "8.69.0" + "@typescript-eslint/type-utils" "8.69.0" + "@typescript-eslint/utils" "8.69.0" + "@typescript-eslint/visitor-keys" "8.69.0" + ignore "^7.0.5" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^2.5.0" -"@typescript-eslint/parser@^6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" - integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== +"@typescript-eslint/parser@^8.46.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.69.0.tgz#de3ead2b35e5c71580eda40820adb4fd14834ca1" + integrity sha512-l4b0DhWioGg6Gt2ebGlvfkFMOjRsauxtsnDRwUSRX1qHq3HdTfQHV8wW9zEXeciai6HfeaKOedQn2Zoofx3WBw== dependencies: - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" - debug "^4.3.4" + "@typescript-eslint/scope-manager" "8.69.0" + "@typescript-eslint/types" "8.69.0" + "@typescript-eslint/typescript-estree" "8.69.0" + "@typescript-eslint/visitor-keys" "8.69.0" + debug "^4.4.3" -"@typescript-eslint/scope-manager@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" - integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== +"@typescript-eslint/project-service@8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.69.0.tgz#cf728554436a50e644a5214a89fe02cb1ffa9af8" + integrity sha512-yi4obFrHMmnsesWehHbkg9zMA7Jt8cXT+mKM08G999pH1yT6nqgsHx7MYm0uY1wAj8CqiBXYRJ7WAT0QdQHQXg== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/tsconfig-utils" "^8.69.0" + "@typescript-eslint/types" "^8.69.0" + debug "^4.4.3" -"@typescript-eslint/type-utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" - integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== +"@typescript-eslint/scope-manager@8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.69.0.tgz#13f3d1e25108e95a9ceb5a198806d1fa558f8c7a" + integrity sha512-ewfspqWvSxKSOaplqAUNbaSFO0eB6w1EtQ+esfYFRm3614Ty4uNtExkcbgd6nWsXphbqKyf9ZYdbZdv2xEoWEQ== dependencies: - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/utils" "6.12.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" + "@typescript-eslint/types" "8.69.0" + "@typescript-eslint/visitor-keys" "8.69.0" -"@typescript-eslint/types@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" - integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== +"@typescript-eslint/tsconfig-utils@8.69.0", "@typescript-eslint/tsconfig-utils@^8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.69.0.tgz#d3b0ccc781ab252a90a0b3989b9d1eb85ab59469" + integrity sha512-xNqK7YTDZsLniQMV/4rpFR8Z5JlqeRvVjuG1YgF/mdPVH84HSD19L8CczMA0qg2RfwEV231GHH3VnToJDo4MfQ== -"@typescript-eslint/typescript-estree@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" - integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== +"@typescript-eslint/type-utils@8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.69.0.tgz#7ce68d2ebcbedd8421806c27a7f360755017159f" + integrity sha512-ZfoJAVg3JZndQEpEl9petVlxau3lRuElc4HRMuAlLCf8to04/iHz692RUSNmXKDjEuJmIL+KZ2/BsOcBc16dsA== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" - integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" - semver "^7.5.4" + "@typescript-eslint/types" "8.69.0" + "@typescript-eslint/typescript-estree" "8.69.0" + "@typescript-eslint/utils" "8.69.0" + debug "^4.4.3" + ts-api-utils "^2.5.0" + +"@typescript-eslint/types@8.69.0", "@typescript-eslint/types@^8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.69.0.tgz#5d9ad3f707c2e4f70a2db540031104df3e63bcf5" + integrity sha512-K3VrubUPhlo9VDBS6QdI8YB5j7ClpqLRdefcz6PFrhnwicehBweqQ9Evhl4l+FYz0HdDmMqIiSX0aldGRYtDCA== + +"@typescript-eslint/typescript-estree@8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.69.0.tgz#efa915913ffe2049bbfd26092b95d1bc7c9c454f" + integrity sha512-AdFkgqck3Vudb/kWnxlyafU/4aBhHrbQ9locP2N4psXTy5mOBg0SHJumnLvx7r6g1gV4DKvUFwV2nJZBoqOD8w== + dependencies: + "@typescript-eslint/project-service" "8.69.0" + "@typescript-eslint/tsconfig-utils" "8.69.0" + "@typescript-eslint/types" "8.69.0" + "@typescript-eslint/visitor-keys" "8.69.0" + debug "^4.4.3" + minimatch "^10.2.2" + semver "^7.7.3" + tinyglobby "^0.2.15" + ts-api-utils "^2.5.0" -"@typescript-eslint/visitor-keys@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" - integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== +"@typescript-eslint/utils@8.69.0", "@typescript-eslint/utils@^8.13.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.69.0.tgz#67ad9c00edf12fe2fbc0bf0a71b00822a8d02e97" + integrity sha512-tUbx60BBqQa31kXF5MCsOOLL5E/WzUuxIn7YpAvq+eaUlqvk8/NXnXMBNAdLCr0icjkzem7iUA5QqWHe/hJ1aw== dependencies: - "@typescript-eslint/types" "6.12.0" - eslint-visitor-keys "^3.4.1" + "@eslint-community/eslint-utils" "^4.9.1" + "@typescript-eslint/scope-manager" "8.69.0" + "@typescript-eslint/types" "8.69.0" + "@typescript-eslint/typescript-estree" "8.69.0" + +"@typescript-eslint/visitor-keys@8.69.0": + version "8.69.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.69.0.tgz#f659785dbb79733c40499f71a65439e2033966b5" + integrity sha512-+rmdgPA+EXkNgKYvHvFfhrs35utXbwaC5PGpDquSXcoXQDKUA5UjV0LmTucG/4JXkM31BTu4TilHtrN8IVBe8w== + dependencies: + "@typescript-eslint/types" "8.69.0" + eslint-visitor-keys "^5.0.0" "@ungap/structured-clone@^0.3.4": version "0.3.4" @@ -9410,6 +9442,11 @@ acorn@^8.1.0, acorn@^8.8.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== +acorn@^8.15.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.18.0.tgz#4faf01b2d6d326bfeed97aea1f52220b5f4c1940" + integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== + acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" @@ -10451,7 +10488,7 @@ bowser@^2.11.0: resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== -brace-expansion@5.0.9, brace-expansion@^5.0.5: +brace-expansion@5.0.9, brace-expansion@^5.0.5, brace-expansion@^5.0.8: version "5.0.9" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.9.tgz#7c72438809b5fa5babf54199a1f1c281a6984fcf" integrity sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg== @@ -10734,7 +10771,7 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== -call-bind-apply-helpers@1.0.2, call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: +call-bind-apply-helpers@1.0.2, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== @@ -10742,6 +10779,14 @@ call-bind-apply-helpers@1.0.2, call-bind-apply-helpers@^1.0.0, call-bind-apply-h es-errors "^1.3.0" function-bind "^1.1.2" +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" + integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" @@ -10830,7 +10875,7 @@ chai@^6.2.2: resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e" integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg== -chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -12178,13 +12223,20 @@ default-gateway@^6.0.3: dependencies: execa "^5.0.0" -defaults@1.0.4, defaults@^1.0.3: +defaults@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -12556,13 +12608,6 @@ ejs@5.0.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-5.0.1.tgz#179523a437ed448543ad1b76ca4fb4c2e8950304" integrity sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A== -ejs@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - electron-to-chromium@^1.5.249: version "1.5.262" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz#c31eed591c6628908451c9ca0f0758ed514aa003" @@ -12643,13 +12688,20 @@ encoding@^0.1.11, encoding@^0.1.12, encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@1.4.5, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@1.4.5: version "1.4.5" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + engine.io-client@~3.5.0: version "3.5.4" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.4.tgz#5b40d7381772ba05c0881be5735a318424a07fc6" @@ -12849,7 +12901,14 @@ es-object-atoms@1.1.1: dependencies: es-errors "^1.3.0" -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-object-atoms@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz#a2d0b373205724dfa525d23b0c3e1b1ca582c99b" integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== @@ -13216,6 +13275,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== +eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" + integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== + +eslint-visitor-keys@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" + integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== + eslint@^7.21.0: version "7.32.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" @@ -13262,16 +13331,16 @@ eslint@^7.21.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -eslint@^8.54.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== +eslint@^8.57.1: + version "8.57.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -13306,6 +13375,15 @@ eslint@^8.54.0: strip-ansi "^6.0.1" text-table "^0.2.0" +espree@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" + integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== + dependencies: + acorn "^8.15.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.1" + espree@^7.3.0, espree@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" @@ -13827,13 +13905,6 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -13982,11 +14053,16 @@ focus-lock@^1.3.5: dependencies: tslib "^2.0.3" -follow-redirects@1.16.0, follow-redirects@^1.0.0, follow-redirects@^1.15.11, follow-redirects@^1.15.3, follow-redirects@^1.16.0: +follow-redirects@1.16.0, follow-redirects@^1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc" integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== +follow-redirects@^1.0.0, follow-redirects@^1.15.11, follow-redirects@^1.15.3: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -14015,7 +14091,7 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@4.0.6, form-data@^4.0.0, form-data@^4.0.5, form-data@~4.0.0: +form-data@4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== @@ -14038,6 +14114,17 @@ form-data@^2.3.1, form-data@^2.5.0: mime-types "^2.1.35" safe-buffer "^5.2.1" +form-data@^4.0.0, form-data@^4.0.5, form-data@~4.0.0: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + formdata-polyfill@^4.0.10: version "4.0.10" resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" @@ -14251,7 +14338,7 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== -get-intrinsic@1.3.0, get-intrinsic@^1.1.1, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4, get-intrinsic@^1.2.6: +get-intrinsic@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -14267,6 +14354,22 @@ get-intrinsic@1.3.0, get-intrinsic@^1.1.1, get-intrinsic@^1.2.1, get-intrinsic@^ hasown "^2.0.2" math-intrinsics "^1.1.0" +get-intrinsic@^1.1.1, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4, get-intrinsic@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" + integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + function-bind "^1.1.2" + get-proto "^1.0.0" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -14494,7 +14597,7 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" -globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.1, globby@^11.0.4: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -14636,7 +14739,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -handlebars@4.7.9: +handlebars@4.7.9, handlebars@^4.7.9: version "4.7.9" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.9.tgz#6f139082ab58dc4e5a0e51efe7db5ae890d56a0f" integrity sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ== @@ -15135,7 +15238,7 @@ ignore-walk@^8.0.0: dependencies: minimatch "^10.0.3" -ignore@7.0.5: +ignore@7.0.5, ignore@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== @@ -15145,7 +15248,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.1.1, ignore@^5.1.9, ignore@^5.2.0: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -15891,16 +15994,6 @@ jackspeak@^4.1.1: dependencies: "@isaacs/cliui" "^8.0.2" -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - java@^0.18, java@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/java/-/java-0.18.0.tgz#8a339bc872c76755909f0e376cd465fa1985e997" @@ -16252,7 +16345,7 @@ jest-snapshot@^29.7.0: pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^29.0.0, jest-util@^29.7.0: +jest-util@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== @@ -16405,7 +16498,7 @@ js-yaml@3.14.0: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@4.3.0, js-yaml@^4.1.0: +js-yaml@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== @@ -16420,6 +16513,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== + dependencies: + argparse "^2.0.1" + jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -17615,7 +17715,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@2.1.35, mime-types@^2.1.27, mime-types@^2.1.29, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@2.1.35, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.29, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -17713,6 +17813,13 @@ minimatch@^10.0.3, minimatch@^10.1.1: dependencies: "@isaacs/brace-expansion" "^5.0.0" +minimatch@^10.2.2: + version "10.2.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef" + integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A== + dependencies: + brace-expansion "^5.0.8" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -21687,7 +21794,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.2, semver@^7.8.5: +semver@^7.5.2, semver@^7.7.3, semver@^7.8.5: version "7.8.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== @@ -23111,7 +23218,7 @@ tldts@^6.1.32: dependencies: tldts-core "^6.1.74" -tmp@0.2.7, tmp@^0.2.3, tmp@~0.2.3: +tmp@0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.7.tgz#26f4db11d1601ce8012dcb8a798ece1c06a99059" integrity sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw== @@ -23130,6 +23237,11 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" +tmp@^0.2.3, tmp@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -23249,10 +23361,10 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== +ts-api-utils@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1" + integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== ts-invariant@^0.10.3: version "0.10.3" @@ -23261,19 +23373,18 @@ ts-invariant@^0.10.3: dependencies: tslib "^2.1.0" -ts-jest@^29: - version "29.3.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.3.3.tgz#c24c31a9d12268f88899e3eeb05912cab42c574c" - integrity sha512-y6jLm19SL4GroiBmHwFK4dSHUfDNmOrJbRfp6QmDIlI9p5tT5Q8ItccB4pTIslCIqOZuQnBwpTR0bQ5eUMYwkw== +ts-jest@^29.4.12: + version "29.4.12" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.12.tgz#c34cd91f02d364e9286d2c016843315fd0efff76" + integrity sha512-Ov6ClY53Fflh6BGAnY2DlTq1hYDrTycz2PVTXBWFW2CU+9zrEqAp9fWdGXl42EXO5RLSFAcAZ2JFKbP+zBTFfw== dependencies: bs-logger "^0.2.6" - ejs "^3.1.10" fast-json-stable-stringify "^2.1.0" - jest-util "^29.0.0" + handlebars "^4.7.9" json5 "^2.2.3" lodash.memoize "^4.1.2" make-error "^1.3.6" - semver "^7.7.2" + semver "^7.8.5" type-fest "^4.41.0" yargs-parser "^21.1.1" @@ -23484,16 +23595,16 @@ typescript-paths@^1.5.1: resolved "https://registry.yarnpkg.com/typescript-paths/-/typescript-paths-1.5.1.tgz#975cf5883915b24f9287315a8fa70b3b3451e32e" integrity sha512-lYErSLCON2MSplVV5V/LBgD4UNjMgY3guATdFCZY2q1Nr6OZEu4q6zX/rYMsG1TaWqqQSszg6C9EU7AGWMDrIw== -typescript@~5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - typescript@~5.4.5: version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21" + integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== + ua-parser-js@^0.7.30: version "0.7.40" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.40.tgz#c87d83b7bb25822ecfa6397a0da5903934ea1562" @@ -24620,7 +24731,7 @@ yallist@^5.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== -yaml@2.9.0, yaml@^2.2.2, yaml@^2.7.1: +yaml@2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.9.0.tgz#78274afd93598a1dfdd6130df6a566defcbf9aa4" integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== @@ -24630,6 +24741,11 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.2, yaml@^2.7.1: + version "2.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d" + integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg== + yargs-parser@21.1.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From e8684eacf8170684264aabc656344375c0b6107f Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 16:44:45 +0200 Subject: [PATCH 02/20] refactor: trim the comments added by the TypeScript 6 migration Drops the one that restated `file?.__esModule ? file.default : file` and shortens the rest to the part a reader cannot get from the code below it. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/QueryBuilderV2/components/MemberLabelText.tsx | 4 ++-- packages/cubejs-schema-compiler/tsconfig.json | 7 +++---- packages/cubejs-server/src/server/container.ts | 4 +--- packages/cubejs-testing-drivers/src/helpers/getDriver.ts | 4 ++-- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx b/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx index b2bad82a9c50c..1e81a470613cf 100644 --- a/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx +++ b/packages/cubejs-playground/src/QueryBuilderV2/components/MemberLabelText.tsx @@ -1,8 +1,8 @@ import { Props, tasty } from '@cube-dev/ui-kit'; import { ComponentType } from 'react'; -// Annotated because ui-kit re-exports neither `VariantMap` nor `WithVariant`, so the inferred -// type has no portable name (TS2883). +// ui-kit re-exports neither `VariantMap` nor `WithVariant`, so the inferred type has no +// portable name (TS2883). export const MemberLabelText: ComponentType = tasty({ qa: 'MemberLabel', 'aria-label': 'Member label', diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index c0a3a87755cde..18c23c7a9ca40 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -2,10 +2,9 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { - // antlr4 ships `types: index.d.cts` re-exporting `.d.ts` files that are ESM under its - // `type: module`, so every re-export fails under node16/nodenext resolution (TS2834) and - // the module resolves to nothing. `bundler` resolution ignores the CJS/ESM split; emit is - // unaffected because `module` stays commonjs. + // antlr4 ships `types: index.d.cts` re-exporting `.d.ts` files that are ESM under its own + // `type: module`, so under node16/nodenext every re-export fails (TS2834) and the module + // resolves to nothing. `bundler` ignores the CJS/ESM split; `commonjs` keeps the emit. "module": "commonjs", "moduleResolution": "bundler", "outDir": "dist", diff --git a/packages/cubejs-server/src/server/container.ts b/packages/cubejs-server/src/server/container.ts index bf76a6ad7a8fd..56c80daeb3ebf 100644 --- a/packages/cubejs-server/src/server/container.ts +++ b/packages/cubejs-server/src/server/container.ts @@ -309,8 +309,7 @@ export class ServerContainer { } protected async loadConfigurationFromFile(): Promise { - // require, not import(): under `module: nodenext` a dynamic import is emitted verbatim, which - // hands an absolute path to the ESM loader (fatal on Windows) and changes the namespace shape. + // `module: nodenext` emits import() verbatim, handing an absolute path to the ESM loader. // eslint-disable-next-line global-require, import/no-dynamic-require const file = require(path.join(process.cwd(), 'cube.js')); @@ -318,7 +317,6 @@ export class ServerContainer { console.log('Loaded js configuration file', file); } - // A transpiled `export default` lands on `.default`; `module.exports = {...}` is the module itself. const config = file?.__esModule ? file.default : file; if (config) { diff --git a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts index abc02bbc34d51..a73404d80b151 100644 --- a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts +++ b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts @@ -5,8 +5,8 @@ export async function getDriver(type: string): Promise<{ source: BaseDriver, storage: BaseDriver, }> { - // require, not import(): under `module: nodenext` a dynamic import is emitted verbatim, and a - // native import of these CommonJS driver packages puts the whole module on `.default`. + // `module: nodenext` emits import() verbatim, and a native import of these CommonJS packages + // would put the whole module on `.default`. // eslint-disable-next-line global-require, import/no-dynamic-require const driverModule = require(`@cubejs-backend/${type}-driver`); // eslint-disable-next-line new-cap From 34c97248c0fba8b08307ac09f1cf8f65d9f7b844 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 17:14:01 +0200 Subject: [PATCH 03/20] build: declare project references between packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `tsc --build` only knew the dependency order from the order of the 43 entries in the root `tsconfig.json`, because almost no package declared its own `references`. A sequential builder tolerates that; anything that builds projects in parallel does not, and it was already leaking into TS 6 as the cold-build-only failure that the "keep cubejs-testing last" workaround papered over. References are now generated from each package's workspace dependencies (142 edges, no cycles), so the root list is back to its original order and the workaround is gone. `rust/cubestore` and `cubejs-client-ws-transport` gain `composite: true` — both are referenced but were never valid reference targets (TS6306). Three inferred types in schema-compiler's `.js` were wrong rather than merely loose, and the generated declarations spread them across every consumer: | Member | Emitted before | Now | | --- | --- | --- | | `BaseQuery.resolveFullMemberPathFn` | `(arg0: member) => string`, where `member` names nothing | `(member: string) => string` | | `BaseQuery.collectLeafMeasures` | `unknown[]` | `string[]` | | `TestUtil.debugLog` | `(...args: any[]) => void` inferred from `arguments` | declared rest parameter | Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-api-gateway/tsconfig.json | 5 ++++ packages/cubejs-athena-driver/tsconfig.json | 7 ++++- packages/cubejs-backend-cloud/tsconfig.json | 5 +++- packages/cubejs-backend-maven/tsconfig.json | 5 +++- packages/cubejs-backend-native/tsconfig.json | 5 +++- packages/cubejs-base-driver/tsconfig.json | 3 +++ packages/cubejs-bigquery-driver/tsconfig.json | 7 ++++- packages/cubejs-cli/tsconfig.json | 8 +++++- .../cubejs-clickhouse-driver/tsconfig.json | 7 ++++- packages/cubejs-client-react/tsconfig.json | 4 ++- .../cubejs-client-ws-transport/tsconfig.json | 8 ++++-- packages/cubejs-crate-driver/tsconfig.json | 6 ++++- .../cubejs-cubestore-driver/tsconfig.json | 8 +++++- .../tsconfig.json | 8 +++++- .../cubejs-dbt-schema-extension/tsconfig.json | 6 ++++- packages/cubejs-dremio-driver/tsconfig.json | 8 +++++- packages/cubejs-druid-driver/tsconfig.json | 7 ++++- packages/cubejs-duckdb-driver/tsconfig.json | 8 +++++- packages/cubejs-firebolt-driver/tsconfig.json | 8 +++++- packages/cubejs-jdbc-driver/tsconfig.json | 6 ++++- packages/cubejs-ksql-driver/tsconfig.json | 7 ++++- .../cubejs-materialize-driver/tsconfig.json | 7 ++++- packages/cubejs-mongobi-driver/tsconfig.json | 6 ++++- packages/cubejs-mssql-driver/tsconfig.json | 6 ++++- packages/cubejs-mysql-driver/tsconfig.json | 7 ++++- packages/cubejs-pinot-driver/tsconfig.json | 7 ++++- packages/cubejs-postgres-driver/tsconfig.json | 7 ++++- packages/cubejs-prestodb-driver/tsconfig.json | 6 ++++- .../cubejs-query-orchestrator/tsconfig.json | 5 ++++ packages/cubejs-questdb-driver/tsconfig.json | 8 +++++- packages/cubejs-redshift-driver/tsconfig.json | 6 ++++- .../src/adapter/BaseQuery.js | 6 +++++ .../test/unit/TestUtil.js | 16 +++++------- packages/cubejs-schema-compiler/tsconfig.json | 6 +++++ packages/cubejs-server-core/tsconfig.json | 11 ++++++++ packages/cubejs-server/tsconfig.json | 9 ++++++- .../cubejs-snowflake-driver/tsconfig.json | 6 ++++- packages/cubejs-templates/tsconfig.json | 3 +++ packages/cubejs-testing-drivers/tsconfig.json | 26 +++++++++++++++++-- packages/cubejs-testing-shared/tsconfig.json | 7 ++++- packages/cubejs-testing/tsconfig.json | 15 +++++++++-- packages/cubejs-trino-driver/tsconfig.json | 8 +++++- rust/cubestore/tsconfig.json | 6 ++++- tsconfig.json | 8 +++--- 44 files changed, 276 insertions(+), 52 deletions(-) diff --git a/packages/cubejs-api-gateway/tsconfig.json b/packages/cubejs-api-gateway/tsconfig.json index 90658e7078c9e..7e22d41d3eb95 100644 --- a/packages/cubejs-api-gateway/tsconfig.json +++ b/packages/cubejs-api-gateway/tsconfig.json @@ -10,4 +10,9 @@ "allowJs": true, "noImplicitAny": false, }, + "references": [ + { "path": "../cubejs-backend-native" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-query-orchestrator" } + ] } diff --git a/packages/cubejs-athena-driver/tsconfig.json b/packages/cubejs-athena-driver/tsconfig.json index f84ebd107ad81..a5450add5dbef 100644 --- a/packages/cubejs-athena-driver/tsconfig.json +++ b/packages/cubejs-athena-driver/tsconfig.json @@ -7,5 +7,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-backend-cloud/tsconfig.json b/packages/cubejs-backend-cloud/tsconfig.json index 3b775262793da..9b657939f8325 100644 --- a/packages/cubejs-backend-cloud/tsconfig.json +++ b/packages/cubejs-backend-cloud/tsconfig.json @@ -12,5 +12,8 @@ "strictFunctionTypes": true, "strictBindCallApply": true, "strictPropertyInitialization": true, - } + }, + "references": [ + { "path": "../cubejs-backend-shared" } + ] } diff --git a/packages/cubejs-backend-maven/tsconfig.json b/packages/cubejs-backend-maven/tsconfig.json index f84ebd107ad81..f3e7b06bf906c 100644 --- a/packages/cubejs-backend-maven/tsconfig.json +++ b/packages/cubejs-backend-maven/tsconfig.json @@ -7,5 +7,8 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" } + ] } diff --git a/packages/cubejs-backend-native/tsconfig.json b/packages/cubejs-backend-native/tsconfig.json index 07bc829a4f044..b0b1800156730 100644 --- a/packages/cubejs-backend-native/tsconfig.json +++ b/packages/cubejs-backend-native/tsconfig.json @@ -12,5 +12,8 @@ "outDir": "dist", "rootDir": ".", "allowJs": true, - } + }, + "references": [ + { "path": "../cubejs-backend-shared" } + ] } diff --git a/packages/cubejs-base-driver/tsconfig.json b/packages/cubejs-base-driver/tsconfig.json index 25a0f96dc99b9..2e763d477a484 100644 --- a/packages/cubejs-base-driver/tsconfig.json +++ b/packages/cubejs-base-driver/tsconfig.json @@ -9,4 +9,7 @@ "rootDir": ".", "allowJs": true }, + "references": [ + { "path": "../cubejs-backend-shared" } + ] } diff --git a/packages/cubejs-bigquery-driver/tsconfig.json b/packages/cubejs-bigquery-driver/tsconfig.json index 17588e557991c..a1e0965d88c5e 100644 --- a/packages/cubejs-bigquery-driver/tsconfig.json +++ b/packages/cubejs-bigquery-driver/tsconfig.json @@ -9,5 +9,10 @@ "outDir": "dist", "rootDir": ".", "resolveJsonModule": true - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-cli/tsconfig.json b/packages/cubejs-cli/tsconfig.json index 6e7d4656c21a6..8e7c84e1a3faf 100644 --- a/packages/cubejs-cli/tsconfig.json +++ b/packages/cubejs-cli/tsconfig.json @@ -14,5 +14,11 @@ "strictFunctionTypes": true, "strictBindCallApply": true, "strictPropertyInitialization": true, - } + }, + "references": [ + { "path": "../cubejs-backend-cloud" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-server" } + ] } diff --git a/packages/cubejs-clickhouse-driver/tsconfig.json b/packages/cubejs-clickhouse-driver/tsconfig.json index 32ac4cc6a946f..c974719478e44 100644 --- a/packages/cubejs-clickhouse-driver/tsconfig.json +++ b/packages/cubejs-clickhouse-driver/tsconfig.json @@ -8,5 +8,10 @@ "allowJs": true, "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-client-react/tsconfig.json b/packages/cubejs-client-react/tsconfig.json index 1c65e39ff4979..bf8af918f1026 100644 --- a/packages/cubejs-client-react/tsconfig.json +++ b/packages/cubejs-client-react/tsconfig.json @@ -27,5 +27,7 @@ "noEmitOnError": true, "forceConsistentCasingInFileNames": true }, - "references": [{ "path": "../cubejs-client-core" }] + "references": [ + { "path": "../cubejs-client-core" } + ] } diff --git a/packages/cubejs-client-ws-transport/tsconfig.json b/packages/cubejs-client-ws-transport/tsconfig.json index febc8a6a05b16..f23f6710a7bda 100644 --- a/packages/cubejs-client-ws-transport/tsconfig.json +++ b/packages/cubejs-client-ws-transport/tsconfig.json @@ -7,7 +7,8 @@ "types": ["*"], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "declarationDir": "./dist", /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "declarationDir": "./dist", + "composite": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "rootDir": "./src", "sourceMap": false, /* Generates corresponding '.map' file. */ "outDir": "./temp", /* Redirect output structure to the directory. */ @@ -23,5 +24,8 @@ "allowSyntheticDefaultImports": true, "skipLibCheck": true, /* Skip type checking of declaration files. */ "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ - } + }, + "references": [ + { "path": "../cubejs-client-core" } + ] } diff --git a/packages/cubejs-crate-driver/tsconfig.json b/packages/cubejs-crate-driver/tsconfig.json index 78b3ab2ba898e..946eea8a38048 100644 --- a/packages/cubejs-crate-driver/tsconfig.json +++ b/packages/cubejs-crate-driver/tsconfig.json @@ -8,5 +8,9 @@ "outDir": "dist", "rootDir": ".", }, - "references": [{ "path": "../cubejs-postgres-driver" }] + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-postgres-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-cubestore-driver/tsconfig.json b/packages/cubejs-cubestore-driver/tsconfig.json index 6b631c947bd31..5b7c8e835bab8 100644 --- a/packages/cubejs-cubestore-driver/tsconfig.json +++ b/packages/cubejs-cubestore-driver/tsconfig.json @@ -9,5 +9,11 @@ "noImplicitAny": false, "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../../rust/cubestore" }, + { "path": "../cubejs-backend-native" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-databricks-jdbc-driver/tsconfig.json b/packages/cubejs-databricks-jdbc-driver/tsconfig.json index f84ebd107ad81..46f75ad0cb78a 100644 --- a/packages/cubejs-databricks-jdbc-driver/tsconfig.json +++ b/packages/cubejs-databricks-jdbc-driver/tsconfig.json @@ -7,5 +7,11 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-jdbc-driver" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/packages/cubejs-dbt-schema-extension/tsconfig.json b/packages/cubejs-dbt-schema-extension/tsconfig.json index f84ebd107ad81..298392637cc08 100644 --- a/packages/cubejs-dbt-schema-extension/tsconfig.json +++ b/packages/cubejs-dbt-schema-extension/tsconfig.json @@ -7,5 +7,9 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing" } + ] } diff --git a/packages/cubejs-dremio-driver/tsconfig.json b/packages/cubejs-dremio-driver/tsconfig.json index fcb143eff494c..b9f4e3df83037 100644 --- a/packages/cubejs-dremio-driver/tsconfig.json +++ b/packages/cubejs-dremio-driver/tsconfig.json @@ -8,5 +8,11 @@ "outDir": "dist", "rootDir": ".", "resolveJsonModule": true - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-druid-driver/tsconfig.json b/packages/cubejs-druid-driver/tsconfig.json index 2935a7e4f1695..0563c98b5139c 100644 --- a/packages/cubejs-druid-driver/tsconfig.json +++ b/packages/cubejs-druid-driver/tsconfig.json @@ -8,5 +8,10 @@ "noImplicitAny": false, "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/packages/cubejs-duckdb-driver/tsconfig.json b/packages/cubejs-duckdb-driver/tsconfig.json index f84ebd107ad81..33ad373dec318 100644 --- a/packages/cubejs-duckdb-driver/tsconfig.json +++ b/packages/cubejs-duckdb-driver/tsconfig.json @@ -7,5 +7,11 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-firebolt-driver/tsconfig.json b/packages/cubejs-firebolt-driver/tsconfig.json index fcb143eff494c..b9f4e3df83037 100644 --- a/packages/cubejs-firebolt-driver/tsconfig.json +++ b/packages/cubejs-firebolt-driver/tsconfig.json @@ -8,5 +8,11 @@ "outDir": "dist", "rootDir": ".", "resolveJsonModule": true - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-jdbc-driver/tsconfig.json b/packages/cubejs-jdbc-driver/tsconfig.json index 2aa9ba9e86979..9c8560983c4ca 100644 --- a/packages/cubejs-jdbc-driver/tsconfig.json +++ b/packages/cubejs-jdbc-driver/tsconfig.json @@ -9,5 +9,9 @@ "rootDir": ".", "allowJs": true, "checkJs": false - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-ksql-driver/tsconfig.json b/packages/cubejs-ksql-driver/tsconfig.json index f84ebd107ad81..3bccf8a8da19c 100644 --- a/packages/cubejs-ksql-driver/tsconfig.json +++ b/packages/cubejs-ksql-driver/tsconfig.json @@ -7,5 +7,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/packages/cubejs-materialize-driver/tsconfig.json b/packages/cubejs-materialize-driver/tsconfig.json index 2853f0ed06253..7214bfb238ac7 100644 --- a/packages/cubejs-materialize-driver/tsconfig.json +++ b/packages/cubejs-materialize-driver/tsconfig.json @@ -5,5 +5,10 @@ "outDir": "dist", "rootDir": ".", }, - "references": [{ "path": "../cubejs-postgres-driver" }] + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-postgres-driver" }, + { "path": "../cubejs-testing" } + ] } diff --git a/packages/cubejs-mongobi-driver/tsconfig.json b/packages/cubejs-mongobi-driver/tsconfig.json index f84ebd107ad81..97ef2ec605e00 100644 --- a/packages/cubejs-mongobi-driver/tsconfig.json +++ b/packages/cubejs-mongobi-driver/tsconfig.json @@ -7,5 +7,9 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-mssql-driver/tsconfig.json b/packages/cubejs-mssql-driver/tsconfig.json index 970aa4c02b456..11e2a179cd0d8 100644 --- a/packages/cubejs-mssql-driver/tsconfig.json +++ b/packages/cubejs-mssql-driver/tsconfig.json @@ -8,5 +8,9 @@ "outDir": "dist", "rootDir": ".", "typeRoots": ["./node_modules/@types", "./src/types"] - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-mysql-driver/tsconfig.json b/packages/cubejs-mysql-driver/tsconfig.json index f84ebd107ad81..a5450add5dbef 100644 --- a/packages/cubejs-mysql-driver/tsconfig.json +++ b/packages/cubejs-mysql-driver/tsconfig.json @@ -7,5 +7,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-pinot-driver/tsconfig.json b/packages/cubejs-pinot-driver/tsconfig.json index f84ebd107ad81..3bccf8a8da19c 100644 --- a/packages/cubejs-pinot-driver/tsconfig.json +++ b/packages/cubejs-pinot-driver/tsconfig.json @@ -7,5 +7,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/packages/cubejs-postgres-driver/tsconfig.json b/packages/cubejs-postgres-driver/tsconfig.json index f84ebd107ad81..a5450add5dbef 100644 --- a/packages/cubejs-postgres-driver/tsconfig.json +++ b/packages/cubejs-postgres-driver/tsconfig.json @@ -7,5 +7,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-prestodb-driver/tsconfig.json b/packages/cubejs-prestodb-driver/tsconfig.json index f84ebd107ad81..97ef2ec605e00 100644 --- a/packages/cubejs-prestodb-driver/tsconfig.json +++ b/packages/cubejs-prestodb-driver/tsconfig.json @@ -7,5 +7,9 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-query-orchestrator/tsconfig.json b/packages/cubejs-query-orchestrator/tsconfig.json index 16633fbebc20c..55ccdc6ca253d 100644 --- a/packages/cubejs-query-orchestrator/tsconfig.json +++ b/packages/cubejs-query-orchestrator/tsconfig.json @@ -14,4 +14,9 @@ "strictBindCallApply": false, "strictPropertyInitialization": false }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-cubestore-driver" } + ] } diff --git a/packages/cubejs-questdb-driver/tsconfig.json b/packages/cubejs-questdb-driver/tsconfig.json index f84ebd107ad81..33ad373dec318 100644 --- a/packages/cubejs-questdb-driver/tsconfig.json +++ b/packages/cubejs-questdb-driver/tsconfig.json @@ -7,5 +7,11 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing-shared" } + ] } diff --git a/packages/cubejs-redshift-driver/tsconfig.json b/packages/cubejs-redshift-driver/tsconfig.json index 78b3ab2ba898e..10cc196fa00ad 100644 --- a/packages/cubejs-redshift-driver/tsconfig.json +++ b/packages/cubejs-redshift-driver/tsconfig.json @@ -8,5 +8,9 @@ "outDir": "dist", "rootDir": ".", }, - "references": [{ "path": "../cubejs-postgres-driver" }] + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-postgres-driver" } + ] } diff --git a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js index 2c9e6e2a1bc93..8c46294446110 100644 --- a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js +++ b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js @@ -3825,6 +3825,9 @@ export class BaseQuery { }; } + /** + * @returns {string[]} + */ collectLeafMeasures(fn) { const context = { leafMeasures: {} }; this.evaluateSymbolSqlWithContext( @@ -5714,6 +5717,9 @@ export class BaseQuery { * based on the query's join structure. * @returns {(function(member: string): (string))} */ + /** + * @returns {(member: string) => string} + */ resolveFullMemberPathFn() { const { root: queryJoinRoot } = this.join || {}; diff --git a/packages/cubejs-schema-compiler/test/unit/TestUtil.js b/packages/cubejs-schema-compiler/test/unit/TestUtil.js index ea65badea7d52..645371eafc0cd 100644 --- a/packages/cubejs-schema-compiler/test/unit/TestUtil.js +++ b/packages/cubejs-schema-compiler/test/unit/TestUtil.js @@ -1,15 +1,13 @@ import sqlstring from 'sqlstring'; -export function logSqlAndParams(query) { - const parts = query.buildSqlAndParams(); - // debugLog(parts[0]); - // debugLog(parts[1]); - exports.debugLog(sqlstring.format(parts[0], parts[1])); -} - -export function debugLog() { +export function debugLog(...args) { if (process.env.DEBUG_LOG === 'true') { // eslint-disable-next-line - console.log.apply(console, [...arguments]); + console.log(...args); } } + +export function logSqlAndParams(query) { + const parts = query.buildSqlAndParams(); + debugLog(sqlstring.format(parts[0], parts[1])); +} diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index 18c23c7a9ca40..7950f09197ae1 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -15,4 +15,10 @@ "resolveJsonModule": true, "experimentalDecorators": true }, + "references": [ + { "path": "../cubejs-backend-native" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-mssql-driver" }, + { "path": "../cubejs-query-orchestrator" } + ] } diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index 9c870d18a9065..143deb094875a 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -14,4 +14,15 @@ "strictBindCallApply": false, "strictPropertyInitialization": false, }, + "references": [ + { "path": "../cubejs-api-gateway" }, + { "path": "../cubejs-backend-cloud" }, + { "path": "../cubejs-backend-native" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-cubestore-driver" }, + { "path": "../cubejs-query-orchestrator" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-templates" } + ] } diff --git a/packages/cubejs-server/tsconfig.json b/packages/cubejs-server/tsconfig.json index 89512b2c22d4d..a3d60a0eabeee 100644 --- a/packages/cubejs-server/tsconfig.json +++ b/packages/cubejs-server/tsconfig.json @@ -10,5 +10,12 @@ "rootDir": ".", "allowJs": true, "resolveJsonModule": true - } + }, + "references": [ + { "path": "../cubejs-backend-native" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-cubestore-driver" }, + { "path": "../cubejs-query-orchestrator" }, + { "path": "../cubejs-server-core" } + ] } diff --git a/packages/cubejs-snowflake-driver/tsconfig.json b/packages/cubejs-snowflake-driver/tsconfig.json index f84ebd107ad81..97ef2ec605e00 100644 --- a/packages/cubejs-snowflake-driver/tsconfig.json +++ b/packages/cubejs-snowflake-driver/tsconfig.json @@ -7,5 +7,9 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" } + ] } diff --git a/packages/cubejs-templates/tsconfig.json b/packages/cubejs-templates/tsconfig.json index 2841fcbe7d038..3b127f375fded 100644 --- a/packages/cubejs-templates/tsconfig.json +++ b/packages/cubejs-templates/tsconfig.json @@ -8,4 +8,7 @@ "rootDir": ".", "noImplicitAny": false, }, + "references": [ + { "path": "../cubejs-backend-shared" } + ] } diff --git a/packages/cubejs-testing-drivers/tsconfig.json b/packages/cubejs-testing-drivers/tsconfig.json index 13d6730d06ddf..92e4b2ee6d32d 100644 --- a/packages/cubejs-testing-drivers/tsconfig.json +++ b/packages/cubejs-testing-drivers/tsconfig.json @@ -4,5 +4,27 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } -} \ No newline at end of file + }, + "references": [ + { "path": "../cubejs-athena-driver" }, + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-bigquery-driver" }, + { "path": "../cubejs-clickhouse-driver" }, + { "path": "../cubejs-client-core" }, + { "path": "../cubejs-client-ws-transport" }, + { "path": "../cubejs-crate-driver" }, + { "path": "../cubejs-cubestore-driver" }, + { "path": "../cubejs-databricks-jdbc-driver" }, + { "path": "../cubejs-mssql-driver" }, + { "path": "../cubejs-mysql-driver" }, + { "path": "../cubejs-pinot-driver" }, + { "path": "../cubejs-postgres-driver" }, + { "path": "../cubejs-query-orchestrator" }, + { "path": "../cubejs-questdb-driver" }, + { "path": "../cubejs-server-core" }, + { "path": "../cubejs-snowflake-driver" }, + { "path": "../cubejs-testing-shared" }, + { "path": "../cubejs-trino-driver" } + ] +} diff --git a/packages/cubejs-testing-shared/tsconfig.json b/packages/cubejs-testing-shared/tsconfig.json index 53a11a20640c1..30ad06d00c48b 100644 --- a/packages/cubejs-testing-shared/tsconfig.json +++ b/packages/cubejs-testing-shared/tsconfig.json @@ -6,5 +6,10 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-query-orchestrator" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/packages/cubejs-testing/tsconfig.json b/packages/cubejs-testing/tsconfig.json index 002d36b34889d..f98af8987366e 100644 --- a/packages/cubejs-testing/tsconfig.json +++ b/packages/cubejs-testing/tsconfig.json @@ -8,5 +8,16 @@ "types": ["cypress", "@4tw/cypress-drag-drop"], "outDir": "dist", "rootDir": ".", - } -} \ No newline at end of file + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-client-core" }, + { "path": "../cubejs-client-ws-transport" }, + { "path": "../cubejs-cubestore-driver" }, + { "path": "../cubejs-ksql-driver" }, + { "path": "../cubejs-postgres-driver" }, + { "path": "../cubejs-query-orchestrator" }, + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-testing-shared" } + ] +} diff --git a/packages/cubejs-trino-driver/tsconfig.json b/packages/cubejs-trino-driver/tsconfig.json index f84ebd107ad81..a5d3983b37e0b 100644 --- a/packages/cubejs-trino-driver/tsconfig.json +++ b/packages/cubejs-trino-driver/tsconfig.json @@ -7,5 +7,11 @@ "compilerOptions": { "outDir": "dist", "rootDir": ".", - } + }, + "references": [ + { "path": "../cubejs-backend-shared" }, + { "path": "../cubejs-base-driver" }, + { "path": "../cubejs-prestodb-driver" }, + { "path": "../cubejs-schema-compiler" } + ] } diff --git a/rust/cubestore/tsconfig.json b/rust/cubestore/tsconfig.json index d3fce280ff8c2..deb3aefd8bfa3 100644 --- a/rust/cubestore/tsconfig.json +++ b/rust/cubestore/tsconfig.json @@ -3,6 +3,7 @@ "outDir": "dist", "rootDir": "./js-wrapper", "incremental": true, + "composite": true, "lib": ["es2017", "es2018", "es2019", "es2020"], "target": "es2018", "module": "nodenext", @@ -25,5 +26,8 @@ "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, - "exclude": ["target", "dist", "node_modules"] + "exclude": ["target", "dist", "node_modules"], + "references": [ + { "path": "../../packages/cubejs-backend-shared" } + ] } diff --git a/tsconfig.json b/tsconfig.json index db7b06f13953f..a58a1843f7234 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -46,6 +46,9 @@ { "path": "packages/cubejs-api-gateway" }, + { + "path": "packages/cubejs-testing" + }, { "path": "packages/cubejs-druid-driver" }, @@ -126,11 +129,6 @@ }, { "path": "packages/cubejs-dbt-schema-extension" - }, - // Keep last: its tests resolve the driver packages by name, and a resolution failure recorded - // before those projects are built poisons the shared cache for the rest of `tsc --build`. - { - "path": "packages/cubejs-testing" } ] } From c08babd7369ff3c7658ff6b8f9a8e934c439fba7 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 17:33:33 +0200 Subject: [PATCH 04/20] refactor: drop a comment copied onto the wrong option Adding `composite` to cubejs-client-ws-transport carried `declarationDir`'s trailing comment along with it, where it describes something else entirely. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-client-ws-transport/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cubejs-client-ws-transport/tsconfig.json b/packages/cubejs-client-ws-transport/tsconfig.json index f23f6710a7bda..2fb35df8f3c6e 100644 --- a/packages/cubejs-client-ws-transport/tsconfig.json +++ b/packages/cubejs-client-ws-transport/tsconfig.json @@ -8,7 +8,7 @@ "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", - "composite": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + "composite": true, "rootDir": "./src", "sourceMap": false, /* Generates corresponding '.map' file. */ "outDir": "./temp", /* Redirect output structure to the directory. */ From 1fc6dca9751817665a9b03d7041797a98e39ff80 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 17:39:33 +0200 Subject: [PATCH 05/20] docs: record why schema-compiler cannot use nodenext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Answers a review question. Redirecting `antlr4` through `paths` and keeping nodenext was measured: 280 errors, because the failing extensionless specifiers are inside antlr4's own `.d.ts` files, whose ESM format comes from antlr4's `type: module` and cannot be changed from the consumer side. The comment now also states the cost of `bundler` — type-checking against the `import` condition while emitting require() — and the one dependency it currently affects. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-schema-compiler/tsconfig.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index 7950f09197ae1..cab2f2c60224c 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -2,9 +2,12 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { - // antlr4 ships `types: index.d.cts` re-exporting `.d.ts` files that are ESM under its own - // `type: module`, so under node16/nodenext every re-export fails (TS2834) and the module - // resolves to nothing. `bundler` ignores the CJS/ESM split; `commonjs` keeps the emit. + // antlr4's type tree is unresolvable under node16/nodenext: `types` is a .d.cts re-exporting + // `.d.ts` files that are ESM under antlr4's own `type: module`, so their extensionless + // specifiers fail (TS2834) and the module resolves to nothing. A `paths` redirect does not + // help — the failing specifiers are inside antlr4. `bundler` therefore type-checks against + // the `import` condition while `commonjs` emits require(); of the deps here only lru-cache + // splits types by condition, and its two declaration files are identical. "module": "commonjs", "moduleResolution": "bundler", "outDir": "dist", From 8e08aec21b4def25da787148596fda1fc94201b7 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 17:54:54 +0200 Subject: [PATCH 06/20] Update packages/cubejs-schema-compiler/tsconfig.json Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> --- packages/cubejs-schema-compiler/tsconfig.json | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index cab2f2c60224c..1fc67f71e5bc0 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -2,12 +2,10 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { - // antlr4's type tree is unresolvable under node16/nodenext: `types` is a .d.cts re-exporting - // `.d.ts` files that are ESM under antlr4's own `type: module`, so their extensionless - // specifiers fail (TS2834) and the module resolves to nothing. A `paths` redirect does not - // help — the failing specifiers are inside antlr4. `bundler` therefore type-checks against - // the `import` condition while `commonjs` emits require(); of the deps here only lru-cache - // splits types by condition, and its two declaration files are identical. + // antlr4's `types` is a .d.cts re-exporting `.d.ts` files that are ESM under antlr4's own + // `type: module`, so under node16/nodenext their extensionless specifiers fail (TS2834) and + // the module resolves to nothing. A `paths` redirect cannot help — the failing specifiers are + // inside antlr4. Cost: `bundler` checks the `import` condition while `commonjs` emits require(). "module": "commonjs", "moduleResolution": "bundler", "outDir": "dist", From 4b0a6f58a0def544b04eb30391acc19c9019916a Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 19:05:21 +0200 Subject: [PATCH 07/20] fix: do not reference packages the Docker images build without `docker build` failed with TS6053 for three of the references added in 94276dfd6d. The images copy a subset of the workspace: `testing-drivers.Dockerfile` leaves out the frontend packages and both it and `dev.Dockerfile` leave out `cubejs-testing`, so a reference to one of those resolves to a directory with no tsconfig.json. | Dropped reference | Why it is absent | | --- | --- | | server-core -> templates | not copied by testing-drivers.Dockerfile; `@cubejs-backend/templates` comes from the registry there | | dbt-schema-extension -> testing | `cubejs-testing` is in no image, and it is a devDependency | | materialize-driver -> testing | same | Verified by hiding both packages' tsconfig.json and compiling the three packages, which is the state the image build sees. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-dbt-schema-extension/tsconfig.json | 3 +-- packages/cubejs-materialize-driver/tsconfig.json | 3 +-- packages/cubejs-server-core/tsconfig.json | 5 +++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/cubejs-dbt-schema-extension/tsconfig.json b/packages/cubejs-dbt-schema-extension/tsconfig.json index 298392637cc08..b11f49cca0d8d 100644 --- a/packages/cubejs-dbt-schema-extension/tsconfig.json +++ b/packages/cubejs-dbt-schema-extension/tsconfig.json @@ -9,7 +9,6 @@ "rootDir": ".", }, "references": [ - { "path": "../cubejs-schema-compiler" }, - { "path": "../cubejs-testing" } + { "path": "../cubejs-schema-compiler" } ] } diff --git a/packages/cubejs-materialize-driver/tsconfig.json b/packages/cubejs-materialize-driver/tsconfig.json index 7214bfb238ac7..7b012feab787a 100644 --- a/packages/cubejs-materialize-driver/tsconfig.json +++ b/packages/cubejs-materialize-driver/tsconfig.json @@ -8,7 +8,6 @@ "references": [ { "path": "../cubejs-backend-shared" }, { "path": "../cubejs-base-driver" }, - { "path": "../cubejs-postgres-driver" }, - { "path": "../cubejs-testing" } + { "path": "../cubejs-postgres-driver" } ] } diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index 143deb094875a..dfe2be6aad554 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -22,7 +22,8 @@ { "path": "../cubejs-base-driver" }, { "path": "../cubejs-cubestore-driver" }, { "path": "../cubejs-query-orchestrator" }, - { "path": "../cubejs-schema-compiler" }, - { "path": "../cubejs-templates" } + { "path": "../cubejs-schema-compiler" } + // No reference to ../cubejs-templates: the Docker images build server-core without that + // package in the tree and take @cubejs-backend/templates from the registry instead. ] } From a88baa6fd05e0d8718be2a1c9e001724ee9cea2d Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 19:07:18 +0200 Subject: [PATCH 08/20] refactor: drop the comment on the omitted templates reference Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-server-core/tsconfig.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index dfe2be6aad554..1a2d90a5bf32e 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -23,7 +23,5 @@ { "path": "../cubejs-cubestore-driver" }, { "path": "../cubejs-query-orchestrator" }, { "path": "../cubejs-schema-compiler" } - // No reference to ../cubejs-templates: the Docker images build server-core without that - // package in the tree and take @cubejs-backend/templates from the registry instead. ] } From 321634cdbdacb093631d01c5b8a2bee92db483c0 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Fri, 4 Sep 2026 19:38:29 +0200 Subject: [PATCH 09/20] fix(testing-drivers): construct drivers through the right export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `getDriver` threw `driverModule.default is not a constructor` in every drivers-tests job. Replacing the dynamic import with `require` dropped the `esModuleInterop` wrapper that used to put the module on `.default`, and the driver packages come in two shapes: | Shape | Packages | Constructor | | --- | --- | --- | | `module.exports = DriverClass` from the `index.js` shim | athena, bigquery, postgres, trino, clickhouse, mssql, mysql, snowflake, redshift, oracle, … | the module itself | | TypeScript `export default` | databricks-jdbc (`main: dist/src/index.js`) | `.default` | Now branches on `__esModule`, which is what `__importStar` did. Verified by running the compiled `getDriver('postgres')`, and the same interop in the `cube.js` loader was re-checked against both a `module.exports = {...}` and an `export default {...}` config. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-testing-drivers/src/helpers/getDriver.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts index a73404d80b151..f5a8b139d39a4 100644 --- a/packages/cubejs-testing-drivers/src/helpers/getDriver.ts +++ b/packages/cubejs-testing-drivers/src/helpers/getDriver.ts @@ -5,12 +5,13 @@ export async function getDriver(type: string): Promise<{ source: BaseDriver, storage: BaseDriver, }> { - // `module: nodenext` emits import() verbatim, and a native import of these CommonJS packages - // would put the whole module on `.default`. + // `module: nodenext` emits import() verbatim, so this stays a require() and does the + // esModuleInterop dance by hand: most driver packages set `module.exports` to the class, + // while databricks-jdbc compiles from TypeScript and exposes it as `default`. // eslint-disable-next-line global-require, import/no-dynamic-require const driverModule = require(`@cubejs-backend/${type}-driver`); - // eslint-disable-next-line new-cap - const source: BaseDriver = new driverModule.default(); + const DriverClass = driverModule.__esModule ? driverModule.default : driverModule; + const source: BaseDriver = new DriverClass(); source.setLogger((msg: unknown, event: unknown) => console.log(`${msg}: ${JSON.stringify(event)}`)); const storage = new CubeStoreDriver(); return { source, storage }; From 0413c1e3fe4a6bbe86a1037f1e6c15411ec04d04 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 14:17:51 +0200 Subject: [PATCH 10/20] refactor(base-driver): keep the lazy cloud SDK loads on await import() Reverts the require() form. Two things were in the way and both are now handled: | Problem | Fix | | --- | --- | | nodenext demands a `.js` suffix on relative specifiers, which jest's resolver does not map back to the `.ts` source | `moduleNameMapper` entry in the shared jest config, inherited by all 31 package configs | | the compiled `dist` is loaded untransformed by other packages' jest runs, where a native `import()` needs `--experimental-vm-modules` | set on `test-driver`, through which all 59 driver suites run | Measured against the real compiled BaseDriver from another package's jest run: without the flag `A dynamic import callback was invoked without --experimental-vm-modules`, with it the import resolves and the call reaches the GCS SDK. Unit sweep across all 28 packages matches the baseline. Co-Authored-By: Claude Opus 5 (1M context) --- jest.base.config.js | 1 + packages/cubejs-base-driver/src/BaseDriver.ts | 12 +++--------- packages/cubejs-testing-drivers/package.json | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/jest.base.config.js b/jest.base.config.js index 58c9b1ac1fbf0..bb83a2d7f0c5f 100644 --- a/jest.base.config.js +++ b/jest.base.config.js @@ -16,6 +16,7 @@ module.exports = { '^uuid$': require.resolve('uuid'), '^yaml$': require.resolve('yaml'), '^antlr4$': require.resolve('antlr4'), + '^(\\.{1,2}/.*)\\.js$': '$1', }, setupFiles: ['../../jest.setup.js'], snapshotFormat: { diff --git a/packages/cubejs-base-driver/src/BaseDriver.ts b/packages/cubejs-base-driver/src/BaseDriver.ts index 35463a703fbd2..bdb95de93dc98 100644 --- a/packages/cubejs-base-driver/src/BaseDriver.ts +++ b/packages/cubejs-base-driver/src/BaseDriver.ts @@ -686,9 +686,7 @@ export abstract class BaseDriver implements DriverInterface { prefix: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite heavy. - // eslint-disable-next-line global-require - const { extractUnloadedFilesFromS3 } = require('./storage-fs/aws.fs') as typeof import('./storage-fs/aws.fs.js'); - return extractUnloadedFilesFromS3(clientOptions, bucketName, prefix); + return (await import('./storage-fs/aws.fs.js')).extractUnloadedFilesFromS3(clientOptions, bucketName, prefix); } /** @@ -700,9 +698,7 @@ export abstract class BaseDriver implements DriverInterface { tableName: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite heavy. - // eslint-disable-next-line global-require - const { extractFilesFromGCS } = require('./storage-fs/gcs.fs') as typeof import('./storage-fs/gcs.fs.js'); - return extractFilesFromGCS(gcsConfig, bucketName, tableName); + return (await import('./storage-fs/gcs.fs.js')).extractFilesFromGCS(gcsConfig, bucketName, tableName); } protected async extractFilesFromAzure( @@ -711,8 +707,6 @@ export abstract class BaseDriver implements DriverInterface { tableName: string ): Promise { // Lazy loading, because it's using azure SDK, which is quite (extremely) heavy. - // eslint-disable-next-line global-require - const { extractFilesFromAzure } = require('./storage-fs/azure.fs') as typeof import('./storage-fs/azure.fs.js'); - return extractFilesFromAzure(azureConfig, bucketName, tableName); + return (await import('./storage-fs/azure.fs.js')).extractFilesFromAzure(azureConfig, bucketName, tableName); } } diff --git a/packages/cubejs-testing-drivers/package.json b/packages/cubejs-testing-drivers/package.json index 278462702db23..8cb963fc237e1 100644 --- a/packages/cubejs-testing-drivers/package.json +++ b/packages/cubejs-testing-drivers/package.json @@ -19,7 +19,7 @@ "lint": "eslint src/* test/ --ext .ts", "lint:fix": "eslint --fix src/* test/ --ext .ts", "image": "node dist/test/buildCubeImage", - "test-driver": "TZ=UTC jest --forceExit --runInBand --verbose", + "test-driver": "TZ=UTC NODE_OPTIONS=--experimental-vm-modules jest --forceExit --runInBand --verbose", "athena-driver": "yarn test-driver -i dist/test/athena-driver.test.js", "athena-core": "yarn test-driver -i dist/test/athena-core.test.js", "athena-export-bucket-s3-full": "yarn test-driver -i dist/test/athena-export-bucket-s3-full.test.js", From e3f87e5d8ac5fceebdb1b4f635afde089a3e73cf Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 14:54:15 +0200 Subject: [PATCH 11/20] fix(testing): upgrade Cypress to a version that supports TypeScript 6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Cypress step of the dev-image job failed before running a single test: ``` Your configFile is invalid: packages/cubejs-testing/cypress.config.ts error TS5107: Option 'moduleResolution=node10' is deprecated and will stop functioning in TypeScript 7.0. ``` Cypress 14 compiles the config with its bundled ts-node while hard-coding `moduleResolution: 'node'`, and injects `downlevelIteration` into ts-loader for the specs — then hands both to whichever TypeScript the project resolves, now 6.0.3. Cypress 15.14.0 added official TypeScript 6 support: the config loader no longer forces node10 and the bundled `webpack-batteries-included-preprocessor` stopped injecting `downlevelIteration`. Bumping to 15.21.1 removes both, so nothing has to be silenced with `ignoreDeprecations` and every Cypress file stays TypeScript. That left one real error, ours: `cypress/tsconfig.json` still carried the `baseUrl` this branch removed everywhere else — my earlier sweep globbed `packages/*/tsconfig*.json` and missed a directory level. It was dead anyway: no tsconfig on the Cypress chain defines `paths`, and every spec and support import is relative or a bare package name. Verified locally against a stub server on :3080 — config loads, `cypress/support/*.ts` and the specs compile with no TS diagnostics; the only failures are the assertions that need a real Cube app. The plugin packages' `cypress` peer ranges were already stale at 14 and warn the same way. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-testing/cypress/tsconfig.json | 1 - packages/cubejs-testing/package.json | 2 +- yarn.lock | 337 ++++++++++++------ 3 files changed, 221 insertions(+), 119 deletions(-) diff --git a/packages/cubejs-testing/cypress/tsconfig.json b/packages/cubejs-testing/cypress/tsconfig.json index 5c2b54fffe2da..8a701fd4875a3 100644 --- a/packages/cubejs-testing/cypress/tsconfig.json +++ b/packages/cubejs-testing/cypress/tsconfig.json @@ -8,7 +8,6 @@ "types": ["cypress", "@4tw/cypress-drag-drop"], "outDir": "dist", "rootDir": ".", - "baseUrl": ".", "sourceMap": false } } \ No newline at end of file diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 32020e84875b4..9ccc7419f4ceb 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -118,7 +118,7 @@ "@types/http-proxy": "^1.17.5", "@types/jest": "^29", "@types/node": "^22", - "cypress": "14.0.0", + "cypress": "15.21.1", "cypress-image-snapshot": "^4.0.1", "cypress-localstorage-commands": "^1.4.5", "cypress-plugin-snapshots": "^1.4.4", diff --git a/yarn.lock b/yarn.lock index 95900f00cd7ba..65e4dff904ec7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2683,11 +2683,6 @@ style-mod "^4.0.0" w3c-keyname "^2.2.4" -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - "@colors/colors@1.6.0", "@colors/colors@^1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" @@ -2831,10 +2826,10 @@ "@octokit/plugin-rest-endpoint-methods" "^10" source-map-support "^0.5.21" -"@cypress/request@^3.0.6": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.7.tgz#6a74a4da98d9e5ae9121d6e2d9c14780c9b5cf1a" - integrity sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg== +"@cypress/request@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-4.0.1.tgz#c3f0eec41834e7590d21cd740a4c6f7e0326368d" + integrity sha512-y20e+e6dFYkOUUJLVUZTsJRuTiXZaUQ32WD+R/ux/HBybbTx4ge7cNINcua0pU8+SNkKuRbOF12mBmzuzM8n5w== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -2842,18 +2837,17 @@ combined-stream "~1.0.6" extend "~3.0.2" forever-agent "~0.6.1" - form-data "~4.0.0" + form-data "~4.0.4" http-signature "~1.4.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" performance-now "^2.1.0" - qs "6.13.1" + qs "^6.15.2" safe-buffer "^5.1.2" tough-cookie "^5.0.0" tunnel-agent "^0.6.0" - uuid "^8.3.2" "@cypress/xvfb@^1.2.4": version "1.2.4" @@ -8816,6 +8810,11 @@ dependencies: "@types/node" "*" +"@types/tmp@^0.2.3": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" + integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== + "@types/tough-cookie@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" @@ -9604,6 +9603,11 @@ ansi-regex@^6.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== +ansi-regex@^6.2.2: + version "6.3.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.3.0.tgz#247c8e7b70a1a43b10ce14c0226fcbf58e8815d5" + integrity sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ== + ansi-styles@4.3.0, ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.2.0, ansi-styles@^4.2.1: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -9633,6 +9637,11 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== +ansi-styles@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -9720,10 +9729,10 @@ app-path@^3.2.0: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== +arch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-3.0.0.tgz#a44e7077da4615fc5f1e3da21fbfc201d2c1817c" + integrity sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q== archiver-utils@^5.0.0, archiver-utils@^5.0.2: version "5.0.2" @@ -9981,7 +9990,7 @@ async-validator@~1.11.3: resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.11.5.tgz#9d43cf49ef6bb76be5442388d19fb9a6e47597ea" integrity sha512-XNtCsMAeAH1pdLMEg1z8/Bb3a8cdCbui9QbJATRFHHHW5kT6+NPI3zSVQUXgikTFITzsg+kYY5NTWhM2Orwt9w== -async@^3.2.0, async@^3.2.3, async@^3.2.4, async@^3.2.6: +async@^3.2.3, async@^3.2.4, async@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== @@ -10766,10 +10775,10 @@ cacache@^20.0.0, cacache@^20.0.1: ssri "^13.0.0" unique-filename "^5.0.0" -cachedir@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== +cachedir@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== call-bind-apply-helpers@1.0.2, call-bind-apply-helpers@^1.0.2: version "1.0.2" @@ -10926,11 +10935,6 @@ chardet@^2.1.1: resolved "https://registry.yarnpkg.com/chardet/-/chardet-2.1.1.tgz#5c75593704a642f71ee53717df234031e65373c8" integrity sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ== -check-more-types@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" - integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= - "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" @@ -10968,6 +10972,14 @@ chownr@^3.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== +chrome-remote-interface@0.33.3: + version "0.33.3" + resolved "https://registry.yarnpkg.com/chrome-remote-interface/-/chrome-remote-interface-0.33.3.tgz#d8b4339f487b460a9461af7355bda98054e8e1a4" + integrity sha512-zNnn0prUL86Teru6UCAZ1yU1XeXljHl3gj7OrfPcarEfU62OUU4IujDPdTDW3dAWwRqN3ZMG/Chhkh2gPL/wiw== + dependencies: + commander "2.11.x" + ws "^7.2.0" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -11000,6 +11012,11 @@ ci-info@^4.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.1.0.tgz#92319d2fa29d2620180ea5afed31f589bc98cf83" integrity sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A== +ci-info@^4.1.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.4.0.tgz#7d54eff9f54b45b62401c26032696eb59c8bd18c" + integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== + cjs-module-lexer@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" @@ -11048,22 +11065,14 @@ cli-spinners@2.6.1, cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== -cli-table3@~0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" - integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== +cli-table3@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" + integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== dependencies: string-width "^4.2.0" optionalDependencies: - "@colors/colors" "1.5.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + colors "1.4.0" cli-truncate@^4.0.0: version "4.0.0" @@ -11073,6 +11082,14 @@ cli-truncate@^4.0.0: slice-ansi "^5.0.0" string-width "^7.0.0" +cli-truncate@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-5.2.0.tgz#c8e72aaca8339c773d128c36e0a17c6315b694eb" + integrity sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw== + dependencies: + slice-ansi "^8.0.0" + string-width "^8.2.0" + cli-ux@5.6.6: version "5.6.6" resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-5.6.6.tgz#1424f5a9fbddcd796ad985b867a3de7f5a452090" @@ -11245,11 +11262,16 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" -colorette@^2.0.10, colorette@^2.0.16, colorette@^2.0.20: +colorette@^2.0.10, colorette@^2.0.20: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + colorspace@1.1.x: version "1.1.4" resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" @@ -11273,6 +11295,11 @@ combined-stream@1.0.8, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@2.11.x: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ== + commander@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" @@ -11888,41 +11915,37 @@ cypress-wait-until@^1.7.2: resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-1.7.2.tgz#7f534dd5a11c89b65359e7a0210f20d3dfc22107" integrity sha512-uZ+M8/MqRcpf+FII/UZrU7g1qYZ4aVlHcgyVopnladyoBrpoaMJ4PKZDrdOJ05H5RHbr7s9Tid635X3E+ZLU/Q== -cypress@14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.0.0.tgz#a71cb0a243a0bfeb97b6973ab9c5291ca5288e93" - integrity sha512-kEGqQr23so5IpKeg/dp6GVi7RlHx1NmW66o2a2Q4wk9gRaAblLZQSiZJuDI8UMC4LlG5OJ7Q6joAiqTrfRNbTw== +cypress@15.21.1: + version "15.21.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.21.1.tgz#51653d58fa0e9994a11406aa3df2bee716264f9a" + integrity sha512-ogHpHMj0XNlZA5MGzjg8SWHf0eMw9lTwVQRKjpcT1GzNTxNUjwnHA8YCG6nOJ8ThU+XZaUxJgpMYZnJ//8aDaw== dependencies: - "@cypress/request" "^3.0.6" + "@cypress/request" "^4.0.0" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" - arch "^2.2.0" + "@types/tmp" "^0.2.3" + arch "^3.0.0" blob-util "^2.0.2" bluebird "^3.7.2" buffer "^5.7.1" - cachedir "^2.3.0" + cachedir "^2.4.0" chalk "^4.1.0" - check-more-types "^2.24.0" - ci-info "^4.0.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.1" + chrome-remote-interface "0.33.3" + ci-info "^4.1.0" + cli-table3 "0.6.1" commander "^6.2.1" common-tags "^1.8.0" dayjs "^1.10.4" debug "^4.3.4" - enquirer "^2.3.6" eventemitter2 "6.4.7" execa "4.1.0" executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" fs-extra "^9.1.0" - getos "^3.2.1" + hasha "5.2.2" is-installed-globally "~0.4.0" - lazy-ass "^1.6.0" - listr2 "^3.8.3" - lodash "^4.17.21" + listr2 "^9.0.5" + lodash "^4.17.23" log-symbols "^4.0.0" minimist "^1.2.8" ospath "^1.2.2" @@ -11930,12 +11953,12 @@ cypress@14.0.0: process "^0.11.10" proxy-from-env "1.0.0" request-progress "^3.0.0" - semver "^7.5.3" supports-color "^8.1.1" - tmp "~0.2.3" + systeminformation "^5.31.1" + tmp "~0.2.4" tree-kill "1.2.2" untildify "^4.0.0" - yauzl "^2.10.0" + yauzl "^3.3.1" "d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: version "3.2.4" @@ -12750,7 +12773,7 @@ enhanced-resolve@^5.17.1: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5: version "2.4.1" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== @@ -13687,7 +13710,7 @@ extract-stack@^2.0.0: resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-2.0.0.tgz#11367bc865bfcd9bc0db3123e5edb57786f11f9b" integrity sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ== -extract-zip@2.0.1, extract-zip@^2.0.1: +extract-zip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== @@ -13881,7 +13904,7 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -figures@3.2.0, figures@^3.0.0, figures@^3.2.0: +figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -14091,7 +14114,7 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -form-data@4.0.6: +form-data@4.0.6, form-data@~4.0.4: version "4.0.6" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== @@ -14114,7 +14137,7 @@ form-data@^2.3.1, form-data@^2.5.0: mime-types "^2.1.35" safe-buffer "^5.2.1" -form-data@^4.0.0, form-data@^4.0.5, form-data@~4.0.0: +form-data@^4.0.0, form-data@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== @@ -14338,7 +14361,12 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== -get-intrinsic@1.3.0: +get-east-asian-width@^1.3.1, get-east-asian-width@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz#216900f91df11a8b2c198c3e1d93d6c035a776b9" + integrity sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA== + +get-intrinsic@1.3.0, get-intrinsic@^1.2.5: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -14435,13 +14463,6 @@ get-uri@^6.0.1: data-uri-to-buffer "^6.0.2" debug "^4.3.4" -getos@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" - integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== - dependencies: - async "^3.2.0" - getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -14834,6 +14855,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasha@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hasown@2.0.4, hasown@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" @@ -15589,6 +15618,13 @@ is-fullwidth-code-point@^5.0.0: dependencies: get-east-asian-width "^1.0.0" +is-fullwidth-code-point@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98" + integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== + dependencies: + get-east-asian-width "^1.3.1" + is-function@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" @@ -16834,11 +16870,6 @@ launch-editor@^2.6.1: picocolors "^1.0.0" shell-quote "^1.8.1" -lazy-ass@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" - integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= - lazystream@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" @@ -17109,19 +17140,17 @@ listr2@8.2.4: rfdc "^1.4.1" wrap-ansi "^9.0.0" -listr2@^3.8.3: - version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" - integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== +listr2@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.5.tgz#92df7c4416a6da630eb9ef46da469b70de97b316" + integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.1" - through "^2.3.8" - wrap-ansi "^7.0.0" + cli-truncate "^5.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" lmdb@3.0.13: version "3.0.13" @@ -17296,7 +17325,7 @@ lodash.upperfirst@^4.3.1: resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= -lodash@^3.10.1, lodash@^4.16.5, lodash@^4.17.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: +lodash@^3.10.1, lodash@^4.16.5, lodash@^4.17.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.23, lodash@^4.17.4: version "4.17.23" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== @@ -17309,16 +17338,6 @@ log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - log-update@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" @@ -18973,6 +18992,11 @@ object-inspect@^1.13.1: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -20324,7 +20348,15 @@ qs@6.13.0: dependencies: side-channel "^1.0.6" -qs@6.13.1, qs@^6.5.1: +qs@^6.15.2: + version "6.16.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd" + integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA== + dependencies: + es-define-property "^1.0.1" + side-channel "^1.1.1" + +qs@^6.5.1: version "6.13.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e" integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg== @@ -21599,7 +21631,7 @@ rxjs@^6.4.0, rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.5.1, rxjs@^7.8.1, rxjs@^7.8.2: +rxjs@^7.8.1, rxjs@^7.8.2: version "7.8.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== @@ -22002,6 +22034,35 @@ should@^13.2.3: should-type-adaptors "^1.0.1" should-util "^1.0.0" +side-channel-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.1.tgz#c2e0b5a14a540aebee3bbc6c3f8666cc9b509127" + integrity sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" @@ -22012,6 +22073,17 @@ side-channel@^1.0.4, side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" +side-channel@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab" + integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.4" + side-channel-list "^1.0.1" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + siginfo@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" @@ -22092,15 +22164,6 @@ slash@^5.1.0: resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" @@ -22126,6 +22189,14 @@ slice-ansi@^7.1.0: ansi-styles "^6.2.1" is-fullwidth-code-point "^5.0.0" +slice-ansi@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-8.0.0.tgz#22d0b66d18bc5c57f488bfcf36cbde3bef731537" + integrity sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg== + dependencies: + ansi-styles "^6.2.3" + is-fullwidth-code-point "^5.1.0" + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -22629,6 +22700,14 @@ string-width@^7.0.0: get-east-asian-width "^1.0.0" strip-ansi "^7.1.0" +string-width@^8.2.0: + version "8.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-8.2.2.tgz#7310516493df575742fe98af6fae87d85d5ed0ac" + integrity sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg== + dependencies: + get-east-asian-width "^1.5.0" + strip-ansi "^7.1.2" + string.prototype.matchall@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" @@ -22720,6 +22799,13 @@ strip-ansi@^7.0.1, strip-ansi@^7.1.0: dependencies: ansi-regex "^6.0.1" +strip-ansi@^7.1.2: + version "7.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3" + integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w== + dependencies: + ansi-regex "^6.2.2" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -22877,6 +22963,11 @@ syntax-error@^1.3.0: dependencies: acorn-node "^1.2.0" +systeminformation@^5.31.1: + version "5.33.8" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.33.8.tgz#9fa0092e71adf50a7b8d5209c0767eb16dfe727a" + integrity sha512-v4F6OGYGh7wDvV68YmjOmZwGixV9A/GQ7d2b84t0UF4CaOy9jipNWIJDkHqYDYiTPuiojqlwVQd0hfUKOUN7tQ== + table@^6.0.9: version "6.7.5" resolved "https://registry.yarnpkg.com/table/-/table-6.7.5.tgz#f04478c351ef3d8c7904f0e8be90a1b62417d238" @@ -23137,7 +23228,7 @@ through2@^4.0.0: dependencies: readable-stream "3" -through@^2.3.6, through@^2.3.8: +through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -23218,7 +23309,7 @@ tldts@^6.1.32: dependencies: tldts-core "^6.1.74" -tmp@0.2.7: +tmp@0.2.7, tmp@~0.2.4: version "0.2.7" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.7.tgz#26f4db11d1601ce8012dcb8a798ece1c06a99059" integrity sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw== @@ -23237,7 +23328,7 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" -tmp@^0.2.3, tmp@~0.2.3: +tmp@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== @@ -23511,7 +23602,7 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -24619,6 +24710,11 @@ ws@^7.1.2, ws@^7.3.1, ws@^7.4.3, ws@^7.5.3, ws@~7.5.10: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^7.2.0: + version "7.5.13" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.13.tgz#12aa507eaca76c295c278b1aebf4698ab2c1845f" + integrity sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA== + ws@^8.11.0: version "8.19.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" @@ -24780,6 +24876,13 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" +yauzl@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-3.4.0.tgz#88b2a21455f37ca7dccf2eeb33bacb4392322719" + integrity sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw== + dependencies: + pend "~1.2.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 0fe3e19c0ea7310f91e91a9792e2877c990c4135 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:13:00 +0200 Subject: [PATCH 12/20] fix(testing): type-check the Cypress project in yarn tsc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses a review comment. `cypress/tsconfig.json` inherited `include: ["src", "test"]` from the package config, but that directory holds `e2e`, `support`, `plugins`, `fixtures`, `queries.ts` and `global.d.ts` — so the project had zero input files and `yarn tsc` never checked a single Cypress file. That is why the deprecated `baseUrl` sitting in it could only surface as a red dev-image job after a full Docker build and birdbox startup. The project now points at the directories that exist and extends `tsconfig.base.json` directly rather than the package config, so it does not inherit `nodenext` — these files are bundled by Cypress's webpack preprocessor for a browser, hence `module: esnext` + `moduleResolution: bundler` and a DOM lib. It is registered in the root reference list, and root `clean` now also removes its build output. Three type errors were hiding behind the dead `include`: | Error | Cause | | --- | --- | | TS2322 ×2 in `support/commands.ts` | `getByTestId`/`getByQa` were declared as `Chainable`, but `cy.get()` returns `Chainable>` | | TS7016 in `support/e2e.ts` | `cypress-image-snapshot` ships no types; declared as an ambient module rather than adding `@types/cypress-image-snapshot`, which types v3 while we run v4 and would collide with the hand-written `matchImageSnapshot` augmentation | Verified: cold `yarn tsc` and `yarn lint` green, and a Cypress run against a stub server still loads the config and compiles the support files and specs. Co-Authored-By: Claude Opus 5 (1M context) --- package.json | 2 +- packages/cubejs-testing/cypress/global.d.ts | 6 ++++-- packages/cubejs-testing/cypress/tsconfig.json | 13 +++++++++---- tsconfig.json | 3 +++ 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 6e3036146151c..1d0d7dd840b21 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "lint:fix": "lerna run lint:fix", "tsc": "tsc --build", "tsc:watch": "tsc --build --watch", - "clean": "rimraf packages/*/{tsconfig.tsbuildinfo,lib,dist}" + "clean": "rimraf packages/*/{tsconfig.tsbuildinfo,lib,dist} packages/cubejs-testing/cypress/{tsconfig.tsbuildinfo,dist}" }, "author": "Cube Dev, Inc.", "dependencies": { diff --git a/packages/cubejs-testing/cypress/global.d.ts b/packages/cubejs-testing/cypress/global.d.ts index c5059b68da479..11cd1cdacd6f1 100644 --- a/packages/cubejs-testing/cypress/global.d.ts +++ b/packages/cubejs-testing/cypress/global.d.ts @@ -7,9 +7,9 @@ declare namespace Cypress { }; interface Chainable { - getByTestId(dataTestAttribute: string, args?: any): Chainable; + getByTestId(dataTestAttribute: string, args?: any): Chainable>; - getByQa(dataTestAttribute: string, args?: any): Chainable; + getByQa(dataTestAttribute: string, args?: any): Chainable>; setQuery(query: Object, args?: any): void; @@ -36,3 +36,5 @@ declare namespace Cypress { getLocalStorage(item: string): Chainable; } } + +declare module 'cypress-image-snapshot/command'; diff --git a/packages/cubejs-testing/cypress/tsconfig.json b/packages/cubejs-testing/cypress/tsconfig.json index 8a701fd4875a3..be33d49add1b4 100644 --- a/packages/cubejs-testing/cypress/tsconfig.json +++ b/packages/cubejs-testing/cypress/tsconfig.json @@ -1,13 +1,18 @@ { - "extends": "../tsconfig.json", + "extends": "../../../tsconfig.base.json", "include": [ - "src", - "test" + "e2e", + "support", + "queries.ts", + "global.d.ts" ], "compilerOptions": { + "module": "esnext", + "moduleResolution": "bundler", + "lib": ["dom", "dom.iterable", "es2023"], "types": ["cypress", "@4tw/cypress-drag-drop"], "outDir": "dist", "rootDir": ".", "sourceMap": false } -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index a58a1843f7234..909a9d0879e50 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -49,6 +49,9 @@ { "path": "packages/cubejs-testing" }, + { + "path": "packages/cubejs-testing/cypress" + }, { "path": "packages/cubejs-druid-driver" }, From 2e89077539cb1a94e290a1af337d3c387f06fe33 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:16:04 +0200 Subject: [PATCH 13/20] fix(server): load cube.js through await import() again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses a review comment. The `require()` I had switched to is what `module: commonjs` downlevelled `import()` into on master (`Promise.resolve(...).then(s => __importStar(require(s)))` in the 5.2.2 output), so it was not a regression — but it does keep the loader from ever supporting an ESM config. `pathToFileURL` solves the actual problem, which was handing the ESM loader a bare absolute path (fatal on Windows), so the dynamic import stays. The namespace shape differs from `__importStar`'s, so the unwrap is now two steps: a CommonJS `cube.js` arrives with `module.exports` on `default`, which puts a transpiled `exports.default` one level deeper. Verified against every config shape by calling the compiled loader directly: | `cube.js` | Result | | --- | --- | | `module.exports = {...}` | loaded | | `export default {...}` in a `"type": "module"` project | loaded | | `export default await ...` (top-level await) | loaded — this threw `ERR_REQUIRE_ASYNC_MODULE` on master | | transpiled `exports.__esModule` + `exports.default` | loaded | | ESM with named exports only | `Configuration file must export the configuration as default.`, as before | No jest suite reaches this path (birdbox starts Cube as its own process), so the native import needs no VM flag. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-server/src/server/container.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/cubejs-server/src/server/container.ts b/packages/cubejs-server/src/server/container.ts index 56c80daeb3ebf..700c8709c2f33 100644 --- a/packages/cubejs-server/src/server/container.ts +++ b/packages/cubejs-server/src/server/container.ts @@ -1,4 +1,5 @@ import path from 'path'; +import { pathToFileURL } from 'url'; import fs from 'fs'; import fsAsync from 'fs/promises'; import color from '@oclif/color'; @@ -309,15 +310,18 @@ export class ServerContainer { } protected async loadConfigurationFromFile(): Promise { - // `module: nodenext` emits import() verbatim, handing an absolute path to the ESM loader. - // eslint-disable-next-line global-require, import/no-dynamic-require - const file = require(path.join(process.cwd(), 'cube.js')); + // A file URL, because `module: nodenext` emits import() verbatim and the ESM loader rejects + // a bare absolute path on Windows. + const file = await import(pathToFileURL(path.join(process.cwd(), 'cube.js')).href); if (this.configuration.debug) { console.log('Loaded js configuration file', file); } - const config = file?.__esModule ? file.default : file; + // For a CommonJS `cube.js` the namespace carries `module.exports` on `default`, so a + // transpiled `exports.default` arrives one level deeper. + const exported = file.default; + const config = exported?.__esModule ? exported.default : exported; if (config) { return config; From b444e30b519c252d4e7acc4f8fba4527251edb3e Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:17:45 +0200 Subject: [PATCH 14/20] refactor(server): drop the comments added to the config loader Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-server/src/server/container.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/cubejs-server/src/server/container.ts b/packages/cubejs-server/src/server/container.ts index 700c8709c2f33..d47d93dde59cb 100644 --- a/packages/cubejs-server/src/server/container.ts +++ b/packages/cubejs-server/src/server/container.ts @@ -310,16 +310,12 @@ export class ServerContainer { } protected async loadConfigurationFromFile(): Promise { - // A file URL, because `module: nodenext` emits import() verbatim and the ESM loader rejects - // a bare absolute path on Windows. const file = await import(pathToFileURL(path.join(process.cwd(), 'cube.js')).href); if (this.configuration.debug) { console.log('Loaded js configuration file', file); } - // For a CommonJS `cube.js` the namespace carries `module.exports` on `default`, so a - // transpiled `exports.default` arrives one level deeper. const exported = file.default; const config = exported?.__esModule ? exported.default : exported; From 8de5e617b63d6889c995cd49afb883ac0b7a99bd Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:26:54 +0200 Subject: [PATCH 15/20] refactor(build): enumerate tsconfig types per package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `types: ["*"]` restored the pre-TS-6 behaviour, but it also means any `@types/*` package that lands in the hoisted root `node_modules` injects its globals into all 43 projects — a package can compile against globals it never declared a dependency on. Each project now lists what it actually needs: `["node", "jest"]` for the backend packages that compile their tests in-project, `["vitest/globals"]` for client-core, and `[]` for the frontend packages, which get no `node`. `tsconfig.jest.json` needs the `jest` entry of its own — ts-jest compiles through that file rather than the per-package tsconfig, so `tsc --build` staying green says nothing about whether the suites can run. mssql-driver pinned `typeRoots` to a local `node_modules/@types` that does not exist, which made `node` unresolvable (TS2688). Its `src/types/mssql.d.ts` is a `declare module 'mssql'` augmentation already picked up through `include: ["src"]`, so the typeRoots entry was load-bearing for nothing. The 23 package.json changes declare the `@types/*` packages those projects were previously getting for free from root hoisting. Both ranges were already resolved in yarn.lock, so the lockfile is unchanged. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-api-gateway/package.json | 1 + packages/cubejs-api-gateway/tsconfig.json | 1 + packages/cubejs-athena-driver/package.json | 2 ++ packages/cubejs-athena-driver/tsconfig.json | 1 + packages/cubejs-backend-cloud/package.json | 1 + packages/cubejs-backend-cloud/tsconfig.json | 1 + packages/cubejs-backend-maven/tsconfig.json | 1 + packages/cubejs-backend-native/tsconfig.json | 1 + packages/cubejs-backend-shared/tsconfig.json | 1 + packages/cubejs-base-driver/tsconfig.json | 1 + packages/cubejs-bigquery-driver/package.json | 1 + packages/cubejs-bigquery-driver/tsconfig.json | 1 + packages/cubejs-cli/tsconfig.json | 1 + packages/cubejs-clickhouse-driver/package.json | 1 + packages/cubejs-clickhouse-driver/tsconfig.json | 1 + packages/cubejs-client-core/tsconfig.json | 2 +- packages/cubejs-client-dx/tsconfig.json | 2 +- packages/cubejs-client-react/tsconfig.json | 2 +- packages/cubejs-client-ws-transport/tsconfig.json | 2 +- packages/cubejs-crate-driver/package.json | 2 ++ packages/cubejs-crate-driver/tsconfig.json | 1 + packages/cubejs-cubestore-driver/tsconfig.json | 1 + packages/cubejs-databricks-jdbc-driver/tsconfig.json | 1 + packages/cubejs-dbt-schema-extension/package.json | 1 + packages/cubejs-dremio-driver/package.json | 2 ++ packages/cubejs-dremio-driver/tsconfig.json | 1 + packages/cubejs-druid-driver/tsconfig.json | 1 + packages/cubejs-duckdb-driver/tsconfig.json | 1 + packages/cubejs-firebolt-driver/package.json | 2 ++ packages/cubejs-firebolt-driver/tsconfig.json | 1 + packages/cubejs-jdbc-driver/package.json | 1 + packages/cubejs-jdbc-driver/tsconfig.json | 1 + packages/cubejs-ksql-driver/package.json | 2 ++ packages/cubejs-ksql-driver/tsconfig.json | 1 + packages/cubejs-materialize-driver/package.json | 2 ++ packages/cubejs-materialize-driver/tsconfig.json | 1 + packages/cubejs-mongobi-driver/package.json | 1 + packages/cubejs-mongobi-driver/tsconfig.json | 1 + packages/cubejs-mssql-driver/tsconfig.json | 3 +-- packages/cubejs-mysql-driver/package.json | 1 + packages/cubejs-mysql-driver/tsconfig.json | 1 + packages/cubejs-pinot-driver/package.json | 1 + packages/cubejs-pinot-driver/tsconfig.json | 1 + packages/cubejs-postgres-driver/package.json | 2 ++ packages/cubejs-postgres-driver/tsconfig.json | 1 + packages/cubejs-prestodb-driver/package.json | 1 + packages/cubejs-prestodb-driver/tsconfig.json | 1 + packages/cubejs-query-orchestrator/tsconfig.json | 1 + packages/cubejs-questdb-driver/package.json | 2 ++ packages/cubejs-questdb-driver/tsconfig.json | 1 + packages/cubejs-redshift-driver/package.json | 1 + packages/cubejs-schema-compiler/tsconfig.json | 1 + packages/cubejs-server-core/tsconfig.json | 1 + packages/cubejs-snowflake-driver/package.json | 1 + packages/cubejs-templates/package.json | 1 + packages/cubejs-testing-drivers/tsconfig.json | 1 + packages/cubejs-testing-shared/tsconfig.json | 1 + packages/cubejs-trino-driver/package.json | 1 + packages/cubejs-trino-driver/tsconfig.json | 1 + rust/cubestore/tsconfig.json | 2 +- tsconfig.base.json | 3 +-- tsconfig.jest.json | 1 + 62 files changed, 70 insertions(+), 9 deletions(-) diff --git a/packages/cubejs-api-gateway/package.json b/packages/cubejs-api-gateway/package.json index e799d6e2d709e..e540e11cf5072 100644 --- a/packages/cubejs-api-gateway/package.json +++ b/packages/cubejs-api-gateway/package.json @@ -59,6 +59,7 @@ "@types/jsonwebtoken": "^9.0.2", "@types/jwk-to-pem": "^2.0.0", "@types/mysql": "^2.15.19", + "@types/node": "^22", "@types/node-fetch": "^2.5.8", "@types/ramda": "^0.27.32", "@types/supertest": "^2.0.10", diff --git a/packages/cubejs-api-gateway/tsconfig.json b/packages/cubejs-api-gateway/tsconfig.json index 7e22d41d3eb95..07fb3df688cc1 100644 --- a/packages/cubejs-api-gateway/tsconfig.json +++ b/packages/cubejs-api-gateway/tsconfig.json @@ -5,6 +5,7 @@ "test/**/*" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index c672ab10171ad..357a687ef87ec 100644 --- a/packages/cubejs-athena-driver/package.json +++ b/packages/cubejs-athena-driver/package.json @@ -37,6 +37,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "@types/ramda": "^0.27.40", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-athena-driver/tsconfig.json b/packages/cubejs-athena-driver/tsconfig.json index a5450add5dbef..df448058a7142 100644 --- a/packages/cubejs-athena-driver/tsconfig.json +++ b/packages/cubejs-athena-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-backend-cloud/package.json b/packages/cubejs-backend-cloud/package.json index 1c8df0d2b5811..6ece4f8aed1a6 100644 --- a/packages/cubejs-backend-cloud/package.json +++ b/packages/cubejs-backend-cloud/package.json @@ -33,6 +33,7 @@ "@cubejs-backend/linter": "1.7.35", "@types/fs-extra": "^9.0.8", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-backend-cloud/tsconfig.json b/packages/cubejs-backend-cloud/tsconfig.json index 9b657939f8325..be5cfeb44d598 100644 --- a/packages/cubejs-backend-cloud/tsconfig.json +++ b/packages/cubejs-backend-cloud/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "noImplicitAny": true, diff --git a/packages/cubejs-backend-maven/tsconfig.json b/packages/cubejs-backend-maven/tsconfig.json index f3e7b06bf906c..5aeb688a7c5b6 100644 --- a/packages/cubejs-backend-maven/tsconfig.json +++ b/packages/cubejs-backend-maven/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-backend-native/tsconfig.json b/packages/cubejs-backend-native/tsconfig.json index b0b1800156730..db62bebc7e596 100644 --- a/packages/cubejs-backend-native/tsconfig.json +++ b/packages/cubejs-backend-native/tsconfig.json @@ -9,6 +9,7 @@ "test/snapshotResolver.js" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-backend-shared/tsconfig.json b/packages/cubejs-backend-shared/tsconfig.json index f84ebd107ad81..d1ba322dedcdc 100644 --- a/packages/cubejs-backend-shared/tsconfig.json +++ b/packages/cubejs-backend-shared/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", } diff --git a/packages/cubejs-base-driver/tsconfig.json b/packages/cubejs-base-driver/tsconfig.json index 2e763d477a484..627503fe417fd 100644 --- a/packages/cubejs-base-driver/tsconfig.json +++ b/packages/cubejs-base-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true diff --git a/packages/cubejs-bigquery-driver/package.json b/packages/cubejs-bigquery-driver/package.json index c065c0ed46ccd..9d30aaa82408a 100644 --- a/packages/cubejs-bigquery-driver/package.json +++ b/packages/cubejs-bigquery-driver/package.json @@ -41,6 +41,7 @@ "@types/big.js": "^6.2.2", "@types/dedent": "^0.7.0", "@types/jest": "^29", + "@types/node": "^22", "@types/ramda": "^0.27.40", "jest": "^29", "typescript": "~6.0.3" diff --git a/packages/cubejs-bigquery-driver/tsconfig.json b/packages/cubejs-bigquery-driver/tsconfig.json index a1e0965d88c5e..d8c0d9a5fd551 100644 --- a/packages/cubejs-bigquery-driver/tsconfig.json +++ b/packages/cubejs-bigquery-driver/tsconfig.json @@ -6,6 +6,7 @@ "package.json" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "resolveJsonModule": true diff --git a/packages/cubejs-cli/tsconfig.json b/packages/cubejs-cli/tsconfig.json index 8e7c84e1a3faf..b0ea602377286 100644 --- a/packages/cubejs-cli/tsconfig.json +++ b/packages/cubejs-cli/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json index 75bb0aa3bf322..632ba545e08cd 100644 --- a/packages/cubejs-clickhouse-driver/package.json +++ b/packages/cubejs-clickhouse-driver/package.json @@ -39,6 +39,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-clickhouse-driver/tsconfig.json b/packages/cubejs-clickhouse-driver/tsconfig.json index c974719478e44..cc669a32570c5 100644 --- a/packages/cubejs-clickhouse-driver/tsconfig.json +++ b/packages/cubejs-clickhouse-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "allowJs": true, "outDir": "dist", "rootDir": ".", diff --git a/packages/cubejs-client-core/tsconfig.json b/packages/cubejs-client-core/tsconfig.json index cf02c9707c93f..e20abda9b000f 100644 --- a/packages/cubejs-client-core/tsconfig.json +++ b/packages/cubejs-client-core/tsconfig.json @@ -9,7 +9,7 @@ "lib": ["dom", "dom.iterable", "ES2022"], "module": "NodeNext", "moduleResolution": "NodeNext", - "types": ["*"], + "types": ["vitest/globals"], "composite": true, "noEmitOnError": true, "declaration": true, diff --git a/packages/cubejs-client-dx/tsconfig.json b/packages/cubejs-client-dx/tsconfig.json index 0215518a4633f..158cf50dd3180 100644 --- a/packages/cubejs-client-dx/tsconfig.json +++ b/packages/cubejs-client-dx/tsconfig.json @@ -4,7 +4,7 @@ "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ "module": "nodenext", "moduleResolution": "nodenext", - "types": ["*"], + "types": [], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", /* Generates a sourcemap for each corresponding '.d.ts' file. */ diff --git a/packages/cubejs-client-react/tsconfig.json b/packages/cubejs-client-react/tsconfig.json index bf8af918f1026..571f2100ed7c9 100644 --- a/packages/cubejs-client-react/tsconfig.json +++ b/packages/cubejs-client-react/tsconfig.json @@ -5,7 +5,7 @@ "target": "es2020", "module": "esnext", "moduleResolution": "bundler", - "types": ["*"], + "types": [], "jsx": "react", "declaration": true, "declarationMap": true, diff --git a/packages/cubejs-client-ws-transport/tsconfig.json b/packages/cubejs-client-ws-transport/tsconfig.json index 2fb35df8f3c6e..0b49c7d0d74c9 100644 --- a/packages/cubejs-client-ws-transport/tsconfig.json +++ b/packages/cubejs-client-ws-transport/tsconfig.json @@ -4,7 +4,7 @@ "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ "module": "nodenext", "moduleResolution": "nodenext", - "types": ["*"], + "types": [], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", diff --git a/packages/cubejs-crate-driver/package.json b/packages/cubejs-crate-driver/package.json index 352b7a79511f0..eb8eaa2ded2e3 100644 --- a/packages/cubejs-crate-driver/package.json +++ b/packages/cubejs-crate-driver/package.json @@ -36,6 +36,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "testcontainers": "^10.28.0", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-crate-driver/tsconfig.json b/packages/cubejs-crate-driver/tsconfig.json index 946eea8a38048..dde73769d8d56 100644 --- a/packages/cubejs-crate-driver/tsconfig.json +++ b/packages/cubejs-crate-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-cubestore-driver/tsconfig.json b/packages/cubejs-cubestore-driver/tsconfig.json index 5b7c8e835bab8..9b606cf022bf1 100644 --- a/packages/cubejs-cubestore-driver/tsconfig.json +++ b/packages/cubejs-cubestore-driver/tsconfig.json @@ -6,6 +6,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "noImplicitAny": false, "outDir": "dist", "rootDir": ".", diff --git a/packages/cubejs-databricks-jdbc-driver/tsconfig.json b/packages/cubejs-databricks-jdbc-driver/tsconfig.json index 46f75ad0cb78a..158d00f04af40 100644 --- a/packages/cubejs-databricks-jdbc-driver/tsconfig.json +++ b/packages/cubejs-databricks-jdbc-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-dbt-schema-extension/package.json b/packages/cubejs-dbt-schema-extension/package.json index ae9007fb2d8c3..a6eb655eb11f4 100644 --- a/packages/cubejs-dbt-schema-extension/package.json +++ b/packages/cubejs-dbt-schema-extension/package.json @@ -34,6 +34,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "stream-to-array": "^2.3.0", "typescript": "~6.0.3" diff --git a/packages/cubejs-dremio-driver/package.json b/packages/cubejs-dremio-driver/package.json index 6eb5922a8260b..675ad61830b2b 100644 --- a/packages/cubejs-dremio-driver/package.json +++ b/packages/cubejs-dremio-driver/package.json @@ -31,6 +31,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "jest": "^29" }, "license": "Apache-2.0", diff --git a/packages/cubejs-dremio-driver/tsconfig.json b/packages/cubejs-dremio-driver/tsconfig.json index b9f4e3df83037..5352a6bd06412 100644 --- a/packages/cubejs-dremio-driver/tsconfig.json +++ b/packages/cubejs-dremio-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "resolveJsonModule": true diff --git a/packages/cubejs-druid-driver/tsconfig.json b/packages/cubejs-druid-driver/tsconfig.json index 0563c98b5139c..b232ca03ec55e 100644 --- a/packages/cubejs-druid-driver/tsconfig.json +++ b/packages/cubejs-druid-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "noImplicitAny": false, "outDir": "dist", "rootDir": ".", diff --git a/packages/cubejs-duckdb-driver/tsconfig.json b/packages/cubejs-duckdb-driver/tsconfig.json index 33ad373dec318..3b951e3b74618 100644 --- a/packages/cubejs-duckdb-driver/tsconfig.json +++ b/packages/cubejs-duckdb-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-firebolt-driver/package.json b/packages/cubejs-firebolt-driver/package.json index e2d1f4727331d..5258bc6e9441d 100644 --- a/packages/cubejs-firebolt-driver/package.json +++ b/packages/cubejs-firebolt-driver/package.json @@ -37,6 +37,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "typescript": "~6.0.3" }, "publishConfig": { diff --git a/packages/cubejs-firebolt-driver/tsconfig.json b/packages/cubejs-firebolt-driver/tsconfig.json index b9f4e3df83037..5352a6bd06412 100644 --- a/packages/cubejs-firebolt-driver/tsconfig.json +++ b/packages/cubejs-firebolt-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "resolveJsonModule": true diff --git a/packages/cubejs-jdbc-driver/package.json b/packages/cubejs-jdbc-driver/package.json index 995f5e3d57559..e624207bcd9dc 100644 --- a/packages/cubejs-jdbc-driver/package.json +++ b/packages/cubejs-jdbc-driver/package.json @@ -43,6 +43,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/jest": "^29", "@types/node": "^22", "typescript": "~6.0.3" } diff --git a/packages/cubejs-jdbc-driver/tsconfig.json b/packages/cubejs-jdbc-driver/tsconfig.json index 9c8560983c4ca..5dfe9db8e1863 100644 --- a/packages/cubejs-jdbc-driver/tsconfig.json +++ b/packages/cubejs-jdbc-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-ksql-driver/package.json b/packages/cubejs-ksql-driver/package.json index d72f6b8df7cac..4b79d6120fcd0 100644 --- a/packages/cubejs-ksql-driver/package.json +++ b/packages/cubejs-ksql-driver/package.json @@ -42,6 +42,8 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "typescript": "~6.0.3" } } diff --git a/packages/cubejs-ksql-driver/tsconfig.json b/packages/cubejs-ksql-driver/tsconfig.json index 3bccf8a8da19c..cfed2527c8cc2 100644 --- a/packages/cubejs-ksql-driver/tsconfig.json +++ b/packages/cubejs-ksql-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json index 0c44544d2fbe3..09781099af32f 100644 --- a/packages/cubejs-materialize-driver/package.json +++ b/packages/cubejs-materialize-driver/package.json @@ -36,6 +36,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "typescript": "~6.0.3" }, "publishConfig": { diff --git a/packages/cubejs-materialize-driver/tsconfig.json b/packages/cubejs-materialize-driver/tsconfig.json index 7b012feab787a..b38e1b96504b7 100644 --- a/packages/cubejs-materialize-driver/tsconfig.json +++ b/packages/cubejs-materialize-driver/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-mongobi-driver/package.json b/packages/cubejs-mongobi-driver/package.json index 59c48792e7d30..dc492092f12b4 100644 --- a/packages/cubejs-mongobi-driver/package.json +++ b/packages/cubejs-mongobi-driver/package.json @@ -39,6 +39,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/jest": "^29", "testcontainers": "^10.28.0", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-mongobi-driver/tsconfig.json b/packages/cubejs-mongobi-driver/tsconfig.json index 97ef2ec605e00..535086aab5493 100644 --- a/packages/cubejs-mongobi-driver/tsconfig.json +++ b/packages/cubejs-mongobi-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-mssql-driver/tsconfig.json b/packages/cubejs-mssql-driver/tsconfig.json index 11e2a179cd0d8..093f69257bec5 100644 --- a/packages/cubejs-mssql-driver/tsconfig.json +++ b/packages/cubejs-mssql-driver/tsconfig.json @@ -6,8 +6,7 @@ ], "compilerOptions": { "outDir": "dist", - "rootDir": ".", - "typeRoots": ["./node_modules/@types", "./src/types"] + "rootDir": "." }, "references": [ { "path": "../cubejs-backend-shared" }, diff --git a/packages/cubejs-mysql-driver/package.json b/packages/cubejs-mysql-driver/package.json index 1a6fc999dbbb5..1e4ce877c7ea4 100644 --- a/packages/cubejs-mysql-driver/package.json +++ b/packages/cubejs-mysql-driver/package.json @@ -35,6 +35,7 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "stream-to-array": "^2.3.0", "testcontainers": "^10.28.0", diff --git a/packages/cubejs-mysql-driver/tsconfig.json b/packages/cubejs-mysql-driver/tsconfig.json index a5450add5dbef..df448058a7142 100644 --- a/packages/cubejs-mysql-driver/tsconfig.json +++ b/packages/cubejs-mysql-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-pinot-driver/package.json b/packages/cubejs-pinot-driver/package.json index 077877002fd1a..bd41483ab54fd 100644 --- a/packages/cubejs-pinot-driver/package.json +++ b/packages/cubejs-pinot-driver/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "should": "^13.2.3", "testcontainers": "^10.28.0", diff --git a/packages/cubejs-pinot-driver/tsconfig.json b/packages/cubejs-pinot-driver/tsconfig.json index 3bccf8a8da19c..cfed2527c8cc2 100644 --- a/packages/cubejs-pinot-driver/tsconfig.json +++ b/packages/cubejs-pinot-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-postgres-driver/package.json b/packages/cubejs-postgres-driver/package.json index a9ee37e26e18b..df4ec6cf3b3cf 100644 --- a/packages/cubejs-postgres-driver/package.json +++ b/packages/cubejs-postgres-driver/package.json @@ -38,6 +38,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "testcontainers": "^10.28.0", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-postgres-driver/tsconfig.json b/packages/cubejs-postgres-driver/tsconfig.json index a5450add5dbef..df448058a7142 100644 --- a/packages/cubejs-postgres-driver/tsconfig.json +++ b/packages/cubejs-postgres-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json index 21f489a5da33b..f8fe1f920b496 100644 --- a/packages/cubejs-prestodb-driver/package.json +++ b/packages/cubejs-prestodb-driver/package.json @@ -40,6 +40,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "should": "^13.2.3", "testcontainers": "^10.28.0", diff --git a/packages/cubejs-prestodb-driver/tsconfig.json b/packages/cubejs-prestodb-driver/tsconfig.json index 97ef2ec605e00..535086aab5493 100644 --- a/packages/cubejs-prestodb-driver/tsconfig.json +++ b/packages/cubejs-prestodb-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-query-orchestrator/tsconfig.json b/packages/cubejs-query-orchestrator/tsconfig.json index 55ccdc6ca253d..ba5f01b3ee337 100644 --- a/packages/cubejs-query-orchestrator/tsconfig.json +++ b/packages/cubejs-query-orchestrator/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-questdb-driver/package.json b/packages/cubejs-questdb-driver/package.json index 5295f3e68d15c..dadc175e58ace 100644 --- a/packages/cubejs-questdb-driver/package.json +++ b/packages/cubejs-questdb-driver/package.json @@ -39,6 +39,8 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@cubejs-backend/testing-shared": "1.7.35", + "@types/jest": "^29", + "@types/node": "^22", "testcontainers": "^10.28.0", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-questdb-driver/tsconfig.json b/packages/cubejs-questdb-driver/tsconfig.json index 33ad373dec318..3b951e3b74618 100644 --- a/packages/cubejs-questdb-driver/tsconfig.json +++ b/packages/cubejs-questdb-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-redshift-driver/package.json b/packages/cubejs-redshift-driver/package.json index 04689f1047322..1b1579a9a8ae9 100644 --- a/packages/cubejs-redshift-driver/package.json +++ b/packages/cubejs-redshift-driver/package.json @@ -34,6 +34,7 @@ "license": "Apache-2.0", "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/node": "^22", "typescript": "~6.0.3" }, "publishConfig": { diff --git a/packages/cubejs-schema-compiler/tsconfig.json b/packages/cubejs-schema-compiler/tsconfig.json index 1fc67f71e5bc0..03c75e2449d47 100644 --- a/packages/cubejs-schema-compiler/tsconfig.json +++ b/packages/cubejs-schema-compiler/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { + "types": ["node", "jest"], // antlr4's `types` is a .d.cts re-exporting `.d.ts` files that are ESM under antlr4's own // `type: module`, so under node16/nodenext their extensionless specifiers fail (TS2834) and // the module resolves to nothing. A `paths` redirect cannot help — the failing specifiers are diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index 1a2d90a5bf32e..ec154f7a6b4bd 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", "allowJs": true, diff --git a/packages/cubejs-snowflake-driver/package.json b/packages/cubejs-snowflake-driver/package.json index 6ffae8e36823b..042d7bf1403d7 100644 --- a/packages/cubejs-snowflake-driver/package.json +++ b/packages/cubejs-snowflake-driver/package.json @@ -42,6 +42,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/node": "^22", "typescript": "~6.0.3", "vitest": "^4" } diff --git a/packages/cubejs-templates/package.json b/packages/cubejs-templates/package.json index 99ea864c68add..8e732c0e4f7b6 100644 --- a/packages/cubejs-templates/package.json +++ b/packages/cubejs-templates/package.json @@ -41,6 +41,7 @@ }, "devDependencies": { "@cubejs-backend/linter": "1.7.35", + "@types/node": "^22", "typescript": "~6.0.3" } } diff --git a/packages/cubejs-testing-drivers/tsconfig.json b/packages/cubejs-testing-drivers/tsconfig.json index 92e4b2ee6d32d..bc34157ac9c05 100644 --- a/packages/cubejs-testing-drivers/tsconfig.json +++ b/packages/cubejs-testing-drivers/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.base.json", "include": ["src", "test"], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-testing-shared/tsconfig.json b/packages/cubejs-testing-shared/tsconfig.json index 30ad06d00c48b..67d8e3c6f745b 100644 --- a/packages/cubejs-testing-shared/tsconfig.json +++ b/packages/cubejs-testing-shared/tsconfig.json @@ -4,6 +4,7 @@ "src" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/packages/cubejs-trino-driver/package.json b/packages/cubejs-trino-driver/package.json index ca1a9044ee577..891f66488f243 100644 --- a/packages/cubejs-trino-driver/package.json +++ b/packages/cubejs-trino-driver/package.json @@ -42,6 +42,7 @@ "devDependencies": { "@cubejs-backend/linter": "1.7.35", "@types/jest": "^29", + "@types/node": "^22", "jest": "^29", "testcontainers": "^10.28.0", "typescript": "~6.0.3" diff --git a/packages/cubejs-trino-driver/tsconfig.json b/packages/cubejs-trino-driver/tsconfig.json index a5d3983b37e0b..bbb56fe6c72d6 100644 --- a/packages/cubejs-trino-driver/tsconfig.json +++ b/packages/cubejs-trino-driver/tsconfig.json @@ -5,6 +5,7 @@ "test" ], "compilerOptions": { + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, diff --git a/rust/cubestore/tsconfig.json b/rust/cubestore/tsconfig.json index deb3aefd8bfa3..cf7d79b9ed4cb 100644 --- a/rust/cubestore/tsconfig.json +++ b/rust/cubestore/tsconfig.json @@ -20,7 +20,7 @@ "noImplicitThis": true, "alwaysStrict": true, "moduleResolution": "nodenext", - "types": ["*"], + "types": ["node", "jest"], "esModuleInterop": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true, diff --git a/tsconfig.base.json b/tsconfig.base.json index e667ee04210e8..1e16ba9e1e55f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -11,8 +11,7 @@ "target": "es2022", "module": "nodenext", "moduleResolution": "nodenext", - // TypeScript 6.0 defaults `types` to [], which would drop the ambient @types/* globals - "types": ["*"], + "types": ["node"], "composite": true, "declaration": true, "declarationMap": true, diff --git a/tsconfig.jest.json b/tsconfig.jest.json index f9c70ad209917..ebe8d2c3bcfdd 100644 --- a/tsconfig.jest.json +++ b/tsconfig.jest.json @@ -1,6 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { + "types": ["node", "jest"], "sourceMap": true, "inlineSourceMap": true, "inlineSources": true, From 19cca98e8a76deab4941c862a70235bdbe00eccd Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:32:01 +0200 Subject: [PATCH 16/20] fix(testing): swap cypress-image-snapshot for the maintained fork MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `cypress-image-snapshot` is not updatable — 4.0.1 is latest, published in 2021, with no `types` field, and DefinitelyTyped only ever covered v3. So the bodyless `declare module` was the only way to keep the import compiling, at the cost of typing the whole module as `any`. `@simonsmith/cypress-image-snapshot` is the maintained fork and ships first-party types, including the `Cypress.Chainable.matchImageSnapshot` augmentation this file used to hand-write. Its `exports` map has `./command` and `./plugin` subpaths, which resolve under the project's `bundler` resolution, and it peers `cypress >=15.10.0` against our 15.21.1. `addMatchImageSnapshotPlugin` no longer takes `config`. The `addMatchImageSnapshotCommand` call in support/e2e.ts is checked again — verified by breaking it both ways: | edit | before | after | | ----------------------- | ----------- | ----------------------------------------- | | `captures: 'viewport'` | compiles | TS2561, suggests `capture` | | `capture: 'viewPort'` | compiles | TS2820, suggests `'viewport'` | No committed image baselines exist (CI uploads `cypress/screenshots` as an artifact rather than diffing against a checked-in snapshot), so the fork's different snapshot directory layout has nothing to regress. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-testing/cypress/global.d.ts | 19 -- .../cubejs-testing/cypress/plugins/index.js | 4 +- .../cubejs-testing/cypress/support/e2e.ts | 2 +- packages/cubejs-testing/package.json | 2 +- yarn.lock | 184 +++--------------- 5 files changed, 32 insertions(+), 179 deletions(-) diff --git a/packages/cubejs-testing/cypress/global.d.ts b/packages/cubejs-testing/cypress/global.d.ts index 11cd1cdacd6f1..5ca06ca2b27dd 100644 --- a/packages/cubejs-testing/cypress/global.d.ts +++ b/packages/cubejs-testing/cypress/global.d.ts @@ -1,11 +1,6 @@ /// declare namespace Cypress { - type MatchImageSnapshotOptions = { - failureThreshold: number; - failureThresholdType: "percent"; - }; - interface Chainable { getByTestId(dataTestAttribute: string, args?: any): Chainable>; @@ -21,20 +16,6 @@ declare namespace Cypress { runQuery(timeout?: number): void; - matchImageSnapshot( - name?: string, - options?: Partial< - MatchImageSnapshotOptions & Loggable & Timeoutable & ScreenshotOptions - > - ): void; - matchImageSnapshot( - options: Partial< - MatchImageSnapshotOptions & Loggable & Timeoutable & ScreenshotOptions - > - ): void; - getLocalStorage(item: string): Chainable; } } - -declare module 'cypress-image-snapshot/command'; diff --git a/packages/cubejs-testing/cypress/plugins/index.js b/packages/cubejs-testing/cypress/plugins/index.js index fdc12939fead0..d9a65be422aa8 100644 --- a/packages/cubejs-testing/cypress/plugins/index.js +++ b/packages/cubejs-testing/cypress/plugins/index.js @@ -13,13 +13,13 @@ // the project's config changing) // const { initPlugin } = require('cypress-plugin-snapshots/plugin'); -const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin'); +const { addMatchImageSnapshotPlugin } = require('@simonsmith/cypress-image-snapshot/plugin'); /** * @type {Cypress.PluginConfig} */ module.exports = (on, config) => { - addMatchImageSnapshotPlugin(on, config); + addMatchImageSnapshotPlugin(on); return config; }; diff --git a/packages/cubejs-testing/cypress/support/e2e.ts b/packages/cubejs-testing/cypress/support/e2e.ts index dc30a8f2187d2..c1a13161e8649 100644 --- a/packages/cubejs-testing/cypress/support/e2e.ts +++ b/packages/cubejs-testing/cypress/support/e2e.ts @@ -18,7 +18,7 @@ import 'cypress-localstorage-commands'; import '@4tw/cypress-drag-drop'; -import { addMatchImageSnapshotCommand } from 'cypress-image-snapshot/command'; +import { addMatchImageSnapshotCommand } from '@simonsmith/cypress-image-snapshot/command'; import './commands'; diff --git a/packages/cubejs-testing/package.json b/packages/cubejs-testing/package.json index 9ccc7419f4ceb..c0be42596c3dd 100644 --- a/packages/cubejs-testing/package.json +++ b/packages/cubejs-testing/package.json @@ -114,12 +114,12 @@ "@cubejs-backend/linter": "1.7.35", "@cubejs-client/core": "1.7.35", "@jest/globals": "^29", + "@simonsmith/cypress-image-snapshot": "^11.0.0", "@types/dedent": "^0.7.0", "@types/http-proxy": "^1.17.5", "@types/jest": "^29", "@types/node": "^22", "cypress": "15.21.1", - "cypress-image-snapshot": "^4.0.1", "cypress-localstorage-commands": "^1.4.5", "cypress-plugin-snapshots": "^1.4.4", "cypress-wait-until": "^1.7.2", diff --git a/yarn.lock b/yarn.lock index 65e4dff904ec7..4480a7b45cf8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7317,6 +7317,16 @@ "@sigstore/core" "^3.0.0" "@sigstore/protobuf-specs" "^0.5.0" +"@simonsmith/cypress-image-snapshot@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@simonsmith/cypress-image-snapshot/-/cypress-image-snapshot-11.0.0.tgz#4487d5c6ae1114ade7f6f226c609545f106952a8" + integrity sha512-fqiH4/0DARt4vR8U4d7mMyrWAdKlirG+0dNksZbMbP6a4zRPo6q7EmOSvRuse8kShbmrg7UogvlApjE9mN+crQ== + dependencies: + "@types/pixelmatch" "^5.2.6" + chalk "^4.1.2" + jest-image-snapshot "^6.5.2" + ssim.js "^3.5.0" + "@simple-libs/child-process-utils@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@simple-libs/child-process-utils/-/child-process-utils-2.0.0.tgz#90ea8a9008ab622cc50cf94ed3469ce5144e9eb6" @@ -8554,6 +8564,13 @@ pg-protocol "*" pg-types "^2.2.0" +"@types/pixelmatch@^5.2.6": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@types/pixelmatch/-/pixelmatch-5.2.6.tgz#fba6de304ac958495f27d85989f5c6bb7499a686" + integrity sha512-wC83uexE5KGuUODn6zkm9gMzTwdY5L0chiK+VrKcDfEjzxh1uadlWTvOmAbCpnM9zx/Ww3f8uKlYQVnO/TrqVg== + dependencies: + "@types/node" "*" + "@types/prop-types@*": version "15.7.4" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" @@ -9327,11 +9344,6 @@ dependencies: tslib "^2.3.0" -"@xmldom/xmldom@^0.8.8": - version "0.8.10" - resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" - integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== - "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -9564,7 +9576,7 @@ ansi-escapes@^3.1.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.1.0, ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -9588,11 +9600,6 @@ ansi-regex@5.0.1, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" @@ -9615,11 +9622,6 @@ ansi-styles@4.3.0, ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.2.0, a dependencies: color-convert "^2.0.1" -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -9717,13 +9719,6 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -app-path@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/app-path/-/app-path-3.3.0.tgz#0342a909db37079c593979c720f99e872475eba3" - integrity sha512-EAgEXkdcxH1cgEePOSsmUtw9ItPl0KTxnh/pj9ZbhvbKbij9x0oX6PWpGnorDr0DS5AosLgoa5n3T/hZmKQpYA== - dependencies: - execa "^1.0.0" - "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -10304,7 +10299,7 @@ base64-arraybuffer@0.1.4: resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= -base64-js@1.5.1, base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@1.5.1, base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -10892,17 +10887,6 @@ chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -11872,18 +11856,6 @@ customize-cra@^1.0.0: dependencies: lodash.flow "^3.5.0" -cypress-image-snapshot@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cypress-image-snapshot/-/cypress-image-snapshot-4.0.1.tgz#59084e713a8d03500c8e053ad7a76f3f18609648" - integrity sha512-PBpnhX/XItlx3/DAk5ozsXQHUi72exybBNH5Mpqj1DVmjq+S5Jd9WE5CRa4q5q0zuMZb2V2VpXHth6MjFpgj9Q== - dependencies: - chalk "^2.4.1" - fs-extra "^7.0.1" - glob "^7.1.3" - jest-image-snapshot "4.2.0" - pkg-dir "^3.0.0" - term-img "^4.0.0" - cypress-localstorage-commands@^1.4.5: version "1.6.1" resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.6.1.tgz#22299ee8a5555037f4e42111ffb280f2e0fe7d7b" @@ -13087,7 +13059,7 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -13554,19 +13526,6 @@ execa@^0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -13980,13 +13939,6 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -14426,13 +14378,6 @@ get-stream@^3.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -14777,13 +14722,6 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -16006,14 +15944,6 @@ iterall@^1.3.0: resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== -iterm2-version@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/iterm2-version/-/iterm2-version-4.2.0.tgz#b78069f747f34a772bc7dc17bda5bd9ed5e09633" - integrity sha512-IoiNVk4SMPu6uTcK+1nA5QaHNok2BMDLjSl5UomrOixe5g4GkylhPwuiGdw00ysSCrXAKNMfFTu+u/Lk5f6OLQ== - dependencies: - app-path "^3.2.0" - plist "^3.0.1" - jackspeak@^3.1.2: version "3.4.3" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" @@ -16210,19 +16140,17 @@ jest-haste-map@^29.7.0: optionalDependencies: fsevents "^2.3.2" -jest-image-snapshot@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz#559d7ade69e9918517269cef184261c80029a69e" - integrity sha512-6aAqv2wtfOgxiJeBayBCqHo1zX+A12SUNNzo7rIxiXh6W6xYVu8QyHWkada8HeRi+QUTHddp0O0Xa6kmQr+xbQ== +jest-image-snapshot@^6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-6.5.2.tgz#5bd4ffd36d14f590a3a6264c35a069fe2bc8395d" + integrity sha512-frenWThr5ddnnokcX5N4gwi41hA5TiUOdhv/JoGcJrOaktHjrk4/7XbiHKW52lgKX+vei6QkRlgM7fkYQ15nPg== dependencies: - chalk "^1.1.3" + chalk "^4.0.0" get-stdin "^5.0.1" glur "^1.1.2" lodash "^4.17.4" - mkdirp "^0.5.1" pixelmatch "^5.1.0" pngjs "^3.4.0" - rimraf "^2.6.2" ssim.js "^3.1.1" jest-leak-detector@^29.7.0: @@ -17221,14 +17149,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -19218,7 +19138,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -19246,13 +19166,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -19857,13 +19770,6 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -19897,15 +19803,6 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" -plist@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" - integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ== - dependencies: - "@xmldom/xmldom" "^0.8.8" - base64-js "^1.5.1" - xmlbuilder "^15.1.1" - plur@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84" @@ -21472,7 +21369,7 @@ rfdc@^1.3.0, rfdc@^1.4.1: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== -rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -22550,7 +22447,7 @@ sshpk@^1.18.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssim.js@^3.1.1: +ssim.js@^3.1.1, ssim.js@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== @@ -22778,13 +22675,6 @@ strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -22914,11 +22804,6 @@ supports-color@7.2.0, supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -23096,14 +22981,6 @@ tempy@^1.0.1: type-fest "^0.16.0" unique-string "^2.0.0" -term-img@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/term-img/-/term-img-4.1.0.tgz#5b170961f7aa20b2f3b22deb8ad504beb963a8a5" - integrity sha512-DFpBhaF5j+2f7kheKFc1ajsAUUDGOaNPpKPtiIMxlbfud6mvfFZuWGnTRpaujUa5J7yl6cIw/h6nyr4mSsENPg== - dependencies: - ansi-escapes "^4.1.0" - iterm2-version "^4.1.0" - terser-webpack-plugin@^5.3.10: version "5.3.11" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" @@ -24782,11 +24659,6 @@ xmlbuilder2@^2.4.0: "@types/node" "*" js-yaml "3.14.0" -xmlbuilder@^15.1.1: - version "15.1.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" - integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg== - xmlbuilder@~11.0.0: version "11.0.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" From aa77c8a86f2998622faf6a38e0aae51020c14be3 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 15:44:38 +0200 Subject: [PATCH 17/20] refactor(build): declare the types each project actually uses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two projects were still reaching ambient globals transitively, through a `/// ` inside a dependency's `.d.ts` — `types` does not gate reference directives, so an unrelated `@types/*` bump can take the globals away and break the build with a confusing error. | package | before | after | | --- | --- | --- | | `@cubejs-client/ws-transport` | `[]` | `["node"]` | | `@cubejs-backend/testing` | `["cypress", "@4tw/cypress-drag-drop"]` | `["node", "jest"]` | `ws-transport` uses `console`, `setInterval`, `setTimeout` and `clearInterval` with `lib: ["es2017"]` and no `dom`, so it needs `@types/node`, now an explicit devDependency (already resolved by the existing `@types/node@^22` lockfile entry). `testing` no longer contains any Cypress file — 4774f69 moved those to `cypress/tsconfig.json`, which declares the Cypress types itself — so that override only stripped `node` and `jest` from the ~40 jest suites in `test/`. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-client-ws-transport/package.json | 1 + packages/cubejs-client-ws-transport/tsconfig.json | 2 +- packages/cubejs-testing/tsconfig.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cubejs-client-ws-transport/package.json b/packages/cubejs-client-ws-transport/package.json index da6a92c680a7f..b016aa9567abf 100644 --- a/packages/cubejs-client-ws-transport/package.json +++ b/packages/cubejs-client-ws-transport/package.json @@ -34,6 +34,7 @@ "@babel/preset-env": "^7.3.1", "@babel/preset-typescript": "^7.12.1", "@cubejs-backend/linter": "1.7.35", + "@types/node": "^22", "@types/ws": "^7.2.9", "typescript": "~6.0.3" }, diff --git a/packages/cubejs-client-ws-transport/tsconfig.json b/packages/cubejs-client-ws-transport/tsconfig.json index 0b49c7d0d74c9..a7c81877682db 100644 --- a/packages/cubejs-client-ws-transport/tsconfig.json +++ b/packages/cubejs-client-ws-transport/tsconfig.json @@ -4,7 +4,7 @@ "target": "es2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ "module": "nodenext", "moduleResolution": "nodenext", - "types": [], + "types": ["node"], "declaration": true, "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "declarationDir": "./dist", diff --git a/packages/cubejs-testing/tsconfig.json b/packages/cubejs-testing/tsconfig.json index f98af8987366e..5b84df9d6cc08 100644 --- a/packages/cubejs-testing/tsconfig.json +++ b/packages/cubejs-testing/tsconfig.json @@ -5,7 +5,7 @@ "test" ], "compilerOptions": { - "types": ["cypress", "@4tw/cypress-drag-drop"], + "types": ["node", "jest"], "outDir": "dist", "rootDir": ".", }, From ebd8f3cadc5599efc9e1f7da173009ede7a72169 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 16:18:29 +0200 Subject: [PATCH 18/20] refactor(build): make the declared project graph match the imports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up on the review of #11767. Five configs stated something other than what the code does: - `cubejs-materialize-driver` had no reference for `@cubejs-backend/testing-shared`, which `test/MaterializeDriver.test.ts` imports and `include` covers; it built only because the root reference list happens to put `cubejs-testing-shared` before it. Its `@cubejs-backend/testing` devDependency is imported nowhere, so it is replaced by the one that is. - `cubejs-server-core` dropped `../cubejs-templates`, but `src/core/DevServer.ts` imports it and it is a real `dependencies` entry. The reference is back and `testing-drivers.Dockerfile` now copies the package — it is a backend dependency of server-core, so it does not belong under the "we dont need client libraries" banner. - `cubejs-playground` turned off `noUncheckedSideEffectImports` for the whole package to cover exactly two CSS imports (`App.tsx:2`, `GraphiQLSandbox.tsx:6`). A `declare module '*.css'` next to the existing `svg.d.ts` covers them with the check left on. - `cypress/tsconfig.json` listed `e2e` in `include`, where every file is JavaScript and `allowJs` is off — the entry matched nothing. - `BaseQuery.js` stacked two JSDoc blocks on `resolveFullMemberPathFn`; TypeScript reads the nearest one, so the description was dropped from the emitted `.d.ts`. Merged into one block. Verified with a cold `yarn tsc` (all tsbuildinfo removed), a forced build of the cypress project, `tsc -p packages/cubejs-playground`, `yarn lint` in materialize-driver and `yarn lint:npm`. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-docker/testing-drivers.Dockerfile | 4 ++-- packages/cubejs-materialize-driver/package.json | 2 +- packages/cubejs-materialize-driver/tsconfig.json | 3 ++- packages/cubejs-playground/src/shared/css.d.ts | 1 + packages/cubejs-playground/tsconfig.json | 1 - packages/cubejs-schema-compiler/src/adapter/BaseQuery.js | 3 --- packages/cubejs-server-core/tsconfig.json | 3 ++- packages/cubejs-testing/cypress/tsconfig.json | 1 - 8 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 packages/cubejs-playground/src/shared/css.d.ts diff --git a/packages/cubejs-docker/testing-drivers.Dockerfile b/packages/cubejs-docker/testing-drivers.Dockerfile index a75285a0c1820..0cc1b597e4b1e 100644 --- a/packages/cubejs-docker/testing-drivers.Dockerfile +++ b/packages/cubejs-docker/testing-drivers.Dockerfile @@ -72,9 +72,9 @@ COPY packages/cubejs-ksql-driver/package.json packages/cubejs-ksql-driver/packag COPY packages/cubejs-dbt-schema-extension/package.json packages/cubejs-dbt-schema-extension/package.json COPY packages/cubejs-jdbc-driver/package.json packages/cubejs-jdbc-driver/package.json COPY packages/cubejs-vertica-driver/package.json packages/cubejs-vertica-driver/package.json +COPY packages/cubejs-templates/package.json packages/cubejs-templates/package.json # We dont need client libraries -#COPY packages/cubejs-templates/package.json packages/cubejs-templates/package.json #COPY packages/cubejs-client-core/package.json packages/cubejs-client-core/package.json #COPY packages/cubejs-client-react/package.json packages/cubejs-client-react/package.json #COPY packages/cubejs-client-vue3/package.json packages/cubejs-client-vue3/package.json @@ -147,9 +147,9 @@ COPY packages/cubejs-dbt-schema-extension/ packages/cubejs-dbt-schema-extension/ COPY packages/cubejs-jdbc-driver/ packages/cubejs-jdbc-driver/ COPY packages/cubejs-databricks-jdbc-driver/ packages/cubejs-databricks-jdbc-driver/ COPY packages/cubejs-vertica-driver/ packages/cubejs-vertica-driver/ +COPY packages/cubejs-templates/ packages/cubejs-templates/ # We dont need client libraries -#COPY packages/cubejs-templates/ packages/cubejs-templates/ #COPY packages/cubejs-client-core/ packages/cubejs-client-core/ #COPY packages/cubejs-client-react/ packages/cubejs-client-react/ #COPY packages/cubejs-client-vue3/ packages/cubejs-client-vue3/ diff --git a/packages/cubejs-materialize-driver/package.json b/packages/cubejs-materialize-driver/package.json index 09781099af32f..feaade5571fce 100644 --- a/packages/cubejs-materialize-driver/package.json +++ b/packages/cubejs-materialize-driver/package.json @@ -35,7 +35,7 @@ "license": "Apache-2.0", "devDependencies": { "@cubejs-backend/linter": "1.7.35", - "@cubejs-backend/testing": "1.7.35", + "@cubejs-backend/testing-shared": "1.7.35", "@types/jest": "^29", "@types/node": "^22", "typescript": "~6.0.3" diff --git a/packages/cubejs-materialize-driver/tsconfig.json b/packages/cubejs-materialize-driver/tsconfig.json index b38e1b96504b7..816471f0a6d46 100644 --- a/packages/cubejs-materialize-driver/tsconfig.json +++ b/packages/cubejs-materialize-driver/tsconfig.json @@ -9,6 +9,7 @@ "references": [ { "path": "../cubejs-backend-shared" }, { "path": "../cubejs-base-driver" }, - { "path": "../cubejs-postgres-driver" } + { "path": "../cubejs-postgres-driver" }, + { "path": "../cubejs-testing-shared" } ] } diff --git a/packages/cubejs-playground/src/shared/css.d.ts b/packages/cubejs-playground/src/shared/css.d.ts new file mode 100644 index 0000000000000..35306c6fc9aed --- /dev/null +++ b/packages/cubejs-playground/src/shared/css.d.ts @@ -0,0 +1 @@ +declare module '*.css'; diff --git a/packages/cubejs-playground/tsconfig.json b/packages/cubejs-playground/tsconfig.json index 03ed29dbc82f8..f3bab591cea3d 100644 --- a/packages/cubejs-playground/tsconfig.json +++ b/packages/cubejs-playground/tsconfig.json @@ -24,7 +24,6 @@ "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "moduleResolution": "bundler", - "noUncheckedSideEffectImports": false, "resolveJsonModule": true, "isolatedModules": true, "noImplicitAny": false, diff --git a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js index 8c46294446110..90fe91cc8a24d 100644 --- a/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js +++ b/packages/cubejs-schema-compiler/src/adapter/BaseQuery.js @@ -5715,9 +5715,6 @@ export class BaseQuery { /** * Returns a function that constructs the full member path * based on the query's join structure. - * @returns {(function(member: string): (string))} - */ - /** * @returns {(member: string) => string} */ resolveFullMemberPathFn() { diff --git a/packages/cubejs-server-core/tsconfig.json b/packages/cubejs-server-core/tsconfig.json index ec154f7a6b4bd..5b96ec4589590 100644 --- a/packages/cubejs-server-core/tsconfig.json +++ b/packages/cubejs-server-core/tsconfig.json @@ -23,6 +23,7 @@ { "path": "../cubejs-base-driver" }, { "path": "../cubejs-cubestore-driver" }, { "path": "../cubejs-query-orchestrator" }, - { "path": "../cubejs-schema-compiler" } + { "path": "../cubejs-schema-compiler" }, + { "path": "../cubejs-templates" } ] } diff --git a/packages/cubejs-testing/cypress/tsconfig.json b/packages/cubejs-testing/cypress/tsconfig.json index be33d49add1b4..a68e319c13a04 100644 --- a/packages/cubejs-testing/cypress/tsconfig.json +++ b/packages/cubejs-testing/cypress/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "../../../tsconfig.base.json", "include": [ - "e2e", "support", "queries.ts", "global.d.ts" From 389b650c58479f1bc6429bed80273c3a48af8373 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 16:29:06 +0200 Subject: [PATCH 19/20] fix(build): run driver jest suites with --experimental-vm-modules `module: nodenext` keeps `await import()` in the CommonJS emit instead of downleveling it to `require`, so BaseDriver's lazy storage-fs loads throw `A dynamic import callback was invoked without --experimental-vm-modules` under Jest's CJS runtime. Enable the flag for the jest suites that reach those loads. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-athena-driver/package.json | 4 ++-- packages/cubejs-base-driver/package.json | 2 +- packages/cubejs-clickhouse-driver/package.json | 6 +++--- packages/cubejs-prestodb-driver/package.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/cubejs-athena-driver/package.json b/packages/cubejs-athena-driver/package.json index 357a687ef87ec..6b64e6bd40961 100644 --- a/packages/cubejs-athena-driver/package.json +++ b/packages/cubejs-athena-driver/package.json @@ -16,9 +16,9 @@ "tsc": "tsc", "watch": "tsc -w", "test": "yarn integration", - "unit": "jest --verbose dist/test/unit", + "unit": "NODE_OPTIONS=--experimental-vm-modules jest --verbose dist/test/unit", "integration": "npm run integration:athena", - "integration:athena": "jest --verbose dist/test", + "integration:athena": "NODE_OPTIONS=--experimental-vm-modules jest --verbose dist/test", "lint": "eslint src/* --ext .ts", "lint:fix": "eslint --fix src/* --ext .ts" }, diff --git a/packages/cubejs-base-driver/package.json b/packages/cubejs-base-driver/package.json index 9d918c6c76680..fce6f4c7beb78 100644 --- a/packages/cubejs-base-driver/package.json +++ b/packages/cubejs-base-driver/package.json @@ -18,7 +18,7 @@ "tsc": "tsc", "watch": "tsc -w", "test": "npm run unit && npm run integration", - "unit": "jest --runInBand --coverage --verbose test/unit", + "unit": "NODE_OPTIONS=--experimental-vm-modules jest --runInBand --coverage --verbose test/unit", "lint": "eslint src/* test/* --ext .ts,.js", "lint:fix": "eslint --fix src/* test/* --ext .ts,.js" }, diff --git a/packages/cubejs-clickhouse-driver/package.json b/packages/cubejs-clickhouse-driver/package.json index 632ba545e08cd..577d8e781cfc0 100644 --- a/packages/cubejs-clickhouse-driver/package.json +++ b/packages/cubejs-clickhouse-driver/package.json @@ -23,9 +23,9 @@ "watch": "tsc -w", "lint": "eslint src/* test/* --ext .ts", "lint:fix": "eslint --fix src/* test/* --ext .ts", - "unit": "jest dist/test/unit", - "integration": "jest dist/test/integration", - "integration:clickhouse": "jest dist/test/integration" + "unit": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/unit", + "integration": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/integration", + "integration:clickhouse": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/integration" }, "dependencies": { "@clickhouse/client": "^1.23.1", diff --git a/packages/cubejs-prestodb-driver/package.json b/packages/cubejs-prestodb-driver/package.json index f8fe1f920b496..f6ad4c2b04fb6 100644 --- a/packages/cubejs-prestodb-driver/package.json +++ b/packages/cubejs-prestodb-driver/package.json @@ -21,9 +21,9 @@ "build": "rm -rf dist && npm run tsc", "tsc": "tsc", "watch": "tsc -w", - "unit": "jest dist/test/unit", - "integration": "jest dist/test/integration", - "integration:presto": "jest dist/test/integration", + "unit": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/unit", + "integration": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/integration", + "integration:presto": "NODE_OPTIONS=--experimental-vm-modules jest dist/test/integration", "lint": "eslint src/* --ext .ts", "lint:fix": "eslint --fix src/* --ext .ts" }, From 1c7e929f0e19a7c32730b2e5892b16b6c6421278 Mon Sep 17 00:00:00 2001 From: Dmitry Patsura Date: Mon, 7 Sep 2026 17:16:36 +0200 Subject: [PATCH 20/20] fix(build): run the databricks jest suite with --experimental-vm-modules Its unload tests reach BaseDriver's lazy `import('./storage-fs/azure.fs.js')`, which nodenext keeps as a real dynamic import in the CommonJS emit. Co-Authored-By: Claude Opus 5 (1M context) --- packages/cubejs-databricks-jdbc-driver/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cubejs-databricks-jdbc-driver/package.json b/packages/cubejs-databricks-jdbc-driver/package.json index 00b9b65428476..9498ff0b99715 100644 --- a/packages/cubejs-databricks-jdbc-driver/package.json +++ b/packages/cubejs-databricks-jdbc-driver/package.json @@ -19,7 +19,7 @@ "tsc": "tsc", "watch": "tsc -w", "test": "npm run unit-tests", - "unit-tests": "jest dist/test --forceExit", + "unit-tests": "NODE_OPTIONS=--experimental-vm-modules jest dist/test --forceExit", "lint": "eslint src/* --ext .ts", "lint:fix": "eslint --fix src/* --ext .ts", "postinstall": "node bin/post-install"