From 11070b7d0a1f58354bd3efe35a9bbdad3e46f5c1 Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Thu, 5 Jun 2025 20:58:33 -0400 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Migrate=20to=20tsgo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- eslint.config.js => eslint.config.ts | 0 package.json | 4 +- pnpm-lock.yaml | 167 +++++++++++++++++++++------ tsconfig.eslint.json | 2 +- tsconfig.json | 2 +- 6 files changed, 137 insertions(+), 41 deletions(-) rename eslint.config.js => eslint.config.ts (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json index e80fe99..2bc8667 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,11 +12,12 @@ "editor.formatOnSave": true, "eslint.useFlatConfig": true, "explorer.fileNesting.patterns": { + ".env": ".env.*", "*.js": "${capture}.d.ts, ${capture}.d.ts.map, ${capture}.js.map, ${capture}.min.js, ${capture}.test.d.ts.map", "*.ts": "${capture}.test.ts, ${capture}.test.ts.map", - ".env": ".env.*", "package.json": "bun.lockb, package-lock.json, pnpm-lock.yaml, yarn.lock", "tsconfig.json": "tsconfig.*.json, tsconfig.tsbuildinfo" }, + "typescript.experimental.useTsgo": true, "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/eslint.config.js b/eslint.config.ts similarity index 100% rename from eslint.config.js rename to eslint.config.ts diff --git a/package.json b/package.json index 3be4f0c..126cf13 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "repository": "github:coderabbitai/bitbucket", "scripts": { - "build": "tsc", + "build": "tsgo", "clean": "rm -rf dist docs node_modules tsconfig.tsbuildinfo", "dev": "node ./src/main.ts", "docs": "typedoc", @@ -56,10 +56,12 @@ "@eslint/js": "^9.21.0", "@natoboram/load_env": "^1.0.0", "@types/node": "^22.13.5", + "@typescript/native-preview": "7.0.0-dev.20250605.1", "dotenv": "^16.4.7", "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.2", "globals": "^16.0.0", + "jiti": "^2.4.2", "markdownlint-cli2": "^0.18.1", "openapi-typescript": "^7.8.0", "prettier": "^3.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c6b6d3..4e7e44c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,18 +21,24 @@ importers: '@types/node': specifier: ^22.13.5 version: 22.15.29 + '@typescript/native-preview': + specifier: 7.0.0-dev.20250605.1 + version: 7.0.0-dev.20250605.1 dotenv: specifier: ^16.4.7 version: 16.5.0 eslint: specifier: ^9.21.0 - version: 9.28.0 + version: 9.28.0(jiti@2.4.2) eslint-config-prettier: specifier: ^10.0.2 - version: 10.1.5(eslint@9.28.0) + version: 10.1.5(eslint@9.28.0(jiti@2.4.2)) globals: specifier: ^16.0.0 version: 16.2.0 + jiti: + specifier: ^2.4.2 + version: 2.4.2 markdownlint-cli2: specifier: ^0.18.1 version: 0.18.1 @@ -53,10 +59,10 @@ importers: version: 5.8.3 typescript-eslint: specifier: ^8.25.0 - version: 8.33.1(eslint@9.28.0)(typescript@5.8.3) + version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) vitest: specifier: ^3.0.7 - version: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1) + version: 3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1) packages: @@ -662,6 +668,53 @@ packages: resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-fkftk9+orn2beytfCCjgfprsybt8a0gybKoMm47YTuLz09QI/8ugclqYpu2Durs54UVLpssL+qZK+//aGbuiTQ==} + engines: {node: '>=20.6.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-ubfzZKLv105zDT5AjO9wIIrLz4ehXd0lwV+Gu7qRws9Oq3ojPVzzQs/B8Vh4zl3R1Zn1bzm8fSkIs0+kO1Ik5g==} + engines: {node: '>=20.6.0'} + cpu: [x64] + os: [darwin] + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-raRVls6Yx0zOt1Dj+xUOG6SAlq5B+dV731Re+86AfL0XQwWXU2YPK/QP8BRH4zv/PzOVzX274zBmTI6tSQC/1g==} + engines: {node: '>=20.6.0'} + cpu: [arm64] + os: [linux] + + '@typescript/native-preview-linux-arm@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-kOHdWPxj/arjamt7s3p7DPDFZr84yAVxS1jHD2YWhwH/uotHu4RaFUYD+iYurl7b+B3numHFLwzWO9HvOXQbeQ==} + engines: {node: '>=20.6.0'} + cpu: [arm] + os: [linux] + + '@typescript/native-preview-linux-x64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-DFJO78Lr5NgJFclOJyOev5h0sDEKpUmIq3UHBEP8IOnyjZiHfDSSOUajC3miEI0FqW7sq/Ocixm2Q3jPXx8EUA==} + engines: {node: '>=20.6.0'} + cpu: [x64] + os: [linux] + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-t0IGSeQ7UFpahbWj6HoWevpl3aWopFKqIc6jgdy4Fr6FGdg+js68PBpx2wul+u4U8iC2s9hq4a3RrA1Ffj2jUw==} + engines: {node: '>=20.6.0'} + cpu: [arm64] + os: [win32] + + '@typescript/native-preview-win32-x64@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-9QNuKDE0qEyH7hGfMwWAxLh8QEEPaFBKRQ65J2TuNYk5MC+K83yhHZhgZhNjftC0Wqj3aD2/mtUdxJjSUsOlmQ==} + engines: {node: '>=20.6.0'} + cpu: [x64] + os: [win32] + + '@typescript/native-preview@7.0.0-dev.20250605.1': + resolution: {integrity: sha512-JCxsGHd0pHC2H8fKRI9Ncw4gUyU6os4B2zp9o9hLlXVTyisdhoUmnznv91O5K1xBr1pmqZFqd6o7V4PCx8zZ8Q==} + engines: {node: '>=20.6.0'} + hasBin: true + '@vitest/expect@3.2.1': resolution: {integrity: sha512-FqS/BnDOzV6+IpxrTg5GQRyLOCtcJqkwMwcS8qGCI2IyRVDwPAtutztaf1CjtPHlZlWtl1yUPCd7HM0cNiDOYw==} @@ -1039,6 +1092,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + js-levenshtein@1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} @@ -1735,9 +1792,9 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': dependencies: - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -1953,15 +2010,15 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.33.1 - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -1970,14 +2027,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.33.1 '@typescript-eslint/types': 8.33.1 '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.33.1 debug: 4.4.1(supports-color@10.0.0) - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2000,12 +2057,12 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.1(supports-color@10.0.0) - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -2029,13 +2086,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.33.1(eslint@9.28.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.33.1 '@typescript-eslint/types': 8.33.1 '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2045,6 +2102,37 @@ snapshots: '@typescript-eslint/types': 8.33.1 eslint-visitor-keys: 4.2.0 + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-linux-arm@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-linux-x64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview-win32-x64@7.0.0-dev.20250605.1': + optional: true + + '@typescript/native-preview@7.0.0-dev.20250605.1': + optionalDependencies: + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20250605.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20250605.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20250605.1 + '@vitest/expect@3.2.1': dependencies: '@types/chai': 5.2.2 @@ -2053,13 +2141,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.1(vite@6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1))': + '@vitest/mocker@3.2.1(vite@6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.2.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1) '@vitest/pretty-format@3.2.1': dependencies: @@ -2268,9 +2356,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.5(eslint@9.28.0): + eslint-config-prettier@10.1.5(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.28.0 + eslint: 9.28.0(jiti@2.4.2) eslint-scope@8.3.0: dependencies: @@ -2281,9 +2369,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.28.0: + eslint@9.28.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.1 @@ -2318,6 +2406,8 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color @@ -2461,6 +2551,8 @@ snapshots: isexe@2.0.0: {} + jiti@2.4.2: {} + js-levenshtein@1.1.6: {} js-tokens@4.0.0: {} @@ -2956,12 +3048,12 @@ snapshots: typescript: 5.8.3 yaml: 2.7.1 - typescript-eslint@8.33.1(eslint@9.28.0)(typescript@5.8.3): + typescript-eslint@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@9.28.0)(typescript@5.8.3) - eslint: 9.28.0 + '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -2982,13 +3074,13 @@ snapshots: dependencies: punycode: 2.3.1 - vite-node@3.2.1(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1): + vite-node@3.2.1(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -3003,7 +3095,7 @@ snapshots: - tsx - yaml - vite@6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1): + vite@6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1): dependencies: esbuild: 0.25.5 fdir: 6.4.5(picomatch@4.0.2) @@ -3014,14 +3106,15 @@ snapshots: optionalDependencies: '@types/node': 22.15.29 fsevents: 2.3.3 + jiti: 2.4.2 tsx: 4.19.2 yaml: 2.7.1 - vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1): + vitest@3.2.1(@types/debug@4.1.12)(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.1 - '@vitest/mocker': 3.2.1(vite@6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1)) + '@vitest/mocker': 3.2.1(vite@6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1)) '@vitest/pretty-format': 3.2.1 '@vitest/runner': 3.2.1 '@vitest/snapshot': 3.2.1 @@ -3039,8 +3132,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.0 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1) - vite-node: 3.2.1(@types/node@22.15.29)(tsx@4.19.2)(yaml@2.7.1) + vite: 6.3.5(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1) + vite-node: 3.2.1(@types/node@22.15.29)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 73fc034..a189af4 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -59,5 +59,5 @@ "skipDefaultLibCheck": true, "skipLibCheck": true }, - "include": ["eslint.config.js", "src", "tests"] + "include": ["eslint.config.ts", "src", "tests"] } diff --git a/tsconfig.json b/tsconfig.json index f9bb6b3..5161a59 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -61,5 +61,5 @@ "skipLibCheck": true }, "include": ["src"], - "exclude": ["eslint.config.js", "tests"] + "exclude": ["eslint.config.ts", "tests"] } From bb3522c93fc3e291b6c08d049de42f5ebe52744b Mon Sep 17 00:00:00 2001 From: Nathan Gendron Date: Thu, 5 Jun 2025 20:59:56 -0400 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=9A=A8=20Remove=20eslint-disable=20th?= =?UTF-8?q?at's=20no=20longer=20needed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eslint.config.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/eslint.config.ts b/eslint.config.ts index 04f7ec2..48ad61a 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -3,8 +3,6 @@ import prettier from "eslint-config-prettier" import globals from "globals" import tseslint from "typescript-eslint" -/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access */ - export default tseslint.config( { languageOptions: {