personal web client for Bluesky
typescript solidjs bluesky atcute

chore: reconfigure typescript

mary.my.id ade280c4 01f18e56

verified
+102 -49
+2 -1
package.json
··· 3 "private": true, 4 "scripts": { 5 "dev": "vite", 6 - "build": "vite build", 7 "preview": "vite preview", 8 "fmt": "PRETTIER_EXPERIMENTAL_CLI=1 prettier --cache --write ." 9 }, ··· 46 "@trivago/prettier-plugin-sort-imports": "^5.2.2", 47 "@types/dom-close-watcher": "^1.0.0", 48 "@types/dom-webcodecs": "^0.1.15", 49 "autoprefixer": "^10.4.21", 50 "babel-plugin-transform-typescript-const-enums": "^0.1.0", 51 "prettier": "^3.6.0",
··· 3 "private": true, 4 "scripts": { 5 "dev": "vite", 6 + "build": "tsc -b && vite build", 7 "preview": "vite preview", 8 "fmt": "PRETTIER_EXPERIMENTAL_CLI=1 prettier --cache --write ." 9 }, ··· 46 "@trivago/prettier-plugin-sort-imports": "^5.2.2", 47 "@types/dom-close-watcher": "^1.0.0", 48 "@types/dom-webcodecs": "^0.1.15", 49 + "@types/node": "^24.3.0", 50 "autoprefixer": "^10.4.21", 51 "babel-plugin-transform-typescript-const-enums": "^0.1.0", 52 "prettier": "^3.6.0",
+27 -11
pnpm-lock.yaml
··· 139 '@types/dom-webcodecs': 140 specifier: ^0.1.15 141 version: 0.1.15 142 autoprefixer: 143 specifier: ^10.4.21 144 version: 10.4.21(postcss@8.5.6) ··· 162 version: 5.8.3 163 vite: 164 specifier: ^6.3.5 165 - version: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 166 vite-plugin-pwa: 167 specifier: 0.21.0 168 - version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 169 vite-plugin-solid: 170 specifier: ^2.11.6 171 - version: 2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 172 wrangler: 173 specifier: ^4.20.5 174 version: 4.20.5 ··· 1503 '@types/estree@1.0.8': 1504 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 1505 1506 '@types/resolve@1.20.2': 1507 resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 1508 ··· 2497 2498 ufo@1.6.1: 2499 resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 2500 2501 undici@5.29.0: 2502 resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} ··· 4002 '@types/estree@0.0.39': {} 4003 4004 '@types/estree@1.0.8': {} 4005 4006 '@types/resolve@1.20.2': {} 4007 ··· 4950 4951 ufo@1.6.1: {} 4952 4953 undici@5.29.0: 4954 dependencies: 4955 '@fastify/busboy': 2.1.1 ··· 4991 4992 validate-html-nesting@1.2.3: {} 4993 4994 - vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 4995 dependencies: 4996 debug: 4.4.1 4997 pretty-bytes: 6.1.1 4998 tinyglobby: 0.2.14 4999 - vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5000 workbox-build: 7.3.0(@types/babel__core@7.20.5) 5001 workbox-window: 7.3.0 5002 transitivePeerDependencies: 5003 - '@types/babel__core' 5004 - supports-color 5005 5006 - vite-plugin-solid@2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 5007 dependencies: 5008 '@babel/core': 7.27.4 5009 '@types/babel__core': 7.20.5 ··· 5011 merge-anything: 5.1.7 5012 solid-js: 1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 5013 solid-refresh: 0.6.3(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5014 - vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5015 - vitefu: 1.0.7(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 5016 transitivePeerDependencies: 5017 - supports-color 5018 5019 - vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0): 5020 dependencies: 5021 esbuild: 0.25.5 5022 fdir: 6.4.6(picomatch@4.0.2) ··· 5025 rollup: 4.44.0 5026 tinyglobby: 0.2.14 5027 optionalDependencies: 5028 fsevents: 2.3.3 5029 jiti: 1.21.7 5030 terser: 5.43.1 5031 yaml: 2.8.0 5032 5033 - vitefu@1.0.7(vite@6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 5034 optionalDependencies: 5035 - vite: 6.3.5(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5036 5037 webidl-conversions@4.0.2: {} 5038
··· 139 '@types/dom-webcodecs': 140 specifier: ^0.1.15 141 version: 0.1.15 142 + '@types/node': 143 + specifier: ^24.3.0 144 + version: 24.3.0 145 autoprefixer: 146 specifier: ^10.4.21 147 version: 10.4.21(postcss@8.5.6) ··· 165 version: 5.8.3 166 vite: 167 specifier: ^6.3.5 168 + version: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 169 vite-plugin-pwa: 170 specifier: 0.21.0 171 + version: 0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 172 vite-plugin-solid: 173 specifier: ^2.11.6 174 + version: 2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 175 wrangler: 176 specifier: ^4.20.5 177 version: 4.20.5 ··· 1506 '@types/estree@1.0.8': 1507 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 1508 1509 + '@types/node@24.3.0': 1510 + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} 1511 + 1512 '@types/resolve@1.20.2': 1513 resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 1514 ··· 2503 2504 ufo@1.6.1: 2505 resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 2506 + 2507 + undici-types@7.10.0: 2508 + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} 2509 2510 undici@5.29.0: 2511 resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} ··· 4011 '@types/estree@0.0.39': {} 4012 4013 '@types/estree@1.0.8': {} 4014 + 4015 + '@types/node@24.3.0': 4016 + dependencies: 4017 + undici-types: 7.10.0 4018 4019 '@types/resolve@1.20.2': {} 4020 ··· 4963 4964 ufo@1.6.1: {} 4965 4966 + undici-types@7.10.0: {} 4967 + 4968 undici@5.29.0: 4969 dependencies: 4970 '@fastify/busboy': 2.1.1 ··· 5006 5007 validate-html-nesting@1.2.3: {} 5008 5009 + vite-plugin-pwa@0.21.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 5010 dependencies: 5011 debug: 4.4.1 5012 pretty-bytes: 6.1.1 5013 tinyglobby: 0.2.14 5014 + vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5015 workbox-build: 7.3.0(@types/babel__core@7.20.5) 5016 workbox-window: 7.3.0 5017 transitivePeerDependencies: 5018 - '@types/babel__core' 5019 - supports-color 5020 5021 + vite-plugin-solid@2.11.6(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 5022 dependencies: 5023 '@babel/core': 7.27.4 5024 '@types/babel__core': 7.20.5 ··· 5026 merge-anything: 5.1.7 5027 solid-js: 1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 5028 solid-refresh: 0.6.3(solid-js@1.9.7(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5029 + vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5030 + vitefu: 1.0.7(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)) 5031 transitivePeerDependencies: 5032 - supports-color 5033 5034 + vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0): 5035 dependencies: 5036 esbuild: 0.25.5 5037 fdir: 6.4.6(picomatch@4.0.2) ··· 5040 rollup: 4.44.0 5041 tinyglobby: 0.2.14 5042 optionalDependencies: 5043 + '@types/node': 24.3.0 5044 fsevents: 2.3.3 5045 jiti: 1.21.7 5046 terser: 5.43.1 5047 yaml: 2.8.0 5048 5049 + vitefu@1.0.7(vite@6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0)): 5050 optionalDependencies: 5051 + vite: 6.3.5(@types/node@24.3.0)(jiti@1.21.7)(terser@5.43.1)(yaml@2.8.0) 5052 5053 webidl-conversions@4.0.2: {} 5054
+1 -1
src/views/_error/index.tsx
··· 5 reset: () => void; 6 } 7 8 - const ErrorPage = ({ error, reset: retry }: ErrorPageProps) => { 9 useTitle(() => `Something went wrong :( — ${import.meta.env.VITE_APP_NAME}`); 10 11 console.error(error);
··· 5 reset: () => void; 6 } 7 8 + const ErrorPage = ({ error, reset: _retry }: ErrorPageProps) => { 9 useTitle(() => `Something went wrong :( — ${import.meta.env.VITE_APP_NAME}`); 10 11 console.error(error);
+40
tsconfig.app.json
···
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 4 + 5 + "target": "ESNext", 6 + "lib": ["ESNext", "DOM", "DOM.Iterable"], 7 + "types": [ 8 + "dom-close-watcher", 9 + "dom-webcodecs", 10 + "@atcute/atproto", 11 + "@atcute/bluemoji", 12 + "@atcute/bluesky", 13 + "@kelinci/basa-lexicons" 14 + ], 15 + "skipLibCheck": true, 16 + 17 + "module": "ESNext", 18 + "moduleResolution": "bundler", 19 + "moduleDetection": "force", 20 + "allowImportingTsExtensions": true, 21 + "noEmit": true, 22 + "jsx": "preserve", 23 + "jsxImportSource": "solid-js", 24 + 25 + "incremental": true, 26 + "strict": true, 27 + "verbatimModuleSyntax": true, 28 + "noUnusedLocals": true, 29 + "noUnusedParameters": true, 30 + "noFallthroughCasesInSwitch": true, 31 + "noUncheckedSideEffectImports": true, 32 + 33 + "useDefineForClassFields": false, 34 + 35 + "paths": { 36 + "~/*": ["./src/*"] 37 + } 38 + }, 39 + "include": ["src"] 40 + }
+2 -35
tsconfig.json
··· 1 { 2 - "compilerOptions": { 3 - "target": "ESNext", 4 - "lib": ["DOM", "DOM.Iterable", "ESNext"], 5 - "types": [ 6 - "dom-close-watcher", 7 - "dom-webcodecs", 8 - "@atcute/atproto", 9 - "@atcute/bluemoji", 10 - "@atcute/bluesky", 11 - "@kelinci/basa-lexicons", 12 - ], 13 - "skipLibCheck": true, 14 - 15 - "module": "ESNext", 16 - "moduleResolution": "Bundler", 17 - "allowImportingTsExtensions": true, 18 - "resolveJsonModule": true, 19 - "noEmit": true, 20 - "jsx": "preserve", 21 - "jsxImportSource": "solid-js", 22 - 23 - "incremental": true, 24 - "strict": true, 25 - "verbatimModuleSyntax": true, 26 - "noUnusedLocals": true, 27 - "noUnusedParameters": true, 28 - "noFallthroughCasesInSwitch": true, 29 - 30 - "useDefineForClassFields": false, 31 - 32 - "paths": { 33 - "~/*": ["./src/*"], 34 - }, 35 - }, 36 - "include": ["src"], 37 }
··· 1 { 2 + "files": [], 3 + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }], 4 }
+27
tsconfig.node.json
···
··· 1 + { 2 + "compilerOptions": { 3 + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 4 + 5 + "target": "ESNext", 6 + "lib": ["ESNext"], 7 + "types": ["node"], 8 + "skipLibCheck": true, 9 + 10 + "module": "ESNext", 11 + "moduleResolution": "bundler", 12 + "moduleDetection": "force", 13 + "allowImportingTsExtensions": true, 14 + "noEmit": true, 15 + 16 + "incremental": true, 17 + "strict": true, 18 + "verbatimModuleSyntax": true, 19 + "noUnusedLocals": true, 20 + "noUnusedParameters": true, 21 + "noFallthroughCasesInSwitch": true, 22 + "noUncheckedSideEffectImports": true, 23 + 24 + "useDefineForClassFields": false 25 + }, 26 + "include": ["vite.config.ts"] 27 + }
+3 -1
vite.config.js vite.config.ts
··· 100 101 // Transform the icon components to remove the `() => _tmpl$()` wrapper 102 { 103 transform(code, id) { 104 if (!id.includes('/icons-central/')) { 105 return; ··· 107 108 const transformed = code.replace( 109 /(?<=createIcon\()\(\)\s*=>*.([\w$]+)\(\)(?=\))/g, 110 - (match, id) => id, 111 ); 112 113 return { code: transformed, map: null }; ··· 116 117 // Injects OAuth-related variables 118 { 119 config(_conf, { command }) { 120 if (command === 'build') { 121 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
··· 100 101 // Transform the icon components to remove the `() => _tmpl$()` wrapper 102 { 103 + name: 'aglais-icon-transform', 104 transform(code, id) { 105 if (!id.includes('/icons-central/')) { 106 return; ··· 108 109 const transformed = code.replace( 110 /(?<=createIcon\()\(\)\s*=>*.([\w$]+)\(\)(?=\))/g, 111 + (_match, id) => id, 112 ); 113 114 return { code: transformed, map: null }; ··· 117 118 // Injects OAuth-related variables 119 { 120 + name: 'aglais-oauth-inject', 121 config(_conf, { command }) { 122 if (command === 'build') { 123 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;