From e2ff432dde8104153c32f0d44765a2dd9ad4083f Mon Sep 17 00:00:00 2001 From: satnaing Date: Tue, 24 Dec 2024 15:46:00 +0700 Subject: [PATCH] refactor: analyze and remove unused files/exports with knip --- knip.config.ts | 7 + package.json | 5 +- pnpm-lock.yaml | 334 ++++++++++++------ .../users/components/user-primary-actions.tsx | 24 -- src/features/users/data/schema.ts | 1 - src/hooks/use-toast.ts | 2 +- src/stores/authStore.ts | 4 +- 7 files changed, 239 insertions(+), 138 deletions(-) create mode 100644 knip.config.ts delete mode 100644 src/features/users/components/user-primary-actions.tsx diff --git a/knip.config.ts b/knip.config.ts new file mode 100644 index 00000000..f47aa12b --- /dev/null +++ b/knip.config.ts @@ -0,0 +1,7 @@ +import type { KnipConfig } from 'knip'; + +const config: KnipConfig = { + ignore: ['src/components/ui/**', 'src/routeTree.gen.ts'] +}; + +export default config; \ No newline at end of file diff --git a/package.json b/package.json index baf14d4b..8f140c9c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "lint": "eslint .", "preview": "vite preview", "format:check": "prettier --check .", - "format": "prettier --write ." + "format": "prettier --write .", + "knip": "knip" }, "dependencies": { "@hookform/resolvers": "^3.9.1", @@ -50,7 +51,6 @@ "recharts": "^2.14.1", "tailwind-merge": "^2.5.5", "tailwindcss-animate": "^1.0.7", - "use-intl": "^3.26.0", "zod": "^3.23.8", "zustand": "^5.0.2" }, @@ -72,6 +72,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.13.0", + "knip": "^5.41.1", "postcss": "^8.4.49", "prettier": "^3.4.2", "prettier-plugin-tailwindcss": "^0.6.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5269dda4..e6797aa6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,9 +122,6 @@ importers: tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.16) - use-intl: - specifier: ^3.26.0 - version: 3.26.0(react@19.0.0) zod: specifier: ^3.23.8 version: 3.23.8 @@ -140,7 +137,7 @@ importers: version: 9.3.0 '@tanstack/eslint-plugin-query': specifier: ^5.62.1 - version: 5.62.1(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + version: 5.62.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) '@tanstack/react-query-devtools': specifier: ^5.62.3 version: 5.62.3(@tanstack/react-query@5.62.3(react@19.0.0))(react@19.0.0) @@ -149,7 +146,7 @@ importers: version: 1.86.1(@tanstack/react-router@1.86.1(@tanstack/router-generator@1.86.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tanstack/router-plugin': specifier: ^1.86.0 - version: 1.86.0(vite@6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0)) + version: 1.86.0(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0)) '@trivago/prettier-plugin-sort-imports': specifier: ^4.3.0 version: 4.3.0(prettier@3.4.2) @@ -167,22 +164,25 @@ importers: version: 19.0.1 '@vitejs/plugin-react-swc': specifier: ^3.7.2 - version: 3.7.2(vite@6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0)) + version: 3.7.2(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.49) eslint: specifier: ^9.16.0 - version: 9.16.0(jiti@1.21.6) + version: 9.16.0(jiti@2.4.2) eslint-plugin-react-hooks: specifier: ^5.1.0 - version: 5.1.0(eslint@9.16.0(jiti@1.21.6)) + version: 5.1.0(eslint@9.16.0(jiti@2.4.2)) eslint-plugin-react-refresh: specifier: ^0.4.16 - version: 0.4.16(eslint@9.16.0(jiti@1.21.6)) + version: 0.4.16(eslint@9.16.0(jiti@2.4.2)) globals: specifier: ^15.13.0 version: 15.13.0 + knip: + specifier: ^5.41.1 + version: 5.41.1(@types/node@22.10.1)(typescript@5.7.2) postcss: specifier: ^8.4.49 version: 8.4.49 @@ -200,10 +200,10 @@ importers: version: 5.7.2 typescript-eslint: specifier: ^8.17.0 - version: 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + version: 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) vite: specifier: ^6.0.3 - version: 6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0) + version: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0) packages: @@ -667,21 +667,6 @@ packages: '@floating-ui/utils@0.2.8': resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} - '@formatjs/ecma402-abstract@2.2.3': - resolution: {integrity: sha512-aElGmleuReGnk2wtYOzYFmNWYoiWWmf1pPPCYg0oiIQSJj0mjc4eUfzUXaSOJ4S8WzI/cLqnCTWjqz904FT2OQ==} - - '@formatjs/fast-memoize@2.2.3': - resolution: {integrity: sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==} - - '@formatjs/icu-messageformat-parser@2.9.3': - resolution: {integrity: sha512-9L99QsH14XjOCIp4TmbT8wxuffJxGK8uLNO1zNhLtcZaVXvv626N0s4A2qgRCKG3dfYWx9psvGlFmvyVBa6u/w==} - - '@formatjs/icu-skeleton-parser@1.8.7': - resolution: {integrity: sha512-fI+6SmS2g7h3srfAKSWa5dwreU5zNEfon2uFo99OToiLF6yxGE+WikvFSbsvMAYkscucvVmTYNlWlaDPp0n5HA==} - - '@formatjs/intl-localematcher@0.5.7': - resolution: {integrity: sha512-GGFtfHGQVFe/niOZp24Kal5b2i36eE2bNL0xi9Sg/yd0TR8aLjcteApZdHmismP5QQax1cMnZM9yWySUUjJteA==} - '@hookform/resolvers@3.9.1': resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} peerDependencies: @@ -1326,6 +1311,11 @@ packages: cpu: [x64] os: [win32] + '@snyk/github-codeowners@1.1.0': + resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==} + engines: {node: '>=8.10'} + hasBin: true + '@swc/core-darwin-arm64@1.9.2': resolution: {integrity: sha512-nETmsCoY29krTF2PtspEgicb3tqw7Ci5sInTI03EU5zpqYbPjoPH99BVTjj0OsF53jP5MxwnLI5Hm21lUn1d6A==} engines: {node: '>=10'} @@ -1640,6 +1630,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -1736,6 +1730,14 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -1841,6 +1843,9 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1860,6 +1865,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + easy-table@1.2.0: + resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==} + electron-to-chromium@1.5.57: resolution: {integrity: sha512-xS65H/tqgOwUBa5UmOuNSLuslDo7zho0y/lgQw35pnrqiZh7UOWHCeL/Bt6noJATbA6tpQJGCifsFsIRZj1Fqg==} @@ -1869,6 +1877,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + esbuild@0.23.1: resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} @@ -2050,6 +2062,9 @@ packages: peerDependencies: csstype: ^3.0.10 + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -2073,13 +2088,14 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + internmap@2.0.3: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - intl-messageformat@10.7.6: - resolution: {integrity: sha512-IsMU/hqyy3FJwNJ0hxDfY2heJ7MteSuFvcnCebxRp67di4Fhx1gKKE+qS0bBwUF8yXkX9SsPUhLeX/B6h5SKUA==} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -2120,6 +2136,10 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -2158,6 +2178,14 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + knip@5.41.1: + resolution: {integrity: sha512-yNpCCe2REU7U3VRvMASnXSEtfEC2HmOoDW9Vp9teQ9FktJYnuagvSZD3xWq8Ru7sPABkmvbC5TVWuMzIaeADNA==} + engines: {node: '>=18.6.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4' + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2217,6 +2245,9 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -2266,6 +2297,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -2273,6 +2308,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2295,6 +2334,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -2408,6 +2451,10 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -2557,6 +2604,10 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2585,11 +2636,18 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} + engines: {node: '>=14.16'} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true + summary@2.1.0: + resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2611,6 +2669,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -2694,11 +2756,6 @@ packages: '@types/react': optional: true - use-intl@3.26.0: - resolution: {integrity: sha512-HGXmpjGlbEv1uFZPfm557LK8p/hv0pKF9UwnrJeHUTxQx6bUGzMgpmPRLCVY3zkr7hfjy4LPwQJfk4Fhnn+dIg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 - use-sidecar@1.1.2: resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} @@ -2760,6 +2817,9 @@ packages: yaml: optional: true + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} @@ -2792,6 +2852,12 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -3123,9 +3189,9 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0(jiti@2.4.2))': dependencies: - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -3183,31 +3249,6 @@ snapshots: '@floating-ui/utils@0.2.8': {} - '@formatjs/ecma402-abstract@2.2.3': - dependencies: - '@formatjs/fast-memoize': 2.2.3 - '@formatjs/intl-localematcher': 0.5.7 - tslib: 2.8.1 - - '@formatjs/fast-memoize@2.2.3': - dependencies: - tslib: 2.8.1 - - '@formatjs/icu-messageformat-parser@2.9.3': - dependencies: - '@formatjs/ecma402-abstract': 2.2.3 - '@formatjs/icu-skeleton-parser': 1.8.7 - tslib: 2.8.1 - - '@formatjs/icu-skeleton-parser@1.8.7': - dependencies: - '@formatjs/ecma402-abstract': 2.2.3 - tslib: 2.8.1 - - '@formatjs/intl-localematcher@0.5.7': - dependencies: - tslib: 2.8.1 - '@hookform/resolvers@3.9.1(react-hook-form@7.54.0(react@19.0.0))': dependencies: react-hook-form: 7.54.0(react@19.0.0) @@ -3835,6 +3876,12 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.26.0': optional: true + '@snyk/github-codeowners@1.1.0': + dependencies: + commander: 4.1.1 + ignore: 5.3.2 + p-map: 4.0.0 + '@swc/core-darwin-arm64@1.9.2': optional: true @@ -3894,10 +3941,10 @@ snapshots: '@tabler/icons@3.24.0': {} - '@tanstack/eslint-plugin-query@5.62.1(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': + '@tanstack/eslint-plugin-query@5.62.1(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - eslint: 9.16.0(jiti@1.21.6) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) + eslint: 9.16.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript @@ -3961,7 +4008,7 @@ snapshots: tsx: 4.19.2 zod: 3.23.8 - '@tanstack/router-plugin@1.86.0(vite@6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0))': + '@tanstack/router-plugin@1.86.0(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0))': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.2 @@ -3982,7 +4029,7 @@ snapshots: unplugin: 1.16.0 zod: 3.23.8 optionalDependencies: - vite: 6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0) + vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0) transitivePeerDependencies: - supports-color @@ -4067,15 +4114,15 @@ snapshots: dependencies: csstype: 3.1.3 - '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -4085,14 +4132,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.3.7 - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -4103,12 +4150,12 @@ snapshots: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2)': dependencies: '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) debug: 4.3.7 - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) ts-api-utils: 1.4.0(typescript@5.7.2) optionalDependencies: typescript: 5.7.2 @@ -4132,13 +4179,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -4149,10 +4196,10 @@ snapshots: '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react-swc@3.7.2(vite@6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0))': + '@vitejs/plugin-react-swc@3.7.2(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0))': dependencies: '@swc/core': 1.9.2 - vite: 6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0) + vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0) transitivePeerDependencies: - '@swc/helpers' @@ -4162,6 +4209,11 @@ snapshots: acorn@8.14.0: {} + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -4274,6 +4326,11 @@ snapshots: dependencies: clsx: 2.1.1 + clean-stack@2.2.0: {} + + clone@1.0.4: + optional: true + clsx@2.1.1: {} cmdk@1.0.4(@types/react-dom@19.0.1)(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): @@ -4362,6 +4419,11 @@ snapshots: deep-is@0.1.4: {} + defaults@1.0.4: + dependencies: + clone: 1.0.4 + optional: true + delayed-stream@1.0.0: {} detect-node-es@1.1.0: {} @@ -4377,12 +4439,23 @@ snapshots: eastasianwidth@0.2.0: {} + easy-table@1.2.0: + dependencies: + ansi-regex: 5.0.1 + optionalDependencies: + wcwidth: 1.0.1 + electron-to-chromium@1.5.57: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + esbuild@0.23.1: optionalDependencies: '@esbuild/aix-ppc64': 0.23.1 @@ -4441,13 +4514,13 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-plugin-react-hooks@5.1.0(eslint@9.16.0(jiti@1.21.6)): + eslint-plugin-react-hooks@5.1.0(eslint@9.16.0(jiti@2.4.2)): dependencies: - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) - eslint-plugin-react-refresh@0.4.16(eslint@9.16.0(jiti@1.21.6)): + eslint-plugin-react-refresh@0.4.16(eslint@9.16.0(jiti@2.4.2)): dependencies: - eslint: 9.16.0(jiti@1.21.6) + eslint: 9.16.0(jiti@2.4.2) eslint-scope@8.2.0: dependencies: @@ -4458,9 +4531,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.16.0(jiti@1.21.6): + eslint@9.16.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@1.21.6)) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.1 '@eslint/core': 0.9.1 @@ -4495,7 +4568,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 1.21.6 + jiti: 2.4.2 transitivePeerDependencies: - supports-color @@ -4614,6 +4687,8 @@ snapshots: dependencies: csstype: 3.1.3 + graceful-fs@4.2.11: {} + graphemer@1.4.0: {} has-flag@4.0.0: {} @@ -4631,14 +4706,9 @@ snapshots: imurmurhash@0.1.4: {} - internmap@2.0.3: {} + indent-string@4.0.0: {} - intl-messageformat@10.7.6: - dependencies: - '@formatjs/ecma402-abstract': 2.2.3 - '@formatjs/fast-memoize': 2.2.3 - '@formatjs/icu-messageformat-parser': 2.9.3 - tslib: 2.8.1 + internmap@2.0.3: {} invariant@2.2.4: dependencies: @@ -4674,6 +4744,8 @@ snapshots: jiti@1.21.6: {} + jiti@2.4.2: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -4698,6 +4770,27 @@ snapshots: dependencies: json-buffer: 3.0.1 + knip@5.41.1(@types/node@22.10.1)(typescript@5.7.2): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@snyk/github-codeowners': 1.1.0 + '@types/node': 22.10.1 + easy-table: 1.2.0 + enhanced-resolve: 5.18.0 + fast-glob: 3.3.2 + jiti: 2.4.2 + js-yaml: 4.1.0 + minimist: 1.2.8 + picocolors: 1.1.1 + picomatch: 4.0.2 + pretty-ms: 9.2.0 + smol-toml: 1.3.1 + strip-json-comments: 5.0.1 + summary: 2.1.0 + typescript: 5.7.2 + zod: 3.23.8 + zod-validation-error: 3.4.0(zod@3.23.8) + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -4750,6 +4843,8 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@7.1.2: {} ms@2.1.3: {} @@ -4791,12 +4886,18 @@ snapshots: dependencies: p-limit: 3.1.0 + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + package-json-from-dist@1.0.1: {} parent-module@1.0.1: dependencies: callsites: 3.1.0 + parse-ms@4.0.0: {} + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -4812,6 +4913,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pirates@4.0.6: {} @@ -4863,6 +4966,10 @@ snapshots: prettier@3.4.2: {} + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -5021,6 +5128,8 @@ snapshots: signal-exit@4.1.0: {} + smol-toml@1.3.1: {} + source-map-js@1.2.1: {} source-map@0.5.7: {} @@ -5047,6 +5156,8 @@ snapshots: strip-json-comments@3.1.1: {} + strip-json-comments@5.0.1: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -5057,6 +5168,8 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 + summary@2.1.0: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -5096,6 +5209,8 @@ snapshots: transitivePeerDependencies: - ts-node + tapable@2.2.1: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -5133,12 +5248,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2): + typescript-eslint@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@1.21.6))(typescript@5.7.2) - eslint: 9.16.0(jiti@1.21.6) + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.2))(typescript@5.7.2) + eslint: 9.16.0(jiti@2.4.2) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -5170,12 +5285,6 @@ snapshots: optionalDependencies: '@types/react': 19.0.1 - use-intl@3.26.0(react@19.0.0): - dependencies: - '@formatjs/fast-memoize': 2.2.3 - intl-messageformat: 10.7.6 - react: 19.0.0 - use-sidecar@1.1.2(@types/react@19.0.1)(react@19.0.0): dependencies: detect-node-es: 1.1.0 @@ -5207,7 +5316,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@6.0.3(@types/node@22.10.1)(jiti@1.21.6)(tsx@4.19.2)(yaml@2.6.0): + vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.6.0): dependencies: esbuild: 0.24.0 postcss: 8.4.49 @@ -5215,10 +5324,15 @@ snapshots: optionalDependencies: '@types/node': 22.10.1 fsevents: 2.3.3 - jiti: 1.21.6 + jiti: 2.4.2 tsx: 4.19.2 yaml: 2.6.0 + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + optional: true + webpack-virtual-modules@0.6.2: {} which@2.0.2: @@ -5245,6 +5359,10 @@ snapshots: yocto-queue@0.1.0: {} + zod-validation-error@3.4.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + zod@3.23.8: {} zustand@5.0.2(@types/react@19.0.1)(react@19.0.0)(use-sync-external-store@1.2.2(react@19.0.0)): diff --git a/src/features/users/components/user-primary-actions.tsx b/src/features/users/components/user-primary-actions.tsx deleted file mode 100644 index 1fbe744a..00000000 --- a/src/features/users/components/user-primary-actions.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useState } from 'react' -import { IconMailPlus, IconUserPlus } from '@tabler/icons-react' -import { Button } from '@/components/ui/button' -import { UsersActionDialog } from './users-action-dialog' - -export function UserPrimaryActions() { - const [open, setOpen] = useState(false) - return ( - <> -
- - -
- - - - ) -} diff --git a/src/features/users/data/schema.ts b/src/features/users/data/schema.ts index 3a3fb44a..f7f5c91b 100644 --- a/src/features/users/data/schema.ts +++ b/src/features/users/data/schema.ts @@ -14,7 +14,6 @@ const userRoleSchema = z.union([ z.literal('cashier'), z.literal('manager'), ]) -export type UserRole = z.infer const userSchema = z.object({ id: z.string(), diff --git a/src/hooks/use-toast.ts b/src/hooks/use-toast.ts index f5c498b4..2b8dd8d7 100644 --- a/src/hooks/use-toast.ts +++ b/src/hooks/use-toast.ts @@ -69,7 +69,7 @@ const addToRemoveQueue = (toastId: string) => { toastTimeouts.set(toastId, timeout) } -export const reducer = (state: State, action: Action): State => { +const reducer = (state: State, action: Action): State => { switch (action.type) { case 'ADD_TOAST': return { diff --git a/src/stores/authStore.ts b/src/stores/authStore.ts index 3a9d5eea..be304d4e 100644 --- a/src/stores/authStore.ts +++ b/src/stores/authStore.ts @@ -3,7 +3,7 @@ import { create } from 'zustand' const ACCESS_TOKEN = 'thisisjustarandomstring' -export interface AuthUser { +interface AuthUser { accountNo: string email: string role: string[] @@ -52,4 +52,4 @@ export const useAuthStore = create()((set) => { } }) -export const useAuth = () => useAuthStore((state) => state.auth) +// export const useAuth = () => useAuthStore((state) => state.auth)