From 4edac1bbe74d8910c3e61365fff8569b521b639a Mon Sep 17 00:00:00 2001 From: Dmytro Date: Sun, 14 Jun 2026 21:32:44 +0300 Subject: [PATCH 1/4] chore(deps): upgrade TypeScript 6, Biome 2.5, Turbo 2.9 - typescript 5.9.3 -> 6.0.3: migrate off the now-removed `moduleResolution: node10` (-> `bundler`), add `types: ["node"]` (TS 6 no longer auto-includes transitive @types, breaking node builtins in tsup.config.ts), and drop the vestigial per-build `module` overrides (tsup/esbuild sets the output format) - @biomejs/biome 2.4.5 -> 2.5.0: `linter.rules.recommended` -> `preset` via `biome migrate`; apply new `useOptionalChain` findings - turbo 2.8.13 -> 2.9.18, @types/bun 1.3.14, lefthook 2.1.9: no migration needed Fresh `bun run ci` passes (turbo cache cleared). --- biome.json | 2 +- bun.lock | 84 +++++++++++++-------------- package.json | 10 ++-- packages/countries/tsconfig-base.json | 7 ++- packages/countries/tsconfig-cjs.json | 1 - packages/countries/tsconfig.json | 1 - packages/scripts/tasks/generateSql.ts | 2 +- packages/scripts/utils.ts | 2 +- 8 files changed, 54 insertions(+), 55 deletions(-) diff --git a/biome.json b/biome.json index 0b5b08e..157156e 100644 --- a/biome.json +++ b/biome.json @@ -37,7 +37,7 @@ "linter": { "enabled": true, "rules": { - "recommended": true, + "preset": "recommended", "suspicious": { "noExplicitAny": "warn" } diff --git a/bun.lock b/bun.lock index 6b466fc..57d74b9 100644 --- a/bun.lock +++ b/bun.lock @@ -7,14 +7,14 @@ "devDependencies": { "@biomejs/biome": "catalog:default", "@types/bun": "catalog:default", - "lefthook": "2.1.2", + "lefthook": "2.1.9", "turbo": "catalog:default", "typescript": "catalog:default", }, }, "packages/countries": { "name": "countries", - "version": "3.2.2", + "version": "3.3.0", "devDependencies": { "tsconfig": "workspace:*", "tsup": "8.5.1", @@ -54,30 +54,30 @@ ], "catalogs": { "default": { - "@biomejs/biome": "2.4.5", - "@types/bun": "1.3.10", - "turbo": "2.8.13", - "typescript": "5.9.3", + "@biomejs/biome": "2.5.0", + "@types/bun": "1.3.14", + "turbo": "2.9.18", + "typescript": "6.0.3", }, }, "packages": { - "@biomejs/biome": ["@biomejs/biome@2.4.5", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.5", "@biomejs/cli-darwin-x64": "2.4.5", "@biomejs/cli-linux-arm64": "2.4.5", "@biomejs/cli-linux-arm64-musl": "2.4.5", "@biomejs/cli-linux-x64": "2.4.5", "@biomejs/cli-linux-x64-musl": "2.4.5", "@biomejs/cli-win32-arm64": "2.4.5", "@biomejs/cli-win32-x64": "2.4.5" }, "bin": { "biome": "bin/biome" } }, "sha512-OWNCyMS0Q011R6YifXNOg6qsOg64IVc7XX6SqGsrGszPbkVCoaO7Sr/lISFnXZ9hjQhDewwZ40789QmrG0GYgQ=="], + "@biomejs/biome": ["@biomejs/biome@2.5.0", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.0", "@biomejs/cli-darwin-x64": "2.5.0", "@biomejs/cli-linux-arm64": "2.5.0", "@biomejs/cli-linux-arm64-musl": "2.5.0", "@biomejs/cli-linux-x64": "2.5.0", "@biomejs/cli-linux-x64-musl": "2.5.0", "@biomejs/cli-win32-arm64": "2.5.0", "@biomejs/cli-win32-x64": "2.5.0" }, "bin": { "biome": "bin/biome" } }, "sha512-4kURkd9hAPrdDM3C9n82ycYgx8hvQcW6MjKTEejruj8rK0N8P3OPpdy8BvI8kt3KWY4ycF5XtDOrktetEfhfuw=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-lGS4Nd5O3KQJ6TeWv10mElnx1phERhBxqGP/IKq0SvZl78kcWDFMaTtVK+w3v3lusRFxJY78n07PbKplirsU5g=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Mn3Fwi3SA5fgmfCPqmzpWF2DLZnms3BVAhM088nTnGrTZmHS3wwIjcoZPqpXeNgd3DrrLH6xp8vTLIBuJoZiXw=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-6MoH4tyISIBNkZ2Q5T1R7dLd5BsITb2yhhhrU9jHZxnNSNMWl+s2Mxu7NBF8Y3a7JJcqq9nsk8i637z4gqkJxQ=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-rg3VPL5P8mYro6pqlXYXuJWph21slVp3SZtAqWSrkZs40d2gTzYmHF8E/X1iTID25btmNKltNDJ926sqVBp7DQ=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-U1GAG6FTjhAO04MyH4xn23wRNBkT6H7NentHh+8UxD6ShXKBm5SY4RedKJzkUThANxb9rUKIPc7B8ew9Xo/cWg=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-tl+LW8fdD96/xdeWtWwc82LIOc5CoY7N2AsogLTp5R4ECErYt+8Jl/N68ezN9vzSiqPTxw6vjcihoLPYKZHrlw=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-iqLDgpzobG7gpBF0fwEVS/LT8kmN7+S0E2YKFDtqliJfzNLnAiV2Nnyb+ehCDCJgAZBASkYHR2o60VQWikpqIg=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-vQdM4oSGaf7ZNeGO9w5+Y8SBtyser9M6znxYbm7Ec8wInxJu1WiKxFYZW5Auj2d80bcVvefuGGRxoFOE0eee8g=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-NdODlSugMzTlENPTa4z0xB82dTUlCpsrOxc43///aNkTLblIYH4XpYflBbf5ySlQuP8AA4AZd1qXhV07IdrHdQ=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.0", "", { "os": "linux", "cpu": "x64" }, "sha512-zpEGf4RQbFEh8Vt7OmavLyyOzRbtcE9osCqrS1kfvt8jDvxwhKXLSf7n0ebr/ov0RJ9ssP+lhs6C8a9WwFvrQA=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.5", "", { "os": "linux", "cpu": "x64" }, "sha512-NlKa7GpbQmNhZf9kakQeddqZyT7itN7jjWdakELeXyTU3pg/83fTysRRDPJD0akTfKDl6vZYNT9Zqn4MYZVBOA=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.0", "", { "os": "linux", "cpu": "x64" }, "sha512-+9hIcMngJ+yGUahXqZuZ8CoWKJE9SAZsFsM3QDvXpNsLbXZ9lqVzgBhOk/jTSYkOA0GLP9eu3teukqpLUojHMg=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-EBfrTqRIWOFSd7CQb/0ttjHMR88zm3hGravnDwUA9wHAaCAYsULKDebWcN5RmrEo1KBtl/gDVJMrFjNR0pdGUw=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-jB0wAvTLI4itx5VidqVUejPQFhRUxiZ9l9FvZ26D5fl6t3qme+ZB4PD3bTSeL1vZ8NI2Rx/zj6H9zcESuGHKGw=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.5", "", { "os": "win32", "cpu": "x64" }, "sha512-Pmhv9zT95YzECfjEHNl3mN9Vhusw9VA5KHY0ZvlGsxsjwS5cb7vpRnHzJIv0vG7jB0JI7xEaMH9ddfZm/RozBw=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.0", "", { "os": "win32", "cpu": "x64" }, "sha512-VT/lF+GId+67j8aDfLkxdxNoVApsPSTbyAtB3jJq0IWTrY77WXfbPfpngxq0bA6JCEv/7k8C9qWjDRKRznDlyw=="], "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA=="], @@ -189,7 +189,19 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg=="], - "@types/bun": ["@types/bun@1.3.10", "", { "dependencies": { "bun-types": "1.3.10" } }, "sha512-0+rlrUrOrTSskibryHbvQkDOWRJwJZqZlxrUs1u4oOoTln8+WIXBPmAuCF35SWB2z4Zl3E84Nl/D0P7803nigQ=="], + "@turbo/darwin-64": ["@turbo/darwin-64@2.9.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-9f27peFu16ur8c0v9nUFUEyBnbKuuFsUTjHFWfmwGfzySBXbHwzU44QhZon6Mznz0cHsIr3984NQj/bVrnGSRw=="], + + "@turbo/darwin-arm64": ["@turbo/darwin-arm64@2.9.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9A6TMRq/Ib+QnbhLlgkhOm+624wO4pzSQ/yQviQfWHOlFvaYxdnIAYmu2H6TS6y7kSVL0DvzNe04NbESTOzFVQ=="], + + "@turbo/linux-64": ["@turbo/linux-64@2.9.18", "", { "os": "linux", "cpu": "x64" }, "sha512-zCdIDtz69AnbYh913elJRRoF3QY5aa2HNnf+4rAkc7bQ+tWujiDkCNV7stazOUPggaDvhKIf2Z87qHftTeXSkw=="], + + "@turbo/linux-arm64": ["@turbo/linux-arm64@2.9.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-Va1kXI04naMgYwqv/5Dfa36dTDx8015U7oaQAjrXa45ua9OoFjSV4OmvkML4EmXvUclQHCiBRbY8bvd0jV7eAg=="], + + "@turbo/windows-64": ["@turbo/windows-64@2.9.18", "", { "os": "win32", "cpu": "x64" }, "sha512-m0kDhZANxSNz9ck1ybogFscHabriAsp4eDFNrN/1H5WrgTF7b3VlcPZnhuO3v2+E2KnCbeAc+UUT10BZZHdDKw=="], + + "@turbo/windows-arm64": ["@turbo/windows-arm64@2.9.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-nUdR8WqoomUys9iIQmG45TMiizJ+5BV8egSeLLZba/AWblyp3fVBcIH1kSE58OtK4g2YzbMJEth6Ttv9w5rqMA=="], + + "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], @@ -209,7 +221,7 @@ "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], - "bun-types": ["bun-types@1.3.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-tcpfCCl6XWo6nCVnpcVrxQ+9AYN1iqMIzgrSKYMB/fjLtV2eyAVEg7AxQJuCq/26R6HpKWykQXuSOq/21RYcbg=="], + "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], "bundle-require": ["bundle-require@5.1.0", "", { "dependencies": { "load-tsconfig": "^0.2.3" }, "peerDependencies": { "esbuild": ">=0.18" } }, "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA=="], @@ -261,27 +273,27 @@ "joycon": ["joycon@3.1.1", "", {}, "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="], - "lefthook": ["lefthook@2.1.2", "", { "optionalDependencies": { "lefthook-darwin-arm64": "2.1.2", "lefthook-darwin-x64": "2.1.2", "lefthook-freebsd-arm64": "2.1.2", "lefthook-freebsd-x64": "2.1.2", "lefthook-linux-arm64": "2.1.2", "lefthook-linux-x64": "2.1.2", "lefthook-openbsd-arm64": "2.1.2", "lefthook-openbsd-x64": "2.1.2", "lefthook-windows-arm64": "2.1.2", "lefthook-windows-x64": "2.1.2" }, "bin": { "lefthook": "bin/index.js" } }, "sha512-HdAMl4g47kbWSkrUkCx3Kucq54omFS6piMJtXwXNtmCAfB40UaybTJuYtFW4hNzZ5SvaEimtxTp7P/MNIkEfsA=="], + "lefthook": ["lefthook@2.1.9", "", { "optionalDependencies": { "lefthook-darwin-arm64": "2.1.9", "lefthook-darwin-x64": "2.1.9", "lefthook-freebsd-arm64": "2.1.9", "lefthook-freebsd-x64": "2.1.9", "lefthook-linux-arm64": "2.1.9", "lefthook-linux-x64": "2.1.9", "lefthook-openbsd-arm64": "2.1.9", "lefthook-openbsd-x64": "2.1.9", "lefthook-windows-arm64": "2.1.9", "lefthook-windows-x64": "2.1.9" }, "bin": { "lefthook": "bin/index.js" } }, "sha512-bwDaIOViTktE8kJLf9jP0p+H2/RDTlFFlc43Am2YgUsX22hI6Sq4RbzsrecwzY5y+MHTipOH7WsmWSEniePHWQ=="], - "lefthook-darwin-arm64": ["lefthook-darwin-arm64@2.1.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-AgHu93YuJtj1l9bcKlCbo4Tg8N8xFl9iD6BjXCGaGMu46LSjFiXbJFlkUdpgrL8fIbwoCjJi5FNp3POpqs4Wdw=="], + "lefthook-darwin-arm64": ["lefthook-darwin-arm64@2.1.9", "", { "os": "darwin", "cpu": "arm64" }, "sha512-119HryNcvr4nqn0wUIrNPgpMEPn9yMQzEcW/lezRsnb56PCJriJB92+MCySPVcWDxJnZef7o0T3jdnPNiSH7Qg=="], - "lefthook-darwin-x64": ["lefthook-darwin-x64@2.1.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-exooc9Ectz13OLJJOXM9AzaFQbqzf9QCF8JuVvGfbr4RYABYK+BwwtydjlPQrA76/n/h4tsS11MH5bBULnLkYA=="], + "lefthook-darwin-x64": ["lefthook-darwin-x64@2.1.9", "", { "os": "darwin", "cpu": "x64" }, "sha512-dwo5Tke2XcQCM56DGHgFKBfRbJIL6xs2wZ0zG1TUVZgl4t4mQUt6LiZ4V/ZQfYHTZF9qywvXoIlR5N35qOaiVQ=="], - "lefthook-freebsd-arm64": ["lefthook-freebsd-arm64@2.1.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-E1QMlJPEU21n9eewv6ePfh+JmoTSg5R1jaYcKCky10kfbMdohNucI3xV91F2LcerE+p3UejKDqr/1wWO2RMGeQ=="], + "lefthook-freebsd-arm64": ["lefthook-freebsd-arm64@2.1.9", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-+09PVap6nl6xsaHch5JLtq7WvIR++U1Q2MzA2ai0M4uB/VP3AqrvKqHw6+9hjyKnIH+HHL83uqi77EAY+LaxLA=="], - "lefthook-freebsd-x64": ["lefthook-freebsd-x64@2.1.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-/5zp+x8055Thj46x9S7hgnneZxvWhHQvPWkkgISCab1Lh6eLrbxvhE1qTb1lU3DqTnNmH9NeXdq1xPHc9uGluA=="], + "lefthook-freebsd-x64": ["lefthook-freebsd-x64@2.1.9", "", { "os": "freebsd", "cpu": "x64" }, "sha512-8XresjKIYpkE9ARgCtBEZgJZxAU3T4MIqzj4zNy15XRT59I1Us+QdqXTNm+pkZ41Yd2X/nxs2Pkvbq3NWWlIGw=="], - "lefthook-linux-arm64": ["lefthook-linux-arm64@2.1.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK5FvDTkwKO7tOznY8iEZzuTsM1jXMZAG5BMRs7olN1k1K6m2unR6oKABP0hCd0wDErK6DZKDJDJfB564Rzqtw=="], + "lefthook-linux-arm64": ["lefthook-linux-arm64@2.1.9", "", { "os": "linux", "cpu": "arm64" }, "sha512-1oNIQfwrPe6rgU2KcDM3aF6+hpZDCKx1TmawQKpXUY5gVsbZ7MqX0Sk/1lnnWxqPm+kQQ5f6J2dpFWd+4xH8jg=="], - "lefthook-linux-x64": ["lefthook-linux-x64@2.1.2", "", { "os": "linux", "cpu": "x64" }, "sha512-4eOtz4PNh8GbJ+nA8YVDfW/eMirQWdZqMP/V/MVtoVBGobf6oXvvuDOySvAPOgNYEFN0Boegytmuji/851Vstg=="], + "lefthook-linux-x64": ["lefthook-linux-x64@2.1.9", "", { "os": "linux", "cpu": "x64" }, "sha512-fT+7Q+BJyGp+CslFQkNXmdFRgyVXsPHPi9NAsDX0a6QOyNnoORByAsvx6zeAKuF5rL3BBgNfho1/v2RuGxGy9w=="], - "lefthook-openbsd-arm64": ["lefthook-openbsd-arm64@2.1.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-lJXRJ6iJIBKwomuNBA3CUNSclj2/rKuxGAQoUra214B92VB6jL9zaY5YEs6h/ie9jQrzSnllEeg7xyDIsuVCrQ=="], + "lefthook-openbsd-arm64": ["lefthook-openbsd-arm64@2.1.9", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-4bVuafBk3dddVNo0+3hMbjcJs4mqYAstxpPMmX2ufkudSTYFNIhWoqwuGVQV/SS/xdcOKJAldW4qayAzed2ysw=="], - "lefthook-openbsd-x64": ["lefthook-openbsd-x64@2.1.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-GyOje4W0DIqkmR7/Of5D+mZ0vWqMvtGAVedtJR6d1239xNeMzCS8Q+/a3O1xigceZa5xhlqq0BWlssB/QYPQnA=="], + "lefthook-openbsd-x64": ["lefthook-openbsd-x64@2.1.9", "", { "os": "openbsd", "cpu": "x64" }, "sha512-PmPoMmLP/wQQWcQ9u2YH86bTZ3UCfBsxuEmVTEyPU2U8R1qSTp5r/Gs3G8cN5Mxo91XB9oBERtF1n+xD3W6aVA=="], - "lefthook-windows-arm64": ["lefthook-windows-arm64@2.1.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-MZKMqTULEpX/8N3fKXAR0A9RjsGKkEEY0japLqrHOIpxsJXry1DRz0FvQo2kkY4WW3rtFegV9m6eesOymuDrUg=="], + "lefthook-windows-arm64": ["lefthook-windows-arm64@2.1.9", "", { "os": "win32", "cpu": "arm64" }, "sha512-KphfkBKmwBnmolyrdhIl3lrBaOyTcCgXBT2AB/9OHnEXhOLvv5uTCUkrD4YRAxXPtFKq6UvnapIeoL3GZq0bdA=="], - "lefthook-windows-x64": ["lefthook-windows-x64@2.1.2", "", { "os": "win32", "cpu": "x64" }, "sha512-NZUgObuaSxc0EXAwC/CzkMf7TuQc++GGIk6TLPdaUpoSsNSJSZEwBVz5DtFB1cG+eMkfO/wOKplls+yjimTTtQ=="], + "lefthook-windows-x64": ["lefthook-windows-x64@2.1.9", "", { "os": "win32", "cpu": "x64" }, "sha512-2qlUtkJHZ3MyUxgV5XTEmcrIoNZA07iwaquoswAcqv/1MeBFXlD+O+koFRfrzWng2O5WYEbpJnd8tvaYnV8fTA=="], "lilconfig": ["lilconfig@3.1.2", "", {}, "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow=="], @@ -375,21 +387,9 @@ "tsx": ["tsx@4.16.3", "", { "dependencies": { "esbuild": "~0.21.5", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": "dist/cli.mjs" }, "sha512-MP8AEUxVnboD2rCC6kDLxnpDBNWN9k3BSVU/0/nNxgm70bPBnfn+yCKcnOsIVPQwdkbKYoFOlKjjWZWJ2XCXUg=="], - "turbo": ["turbo@2.8.13", "", { "optionalDependencies": { "turbo-darwin-64": "2.8.13", "turbo-darwin-arm64": "2.8.13", "turbo-linux-64": "2.8.13", "turbo-linux-arm64": "2.8.13", "turbo-windows-64": "2.8.13", "turbo-windows-arm64": "2.8.13" }, "bin": { "turbo": "bin/turbo" } }, "sha512-nyM99hwFB9/DHaFyKEqatdayGjsMNYsQ/XBNO6MITc7roncZetKb97MpHxWf3uiU+LB9c9HUlU3Jp2Ixei2k1A=="], - - "turbo-darwin-64": ["turbo-darwin-64@2.8.13", "", { "os": "darwin", "cpu": "x64" }, "sha512-PmOvodQNiOj77+Zwoqku70vwVjKzL34RTNxxoARjp5RU5FOj/CGiC6vcDQhNtFPUOWSAaogHF5qIka9TBhX4XA=="], - - "turbo-darwin-arm64": ["turbo-darwin-arm64@2.8.13", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kI+anKcLIM4L8h+NsM7mtAUpElkCOxv5LgiQVQR8BASyDFfc8Efj5kCk3cqxuxOvIqx0sLfCX7atrHQ2kwuNJQ=="], - - "turbo-linux-64": ["turbo-linux-64@2.8.13", "", { "os": "linux", "cpu": "x64" }, "sha512-j29KnQhHyzdzgCykBFeBqUPS4Wj7lWMnZ8CHqytlYDap4Jy70l4RNG46pOL9+lGu6DepK2s1rE86zQfo0IOdPw=="], - - "turbo-linux-arm64": ["turbo-linux-arm64@2.8.13", "", { "os": "linux", "cpu": "arm64" }, "sha512-OEl1YocXGZDRDh28doOUn49QwNe82kXljO1HXApjU0LapkDiGpfl3jkAlPKxEkGDSYWc8MH5Ll8S16Rf5tEBYg=="], - - "turbo-windows-64": ["turbo-windows-64@2.8.13", "", { "os": "win32", "cpu": "x64" }, "sha512-717bVk1+Pn2Jody7OmWludhEirEe0okoj1NpRbSm5kVZz/yNN/jfjbxWC6ilimXMz7xoMT3IDfQFJsFR3PMANA=="], - - "turbo-windows-arm64": ["turbo-windows-arm64@2.8.13", "", { "os": "win32", "cpu": "arm64" }, "sha512-R819HShLIT0Wj6zWVnIsYvSNtRNj1q9VIyaUz0P24SMcLCbQZIm1sV09F4SDbg+KCCumqD2lcaR2UViQ8SnUJA=="], + "turbo": ["turbo@2.9.18", "", { "optionalDependencies": { "@turbo/darwin-64": "2.9.18", "@turbo/darwin-arm64": "2.9.18", "@turbo/linux-64": "2.9.18", "@turbo/linux-arm64": "2.9.18", "@turbo/windows-64": "2.9.18", "@turbo/windows-arm64": "2.9.18" }, "bin": { "turbo": "bin/turbo" } }, "sha512-bwabv6PupzeavybzEoArBAkwq5fnzwf8OFnRtpHwnviFWuwJPFxtyH+aVp36TmIqK3aYYgtTJ3J0m2ysxxSzQg=="], - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], diff --git a/package.json b/package.json index c97793f..c669b5d 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ ], "catalogs": { "default": { - "@biomejs/biome": "2.4.5", - "@types/bun": "1.3.10", - "turbo": "2.8.13", - "typescript": "5.9.3" + "@biomejs/biome": "2.5.0", + "@types/bun": "1.3.14", + "turbo": "2.9.18", + "typescript": "6.0.3" } } }, @@ -28,7 +28,7 @@ "devDependencies": { "@biomejs/biome": "catalog:default", "@types/bun": "catalog:default", - "lefthook": "2.1.2", + "lefthook": "2.1.9", "turbo": "catalog:default", "typescript": "catalog:default" }, diff --git a/packages/countries/tsconfig-base.json b/packages/countries/tsconfig-base.json index eee8ec6..6c15272 100644 --- a/packages/countries/tsconfig-base.json +++ b/packages/countries/tsconfig-base.json @@ -3,10 +3,11 @@ "allowImportingTsExtensions": true, "noEmit": true, "esModuleInterop": true, - "module": "NodeNext", - "moduleResolution": "Node", + "module": "ESNext", + "moduleResolution": "Bundler", "resolveJsonModule": true, "skipLibCheck": true, - "strict": true + "strict": true, + "types": ["node"] } } diff --git a/packages/countries/tsconfig-cjs.json b/packages/countries/tsconfig-cjs.json index 9dad1e0..9b92bb2 100644 --- a/packages/countries/tsconfig-cjs.json +++ b/packages/countries/tsconfig-cjs.json @@ -1,7 +1,6 @@ { "extends": "./tsconfig-base.json", "compilerOptions": { - "module": "commonjs", "outDir": "../../dist/cjs", "target": "ES6" } diff --git a/packages/countries/tsconfig.json b/packages/countries/tsconfig.json index 9262c1b..9c3d4ee 100644 --- a/packages/countries/tsconfig.json +++ b/packages/countries/tsconfig.json @@ -2,7 +2,6 @@ "extends": "./tsconfig-base.json", "compilerOptions": { "composite": true, - "module": "ESNext", "outDir": "../../dist/mjs", "target": "ESNext" }, diff --git a/packages/scripts/tasks/generateSql.ts b/packages/scripts/tasks/generateSql.ts index 06b603d..a52b04e 100644 --- a/packages/scripts/tasks/generateSql.ts +++ b/packages/scripts/tasks/generateSql.ts @@ -56,7 +56,7 @@ function sqlKeys(fields: IDataField[]) { } function sqlValues(table: string, fields: IDataField[], values: (string | number)[][]): string { - if (!values || !values.length) { + if (!values?.length) { return '' } diff --git a/packages/scripts/utils.ts b/packages/scripts/utils.ts index f1736a2..128f0fc 100644 --- a/packages/scripts/utils.ts +++ b/packages/scripts/utils.ts @@ -104,7 +104,7 @@ export const getCurrenciesInUse = ( } export const getStringFromArray = (arr: string[]): string => { - if (!arr || !arr.length) { + if (!arr?.length) { return '' } From e6fc29a6fdb868d675dea3175146701778f257bf Mon Sep 17 00:00:00 2001 From: Dmytro Date: Sun, 14 Jun 2026 21:41:45 +0300 Subject: [PATCH 2/4] ci: run build-test on toolchain changes, fix stale workflow ref The JS build-test workflow's pull_request filter only matched packages/countries/src/**, so dependency / tsconfig / biome / turbo / scripts changes (like this PR) merged with no pre-merge CI. Widen it to cover the JS packages and root config, and fix the self-reference (.github/workflows/nodejs.yml -> build-test.yml). --- .github/workflows/build-test.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index a4fda3b..25e2a17 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -8,8 +8,17 @@ on: branches: - main paths: - - '.github/workflows/nodejs.yml' - - 'packages/countries/src/**' + - '.github/workflows/build-test.yml' + - 'packages/countries/**' + - 'packages/scripts/**' + - 'packages/test-js/**' + - 'packages/tsconfig/**' + - 'package.json' + - 'bun.lock' + - 'bunfig.toml' + - 'turbo.json' + - 'biome.json' + - 'tsconfig.json' - '!.editorconfig' - '!**LICENSE*' - '!**README*' From b88c15cc96c08b6901aeb2c6e3c31e9ded5cdc10 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Sun, 14 Jun 2026 21:51:35 +0300 Subject: [PATCH 3/4] chore: address review feedback - use plain `!x.length` instead of `!x?.length` (params are non-optional arrays; also satisfies Biome's useOptionalChain) - CI path-filter negations to standard glob form (`!**/LICENSE*` etc.) --- .github/workflows/build-test.yml | 6 +++--- packages/scripts/tasks/generateSql.ts | 2 +- packages/scripts/utils.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 25e2a17..b37be27 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -19,9 +19,9 @@ on: - 'turbo.json' - 'biome.json' - 'tsconfig.json' - - '!.editorconfig' - - '!**LICENSE*' - - '!**README*' + - '!**/.editorconfig' + - '!**/LICENSE*' + - '!**/README*' jobs: build-test: diff --git a/packages/scripts/tasks/generateSql.ts b/packages/scripts/tasks/generateSql.ts index a52b04e..9b0fcd0 100644 --- a/packages/scripts/tasks/generateSql.ts +++ b/packages/scripts/tasks/generateSql.ts @@ -56,7 +56,7 @@ function sqlKeys(fields: IDataField[]) { } function sqlValues(table: string, fields: IDataField[], values: (string | number)[][]): string { - if (!values?.length) { + if (!values.length) { return '' } diff --git a/packages/scripts/utils.ts b/packages/scripts/utils.ts index 128f0fc..630e1f2 100644 --- a/packages/scripts/utils.ts +++ b/packages/scripts/utils.ts @@ -104,7 +104,7 @@ export const getCurrenciesInUse = ( } export const getStringFromArray = (arr: string[]): string => { - if (!arr?.length) { + if (!arr.length) { return '' } From 1b5df05fb79c5abd6117eb6052fb5879ae6c68e1 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Sun, 14 Jun 2026 21:58:15 +0300 Subject: [PATCH 4/4] chore: drop Turborepo for bun workspace scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The full pipeline runs in <1s and turbo's cache gives no benefit here (4 of 5 tasks are cache:false, and re-runs report "Cached: 0") while creating stale-cache risk — it masked the TypeScript 6 failure earlier. Replace the turbo task graph with plain bun scripts: - build: bun run --filter scripts build && bun run --filter countries build - test: bun run build && bun run --filter test-js test - ci: bun run lint && bun run check-types && bun run test Drops turbo from the catalog / devDependencies / trustedDependencies, deletes turbo.json, and updates .gitignore, the CI path filter, the composer archive list, and the docs. --- .github/workflows/build-test.yml | 1 - .gitignore | 1 - AGENTS.md | 2 +- README.md | 4 ++-- bun.lock | 17 ----------------- composer.json | 12 +----------- package.json | 11 ++++------- packages/scripts/generateCurrencies.ts | 2 +- turbo.json | 26 -------------------------- 9 files changed, 9 insertions(+), 67 deletions(-) delete mode 100644 turbo.json diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b37be27..b10657d 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -16,7 +16,6 @@ on: - 'package.json' - 'bun.lock' - 'bunfig.toml' - - 'turbo.json' - 'biome.json' - 'tsconfig.json' - '!**/.editorconfig' diff --git a/.gitignore b/.gitignore index 025302a..9a59485 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ coverage .phpunit.cache -.turbo composer.phar diff --git a/AGENTS.md b/AGENTS.md index aed2bf9..a806a98 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ ## Commands -- Build: `bun run build` (builds all packages via turbo) +- Build: `bun run build` (builds all workspace packages) - Lint: `bun run lint` (runs biome check) - Lint fix: `bun run lint:fix` (runs biome check --write) - Format: `bun run format` (runs biome format --write) diff --git a/README.md b/README.md index 176e967..be536cd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Also, contains separate JSON files with additional country **Emoji** flags data. ## Version 3.0: Breaking changes Version 3 comes with some data structure changes. -It was completely reworked under the hood with **TypeScript**, **ESM** exports and **Turborepo** file structure. +It was completely reworked under the hood with **TypeScript**, **ESM** exports and a **Bun workspaces** monorepo structure. Everything is strongly typed so you can easily use data with auto-complete in your IDE. @@ -146,7 +146,7 @@ Everything is generated from strongly typed files in `packages/countries/src`, i Everything in `dist` is generated, so please make data related changes **ONLY** to files from `packages/countries`, commit them. -Use `bun run build` (or `turbo build`, `turbo test`) command to build/test generated files. +Use `bun run build` / `bun run test` to build/test generated files. The `currencies` dataset (`packages/countries/src/data/currencies.ts`) is generated from the official ISO 4217 list and Unicode CLDR via `packages/scripts/generateCurrencies.ts`. Refresh it with `cd packages/scripts && bun run generate:currencies` (requires network) when ISO 4217 publishes an update, rather than editing the data by hand. diff --git a/bun.lock b/bun.lock index 57d74b9..fed9f71 100644 --- a/bun.lock +++ b/bun.lock @@ -8,7 +8,6 @@ "@biomejs/biome": "catalog:default", "@types/bun": "catalog:default", "lefthook": "2.1.9", - "turbo": "catalog:default", "typescript": "catalog:default", }, }, @@ -49,14 +48,12 @@ "trustedDependencies": [ "esbuild", "@biomejs/biome", - "turbo", "lefthook", ], "catalogs": { "default": { "@biomejs/biome": "2.5.0", "@types/bun": "1.3.14", - "turbo": "2.9.18", "typescript": "6.0.3", }, }, @@ -189,18 +186,6 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg=="], - "@turbo/darwin-64": ["@turbo/darwin-64@2.9.18", "", { "os": "darwin", "cpu": "x64" }, "sha512-9f27peFu16ur8c0v9nUFUEyBnbKuuFsUTjHFWfmwGfzySBXbHwzU44QhZon6Mznz0cHsIr3984NQj/bVrnGSRw=="], - - "@turbo/darwin-arm64": ["@turbo/darwin-arm64@2.9.18", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9A6TMRq/Ib+QnbhLlgkhOm+624wO4pzSQ/yQviQfWHOlFvaYxdnIAYmu2H6TS6y7kSVL0DvzNe04NbESTOzFVQ=="], - - "@turbo/linux-64": ["@turbo/linux-64@2.9.18", "", { "os": "linux", "cpu": "x64" }, "sha512-zCdIDtz69AnbYh913elJRRoF3QY5aa2HNnf+4rAkc7bQ+tWujiDkCNV7stazOUPggaDvhKIf2Z87qHftTeXSkw=="], - - "@turbo/linux-arm64": ["@turbo/linux-arm64@2.9.18", "", { "os": "linux", "cpu": "arm64" }, "sha512-Va1kXI04naMgYwqv/5Dfa36dTDx8015U7oaQAjrXa45ua9OoFjSV4OmvkML4EmXvUclQHCiBRbY8bvd0jV7eAg=="], - - "@turbo/windows-64": ["@turbo/windows-64@2.9.18", "", { "os": "win32", "cpu": "x64" }, "sha512-m0kDhZANxSNz9ck1ybogFscHabriAsp4eDFNrN/1H5WrgTF7b3VlcPZnhuO3v2+E2KnCbeAc+UUT10BZZHdDKw=="], - - "@turbo/windows-arm64": ["@turbo/windows-arm64@2.9.18", "", { "os": "win32", "cpu": "arm64" }, "sha512-nUdR8WqoomUys9iIQmG45TMiizJ+5BV8egSeLLZba/AWblyp3fVBcIH1kSE58OtK4g2YzbMJEth6Ttv9w5rqMA=="], - "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], @@ -387,8 +372,6 @@ "tsx": ["tsx@4.16.3", "", { "dependencies": { "esbuild": "~0.21.5", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": "dist/cli.mjs" }, "sha512-MP8AEUxVnboD2rCC6kDLxnpDBNWN9k3BSVU/0/nNxgm70bPBnfn+yCKcnOsIVPQwdkbKYoFOlKjjWZWJ2XCXUg=="], - "turbo": ["turbo@2.9.18", "", { "optionalDependencies": { "@turbo/darwin-64": "2.9.18", "@turbo/darwin-arm64": "2.9.18", "@turbo/linux-64": "2.9.18", "@turbo/linux-arm64": "2.9.18", "@turbo/windows-64": "2.9.18", "@turbo/windows-arm64": "2.9.18" }, "bin": { "turbo": "bin/turbo" } }, "sha512-bwabv6PupzeavybzEoArBAkwq5fnzwf8OFnRtpHwnviFWuwJPFxtyH+aVp36TmIqK3aYYgtTJ3J0m2ysxxSzQg=="], - "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], diff --git a/composer.json b/composer.json index 8f6f4ea..b2daa70 100644 --- a/composer.json +++ b/composer.json @@ -37,17 +37,7 @@ "files": ["dist/index.php"] }, "archive": { - "exclude": [ - ".npmignore", - "*.js", - "*.map", - "*.mjs", - "*.ts", - "/.*", - "/packages", - "package*.json", - "turbo.json" - ] + "exclude": [".npmignore", "*.js", "*.map", "*.mjs", "*.ts", "/.*", "/packages", "package*.json"] }, "homepage": "http://annexare.github.io/Countries/" } diff --git a/package.json b/package.json index c669b5d..8ca8a93 100644 --- a/package.json +++ b/package.json @@ -9,34 +9,31 @@ "default": { "@biomejs/biome": "2.5.0", "@types/bun": "1.3.14", - "turbo": "2.9.18", "typescript": "6.0.3" } } }, "scripts": { - "build": "turbo run build", + "build": "bun run --filter scripts build && bun run --filter countries build", "bump": "bun update -i -r", "check-types": "tsc -p packages/countries/tsconfig.json --noEmit", - "ci": "turbo run lint build test", + "ci": "bun run lint && bun run check-types && bun run test", "format": "biome format --write .", "lint": "biome check .", "lint:fix": "biome check --write --unsafe .", - "test": "turbo run test", + "test": "bun run build && bun run --filter test-js test", "version": "cd ./packages/scripts && bun run version" }, "devDependencies": { "@biomejs/biome": "catalog:default", "@types/bun": "catalog:default", "lefthook": "2.1.9", - "turbo": "catalog:default", "typescript": "catalog:default" }, "trustedDependencies": [ "@biomejs/biome", "esbuild", - "lefthook", - "turbo" + "lefthook" ], "packageManager": "bun@1.3.3" } diff --git a/packages/scripts/generateCurrencies.ts b/packages/scripts/generateCurrencies.ts index 3dce823..a44b42d 100644 --- a/packages/scripts/generateCurrencies.ts +++ b/packages/scripts/generateCurrencies.ts @@ -6,7 +6,7 @@ * - Currency name, symbol and native symbol come from Unicode CLDR via the runtime `Intl` APIs. * * This is a manual, network-dependent refresh tool (like `version.ts`); it is NOT part of - * `turbo build`. Re-run it when ISO 4217 publishes an update, then review and commit the diff: + * `bun run build`. Re-run it when ISO 4217 publishes an update, then review and commit the diff: * cd packages/scripts && bun run generate:currencies */ import { countries } from 'countries/data/countries.ts' diff --git a/turbo.json b/turbo.json deleted file mode 100644 index 79fc701..0000000 --- a/turbo.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "tasks": { - "//#lint": { - "cache": false - }, - "//#check-types": { - "cache": false - }, - "countries#build": { - "dependsOn": ["//#lint", "//#check-types", "scripts#build"] - }, - "scripts#build": { - "cache": false, - "dependsOn": ["//#lint", "//#check-types"] - }, - "build": { - "dependsOn": ["//#lint", "//#check-types"], - "outputs": ["dist/**"] - }, - "test": { - "cache": false, - "dependsOn": ["//#lint", "//#check-types", "scripts#build", "countries#build"] - } - } -}