diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 4af98204b..a58add6b6 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,7 +3,7 @@ "editorconfig.editorconfig", "streetsidesoftware.code-spell-checker", "streetsidesoftware.code-spell-checker-german", - "nicolo-ribaudo.vscode-mf2", + "TypeScriptTeam.native-preview", "biomejs.biome" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index e9cad6d22..1b12f2ecd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,6 +7,7 @@ "*.ts": "$(capture).test.ts,$(capture).d.ts" }, "files.eol": "\n", + "typescript.experimental.useTsgo": true, "cSpell.language": "de,en", "editor.formatOnSaveMode": "modificationsIfAvailable", "files.associations": { diff --git a/package-lock.json b/package-lock.json index d9b2611d2..762a73338 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@js-temporal/polyfill": "^0.5.1", "@napi-rs/canvas": "0.1.70", "@resvg/resvg-js": "^2.6.2", - "@sentry/node": "^9.24.0", + "@sentry/node": "^9.25.0", "@spotify/web-api-ts-sdk": "^1.2.0", "@std/jsonc": "npm:@jsr/std__jsonc@^1.0.2", "better-sqlite3": "^11.10.0", @@ -36,9 +36,12 @@ "@types/jsdom": "^21.1.7", "@types/node": "^22.15.29", "@types/node-cron": "^3.0.11", + "@typescript/native-preview": "^7.0.0-dev.20250603.1", "expect": "^30.0.0-beta.3", - "lefthook": "^1.11.13", - "typescript": "^5.8.3" + "lefthook": "^1.11.13" + }, + "engines": { + "node": ">=24.1.0" } }, "node_modules/@asamuzakjp/css-color": { @@ -987,6 +990,8 @@ }, "node_modules/@opentelemetry/context-async-hooks": { "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz", + "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -1372,6 +1377,8 @@ }, "node_modules/@opentelemetry/resources": { "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz", + "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", @@ -1386,6 +1393,8 @@ }, "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": { "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -1393,6 +1402,8 @@ }, "node_modules/@opentelemetry/sdk-trace-base": { "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz", + "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.30.1", @@ -1408,6 +1419,8 @@ }, "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": { "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", "license": "Apache-2.0", "engines": { "node": ">=14" @@ -1520,16 +1533,18 @@ } }, "node_modules/@sentry/core": { - "version": "9.24.0", + "version": "9.25.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.25.0.tgz", + "integrity": "sha512-k0AgzR6RIf6OEwkVz09zer8GcK1s7RothlS1R6Z4x1wAJ+brtx4HqWnbLp05LDNDNrjTzK30HXvuCGGusnZuig==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry/node": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.24.0.tgz", - "integrity": "sha512-rIe8rLCdPi/9VWkoRlXRCbjpNlKhHeS8EqlT40ZwlWxdJl5WOcktq3mIWcV2oTqupWogDImjQgeCeydXWt5aog==", + "version": "9.25.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.25.0.tgz", + "integrity": "sha512-Z7nkj7kwH1/kbsETmNN12pMD3Npe9X0bCKV3jlTv6KkEdVvklc1+/pT7Bz+4iYqHUysZTrNomQxdzjcQbIb2aw==", "license": "MIT", "dependencies": { "@opentelemetry/api": "^1.9.0", @@ -1562,8 +1577,8 @@ "@opentelemetry/sdk-trace-base": "^1.30.1", "@opentelemetry/semantic-conventions": "^1.34.0", "@prisma/instrumentation": "6.8.2", - "@sentry/core": "9.24.0", - "@sentry/opentelemetry": "9.24.0", + "@sentry/core": "9.25.0", + "@sentry/opentelemetry": "9.25.0", "import-in-the-middle": "^1.13.1", "minimatch": "^9.0.0" }, @@ -1572,10 +1587,12 @@ } }, "node_modules/@sentry/opentelemetry": { - "version": "9.24.0", + "version": "9.25.0", + "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.25.0.tgz", + "integrity": "sha512-yzl/DnlQMkpOsEHlZJeTXdJ8GJNyonUjM+d3jhAXDjsvG2yXXBrda0PhNkxCN+rScbP/sJEbvfGPtcnnysh7NA==", "license": "MIT", "dependencies": { - "@sentry/core": "9.24.0" + "@sentry/core": "9.25.0" }, "engines": { "node": ">=18" @@ -1745,6 +1762,147 @@ "dev": true, "license": "MIT" }, + "node_modules/@typescript/native-preview": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview/-/native-preview-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-hvz/engcbVoPhIWALdfZOW4p82fJwyZFnjtOdl4yJZ16EtP7V5FBMbWpodkqnR41QonEPENC9RS330ROflq+Gw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsgo": "bin/tsgo.js" + }, + "engines": { + "node": ">=20.6.0" + }, + "optionalDependencies": { + "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20250603.1", + "@typescript/native-preview-darwin-x64": "7.0.0-dev.20250603.1", + "@typescript/native-preview-linux-arm": "7.0.0-dev.20250603.1", + "@typescript/native-preview-linux-arm64": "7.0.0-dev.20250603.1", + "@typescript/native-preview-linux-x64": "7.0.0-dev.20250603.1", + "@typescript/native-preview-win32-arm64": "7.0.0-dev.20250603.1", + "@typescript/native-preview-win32-x64": "7.0.0-dev.20250603.1" + } + }, + "node_modules/@typescript/native-preview-darwin-arm64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-qcC3zEUrn6VLDGw6r3rF0okxnybUUIQ/B4fgM3s9StCgQbeSvVw4KhbqaD/YLGUtUGZzL1Asr9h0Vaj37o+Aig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-darwin-x64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-xr1FYag0D6Qr7vcF1JPLu2gAwu8VfaQfB54umuy7GVCe4tVV0/vL02bkqd+gAA50l4+rAaXBF+ne7QxQDR2DDg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-linux-arm": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-teZRoVs3ItizlGkBAWNt8nSgWrQrJIMFGzjcDxu1XYBp6xzvrSPiyfE+SGP78xJw390wTxqKOCwCtcKLV/v63w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-linux-arm64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-vcFFIKX+POUwt3kk1+8JiAFNGY1+n2M4TzwmKAy0I6PrnKtWJ9BAXnCDvb62BOsVKrMNcfyOXDJ2TtBQUYfZ/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-linux-x64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-Uf+8VEGIGAOj+QH59V/QxN1fYIANWbBaBvczpIOnE726bAZAA6fSVHIwTH5MfiiGXURpRtzAsyGV5fbD2xmevw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-win32-arm64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-DWmAquDtsAz3d13DK7EMCiM1Jrnx6F+t1ImnsobgzKKcn/K7/9sk6eB+ML00QIxmYnf3PzPFAKdg4WApfFUh7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.6.0" + } + }, + "node_modules/@typescript/native-preview-win32-x64": { + "version": "7.0.0-dev.20250603.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20250603.1.tgz", + "integrity": "sha512-CT5VFwWD8qXYOOA4b1RgQN22sSbgvB/ryyCJ8KRZGEkSVTEv/dbzqjvRJ8j5E3MaMF9EnHwY4B6c6smpdXZk2w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.6.0" + } + }, "node_modules/@vladfrangu/async_event_emitter": { "version": "2.4.6", "license": "MIT", @@ -3580,18 +3738,6 @@ "node": "*" } }, - "node_modules/typescript": { - "version": "5.8.3", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/undici": { "version": "6.21.1", "license": "MIT", diff --git a/package.json b/package.json index 8e9ac932d..c4fb9d866 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "type": "module", "scripts": { "start": "tsx --require ./src/polyfills.ts src/app.ts", - "test": "tsx --require ./src/polyfills.ts --test && tsc", + "test": "tsx --require ./src/polyfills.ts --test && tsgo", "ci": "biome ci ./src", "format": "biome format --write ./src", "lint": "biome lint ./src", @@ -30,7 +30,7 @@ "@js-temporal/polyfill": "^0.5.1", "@napi-rs/canvas": "0.1.70", "@resvg/resvg-js": "^2.6.2", - "@sentry/node": "^9.24.0", + "@sentry/node": "^9.25.0", "@spotify/web-api-ts-sdk": "^1.2.0", "@std/jsonc": "npm:@jsr/std__jsonc@^1.0.2", "better-sqlite3": "^11.10.0", @@ -53,15 +53,15 @@ "@types/jsdom": "^21.1.7", "@types/node": "^22.15.29", "@types/node-cron": "^3.0.11", + "@typescript/native-preview": "^7.0.0-dev.20250603.1", "expect": "^30.0.0-beta.3", - "lefthook": "^1.11.13", - "typescript": "^5.8.3" + "lefthook": "^1.11.13" }, "trustedDependencies": [ "@biomejs/biome", "lefthook" ], "engines": { - "node": ">=24.1.0" + "node": ">=24.1.0" } }