mirror of
https://github.com/SrIzan10/next-auth.git
synced 2026-05-01 10:55:20 +00:00
Compare commits
22 Commits
@auth/core
...
patch-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
947d2bb256 | ||
|
|
6d3e631516 | ||
|
|
a035bde1a8 | ||
|
|
8b38d32430 | ||
|
|
1e5f840a26 | ||
|
|
5981712681 | ||
|
|
dd2b85c6a5 | ||
|
|
3c0475acae | ||
|
|
416881c4c9 | ||
|
|
b91167091c | ||
|
|
497dacff41 | ||
|
|
2a1e1d1cd2 | ||
|
|
00f65b3476 | ||
|
|
470e55f8db | ||
|
|
d722962206 | ||
|
|
cee1bddbd5 | ||
|
|
e0ae913e5c | ||
|
|
1db27fcd07 | ||
|
|
95407df289 | ||
|
|
22adc2eb3c | ||
|
|
725f976b39 | ||
|
|
28ae5d4639 |
@@ -3,7 +3,7 @@ import { Protected } from "~/components";
|
||||
export const { routeData, Page } = Protected((session) => {
|
||||
return (
|
||||
<main class="flex flex-col gap-2 items-center">
|
||||
<h1>This is a proteced route</h1>
|
||||
<h1>This is a protected route</h1>
|
||||
</main>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -9,7 +9,7 @@ import startAppAndSignInImg from "./img/getting-started-app-start.png"
|
||||
import githubAuthCredentials from "./img/getting-started-github-auth.png"
|
||||
import nextAuthUserLoggedIn from "./img/getting-started-nextauth-success.png"
|
||||
|
||||
We know, authentication is hard. Is a rabbit hole and it's easy to get lost on it. The goal of making Auth.js is that you can add authentication easily to your project with just a few lines of code.
|
||||
We know, authentication is hard. It's a rabbit hole and it's easy to get lost on it. The goal of making Auth.js is that you can add authentication easily to your project with just a few lines of code.
|
||||
|
||||
The easiest way is to setup Auth.js with an [OAuth](https://en.wikipedia.org/wiki/OAuth) provider. In this tutorial we'll be setting Auth.js in a **Next.js app** to be able to login with **Github**.
|
||||
|
||||
@@ -214,7 +214,7 @@ Note that, for each provider, the configuration process will be similar to what
|
||||
2. Create create your OAuth application within it
|
||||
3. Set the callback URL
|
||||
4. Get the Client ID and Generate a Client Secret
|
||||
:::
|
||||
:::
|
||||
|
||||
## 3. Wiring all together
|
||||
|
||||
@@ -253,11 +253,13 @@ Once inserted and correct, Github will redirect the user to our app and Auth.js
|
||||
<img src={nextAuthUserLoggedIn} />
|
||||
|
||||
Great! We have completed the whole E2E authentication flow setup so that users can login in our application through Github!
|
||||
:::
|
||||
|
||||
:::info
|
||||
You can create your own Sign In page instead of using the default one from Auth.js. You can learn how to do so in our dedicated guide for it.
|
||||
You can create your own Sign In page instead of using the default one from Auth.js. You can learn how to do so in our [dedicated guide for it](/guides/basics/pages).
|
||||
:::
|
||||
|
||||
|
||||
## 4. Deploying to production
|
||||
|
||||
### Configuring different environments
|
||||
|
||||
@@ -72,11 +72,11 @@ export default NextAuth({
|
||||
providers: [
|
||||
Email({
|
||||
server: {
|
||||
host: process.env.EMAIL_SERVER_HOST,
|
||||
port: Number(process.env.EMAIL_SERVER_PORT),
|
||||
host: process.env.SMTP_HOST,
|
||||
port: Number(process.env.SMTP_PORT),
|
||||
auth: {
|
||||
user: process.env.EMAIL_SERVER_USER,
|
||||
pass: process.env.EMAIL_SERVER_PASSWORD,
|
||||
user: process.env.SMTP_USER,
|
||||
pass: process.env.SMTP_PASSWORD,
|
||||
},
|
||||
},
|
||||
from: process.env.EMAIL_FROM,
|
||||
@@ -147,8 +147,8 @@ import EmailProvider from "next-auth/providers/email"
|
||||
|
||||
export default NextAuth({
|
||||
secret: process.env.NEXTAUTH_SECRET,
|
||||
+ adapter: MongoDBAdapter(clientPromise),
|
||||
providers: [
|
||||
+ adapter: MongoDBAdapter(clientPromise),
|
||||
EmailProvider({
|
||||
server: {
|
||||
host: process.env.EMAIL_SERVER_HOST,
|
||||
@@ -188,7 +188,7 @@ Let's now check our email, and look for one sent from NextAuth (check your spam
|
||||
|
||||
<img src={mailboxImg} alt="Screenshot of mailbox" />
|
||||
|
||||
Nice! We got one, coming from the sender specified in the `EMAIL_FROM` environment variable from our configuration above and that's is the sender we verified in Sengrid.
|
||||
Nice! We got one, coming from the sender specified in the `EMAIL_FROM` environment variable from our configuration above and that's is the sender we verified in Sendgrid.
|
||||
|
||||
Click on "Sign in" and a new browser tab will open, you should then land on your application as authenticated!
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ export default Auth(new Request("https://example.com"), {
|
||||
// Save the access token and refresh token in the JWT on the initial login
|
||||
return {
|
||||
access_token: account.access_token,
|
||||
expires_at: Date.now() + account.expires_in * 1000,
|
||||
expires_at: Math.floor(Date.now() / 1000 + account.expires_in),
|
||||
refresh_token: account.refresh_token,
|
||||
}
|
||||
} else if (Date.now() < token.expires_at) {
|
||||
} else if (Date.now() < token.expires_at * 1000) {
|
||||
// If the access token has not expired yet, return it
|
||||
return token
|
||||
} else {
|
||||
@@ -74,7 +74,7 @@ export default Auth(new Request("https://example.com"), {
|
||||
return {
|
||||
...token, // Keep the previous token properties
|
||||
access_token: tokens.access_token,
|
||||
expires_at: Date.now() + tokens.expires_in * 1000,
|
||||
expires_at: Math.floor(Date.now() / 1000 + tokens.expires_in),
|
||||
// Fall back to old refresh token, but note that
|
||||
// many providers may only allow using a refresh token once.
|
||||
refresh_token: tokens.refresh_token ?? token.refresh_token,
|
||||
@@ -136,7 +136,7 @@ export default Auth(new Request("https://example.com"), {
|
||||
const [google] = await prisma.account.findMany({
|
||||
where: { userId: user.id, provider: "google" },
|
||||
})
|
||||
if (google.expires_at < Date.now()) {
|
||||
if (google.expires_at * 1000 < Date.now()) {
|
||||
// If the access token has expired, try to refresh it
|
||||
try {
|
||||
// https://accounts.google.com/.well-known/openid-configuration
|
||||
@@ -159,7 +159,7 @@ export default Auth(new Request("https://example.com"), {
|
||||
await prisma.account.update({
|
||||
data: {
|
||||
access_token: tokens.access_token,
|
||||
expires_at: Date.now() + tokens.expires_in * 1000,
|
||||
expires_at: Math.floor(Date.now() / 1000 + tokens.expires_in),
|
||||
refresh_token: tokens.refresh_token ?? google.refresh_token,
|
||||
},
|
||||
where: {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Corporate proxy
|
||||
---
|
||||
|
||||
Using Auth.js behind a corporate proxy is not supported out of the box. This is due to the fact that the underlying library we use, [`openid-client`](https://npm.im/openid-client) which uses the built-in Node.js `http` / `https` libraries, and those do not support proxys by default:
|
||||
Using Auth.js behind a corporate proxy is not supported out of the box. This is due to the fact that the underlying library we use, [`openid-client`](https://npm.im/openid-client) which uses the built-in Node.js `http` / `https` libraries, and those do not support proxies by default:
|
||||
|
||||
- [`http` docs](https://nodejs.org/dist/latest-v18.x/docs/api/http.html)
|
||||
- [`https` docs](https://nodejs.org/dist/latest-v18.x/docs/api/https.html)
|
||||
|
||||
@@ -26,7 +26,7 @@ export default NextAuth({
|
||||
password: { label: "Password", type: "password" },
|
||||
},
|
||||
async authorize(credentials, req) {
|
||||
// You might want to pull this call out so we're not making a new LDAP client on every login attemp
|
||||
// You might want to pull this call out so we're not making a new LDAP client on every login attempt
|
||||
const client = ldap.createClient({
|
||||
url: process.env.LDAP_URI,
|
||||
})
|
||||
|
||||
@@ -23,8 +23,8 @@ AUTH_SECRET=your_auth_secret
|
||||
in this example we are using github so make sure to set the following environment variables:
|
||||
|
||||
```
|
||||
GITHUB_ID=your_github_oatuh_id
|
||||
GITHUB_SECRET=your_github_oatuh_secret
|
||||
GITHUB_ID=your_github_oauth_id
|
||||
GITHUB_SECRET=your_github_oauth_secret
|
||||
```
|
||||
|
||||
```ts
|
||||
|
||||
@@ -11,7 +11,7 @@ When using SSR, I recommend creating a `Protected` component that will trigger s
|
||||
|
||||
```tsx
|
||||
// components/Protected.tsx
|
||||
import { type Session } from "@auth/core";
|
||||
import { type Session } from "@auth/core/types";
|
||||
import { getSession } from "@auth/solid-start";
|
||||
import { Component, Show } from "solid-js";
|
||||
import { useRouteData } from "solid-start";
|
||||
@@ -60,7 +60,7 @@ import Protected from "~/components/Protected";
|
||||
export const { routeData, Page } = Protected((session) => {
|
||||
return (
|
||||
<main class="flex flex-col gap-2 items-center">
|
||||
<h1>This is a proteced route</h1>
|
||||
<h1>This is a protected route</h1>
|
||||
</main>
|
||||
);
|
||||
});
|
||||
@@ -110,7 +110,7 @@ And now you can easily create a protected route:
|
||||
export default () => {
|
||||
return (
|
||||
<main class="flex flex-col gap-2 items-center">
|
||||
<h1>This is a proteced route</h1>
|
||||
<h1>This is a protected route</h1>
|
||||
</main>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ providers: [
|
||||
```
|
||||
|
||||
:::warning
|
||||
Trakt does not allow hotlinking images. Even the authenticated user's profie picture.
|
||||
Trakt does not allow hotlinking images. Even the authenticated user's profile picture.
|
||||
:::
|
||||
|
||||
:::warning
|
||||
|
||||
@@ -91,7 +91,7 @@ type VerificationToken {
|
||||
## Securing your database
|
||||
|
||||
For production deployments you will want to restrict the access to the types used
|
||||
by next-auth. The main form of access control used in Dgraph is via `@auth` directive alongide types in the schema.
|
||||
by next-auth. The main form of access control used in Dgraph is via `@auth` directive alongside types in the schema.
|
||||
|
||||
#### Secure schema
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ for (const file of files) {
|
||||
body.push(" */")
|
||||
const name = file.replace(/\.md$/, "")
|
||||
result[name] = {
|
||||
description: `Snippet genereated from ${file} by pnpm \`generate-snippet\``,
|
||||
description: `Snippet generated from ${file} by pnpm \`generate-snippet\``,
|
||||
scope: "typescript",
|
||||
prefix: name,
|
||||
body,
|
||||
|
||||
@@ -7,7 +7,7 @@ import { Auth } from "@auth/core"
|
||||
import $1 from "@auth/core/providers/$2"
|
||||
|
||||
const request = new Request("https://example.com")
|
||||
const resposne = await AuthHandler(request, {
|
||||
const response = await AuthHandler(request, {
|
||||
providers: [$1({ clientId: "", clientSecret: "" })],
|
||||
})
|
||||
```
|
||||
|
||||
@@ -9,7 +9,7 @@ import Auth from "@auth/core"
|
||||
import { $1 } from "@auth/core/providers/$2"
|
||||
|
||||
const request = new Request("https://example.com")
|
||||
const resposne = await AuthHandler(request, {
|
||||
const response = await AuthHandler(request, {
|
||||
providers: [$1({ clientId: "", clientSecret: "" })],
|
||||
})
|
||||
```
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"value": "sveltekit.authjs.dev"
|
||||
}
|
||||
],
|
||||
"destination": "https://authjs.dev/reference/sveltekit/modules/main"
|
||||
"destination": "https://authjs.dev/reference/sveltekit"
|
||||
},
|
||||
{
|
||||
"source": "/",
|
||||
@@ -93,7 +93,7 @@
|
||||
"value": "errors.authjs.dev"
|
||||
}
|
||||
],
|
||||
"destination": "https://authjs.dev/reference/core/modules/errors/:path*"
|
||||
"destination": "https://authjs.dev/reference/core/errors/:path*"
|
||||
},
|
||||
{
|
||||
"source": "/:path(.*)",
|
||||
@@ -123,7 +123,7 @@
|
||||
"value": "providers.authjs.dev"
|
||||
}
|
||||
],
|
||||
"destination": "https://authjs.dev/reference/core/functions/providers_:path.default"
|
||||
"destination": "https://authjs.dev/reference/core/providers_:path.default"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ The simplest way to use Dgraph is by copy pasting the unsecure schema into your
|
||||
|
||||
## Securing your database
|
||||
|
||||
Fore sake of security and mostly if your client directly communicate with the graphql server you obviously want to restrict the access to the types used by next-auth. That's why you see a lot of @auth directive alongide this types in the schema.
|
||||
Fore sake of security and mostly if your client directly communicate with the graphql server you obviously want to restrict the access to the types used by next-auth. That's why you see a lot of @auth directive alongside this types in the schema.
|
||||
|
||||
### Dgraph.Authorization
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ export default NextAuth({
|
||||
The table respects the single table design pattern. This has many advantages:
|
||||
|
||||
- Only one table to manage, monitor and provision.
|
||||
- Querying relations is faster than with multi-table schemas (for eg. retreiving all sessions for a user).
|
||||
- Querying relations is faster than with multi-table schemas (for eg. retrieving all sessions for a user).
|
||||
- Only one table needs to be replicated, if you want to go multi-region.
|
||||
|
||||
Here is a schema of the table :
|
||||
|
||||
@@ -375,14 +375,14 @@ function generateUpdateExpression(object: Record<string, any>): {
|
||||
ExpressionAttributeNames: Record<string, string>
|
||||
ExpressionAttributeValues: Record<string, unknown>
|
||||
} {
|
||||
const formatedSession = format.to(object)
|
||||
const formattedSession = format.to(object)
|
||||
let UpdateExpression = "set"
|
||||
const ExpressionAttributeNames: Record<string, string> = {}
|
||||
const ExpressionAttributeValues: Record<string, unknown> = {}
|
||||
for (const property in formatedSession) {
|
||||
for (const property in formattedSession) {
|
||||
UpdateExpression += ` #${property} = :${property},`
|
||||
ExpressionAttributeNames["#" + property] = property
|
||||
ExpressionAttributeValues[":" + property] = formatedSession[property]
|
||||
ExpressionAttributeValues[":" + property] = formattedSession[property]
|
||||
}
|
||||
UpdateExpression = UpdateExpression.slice(0, -1)
|
||||
return {
|
||||
|
||||
@@ -67,7 +67,7 @@ export function getConverter<Document extends Record<string, any>>(options: {
|
||||
fromFirestore(
|
||||
snapshot: FirebaseFirestore.QueryDocumentSnapshot<Document>
|
||||
): Document {
|
||||
const document = snapshot.data()! // we can guarentee it exists
|
||||
const document = snapshot.data()! // we can guarantee it exists
|
||||
|
||||
const object: Record<string, unknown> = {}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Depending on your architecture you can use PouchDB's http adapter to reach any d
|
||||
|
||||
1. Install `next-auth` and `@next-auth/pouchdb-adapter`, as well as `pouchdb`.
|
||||
|
||||
> **Prerequesite**: Your PouchDB instance MUST provide the `pouchdb-find` plugin since it is used internally by the adapter to build and manage indexes
|
||||
> **Prerequisite**: Your PouchDB instance MUST provide the `pouchdb-find` plugin since it is used internally by the adapter to build and manage indexes
|
||||
|
||||
```js
|
||||
npm install next-auth @next-auth/pouchdb-adapter pouchdb
|
||||
|
||||
@@ -41,7 +41,7 @@ export const PouchDBAdapter: Adapter<
|
||||
> = (pouchdb) => {
|
||||
return {
|
||||
async getAdapter({ session, secret, ...appOptions }) {
|
||||
// create PoucDB indexes if they don't exist
|
||||
// create PouchDB indexes if they don't exist
|
||||
const res = await pouchdb.getIndexes()
|
||||
const indexes = res.indexes.map((index) => index.name, [])
|
||||
if (!indexes.includes("nextAuthUserByEmail")) {
|
||||
|
||||
@@ -24,7 +24,7 @@ This is the Upstash Redis adapter for [`next-auth`](https://authjs.dev). This pa
|
||||
npm install next-auth @next-auth/upstash-redis-adapter @upstash/redis
|
||||
```
|
||||
|
||||
2. Add the follwing code to your `pages/api/[...nextauth].js` next-auth configuration object.
|
||||
2. Add the following code to your `pages/api/[...nextauth].js` next-auth configuration object.
|
||||
|
||||
```js
|
||||
import NextAuth from "next-auth"
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@panva/hkdf": "^1.0.2",
|
||||
"@panva/hkdf": "^1.0.4",
|
||||
"cookie": "0.5.0",
|
||||
"jose": "^4.11.1",
|
||||
"oauth4webapi": "^2.0.6",
|
||||
@@ -93,4 +93,4 @@
|
||||
"postcss": "8.4.19",
|
||||
"postcss-nested": "6.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* A database adapter provides a common interface for Auth.js so that it can work with
|
||||
* _any_ database/ORM adapter without concerning itself with the implementation details of the database/ORM.
|
||||
*
|
||||
* Auth.js supports 2 session strtategies to persist the login state of a user.
|
||||
* Auth.js supports 2 session strategies to persist the login state of a user.
|
||||
* The default is to use a cookie + {@link https://authjs.dev/concepts/session-strategies#jwt JWT}
|
||||
* based session store (`strategy: "jwt"`),
|
||||
* but you can also use a database adapter to store the session in a database.
|
||||
@@ -26,7 +26,7 @@
|
||||
*
|
||||
* ## Usage
|
||||
*
|
||||
* {@link https://authjs.dev/reference/adapters/overview Built-in adapters} already implement this interfac, so you likely won't need to
|
||||
* {@link https://authjs.dev/reference/adapters/overview Built-in adapters} already implement this interface, so you likely won't need to
|
||||
* implement it yourself. If you do, you can use the following example as a
|
||||
* starting point.
|
||||
*
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* ```ts
|
||||
* import { Auth } from "@auth/core"
|
||||
*
|
||||
* const request = new Request("https://example.com"
|
||||
* const request = new Request("https://example.com")
|
||||
* const response = await Auth(request, {...})
|
||||
*
|
||||
* console.log(response instanceof Response) // true
|
||||
@@ -166,7 +166,7 @@ export async function Auth(
|
||||
* const response = await AuthHandler(request, authConfig)
|
||||
* ```
|
||||
*
|
||||
* @see [Initiailzation](https://authjs.dev/reference/configuration/auth-options)
|
||||
* @see [Initialization](https://authjs.dev/reference/configuration/auth-options)
|
||||
*/
|
||||
export interface AuthConfig {
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* issued and used by Auth.js.
|
||||
*
|
||||
* The JWT issued by Auth.js is _encrypted by default_, using the _A256GCM_ algorithm ({@link https://www.rfc-editor.org/rfc/rfc7516 JWE}).
|
||||
* It uses the `AUTH_SECRET` environment variable to dervice a sufficient encryption key.
|
||||
* It uses the `AUTH_SECRET` environment variable to derive a sufficient encryption key.
|
||||
*
|
||||
* :::info Note
|
||||
* Auth.js JWTs are meant to be used by the same app that issued them.
|
||||
@@ -203,7 +203,7 @@ export interface JWTOptions {
|
||||
/**
|
||||
* The secret used to encode/decode the Auth.js issued JWT.
|
||||
*
|
||||
* @deprecated Set the `AUTH_SECRET` environment vairable or
|
||||
* @deprecated Set the `AUTH_SECRET` environment variable or
|
||||
* use the top-level `secret` option instead
|
||||
*/
|
||||
secret: string
|
||||
|
||||
@@ -15,8 +15,8 @@ import type { SessionToken } from "./cookie.js"
|
||||
* It prevents insecure behaviour, such as linking OAuth accounts unless a user is
|
||||
* signed in and authenticated with an existing valid account.
|
||||
*
|
||||
* All verification (e.g. OAuth flows or email address verificaiton flows) are
|
||||
* done prior to this handler being called to avoid additonal complexity in this
|
||||
* All verification (e.g. OAuth flows or email address verification flows) are
|
||||
* done prior to this handler being called to avoid additional complexity in this
|
||||
* handler.
|
||||
*/
|
||||
export async function handleLogin(
|
||||
@@ -203,7 +203,7 @@ export async function handleLogin(
|
||||
// accounts (by email or provider account id)...
|
||||
//
|
||||
// If no account matching the same [provider].id or .email exists, we can
|
||||
// create a new account for the user, link it to the OAuth acccount and
|
||||
// create a new account for the user, link it to the OAuth account and
|
||||
// create a new session for them so they are signed in with it.
|
||||
const { id: _, ...newUser } = { ...profile, emailVerified: null }
|
||||
user = await createUser(newUser)
|
||||
|
||||
@@ -16,7 +16,7 @@ interface CreateCSRFTokenParams {
|
||||
* where 'token' is the CSRF token and 'hash' is a hash made of the token and
|
||||
* the secret, and the two values are joined by a pipe '|'. By storing the
|
||||
* value and the hash of the value (with the secret used as a salt) we can
|
||||
* verify the cookie was set by the server and not by a malicous attacker.
|
||||
* verify the cookie was set by the server and not by a malicious attacker.
|
||||
*
|
||||
* For more details, see the following OWASP links:
|
||||
* https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#double-submit-cookie
|
||||
|
||||
@@ -60,7 +60,7 @@ export async function init({
|
||||
|
||||
const maxAge = 30 * 24 * 60 * 60 // Sessions expire after 30 days of being idle by default
|
||||
|
||||
// User provided options are overriden by other options,
|
||||
// User provided options are overridden by other options,
|
||||
// except for the options with special handling above
|
||||
const options: InternalOptions = {
|
||||
debug: false,
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
--color-control-border: #bbb;
|
||||
--color-button-active-background: #f9f9f9;
|
||||
--color-button-active-border: #aaa;
|
||||
--color-seperator: #ccc;
|
||||
--color-separator: #ccc;
|
||||
}
|
||||
|
||||
.__next-auth-theme-dark {
|
||||
@@ -26,7 +26,7 @@
|
||||
--color-control-border: #555;
|
||||
--color-button-active-background: #060606;
|
||||
--color-button-active-border: #666;
|
||||
--color-seperator: #444;
|
||||
--color-separator: #444;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
@@ -38,7 +38,7 @@
|
||||
--color-control-border: #555;
|
||||
--color-button-active-background: #060606;
|
||||
--color-button-active-border: #666;
|
||||
--color-seperator: #444;
|
||||
--color-separator: #444;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,7 +218,7 @@ a.site {
|
||||
hr {
|
||||
display: block;
|
||||
border: 0;
|
||||
border-top: 1px solid var(--color-seperator);
|
||||
border-top: 1px solid var(--color-separator);
|
||||
margin: 2rem auto 1rem auto;
|
||||
overflow: visible;
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ export async function callback(params: {
|
||||
// Callback URL is already verified at this point, so safe to use if specified
|
||||
return { redirect: callbackUrl, cookies }
|
||||
} else if (provider.type === "credentials" && method === "POST") {
|
||||
const credentials = body
|
||||
const credentials = body ?? {}
|
||||
|
||||
// TODO: Forward the original request as is, instead of reconstructing it
|
||||
Object.entries(query ?? {}).forEach(([k, v]) =>
|
||||
|
||||
@@ -84,7 +84,7 @@ export interface Auth0Profile {
|
||||
* import Auth0 from "@auth/core/providers/auth0"
|
||||
*
|
||||
* const request = new Request("https://example.com")
|
||||
* const resposne = await Auth(request, {
|
||||
* const response = await Auth(request, {
|
||||
* providers: [Auth0({ clientId: "", clientSecret: "", issuer: "" })],
|
||||
* })
|
||||
* ```
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { Awaitable, User } from "../types.js"
|
||||
import type { JSXInternal } from "preact/src/jsx.js"
|
||||
|
||||
/**
|
||||
* Besieds providing type safety inside {@link CredentialsConfig.authorize}
|
||||
* Besides providing type safety inside {@link CredentialsConfig.authorize}
|
||||
* it also determines how the credentials input fields will be rendered
|
||||
* on the default sign in page.
|
||||
*/
|
||||
@@ -40,8 +40,16 @@ export interface CredentialsConfig<
|
||||
* //...
|
||||
*/
|
||||
authorize: (
|
||||
/** See {@link CredentialInput} */
|
||||
credentials: Record<keyof CredentialsInputs, string> | undefined,
|
||||
/**
|
||||
* The available keys are determined by {@link CredentialInput}.
|
||||
*
|
||||
* @note The existence/correctness of a field cannot be guaranteed at compile time,
|
||||
* so you should always validate the input before using it.
|
||||
*
|
||||
* You can add basic validation depending on your use case,
|
||||
* or you can use a popular library like [Zod](https://zod.dev) for example.
|
||||
*/
|
||||
credentials: Partial<Record<keyof CredentialsInputs, unknown>>,
|
||||
/** The original request is forward for convenience */
|
||||
request: Request
|
||||
) => Awaitable<User | null>
|
||||
@@ -71,10 +79,10 @@ export type CredentialsProviderType = "Credentials"
|
||||
* @example
|
||||
* ```js
|
||||
* import Auth from "@auth/core"
|
||||
* import { Credentials } from "@auth/core/providers/credentials"
|
||||
* import Credentials from "@auth/core/providers/credentials"
|
||||
*
|
||||
* const request = new Request("https://example.com")
|
||||
* const resposne = await AuthHandler(request, {
|
||||
* const response = await AuthHandler(request, {
|
||||
* providers: [
|
||||
* Credentials({
|
||||
* credentials: {
|
||||
|
||||
@@ -82,7 +82,7 @@ export interface EmailConfig extends CommonProviderOptions {
|
||||
export type EmailProviderType = "email"
|
||||
|
||||
/** TODO: */
|
||||
export function Email(config: EmailConfig): EmailConfig {
|
||||
export default function Email(config: EmailConfig): EmailConfig {
|
||||
return {
|
||||
id: "email",
|
||||
type: "email",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** @type {import(".").OAuthProvider} */
|
||||
export default function Foursquare(options) {
|
||||
const { apiVersion = "20210801" } = options
|
||||
const { apiVersion = "20230131" } = options
|
||||
return {
|
||||
id: "foursquare",
|
||||
name: "Foursquare",
|
||||
@@ -15,7 +15,7 @@ export default function Foursquare(options) {
|
||||
return fetch(url).then((res) => res.json())
|
||||
},
|
||||
},
|
||||
profile({ response: { profile } }) {
|
||||
profile({ response: { user: profile } }) {
|
||||
return {
|
||||
id: profile.id,
|
||||
name: `${profile.firstName} ${profile.lastName}`,
|
||||
|
||||
@@ -78,7 +78,7 @@ export interface GitHubProfile {
|
||||
* import GitHub from "@auth/core/providers/github"
|
||||
*
|
||||
* const request = new Request("https://example.com")
|
||||
* const resposne = await Auth(request, {
|
||||
* const response = await Auth(request, {
|
||||
* providers: [GitHub({ clientId: "", clientSecret: "" })],
|
||||
* })
|
||||
* ```
|
||||
|
||||
@@ -54,10 +54,10 @@ export interface GitLabProfile extends Record<string, any> {
|
||||
*
|
||||
* ```js
|
||||
* import Auth from "@auth/core"
|
||||
* import { GitLab } from "@auth/core/providers/gitlab"
|
||||
* import GitLab from "@auth/core/providers/gitlab"
|
||||
*
|
||||
* const request = new Request("https://example.com")
|
||||
* const resposne = await AuthHandler(request, {
|
||||
* const response = await AuthHandler(request, {
|
||||
* providers: [
|
||||
* GitLab({clientId: "", clientSecret: ""})
|
||||
* ]
|
||||
|
||||
@@ -4,11 +4,8 @@ import type {
|
||||
CredentialsConfig,
|
||||
CredentialsProviderType,
|
||||
} from "./credentials.js"
|
||||
import type {
|
||||
Email as EmailProvider,
|
||||
EmailConfig,
|
||||
EmailProviderType,
|
||||
} from "./email.js"
|
||||
import type EmailProvider from "./email.js"
|
||||
import type { EmailConfig, EmailProviderType } from "./email.js"
|
||||
import type {
|
||||
OAuth2Config,
|
||||
OAuthConfig,
|
||||
|
||||
@@ -20,10 +20,10 @@ export interface SpotifyProfile extends Record<string, any> {
|
||||
*
|
||||
* ```ts
|
||||
* import Auth from "@auth/core"
|
||||
* import { Spotify } from "@auth/core/providers/spotify"
|
||||
* import Spotify from "@auth/core/providers/spotify"
|
||||
*
|
||||
* const request = new Request("https://example.com")
|
||||
* const resposne = await AuthHandler(request, {
|
||||
* const response = await AuthHandler(request, {
|
||||
* providers: [
|
||||
* Spotify({clientId: "", clientSecret: ""})
|
||||
* ]
|
||||
|
||||
@@ -27,8 +27,8 @@ AUTH_TRUST_HOST=true
|
||||
in this example we are using github so make sure to set the following environment variables:
|
||||
|
||||
```
|
||||
GITHUB_ID=your_github_oatuh_id
|
||||
GITHUB_SECRET=your_github_oatuh_secret
|
||||
GITHUB_ID=your_github_oauth_id
|
||||
GITHUB_SECRET=your_github_oauth_secret
|
||||
```
|
||||
|
||||
```ts
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"Balázs Orbán <info@balazsorban.com>",
|
||||
"Nico Domino <yo@ndo.dev>",
|
||||
"Lluis Agusti <hi@llu.lu>",
|
||||
"Iain Collins <me@iaincollins.com"
|
||||
"Iain Collins <me@iaincollins.com>"
|
||||
],
|
||||
"scripts": {
|
||||
"dev": "svelte-package -w",
|
||||
@@ -69,4 +69,4 @@
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
* This code sample already implements the correct method by using `const { session } = await parent();`
|
||||
* :::
|
||||
*
|
||||
* You should NOT put authorization logic in a `+layout.server.ts` as the logic is not guaranteed to propragate to leafs in the tree.
|
||||
* You should NOT put authorization logic in a `+layout.server.ts` as the logic is not guaranteed to propagate to leafs in the tree.
|
||||
* Prefer to manually protect each route through the `+page.server.ts` file to avoid mistakes.
|
||||
* It is possible to force the layout file to run the load function on all routes, however that relies certain behaviours that can change and are not easily checked.
|
||||
* For more information about these caveats make sure to read this issue in the SvelteKit repository: https://github.com/sveltejs/kit/issues/6315
|
||||
|
||||
377
pnpm-lock.yaml
generated
377
pnpm-lock.yaml
generated
@@ -136,7 +136,7 @@ importers:
|
||||
vercel: ^23.1.2
|
||||
dependencies:
|
||||
dotenv: 16.0.3
|
||||
gatsby: 5.7.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby: 5.8.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
next-auth: link:../../../packages/next-auth
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
@@ -506,7 +506,7 @@ importers:
|
||||
packages/core:
|
||||
specifiers:
|
||||
'@next-auth/tsconfig': workspace:*
|
||||
'@panva/hkdf': ^1.0.2
|
||||
'@panva/hkdf': ^1.0.4
|
||||
'@types/cookie': 0.5.1
|
||||
'@types/node': 18.11.10
|
||||
'@types/nodemailer': 6.4.6
|
||||
@@ -520,7 +520,7 @@ importers:
|
||||
preact: 10.11.3
|
||||
preact-render-to-string: 5.2.3
|
||||
dependencies:
|
||||
'@panva/hkdf': 1.0.2
|
||||
'@panva/hkdf': 1.0.4
|
||||
cookie: 0.5.0
|
||||
jose: 4.11.1
|
||||
oauth4webapi: 2.0.6
|
||||
@@ -1911,13 +1911,13 @@ packages:
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.2.0
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/generator': 7.20.7
|
||||
'@babel/generator': 7.20.14
|
||||
'@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.5
|
||||
'@babel/helper-module-transforms': 7.20.11
|
||||
'@babel/helpers': 7.20.7
|
||||
'@babel/parser': 7.20.7
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/traverse': 7.20.12
|
||||
'@babel/traverse': 7.20.13
|
||||
'@babel/types': 7.20.7
|
||||
convert-source-map: 1.8.0
|
||||
debug: 4.3.4
|
||||
@@ -1984,6 +1984,7 @@ packages:
|
||||
'@babel/types': 7.20.7
|
||||
'@jridgewell/gen-mapping': 0.3.2
|
||||
jsesc: 2.5.2
|
||||
dev: false
|
||||
|
||||
/@babel/helper-annotate-as-pure/7.18.6:
|
||||
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
|
||||
@@ -2420,7 +2421,7 @@ packages:
|
||||
'@babel/helper-split-export-declaration': 7.18.6
|
||||
'@babel/helper-validator-identifier': 7.19.1
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/traverse': 7.20.12
|
||||
'@babel/traverse': 7.20.13
|
||||
'@babel/types': 7.20.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -2636,6 +2637,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/types': 7.20.7
|
||||
dev: false
|
||||
|
||||
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.17.12:
|
||||
resolution: {integrity: sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==}
|
||||
@@ -4045,8 +4047,8 @@ packages:
|
||||
'@babel/helper-plugin-utils': 7.20.2
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-syntax-jsx/7.17.12_@babel+core@7.18.5:
|
||||
resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==}
|
||||
/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.5:
|
||||
resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
@@ -5878,7 +5880,7 @@ packages:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.18.5
|
||||
'@babel/plugin-transform-react-jsx': 7.17.12_@babel+core@7.18.5
|
||||
'@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.18.5
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.12:
|
||||
@@ -5910,7 +5912,21 @@ packages:
|
||||
'@babel/helper-annotate-as-pure': 7.18.6
|
||||
'@babel/helper-module-imports': 7.18.6
|
||||
'@babel/helper-plugin-utils': 7.20.2
|
||||
'@babel/plugin-syntax-jsx': 7.17.12_@babel+core@7.18.5
|
||||
'@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.5
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.18.5:
|
||||
resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.18.5
|
||||
'@babel/helper-annotate-as-pure': 7.18.6
|
||||
'@babel/helper-module-imports': 7.18.6
|
||||
'@babel/helper-plugin-utils': 7.20.2
|
||||
'@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.5
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
@@ -7159,13 +7175,6 @@ packages:
|
||||
dependencies:
|
||||
regenerator-runtime: 0.13.11
|
||||
|
||||
/@babel/runtime/7.20.7:
|
||||
resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
regenerator-runtime: 0.13.11
|
||||
dev: true
|
||||
|
||||
/@babel/standalone/7.20.12:
|
||||
resolution: {integrity: sha512-hK/X+m1il3w1tYS4H8LDaGCEdiT47SVqEXY8RiEAgou26BystipSU8ZL6EvBR6t5l7lTv0ilBiChXWblKJ5iUA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -7176,7 +7185,7 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/parser': 7.20.7
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
@@ -7185,7 +7194,7 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/parser': 7.20.7
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
@@ -7200,24 +7209,6 @@ packages:
|
||||
/@babel/traverse/7.18.5:
|
||||
resolution: {integrity: sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/generator': 7.20.7
|
||||
'@babel/helper-environment-visitor': 7.18.9
|
||||
'@babel/helper-function-name': 7.19.0
|
||||
'@babel/helper-hoist-variables': 7.18.6
|
||||
'@babel/helper-split-export-declaration': 7.18.6
|
||||
'@babel/parser': 7.20.7
|
||||
'@babel/types': 7.20.7
|
||||
debug: 4.3.4
|
||||
globals: 11.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/traverse/7.20.1:
|
||||
resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/generator': 7.20.14
|
||||
@@ -7233,8 +7224,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/traverse/7.20.12:
|
||||
resolution: {integrity: sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==}
|
||||
/@babel/traverse/7.20.1:
|
||||
resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
@@ -8515,14 +8506,14 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@gatsbyjs/parcel-namer-relative-to-cwd/2.7.0-next.0_@parcel+core@2.8.3:
|
||||
resolution: {integrity: sha512-9Zg4XkxOgsOUWgrc7RmsietgvH6wesildPtpdT2Z9R45Q05i6OcgBUhX+qQoniQJzci8IEBM2vSkU9E8x6E74Q==}
|
||||
/@gatsbyjs/parcel-namer-relative-to-cwd/2.8.0-next.0_@parcel+core@2.8.3:
|
||||
resolution: {integrity: sha512-7dFoiBdxJ9McFMF3P0I7pVD2hMfXypWbYuClXATJ16y+fCtJhtVRGCYrBpfWPQqBs67DibAKno4StLwuYEyrew==}
|
||||
engines: {node: '>=18.0.0', parcel: 2.x}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.13
|
||||
'@parcel/namer-default': 2.8.3_@parcel+core@2.8.3
|
||||
'@parcel/plugin': 2.8.3_@parcel+core@2.8.3
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
transitivePeerDependencies:
|
||||
- '@parcel/core'
|
||||
dev: false
|
||||
@@ -10687,6 +10678,10 @@ packages:
|
||||
resolution: {integrity: sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==}
|
||||
dev: false
|
||||
|
||||
/@panva/hkdf/1.0.4:
|
||||
resolution: {integrity: sha512-003xWiCuvePbLaPHT+CRuaV4GlyCAVm6XYSbBZDHoWZGn1mNkVKFaDbGJjjxmEFvizUwlCoM6O18FCBMMky2zQ==}
|
||||
dev: false
|
||||
|
||||
/@parcel/bundler-default/2.8.3_@parcel+core@2.8.3:
|
||||
resolution: {integrity: sha512-yJvRsNWWu5fVydsWk3O2L4yIy3UZiKWO2cPDukGOIWMgp/Vbpp+2Ct5IygVRtE22bnseW/E/oe0PV3d2IkEJGg==}
|
||||
engines: {node: '>= 12.0.0', parcel: ^2.8.3}
|
||||
@@ -13750,8 +13745,10 @@ packages:
|
||||
indent-string: 4.0.0
|
||||
dev: true
|
||||
|
||||
/ajv-formats/2.1.1:
|
||||
/ajv-formats/2.1.1_ajv@8.11.0:
|
||||
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
|
||||
peerDependencies:
|
||||
ajv: ^8.0.0
|
||||
peerDependenciesMeta:
|
||||
ajv:
|
||||
optional: true
|
||||
@@ -14693,8 +14690,8 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/babel-plugin-remove-graphql-queries/5.7.0-next.0_kwfgdicz63ldiwfqlkadmrpj4y:
|
||||
resolution: {integrity: sha512-dguL6QCS9duTt22QZYlu4ZY/DW/EjCkUc/43YDkfR/lbx32OqKwg1+zKYAE67bJ5PKhdK7PP+dh0486dt4iavQ==}
|
||||
/babel-plugin-remove-graphql-queries/5.8.0-next.0_osdpouujtlfd2op5ubueuc4aqi:
|
||||
resolution: {integrity: sha512-emjOEAt/rnb1eGC1ximT3/Rs1i6U6DT2K385uteLPsGsZ8s6fCPvmzm8TLjRM3iWT4LTVc9OBGghkFPCJ8C6Vg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.0.0
|
||||
@@ -14703,8 +14700,8 @@ packages:
|
||||
'@babel/core': 7.20.12
|
||||
'@babel/runtime': 7.20.13
|
||||
'@babel/types': 7.20.7
|
||||
gatsby: 5.7.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby: 5.8.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
dev: false
|
||||
|
||||
/babel-plugin-styled-components/2.0.7_styled-components@5.3.6:
|
||||
@@ -14788,8 +14785,8 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/babel-preset-gatsby/3.7.0-next.0_pp2vm42zn6vfmnpuhar3irht7i:
|
||||
resolution: {integrity: sha512-nf7aujMeM4gWtiIsdSlap6XaM8zI3pxfTWtIv3LBYN64T59Fi0sDLlDPOicGPrZQxtRWP7zqJBBbnSuy0P3oDA==}
|
||||
/babel-preset-gatsby/3.8.0-next.0_pp2vm42zn6vfmnpuhar3irht7i:
|
||||
resolution: {integrity: sha512-TLa6W4nEsjLEYcNv/vdUC/mas35bJsmPVfMkMafUJWoPPCC1Yk0HDHd2nvYCr/2YO81g94xfgh9QEXoKB7dZng==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
'@babel/core': ^7.11.6
|
||||
@@ -14810,8 +14807,8 @@ packages:
|
||||
babel-plugin-macros: 3.1.0
|
||||
babel-plugin-transform-react-remove-prop-types: 0.4.24
|
||||
core-js: 3.26.0
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-legacy-polyfills: 3.7.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
gatsby-legacy-polyfills: 3.8.0-next.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
@@ -16234,8 +16231,8 @@ packages:
|
||||
readable-stream: 3.6.0
|
||||
dev: true
|
||||
|
||||
/create-gatsby/3.7.0-next.0:
|
||||
resolution: {integrity: sha512-9Ywci5zGlfvXKId+tIZdBRN1X1Y2UPgEjEafiCkHgD4+oQX4+xUYp46abQMhTJZOqokz4zMY16Y9JIhp1eAjQw==}
|
||||
/create-gatsby/3.8.0-next.0:
|
||||
resolution: {integrity: sha512-hIAqq4j4rEeblEfGMXhu25tQRjlmJlwJ1xxRmFFIGVHp2rBF2ruCfj8TfW1Iv+29q881bUzx0sg1GmHSIKl1rQ==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.13
|
||||
@@ -16292,8 +16289,8 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/css-declaration-sorter/6.3.0_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==}
|
||||
/css-declaration-sorter/6.3.1_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
peerDependencies:
|
||||
postcss: ^8.0.9
|
||||
@@ -16301,15 +16298,6 @@ packages:
|
||||
postcss: 8.4.14
|
||||
dev: true
|
||||
|
||||
/css-declaration-sorter/6.3.0_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
peerDependencies:
|
||||
postcss: ^8.0.9
|
||||
dependencies:
|
||||
postcss: 8.4.20
|
||||
dev: true
|
||||
|
||||
/css-declaration-sorter/6.3.1_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
@@ -16490,21 +16478,21 @@ packages:
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
css-declaration-sorter: 6.3.0_postcss@8.4.14
|
||||
css-declaration-sorter: 6.3.1_postcss@8.4.14
|
||||
cssnano-utils: 3.1.0_postcss@8.4.14
|
||||
postcss: 8.4.14
|
||||
postcss-calc: 8.2.4_postcss@8.4.14
|
||||
postcss-colormin: 5.3.0_postcss@8.4.14
|
||||
postcss-convert-values: 5.1.2_postcss@8.4.14
|
||||
postcss-convert-values: 5.1.3_postcss@8.4.14
|
||||
postcss-discard-comments: 5.1.2_postcss@8.4.14
|
||||
postcss-discard-duplicates: 5.1.0_postcss@8.4.14
|
||||
postcss-discard-empty: 5.1.1_postcss@8.4.14
|
||||
postcss-discard-overridden: 5.1.0_postcss@8.4.14
|
||||
postcss-merge-longhand: 5.1.6_postcss@8.4.14
|
||||
postcss-merge-rules: 5.1.2_postcss@8.4.14
|
||||
postcss-merge-longhand: 5.1.7_postcss@8.4.14
|
||||
postcss-merge-rules: 5.1.3_postcss@8.4.14
|
||||
postcss-minify-font-values: 5.1.0_postcss@8.4.14
|
||||
postcss-minify-gradients: 5.1.1_postcss@8.4.14
|
||||
postcss-minify-params: 5.1.3_postcss@8.4.14
|
||||
postcss-minify-params: 5.1.4_postcss@8.4.14
|
||||
postcss-minify-selectors: 5.2.1_postcss@8.4.14
|
||||
postcss-normalize-charset: 5.1.0_postcss@8.4.14
|
||||
postcss-normalize-display-values: 5.1.0_postcss@8.4.14
|
||||
@@ -16512,11 +16500,11 @@ packages:
|
||||
postcss-normalize-repeat-style: 5.1.1_postcss@8.4.14
|
||||
postcss-normalize-string: 5.1.0_postcss@8.4.14
|
||||
postcss-normalize-timing-functions: 5.1.0_postcss@8.4.14
|
||||
postcss-normalize-unicode: 5.1.0_postcss@8.4.14
|
||||
postcss-normalize-unicode: 5.1.1_postcss@8.4.14
|
||||
postcss-normalize-url: 5.1.0_postcss@8.4.14
|
||||
postcss-normalize-whitespace: 5.1.1_postcss@8.4.14
|
||||
postcss-ordered-values: 5.1.3_postcss@8.4.14
|
||||
postcss-reduce-initial: 5.1.0_postcss@8.4.14
|
||||
postcss-reduce-initial: 5.1.1_postcss@8.4.14
|
||||
postcss-reduce-transforms: 5.1.0_postcss@8.4.14
|
||||
postcss-svgo: 5.1.0_postcss@8.4.14
|
||||
postcss-unique-selectors: 5.1.1_postcss@8.4.14
|
||||
@@ -16528,21 +16516,21 @@ packages:
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
css-declaration-sorter: 6.3.0_postcss@8.4.20
|
||||
css-declaration-sorter: 6.3.1_postcss@8.4.20
|
||||
cssnano-utils: 3.1.0_postcss@8.4.20
|
||||
postcss: 8.4.20
|
||||
postcss-calc: 8.2.4_postcss@8.4.20
|
||||
postcss-colormin: 5.3.0_postcss@8.4.20
|
||||
postcss-convert-values: 5.1.2_postcss@8.4.20
|
||||
postcss-convert-values: 5.1.3_postcss@8.4.20
|
||||
postcss-discard-comments: 5.1.2_postcss@8.4.20
|
||||
postcss-discard-duplicates: 5.1.0_postcss@8.4.20
|
||||
postcss-discard-empty: 5.1.1_postcss@8.4.20
|
||||
postcss-discard-overridden: 5.1.0_postcss@8.4.20
|
||||
postcss-merge-longhand: 5.1.6_postcss@8.4.20
|
||||
postcss-merge-rules: 5.1.2_postcss@8.4.20
|
||||
postcss-merge-longhand: 5.1.7_postcss@8.4.20
|
||||
postcss-merge-rules: 5.1.3_postcss@8.4.20
|
||||
postcss-minify-font-values: 5.1.0_postcss@8.4.20
|
||||
postcss-minify-gradients: 5.1.1_postcss@8.4.20
|
||||
postcss-minify-params: 5.1.3_postcss@8.4.20
|
||||
postcss-minify-params: 5.1.4_postcss@8.4.20
|
||||
postcss-minify-selectors: 5.2.1_postcss@8.4.20
|
||||
postcss-normalize-charset: 5.1.0_postcss@8.4.20
|
||||
postcss-normalize-display-values: 5.1.0_postcss@8.4.20
|
||||
@@ -16550,11 +16538,11 @@ packages:
|
||||
postcss-normalize-repeat-style: 5.1.1_postcss@8.4.20
|
||||
postcss-normalize-string: 5.1.0_postcss@8.4.20
|
||||
postcss-normalize-timing-functions: 5.1.0_postcss@8.4.20
|
||||
postcss-normalize-unicode: 5.1.0_postcss@8.4.20
|
||||
postcss-normalize-unicode: 5.1.1_postcss@8.4.20
|
||||
postcss-normalize-url: 5.1.0_postcss@8.4.20
|
||||
postcss-normalize-whitespace: 5.1.1_postcss@8.4.20
|
||||
postcss-ordered-values: 5.1.3_postcss@8.4.20
|
||||
postcss-reduce-initial: 5.1.0_postcss@8.4.20
|
||||
postcss-reduce-initial: 5.1.1_postcss@8.4.20
|
||||
postcss-reduce-transforms: 5.1.0_postcss@8.4.20
|
||||
postcss-svgo: 5.1.0_postcss@8.4.20
|
||||
postcss-unique-selectors: 5.1.1_postcss@8.4.20
|
||||
@@ -19542,7 +19530,7 @@ packages:
|
||||
dependencies:
|
||||
'@apidevtools/json-schema-ref-parser': 9.0.9
|
||||
ajv: 8.11.0
|
||||
ajv-formats: 2.1.1
|
||||
ajv-formats: 2.1.1_ajv@8.11.0
|
||||
body-parser: 1.20.0
|
||||
content-type: 1.0.4
|
||||
deep-freeze: 0.0.1
|
||||
@@ -20466,8 +20454,8 @@ packages:
|
||||
/functions-have-names/1.2.3:
|
||||
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
|
||||
|
||||
/gatsby-cli/5.7.0-next.0:
|
||||
resolution: {integrity: sha512-hhBRqmXNuMx0bMaPvkmAJ1nZRzKkr4K7V19OhFD6iLFuDucN35bU9lTiyJ22Ctvhe0JU93a0ZQW1jrMxNScyyg==}
|
||||
/gatsby-cli/5.8.0-next.0:
|
||||
resolution: {integrity: sha512-oyWlvplp6N9KHHHGKTzqLyKtzB6KOFyS+88Z4kj2QHvRKWPX0KitO7MOp4Xmc6G8Zqrl8JWNqH9+uyVh0m3+BA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
@@ -20488,13 +20476,13 @@ packages:
|
||||
clipboardy: 2.3.0
|
||||
common-tags: 1.8.2
|
||||
convert-hrtime: 3.0.0
|
||||
create-gatsby: 3.7.0-next.0
|
||||
create-gatsby: 3.8.0-next.0
|
||||
envinfo: 7.8.1
|
||||
execa: 5.1.1
|
||||
fs-exists-cached: 1.0.0
|
||||
fs-extra: 11.1.0
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-telemetry: 4.7.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
gatsby-telemetry: 4.8.0-next.0
|
||||
hosted-git-info: 3.0.8
|
||||
is-valid-path: 0.1.1
|
||||
joi: 17.7.0
|
||||
@@ -20518,8 +20506,8 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/gatsby-core-utils/4.7.0-next.0:
|
||||
resolution: {integrity: sha512-lBZA6akCHFPsR2TuOmyMQaskeyv3bKzgdvIG1KPF5Lgztf4Rs07Z8WvqVGq6lVYMM0rCJCDoO6dfy9pJdHFuUQ==}
|
||||
/gatsby-core-utils/4.8.0-next.0:
|
||||
resolution: {integrity: sha512-T6Q0DeY6Vz+IxHhegmyfS6R5scNE2lnYzF1It2B3AEM7WoIGYh6+K3qRF6tW/H3s1j8/lsJpvF7/WLTtBRgK8Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.13
|
||||
@@ -20540,20 +20528,20 @@ packages:
|
||||
xdg-basedir: 4.0.0
|
||||
dev: false
|
||||
|
||||
/gatsby-graphiql-explorer/3.7.0-next.0:
|
||||
resolution: {integrity: sha512-ZgtnZqz4jSuYMp6Mr7QICpRfsjG9QwsT/HS8nxezGP5p8/hBK5N2kJcvonWAwJnhmuViRiWITrWsaXthBVBmeQ==}
|
||||
/gatsby-graphiql-explorer/3.8.0-next.0:
|
||||
resolution: {integrity: sha512-X+/rXixt/PcW6l3yabgBZkNxfVuLsUy071buYhevwdUi6bA4frG74nOToa7LduiYRrdIoRmuD/W5F9QjWL/uow==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
dev: false
|
||||
|
||||
/gatsby-legacy-polyfills/3.7.0-next.0:
|
||||
resolution: {integrity: sha512-6HMpm8T76gHKo/uw7xrWVMOd8O4YPcuP7UVeeMkJIZG68gzqFjQfEHJo4kMDWMXuMlFgi5Brvz6nGRNFrAQL8A==}
|
||||
/gatsby-legacy-polyfills/3.8.0-next.0:
|
||||
resolution: {integrity: sha512-AcfU7iegcw74Cl3G1INilse/XmR0bHT9DM1UVgQ4/+by7tnCcGoGXamkP+586A/KozlmAnqgC9njC6w8AQQ+kQ==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.13
|
||||
core-js-compat: 3.9.0
|
||||
dev: false
|
||||
|
||||
/gatsby-link/5.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-BWmj6VytpVyCI8LREDs27PQN5r41mpCXwQ8jVky6h8gHOuMjfVk+O3Q5DGzHBylxJxs6+3ijHVSOVox1fLmRtA==}
|
||||
/gatsby-link/5.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-sBOehr2zuFxS3dMFa+WIEhQw8TCTPh/iqsZ4VWqYjFti8F9gS/weL9sDK5vuaQ/HqnjvBITy7uNXVEOjbTX6bg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
'@gatsbyjs/reach-router': ^2.0.0
|
||||
@@ -20562,33 +20550,33 @@ packages:
|
||||
dependencies:
|
||||
'@gatsbyjs/reach-router': 2.0.1_biqbaboplfbrettd7655fr4n2y
|
||||
'@types/reach__router': 1.3.11
|
||||
gatsby-page-utils: 3.7.0-next.0
|
||||
gatsby-page-utils: 3.8.0-next.0
|
||||
prop-types: 15.8.1
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
dev: false
|
||||
|
||||
/gatsby-page-utils/3.7.0-next.0:
|
||||
resolution: {integrity: sha512-4heFJsjOPxHjzOmik5Kd4PzDlyZ2U1fOj6JZyppjOa+PZI0jrbsb1O2BeIOkTlB+2MNoG4Zv/aj3UpCnEC1SVg==}
|
||||
/gatsby-page-utils/3.8.0-next.0:
|
||||
resolution: {integrity: sha512-/HsHDb0oE7o3fPm9DOL1U5t0wBwHsuGlojzCOsXQu5UWS8N41LNOv8YEqG9s1gYAOTZtEzEjX1aX/u2B9yIj4Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.13
|
||||
bluebird: 3.7.2
|
||||
chokidar: 3.5.3
|
||||
fs-exists-cached: 1.0.0
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
glob: 7.2.3
|
||||
lodash: 4.17.21
|
||||
micromatch: 4.0.5
|
||||
dev: false
|
||||
|
||||
/gatsby-parcel-config/1.7.0-next.0_@parcel+core@2.8.3:
|
||||
resolution: {integrity: sha512-cE4ltBaE9kWJ5EsUHSpcudp9dYSd29+VRR7gXdHEo/UxuNkLtcrlKwsPu/2553CX6aBdxt6Xyqcd7YwOs0RQ6w==}
|
||||
/gatsby-parcel-config/1.8.0-next.0_@parcel+core@2.8.3:
|
||||
resolution: {integrity: sha512-rk7sLGf4c4cHQoPHUaOIb8BW2CuJRg/jS5f7y70NiCFuDTPipDwEVDEhsJKoE+5/uUy2dieWkrddxj6mgyYivw==}
|
||||
engines: {parcel: 2.x}
|
||||
peerDependencies:
|
||||
'@parcel/core': ^2.0.0
|
||||
dependencies:
|
||||
'@gatsbyjs/parcel-namer-relative-to-cwd': 2.7.0-next.0_@parcel+core@2.8.3
|
||||
'@gatsbyjs/parcel-namer-relative-to-cwd': 2.8.0-next.0_@parcel+core@2.8.3
|
||||
'@parcel/bundler-default': 2.8.3_@parcel+core@2.8.3
|
||||
'@parcel/compressor-raw': 2.8.3_@parcel+core@2.8.3
|
||||
'@parcel/core': 2.8.3
|
||||
@@ -20603,8 +20591,8 @@ packages:
|
||||
'@parcel/transformer-json': 2.8.3_@parcel+core@2.8.3
|
||||
dev: false
|
||||
|
||||
/gatsby-plugin-page-creator/5.7.0-next.0_5qnviuipb4fcbildeubwcez6ia:
|
||||
resolution: {integrity: sha512-Lq7lyHBNiHvgjTXeybUo+cn/QjOjoN1PnoZlKyM0wGpJOX9nn6hrED+C5FylOKf4hS/RjLPaGf4OnYzeOAkWtQ==}
|
||||
/gatsby-plugin-page-creator/5.8.0-next.0_irjlgbbmdc6sbwac5pl62frsae:
|
||||
resolution: {integrity: sha512-G3NxUJOTZQFt+b2OO0A9yOxfKGiwnUdvpBymob9kJ/YyxLX82ri3xlXPTxp7imQDIbv1BbVRVFV45EVWrWJWKg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
gatsby: ^5.0.0-next
|
||||
@@ -20615,11 +20603,11 @@ packages:
|
||||
chokidar: 3.5.3
|
||||
fs-exists-cached: 1.0.0
|
||||
fs-extra: 11.1.0
|
||||
gatsby: 5.7.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-page-utils: 3.7.0-next.0
|
||||
gatsby-plugin-utils: 4.7.0-next.0_5qnviuipb4fcbildeubwcez6ia
|
||||
gatsby-telemetry: 4.7.0-next.0
|
||||
gatsby: 5.8.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
gatsby-page-utils: 3.8.0-next.0
|
||||
gatsby-plugin-utils: 4.8.0-next.0_irjlgbbmdc6sbwac5pl62frsae
|
||||
gatsby-telemetry: 4.8.0-next.0
|
||||
globby: 11.1.0
|
||||
lodash: 4.17.21
|
||||
transitivePeerDependencies:
|
||||
@@ -20628,8 +20616,8 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/gatsby-plugin-typescript/5.7.0-next.0_gatsby@5.7.0-next.0:
|
||||
resolution: {integrity: sha512-r60b1a2SOAZRYmV+rpPCW58QgeutbCHpOeaG7mDBHSNU3nnL2WWjvSmJFpbvwYRsTUhd54k1EXYENB7nX4Sw/w==}
|
||||
/gatsby-plugin-typescript/5.8.0-next.0_gatsby@5.8.0-next.0:
|
||||
resolution: {integrity: sha512-ofnAJ/oR0VctV8QqKxYPhLWJPO1iz0Ek4U4mZb2YkknRTPKLnQdeAbohucst66BuHcY8zlZTTwZ2cUw+UW1dnQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
gatsby: ^5.0.0-next
|
||||
@@ -20640,14 +20628,14 @@ packages:
|
||||
'@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12
|
||||
'@babel/preset-typescript': 7.18.6_@babel+core@7.20.12
|
||||
'@babel/runtime': 7.20.13
|
||||
babel-plugin-remove-graphql-queries: 5.7.0-next.0_kwfgdicz63ldiwfqlkadmrpj4y
|
||||
gatsby: 5.7.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
babel-plugin-remove-graphql-queries: 5.8.0-next.0_osdpouujtlfd2op5ubueuc4aqi
|
||||
gatsby: 5.8.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/gatsby-plugin-utils/4.7.0-next.0_5qnviuipb4fcbildeubwcez6ia:
|
||||
resolution: {integrity: sha512-yWgUlqItsOST/cmqxAYuzZKoLv/lnmztQn5Pk7jtJup/jnISqzq1LVYKS027ZFIRDTp1u0flRwlC3vlhH4kd8Q==}
|
||||
/gatsby-plugin-utils/4.8.0-next.0_irjlgbbmdc6sbwac5pl62frsae:
|
||||
resolution: {integrity: sha512-Uzj8sP0tzpMF1wvgW7uct7LiSzkIl2bUpWhuJ9BS63mtWohYPAJIgc+kmeCS501C/SZtUz+Iipk5DKp9mjOV1Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
gatsby: ^5.0.0-next
|
||||
@@ -20656,9 +20644,9 @@ packages:
|
||||
'@babel/runtime': 7.20.13
|
||||
fastq: 1.15.0
|
||||
fs-extra: 11.1.0
|
||||
gatsby: 5.7.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-sharp: 1.7.0-next.0
|
||||
gatsby: 5.8.0-next.0_biqbaboplfbrettd7655fr4n2y
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
gatsby-sharp: 1.8.0-next.0
|
||||
graphql: 16.6.0
|
||||
graphql-compose: 9.0.10_graphql@16.6.0
|
||||
import-from: 4.0.0
|
||||
@@ -20666,8 +20654,8 @@ packages:
|
||||
mime: 3.0.0
|
||||
dev: false
|
||||
|
||||
/gatsby-react-router-scroll/6.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-OFKePAMF6n8DseaIIsuuQ4GTadl91m9i1GIj8fUhaInQr4y6fADSvWIR6W+ZxDjKksUm+DNalz+FE8UzGcVDtw==}
|
||||
/gatsby-react-router-scroll/6.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-PtQC8tj00Gz6GmR9M7v8n4/ChNlC+RxTUf5c0W3tX0fcrCXYqrK5/D1xBB2qkhNGOrTaVVMRVIkk7SO4L6R6LA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
'@gatsbyjs/reach-router': ^2.0.0
|
||||
@@ -20681,8 +20669,8 @@ packages:
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
dev: false
|
||||
|
||||
/gatsby-script/2.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-ycmGRe7exnLXf0iL6+W3pyJn/tjCwcZHLI56eV0siWUiixxZMWLRZ5Ysigk+O3WitFCax083/WbpH3TiT9rfnA==}
|
||||
/gatsby-script/2.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra:
|
||||
resolution: {integrity: sha512-MtHnRnE42Zmfb1+6mNS3ZIoJO8DWrIkVUcYAdqbzE6F9CzrfdkP9K7TXBsOpiI8PC04qyzQgxajwlv9d1qCGSg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
'@gatsbyjs/reach-router': ^2.0.0
|
||||
@@ -20694,16 +20682,16 @@ packages:
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
dev: false
|
||||
|
||||
/gatsby-sharp/1.7.0-next.0:
|
||||
resolution: {integrity: sha512-BzvqeCKt424YChZmb2p4sw1moPeE0SGfzr2IbhM/kkb8Ks3fH+mLy/FUQi/dJ317oa1+AHc8mAjezzxGAFHSsA==}
|
||||
/gatsby-sharp/1.8.0-next.0:
|
||||
resolution: {integrity: sha512-5hW6EqCWxWWWk6Hk3QwCOhr4GcjWtDCriKFBlzcKMKuY/DxBk5Xs/5Q2jrEEetTDhXeX+8y6+TpbRAEdByq/qA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
dependencies:
|
||||
'@types/sharp': 0.31.1
|
||||
sharp: 0.31.3
|
||||
dev: false
|
||||
|
||||
/gatsby-telemetry/4.7.0-next.0:
|
||||
resolution: {integrity: sha512-Gnn6g6cYo4YR7bx9CET0k/2/VwO/AMbVkyO4p4jdxUSuNNY1CCFhH4hTD8oc4ln9KTxnyO1AqoT/ArNzL0G1Xw==}
|
||||
/gatsby-telemetry/4.8.0-next.0:
|
||||
resolution: {integrity: sha512-3YemwxntujXz2XMwp4/mtb6SsOj3avQXDx2bf9KyLGotAbHBybIqm1KWd9c1cpE6iwO6gEa/Mu267IuKDMsPsQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
@@ -20714,7 +20702,7 @@ packages:
|
||||
boxen: 5.1.2
|
||||
configstore: 5.0.1
|
||||
fs-extra: 11.1.0
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
git-up: 7.0.0
|
||||
is-docker: 2.2.1
|
||||
lodash: 4.17.21
|
||||
@@ -20723,8 +20711,8 @@ packages:
|
||||
- encoding
|
||||
dev: false
|
||||
|
||||
/gatsby-worker/2.7.0-next.0:
|
||||
resolution: {integrity: sha512-LKGhWzjadmaciZ7KBBebcS+Pi5WrgSRaRiyzogdFHXTRE0WNCGWOrMQVH1nF0ppMEO2vN11GZKb3TZxDu0ho6g==}
|
||||
/gatsby-worker/2.8.0-next.0:
|
||||
resolution: {integrity: sha512-w9Y2Q0IZ/1w480amywbSURA/L+RPFIuaAm5brovju2p7rteFAY9H3ArSJ7cgZUMO5AvUtet/9Biu5pp0HYGc0Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
dependencies:
|
||||
'@babel/core': 7.20.12
|
||||
@@ -20735,8 +20723,8 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/gatsby/5.7.0-next.0_biqbaboplfbrettd7655fr4n2y:
|
||||
resolution: {integrity: sha512-QBYsyxuct7qhGLkl1jdU0zJS5C5B6wDaxUnReaI9qD+R898cc0KZgGcxhWFzXTk3c6mKGXebW0BBcRBMZ8f3+A==}
|
||||
/gatsby/5.8.0-next.0_biqbaboplfbrettd7655fr4n2y:
|
||||
resolution: {integrity: sha512-9C7q/Nl8lEIyatk1hryDlUw/TVLsKsJoJ+ZR8Z0t0eE2ulRjpFI3vMFuJLnLQFGfdrWtETrnhZha4NJvTo8Pbw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
@@ -20782,8 +20770,8 @@ packages:
|
||||
babel-plugin-add-module-exports: 1.0.4
|
||||
babel-plugin-dynamic-import-node: 2.3.3
|
||||
babel-plugin-lodash: 3.3.4
|
||||
babel-plugin-remove-graphql-queries: 5.7.0-next.0_kwfgdicz63ldiwfqlkadmrpj4y
|
||||
babel-preset-gatsby: 3.7.0-next.0_pp2vm42zn6vfmnpuhar3irht7i
|
||||
babel-plugin-remove-graphql-queries: 5.8.0-next.0_osdpouujtlfd2op5ubueuc4aqi
|
||||
babel-preset-gatsby: 3.8.0-next.0_pp2vm42zn6vfmnpuhar3irht7i
|
||||
better-opn: 2.1.1
|
||||
bluebird: 3.7.2
|
||||
browserslist: 4.21.4
|
||||
@@ -20824,20 +20812,20 @@ packages:
|
||||
find-cache-dir: 3.3.2
|
||||
fs-exists-cached: 1.0.0
|
||||
fs-extra: 11.1.0
|
||||
gatsby-cli: 5.7.0-next.0
|
||||
gatsby-core-utils: 4.7.0-next.0
|
||||
gatsby-graphiql-explorer: 3.7.0-next.0
|
||||
gatsby-legacy-polyfills: 3.7.0-next.0
|
||||
gatsby-link: 5.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-page-utils: 3.7.0-next.0
|
||||
gatsby-parcel-config: 1.7.0-next.0_@parcel+core@2.8.3
|
||||
gatsby-plugin-page-creator: 5.7.0-next.0_5qnviuipb4fcbildeubwcez6ia
|
||||
gatsby-plugin-typescript: 5.7.0-next.0_gatsby@5.7.0-next.0
|
||||
gatsby-plugin-utils: 4.7.0-next.0_5qnviuipb4fcbildeubwcez6ia
|
||||
gatsby-react-router-scroll: 6.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-script: 2.7.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-telemetry: 4.7.0-next.0
|
||||
gatsby-worker: 2.7.0-next.0
|
||||
gatsby-cli: 5.8.0-next.0
|
||||
gatsby-core-utils: 4.8.0-next.0
|
||||
gatsby-graphiql-explorer: 3.8.0-next.0
|
||||
gatsby-legacy-polyfills: 3.8.0-next.0
|
||||
gatsby-link: 5.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-page-utils: 3.8.0-next.0
|
||||
gatsby-parcel-config: 1.8.0-next.0_@parcel+core@2.8.3
|
||||
gatsby-plugin-page-creator: 5.8.0-next.0_irjlgbbmdc6sbwac5pl62frsae
|
||||
gatsby-plugin-typescript: 5.8.0-next.0_gatsby@5.8.0-next.0
|
||||
gatsby-plugin-utils: 4.8.0-next.0_irjlgbbmdc6sbwac5pl62frsae
|
||||
gatsby-react-router-scroll: 6.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-script: 2.8.0-next.0_uxzdzcrcylloub4rxar25ny6ra
|
||||
gatsby-telemetry: 4.8.0-next.0
|
||||
gatsby-worker: 2.8.0-next.0
|
||||
glob: 7.2.3
|
||||
globby: 11.1.0
|
||||
got: 11.8.6
|
||||
@@ -20911,7 +20899,7 @@ packages:
|
||||
xstate: 4.35.4
|
||||
yaml-loader: 0.8.0
|
||||
optionalDependencies:
|
||||
gatsby-sharp: 1.7.0-next.0
|
||||
gatsby-sharp: 1.8.0-next.0
|
||||
transitivePeerDependencies:
|
||||
- '@swc/core'
|
||||
- '@types/webpack'
|
||||
@@ -28164,8 +28152,8 @@ packages:
|
||||
postcss: 8.4.21
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
/postcss-convert-values/5.1.2_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==}
|
||||
/postcss-convert-values/5.1.3_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -28175,17 +28163,6 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-convert-values/5.1.2_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
browserslist: 4.21.4
|
||||
postcss: 8.4.20
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-convert-values/5.1.3_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -28419,8 +28396,8 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-merge-longhand/5.1.6_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==}
|
||||
/postcss-merge-longhand/5.1.7_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -28430,17 +28407,6 @@ packages:
|
||||
stylehacks: 5.1.1_postcss@8.4.14
|
||||
dev: true
|
||||
|
||||
/postcss-merge-longhand/5.1.6_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
postcss: 8.4.20
|
||||
postcss-value-parser: 4.2.0
|
||||
stylehacks: 5.1.1_postcss@8.4.20
|
||||
dev: true
|
||||
|
||||
/postcss-merge-longhand/5.1.7_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -28462,8 +28428,8 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
stylehacks: 5.1.1_postcss@8.4.21
|
||||
|
||||
/postcss-merge-rules/5.1.2_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==}
|
||||
/postcss-merge-rules/5.1.3_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -28475,19 +28441,6 @@ packages:
|
||||
postcss-selector-parser: 6.0.10
|
||||
dev: true
|
||||
|
||||
/postcss-merge-rules/5.1.2_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
browserslist: 4.21.4
|
||||
caniuse-api: 3.0.0
|
||||
cssnano-utils: 3.1.0_postcss@8.4.20
|
||||
postcss: 8.4.20
|
||||
postcss-selector-parser: 6.0.10
|
||||
dev: true
|
||||
|
||||
/postcss-merge-rules/5.1.3_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -28577,8 +28530,8 @@ packages:
|
||||
postcss: 8.4.21
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
/postcss-minify-params/5.1.3_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==}
|
||||
/postcss-minify-params/5.1.4_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -28589,18 +28542,6 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-minify-params/5.1.3_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
browserslist: 4.21.4
|
||||
cssnano-utils: 3.1.0_postcss@8.4.20
|
||||
postcss: 8.4.20
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-minify-params/5.1.4_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -28881,8 +28822,8 @@ packages:
|
||||
postcss: 8.4.21
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
/postcss-normalize-unicode/5.1.0_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==}
|
||||
/postcss-normalize-unicode/5.1.1_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -28892,17 +28833,6 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-normalize-unicode/5.1.0_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
browserslist: 4.21.4
|
||||
postcss: 8.4.20
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-normalize-unicode/5.1.1_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -29027,8 +28957,8 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-reduce-initial/5.1.0_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==}
|
||||
/postcss-reduce-initial/5.1.1_postcss@8.4.14:
|
||||
resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
@@ -29038,17 +28968,6 @@ packages:
|
||||
postcss: 8.4.14
|
||||
dev: true
|
||||
|
||||
/postcss-reduce-initial/5.1.0_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.2.15
|
||||
dependencies:
|
||||
browserslist: 4.21.4
|
||||
caniuse-api: 3.0.0
|
||||
postcss: 8.4.20
|
||||
dev: true
|
||||
|
||||
/postcss-reduce-initial/5.1.1_postcss@8.4.20:
|
||||
resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==}
|
||||
engines: {node: ^10 || ^12 || >=14.0}
|
||||
@@ -30044,7 +29963,7 @@ packages:
|
||||
peerDependencies:
|
||||
react: '>=16.13.1'
|
||||
dependencies:
|
||||
'@babel/runtime': 7.20.7
|
||||
'@babel/runtime': 7.20.13
|
||||
react: 18.2.0
|
||||
dev: true
|
||||
|
||||
@@ -30982,7 +30901,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/json-schema': 7.0.11
|
||||
ajv: 8.11.0
|
||||
ajv-formats: 2.1.1
|
||||
ajv-formats: 2.1.1_ajv@8.11.0
|
||||
ajv-keywords: 5.1.0_ajv@8.11.0
|
||||
dev: true
|
||||
|
||||
|
||||
@@ -47,6 +47,15 @@
|
||||
"docs#dev": {
|
||||
"dependsOn": ["^build"],
|
||||
"cache": false
|
||||
},
|
||||
"docs#build": {
|
||||
"dependsOn": ["^build"],
|
||||
"outputs": [
|
||||
"build",
|
||||
"docs/reference/core",
|
||||
"docs/reference/sveltekit",
|
||||
"docs/reference/adapter/**"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user