diff --git a/packages/client/package.json b/packages/client/package.json index 9d87246b..58aeb398 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -40,7 +40,7 @@ }, "type": "module", "dependencies": { - "@a-type/auth-client": "1.0.6", + "@a-type/auth-client": "1.0.10", "@a-type/utils": "1.1.3", "@apollo/client": "3.10.8", "@biscuits/apps": "workspace:*", diff --git a/packages/client/src/fetch.ts b/packages/client/src/fetch.ts index 4e871637..50c05a26 100644 --- a/packages/client/src/fetch.ts +++ b/packages/client/src/fetch.ts @@ -15,6 +15,9 @@ export const fetch = createFetch({ } return false; }, + headers: { + 'x-csrf-token': 'csrf', + }, }); export function login() { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a61e505..e0d69302 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -293,7 +293,7 @@ importers: version: 3.2.0 jotai: specifier: ^1.13.0 - version: 1.13.1(@babel/core@7.25.2)(react@18.3.1) + version: 1.13.1(@babel/core@7.24.0)(react@18.3.1) just-mix: specifier: ^0.3.3 version: 0.3.3 @@ -429,7 +429,7 @@ importers: version: 5.1.5 vite-plugin-checker: specifier: ^0.6.2 - version: 0.6.4(typescript@5.5.3)(vite@5.1.5) + version: 0.6.4(eslint@8.55.0)(typescript@5.5.3)(vite@5.1.5) vite-plugin-circular-dependency: specifier: ^0.2.1 version: 0.2.1(rollup@2.79.1) @@ -738,7 +738,7 @@ importers: version: 5.5.3 vite: specifier: 5.3.1 - version: 5.3.1 + version: 5.3.1(@types/node@20.12.7) vite-plugin-pwa: specifier: ^0.20.0 version: 0.20.0(vite@5.3.1)(workbox-build@7.1.1)(workbox-window@7.1.0) @@ -1062,7 +1062,7 @@ importers: version: 0.58.8(postcss@8.4.41)(vite@5.3.1) vite: specifier: ^5.0.10 - version: 5.3.1 + version: 5.3.1(@types/node@20.12.7) apps/wish-wash/scanning: dependencies: @@ -1175,7 +1175,7 @@ importers: version: 5.5.3 vite: specifier: 5.3.1 - version: 5.3.1 + version: 5.3.1(@types/node@20.12.7) vite-plugin-circular-dependency: specifier: ^0.2.1 version: 0.2.1(rollup@2.79.1) @@ -1190,7 +1190,7 @@ importers: version: 1.1.7(csstype@3.1.3)(react-dom@18.3.1)(react@18.3.1) '@astrojs/check': specifier: ^0.5.10 - version: 0.5.10(typescript@5.5.3) + version: 0.5.10(prettier@3.2.5)(typescript@5.5.3) '@astrojs/mdx': specifier: ^2.3.1 version: 2.3.1(astro@4.7.1) @@ -1205,7 +1205,7 @@ importers: version: link:../packages/client '@unocss/astro': specifier: ^0.59.4 - version: 0.59.4(vite@5.4.0) + version: 0.59.4(vite@5.3.1) '@unocss/reset': specifier: ^0.59.4 version: 0.59.4 @@ -1220,7 +1220,7 @@ importers: version: 5.5.3 unocss: specifier: ^0.59.4 - version: 0.59.4(postcss@8.4.41)(vite@5.4.0) + version: 0.59.4(postcss@8.4.41)(vite@5.3.1) cdk: dependencies: @@ -1276,8 +1276,8 @@ importers: packages/client: dependencies: '@a-type/auth-client': - specifier: 1.0.6 - version: 1.0.6(@a-type/ui@1.1.7)(react@18.3.1) + specifier: 1.0.10 + version: 1.0.10(@a-type/ui@1.1.7)(react@18.3.1) '@a-type/utils': specifier: 1.1.3 version: 1.1.3 @@ -1335,10 +1335,10 @@ importers: version: 5.5.3 unocss: specifier: ^0.58.0 - version: 0.58.8(postcss@8.4.41)(rollup@2.79.1)(vite@5.4.0) + version: 0.58.8(postcss@8.4.41)(rollup@2.79.1)(vite@5.3.1) vite-plugin-pwa: specifier: 0.19.2 - version: 0.19.2(vite@5.4.0)(workbox-build@7.1.1)(workbox-window@7.1.0) + version: 0.19.2(vite@5.3.1)(workbox-build@7.1.1)(workbox-window@7.1.0) packages/db: dependencies: @@ -1416,6 +1416,9 @@ importers: '@googlemaps/google-maps-services-js': specifier: ^3.3.42 version: 3.3.42 + '@graphql-yoga/plugin-csrf-prevention': + specifier: ^3.6.3 + version: 3.6.3(graphql-yoga@5.1.1) '@paralleldrive/cuid2': specifier: 2.2.2 version: 2.2.2 @@ -1541,8 +1544,8 @@ importers: web: dependencies: '@a-type/auth-client': - specifier: 1.0.9 - version: 1.0.9(@a-type/ui@1.1.7)(react@18.3.1) + specifier: 1.0.10 + version: 1.0.10(@a-type/ui@1.1.7)(react@18.3.1) '@a-type/ui': specifier: ^1.1.7 version: 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(csstype@3.1.3)(react-dom@18.3.1)(react@18.3.1) @@ -1708,8 +1711,8 @@ packages: graphql: 16.9.0 typescript: 5.5.3 - /@a-type/auth-client@1.0.6(@a-type/ui@1.1.7)(react@18.3.1): - resolution: {integrity: sha512-AGKAEpExelRupmveEVfYzpwEMVwAPJ6fCqdpJKQeL41rHyCY/CpwAF4+XG7AEFgU/1EzEjr00MYEC1QQNJZzzw==} + /@a-type/auth-client@1.0.10(@a-type/ui@1.1.7)(react@18.3.1): + resolution: {integrity: sha512-MurwV86uZa6pipu5KwTYh/wZSKyjLoUoGkHGoNvjdiRbl4OW59Op8fhWOJ99FdeUvM3/Yg5O2bwx4baCpPiriA==} peerDependencies: '@a-type/ui': ^0.8.0 react: ^18 @@ -1718,16 +1721,6 @@ packages: react: 18.3.1 dev: false - /@a-type/auth-client@1.0.9(@a-type/ui@1.1.7)(react@18.3.1): - resolution: {integrity: sha512-NkdpdhVu7c6YQyvoEKaF5jYjItkhPdTNMPuY2TtogvwL+XcPfBpOW3zLpD3xSyzjhbVRYuuRjuGjnWjWOnxz5g==} - peerDependencies: - '@a-type/ui': ^0.8.0 - react: ^18 - dependencies: - '@a-type/ui': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(csstype@3.1.3)(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - dev: false - /@a-type/auth@0.6.9: resolution: {integrity: sha512-NVCeNXA5OBHq1yDidhrZVduPrYi8kBHeT9xj+qm3pfmmcy+Cbnjm0yXb/dYYo5lSv4A3gIB9o8xDpJxmV2J7kA==} dependencies: @@ -2182,13 +2175,13 @@ packages: - '@types/react' dev: false - /@astrojs/check@0.5.10(typescript@5.5.3): + /@astrojs/check@0.5.10(prettier@3.2.5)(typescript@5.5.3): resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.8.4(typescript@5.5.3) + '@astrojs/language-server': 2.8.4(prettier@3.2.5)(typescript@5.5.3) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 @@ -2207,7 +2200,7 @@ packages: resolution: {integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==} dev: false - /@astrojs/language-server@2.8.4(typescript@5.5.3): + /@astrojs/language-server@2.8.4(prettier@3.2.5)(typescript@5.5.3): resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} hasBin: true peerDependencies: @@ -2227,10 +2220,11 @@ packages: '@volar/language-service': 2.1.6 '@volar/typescript': 2.1.6 fast-glob: 3.3.2 + prettier: 3.2.5 volar-service-css: 0.0.34(@volar/language-service@2.1.6) volar-service-emmet: 0.0.34(@volar/language-service@2.1.6) volar-service-html: 0.0.34(@volar/language-service@2.1.6) - volar-service-prettier: 0.0.34(@volar/language-service@2.1.6) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.6)(prettier@3.2.5) volar-service-typescript: 0.0.34(@volar/language-service@2.1.6) volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.6) vscode-html-languageservice: 5.2.0 @@ -3152,7 +3146,6 @@ packages: dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 - dev: true /@babel/code-frame@7.24.2: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} @@ -3184,6 +3177,7 @@ packages: /@babel/compat-data@7.25.2: resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/core@7.24.0: resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} @@ -3206,7 +3200,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/core@7.24.5: resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} @@ -3297,6 +3290,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/generator@7.23.6: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} @@ -3306,7 +3300,6 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - dev: true /@babel/generator@7.24.10: resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} @@ -3345,6 +3338,7 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + dev: true /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} @@ -3408,6 +3402,7 @@ packages: browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 + dev: true /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.24.0): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} @@ -3583,7 +3578,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.7 - dev: true /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} @@ -3613,7 +3607,6 @@ packages: '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - dev: true /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} @@ -3720,6 +3713,7 @@ packages: '@babel/traverse': 7.25.3 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} @@ -3824,7 +3818,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.7 - dev: true /@babel/helper-simple-access@7.24.5: resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} @@ -3863,7 +3856,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.7 - dev: true /@babel/helper-split-export-declaration@7.24.5: resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} @@ -3954,7 +3946,6 @@ packages: '@babel/types': 7.24.7 transitivePeerDependencies: - supports-color - dev: true /@babel/helpers@7.24.5: resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} @@ -3988,6 +3979,7 @@ packages: dependencies: '@babel/template': 7.25.0 '@babel/types': 7.25.2 + dev: true /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} @@ -3996,7 +3988,6 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/highlight@7.24.2: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} @@ -4029,7 +4020,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.24.7 - dev: true /@babel/parser@7.24.1: resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} @@ -4066,6 +4056,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.25.2 + dev: true /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2): resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} @@ -4130,7 +4121,6 @@ packages: /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: @@ -5295,6 +5285,7 @@ packages: '@babel/code-frame': 7.24.7 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 + dev: true /@babel/traverse@7.24.0: resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} @@ -5312,7 +5303,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/traverse@7.24.5: resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} @@ -5380,6 +5370,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/types@7.23.4: resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} @@ -5454,6 +5445,7 @@ packages: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + dev: true /@clack/core@0.2.1: resolution: {integrity: sha512-MIZMbzA9IOdjXDAKh2/gfTic3yt554WFXszjjpVfI/Rs5/ofoEjuvdOE2amDQeVnGTHfRL0QB1SBPnoxyliuuA==} @@ -6596,7 +6588,6 @@ packages: dependencies: eslint: 8.55.0 eslint-visitor-keys: 3.4.3 - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@9.1.1): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -6627,7 +6618,6 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: false /@eslint/eslintrc@3.0.2: resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} @@ -6649,7 +6639,6 @@ packages: /@eslint/js@8.55.0: resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false /@eslint/js@9.1.1: resolution: {integrity: sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==} @@ -6853,6 +6842,15 @@ packages: tslib: 2.6.3 dev: false + /@graphql-yoga/plugin-csrf-prevention@3.6.3(graphql-yoga@5.1.1): + resolution: {integrity: sha512-XIRYDRErzU8UlM0s0sq1iseBzi6wRJLjnGlNaSTfYG9YgsAuFfmMpb1OQSMKEifaiBgBhcv8R9cLUBg6B7zkRg==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql-yoga: ^5.6.3 + dependencies: + graphql-yoga: 5.1.1(graphql@16.8.1) + dev: false + /@graphql-yoga/subscription@5.0.0: resolution: {integrity: sha512-Ri7sK8hmxd/kwaEa0YT8uqQUb2wOLsmBMxI90QDyf96lzOMJRgBuNYoEkU1pSgsgmW2glceZ96sRYfaXqwVxUw==} engines: {node: '>=18.0.0'} @@ -6880,7 +6878,6 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: false /@humanwhocodes/config-array@0.13.0: resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} @@ -6899,7 +6896,6 @@ packages: /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - dev: false /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} @@ -11959,13 +11955,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-android-arm-eabi@4.20.0: - resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - /@rollup/rollup-android-arm-eabi@4.5.2: resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==} cpu: [arm] @@ -11988,13 +11977,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.20.0: - resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - /@rollup/rollup-android-arm64@4.5.2: resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==} cpu: [arm64] @@ -12017,13 +11999,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.20.0: - resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - /@rollup/rollup-darwin-arm64@4.5.2: resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==} cpu: [arm64] @@ -12046,13 +12021,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.20.0: - resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - /@rollup/rollup-darwin-x64@4.5.2: resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==} cpu: [x64] @@ -12075,13 +12043,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.20.0: - resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.5.2: resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==} cpu: [arm] @@ -12104,13 +12065,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm-musleabihf@4.20.0: - resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.17.2: resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} cpu: [arm64] @@ -12125,13 +12079,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.20.0: - resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.5.2: resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==} cpu: [arm64] @@ -12154,13 +12101,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.20.0: - resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.5.2: resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==} cpu: [arm64] @@ -12183,13 +12123,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.20.0: - resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.17.2: resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} cpu: [riscv64] @@ -12204,13 +12137,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.20.0: - resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-s390x-gnu@4.17.2: resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} cpu: [s390x] @@ -12225,13 +12151,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.20.0: - resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.17.2: resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} cpu: [x64] @@ -12246,13 +12165,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.20.0: - resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.5.2: resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==} cpu: [x64] @@ -12275,13 +12187,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.20.0: - resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-x64-musl@4.5.2: resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==} cpu: [x64] @@ -12304,13 +12209,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.20.0: - resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.5.2: resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==} cpu: [arm64] @@ -12333,13 +12231,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.20.0: - resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.5.2: resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==} cpu: [ia32] @@ -12362,13 +12253,6 @@ packages: requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.20.0: - resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.5.2: resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==} cpu: [x64] @@ -14309,7 +14193,6 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: false /@unocss/astro@0.58.5(rollup@2.79.1)(vite@5.1.5): resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==} @@ -14343,7 +14226,7 @@ packages: - rollup dev: false - /@unocss/astro@0.58.8(rollup@2.79.1)(vite@5.4.0): + /@unocss/astro@0.58.8(rollup@2.79.1)(vite@5.3.1): resolution: {integrity: sha512-pAjsKuVg41dXNPWpFKx/SDxz198Miu/hqAL4lMkE2ITY+nFgqt9SH1lGS9P+VzElrHZ+Uqwmmtw8SjaT2EfCMA==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -14353,8 +14236,8 @@ packages: dependencies: '@unocss/core': 0.58.8 '@unocss/reset': 0.58.8 - '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.4.0) - vite: 5.4.0 + '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: true @@ -14385,8 +14268,8 @@ packages: dependencies: '@unocss/core': 0.58.8 '@unocss/reset': 0.58.8 - '@unocss/vite': 0.58.8(vite@5.3.1) - vite: 5.3.1 + '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: true @@ -14407,7 +14290,7 @@ packages: - rollup dev: true - /@unocss/astro@0.59.4(vite@5.4.0): + /@unocss/astro@0.59.4(vite@5.3.1): resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -14417,8 +14300,8 @@ packages: dependencies: '@unocss/core': 0.59.4 '@unocss/reset': 0.59.4 - '@unocss/vite': 0.59.4(vite@5.4.0) - vite: 5.4.0 + '@unocss/vite': 0.59.4(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -14450,7 +14333,7 @@ packages: '@unocss/core': 0.61.0 '@unocss/reset': 0.61.0 '@unocss/vite': 0.61.0(rollup@2.79.1)(vite@5.3.1) - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -15363,7 +15246,7 @@ packages: - rollup dev: false - /@unocss/vite@0.58.8(rollup@2.79.1)(vite@5.4.0): + /@unocss/vite@0.58.8(rollup@2.79.1)(vite@5.3.1): resolution: {integrity: sha512-Eh0cG1I/BivvhUPdFxPi/z7Q+LMDnjHgL/dIE6/tmJK9rerdGeOBCAXxEetZfvBrOhWVnsOW/ydesyAhkzRg3w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -15378,7 +15261,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.4.0 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: true @@ -15403,26 +15286,6 @@ packages: - rollup dev: true - /@unocss/vite@0.58.8(vite@5.3.1): - resolution: {integrity: sha512-Eh0cG1I/BivvhUPdFxPi/z7Q+LMDnjHgL/dIE6/tmJK9rerdGeOBCAXxEetZfvBrOhWVnsOW/ydesyAhkzRg3w==} - peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 - dependencies: - '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.0(rollup@2.79.1) - '@unocss/config': 0.58.8 - '@unocss/core': 0.58.8 - '@unocss/inspector': 0.58.8 - '@unocss/scope': 0.58.8 - '@unocss/transformer-directives': 0.58.8 - chokidar: 3.6.0 - fast-glob: 3.3.2 - magic-string: 0.30.10 - vite: 5.3.1 - transitivePeerDependencies: - - rollup - dev: true - /@unocss/vite@0.59.4(vite@5.2.13): resolution: {integrity: sha512-q7GN7vkQYn79n7vYIUlaa7gXGwc7pk0Qo3z3ZFwWGE43/DtZnn2Hwl5UjgBAgi9McA+xqHJEHRsJnI7HJPHUYA==} peerDependencies: @@ -15443,7 +15306,7 @@ packages: - rollup dev: true - /@unocss/vite@0.59.4(vite@5.4.0): + /@unocss/vite@0.59.4(vite@5.3.1): resolution: {integrity: sha512-q7GN7vkQYn79n7vYIUlaa7gXGwc7pk0Qo3z3ZFwWGE43/DtZnn2Hwl5UjgBAgi9McA+xqHJEHRsJnI7HJPHUYA==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -15458,7 +15321,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.4.0 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -15498,7 +15361,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -15688,7 +15551,7 @@ packages: vite: ^4 || ^5 dependencies: '@swc/core': 1.7.0 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -16328,7 +16191,7 @@ packages: tsconfck: 3.0.3(typescript@5.5.3) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) vitefu: 0.2.5(vite@5.3.1) which-pm: 2.1.1 yargs-parser: 21.1.1 @@ -16667,6 +16530,7 @@ packages: electron-to-chromium: 1.5.6 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + dev: true /buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -16783,6 +16647,7 @@ packages: /caniuse-lite@1.0.30001651: resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + dev: true /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -17621,7 +17486,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: false /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -17751,6 +17615,7 @@ packages: /electron-to-chromium@1.5.6: resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} + dev: true /emmet@2.4.7: resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} @@ -18738,7 +18603,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: false /eslint-scope@8.0.1: resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} @@ -18802,7 +18666,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: false /eslint@9.1.1: resolution: {integrity: sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==} @@ -18863,7 +18726,6 @@ packages: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - dev: false /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -19111,7 +18973,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 - dev: false /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -19192,7 +19053,6 @@ packages: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 - dev: false /flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -19509,7 +19369,6 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: false /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} @@ -19668,7 +19527,6 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: false /graphql-scalars@1.22.4(graphql@16.8.1): resolution: {integrity: sha512-ILnv7jq5VKHLUyoaTFX7lgYrjCd6vTee9i8/B+D4zJKJT5TguOl0KkpPEbXHjmeor8AZYrVsrYUHdqRBMX1pjA==} @@ -20466,7 +20324,7 @@ packages: resolution: {integrity: sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==} dev: false - /jotai@1.13.1(@babel/core@7.25.2)(react@18.3.1): + /jotai@1.13.1(@babel/core@7.24.0)(react@18.3.1): resolution: {integrity: sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw==} engines: {node: '>=12.20.0'} peerDependencies: @@ -20506,7 +20364,7 @@ packages: jotai-zustand: optional: true dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.24.0 react: 18.3.1 dev: false @@ -21818,6 +21676,7 @@ packages: /node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + dev: true /nodemailer@6.9.9: resolution: {integrity: sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==} @@ -23312,31 +23171,6 @@ packages: '@rollup/rollup-win32-x64-msvc': 4.19.0 fsevents: 2.3.3 - /rollup@4.20.0: - resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.20.0 - '@rollup/rollup-android-arm64': 4.20.0 - '@rollup/rollup-darwin-arm64': 4.20.0 - '@rollup/rollup-darwin-x64': 4.20.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 - '@rollup/rollup-linux-arm-musleabihf': 4.20.0 - '@rollup/rollup-linux-arm64-gnu': 4.20.0 - '@rollup/rollup-linux-arm64-musl': 4.20.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 - '@rollup/rollup-linux-riscv64-gnu': 4.20.0 - '@rollup/rollup-linux-s390x-gnu': 4.20.0 - '@rollup/rollup-linux-x64-gnu': 4.20.0 - '@rollup/rollup-linux-x64-musl': 4.20.0 - '@rollup/rollup-win32-arm64-msvc': 4.20.0 - '@rollup/rollup-win32-ia32-msvc': 4.20.0 - '@rollup/rollup-win32-x64-msvc': 4.20.0 - fsevents: 2.3.3 - /rollup@4.5.2: resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -24546,7 +24380,6 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: false /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -24912,7 +24745,7 @@ packages: - supports-color dev: false - /unocss@0.58.8(postcss@8.4.41)(rollup@2.79.1)(vite@5.4.0): + /unocss@0.58.8(postcss@8.4.41)(rollup@2.79.1)(vite@5.3.1): resolution: {integrity: sha512-oMWCEgwvxJcF1BZxxkbTyTd83xtArsza3DModUrJrPndnpOVVz9fZ5g6wcrDbVpv6+cvRrgMCeKMlWKt9WIIsA==} engines: {node: '>=14'} peerDependencies: @@ -24924,7 +24757,7 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.58.8(rollup@2.79.1)(vite@5.4.0) + '@unocss/astro': 0.58.8(rollup@2.79.1)(vite@5.3.1) '@unocss/cli': 0.58.8(rollup@2.79.1) '@unocss/core': 0.58.8 '@unocss/extractor-arbitrary-variants': 0.58.8 @@ -24943,8 +24776,8 @@ packages: '@unocss/transformer-compile-class': 0.58.8 '@unocss/transformer-directives': 0.58.8 '@unocss/transformer-variant-group': 0.58.8 - '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.4.0) - vite: 5.4.0 + '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -25021,8 +24854,8 @@ packages: '@unocss/transformer-compile-class': 0.58.8 '@unocss/transformer-directives': 0.58.8 '@unocss/transformer-variant-group': 0.58.8 - '@unocss/vite': 0.58.8(vite@5.3.1) - vite: 5.3.1 + '@unocss/vite': 0.58.8(rollup@2.79.1)(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -25068,7 +24901,7 @@ packages: - supports-color dev: true - /unocss@0.59.4(postcss@8.4.41)(vite@5.4.0): + /unocss@0.59.4(postcss@8.4.41)(vite@5.3.1): resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} engines: {node: '>=14'} peerDependencies: @@ -25080,7 +24913,7 @@ packages: vite: optional: true dependencies: - '@unocss/astro': 0.59.4(vite@5.4.0) + '@unocss/astro': 0.59.4(vite@5.3.1) '@unocss/cli': 0.59.4 '@unocss/core': 0.59.4 '@unocss/extractor-arbitrary-variants': 0.59.4 @@ -25099,8 +24932,8 @@ packages: '@unocss/transformer-compile-class': 0.59.4 '@unocss/transformer-directives': 0.59.4 '@unocss/transformer-variant-group': 0.59.4 - '@unocss/vite': 0.59.4(vite@5.4.0) - vite: 5.4.0 + '@unocss/vite': 0.59.4(vite@5.3.1) + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -25178,7 +25011,7 @@ packages: '@unocss/transformer-directives': 0.61.0 '@unocss/transformer-variant-group': 0.61.0 '@unocss/vite': 0.61.0(rollup@2.79.1)(vite@5.3.1) - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -25235,6 +25068,7 @@ packages: browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 + dev: true /upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -25485,7 +25319,7 @@ packages: - terser dev: true - /vite-plugin-checker@0.6.4(typescript@5.5.3)(vite@5.1.5): + /vite-plugin-checker@0.6.4(eslint@8.55.0)(typescript@5.5.3)(vite@5.1.5): resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: @@ -25521,6 +25355,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 commander: 8.3.0 + eslint: 8.55.0 fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 @@ -25562,7 +25397,7 @@ packages: - supports-color dev: true - /vite-plugin-pwa@0.19.2(vite@5.4.0)(workbox-build@7.1.1)(workbox-window@7.1.0): + /vite-plugin-pwa@0.19.2(vite@5.3.1)(workbox-build@7.1.1)(workbox-window@7.1.0): resolution: {integrity: sha512-LSQJFPxCAQYbRuSyc9EbRLRqLpaBA9onIZuQFomfUYjWSgHuQLonahetDlPSC9zsxmkSEhQH8dXZN8yL978h3w==} engines: {node: '>=16.0.0'} peerDependencies: @@ -25577,7 +25412,7 @@ packages: debug: 4.3.4 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.4.0 + vite: 5.3.1(@types/node@20.12.7) workbox-build: 7.1.1 workbox-window: 7.1.0 transitivePeerDependencies: @@ -25643,7 +25478,7 @@ packages: debug: 4.3.5 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) workbox-build: 7.1.1 workbox-window: 6.6.1 transitivePeerDependencies: @@ -25665,7 +25500,7 @@ packages: debug: 4.3.5 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) workbox-build: 7.1.1 workbox-window: 7.1.0 transitivePeerDependencies: @@ -25845,40 +25680,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vite@5.3.1: - resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.21.5 - postcss: 8.4.39 - rollup: 4.19.0 - optionalDependencies: - fsevents: 2.3.3 - /vite@5.3.1(@types/node@20.12.7): resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -25913,44 +25714,6 @@ packages: rollup: 4.19.0 optionalDependencies: fsevents: 2.3.3 - dev: true - - /vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.20.0 - optionalDependencies: - fsevents: 2.3.3 /vitefu@0.2.5(vite@5.3.1): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} @@ -25960,7 +25723,7 @@ packages: vite: optional: true dependencies: - vite: 5.3.1 + vite: 5.3.1(@types/node@20.12.7) dev: false /vitest@0.22.1: @@ -26100,7 +25863,7 @@ packages: vscode-uri: 3.0.8 dev: false - /volar-service-prettier@0.0.34(@volar/language-service@2.1.6): + /volar-service-prettier@0.0.34(@volar/language-service@2.1.6)(prettier@3.2.5): resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -26112,6 +25875,7 @@ packages: optional: true dependencies: '@volar/language-service': 2.1.6 + prettier: 3.2.5 vscode-uri: 3.0.8 dev: false diff --git a/server/package.json b/server/package.json index b7895281..ac55a0e7 100644 --- a/server/package.json +++ b/server/package.json @@ -30,6 +30,7 @@ "@gnocchi.biscuits/hub": "workspace:*", "@gnocchi.biscuits/scanning": "workspace:*", "@googlemaps/google-maps-services-js": "^3.3.42", + "@graphql-yoga/plugin-csrf-prevention": "^3.6.3", "@paralleldrive/cuid2": "2.2.2", "@pothos/core": "^3.41.0", "@pothos/plugin-dataloader": "^3.17.2", @@ -40,8 +41,8 @@ "@verdant-web/server": "3.3.2", "@whatwg-node/server": "^0.9.22", "@wish-wash.biscuits/hub": "workspace:*", - "@wish-wash.biscuits/verdant": "workspace:*", "@wish-wash.biscuits/scanning": "workspace:*", + "@wish-wash.biscuits/verdant": "workspace:*", "better-sqlite3": "^9.1.1", "change-case": "5.4.4", "cookie": "^0.6.0", diff --git a/server/src/routers/graphql.ts b/server/src/routers/graphql.ts index 964a666c..a9cc57dd 100644 --- a/server/src/routers/graphql.ts +++ b/server/src/routers/graphql.ts @@ -1,5 +1,6 @@ import { Router } from 'itty-router'; import { Plugin, createYoga, maskError } from 'graphql-yoga'; +import { useCSRFPrevention } from '@graphql-yoga/plugin-csrf-prevention'; import { db } from '@biscuits/db'; import { schema } from '../graphql/schema.js'; import { GQLContext } from '../graphql/context.js'; @@ -52,7 +53,12 @@ const yoga = createYoga({ return maskError(error, message, isDev); }, }, - plugins: [applyHeaders()], + plugins: [ + applyHeaders(), + useCSRFPrevention({ + requestHeaders: ['x-csrf-token'], + }), + ], fetchAPI: { Response: Response, Request: Request, diff --git a/web/package.json b/web/package.json index 4c0093d3..82cd44ef 100644 --- a/web/package.json +++ b/web/package.json @@ -10,7 +10,7 @@ "up-ui": "cd .. && pnpm up-ui" }, "dependencies": { - "@a-type/auth-client": "1.0.9", + "@a-type/auth-client": "1.0.10", "@a-type/ui": "^1.1.7", "@biscuits/apps": "workspace:*", "@biscuits/client": "workspace:*", diff --git a/web/src/components/AppsGrid.tsx b/web/src/components/AppsGrid.tsx deleted file mode 100644 index 6dd483af..00000000 --- a/web/src/components/AppsGrid.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import classNames from 'classnames'; -import { AppId, AppManifest, apps } from '@biscuits/apps'; - -export function AppsGrid() { - return ( -
- {apps.map((app) => ( - - ))} -
- ); -} - -function AppCard({ app }: { app: AppManifest }) { - const url = import.meta.env.DEV ? app.devOriginOverride : app.url; - return ( - -
-

- {app.name} -

-
-
{app.description}
-
- ); -} diff --git a/web/src/components/help/Footer.tsx b/web/src/components/help/Footer.tsx index 4c72d639..6ee98f0e 100644 --- a/web/src/components/help/Footer.tsx +++ b/web/src/components/help/Footer.tsx @@ -23,6 +23,7 @@ export function Footer({ className }: FooterProps) {
Contact + Made in Raleigh, NC
); diff --git a/web/src/components/promo/PhoneDemo.tsx b/web/src/components/promo/PhoneDemo.tsx index 3546db3e..ce569212 100644 --- a/web/src/components/promo/PhoneDemo.tsx +++ b/web/src/components/promo/PhoneDemo.tsx @@ -24,13 +24,13 @@ export function PhoneDemo({ return (
Scratch-made apps -

- in Raleigh, NC -

Biscuits apps are designed to make your life easier. Free to use forever, no ads, no tracking. Learn how. @@ -65,7 +57,6 @@ export default function HomePage() { to get started.

- {/* */} {apps.map((app, index) => !app.prerelease || import.meta.env.DEV ? (