From 62fac54ef358d7a21e8d38e579ad32ddd3fa2c95 Mon Sep 17 00:00:00 2001 From: ndom91 Date: Sat, 13 Apr 2024 18:32:50 +0200 Subject: [PATCH 1/5] chore(docs): inline DemoCards component --- docs/components/DemoCards/index.tsx | 93 ------------- .../OAuthProviderSelect.tsx | 2 +- docs/pages/getting-started/index.mdx | 131 +++++++++++++++++- 3 files changed, 130 insertions(+), 96 deletions(-) delete mode 100644 docs/components/DemoCards/index.tsx diff --git a/docs/components/DemoCards/index.tsx b/docs/components/DemoCards/index.tsx deleted file mode 100644 index 33da245870..0000000000 --- a/docs/components/DemoCards/index.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import { Link } from "@/components/Link" -import { Tooltip } from "@/components/Tooltip" -import { Plus } from "@phosphor-icons/react/dist/csr/Plus" -import { ArrowSquareOut } from "@phosphor-icons/react/dist/csr/ArrowSquareOut" -import { GithubLogo } from "@phosphor-icons/react/dist/csr/GithubLogo" -import { Flask } from "@phosphor-icons/react/dist/csr/Flask" - -export function DemoCards() { - return ( -
- {[ - { - href: "https://next-auth-example.vercel.app/", - img: "/img/etc/nextjs.svg", - name: "Next.js", - githubHref: "https://github.com/nextauthjs/next-auth-example", - logoWidth: "40", - wip: false, - }, - { - href: "https://sveltekit-auth-example.vercel.app/", - img: "/img/etc/sveltekit.svg", - name: "SvelteKit", - githubHref: "https://github.com/nextauthjs/sveltekit-auth-example", - logoWidth: "35", - wip: true, - }, - { - href: "https://authjs-express-dev-app.onrender.com/", - img: "/img/etc/express.svg", - name: "Express", - logoWidth: "40", - githubHref: "https://github.com/nextauthjs/express-auth-example", - wip: true, - }, - ].map(({ href, name, img, logoWidth, wip, githubHref }) => ( -
- - {name} -
{name}
- {wip ? ( -
- -
- ) : null} - -
- - - - - - - - - - -
-
- ))} - - -
Add New
- -
- ) -} diff --git a/docs/components/OAuthProviderInstructions/OAuthProviderSelect.tsx b/docs/components/OAuthProviderInstructions/OAuthProviderSelect.tsx index c6bb89be7f..e9f80de371 100644 --- a/docs/components/OAuthProviderInstructions/OAuthProviderSelect.tsx +++ b/docs/components/OAuthProviderInstructions/OAuthProviderSelect.tsx @@ -24,7 +24,7 @@ export function OAuthProviderSelect() { ) => handleSearchItem(e.target.value) } diff --git a/docs/pages/getting-started/index.mdx b/docs/pages/getting-started/index.mdx index 3183bfab40..b8a2fe97ca 100644 --- a/docs/pages/getting-started/index.mdx +++ b/docs/pages/getting-started/index.mdx @@ -1,8 +1,12 @@ import { Callout } from "nextra/components" import { ListDisclosure } from "@/components/ListDisclosure" import { Link } from "@/components/Link" +import { Tooltip } from "@/components/Tooltip" import { Screenshot } from "@/components/Screenshot" -import { DemoCards } from "@/components/DemoCards" +import { Plus } from "@phosphor-icons/react/dist/csr/Plus" +import { ArrowSquareOut } from "@phosphor-icons/react/dist/csr/ArrowSquareOut" +import { GithubLogo } from "@phosphor-icons/react/dist/csr/GithubLogo" +import { Flask } from "@phosphor-icons/react/dist/csr/Flask" import manifest from "@/data/manifest.json" # What is Auth.js? @@ -11,7 +15,130 @@ Auth.js is a runtime agnostic library based on standard Web APIs that deeply int Select your framework of choice to get started, or view the example application deployment or repository with the buttons below. - +
+
+ + Next.js Logo +
Next.js
+ +
+ + + + + + + + + + +
+
+
+ + SvelteKit Logo +
SvelteKit
+
+ +
+ +
+ + + + + + + + + + +
+
+
+ + Express Logo +
Express
+
+ +
+ +
+ + + + + + + + + + +
+
+ + +
Add New
+ +
Check the [integrations page](/getting-started/integrations) for all supported packages. We are working on supporting more frameworks, but you can create own or help us create one for your favorite framework. From d9d52ecfb6e998013aa34b93c6d00aecac793aa4 Mon Sep 17 00:00:00 2001 From: ndom91 Date: Sat, 13 Apr 2024 18:39:12 +0200 Subject: [PATCH 2/5] chore(docs): update pnpm-lock --- pnpm-lock.yaml | 679 +++++++++++++++++++++++++------------------------ 1 file changed, 352 insertions(+), 327 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6bc04edd3a..7a4e138071 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,41 +169,41 @@ importers: docs: dependencies: '@ariakit/react': - specifier: ^0.4.3 - version: 0.4.3(react-dom@18.2.0)(react@18.2.0) + specifier: ^0.4.5 + version: 0.4.5(react-dom@18.2.0)(react@18.2.0) '@ark-ui/react': specifier: ^2.2.3 version: 2.2.3(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0) '@inkeep/widgets': - specifier: ^0.2.267 - version: 0.2.267(@internationalized/date@3.5.2)(@types/react@18.2.67)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + specifier: ^0.2.272 + version: 0.2.272(@internationalized/date@3.5.2)(@types/react@18.2.78)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@next/third-parties': - specifier: ^14.1.3 - version: 14.1.3(next@14.2.0-canary.61)(react@18.2.0) + specifier: ^14.2.1 + version: 14.2.1(next@14.2.1)(react@18.2.0) '@phosphor-icons/react': - specifier: ^2.0.15 - version: 2.0.15(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.1.4 + version: 2.1.4(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-accordion': specifier: ^1.1.2 - version: 1.1.2(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) + version: 1.1.2(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tabs': specifier: ^1.0.4 - version: 1.0.4(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) '@vercel/analytics': specifier: ^1.2.2 - version: 1.2.2(next@14.2.0-canary.61)(react@18.2.0) + version: 1.2.2(next@14.2.1)(react@18.2.0) classnames: specifier: ^2.5.1 version: 2.5.1 next: - specifier: 14.2.0-canary.61 - version: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + specifier: 14.2.1 + version: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) nextra: specifier: 3.0.0-alpha.22 - version: 3.0.0-alpha.22(@types/react@18.2.67)(next@14.2.0-canary.61)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + version: 3.0.0-alpha.22(@types/react@18.2.78)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) nextra-theme-docs: specifier: 3.0.0-alpha.22 - version: 3.0.0-alpha.22(next@14.2.0-canary.61)(nextra@3.0.0-alpha.22)(react-dom@18.2.0)(react@18.2.0) + version: 3.0.0-alpha.22(next@14.2.1)(nextra@3.0.0-alpha.22)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -215,32 +215,32 @@ importers: version: 1.1.5(styled-components@5.3.6) devDependencies: '@types/node': - specifier: 20.11.28 - version: 20.11.28 + specifier: 20.12.7 + version: 20.12.7 '@types/react': - specifier: 18.2.67 - version: 18.2.67 + specifier: 18.2.78 + version: 18.2.78 autoprefixer: - specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.36) + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.38) postcss: - specifier: ^8.4.36 - version: 8.4.36 + specifier: ^8.4.38 + version: 8.4.38 shiki: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 simple-git-hooks: - specifier: ^2.11.0 - version: 2.11.0 + specifier: ^2.11.1 + version: 2.11.1 tailwindcss: - specifier: ^3.4.1 - version: 3.4.1 + specifier: ^3.4.3 + version: 3.4.3 typedoc: - specifier: ^0.25.12 - version: 0.25.12(typescript@5.3.3) + specifier: ^0.25.13 + version: 0.25.13(typescript@5.3.3) typedoc-plugin-markdown: specifier: 4.0.0-next.54 - version: 4.0.0-next.54(typedoc@0.25.12) + version: 4.0.0-next.54(typedoc@0.25.13) packages/adapter-azure-tables: dependencies: @@ -346,7 +346,7 @@ importers: version: 1.3.1 fauna-shell: specifier: 1.2.1 - version: 1.2.1(@types/node@20.11.28)(typescript@5.3.3) + version: 1.2.1(@types/node@20.12.7)(typescript@5.3.3) packages/adapter-firebase: dependencies: @@ -799,7 +799,7 @@ packages: resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} dev: true - /@apollo/client@3.9.5(@types/react@18.2.67)(graphql-ws@5.14.3)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0): + /@apollo/client@3.9.5(@types/react@18.2.78)(graphql-ws@5.14.3)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==} peerDependencies: graphql: ^15.0.0 || ^16.0.0 @@ -829,7 +829,7 @@ packages: prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rehackt: 0.0.5(@types/react@18.2.67)(react@18.2.0) + rehackt: 0.0.5(@types/react@18.2.78)(react@18.2.0) response-iterator: 0.2.6 symbol-observable: 4.0.0 ts-invariant: 0.10.3 @@ -877,30 +877,30 @@ packages: - encoding dev: true - /@ariakit/core@0.4.3: - resolution: {integrity: sha512-Z5O1FZBbR2tIkEUJ7o+W5ZVBqMy2DQ5QpvAJCwM8iUibQBxEFi1rcYFWWpa/MO064wFJNyH7iadfrT4T+ZLuUw==} + /@ariakit/core@0.4.5: + resolution: {integrity: sha512-e294+bEcyzt/H/kO4fS5/czLAlkF7PY+Kul3q2z54VY+GGay8NlVs9UezAB7L4jUBlYRAXwp7/1Sq3R7b+MZ7w==} dev: false - /@ariakit/react-core@0.4.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yGYiHUVQKbW1RN8tMMn2IJQ4HL7hG2+uliJzYpn5/SHWODwSJum1vXdcjx7jJoy8B6l53cxIsyUwBPhcaAR9NQ==} + /@ariakit/react-core@0.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ciTYPwpj/+mdA+EstveEnoygbx5e4PXQJxfkLKy4lkTkDJJUS9GcbYhdnIFJVUta6P1YFvzkIKo+/y9mcbMKJg==} peerDependencies: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@ariakit/core': 0.4.3 + '@ariakit/core': 0.4.5 '@floating-ui/dom': 1.6.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@ariakit/react@0.4.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-KmCflynxvJ1Uk9NHsf5LxpAJCaO30UWgml9c8+N4Y3ic9cOREsR0v4hQ9NG2R5JEV5C2yj77YovEfuk9YPHDpg==} + /@ariakit/react@0.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GUHxaOY1JZrJUHkuV20IY4NWcgknhqTQM0qCQcVZDCi+pJiWchUjTG+UyIr/Of02hU569qnQ7yovskCf+V3tNg==} peerDependencies: react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 dependencies: - '@ariakit/react-core': 0.4.3(react-dom@18.2.0)(react@18.2.0) + '@ariakit/react-core': 0.4.5(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1940,10 +1940,10 @@ packages: '@babel/helpers': 7.23.9 '@babel/parser': 7.23.9 '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9(supports-color@5.5.0) + '@babel/traverse': 7.23.9 '@babel/types': 7.23.9 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -2159,7 +2159,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.23.9 - '@babel/traverse': 7.23.9(supports-color@5.5.0) + '@babel/traverse': 7.23.9 '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color @@ -3191,11 +3191,10 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.9 '@babel/types': 7.23.9 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/traverse@7.23.9(supports-color@5.5.0): resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} @@ -3213,6 +3212,7 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: false /@babel/types@7.23.9: resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} @@ -5049,7 +5049,7 @@ packages: requiresBuild: true dependencies: '@grpc/proto-loader': 0.7.10 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true optional: true @@ -5117,8 +5117,8 @@ packages: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} dev: true - /@inkeep/color-mode@0.0.22(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bWnlNHgi3w0wBRDLdbJAn6ya9wPfWYUDL+CNJ/jM+RfIQys5HC6J4G2ZD5GSZrf3k5qixlHV/IDbBnjh6hnxeg==} + /@inkeep/color-mode@0.0.23(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SbI4ubObRx+N/R/uJLQTBZNL/s5Y0h1MAeuZskRmU2A2ThBW0kT4qLC1tStOA1KhtCkFHO7obtzb7NdpNUc93A==} peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -5127,18 +5127,18 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@inkeep/components@0.0.22(@ark-ui/react@0.15.0)(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-kIdCAYBNQv3vyt7X7LtVSREzAlKfiXCfVrTPaMSWfd+xDXYUvfPfAzAA7Cs9MksPq47L3q7hPDRJIT/I+b0TKg==} + /@inkeep/components@0.0.23(@ark-ui/react@0.15.0)(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-JwMdEB2JoMNQwJocYq4ontMOlatYBSkv9AIgPBnxcO9+IkguIQTE5821mrRQJsOtpS58LuFzt+fYcuGX6sqtWw==} peerDependencies: '@ark-ui/react': '>=0.15.0' react: ^18.2.0 react-dom: ^18.2.0 dependencies: '@ark-ui/react': 0.15.0(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0) - '@inkeep/preset': 0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3) - '@inkeep/preset-chakra': 0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3) - '@inkeep/shared': 0.0.23 - '@inkeep/styled-system': 0.0.33 + '@inkeep/preset': 0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3) + '@inkeep/preset-chakra': 0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3) + '@inkeep/shared': 0.0.24 + '@inkeep/styled-system': 0.0.37 '@pandacss/dev': 0.22.1(typescript@5.3.3) framer-motion: 10.18.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -5149,11 +5149,11 @@ packages: - typescript dev: false - /@inkeep/preset-chakra@0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3): - resolution: {integrity: sha512-GeBgVzUNQPGWjylzC/VOqNpongMKuZw7rqUTCOwxeD9OmQ+sGmYAnOQ40U2Ba+76gG+B9NxY/YHGeWqr4l+iFw==} + /@inkeep/preset-chakra@0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3): + resolution: {integrity: sha512-3RxQPV28mqBmOJliBJAZlL3lemcIGdZvYs7a2jGESjKUfD19ARNnCXZ+NaXjvdONGB/NiwNsFtBUKEn3YixvQg==} dependencies: '@ark-ui/anatomy': 0.1.0(@internationalized/date@3.5.2) - '@inkeep/shared': 0.0.23 + '@inkeep/shared': 0.0.24 '@pandacss/dev': 0.22.1(typescript@5.3.3) transitivePeerDependencies: - '@internationalized/date' @@ -5161,12 +5161,12 @@ packages: - typescript dev: false - /@inkeep/preset@0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3): - resolution: {integrity: sha512-8vgm5fqlOXQ1Ts2zNMq9qlPVZ5O4t1+B1LB9P0Ek83Bbn0dKPs7n1MMkDGShH4CI2FuLsira4Co3wky38Z/EWA==} + /@inkeep/preset@0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3): + resolution: {integrity: sha512-LGI6y3PZq/jJawDA8uUpudbmugKnEpJxvBwxBKpDZ1+DsqKeAx+45DUwLHv3Bd0yrPAZPqnhjumBhoD/uIjrgg==} dependencies: '@ark-ui/anatomy': 0.1.0(@internationalized/date@3.5.2) - '@inkeep/preset-chakra': 0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3) - '@inkeep/shared': 0.0.23 + '@inkeep/preset-chakra': 0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3) + '@inkeep/shared': 0.0.24 '@pandacss/dev': 0.22.1(typescript@5.3.3) colorjs.io: 0.4.5 transitivePeerDependencies: @@ -5175,32 +5175,32 @@ packages: - typescript dev: false - /@inkeep/shared@0.0.23: - resolution: {integrity: sha512-mhquQg+S4vIR9uNMoZiI0xSzn3PPr9dtjB0TQdRGuunRAEuAg5Wi+DjdVsp4/XZoMZZxTUOyhhTcRFkMBDwWZQ==} + /@inkeep/shared@0.0.24: + resolution: {integrity: sha512-KMlb+b1bCH3YulCVxEnRojZPWgrble6kEv4pjz5H7jJQaEdIg0TdTWWmT6BrOmA8kb2n7GeKU0as+nhiqkyRAw==} dev: false - /@inkeep/styled-system@0.0.33: - resolution: {integrity: sha512-TlXc4whuswxTD2Dyh3gGxR26wy658L0sAXcZ3qzWyhZbEA1ddFYRljlGM4vg0Qag7d/+CVDCHgPIgy2qFIS6IA==} + /@inkeep/styled-system@0.0.37: + resolution: {integrity: sha512-6Bgnlw/QmNjmfT5y/tDOX5JG3DrroOOCm3gDPX7HOJya/Th8vn1P34pH4rQ6K2gQJ2avew2kB5A7Xi9R2IzVnA==} dev: false - /@inkeep/styled-system@0.0.36: - resolution: {integrity: sha512-xR1Qjh9JyxXH0mnDcbSZSWMx3H6cU8r/fSD/uJNnRiTrgxUrqcqamW5203BV1f2+DtXe4UzjL8g0KWEqdmunjw==} + /@inkeep/styled-system@0.0.40: + resolution: {integrity: sha512-jQ8u/FMRa/7tTtF5uhKiVxSIQjLtazWFdPFr7+aI8Yj/O4ERqXaV98S7852neikQ3cxREYv5mAnaMH8bMMSqNg==} dev: false - /@inkeep/widgets@0.2.267(@internationalized/date@3.5.2)(@types/react@18.2.67)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-HPd3/4GrmAKc5LWXADV3++1WY+81XNV3DNXVqdoLL1Z4GqOgH4sWwGMoCGOgpOTPY1rEiQV1bQ/IEKmjmqS9OQ==} + /@inkeep/widgets@0.2.272(@internationalized/date@3.5.2)(@types/react@18.2.78)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-4uXGVqXGxMXAAx105QOCgWuhCa0JgALQICVcEF+Q/TBulZBKGwBJKoyb9TTAGLdB/cq6+8FFif1RizBqdf3jUw==} peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 dependencies: - '@apollo/client': 3.9.5(@types/react@18.2.67)(graphql-ws@5.14.3)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0) + '@apollo/client': 3.9.5(@types/react@18.2.78)(graphql-ws@5.14.3)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0) '@ark-ui/react': 0.15.0(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0) - '@inkeep/color-mode': 0.0.22(react-dom@18.2.0)(react@18.2.0) - '@inkeep/components': 0.0.22(@ark-ui/react@0.15.0)(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) - '@inkeep/preset': 0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3) - '@inkeep/preset-chakra': 0.0.22(@internationalized/date@3.5.2)(typescript@5.3.3) - '@inkeep/shared': 0.0.23 - '@inkeep/styled-system': 0.0.36 + '@inkeep/color-mode': 0.0.23(react-dom@18.2.0)(react@18.2.0) + '@inkeep/components': 0.0.23(@ark-ui/react@0.15.0)(@internationalized/date@3.5.2)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@inkeep/preset': 0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3) + '@inkeep/preset-chakra': 0.0.23(@internationalized/date@3.5.2)(typescript@5.3.3) + '@inkeep/shared': 0.0.24 + '@inkeep/styled-system': 0.0.40 '@types/lodash.isequal': 4.5.8 graphql: 16.8.1 graphql-ws: 5.14.3(graphql@16.8.1) @@ -5214,10 +5214,10 @@ packages: react-hook-form: 7.51.0(react@18.2.0) react-hotkeys-hook: 4.5.0(react-dom@18.2.0)(react@18.2.0) react-icons: 4.12.0(react@18.2.0) - react-markdown: 8.0.7(@types/react@18.2.67)(react@18.2.0) + react-markdown: 8.0.7(@types/react@18.2.78)(react@18.2.0) react-shadow: 20.4.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) react-svg: 16.1.33(react-dom@18.2.0)(react@18.2.0) - react-textarea-autosize: 8.5.3(@types/react@18.2.67)(react@18.2.0) + react-textarea-autosize: 8.5.3(@types/react@18.2.78)(react@18.2.0) rehype-raw: 6.1.1 xregexp: 5.1.1 transitivePeerDependencies: @@ -5256,7 +5256,7 @@ packages: dependencies: '@inquirer/type': 1.2.0 '@types/mute-stream': 0.0.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -5539,14 +5539,14 @@ packages: - supports-color dev: false - /@mdx-js/react@3.0.0(@types/react@18.2.67)(react@18.2.0): + /@mdx-js/react@3.0.0(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==} peerDependencies: '@types/react': '>=16' react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false @@ -5850,8 +5850,8 @@ packages: resolution: {integrity: sha512-mEDmzHhOHKGbd/qv8CAc8JGkPrbGs2txWz9Y2XHew77HUTmOsrzSKDK467cYa35r18KcGwftZPRv3s7EfW4Kxg==} dev: false - /@next/env@14.2.0-canary.61: - resolution: {integrity: sha512-Ueqse8kdwaoebGrpSo60M4/cjFaMJEE7BMsKZufYwZDTlE0qXw7N4GsdVpUZzJG00sXf6CoTnCU1lCTPrUMC4g==} + /@next/env@14.2.1: + resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} dev: false /@next/swc-darwin-arm64@14.0.3-canary.1: @@ -5872,8 +5872,8 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64@14.2.0-canary.61: - resolution: {integrity: sha512-mMlp2/hvtaBbCY5qYhuvAqX9Z/aFC+Rgme4FjFSxq2C3TC/mL3G4fVG/TVl7bqjikKCxSvJgiWXRwvhIaqGktw==} + /@next/swc-darwin-arm64@14.2.1: + resolution: {integrity: sha512-kGjnjcIJehEcd3rT/3NAATJQndAEELk0J9GmGMXHSC75TMnvpOhONcjNHbjtcWE5HUQnIHy5JVkatrnYm1QhVw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -5899,8 +5899,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.2.0-canary.61: - resolution: {integrity: sha512-4bEjO0WK6keRi972eAY1AfvTXOQRHnM59klNqnUh5zfalbi7VkEdluhYAZOop2NycCHjF+m8p+ytYtrF1uCO1Q==} + /@next/swc-darwin-x64@14.2.1: + resolution: {integrity: sha512-dAdWndgdQi7BK2WSXrx4lae7mYcOYjbHJUhvOUnJjMNYrmYhxbbvJ2xElZpxNxdfA6zkqagIB9He2tQk+l16ew==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -5926,8 +5926,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.2.0-canary.61: - resolution: {integrity: sha512-wIXc3EdxrETlL2XwlGlLQkMU9godhNSMAXxiJotd/mhN3K4iKajPahAStvFxY2Zwc/on2IBa0NpUGpzDONNt9A==} + /@next/swc-linux-arm64-gnu@14.2.1: + resolution: {integrity: sha512-2ZctfnyFOGvTkoD6L+DtQtO3BfFz4CapoHnyLTXkOxbZkVRgg3TQBUjTD/xKrO1QWeydeo8AWfZRg8539qNKrg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5953,8 +5953,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.2.0-canary.61: - resolution: {integrity: sha512-95aMF55sq2N6+5iLEqxCfz7ccYMBURQ8D0KYmcq+rMJTE5z/qvxEToSJWAbV4jGyd2Eq/vXjPdR1rFytv2FnOw==} + /@next/swc-linux-arm64-musl@14.2.1: + resolution: {integrity: sha512-jazZXctiaanemy4r+TPIpFP36t1mMwWCKMsmrTRVChRqE6putyAxZA4PDujx0SnfvZHosjdkx9xIq9BzBB5tWg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5980,8 +5980,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.2.0-canary.61: - resolution: {integrity: sha512-LWG5OC9hNSCYtDb+7MQcIjE1PO70Sho+ZJkqJnmLxJ08Atp/nJQBo9nAMjORdcO5Nz+hPNVY5vmrY+5Fl5kadw==} + /@next/swc-linux-x64-gnu@14.2.1: + resolution: {integrity: sha512-VjCHWCjsAzQAAo8lkBOLEIkBZFdfW+Z18qcQ056kL4KpUYc8o59JhLDCBlhg+hINQRgzQ2UPGma2AURGOH0+Qg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -6007,8 +6007,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.2.0-canary.61: - resolution: {integrity: sha512-EjOXbSmDTPVi8xkOix4/WYJM6OUert+lfBtdUJBRba+oGiRw/mheih8FliFZKFOmQbPYj67A9z/QCus2ZDnfSw==} + /@next/swc-linux-x64-musl@14.2.1: + resolution: {integrity: sha512-7HZKYKvAp4nAHiHIbY04finRqjeYvkITOGOurP1aLMexIFG/1+oCnqhGogBdc4lao/lkMW1c+AkwWSzSlLasqw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -6034,8 +6034,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.2.0-canary.61: - resolution: {integrity: sha512-TK8oV4ozzUGWAwvZp/0SBsNgAUhrUFLWCMSXsFHz+YMRjHg7nT0KdK8BYh2Ln4Qt0jjDTUHbI1jaQKxmSMEMmA==} + /@next/swc-win32-arm64-msvc@14.2.1: + resolution: {integrity: sha512-YGHklaJ/Cj/F0Xd8jxgj2p8po4JTCi6H7Z3Yics3xJhm9CPIqtl8erlpK1CLv+HInDqEWfXilqatF8YsLxxA2Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -6061,8 +6061,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.2.0-canary.61: - resolution: {integrity: sha512-i0iWCehuLKDOfVbQ6MEKG9v0lfcJU0DPWkYINFSi6p3fkFobI/+7DVT3KvYH5VVng/+opx+pA6cesV5eyQnBtw==} + /@next/swc-win32-ia32-msvc@14.2.1: + resolution: {integrity: sha512-o+ISKOlvU/L43ZhtAAfCjwIfcwuZstiHVXq/BDsZwGqQE0h/81td95MPHliWCnFoikzWcYqh+hz54ZB2FIT8RA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -6088,8 +6088,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.2.0-canary.61: - resolution: {integrity: sha512-WB0UjpWcu+oXQOMFDTHDZWKcL2jiXeQfN+1RRkb0x7ZjVxvA/O66vOJE08fLSu7rdymLiGXxX+AKlGFq1Tpisg==} + /@next/swc-win32-x64-msvc@14.2.1: + resolution: {integrity: sha512-GmRoTiLcvCLifujlisknv4zu9/C4i9r0ktsA8E51EMqJL4bD4CpO7lDYr7SrUxCR0tS4RVcrqKmCak24T0ohaw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -6097,13 +6097,13 @@ packages: dev: false optional: true - /@next/third-parties@14.1.3(next@14.2.0-canary.61)(react@18.2.0): - resolution: {integrity: sha512-c3l0JnJzB5L2xXWK9DbH6nFpV1Z9vPFCiFan5l/pbwHjWGKxS8Q532MLAOW6EHB00vhCre8F/okBjGyPAGYpnw==} + /@next/third-parties@14.2.1(next@14.2.1)(react@18.2.0): + resolution: {integrity: sha512-iHVq3uHT1BLR4O8LXJ/AJeRCATnsxWNq5S223BYhrQMceMUr/5TtKIroQwJpXrbwxkOr7SFX72mZqPTXxd/TnQ==} peerDependencies: next: ^13.0.0 || ^14.0.0 react: ^18.2.0 dependencies: - next: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 third-party-capital: 1.0.20 dev: false @@ -6157,7 +6157,7 @@ packages: tslib: 2.6.2 dev: true - /@oclif/core@2.15.0(@types/node@20.11.28)(typescript@5.3.3): + /@oclif/core@2.15.0(@types/node@20.12.7)(typescript@5.3.3): resolution: {integrity: sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==} engines: {node: '>=14.0.0'} dependencies: @@ -6184,7 +6184,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2(@types/node@20.11.28)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.3.3) tslib: 2.6.2 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -6212,11 +6212,11 @@ packages: resolution: {integrity: sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==} dev: true - /@oclif/plugin-help@5.2.20(@types/node@20.11.28)(typescript@5.3.3): + /@oclif/plugin-help@5.2.20(@types/node@20.12.7)(typescript@5.3.3): resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.15.0(@types/node@20.11.28)(typescript@5.3.3) + '@oclif/core': 2.15.0(@types/node@20.12.7)(typescript@5.3.3) transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -6224,12 +6224,12 @@ packages: - typescript dev: true - /@oclif/plugin-plugins@2.4.7(@types/node@20.11.28)(typescript@5.3.3): + /@oclif/plugin-plugins@2.4.7(@types/node@20.12.7)(typescript@5.3.3): resolution: {integrity: sha512-6fzUDLWrSK7n6+EBrEekEEYrYTCneRoOF9TzojkjuFn1+ailvUlr98G90bblxKOyy8fqMe7QjvqwTgIDQ9ZIzg==} engines: {node: '>=12.0.0'} dependencies: '@oclif/color': 1.0.13 - '@oclif/core': 2.15.0(@types/node@20.11.28)(typescript@5.3.3) + '@oclif/core': 2.15.0(@types/node@20.12.7)(typescript@5.3.3) chalk: 4.1.2 debug: 4.3.4(supports-color@8.1.1) fs-extra: 9.1.0 @@ -6282,16 +6282,16 @@ packages: '@pandacss/shared': 0.22.1 '@pandacss/token-dictionary': 0.22.1 '@pandacss/types': 0.22.1 - autoprefixer: 10.4.15(postcss@8.4.36) + autoprefixer: 10.4.15(postcss@8.4.38) hookable: 5.5.3 lodash.merge: 4.6.2 - postcss: 8.4.36 - postcss-discard-duplicates: 6.0.2(postcss@8.4.36) - postcss-discard-empty: 6.0.2(postcss@8.4.36) - postcss-merge-rules: 6.0.4(postcss@8.4.36) - postcss-minify-selectors: 6.0.2(postcss@8.4.36) - postcss-nested: 6.0.1(postcss@8.4.36) - postcss-normalize-whitespace: 6.0.1(postcss@8.4.36) + postcss: 8.4.38 + postcss-discard-duplicates: 6.0.2(postcss@8.4.38) + postcss-discard-empty: 6.0.2(postcss@8.4.38) + postcss-merge-rules: 6.0.4(postcss@8.4.38) + postcss-minify-selectors: 6.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) + postcss-normalize-whitespace: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.0.15 ts-pattern: 5.0.5 dev: false @@ -6345,7 +6345,7 @@ packages: lil-fp: 1.4.5 outdent: 0.8.0 pluralize: 8.0.0 - postcss: 8.4.36 + postcss: 8.4.38 ts-pattern: 5.0.5 dev: false @@ -6390,7 +6390,7 @@ packages: pathe: 1.1.2 pkg-types: 1.0.3 pluralize: 8.0.0 - postcss: 8.4.36 + postcss: 8.4.38 preferred-pm: 3.1.3 prettier: 2.8.8 ts-morph: 19.0.0 @@ -6424,7 +6424,7 @@ packages: resolution: {integrity: sha512-DzPT8zwsRrPtfzoVXkt2x576veN7bzyF3wERPIOYUtbEkd8uUCunqLoazcMyuUfOaUv9X5pqQkPqsH1glSJ6Dg==} dependencies: '@pandacss/node': 0.22.1(typescript@5.3.3) - postcss: 8.4.36 + postcss: 8.4.38 transitivePeerDependencies: - jsdom - typescript @@ -6651,8 +6651,8 @@ packages: webcrypto-core: 1.7.8 dev: true - /@phosphor-icons/react@2.0.15(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PQKNcRrfERlC8gJGNz0su0i9xVmeubXSNxucPcbCLDd9u0cwJVTEyYK87muul/svf0UXFdL2Vl6bbeOhT1Mwow==} + /@phosphor-icons/react@2.1.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EeNwgcg1aeK5vG/JYVTullnZzk5zjftOrjLb1iYetyhn5ImFFREc+xG0FAB/dAY277DGDSF8pNdNbqG1SUKIxQ==} engines: {node: '>=10'} peerDependencies: react: '>= 16.8' @@ -6903,7 +6903,7 @@ packages: '@babel/runtime': 7.23.9 dev: false - /@radix-ui/react-accordion@1.1.2(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-accordion@1.1.2(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} peerDependencies: '@types/react': '*' @@ -6918,20 +6918,20 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-collapsible': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collapsible@1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -6946,19 +6946,19 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collection@1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -6972,16 +6972,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -6991,11 +6991,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -7005,11 +7005,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-direction@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -7019,11 +7019,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -7033,12 +7033,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-presence@1.0.1(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -7052,14 +7052,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -7073,13 +7073,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -7094,20 +7094,20 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-collection': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-slot@1.0.2(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -7117,12 +7117,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-tabs@1.0.4(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-tabs@1.0.4(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -7137,19 +7137,19 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.67)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -7159,11 +7159,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -7173,12 +7173,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.67)(react@18.2.0) - '@types/react': 18.2.67 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0) + '@types/react': 18.2.78 react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.67)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -7188,7 +7188,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false @@ -7378,13 +7378,13 @@ packages: selderee: 0.11.0 dev: true - /@shikijs/core@1.2.0: - resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==} - /@shikijs/core@1.2.4: resolution: {integrity: sha512-ClaUWpt8oTzjcF0MM1P81AeWyzc1sNSJlAjMG80CbwqbFqXSNz+NpQVUC0icobt3sZn43Sn27M4pHD/Jmp3zHw==} dev: false + /@shikijs/core@1.3.0: + resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} + /@shikijs/twoslash@1.2.4(typescript@5.3.3): resolution: {integrity: sha512-4F2gNlCFN9HY0jV3J/IBfqkI7w2HBwycwUBx9fLYGYxzbfu0gYRJdQYWtvJC/sG2rYTYlJrS5BpWdXYoMHwbXw==} dependencies: @@ -8326,26 +8326,26 @@ packages: /@types/better-sqlite3@7.6.9: resolution: {integrity: sha512-FvktcujPDj9XKMJQWFcl2vVl7OdRIqsSRX9b0acWwTmwLK9CF2eqo/FRcmMLNpugKoX/avA6pb7TorDLmpgTnQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/cli-progress@3.11.5: resolution: {integrity: sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/cookie@0.5.4: @@ -8390,7 +8390,7 @@ packages: /@types/express-serve-static-core@4.17.42: resolution: {integrity: sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -8410,7 +8410,7 @@ packages: requiresBuild: true dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true optional: true @@ -8460,13 +8460,13 @@ packages: /@types/jsonwebtoken@8.5.9: resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/jsonwebtoken@9.0.5: resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/katex@0.16.7: @@ -8555,7 +8555,7 @@ packages: /@types/mute-stream@0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/nlcst@1.0.4: @@ -8576,14 +8576,14 @@ packages: resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==} dev: true - /@types/node@20.11.28: - resolution: {integrity: sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==} + /@types/node@20.11.7: + resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} dependencies: undici-types: 5.26.5 dev: true - /@types/node@20.11.7: - resolution: {integrity: sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -8591,7 +8591,7 @@ packages: /@types/nodemailer@6.4.6: resolution: {integrity: sha512-pD6fL5GQtUKvD2WnPmg5bC2e8kWCAPDwMPmHe/ohQbW+Dy0EcHgZ2oCSuPlWNqk74LS5BVMig1SymQbFMPPK3w==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/normalize-package-data@2.4.4: @@ -8605,7 +8605,7 @@ packages: /@types/pg@8.11.0: resolution: {integrity: sha512-sDAlRiBNthGjNFfvt0k6mtotoVYVQ63pA8R4EMWka7crawSR60waVYR0HAgmPRs/e2YaeJTD/43OoZ3PFw80pw==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 pg-protocol: 1.6.0 pg-types: 4.0.2 dev: true @@ -8784,11 +8784,10 @@ packages: csstype: 3.1.3 dev: true - /@types/react@18.2.67: - resolution: {integrity: sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==} + /@types/react@18.2.78: + resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} dependencies: '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 csstype: 3.1.3 /@types/rimraf@3.0.2: @@ -8796,7 +8795,7 @@ packages: requiresBuild: true dependencies: '@types/glob': 8.1.0 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true optional: true @@ -8809,6 +8808,7 @@ packages: /@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + dev: true /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} @@ -8818,7 +8818,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/serve-static@1.15.5: @@ -8826,19 +8826,19 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/set-cookie-parser@2.4.7: resolution: {integrity: sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/stoppable@1.1.3: resolution: {integrity: sha512-7wGKIBJGE4ZxFjk9NkjAxZMLlIXroETqP1FJCdoSvKmEznwmBxQFmTB1dsCkAvVcNemuSZM5qkkd9HE/NL2JTw==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/superagent@8.1.3: @@ -8846,7 +8846,7 @@ packages: dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@types/supertest@2.0.16: @@ -8884,7 +8884,7 @@ packages: /@types/whatwg-url@8.2.2: resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 '@types/webidl-conversions': 7.0.3 dev: true @@ -8895,7 +8895,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /@typescript-eslint/eslint-plugin@6.19.1(@typescript-eslint/parser@6.19.1)(eslint@8.30.0)(typescript@5.3.3): @@ -9095,7 +9095,7 @@ packages: /@typescript/vfs@1.5.0: resolution: {integrity: sha512-AJS307bPgbsZZ9ggCT3wwpg3VbTKMFNHfaY/uF0ahSkYYrPF2dSSKDNIDIQAHm9qJqbLvCsSJH7yN4Vs/CsMMg==} dependencies: - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -9110,7 +9110,7 @@ packages: crypto-js: 4.2.0 dev: true - /@vercel/analytics@1.2.2(next@14.2.0-canary.61)(react@18.2.0): + /@vercel/analytics@1.2.2(next@14.2.1)(react@18.2.0): resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} peerDependencies: next: '>= 13' @@ -9121,7 +9121,7 @@ packages: react: optional: true dependencies: - next: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 server-only: 0.0.1 dev: false @@ -9230,8 +9230,8 @@ packages: '@vue/shared': 3.4.21 estree-walker: 2.0.2 magic-string: 0.30.8 - postcss: 8.4.36 - source-map-js: 1.0.2 + postcss: 8.4.38 + source-map-js: 1.1.0 dev: false /@vue/compiler-ssr@3.4.21: @@ -11471,7 +11471,7 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autoprefixer@10.4.15(postcss@8.4.36): + /autoprefixer@10.4.15(postcss@8.4.38): resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -11483,23 +11483,23 @@ packages: fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.36 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: false - /autoprefixer@10.4.18(postcss@8.4.36): - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001594 + caniuse-lite: 1.0.30001609 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.36 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: true @@ -12015,6 +12015,10 @@ packages: /caniuse-lite@1.0.30001594: resolution: {integrity: sha512-VblSX6nYqyJVs8DKFMldE2IVCJjZ225LW00ydtUWwh5hk9IfkTOffO6r8gJNsH0qqqeAF8KrbMYA2VEwTlGW5g==} + /caniuse-lite@1.0.30001609: + resolution: {integrity: sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==} + dev: true + /capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: @@ -12761,7 +12765,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 + source-map-js: 1.1.0 dev: true /css-what@6.1.0: @@ -12774,13 +12778,13 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-utils@4.0.1(postcss@8.4.36): + /cssnano-utils@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 dev: false /csstype@3.1.2: @@ -13165,6 +13169,7 @@ packages: dependencies: ms: 2.1.2 supports-color: 5.5.0 + dev: false /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -14774,15 +14779,15 @@ packages: format: 0.2.2 dev: false - /fauna-shell@1.2.1(@types/node@20.11.28)(typescript@5.3.3): + /fauna-shell@1.2.1(@types/node@20.12.7)(typescript@5.3.3): resolution: {integrity: sha512-JY48qkliJbbrkdeUlKT8Z/NDyZCAsgsiGI+bXIy7tDwTURsNpQ4biNK2X5nqKgdNfULrRn6NkSessdcI+RnoHA==} engines: {node: '>=10.0.0'} hasBin: true dependencies: '@inquirer/prompts': 3.3.2 - '@oclif/core': 2.15.0(@types/node@20.11.28)(typescript@5.3.3) - '@oclif/plugin-help': 5.2.20(@types/node@20.11.28)(typescript@5.3.3) - '@oclif/plugin-plugins': 2.4.7(@types/node@20.11.28)(typescript@5.3.3) + '@oclif/core': 2.15.0(@types/node@20.12.7)(typescript@5.3.3) + '@oclif/plugin-help': 5.2.20(@types/node@20.12.7)(typescript@5.3.3) + '@oclif/plugin-plugins': 2.4.7(@types/node@20.12.7)(typescript@5.3.3) chalk: 4.1.2 cli-table: 0.3.11 cli-ux: 4.9.3 @@ -14973,7 +14978,7 @@ packages: '@fastify/busboy': 1.2.1 '@firebase/database-compat': 0.3.4 '@firebase/database-types': 0.10.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 jsonwebtoken: 9.0.2 jwks-rsa: 3.1.0 node-forge: 1.3.1 @@ -18680,7 +18685,7 @@ packages: requiresBuild: true dependencies: '@types/debug': 4.1.12 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -18704,7 +18709,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -19154,14 +19159,14 @@ packages: rxjs: 7.8.1 dev: true - /next-themes@0.2.1(next@14.2.0-canary.61)(react-dom@18.2.0)(react@18.2.0): + /next-themes@0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} peerDependencies: next: '*' react: '*' react-dom: '*' dependencies: - next: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -19252,8 +19257,8 @@ packages: - babel-plugin-macros dev: false - /next@14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UbdoNkGX04TO0Q0N3k7fmiNCliE1yihVBHd/nwg2zMnpjB6dGU3r1UNgCBpfUUlrs1t19FAWazfVQANOOfBT4w==} + /next@14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -19270,7 +19275,8 @@ packages: sass: optional: true dependencies: - '@next/env': 14.2.0-canary.61 + '@next/env': 14.2.1 + '@playwright/test': 1.41.2 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001594 @@ -19280,21 +19286,21 @@ packages: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.23.9)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.0-canary.61 - '@next/swc-darwin-x64': 14.2.0-canary.61 - '@next/swc-linux-arm64-gnu': 14.2.0-canary.61 - '@next/swc-linux-arm64-musl': 14.2.0-canary.61 - '@next/swc-linux-x64-gnu': 14.2.0-canary.61 - '@next/swc-linux-x64-musl': 14.2.0-canary.61 - '@next/swc-win32-arm64-msvc': 14.2.0-canary.61 - '@next/swc-win32-ia32-msvc': 14.2.0-canary.61 - '@next/swc-win32-x64-msvc': 14.2.0-canary.61 + '@next/swc-darwin-arm64': 14.2.1 + '@next/swc-darwin-x64': 14.2.1 + '@next/swc-linux-arm64-gnu': 14.2.1 + '@next/swc-linux-arm64-musl': 14.2.1 + '@next/swc-linux-x64-gnu': 14.2.1 + '@next/swc-linux-x64-musl': 14.2.1 + '@next/swc-win32-arm64-msvc': 14.2.1 + '@next/swc-win32-ia32-msvc': 14.2.1 + '@next/swc-win32-x64-msvc': 14.2.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false - /nextra-theme-docs@3.0.0-alpha.22(next@14.2.0-canary.61)(nextra@3.0.0-alpha.22)(react-dom@18.2.0)(react@18.2.0): + /nextra-theme-docs@3.0.0-alpha.22(next@14.2.1)(nextra@3.0.0-alpha.22)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-MKFSDjslUE086KqWE/5gYK3wri2N+SEpQRfYBF2GNrvg7ksSUjXVzyuYQHZ5moQiCEYAS59T13zwhkfCITaPVQ==} peerDependencies: next: '>=13' @@ -19309,16 +19315,16 @@ packages: flexsearch: 0.7.43 focus-visible: 5.2.0 intersection-observer: 0.12.2 - next: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) - next-themes: 0.2.1(next@14.2.0-canary.61)(react-dom@18.2.0)(react@18.2.0) - nextra: 3.0.0-alpha.22(@types/react@18.2.67)(next@14.2.0-canary.61)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + next: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) + next-themes: 0.2.1(next@14.2.1)(react-dom@18.2.0)(react@18.2.0) + nextra: 3.0.0-alpha.22(@types/react@18.2.78)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scroll-into-view-if-needed: 3.1.0 zod: 3.22.4 dev: false - /nextra@3.0.0-alpha.22(@types/react@18.2.67)(next@14.2.0-canary.61)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + /nextra@3.0.0-alpha.22(@types/react@18.2.78)(next@14.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): resolution: {integrity: sha512-4V1kLs0MiQ1KE/Dh1cnLc100Ibyo/PY46v1NdRzrYe7uzCBcSGTiG9OwHTE/34wUwbM5N7TptiDOlV79BBZ0Ng==} engines: {node: '>=18'} peerDependencies: @@ -19328,7 +19334,7 @@ packages: dependencies: '@headlessui/react': 1.7.18(react-dom@18.2.0)(react@18.2.0) '@mdx-js/mdx': 3.0.0 - '@mdx-js/react': 3.0.0(@types/react@18.2.67)(react@18.2.0) + '@mdx-js/react': 3.0.0(@types/react@18.2.78)(react@18.2.0) '@napi-rs/simple-git': 0.1.16 '@shikijs/twoslash': 1.2.4(typescript@5.3.3) '@theguild/remark-mermaid': 0.0.5(react@18.2.0) @@ -19342,19 +19348,19 @@ packages: gray-matter: 4.0.3 hast-util-to-estree: 3.1.0 katex: 0.16.9 - next: 14.2.0-canary.61(@babel/core@7.23.9)(react-dom@18.2.0)(react@18.2.0) + next: 14.2.1(@babel/core@7.23.9)(@playwright/test@1.41.2)(react-dom@18.2.0)(react@18.2.0) p-limit: 4.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) rehype-katex: 7.0.0 - rehype-pretty-code: 0.13.0(shiki@1.2.0) + rehype-pretty-code: 0.13.0(shiki@1.3.0) rehype-raw: 7.0.0 remark-frontmatter: 5.0.0 remark-gfm: 4.0.0 remark-math: 6.0.0 remark-reading-time: 2.0.1 remark-smartypants: 2.1.0 - shiki: 1.2.0 + shiki: 1.3.0 slash: 5.1.0 title: 3.5.3 unist-util-remove: 4.0.0 @@ -20254,47 +20260,47 @@ packages: engines: {node: '>=4'} dev: false - /postcss-discard-duplicates@6.0.2(postcss@8.4.36): + /postcss-discard-duplicates@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-U2rsj4w6pAGROCCcD13LP2eBIi1whUsXs4kgE6xkIuGfkbxCBSKhkCTWyowFd66WdVlLv0uM1euJKIgmdmZObg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 dev: false - /postcss-discard-empty@6.0.2(postcss@8.4.36): + /postcss-discard-empty@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-rj6pVC2dVCJrP0Y2RkYTQEbYaCf4HEm+R/2StQgJqGHxAa3+KcYslNQhcRqjLHtl/4wpzipJluaJLqBj6d5eDQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 dev: false - /postcss-import@15.1.0(postcss@8.4.36): + /postcss-import@15.1.0(postcss@8.4.38): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 dev: true - /postcss-js@4.0.1(postcss@8.4.36): + /postcss-js@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.36 + postcss: 8.4.38 dev: true - /postcss-load-config@4.0.2(postcss@8.4.36): + /postcss-load-config@4.0.2(postcss@8.4.38): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -20307,11 +20313,11 @@ packages: optional: true dependencies: lilconfig: 3.1.1 - postcss: 8.4.36 + postcss: 8.4.38 yaml: 2.3.4 dev: true - /postcss-merge-rules@6.0.4(postcss@8.4.36): + /postcss-merge-rules@6.0.4(postcss@8.4.38): resolution: {integrity: sha512-97iF3UJ5v8N1BWy38y+0l+Z8o5/9uGlEgtWic2PJPzoRrLB6Gxg8TVG93O0EK52jcLeMsywre26AUlX1YAYeHA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -20319,28 +20325,28 @@ packages: dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 4.0.1(postcss@8.4.36) - postcss: 8.4.36 + cssnano-utils: 4.0.1(postcss@8.4.38) + postcss: 8.4.38 postcss-selector-parser: 6.0.15 dev: false - /postcss-minify-selectors@6.0.2(postcss@8.4.36): + /postcss-minify-selectors@6.0.2(postcss@8.4.38): resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 postcss-selector-parser: 6.0.15 dev: false - /postcss-nested@6.0.1(postcss@8.4.36): + /postcss-nested@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 postcss-selector-parser: 6.0.15 /postcss-nesting@12.0.2(postcss@8.4.19): @@ -20354,13 +20360,13 @@ packages: postcss-selector-parser: 6.0.15 dev: true - /postcss-normalize-whitespace@6.0.1(postcss@8.4.36): + /postcss-normalize-whitespace@6.0.1(postcss@8.4.38): resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - postcss: 8.4.36 + postcss: 8.4.38 postcss-value-parser: 4.2.0 dev: false @@ -20397,16 +20403,16 @@ packages: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.1.0 dev: true - /postcss@8.4.36: - resolution: {integrity: sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.1.0 + source-map-js: 1.2.0 /postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -20857,7 +20863,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.11.28 + '@types/node': 20.12.7 long: 5.2.3 dev: true optional: true @@ -20877,7 +20883,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.11.28 + '@types/node': 20.12.7 long: 5.2.3 dev: true optional: true @@ -21039,7 +21045,7 @@ packages: /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - /react-markdown@8.0.7(@types/react@18.2.67)(react@18.2.0): + /react-markdown@8.0.7(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} peerDependencies: '@types/react': '>=16' @@ -21047,7 +21053,7 @@ packages: dependencies: '@types/hast': 2.3.9 '@types/prop-types': 15.7.11 - '@types/react': 18.2.67 + '@types/react': 18.2.78 '@types/unist': 2.0.10 comma-separated-tokens: 2.0.3 hast-util-whitespace: 2.0.1 @@ -21105,7 +21111,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /react-textarea-autosize@8.5.3(@types/react@18.2.67)(react@18.2.0): + /react-textarea-autosize@8.5.3(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: @@ -21114,7 +21120,7 @@ packages: '@babel/runtime': 7.23.9 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.67)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.78)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -21332,7 +21338,7 @@ packages: jsesc: 0.5.0 dev: true - /rehackt@0.0.5(@types/react@18.2.67)(react@18.2.0): + /rehackt@0.0.5(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg==} peerDependencies: '@types/react': '*' @@ -21343,7 +21349,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false @@ -21367,7 +21373,7 @@ packages: unified: 11.0.4 dev: false - /rehype-pretty-code@0.13.0(shiki@1.2.0): + /rehype-pretty-code@0.13.0(shiki@1.3.0): resolution: {integrity: sha512-+22dz1StXlF7dlMyOySNaVxgcGhMI4BCxq0JxJJPWYGiKsI6cu5jyuIKGHXHvH18D8sv1rdKtvsY9UEfN3++SQ==} engines: {node: '>=18'} peerDependencies: @@ -21377,7 +21383,7 @@ packages: hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 rehype-parse: 9.0.0 - shiki: 1.2.0 + shiki: 1.3.0 unified: 11.0.4 unist-util-visit: 5.0.0 dev: false @@ -21834,7 +21840,7 @@ packages: dependencies: chokidar: 3.5.3 immutable: 4.3.5 - source-map-js: 1.0.2 + source-map-js: 1.1.0 dev: true /sax@1.3.0: @@ -22086,10 +22092,10 @@ packages: vscode-textmate: 8.0.0 dev: true - /shiki@1.2.0: - resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==} + /shiki@1.3.0: + resolution: {integrity: sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww==} dependencies: - '@shikijs/core': 1.2.0 + '@shikijs/core': 1.3.0 /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -22126,8 +22132,8 @@ packages: simple-concat: 1.0.1 dev: true - /simple-git-hooks@2.11.0: - resolution: {integrity: sha512-Wab2uzjGJEL8Kx+2UY8waUSfkiolt2RbaAJWvPCjaAEXrrKoS7JqPk4STiIVl/yt3asZRUzFoK2ryhwvgh5rYw==} + /simple-git-hooks@2.11.1: + resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} hasBin: true requiresBuild: true dev: true @@ -22334,11 +22340,16 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + dev: true /source-map-js@1.1.0: resolution: {integrity: sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -23124,8 +23135,8 @@ packages: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: false - /tailwindcss@3.4.1: - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + /tailwindcss@3.4.3: + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -23143,11 +23154,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.36 - postcss-import: 15.1.0(postcss@8.4.36) - postcss-js: 4.0.1(postcss@8.4.36) - postcss-load-config: 4.0.2(postcss@8.4.36) - postcss-nested: 6.0.1(postcss@8.4.36) + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-nested: 6.0.1(postcss@8.4.38) postcss-selector-parser: 6.0.15 resolve: 1.22.8 sucrase: 3.35.0 @@ -23506,7 +23517,7 @@ packages: code-block-writer: 12.0.0 dev: false - /ts-node@10.9.2(@types/node@20.11.28)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -23525,7 +23536,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.28 + '@types/node': 20.12.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -23792,12 +23803,12 @@ packages: typedoc: 0.25.12(typescript@5.3.3) dev: true - /typedoc-plugin-markdown@4.0.0-next.54(typedoc@0.25.12): + /typedoc-plugin-markdown@4.0.0-next.54(typedoc@0.25.13): resolution: {integrity: sha512-Irb0AxXqRZCpXAcZpGGb3pqG4SP0DzT3Q88rI3ak4K37rJ4jgfNOf/jCTHhD/B2iFty9DKNlssia2ytXDdCOSA==} peerDependencies: typedoc: 0.25.x dependencies: - typedoc: 0.25.12(typescript@5.3.3) + typedoc: 0.25.13(typescript@5.3.3) dev: true /typedoc@0.25.12(typescript@5.3.3): @@ -23814,6 +23825,20 @@ packages: typescript: 5.3.3 dev: true + /typedoc@0.25.13(typescript@5.3.3): + resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x + dependencies: + lunr: 2.3.9 + marked: 4.3.0 + minimatch: 9.0.3 + shiki: 0.14.7 + typescript: 5.3.3 + dev: true + /typeorm-naming-strategies@4.1.0(typeorm@0.3.17): resolution: {integrity: sha512-vPekJXzZOTZrdDvTl1YoM+w+sUIfQHG4kZTpbFYoTsufyv9NIBRe4Q+PdzhEAFA2std3D9LZHEb1EjE9zhRpiQ==} peerDependencies: @@ -24370,7 +24395,7 @@ packages: react: 18.2.0 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.67)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -24379,11 +24404,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 dev: false - /use-latest@1.2.1(@types/react@18.2.67)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.78)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -24392,9 +24417,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.67 + '@types/react': 18.2.78 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.67)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.78)(react@18.2.0) dev: false /use-sync-external-store@1.2.0(react@18.2.0): @@ -24631,7 +24656,7 @@ packages: dependencies: '@types/node': 18.11.10 esbuild: 0.18.20 - postcss: 8.4.36 + postcss: 8.4.38 rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 @@ -24667,7 +24692,7 @@ packages: dependencies: '@types/node': 20.11.7 esbuild: 0.19.12 - postcss: 8.4.33 + postcss: 8.4.38 rollup: 4.9.6 optionalDependencies: fsevents: 2.3.3 @@ -25023,7 +25048,7 @@ packages: /wkx@0.5.0: resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} dependencies: - '@types/node': 20.11.28 + '@types/node': 20.12.7 dev: true /word-wrap@1.2.5: From 652c9e10a57f5fab1f8fe7a3d4a15dc809e3c594 Mon Sep 17 00:00:00 2001 From: ndom91 Date: Sat, 13 Apr 2024 19:17:25 +0200 Subject: [PATCH 3/5] chore(docs): inline email provider docs --- .../content/NodemailerSetup.mdx | 205 ------ .../content/PostmarkSetup.mdx | 115 ---- .../content/ResendSetup.mdx | 115 ---- .../content/SendgridSetup.mdx | 115 ---- .../MagicLinkInstructions/index.tsx | 78 --- .../getting-started/authentication/email.mdx | 622 +++++++++++++++++- docs/public/img/providers/nodemailer.svg | 13 +- 7 files changed, 620 insertions(+), 643 deletions(-) delete mode 100644 docs/components/MagicLinkInstructions/content/NodemailerSetup.mdx delete mode 100644 docs/components/MagicLinkInstructions/content/PostmarkSetup.mdx delete mode 100644 docs/components/MagicLinkInstructions/content/ResendSetup.mdx delete mode 100644 docs/components/MagicLinkInstructions/content/SendgridSetup.mdx delete mode 100644 docs/components/MagicLinkInstructions/index.tsx diff --git a/docs/components/MagicLinkInstructions/content/NodemailerSetup.mdx b/docs/components/MagicLinkInstructions/content/NodemailerSetup.mdx deleted file mode 100644 index 1b5a5aab08..0000000000 --- a/docs/components/MagicLinkInstructions/content/NodemailerSetup.mdx +++ /dev/null @@ -1,205 +0,0 @@ -import { Callout, Steps, Tabs } from "nextra/components" -import { Code } from "@/components/Code" -import { Screenshot } from "@/components/Screenshot" -import MagicLink from "../../../public/img/magic-links/start.webp" - -### Nodemailer Setup - - - -### Install `nodemailer` - -Auth.js does not include `nodemailer` as a dependency, so you'll need to install it yourself if you want to use the Nodemailer provider. - -```sh npm2yarn -npm install nodemailer -``` - -You will need access to an SMTP server, ideally from one of [the services known to work with nodemailer](https://community.nodemailer.com/2-0-0-beta/setup-smtp/well-known-services/). Alternatively, Nodemailer does support [other transport mechanisms](https://nodemailer.com/transports/). - -### Database Adapter - -Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, -a database is required for magic link login to work as verification tokens need to be stored. - -### SMTP Transport Configuration - -There are two ways to configure the SMTP server connection: using a connection string or a configuration object. - - - - -```bash filename=".env" -EMAIL_SERVER=smtp://username:password@smtp.example.com:587 -EMAIL_FROM=noreply@example.com -``` - - - - -```ts filename="./auth.ts" -import NextAuth from "next-auth" -import Nodemailer from "next-auth/providers/nodemailer" - -export const { handlers, auth, signIn, signOut } = NextAuth({ - providers: [ - Nodemailer({ - server: process.env.EMAIL_SERVER, - from: process.env.EMAIL_FROM, - }), - ], -}) -``` - - - - -```ts filename="./src/auth.ts" -import SvelteKitAuth from "@auth/sveltekit" -import Nodemailer from "@auth/sveltekit/providers/nodemailer" - -export const { handle, signIn, signOut } = SvelteKitAuth({ - providers: [ - Nodemailer({ - server: process.env.EMAIL_SERVER, - from: process.env.EMAIL_FROM, - }), - ], -}) -``` - -```ts filename="./src/hooks.server.ts" -export { handle } from "./auth" -``` - - - - - - - -```bash filename=".env" -EMAIL_SERVER_USER=username -EMAIL_SERVER_PASSWORD=password -EMAIL_SERVER_HOST=smtp.example.com -EMAIL_SERVER_PORT=587 -EMAIL_FROM=noreply@example.com -``` - - - - -```ts filename="./auth.ts" -import NextAuth from "next-auth" -import Nodemailer from "next-auth/providers/nodemailer" - -export const { handlers, auth, signIn, signOut } = NextAuth({ - providers: [ - Nodemailer({ - server: { - host: process.env.EMAIL_SERVER_HOST, - port: process.env.EMAIL_SERVER_PORT, - auth: { - user: process.env.EMAIL_SERVER_USER, - pass: process.env.EMAIL_SERVER_PASSWORD, - }, - }, - from: process.env.EMAIL_FROM, - }), - ], -}) -``` - - - - -```ts filename="./src/auth.ts" -import SvelteKitAuth from "@auth/sveltekit" -import Nodemailer from "@auth/sveltekit/providers/nodemailer" - -export const { handle, signIn, signOut } = SvelteKitAuth({ - providers: [ - Nodemailer({ - server: { - host: process.env.EMAIL_SERVER_HOST, - port: process.env.EMAIL_SERVER_PORT, - auth: { - user: process.env.EMAIL_SERVER_USER, - pass: process.env.EMAIL_SERVER_PASSWORD, - }, - }, - from: process.env.EMAIL_FROM, - }), - ], -}) -``` - -```ts filename="src/hooks.server.ts" -export { handle } from "./auth" -``` - - - - - - - - - Check our [Customising magic links emails](/TODO) to learn how to change the - look and feel of the emails the user receives to sign in. - - -### Signin Button - -Next, we can add a sign in button somewhere in your application like the Navbar. This will forward the user on to the Auth.js default signin page. - - - - -```tsx filename="./components/sign-in.tsx" -import { signIn } from "../../auth.ts" - -export function SignIn() { - return ( -
{ - "use server" - await signIn() - }} - > - -
- ) -} -``` - -
- - -```ts filename="src/routes/+page.svelte" - - -
- -
-``` - -
-
- -### Signin - -Start your application, click on the sign in button we just added, and you should see Auth.js built-in sign in page with the option to sign in with your email: - - - -Insert your email and click "Sign in with Email". You should receive an email from Auth.js, click on it and should be redirected to your application, landing already authenticated. - -
- -For more information on this provider go to the [Nodemailer docs page](/getting-started/providers/nodemailer). diff --git a/docs/components/MagicLinkInstructions/content/PostmarkSetup.mdx b/docs/components/MagicLinkInstructions/content/PostmarkSetup.mdx deleted file mode 100644 index 6756a0e3f0..0000000000 --- a/docs/components/MagicLinkInstructions/content/PostmarkSetup.mdx +++ /dev/null @@ -1,115 +0,0 @@ -import { Callout, Steps } from "nextra/components" -import { Code } from "@/components/Code" -import { Link } from "@/components/Link" -import { Screenshot } from "@/components/Screenshot" -import MagicLink from "../../../public/img/magic-links/start.webp" - -### Postmark Setup - - - -### Database Adapter - -Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, -a database is required for passwordless login to work as verification tokens need to be stored. - -### Setup Environment Variables - -Auth.js will automatically pick up these if formatted like the example above. -You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. - -```bash filename=".env" -AUTH_POSTMARK_KEY=abc123 -``` - -### Setup Provider - -Let’s enable `Postmark` as a sign in option in our Auth.js configuration. You’ll have to import the `Postmark` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: - - - - -```ts filename="./auth.ts" -import NextAuth from "next-auth" -import Postmark from "next-auth/providers/postmark" - -export const { handlers, auth, signIn, signOut } = NextAuth({ - providers: [Postmark], -}) -``` - - - - -```ts filename="./src/auth.ts" -import SvelteKitAuth from "@auth/sveltekit" -import Postmark from "@auth/sveltekit/providers/postmark" - -export const { handle, signIn, signOut } = SvelteKitAuth({ - providers: [Postmark], -}) -``` - -```ts filename="./src/hooks.server.ts" -export { handle } from "./auth" -``` - - - - -### Add Signin Button - -Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. - - - - -```tsx filename="./components/sign-in.tsx" -import { signIn } from "../../auth.ts" - -export function SignIn() { - return ( -
{ - "use server" - await signIn("postmark", formData) - }} - > - - -
- ) -} -``` - -
- - -```html filename="src/routes/+page.svelte" - - -
- -
-``` - -
-
- -### Signin - -Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. - -
- - - Check our [Customising magic links emails](/) to learn how to change the look - and feel of the emails the user receives to sign in. - - -For more information on this provider go to the [Postmark docs page](/getting-started/providers/postmark). diff --git a/docs/components/MagicLinkInstructions/content/ResendSetup.mdx b/docs/components/MagicLinkInstructions/content/ResendSetup.mdx deleted file mode 100644 index 19e9e4e15a..0000000000 --- a/docs/components/MagicLinkInstructions/content/ResendSetup.mdx +++ /dev/null @@ -1,115 +0,0 @@ -import { Callout, Steps } from "nextra/components" -import { Code } from "@/components/Code" -import { Link } from "@/components/Link" -import { Screenshot } from "@/components/Screenshot" -import MagicLink from "../../../public/img/magic-links/start.webp" - -### Resend Setup - - - -### Database Adapter - -Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, -a database is required for passwordless login to work as verification tokens need to be stored. - -### Setup Environment Variables - -Auth.js will automatically pick up these if formatted like the example above. -You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. - -```bash filename=".env" -AUTH_RESEND_KEY=abc123 -``` - -### Setup Provider - -Let’s enable `Resend` as a sign in option in our Auth.js configuration. You’ll have to import the `Resend` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: - - - - -```ts filename="./auth.ts" -import NextAuth from "next-auth" -import Resend from "next-auth/providers/resend" - -export const { handlers, auth, signIn, signOut } = NextAuth({ - providers: [Resend], -}) -``` - - - - -```ts filename="./src/auth.ts" -import SvelteKitAuth from "@auth/sveltekit" -import Resend from "@auth/sveltekit/providers/resend" - -export const { handle, signIn, signOut } = SvelteKitAuth({ - providers: [Resend], -}) -``` - -```ts filename="./src/hooks.server.ts" -export { handle } from "./auth" -``` - - - - -### Add Signin Button - -Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. - - - - -```tsx filename="./components/sign-in.tsx" -import { signIn } from "../../auth.ts" - -export function SignIn() { - return ( -
{ - "use server" - await signIn("resend", formData) - }} - > - - -
- ) -} -``` - -
- - -```html filename="src/routes/+page.svelte" - - -
- -
-``` - -
-
- -### Signin - -Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. - -
- - - Check our [Customising magic links emails](/) to learn how to change the look - and feel of the emails the user receives to sign in. - - -For more information on this provider go to the [Resend docs page](/getting-started/providers/resend). diff --git a/docs/components/MagicLinkInstructions/content/SendgridSetup.mdx b/docs/components/MagicLinkInstructions/content/SendgridSetup.mdx deleted file mode 100644 index 87ba75c1d0..0000000000 --- a/docs/components/MagicLinkInstructions/content/SendgridSetup.mdx +++ /dev/null @@ -1,115 +0,0 @@ -import { Callout, Steps } from "nextra/components" -import { Code } from "@/components/Code" -import { Link } from "@/components/Link" -import { Screenshot } from "@/components/Screenshot" -import MagicLink from "../../../public/img/magic-links/start.webp" - -### Sendgrid Setup - - - -### Database Adapter - -Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, -a database is required for passwordless login to work as verification tokens need to be stored. - -### Setup Environment Variables - -Auth.js will automatically pick up these if formatted like the example above. -You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. - -```bash filename=".env" -AUTH_SENDGRID_KEY=abc123 -``` - -### Setup Provider - -Let’s enable `Sendgrid` as a sign in option in our Auth.js configuration. You’ll have to import the `Sendgrid` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: - - - - -```ts filename="./auth.ts" -import NextAuth from "next-auth" -import Sendgrid from "next-auth/providers/sendgrid" - -export const { handlers, auth, signIn, signOut } = NextAuth({ - providers: [Sendgrid], -}) -``` - - - - -```ts filename="./src/auth.ts" -import SvelteKitAuth from "@auth/sveltekit" -import Sendgrid from "@auth/sveltekit/providers/sendgrid" - -export const { handle, signIn, signOut } = SvelteKitAuth({ - providers: [Sendgrid], -}) -``` - -```ts filename="./src/hooks.server.ts" -export { handle } from "./auth" -``` - - - - -### Add Signin Button - -Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. - - - - -```tsx filename="./components/sign-in.tsx" -import { signIn } from "../../auth.ts" - -export function SignIn() { - return ( -
{ - "use server" - await signIn("sendgrid", formData) - }} - > - - -
- ) -} -``` - -
- - -```html filename="src/routes/+page.svelte" - - -
- -
-``` - -
-
- -### Signin - -Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. - -
- - - Check our [Customising magic links emails](/) to learn how to change the look - and feel of the emails the user receives to sign in. - - -For more information on this provider go to the [Sendgrid docs page](/getting-started/providers/sendgrid). diff --git a/docs/components/MagicLinkInstructions/index.tsx b/docs/components/MagicLinkInstructions/index.tsx deleted file mode 100644 index dfbee36320..0000000000 --- a/docs/components/MagicLinkInstructions/index.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { useState } from "react" -import cx from "classnames" -import NodemailerSetup from "./content/NodemailerSetup.mdx" -import ResendSetup from "./content/ResendSetup.mdx" -import SendgridSetup from "./content/SendgridSetup.mdx" -import PostmarkSetup from "./content/PostmarkSetup.mdx" - -const EmailTypes = { - Resend: "Resend", - Postmark: "Postmark", - Sendgrid: "Sendgrid", - Nodemailer: "Nodemailer", -} as const - -export function MagicLinkInstructions() { - const [activeEmailType, setActiveEmailType] = - useState("Resend") - - return ( -
-
- - - - -
- {activeEmailType === EmailTypes.Resend ? : null} - {activeEmailType === EmailTypes.Sendgrid ? : null} - {activeEmailType === EmailTypes.Nodemailer ? : null} - {activeEmailType === EmailTypes.Postmark ? : null} -
- ) -} diff --git a/docs/pages/getting-started/authentication/email.mdx b/docs/pages/getting-started/authentication/email.mdx index 0cebd3e9c2..7e6838c4bd 100644 --- a/docs/pages/getting-started/authentication/email.mdx +++ b/docs/pages/getting-started/authentication/email.mdx @@ -2,8 +2,14 @@ title: Email Providers --- -import { Callout } from "nextra/components" -import { MagicLinkInstructions } from "@/components/MagicLinkInstructions" +import { useState } from "react" +import { RichTabs } from "@/components/RichTabs" + +import { Callout, Steps, Tabs } from "nextra/components" +import { Code } from "@/components/Code" +import { Link } from "@/components/Link" +import { Screenshot } from "@/components/Screenshot" +import MagicLink from "../../../public/img/magic-links/start.webp" # Email Provider @@ -17,4 +23,614 @@ This login mechanism starts by the user providing their email address at the log is not possible to enable an email provider without using a database. - +### Providers + +
+ + + + +
Resend
+
+ + +
Sendgrid
+
+ + +
Nodemailer
+
+ + +
Postmark
+
+
+ + +### Resend Setup + + + +### Database Adapter + +Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, +a database is required for passwordless login to work as verification tokens need to be stored. + +### Setup Environment Variables + +Auth.js will automatically pick up these if formatted like the example above. +You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. + +```bash filename=".env" +AUTH_RESEND_KEY=abc123 +``` + +### Setup Provider + +Let’s enable `Resend` as a sign in option in our Auth.js configuration. You’ll have to import the `Resend` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: + + + + +```ts filename="./auth.ts" +import NextAuth from "next-auth" +import Resend from "next-auth/providers/resend" + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers: [Resend], +}) +``` + + + + +```ts filename="./src/auth.ts" +import SvelteKitAuth from "@auth/sveltekit" +import Resend from "@auth/sveltekit/providers/resend" + +export const { handle, signIn, signOut } = SvelteKitAuth({ + providers: [Resend], +}) +``` + +```ts filename="./src/hooks.server.ts" +export { handle } from "./auth" +``` + + + + +### Add Signin Button + +Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. + + + + +```tsx filename="./components/sign-in.tsx" +import { signIn } from "../../auth.ts" + +export function SignIn() { + return ( +
{ + "use server" + await signIn("resend", formData) + }} + > + + +
+ ) +} +``` + +
+ + +```html filename="src/routes/+page.svelte" + + +
+ +
+``` + +
+
+ +### Signin + +Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. + +
+ + + Check our [Customising magic links emails](/) to learn how to change the look + and feel of the emails the user receives to sign in. + + +For more information on this provider go to the [Resend docs page](/getting-started/providers/resend). + +
+ + + +### Sendgrid Setup + + + +### Database Adapter + +Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, +a database is required for passwordless login to work as verification tokens need to be stored. + +### Setup Environment Variables + +Auth.js will automatically pick up these if formatted like the example above. +You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. + +```bash filename=".env" +AUTH_SENDGRID_KEY=abc123 +``` + +### Setup Provider + +Let’s enable `Sendgrid` as a sign in option in our Auth.js configuration. You’ll have to import the `Sendgrid` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: + + + + +```ts filename="./auth.ts" +import NextAuth from "next-auth" +import Sendgrid from "next-auth/providers/sendgrid" + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers: [Sendgrid], +}) +``` + + + + +```ts filename="./src/auth.ts" +import SvelteKitAuth from "@auth/sveltekit" +import Sendgrid from "@auth/sveltekit/providers/sendgrid" + +export const { handle, signIn, signOut } = SvelteKitAuth({ + providers: [Sendgrid], +}) +``` + +```ts filename="./src/hooks.server.ts" +export { handle } from "./auth" +``` + + + + +### Add Signin Button + +Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. + + + + +```tsx filename="./components/sign-in.tsx" +import { signIn } from "../../auth.ts" + +export function SignIn() { + return ( +
{ + "use server" + await signIn("sendgrid", formData) + }} + > + + +
+ ) +} +``` + +
+ + +```html filename="src/routes/+page.svelte" + + +
+ +
+``` + +
+
+ +### Signin + +Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. + +
+ + + Check our [Customising magic links emails](/) to learn how to change the look + and feel of the emails the user receives to sign in. + + +For more information on this provider go to the [Sendgrid docs page](/getting-started/providers/sendgrid). + +
+ + + +### Nodemailer Setup + + + +### Install `nodemailer` + +Auth.js does not include `nodemailer` as a dependency, so you'll need to install it yourself if you want to use the Nodemailer provider. + +```sh npm2yarn +npm install nodemailer +``` + +You will need access to an SMTP server, ideally from one of [the services known to work with nodemailer](https://community.nodemailer.com/2-0-0-beta/setup-smtp/well-known-services/). Alternatively, Nodemailer does support [other transport mechanisms](https://nodemailer.com/transports/). + +### Database Adapter + +Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, +a database is required for magic link login to work as verification tokens need to be stored. + +### SMTP Transport Configuration + +There are two ways to configure the SMTP server connection: using a connection string or a configuration object. + + + + +```bash filename=".env" +EMAIL_SERVER=smtp://username:password@smtp.example.com:587 +EMAIL_FROM=noreply@example.com +``` + + + + +```ts filename="./auth.ts" +import NextAuth from "next-auth" +import Nodemailer from "next-auth/providers/nodemailer" + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers: [ + Nodemailer({ + server: process.env.EMAIL_SERVER, + from: process.env.EMAIL_FROM, + }), + ], +}) +``` + + + + +```ts filename="./src/auth.ts" +import SvelteKitAuth from "@auth/sveltekit" +import Nodemailer from "@auth/sveltekit/providers/nodemailer" + +export const { handle, signIn, signOut } = SvelteKitAuth({ + providers: [ + Nodemailer({ + server: process.env.EMAIL_SERVER, + from: process.env.EMAIL_FROM, + }), + ], +}) +``` + +```ts filename="./src/hooks.server.ts" +export { handle } from "./auth" +``` + + + + + + + +```bash filename=".env" +EMAIL_SERVER_USER=username +EMAIL_SERVER_PASSWORD=password +EMAIL_SERVER_HOST=smtp.example.com +EMAIL_SERVER_PORT=587 +EMAIL_FROM=noreply@example.com +``` + + + + +```ts filename="./auth.ts" +import NextAuth from "next-auth" +import Nodemailer from "next-auth/providers/nodemailer" + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers: [ + Nodemailer({ + server: { + host: process.env.EMAIL_SERVER_HOST, + port: process.env.EMAIL_SERVER_PORT, + auth: { + user: process.env.EMAIL_SERVER_USER, + pass: process.env.EMAIL_SERVER_PASSWORD, + }, + }, + from: process.env.EMAIL_FROM, + }), + ], +}) +``` + + + + +```ts filename="./src/auth.ts" +import SvelteKitAuth from "@auth/sveltekit" +import Nodemailer from "@auth/sveltekit/providers/nodemailer" + +export const { handle, signIn, signOut } = SvelteKitAuth({ + providers: [ + Nodemailer({ + server: { + host: process.env.EMAIL_SERVER_HOST, + port: process.env.EMAIL_SERVER_PORT, + auth: { + user: process.env.EMAIL_SERVER_USER, + pass: process.env.EMAIL_SERVER_PASSWORD, + }, + }, + from: process.env.EMAIL_FROM, + }), + ], +}) +``` + +```ts filename="src/hooks.server.ts" +export { handle } from "./auth" +``` + + + + + + + + + Check our [Customising magic links emails](/TODO) to learn how to change the + look and feel of the emails the user receives to sign in. + + +### Signin Button + +Next, we can add a sign in button somewhere in your application like the Navbar. This will forward the user on to the Auth.js default signin page. + + + + +```tsx filename="./components/sign-in.tsx" +import { signIn } from "../../auth.ts" + +export function SignIn() { + return ( +
{ + "use server" + await signIn() + }} + > + +
+ ) +} +``` + +
+ + +```ts filename="src/routes/+page.svelte" + + +
+ +
+``` + +
+
+ +### Signin + +Start your application, click on the sign in button we just added, and you should see Auth.js built-in sign in page with the option to sign in with your email: + + + +Insert your email and click "Sign in with Email". You should receive an email from Auth.js, click on it and should be redirected to your application, landing already authenticated. + +
+ +For more information on this provider go to the [Nodemailer docs page](/getting-started/providers/nodemailer). + +
+ + +### Postmark Setup + + + +### Database Adapter + +Please make sure you've [setup a database adapter](/getting-started/database), as mentioned earlier, +a database is required for passwordless login to work as verification tokens need to be stored. + +### Setup Environment Variables + +Auth.js will automatically pick up these if formatted like the example above. +You can [also use a different name for the environment variables](/guides/environment-variables#oauth-variables) if needed, but then you’ll need to pass them to the provider manually. + +```bash filename=".env" +AUTH_POSTMARK_KEY=abc123 +``` + +### Setup Provider + +Let’s enable `Postmark` as a sign in option in our Auth.js configuration. You’ll have to import the `Postmark` provider from the package and pass it to the providers array we setup earlier in the Auth.js config file: + + + + +```ts filename="./auth.ts" +import NextAuth from "next-auth" +import Postmark from "next-auth/providers/postmark" + +export const { handlers, auth, signIn, signOut } = NextAuth({ + providers: [Postmark], +}) +``` + + + + +```ts filename="./src/auth.ts" +import SvelteKitAuth from "@auth/sveltekit" +import Postmark from "@auth/sveltekit/providers/postmark" + +export const { handle, signIn, signOut } = SvelteKitAuth({ + providers: [Postmark], +}) +``` + +```ts filename="./src/hooks.server.ts" +export { handle } from "./auth" +``` + + + + +### Add Signin Button + +Next, we can add a signin button somewhere in your application like the Navbar. This will send an email to the user containing the magic link to sign in. + + + + +```tsx filename="./components/sign-in.tsx" +import { signIn } from "../../auth.ts" + +export function SignIn() { + return ( +
{ + "use server" + await signIn("postmark", formData) + }} + > + + +
+ ) +} +``` + +
+ + +```html filename="src/routes/+page.svelte" + + +
+ +
+``` + +
+
+ +### Signin + +Start your application, once the user enters their Email and clicks on the signin button, they'll be redirected to a page that asks them to check their email. When they click on the link in their email, they will be signed in. + +
+ + + Check our [Customising magic links emails](/) to learn how to change the look + and feel of the emails the user receives to sign in. + + +For more information on this provider go to the [Postmark docs page](/getting-started/providers/postmark). + +
+ +
+
diff --git a/docs/public/img/providers/nodemailer.svg b/docs/public/img/providers/nodemailer.svg index 564083f77a..15f6d816e1 100644 --- a/docs/public/img/providers/nodemailer.svg +++ b/docs/public/img/providers/nodemailer.svg @@ -1,18 +1,7 @@ - + - - - - - - - - - - - From 39df901d9a1ecd307589521b75216b14af509bfa Mon Sep 17 00:00:00 2001 From: ndom91 Date: Sat, 13 Apr 2024 19:18:21 +0200 Subject: [PATCH 4/5] chore(docs): email provider list wrap --- docs/pages/getting-started/authentication/email.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pages/getting-started/authentication/email.mdx b/docs/pages/getting-started/authentication/email.mdx index 7e6838c4bd..c33c9b8d6e 100644 --- a/docs/pages/getting-started/authentication/email.mdx +++ b/docs/pages/getting-started/authentication/email.mdx @@ -32,7 +32,7 @@ This login mechanism starts by the user providing their email address at the log defaultValue="resend" className="w-full flex flex-col" > - + Date: Sat, 13 Apr 2024 19:46:56 +0200 Subject: [PATCH 5/5] chore(docs): downgrade phosphor-icons/react back to 2.0.15 --- docs/package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/package.json b/docs/package.json index 36714cec7b..74d725d5d4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -27,7 +27,7 @@ "@ark-ui/react": "^2.2.3", "@inkeep/widgets": "^0.2.272", "@next/third-parties": "^14.2.1", - "@phosphor-icons/react": "^2.1.4", + "@phosphor-icons/react": "^2.0.15", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-tabs": "^1.0.4", "@vercel/analytics": "^1.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a4e138071..ea9ade5398 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -181,8 +181,8 @@ importers: specifier: ^14.2.1 version: 14.2.1(next@14.2.1)(react@18.2.0) '@phosphor-icons/react': - specifier: ^2.1.4 - version: 2.1.4(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.0.15 + version: 2.0.15(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-accordion': specifier: ^1.1.2 version: 1.1.2(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0) @@ -6651,8 +6651,8 @@ packages: webcrypto-core: 1.7.8 dev: true - /@phosphor-icons/react@2.1.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EeNwgcg1aeK5vG/JYVTullnZzk5zjftOrjLb1iYetyhn5ImFFREc+xG0FAB/dAY277DGDSF8pNdNbqG1SUKIxQ==} + /@phosphor-icons/react@2.0.15(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PQKNcRrfERlC8gJGNz0su0i9xVmeubXSNxucPcbCLDd9u0cwJVTEyYK87muul/svf0UXFdL2Vl6bbeOhT1Mwow==} engines: {node: '>=10'} peerDependencies: react: '>= 16.8'