From 184940722fbb8fdc83215c03b7158738e206eb80 Mon Sep 17 00:00:00 2001 From: ajnart Date: Sun, 2 Jun 2024 10:30:35 +0200 Subject: [PATCH 1/6] feat: Add `million-lint` --- .gitignore | 3 +- .vscode/extensions.json | 5 +- apps/nextjs/next.config.mjs | 3 +- apps/nextjs/package.json | 3 +- pnpm-lock.yaml | 341 ++++++++++++++++++++++++++++++++++-- 5 files changed, 338 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 8327c8b84..2d673d0d8 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,5 @@ db.sqlite *.log apps/tasks/tasks.cjs -apps/websocket/wssServer.cjs \ No newline at end of file +apps/websocket/wssServer.cjs +apps/nextjs/.million/store.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0a535e057..bd8370a14 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,9 @@ "recommendations": [ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", - "yoavbls.pretty-ts-errors" + "yoavbls.pretty-ts-errors", + "lokalise.i18n-ally", + "million.million-lint", + ] } diff --git a/apps/nextjs/next.config.mjs b/apps/nextjs/next.config.mjs index 970d393c4..631a200d7 100644 --- a/apps/nextjs/next.config.mjs +++ b/apps/nextjs/next.config.mjs @@ -1,5 +1,6 @@ // Importing env files here to validate on build import "@homarr/auth/env.mjs"; +import MillionLint from "@million/lint"; import "./src/env.mjs"; /** @type {import("next").NextConfig} */ @@ -27,4 +28,4 @@ const config = { }, }; -export default config; +export default MillionLint.next({ rsc: true })(config); diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 642f71be3..89c13f2c0 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -26,6 +26,7 @@ "@homarr/log": "workspace:^", "@homarr/modals": "workspace:^0.1.0", "@homarr/notifications": "workspace:^0.1.0", + "@homarr/server-settings": "workspace:^0.1.0", "@homarr/spotlight": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0", @@ -35,7 +36,7 @@ "@mantine/hooks": "^7.10.1", "@mantine/modals": "^7.10.1", "@mantine/tiptap": "^7.10.1", - "@homarr/server-settings": "workspace:^0.1.0", + "@million/lint": "1.0.0-rc.18", "@t3-oss/env-nextjs": "^0.10.1", "@tanstack/react-query": "^5.40.0", "@tanstack/react-query-devtools": "^5.40.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95255d33f..efd460846 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -126,6 +126,9 @@ importers: '@mantine/tiptap': specifier: ^7.10.1 version: 7.10.1(@mantine/core@7.10.1(@mantine/hooks@7.10.1(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.10.1(react@18.3.1))(@tiptap/extension-link@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4))(@tiptap/react@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@million/lint': + specifier: 1.0.0-rc.18 + version: 1.0.0-rc.18(react@18.3.1)(rollup@4.13.0) '@t3-oss/env-nextjs': specifier: ^0.10.1 version: 0.10.1(typescript@5.4.5)(zod@3.23.8) @@ -1131,6 +1134,10 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} + '@antfu/ni@0.21.12': + resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} + hasBin: true + '@auth/core@0.31.0': resolution: {integrity: sha512-UKk3psvA1cRbk4/c9CkpWB8mdWrkKvzw0DmEYRsWolUQytQ2cRqx+hYuV6ZCsngw/xbj9hpmkZmAZEyq2g4fMg==} peerDependencies: @@ -1162,6 +1169,10 @@ packages: '@auth/drizzle-adapter@1.2.0': resolution: {integrity: sha512-95LHWlgtR4rQeHy4bACiVgTZdWkkEpVXYJim1IqbF1Hy0MnnMalmfGuIlNcOi64+6iC17j5FkDsMchqGwvj2Dg==} + '@axiomhq/js@1.0.0-rc.3': + resolution: {integrity: sha512-Zm10TczcMLounWqC42nMkXQ7XKLqjzLrd5ia022oBKDUZqAFVg2y9d1quQVNV4FlXyg9MKDdfMjpKQRmzEGaog==} + engines: {node: '>=16'} + '@babel/code-frame@7.23.5': resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -1374,6 +1385,14 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} @@ -1841,6 +1860,10 @@ packages: '@homarr/gridstack@1.0.0': resolution: {integrity: sha512-KM9024BipLD9BmtM6jHI8OKLZ1Iy4vZdTfU53ww4qEda/330XQYhIC2SBcQgkNnDB2MTkn/laNSO5gTy+lJg9Q==} + '@hono/node-server@1.11.1': + resolution: {integrity: sha512-GW1Iomhmm1o4Z+X57xGby8A35Cu9UZLL7pSMdqDBkD99U5cywff8F+8hLk5aBTzNubnsFAvWQ/fZjNwPsEn9lA==} + engines: {node: '>=18.14.1'} + '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -1982,6 +2005,14 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@million/install@0.0.8': + resolution: {integrity: sha512-eISzjTfghxSgasyPUyLVEJaRbJz3vMi1EFvFbtGa9R/NyRfBStwb9ESYsprsb4J5xYjrTbjrAmR34QE/11sigw==} + hasBin: true + + '@million/lint@1.0.0-rc.18': + resolution: {integrity: sha512-PH1hhsHNnE/AwcO9Hg278Hxu/IUq8id1myr2cyWon9eE8sdJlyH5ME6b0I+DOIHA0VfP9yXsqDTpsPyvyXmTiA==} + hasBin: true + '@next/env@14.2.3': resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==} @@ -2083,6 +2114,15 @@ packages: '@remirror/types@1.0.1': resolution: {integrity: sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA==} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.13.0': resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] @@ -2980,9 +3020,15 @@ packages: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} + axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + babel-plugin-syntax-hermes-parser@0.21.1: + resolution: {integrity: sha512-tUCEa+EykZx3oJXc+PolKz2iwDscCJ2hCONMvEqjAb4jIQH5ZapDd5Brs2Nk4TQpSJ/1Ykz53ksQbevXbF0wxg==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -3125,6 +3171,10 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-high@0.4.2: + resolution: {integrity: sha512-q/CIxOggmzAw/67QYS4j1bMo72IpC+dAlswZl8xHxp8XvmWS97x3Q30pWNXq8mg0pZLSJwIFWZpUWTfcF119wA==} + hasBin: true + cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -3377,6 +3427,10 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3732,6 +3786,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -3778,6 +3835,9 @@ packages: fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + fetch-retry@6.0.0: + resolution: {integrity: sha512-BUFj1aMubgib37I3v4q78fYo63Po7t4HUPTpQ6/QE6yK6cIQrP+W43FYToeTEyg5m2Y7eFUtijUuAv/PDlWuag==} + fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -3813,6 +3873,15 @@ packages: fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -4019,6 +4088,16 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} + hermes-estree@0.21.1: + resolution: {integrity: sha512-ayfESdfG0wZM32uGw0CMfcW6pW6RM8htLXZI56A4rr7hIOjmKw+wd3+71wUc1uQfn90ZyY1NMCbQeMnunrIidg==} + + hermes-parser@0.21.1: + resolution: {integrity: sha512-ANsRSBqQHzca7AXbsuwKApSQhAdljPip63MgqLebSVzNUI+A3NDzfiH9Ny4df4fA7Ndso3kPR1V/x1YEc7BYxA==} + + hono@4.4.0: + resolution: {integrity: sha512-Bb2GHk8jmlLIuxc3U+7UBGOoA5lByJTAFnRdH2N2fqEVy9TEQzJ9saIJUQ/ZqBvEvgEFe7UjPFNSFi8cyeU+3Q==} + engines: {node: '>=16.0.0'} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -4290,6 +4369,9 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} + istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -4664,6 +4746,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -4714,6 +4801,10 @@ packages: sass: optional: true + nice-napi@1.0.2: + resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} + os: ['!win32'] + no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} @@ -4721,6 +4812,9 @@ packages: resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} engines: {node: '>=10'} + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + node-addon-api@5.1.0: resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} @@ -4737,6 +4831,10 @@ packages: encoding: optional: true + node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + node-loader@2.0.0: resolution: {integrity: sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==} engines: {node: '>= 10.13.0'} @@ -4895,6 +4993,10 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-ms@3.0.0: + resolution: {integrity: sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==} + engines: {node: '>=12'} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -4948,6 +5050,9 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + piscina@4.5.1: + resolution: {integrity: sha512-DVhySLPfqAW+uRH9dF0bjA2xEWr5ANLAzkYXx5adSLMFnwssSIVJYhg0FlvgYsnT/khILQJ3WkjqbAlBvt+maw==} + pkcs7@1.0.4: resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==} hasBin: true @@ -5000,6 +5105,10 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} + posthog-node@3.6.3: + resolution: {integrity: sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==} + engines: {node: '>=15.0.0'} + preact-render-to-string@5.2.3: resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} peerDependencies: @@ -5029,6 +5138,10 @@ packages: pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + pretty-ms@8.0.0: + resolution: {integrity: sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==} + engines: {node: '>=14.16'} + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -5154,6 +5267,12 @@ packages: react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-reconciler@0.29.2: + resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.3.1 + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -5303,6 +5422,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rusha@0.8.14: + resolution: {integrity: sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==} + rust-result@1.0.0: resolution: {integrity: sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==} @@ -5432,6 +5554,9 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -5576,6 +5701,9 @@ packages: babel-plugin-macros: optional: true + sugar-high@0.6.1: + resolution: {integrity: sha512-kg1qMW7WwJcueXIlHkChL/p2EWY3gf8rQmP6n5nUq2TWVqatqDTMLvViS9WgAjgyTKH5/3/b8sRwWPOOAo1zMA==} + sugarss@4.0.1: resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==} engines: {node: '>=12.0'} @@ -5694,6 +5822,10 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -5898,6 +6030,10 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin@1.10.1: + resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + engines: {node: '>=14.0.0'} + update-browserslist-db@1.0.13: resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -6091,6 +6227,9 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack@5.91.0: resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} @@ -6105,6 +6244,9 @@ packages: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} @@ -6192,6 +6334,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xycolors@0.1.1: + resolution: {integrity: sha512-BbRKWpz/87nNH4lXp6TbBFUT0QipzmJI7ksQpSpBb3ny8mGJgkiKk36bIr8VqfyTEhasEBsfbp/Cum37fIHnjA==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -6234,6 +6379,8 @@ snapshots: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/ni@0.21.12': {} + '@auth/core@0.31.0': dependencies: '@panva/hkdf': 1.1.1 @@ -6262,6 +6409,11 @@ snapshots: - '@simplewebauthn/server' - nodemailer + '@axiomhq/js@1.0.0-rc.3': + dependencies: + fetch-retry: 6.0.0 + uuid: 8.3.2 + '@babel/code-frame@7.23.5': dependencies: '@babel/highlight': 7.23.4 @@ -6353,7 +6505,7 @@ snapshots: '@babel/helper-function-name@7.23.0': dependencies: '@babel/template': 7.23.9 - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/helper-function-name@7.24.6': dependencies: @@ -6362,7 +6514,7 @@ snapshots: '@babel/helper-hoist-variables@7.22.5': dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.6 '@babel/helper-hoist-variables@7.24.6': dependencies: @@ -6370,7 +6522,7 @@ snapshots: '@babel/helper-module-imports@7.22.15': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/helper-module-imports@7.24.6': dependencies: @@ -6398,7 +6550,7 @@ snapshots: '@babel/helper-simple-access@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/helper-simple-access@7.24.6': dependencies: @@ -6406,7 +6558,7 @@ snapshots: '@babel/helper-split-export-declaration@7.22.6': dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.6 '@babel/helper-split-export-declaration@7.24.6': dependencies: @@ -6428,7 +6580,7 @@ snapshots: dependencies: '@babel/template': 7.24.0 '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 transitivePeerDependencies: - supports-color @@ -6479,15 +6631,15 @@ snapshots: '@babel/template@7.23.9': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/code-frame': 7.24.6 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.23.5 '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@babel/template@7.24.6': dependencies: @@ -6547,6 +6699,17 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@clack/core@0.3.4': + dependencies: + picocolors: 1.0.0 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.0 + sisteransi: 1.0.5 + '@colors/colors@1.6.0': {} '@cspotcode/source-map-support@0.8.1': @@ -6823,6 +6986,8 @@ snapshots: '@homarr/gridstack@1.0.0': {} + '@hono/node-server@1.11.1': {} + '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.2 @@ -6988,6 +7153,48 @@ snapshots: - encoding - supports-color + '@million/install@0.0.8': + dependencies: + '@antfu/ni': 0.21.12 + '@axiomhq/js': 1.0.0-rc.3 + '@babel/core': 7.24.6 + '@babel/types': 7.24.6 + '@clack/prompts': 0.7.0 + cli-high: 0.4.2 + diff: 5.2.0 + nanoid: 5.0.7 + posthog-node: 3.6.3 + xycolors: 0.1.1 + transitivePeerDependencies: + - debug + - supports-color + + '@million/lint@1.0.0-rc.18(react@18.3.1)(rollup@4.13.0)': + dependencies: + '@axiomhq/js': 1.0.0-rc.3 + '@babel/core': 7.24.6 + '@babel/types': 7.24.6 + '@hono/node-server': 1.11.1 + '@million/install': 0.0.8 + '@rollup/pluginutils': 5.1.0(rollup@4.13.0) + babel-plugin-syntax-hermes-parser: 0.21.1 + esbuild: 0.20.2 + hono: 4.4.0 + isomorphic-fetch: 3.0.0 + pathe: 1.1.2 + piscina: 4.5.1 + posthog-node: 3.6.3 + pretty-ms: 8.0.0 + react-reconciler: 0.29.2(react@18.3.1) + tmp: 0.2.3 + unplugin: 1.10.1 + transitivePeerDependencies: + - debug + - encoding + - react + - rollup + - supports-color + '@next/env@14.2.3': {} '@next/eslint-plugin-next@14.2.3': @@ -7070,6 +7277,14 @@ snapshots: dependencies: type-fest: 2.19.0 + '@rollup/pluginutils@5.1.0(rollup@4.13.0)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.13.0 + '@rollup/rollup-android-arm-eabi@4.13.0': optional: true @@ -7463,16 +7678,16 @@ snapshots: '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@types/babel__traverse@7.20.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.6 '@types/bcrypt@5.0.2': dependencies: @@ -8109,10 +8324,22 @@ snapshots: axe-core@4.7.0: {} + axios@1.7.2: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axobject-query@3.2.1: dependencies: dequal: 2.0.3 + babel-plugin-syntax-hermes-parser@0.21.1: + dependencies: + hermes-parser: 0.21.1 + balanced-match@1.0.2: {} base64-js@1.5.1: {} @@ -8290,6 +8517,13 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-high@0.4.2: + dependencies: + '@clack/prompts': 0.7.0 + sugar-high: 0.6.1 + xycolors: 0.1.1 + yargs: 17.7.2 + cli-spinners@2.9.2: {} cli-width@3.0.0: {} @@ -8519,6 +8753,8 @@ snapshots: diff@4.0.2: {} + diff@5.2.0: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -9053,6 +9289,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 @@ -9113,6 +9351,8 @@ snapshots: fecha@4.2.3: {} + fetch-retry@6.0.0: {} + fflate@0.8.2: {} figures@3.2.0: @@ -9146,6 +9386,8 @@ snapshots: fn.name@1.1.0: {} + follow-redirects@1.15.6: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -9381,6 +9623,14 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 + hermes-estree@0.21.1: {} + + hermes-parser@0.21.1: + dependencies: + hermes-estree: 0.21.1 + + hono@4.4.0: {} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -9659,6 +9909,13 @@ snapshots: isobject@3.0.1: {} + isomorphic-fetch@3.0.0: + dependencies: + node-fetch: 2.7.0 + whatwg-fetch: 3.6.20 + transitivePeerDependencies: + - encoding + istanbul-lib-coverage@3.2.2: {} istanbul-lib-report@3.0.1: @@ -10044,6 +10301,8 @@ snapshots: nanoid@3.3.7: {} + nanoid@5.0.7: {} + napi-build-utils@1.0.2: {} natural-compare@1.4.0: {} @@ -10090,6 +10349,12 @@ snapshots: - '@babel/core' - babel-plugin-macros + nice-napi@1.0.2: + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.8.1 + optional: true + no-case@2.3.2: dependencies: lower-case: 1.1.4 @@ -10098,6 +10363,9 @@ snapshots: dependencies: semver: 7.6.0 + node-addon-api@3.2.1: + optional: true + node-addon-api@5.1.0: {} node-cron@3.0.3: @@ -10108,6 +10376,9 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-gyp-build@4.8.1: + optional: true + node-loader@2.0.0(webpack@5.91.0): dependencies: loader-utils: 2.0.4 @@ -10320,6 +10591,8 @@ snapshots: dependencies: callsites: 3.1.0 + parse-ms@3.0.0: {} + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -10363,6 +10636,10 @@ snapshots: picomatch@2.3.1: {} + piscina@4.5.1: + optionalDependencies: + nice-napi: 1.0.2 + pkcs7@1.0.4: dependencies: '@babel/runtime': 7.23.9 @@ -10420,6 +10697,13 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.2.0 + posthog-node@3.6.3: + dependencies: + axios: 1.7.2 + rusha: 0.8.14 + transitivePeerDependencies: + - debug + preact-render-to-string@5.2.3(preact@10.11.3): dependencies: preact: 10.11.3 @@ -10454,6 +10738,10 @@ snapshots: pretty-format@3.8.0: {} + pretty-ms@8.0.0: + dependencies: + parse-ms: 3.0.0 + prismjs@1.29.0: {} process@0.11.10: {} @@ -10629,6 +10917,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-reconciler@0.29.2(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + react-refresh@0.14.2: {} react-remove-scroll-bar@2.3.4(@types/react@18.3.3)(react@18.3.1): @@ -10794,6 +11088,8 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rusha@0.8.14: {} + rust-result@1.0.0: dependencies: individual: 2.0.0 @@ -10945,6 +11241,8 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 + sisteransi@1.0.5: {} + slash@3.0.0: {} smart-buffer@4.2.0: {} @@ -11098,6 +11396,8 @@ snapshots: optionalDependencies: '@babel/core': 7.24.6 + sugar-high@0.6.1: {} + sugarss@4.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -11218,6 +11518,8 @@ snapshots: dependencies: os-tmpdir: 1.0.2 + tmp@0.2.3: {} + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -11417,6 +11719,13 @@ snapshots: universalify@2.0.1: {} + unplugin@1.10.1: + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + update-browserslist-db@1.0.13(browserslist@4.23.0): dependencies: browserslist: 4.23.0 @@ -11617,6 +11926,8 @@ snapshots: webpack-sources@3.2.3: {} + webpack-virtual-modules@0.6.1: {} + webpack@5.91.0: dependencies: '@types/eslint-scope': 3.7.7 @@ -11652,6 +11963,8 @@ snapshots: dependencies: iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} + whatwg-mimetype@4.0.0: {} whatwg-url@14.0.0: @@ -11771,6 +12084,8 @@ snapshots: xmlchars@2.2.0: {} + xycolors@0.1.1: {} + y18n@5.0.8: {} yallist@3.1.1: {} From 464c06166c898ef5824852a83db80f67896e04cc Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 24 Aug 2024 15:52:44 +0200 Subject: [PATCH 2/6] fix: some parts not working because of missing skipTransform flag --- apps/nextjs/next.config.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/nextjs/next.config.mjs b/apps/nextjs/next.config.mjs index 8c15754fd..1e6a847e9 100644 --- a/apps/nextjs/next.config.mjs +++ b/apps/nextjs/next.config.mjs @@ -1,6 +1,8 @@ // Importing env files here to validate on build import "@homarr/auth/env.mjs"; + import MillionLint from "@million/lint"; + import "./src/env.mjs"; /** @type {import("next").NextConfig} */ @@ -29,4 +31,5 @@ const config = { }, }; -export default MillionLint.next({ rsc: true })(config); +// Skip transform is used because of webpack loader, without it for example 'Tooltip.Floating' will not work and show an error +export default MillionLint.next({ rsc: true, skipTransform: true })(config); From a93ca67f64397c3d2bff65f878f87a257ddd719c Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 24 Aug 2024 15:52:55 +0200 Subject: [PATCH 3/6] chore: address pull request feedback --- .gitignore | 2 +- .vscode/extensions.json | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 8daca000c..e81335cbf 100644 --- a/.gitignore +++ b/.gitignore @@ -55,4 +55,4 @@ yarn-error.log* apps/tasks/tasks.cjs apps/websocket/wssServer.cjs -apps/nextjs/.million/store.json +apps/nextjs/.million/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bd8370a14..0653e1f75 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,8 +3,6 @@ "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "yoavbls.pretty-ts-errors", - "lokalise.i18n-ally", - "million.million-lint", - + "million.million-lint" ] } From e3c380dd657a2bbca227711d86ab5deaf894c7b0 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 24 Aug 2024 15:56:45 +0200 Subject: [PATCH 4/6] chore: make with-million-lint method that can be used when debugging performance --- apps/nextjs/next.config.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/nextjs/next.config.mjs b/apps/nextjs/next.config.mjs index 1e6a847e9..7d53a70db 100644 --- a/apps/nextjs/next.config.mjs +++ b/apps/nextjs/next.config.mjs @@ -32,4 +32,6 @@ const config = { }; // Skip transform is used because of webpack loader, without it for example 'Tooltip.Floating' will not work and show an error -export default MillionLint.next({ rsc: true, skipTransform: true })(config); +const withMillionLint = MillionLint.next({ rsc: true, skipTransform: true, telemetry: false }); + +export default config; From e80885a3d04150a4c8c884c2b4e794a00a7ecd57 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 24 Aug 2024 15:58:37 +0200 Subject: [PATCH 5/6] fix: format issue --- apps/nextjs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 3c470d940..48efaae12 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -86,4 +86,4 @@ "typescript": "^5.5.4" }, "prettier": "@homarr/prettier-config" -} \ No newline at end of file +} From a95dc45086d0a611e05c2211deae5bbf317a7f64 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Thu, 29 Aug 2024 22:01:52 +0200 Subject: [PATCH 6/6] fix: format issue --- apps/nextjs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 6e79829cb..0f168570c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -88,4 +88,4 @@ "typescript": "^5.5.4" }, "prettier": "@homarr/prettier-config" -} \ No newline at end of file +}