diff --git a/apps/stage-pocket/package.json b/apps/stage-pocket/package.json index 9f4491404..1a554738d 100644 --- a/apps/stage-pocket/package.json +++ b/apps/stage-pocket/package.json @@ -42,8 +42,6 @@ "@proj-airi/stream-kit": "workspace:^", "@proj-airi/ui": "workspace:^", "@proj-airi/ui-transitions": "workspace:^", - "@standard-schema/spec": "^1.1.0", - "@stdlib/string-base-kebabcase": "^0.2.2", "@tresjs/cientos": "^5.2.3", "@tresjs/core": "^5.3.1", "@valibot/to-json-schema": "1.0.0-rc.0", @@ -65,7 +63,6 @@ "date-fns": "^4.1.0", "dompurify": "^3.3.1", "driver.js": "^1.4.0", - "drizzle-kit": "^0.31.8", "drizzle-orm": "^0.45.1", "gpuu": "^1.0.6", "html2canvas": "^1.4.1", @@ -75,7 +72,6 @@ "nanoid": "^5.1.6", "node-vibrant": "^4.0.3", "nprogress": "^0.2.0", - "ofetch": "^1.5.1", "onnxruntime-web": "^1.23.2", "pinia": "^3.0.4", "posthog-js": "catalog:", diff --git a/apps/stage-tamagotchi/package.json b/apps/stage-tamagotchi/package.json index 98179d536..0ad63d18a 100644 --- a/apps/stage-tamagotchi/package.json +++ b/apps/stage-tamagotchi/package.json @@ -65,7 +65,6 @@ "@proj-airi/stage-ui-live2d": "workspace:^", "@proj-airi/stage-ui-three": "workspace:^", "@proj-airi/ui": "workspace:^", - "@stdlib/string-base-kebabcase": "^0.2.2", "@tresjs/cientos": "^5.2.3", "@tresjs/core": "^5.3.1", "@vueuse/core": "^14.1.0", @@ -89,7 +88,6 @@ "defu": "^6.1.4", "destr": "^2.0.5", "dompurify": "^3.3.1", - "drizzle-kit": "^0.31.8", "drizzle-orm": "^0.45.1", "electron-click-drag-plugin": "^2.0.2", "electron-updater": "^6.7.3", @@ -101,7 +99,6 @@ "mediabunny": "^1.29.0", "node-vibrant": "^4.0.3", "nprogress": "^0.2.0", - "ofetch": "^1.5.1", "onnxruntime-web": "^1.23.2", "pinia": "^3.0.4", "popmotion": "^11.0.5", diff --git a/apps/stage-web/package.json b/apps/stage-web/package.json index 07a4fcf38..9de693a27 100644 --- a/apps/stage-web/package.json +++ b/apps/stage-web/package.json @@ -39,8 +39,6 @@ "@proj-airi/stream-kit": "workspace:^", "@proj-airi/ui": "workspace:^", "@proj-airi/ui-transitions": "workspace:^", - "@standard-schema/spec": "^1.1.0", - "@stdlib/string-base-kebabcase": "^0.2.2", "@tresjs/cientos": "^5.2.3", "@tresjs/core": "^5.3.1", "@valibot/to-json-schema": "1.0.0-rc.0", @@ -63,7 +61,6 @@ "date-fns": "^4.1.0", "dompurify": "^3.3.1", "driver.js": "^1.4.0", - "drizzle-kit": "^0.31.8", "drizzle-orm": "^0.45.1", "gpuu": "^1.0.6", "hono": "catalog:", @@ -74,7 +71,6 @@ "nanoid": "^5.1.6", "node-vibrant": "^4.0.3", "nprogress": "^0.2.0", - "ofetch": "^1.5.1", "onnxruntime-web": "^1.23.2", "pinia": "^3.0.4", "posthog-js": "catalog:", diff --git a/cspell.config.yaml b/cspell.config.yaml index e34733df6..19bd0e30b 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -138,6 +138,7 @@ words: - keyup - Keyyable - kirakira + - knip - kwaa - lemonneko - lemonnekogh diff --git a/knip.json b/knip.json new file mode 100644 index 000000000..aa4cfb7f8 --- /dev/null +++ b/knip.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "tags": [ + "-lintignore" + ], + "workspaces": { + ".": {} + } +} diff --git a/package.json b/package.json index d492cbe42..9c023be1d 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "typecheck": "pnpm -rF=\"./packages/*\" -F=\"./apps/*\" -F=\"./docs\" --parallel typecheck", "up": "taze -w -r -I && pnpm prune && pnpm dedupe", "nolyfill": "pnpm dlx nolyfill", - "open:ios": "pnpm -rF @proj-airi/stage-pocket run open:ios" + "open:ios": "pnpm -rF @proj-airi/stage-pocket run open:ios", + "knip": "knip" }, "devDependencies": { "@antfu/eslint-config": "^7.1.0", @@ -56,6 +57,7 @@ "bumpp": "^10.4.0", "eslint": "^9.39.2", "eslint-plugin-oxlint": "^1.41.0", + "knip": "catalog:", "nano-staged": "catalog:", "oxlint": "^1.41.0", "posthog-js": "catalog:", diff --git a/packages/stage-layouts/package.json b/packages/stage-layouts/package.json index 956e94fb2..5830be5ab 100644 --- a/packages/stage-layouts/package.json +++ b/packages/stage-layouts/package.json @@ -37,7 +37,6 @@ "@proj-airi/stage-ui": "workspace:*", "@proj-airi/stage-ui-three": "workspace:*", "@proj-airi/ui": "workspace:*", - "@stdlib/string-base-kebabcase": "^0.2.2", "@vueuse/core": "^14.1.0", "@vueuse/shared": "^14.1.0", "@xsai-ext/providers": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59635dc9e..dda7af1d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -141,6 +141,9 @@ catalogs: is-network-error: specifier: ^1.3.0 version: 1.3.0 + knip: + specifier: ^5.82.1 + version: 5.82.1 nano-staged: specifier: ^0.9.0 version: 0.9.0 @@ -278,6 +281,9 @@ importers: eslint-plugin-oxlint: specifier: ^1.41.0 version: 1.41.0 + knip: + specifier: 'catalog:' + version: 5.82.1(@types/node@24.10.9)(typescript@5.9.3) nano-staged: specifier: 'catalog:' version: 0.9.0 @@ -532,12 +538,6 @@ importers: '@proj-airi/ui-transitions': specifier: workspace:^ version: link:../../packages/ui-transitions - '@standard-schema/spec': - specifier: ^1.1.0 - version: 1.1.0 - '@stdlib/string-base-kebabcase': - specifier: ^0.2.2 - version: 0.2.2 '@tresjs/cientos': specifier: ^5.2.3 version: 5.2.3(@tresjs/core@5.3.1(three@0.182.0)(vue@3.5.26(typescript@5.9.3)))(@types/three@0.182.0)(react@19.2.3)(three@0.182.0)(vue@3.5.26(typescript@5.9.3)) @@ -601,9 +601,6 @@ importers: driver.js: specifier: ^1.4.0 version: 1.4.0 - drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 drizzle-orm: specifier: ^0.45.1 version: 0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(kysely@0.28.9)(pg@8.17.2)(postgres@3.4.8) @@ -631,9 +628,6 @@ importers: nprogress: specifier: ^0.2.0 version: 0.2.0 - ofetch: - specifier: ^1.5.1 - version: 1.5.1 onnxruntime-web: specifier: ^1.23.2 version: 1.23.2 @@ -935,9 +929,6 @@ importers: '@proj-airi/ui': specifier: workspace:^ version: link:../../packages/ui - '@stdlib/string-base-kebabcase': - specifier: ^0.2.2 - version: 0.2.2 '@tresjs/cientos': specifier: ^5.2.3 version: 5.2.3(@tresjs/core@5.3.1(three@0.182.0)(vue@3.5.26(typescript@5.9.3)))(@types/three@0.182.0)(react@19.2.3)(three@0.182.0)(vue@3.5.26(typescript@5.9.3)) @@ -1007,9 +998,6 @@ importers: dompurify: specifier: ^3.3.1 version: 3.3.1 - drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 drizzle-orm: specifier: ^0.45.1 version: 0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(kysely@0.28.9)(pg@8.17.2)(postgres@3.4.8) @@ -1043,9 +1031,6 @@ importers: nprogress: specifier: ^0.2.0 version: 0.2.0 - ofetch: - specifier: ^1.5.1 - version: 1.5.1 onnxruntime-web: specifier: ^1.23.2 version: 1.23.2 @@ -1338,12 +1323,6 @@ importers: '@proj-airi/ui-transitions': specifier: workspace:^ version: link:../../packages/ui-transitions - '@standard-schema/spec': - specifier: ^1.1.0 - version: 1.1.0 - '@stdlib/string-base-kebabcase': - specifier: ^0.2.2 - version: 0.2.2 '@tresjs/cientos': specifier: ^5.2.3 version: 5.2.3(@tresjs/core@5.3.1(three@0.182.0)(vue@3.5.26(typescript@5.9.3)))(@types/three@0.182.0)(react@19.2.3)(three@0.182.0)(vue@3.5.26(typescript@5.9.3)) @@ -1410,9 +1389,6 @@ importers: driver.js: specifier: ^1.4.0 version: 1.4.0 - drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 drizzle-orm: specifier: ^0.45.1 version: 0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(kysely@0.28.9)(pg@8.17.2)(postgres@3.4.8) @@ -1443,9 +1419,6 @@ importers: nprogress: specifier: ^0.2.0 version: 0.2.0 - ofetch: - specifier: ^1.5.1 - version: 1.5.1 onnxruntime-web: specifier: ^1.23.2 version: 1.23.2 @@ -2027,9 +2000,6 @@ importers: '@proj-airi/ui': specifier: workspace:* version: link:../ui - '@stdlib/string-base-kebabcase': - specifier: ^0.2.2 - version: 0.2.2 '@vueuse/core': specifier: ^14.1.0 version: 14.1.0(vue@3.5.26(typescript@5.9.3)) @@ -3030,7 +3000,7 @@ importers: version: 14.1.0(vue@3.5.26(typescript@5.9.3)) '@wxt-dev/module-vue': specifier: ^1.0.3 - version: 1.0.3(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.55.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 1.0.3(vite@8.0.0-beta.5(@types/node@24.10.9)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.55.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) nanoid: specifier: ^5.1.6 version: 5.1.6 @@ -11312,6 +11282,9 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -11468,6 +11441,11 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + formdata-node@4.4.1: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} @@ -12463,6 +12441,14 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + knip@5.82.1: + resolution: {integrity: sha512-1nQk+5AcnkqL40kGQXfouzAEXkTR+eSrgo/8m1d0BMei4eAzFwghoXC4gOKbACgBiCof7hE8wkBVDsEvznf85w==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4 <7' + knitwork@1.3.0: resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} @@ -16225,6 +16211,10 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + watchpack@2.4.4: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} @@ -22483,6 +22473,12 @@ snapshots: vite: 7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.26(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.3(vite@8.0.0-beta.5(@types/node@24.10.9)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.53 + vite: 8.0.0-beta.5(@types/node@24.10.9)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) + '@vitest/browser-playwright@4.0.17(bufferutil@4.1.0)(playwright@1.57.0)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.17)': dependencies: '@vitest/browser': 4.0.17(bufferutil@4.1.0)(utf-8-validate@5.0.10)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@4.0.17) @@ -23179,9 +23175,9 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 - '@wxt-dev/module-vue@1.0.3(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.55.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@wxt-dev/module-vue@1.0.3(vite@8.0.0-beta.5(@types/node@24.10.9)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))(wxt@0.20.13(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.55.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@vitejs/plugin-vue': 6.0.3(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.3(vite@8.0.0-beta.5(@types/node@24.10.9)(esbuild@0.25.12)(jiti@2.6.1)(less@4.5.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) wxt: 0.20.13(@types/node@24.10.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(rollup@4.55.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - vite @@ -25608,6 +25604,10 @@ snapshots: dependencies: format: 0.2.2 + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -25780,6 +25780,10 @@ snapshots: format@0.2.2: {} + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + formdata-node@4.4.1: dependencies: node-domexception: 1.0.0 @@ -26908,6 +26912,23 @@ snapshots: klona@2.0.6: optional: true + knip@5.82.1(@types/node@24.10.9)(typescript@5.9.3): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 24.10.9 + fast-glob: 3.3.3 + formatly: 0.3.0 + jiti: 2.6.1 + js-yaml: 4.1.1 + minimist: 1.2.8 + oxc-resolver: 11.16.2 + picocolors: 1.1.1 + picomatch: 4.0.3 + smol-toml: 1.6.0 + strip-json-comments: 5.0.3 + typescript: 5.9.3 + zod: 4.3.5 + knitwork@1.3.0: optional: true @@ -31671,6 +31692,8 @@ snapshots: dependencies: xml-name-validator: 5.0.0 + walk-up-path@4.0.0: {} + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e0f179c03..709f19dda 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -68,6 +68,7 @@ catalog: idb-keyval: ^6.2.2 injeca: ^0.1.7 is-network-error: ^1.3.0 + knip: ^5.82.1 nano-staged: ^0.9.0 nanoid: 5.1.6 ofetch: ^1.5.1 diff --git a/services/telegram-bot/drizzle.config.ts b/services/telegram-bot/drizzle.config.ts index 2d0a42d20..b644bb2eb 100644 --- a/services/telegram-bot/drizzle.config.ts +++ b/services/telegram-bot/drizzle.config.ts @@ -2,8 +2,8 @@ import { env, loadEnvFile } from 'node:process' import { defineConfig } from 'drizzle-kit' -loadEnvFile() try { + loadEnvFile() loadEnvFile('./env.local') } catch {}