Compare commits

...

6 Commits

Author SHA1 Message Date
GitHub Actions
ea65134a84 chore(release): bump package version(s) [skip ci] 2023-09-16 04:30:21 +00:00
Thang Vu
016b22833c chore(docs): add EdgeDB in typedoc 2023-09-16 11:21:48 +07:00
Bruno Crosier
67dbbb2cdf feat(adapters): new EdgeDB Adapter (#5781)
* init adapter folder

* add schema

* run migration

* run `npx @edgedb/generate edgeql-js`

* fix `generate` script

* add `EdgeDBAdapter`

* add tests

* add README

* docs

* dev app

* lockfile

* remove generated files

* ignore `dbschema/edgeql-js`

* add `postinstall` generate script

* update docs

* move `nonrecursive_access_policies` to default schema

* newlines

* remove js generation

* rewrite in edgeql

* make `userId` computed

* fix `createUser` image param

* code review comments

* update lockfile

* code review

* comments

* delete

* types

* revert settings.json

* delete migrations

* deps

* clean up

* Restore packages/adapter-test/index.ts

* chore: formatting & fix logic of useVerificationToken

* chore: delete .md file

* fix: test

* chore: logo

* chore: formatting

* chore: add edgedb to doc

---------

Co-authored-by: Nico Domino <yo@ndo.dev>
Co-authored-by: Thang Vu <hi@thvu.dev>
2023-09-16 11:03:48 +07:00
Dewin Umana
f87e66f0b3 feat(providers): TikTok provider (#8131)
* feat(providers): TikTok provider

* Linting

* Move files under the correct paths

* Added Tiktok Provider

* Update Bug provider template
2023-09-15 12:14:44 +07:00
k8pai
b1c46809f5 fix(docs): remove typesafety statements as string (#8566)
Removed typesafety statement `as string` from Configuring Auth.js of /adapter-dynamodb
2023-09-12 14:42:25 +02:00
Thang Vu
b9e9722b74 feat(providers): Dribbble provider (#8531)
* feat(providers): add Dribbble provider

* update Dribbble

Co-Authored-By: Pavel Fomchenkov <hello@pavel.codes>

---------

Co-authored-by: Pavel Fomchenkov <hello@pavel.codes>
2023-09-09 14:07:24 +07:00
25 changed files with 1515 additions and 152 deletions

View File

@@ -41,6 +41,7 @@ body:
- "Coinbase"
- "Descope"
- "Discord"
- "Dribbble"
- "Dropbox"
- "EVE Online"
- "Facebook"
@@ -75,6 +76,7 @@ body:
- "Slack"
- "Spotify"
- "Strava"
- "Tiktok"
- "Todoist"
- "Trakt"
- "Twitch"

View File

@@ -2,3 +2,4 @@ node_modules/
/test-results/
/playwright-report/
/playwright/.cache/
dbschema/edgeql-js

View File

@@ -0,0 +1,71 @@
module default {
type User {
property name -> str;
required property email -> str {
constraint exclusive;
}
property emailVerified -> datetime;
property image -> str;
multi link accounts := .<user[is Account];
multi link sessions := .<user[is Session];
property createdAt -> datetime {
default := datetime_current();
};
}
type Account {
required property userId := .user.id;
required property type -> str;
required property provider -> str;
required property providerAccountId -> str {
constraint exclusive;
};
property refresh_token -> str;
property access_token -> str;
property expires_at -> int64;
property token_type -> str;
property scope -> str;
property id_token -> str;
property session_state -> str;
required link user -> User {
on target delete delete source;
};
property createdAt -> datetime {
default := datetime_current();
};
constraint exclusive on ((.provider, .providerAccountId))
}
type Session {
required property sessionToken -> str {
constraint exclusive;
}
required property userId := .user.id;
required property expires -> datetime;
required link user -> User {
on target delete delete source;
};
property createdAt -> datetime {
default := datetime_current();
};
}
type VerificationToken {
required property identifier -> str;
required property token -> str {
constraint exclusive;
}
required property expires -> datetime;
property createdAt -> datetime {
default := datetime_current();
};
constraint exclusive on ((.identifier, .token))
}
}
# Disable the application of access policies within access policies
# themselves. This behavior will become the default in EdgeDB 3.0.
# See: https://www.edgedb.com/docs/reference/ddl/access_policies#nonrecursive
using future nonrecursive_access_policies;

View File

@@ -0,0 +1,2 @@
[edgedb]
server-version = "2.6"

View File

@@ -15,11 +15,13 @@
"license": "ISC",
"dependencies": {
"@auth/core": "workspace:*",
"@auth/edgedb-adapter": "workspace:*",
"@auth/fauna-adapter": "workspace:*",
"@auth/prisma-adapter": "workspace:*",
"@auth/supabase-adapter": "workspace:*",
"@auth/typeorm-adapter": "workspace:*",
"@prisma/client": "^3",
"edgedb": "^1.0.1",
"@supabase/supabase-js": "^2.0.5",
"faunadb": "^4",
"next": "13.4.0",
@@ -29,6 +31,7 @@
"react-dom": "^18"
},
"devDependencies": {
"@edgedb/generate": "^0.0.4",
"@playwright/test": "1.29.2",
"@types/jsonwebtoken": "^8.5.5",
"@types/react": "18.0.37",

View File

@@ -71,6 +71,12 @@ import ClickUp from '@auth/core/providers/click-up'
// secret: process.env.SUPABASE_SERVICE_ROLE_KEY,
// })
// // EdgeDB
// import { EdgeDBAdapter } from "@auth/edgedb-adapter"
// import { createHttpClient } from "edgedb"
// const client = createHttpClient()
// const adapter = EdgeDBAdapter(client)
export const authConfig: AuthConfig = {
// adapter,
debug: process.env.NODE_ENV !== "production",

View File

@@ -5,6 +5,10 @@ title: Overview
Using an Auth.js / NextAuth.js adapter you can connect to any database service or even several different services at the same time. The following listed official adapters are created and maintained by the community:
<div class="adapter-card-list">
<a href="/reference/adapter/edgedb" class="adapter-card">
<img src="/img/adapters/edgedb.svg" width="30" />
<h4 class="adapter-card__title">EdgeDB Adapter</h4>
</a>
<a href="/reference/adapter/dgraph" class="adapter-card">
<img src="/img/adapters/dgraph.png" width="30" />
<h4 class="adapter-card__title">Dgraph Adapter</h4>

View File

@@ -282,6 +282,7 @@ const docusaurusConfig = {
...(process.env.TYPEDOC_SKIP_ADAPTERS
? []
: [
typedocAdapter("EdgeDb"),
typedocAdapter("Dgraph"),
typedocAdapter("Drizzle"),
typedocAdapter("DynamoDB"),

4
docs/static/img/adapters/edgedb.svg vendored Normal file
View File

@@ -0,0 +1,4 @@
<svg style="color:#1F8AED" width="140" height="114" viewBox="0 0 140 114" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M118.58 56.966C118.58 66.6274 114.706 68.3592 110.377 68.3592H101.171V45.5728H110.377C114.706 45.5728 118.58 47.3046 118.58 56.966ZM113.887 56.966C113.887 50.2212 111.836 49.9022 108.874 49.9022H106.003V64.0298H108.874C111.836 64.0298 113.887 63.7108 113.887 56.966ZM65.1234 68.3592V45.5728H79.6155V49.9022H69.9541V54.5507H77.2458V58.8345H69.9541V64.0298H79.6155V68.3592H65.1234ZM87.7282 113.932H92.5589V0H87.7282V113.932ZM128.242 58.242V64.0298H132.252C134.758 64.0298 135.396 62.3892 135.396 61.1587C135.396 60.2017 134.941 58.242 131.523 58.242H128.242ZM128.242 49.9022V54.2317H131.523C133.391 54.2317 134.485 53.4113 134.485 52.0442C134.485 50.677 133.391 49.9022 131.523 49.9022H128.242ZM123.411 45.5728H132.708C137.585 45.5728 139.043 48.9908 139.043 51.4517C139.043 53.7304 137.585 55.371 136.582 55.8267C139.499 57.2395 140 60.1105 140 61.5689C140 63.4829 139.043 68.3592 132.708 68.3592H123.411V45.5728ZM37.3702 56.966C37.3702 66.6274 33.4966 68.3592 29.1671 68.3592H19.9614V45.5728H29.1671C33.4966 45.5728 37.3702 47.3046 37.3702 56.966ZM51.5885 64.2121C54.0495 64.2121 55.3255 63.3918 55.7812 62.8449V60.3384H51.862V56.4191H59.6549V65.4881C58.9713 66.5363 55.2344 68.5871 51.8164 68.5871C46.211 68.5871 41.4714 66.3996 41.4714 56.7381C41.4714 47.0767 46.2565 45.345 50.5859 45.345C57.3763 45.345 59.0625 48.8996 59.6094 52.0442L55.5989 52.9556C55.3711 51.4973 54.095 49.6744 51.1784 49.6744C48.2162 49.6744 46.1654 49.9934 46.1654 56.7381C46.1654 63.4829 48.3073 64.2121 51.5885 64.2121ZM32.6756 56.966C32.6756 50.2212 30.6248 49.9022 27.6626 49.9022H24.7915V64.0298H27.6626C30.6248 64.0298 32.6756 63.7108 32.6756 56.966ZM0 68.3592V45.5728H14.4921V49.9022H4.83072V54.5507H12.1224V58.8345H4.83072V64.0298H14.4921V68.3592H0Z" fill="currentColor">
</path>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 0C7.16704 0 0 7.16704 0 16C0 24.833 7.16704 32 16 32C24.8156 32 32 24.833 32 16C32 7.16704 24.8156 0 16 0ZM26.5683 7.37526C28.4772 9.70064 29.6226 12.6681 29.6573 15.8785C29.2061 15.7917 24.6941 14.872 20.1475 15.4447C20.0434 15.2191 19.9566 14.9761 19.8525 14.7332C19.5748 14.0738 19.2625 13.397 18.9501 12.7549C23.9827 10.7072 26.2733 7.75706 26.5683 7.37526ZM16 2.36009C19.4707 2.36009 22.6464 3.6616 25.0586 5.7961C24.8156 6.14317 22.7505 8.9024 17.8916 10.7245C15.6529 6.61171 13.1714 3.24512 12.7896 2.72451C13.8134 2.48156 14.8894 2.36009 16 2.36009ZM10.1866 3.64426C10.551 4.13014 12.9805 7.51411 15.2538 11.5401C8.86768 13.2408 3.22778 13.2061 2.62039 13.2061C3.50541 8.97181 6.36877 5.44902 10.1866 3.64426ZM2.32538 16.0173C2.32538 15.8785 2.32538 15.7397 2.32538 15.6009C2.9154 15.6182 9.54448 15.705 16.3644 13.6573C16.7636 14.4208 17.128 15.2017 17.475 15.9827C17.3015 16.0347 17.1106 16.0868 16.9371 16.1388C9.89155 18.4122 6.14317 24.6247 5.83082 25.1453C3.6616 22.7332 2.32538 19.5228 2.32538 16.0173ZM16 29.6746C12.8417 29.6746 9.92624 28.5987 7.61821 26.7939C7.86118 26.2907 10.6378 20.9458 18.3427 18.256C18.3774 18.2386 18.3948 18.2386 18.4295 18.2212C20.3557 23.2017 21.1367 27.3839 21.3449 28.5813C19.6963 29.2928 17.8916 29.6746 16 29.6746ZM23.6182 27.3319C23.4794 26.4989 22.7506 22.5076 20.9631 17.5965C25.2495 16.9197 28.9978 18.0304 29.4664 18.1866C28.8764 21.987 26.6898 25.2668 23.6182 27.3319Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 0C7.16704 0 0 7.16704 0 16C0 24.833 7.16704 32 16 32C24.8156 32 32 24.833 32 16C32 7.16704 24.8156 0 16 0ZM26.5683 7.37526C28.4772 9.70064 29.6226 12.6681 29.6573 15.8785C29.2061 15.7917 24.6941 14.872 20.1475 15.4447C20.0434 15.2191 19.9566 14.9761 19.8525 14.7332C19.5748 14.0738 19.2625 13.397 18.9501 12.7549C23.9827 10.7072 26.2733 7.75706 26.5683 7.37526ZM16 2.36009C19.4707 2.36009 22.6464 3.6616 25.0586 5.7961C24.8156 6.14317 22.7505 8.9024 17.8916 10.7245C15.6529 6.61171 13.1714 3.24512 12.7896 2.72451C13.8134 2.48156 14.8894 2.36009 16 2.36009ZM10.1866 3.64426C10.551 4.13014 12.9805 7.51411 15.2538 11.5401C8.86768 13.2408 3.22778 13.2061 2.62039 13.2061C3.50541 8.97181 6.36877 5.44902 10.1866 3.64426ZM2.32538 16.0173C2.32538 15.8785 2.32538 15.7397 2.32538 15.6009C2.9154 15.6182 9.54448 15.705 16.3644 13.6573C16.7636 14.4208 17.128 15.2017 17.475 15.9827C17.3015 16.0347 17.1106 16.0868 16.9371 16.1388C9.89155 18.4122 6.14317 24.6247 5.83082 25.1453C3.6616 22.7332 2.32538 19.5228 2.32538 16.0173ZM16 29.6746C12.8417 29.6746 9.92624 28.5987 7.61821 26.7939C7.86118 26.2907 10.6378 20.9458 18.3427 18.256C18.3774 18.2386 18.3948 18.2386 18.4295 18.2212C20.3557 23.2017 21.1367 27.3839 21.3449 28.5813C19.6963 29.2928 17.8916 29.6746 16 29.6746ZM23.6182 27.3319C23.4794 26.4989 22.7506 22.5076 20.9631 17.5965C25.2495 16.9197 28.9978 18.0304 29.4664 18.1866C28.8764 21.987 26.6898 25.2668 23.6182 27.3319Z" fill="#EA4C89"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg fill="#ffffff" width="64px" height="64px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>

After

Width:  |  Height:  |  Size: 1.6 KiB

14
docs/static/img/providers/tiktok.svg vendored Normal file
View File

@@ -0,0 +1,14 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Transformed by: SVG Repo Mixer Tools -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-label="TikTok" role="img" viewBox="0 0 512.00 512.00" width="64px" height="64px" fill="#000000" stroke="#000000" stroke-width="0.00512">
<g id="SVGRepo_bgCarrier" stroke-width="0"/>
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round" stroke="#CCCCCC" stroke-width="1.024"/>
<g id="SVGRepo_iconCarrier">
<rect rx="15%" height="512" width="512" fill="#ffffff"/>
<defs>

After

Width:  |  Height:  |  Size: 924 B

View File

@@ -1,7 +1,7 @@
{
"name": "@auth/dynamodb-adapter",
"repository": "https://github.com/nextauthjs/next-auth",
"version": "1.0.1",
"version": "1.0.2",
"description": "AWS DynamoDB adapter for next-auth.",
"keywords": [
"next-auth",
@@ -57,4 +57,4 @@
"dependencies": {
"@auth/core": "workspace:*"
}
}
}

View File

@@ -56,8 +56,8 @@ export interface DynamoDBAdapterOptions {
*
* const config: DynamoDBClientConfig = {
* credentials: {
* accessKeyId: process.env.NEXT_AUTH_AWS_ACCESS_KEY as string,
* secretAccessKey: process.env.NEXT_AUTH_AWS_SECRET_KEY as string,
* accessKeyId: process.env.NEXT_AUTH_AWS_ACCESS_KEY,
* secretAccessKey: process.env.NEXT_AUTH_AWS_SECRET_KEY,
* },
* region: process.env.NEXT_AUTH_AWS_REGION,
* };

View File

@@ -0,0 +1,28 @@
<p align="center">
<br/>
<a href="https://authjs.dev" target="_blank">
<img height="64px" src="https://authjs.dev/img/logo/logo-sm.png" />
</a>
<a href="https://www.edgedb.com/" target="_blank">
<img height="64px" src="https://authjs.dev/img/adapters/edgedb.svg"/>
</a>
<h3 align="center"><b>Edge DB Adapter</b> - NextAuth.js / Auth.js</a></h3>
<p align="center" style="align: center;">
<a href="https://npm.im/@auth/edgedb-adapter">
<img src="https://img.shields.io/badge/TypeScript-blue?style=flat-square" alt="TypeScript" />
</a>
<a href="https://npm.im/@auth/edgedb-adapter">
<img alt="npm" src="https://img.shields.io/npm/v/@auth/edgedb-adapter?color=green&label=@auth/edgedb-adapter&style=flat-square">
</a>
<a href="https://www.npmtrends.com/@auth/edgedb-adapter">
<img src="https://img.shields.io/npm/dm/@auth/edgedb-adapter?label=%20downloads&style=flat-square" alt="Downloads" />
</a>
<a href="https://github.com/nextauthjs/next-auth/stargazers">
<img src="https://img.shields.io/github/stars/nextauthjs/next-auth?style=flat-square" alt="Github Stars" />
</a>
</p>
</p>
---
Check out the documentation at [authjs.dev](https://authjs.dev/reference/adapter/edgedb).

View File

@@ -0,0 +1,4 @@
<svg style="color:#1F8AED" width="140" height="114" viewBox="0 0 140 114" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M118.58 56.966C118.58 66.6274 114.706 68.3592 110.377 68.3592H101.171V45.5728H110.377C114.706 45.5728 118.58 47.3046 118.58 56.966ZM113.887 56.966C113.887 50.2212 111.836 49.9022 108.874 49.9022H106.003V64.0298H108.874C111.836 64.0298 113.887 63.7108 113.887 56.966ZM65.1234 68.3592V45.5728H79.6155V49.9022H69.9541V54.5507H77.2458V58.8345H69.9541V64.0298H79.6155V68.3592H65.1234ZM87.7282 113.932H92.5589V0H87.7282V113.932ZM128.242 58.242V64.0298H132.252C134.758 64.0298 135.396 62.3892 135.396 61.1587C135.396 60.2017 134.941 58.242 131.523 58.242H128.242ZM128.242 49.9022V54.2317H131.523C133.391 54.2317 134.485 53.4113 134.485 52.0442C134.485 50.677 133.391 49.9022 131.523 49.9022H128.242ZM123.411 45.5728H132.708C137.585 45.5728 139.043 48.9908 139.043 51.4517C139.043 53.7304 137.585 55.371 136.582 55.8267C139.499 57.2395 140 60.1105 140 61.5689C140 63.4829 139.043 68.3592 132.708 68.3592H123.411V45.5728ZM37.3702 56.966C37.3702 66.6274 33.4966 68.3592 29.1671 68.3592H19.9614V45.5728H29.1671C33.4966 45.5728 37.3702 47.3046 37.3702 56.966ZM51.5885 64.2121C54.0495 64.2121 55.3255 63.3918 55.7812 62.8449V60.3384H51.862V56.4191H59.6549V65.4881C58.9713 66.5363 55.2344 68.5871 51.8164 68.5871C46.211 68.5871 41.4714 66.3996 41.4714 56.7381C41.4714 47.0767 46.2565 45.345 50.5859 45.345C57.3763 45.345 59.0625 48.8996 59.6094 52.0442L55.5989 52.9556C55.3711 51.4973 54.095 49.6744 51.1784 49.6744C48.2162 49.6744 46.1654 49.9934 46.1654 56.7381C46.1654 63.4829 48.3073 64.2121 51.5885 64.2121ZM32.6756 56.966C32.6756 50.2212 30.6248 49.9022 27.6626 49.9022H24.7915V64.0298H27.6626C30.6248 64.0298 32.6756 63.7108 32.6756 56.966ZM0 68.3592V45.5728H14.4921V49.9022H4.83072V54.5507H12.1224V58.8345H4.83072V64.0298H14.4921V68.3592H0Z" fill="currentColor">
</path>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,55 @@
{
"name": "@auth/edgedb-adapter",
"version": "0.2.0",
"description": "EdgeDB adapter for next-auth.",
"homepage": "https://authjs.dev",
"repository": "https://github.com/nextauthjs/next-auth",
"bugs": {
"url": "https://github.com/nextauthjs/next-auth/issues"
},
"author": "Bruno Crosier",
"type": "module",
"types": "./index.d.ts",
"files": [
"*.d.ts*",
"*.js",
"lib",
"src"
],
"exports": {
".": {
"types": "./index.d.ts",
"import": "./index.js"
}
},
"license": "ISC",
"keywords": [
"next-auth",
"next.js",
"oauth",
"edgedb"
],
"private": false,
"publishConfig": {
"access": "public"
},
"scripts": {
"build": "tsc",
"test": "jest"
},
"peerDependencies": {
"edgedb": "^1.0.1",
"@auth/core": "^0.3.0"
},
"devDependencies": {
"@auth/adapter-test": "workspace:^0.0.0",
"@auth/tsconfig": "workspace:^0.0.0",
"jest": "^27.4.3",
"@auth/core": "workspace:*",
"typescript": "^4.7.4",
"edgedb": "^1.0.1"
},
"jest": {
"preset": "@auth/adapter-test/jest"
}
}

View File

@@ -0,0 +1,615 @@
/**
* <div style={{display: "flex", justifyContent: "space-between", alignItems: "center", padding: 16}}>
* <p style={{fontWeight: "normal"}}>Official <a href="https://www.edgedb.com/">Edge DB</a> adapter for Auth.js / NextAuth.js.</p>
* <a href="https://www.edgedb.com/">
* <img style={{display: "block"}} src="/img/adapters/edgedb.svg" width="38" />
* </a>
* </div>
*
* ## Installation
*
* ```bash npm2yarn2pnpm
* npm install edgedb @auth/edgedb-adapter
* npm install @edgedb/generate --save-dev
* ```
*
* @module @auth/edgedb-adapter
*/
import type {
Adapter,
AdapterSession,
AdapterUser,
VerificationToken,
} from "@auth/core/adapters"
import type { Client } from "edgedb"
/**
*
* To use this Adapter, you need to install `edgedb`, `@edgedb/generate`, and the separate `@auth/edgedb-adapter` package:
*
* ```bash npm2yarn2pnpm
* npm install edgedb @auth/edgedb-adapter
* npm install @edgedb/generate --save-dev
* ```
*
* ## Installation
*
* First, ensure you have the EdgeDB CLI installed.
*
* Follow the instructions below, or read the [EdgeDB quickstart](https://www.edgedb.com/docs/intro/quickstart) to install the EdgeDB CLI and initialize a project
*
* ### Linux or macOS
* ```bash
* curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
* ```
*
* ### Windows
* ```powershell
* iwr https://ps1.edgedb.com -useb | iex
* ```
*
* Check that the CLI is available with the `edgedb --version` command. If you get a `Command not found` error, you may need to open a new terminal window before the `edgedb` command is available.
*
* Once the CLI is installed, initialize a project from the applications root directory. Youll be presented with a series of prompts.
*
* ```bash
* edgedb project init
* ```
*
* This process will spin up an EdgeDB instance and [“link”](https://www.edgedb.com/docs/cli/edgedb_instance/edgedb_instance_link#edgedb-instance-link) it with your current directory. As long as youre inside that directory, CLI commands and client libraries will be able to connect to the linked instance automatically, without additional configuration.
*
* ## Setup
*
* ### NextAuth.js configuration
*
* Configure your NextAuth.js to use the EdgeDB Adapter:
*
* ```javascript title="pages/api/auth/[...nextauth].js"
* import NextAuth from "next-auth"
* import GoogleProvider from "next-auth/providers/google"
* import { EdgeDBAdapter } from "@auth/edgedb-adapter"
* import { createClient } from "edgedb"
*
* const client = createClient()
*
* export default NextAuth({
* adapter: EdgeDBAdapter(client),
* providers: [
* GoogleProvider({
* clientId: process.env.GOOGLE_CLIENT_ID,
* clientSecret: process.env.GOOGLE_CLIENT_SECRET,
* }),
* ],
* })
* ```
*
* ### Create the EdgeDB schema
*
* Replace the contents of the auto-generated file in `dbschema/default.esdl` with the following:
*
* > This schema is adapted for use in EdgeDB and based upon our main [schema](/adapters/models)
*
* ```json title="default.esdl"
* module default {
* type User {
* property name -> str;
* required property email -> str {
* constraint exclusive;
* }
* property emailVerified -> datetime;
* property image -> str;
* multi link accounts := .<user[is Account];
* multi link sessions := .<user[is Session];
* property createdAt -> datetime {
* default := datetime_current();
* };
* }
*
* type Account {
* required property userId := .user.id;
* required property type -> str;
* required property provider -> str;
* required property providerAccountId -> str {
* constraint exclusive;
* };
* property refresh_token -> str;
* property access_token -> str;
* property expires_at -> int64;
* property token_type -> str;
* property scope -> str;
* property id_token -> str;
* property session_state -> str;
* required link user -> User {
* on target delete delete source;
* };
* property createdAt -> datetime {
* default := datetime_current();
* };
*
* constraint exclusive on ((.provider, .providerAccountId))
* }
*
* type Session {
* required property sessionToken -> str {
* constraint exclusive;
* }
* required property userId := .user.id;
* required property expires -> datetime;
* required link user -> User {
* on target delete delete source;
* };
* property createdAt -> datetime {
* default := datetime_current();
* };
* }
*
* type VerificationToken {
* required property identifier -> str;
* required property token -> str {
* constraint exclusive;
* }
* required property expires -> datetime;
* property createdAt -> datetime {
* default := datetime_current();
* };
*
* constraint exclusive on ((.identifier, .token))
* }
* }
*
* # Disable the application of access policies within access policies
* # themselves. This behavior will become the default in EdgeDB 3.0.
* # See: https://www.edgedb.com/docs/reference/ddl/access_policies#nonrecursive
* using future nonrecursive_access_policies;
* ```
*
* ### Migrate the database schema
*
* Create a migration
*
* ```
* edgedb migration create
* ```
*
* Apply the migration
*
* ```
* edgedb migrate
* ```
*
* To learn more about [EdgeDB migrations](https://www.edgedb.com/docs/intro/migrations#generate-a-migration), check out the [Migrations docs](https://www.edgedb.com/docs/intro/migrations).
*
* ### Generate the query builder
*
* ```npm2yarn2pnpm
* npx @edgedb/generate edgeql-js
* ```
*
* This will generate the [query builder](https://www.edgedb.com/docs/clients/js/querybuilder) so that you can write fully typed EdgeQL queries with TypeScript in a code-first way.
*
* For example
*
* ```ts
* const query = e.select(e.User, () => ({
* id: true,
* email: true,
* emailVerified: true,
* name: true,
* image: true,
* filter_single: { email: 'johndoe@example.com' },
* }));
*
* return await query.run(client);
*
* // Return type:
* // {
* // id: string;
* // email: string;
* // emailVerified: Date | null;
* // image: string | null;
* // name: string | null;
* // } | null
*
* ```
*
*
* ## Deploying
*
* ### Deploy EdgeDB
*
* First deploy an EdgeDB instance on your preferred cloud provider:
*
* [AWS](https://www.edgedb.com/docs/guides/deployment/aws_aurora_ecs)
*
* [Google Cloud](https://www.edgedb.com/docs/guides/deployment/gcp)
*
* [Azure](https://www.edgedb.com/docs/guides/deployment/azure_flexibleserver)
*
* [DigitalOcean](https://www.edgedb.com/docs/guides/deployment/digitalocean)
*
* [Fly.io](https://www.edgedb.com/docs/guides/deployment/fly_io)
*
* [Docker](https://www.edgedb.com/docs/guides/deployment/docker) (cloud-agnostic)
*
* ### Find your instances DSN
*
* The DSN is also known as a connection string. It will have the format `edgedb://username:password@hostname:port`. The exact instructions for this depend on which cloud you are deploying to.
*
* ### Set an environment variable
*
* ```env title=".env"
* EDGEDB_DSN=edgedb://johndoe:supersecure@myhost.com:420
* ```
*
* ### Update the client
*
* ```diff title="pages/api/auth/[...nextauth].js"
* import NextAuth from "next-auth"
* import GoogleProvider from "next-auth/providers/google"
* import { EdgeDBAdapter } from "@auth/edgedb-adapter"
* import { createClient } from "edgedb"
*
* - const client = createClient()
* + const client = createClient({ dsn: process.env.EDGEDB_DSN })
*
* export default NextAuth({
* adapter: EdgeDBAdapter(client),
* providers: [
* GoogleProvider({
* clientId: process.env.GOOGLE_CLIENT_ID,
* clientSecret: process.env.GOOGLE_CLIENT_SECRET,
* }),
* ],
* })
* ```
*
*
*
* ### Apply migrations
*
* Use the DSN to apply migrations against your remote instance.
*
* ```bash
* edgedb migrate --dsn <your-instance-dsn>
* ```
*
* ### Set up a `prebuild` script
*
* Add the following `prebuild` script to your `package.json`. When your hosting provider initializes the build, it will trigger this script which will generate the query builder. The `npx @edgedb/generate edgeql-js` command will read the value of the `EDGEDB_DSN` environment variable, connect to the database, and generate the query builder before your hosting provider starts building the project.
*
* ```diff title="package.json"
* "scripts": {
* "dev": "next dev",
* "build": "next build",
* "start": "next start",
* "lint": "next lint",
* + "prebuild": "npx @edgedb/generate edgeql-js"
* },
* ```
*
*/
export function EdgeDBAdapter(client: Client): Adapter {
return {
async createUser({ email, emailVerified, name, image }) {
return await client.queryRequiredSingle(
`
with
image := <optional str>$image,
name := <optional str>$name,
emailVerified := <optional str>$emailVerified
select (
insert User {
email:= <str>$email,
emailVerified:= <datetime>emailVerified,
name:= name,
image:= image,
}
) {
id,
email,
emailVerified,
name,
image
}
`,
{
email,
emailVerified: emailVerified && new Date(emailVerified).toISOString(),
name,
image,
}
)
},
async getUser(id) {
return await client.querySingle<AdapterUser>(
`
select User {
id,
email,
emailVerified,
name,
image
} filter .id = <uuid>$id;
`,
{ id }
)
},
async getUserByEmail(email) {
return await client.querySingle<AdapterUser>(
`
select User {
id,
email,
emailVerified,
name,
image
} filter .email = <str>$email;
`,
{ email }
)
},
async getUserByAccount({ providerAccountId, provider }) {
return await client.querySingle<AdapterUser>(
`
with account := (
select Account
filter .providerAccountId = <str>$providerAccountId
and .provider = <str>$provider
)
select account.user {
id,
email,
image,
name,
emailVerified
}
`,
{ providerAccountId, provider }
)
},
async updateUser({ email, emailVerified, id, image, name }) {
return await client.queryRequiredSingle<AdapterUser>(
`
with
email := <optional str>$email,
emailVerified := <optional str>$emailVerified,
image := <optional str>$image,
name := <optional str>$name
select (
update User
filter .id = <uuid>$id
set {
email := email ?? .email,
emailVerified := <datetime>emailVerified ?? .emailVerified,
image := image ?? .image,
name := name ?? .name,
}
) {
id,
email,
emailVerified,
image,
name
}
`,
{
email,
emailVerified: emailVerified && new Date(emailVerified).toISOString(),
id,
image,
name,
}
)
},
async deleteUser(id) {
await client.execute(`delete User filter .id = <uuid>$id;`, { id })
},
async linkAccount({
userId,
type,
provider,
providerAccountId,
refresh_token,
access_token,
expires_at,
token_type,
scope,
id_token,
session_state,
}) {
await client.execute(
`
with
userId := <optional str>$userId,
refresh_token := <optional str>$refresh_token,
access_token := <optional str>$access_token,
expires_at := <optional str>$expires_at,
token_type := <optional str>$token_type,
scope := <optional str>$scope,
id_token := <optional str>$id_token,
session_state := <optional str>$session_state
insert Account {
type := <str>$type,
provider := <str>$provider,
providerAccountId := <str>$providerAccountId,
refresh_token := refresh_token,
access_token := access_token,
expires_at := <int64>expires_at,
token_type := token_type,
scope := scope,
id_token := id_token,
session_state := session_state,
user := (
select User filter .id = <uuid>userId
)
}
`,
{
userId,
type,
provider,
providerAccountId,
refresh_token,
access_token,
expires_at: expires_at && String(expires_at),
token_type,
scope,
id_token,
session_state,
}
)
},
async unlinkAccount({ providerAccountId, provider }) {
await client.execute(
`
delete Account filter
.providerAccountId = <str>$providerAccountId
and
.provider = <str>$provider
`,
{ providerAccountId, provider }
)
},
async createSession({ expires, sessionToken, userId }) {
return await client.queryRequiredSingle<AdapterSession>(
`
select (
insert Session {
expires := <datetime>$expires,
sessionToken := <str>$sessionToken,
user := (
select User filter .id = <uuid>$userId
)
}
) {
expires,
sessionToken,
userId
};
`,
{ expires, sessionToken, userId }
)
},
async getSessionAndUser(sessionToken) {
const sessionAndUser = await client.querySingle<
AdapterSession & { user: AdapterUser }
>(
`
select Session {
userId,
id,
expires,
sessionToken,
user: {
id,
email,
emailVerified,
image,
name
}
} filter .sessionToken = <str>$sessionToken;
`,
{ sessionToken }
)
if (!sessionAndUser) {
return null
}
const { user, ...session } = sessionAndUser
if (!user || !session) {
return null
}
return {
user,
session,
}
},
async updateSession({ sessionToken, expires, userId }) {
return await client.querySingle<AdapterSession>(
`
with
sessionToken := <optional str>$sessionToken,
expires := <optional str>$expires,
userId := <optional str>$userId,
user := (
select User filter .id = <uuid>userId
)
select (
update Session
filter .sessionToken = <str>$sessionToken
set {
sessionToken := sessionToken ?? .sessionToken,
expires := <datetime>expires ?? .expires,
user := user ?? .user
}
) {
sessionToken,
userId,
expires
}
`,
{
sessionToken,
expires: expires && new Date(expires).toISOString(),
userId,
}
)
},
async deleteSession(sessionToken) {
await client.query(
`delete Session filter .sessionToken = <str>$sessionToken`,
{ sessionToken }
)
},
async createVerificationToken({ identifier, expires, token }) {
const createdVerificationToken =
await client.querySingle<VerificationToken>(
`
select (
insert VerificationToken {
identifier := <str>$identifier,
expires := <datetime>$expires,
token := <str>$token,
}
) {
identifier,
expires,
token
}
`,
{ identifier, expires, token }
)
return createdVerificationToken
},
async useVerificationToken({ token, identifier }) {
const verificationToken = await client.querySingle<VerificationToken>(
`
select (
delete VerificationToken filter .token = <str>$token
and
.identifier = <str>$identifier
) {
identifier,
expires,
token
}
`,
{ token, identifier }
)
if (verificationToken && "id" in verificationToken) {
delete verificationToken.id
}
return verificationToken
},
}
}

View File

@@ -0,0 +1,91 @@
import { runBasicTests } from "@auth/adapter-test"
import { EdgeDBAdapter } from "../src"
import { createClient } from "edgedb"
if (process.env.CI) {
// TODO: Fix this
test('Skipping EdgeDBAdapter tests in CI because of "Request failed" errors. Should revisit', () => {
expect(true).toBe(true)
})
process.exit(0)
}
const client = createClient();
runBasicTests({
adapter: EdgeDBAdapter(client),
db: {
connect: async () => {
await client.query(`
delete User;
delete Account;
delete Session;
delete VerificationToken;
`)
},
disconnect: async () => {
await client.query(`
delete User;
delete Account;
delete Session;
delete VerificationToken;
`)
},
user: async (id) => {
return await client.querySingle(`
select User {
id,
email,
emailVerified,
name,
image
} filter .id = <uuid>$id
`, { id })
},
account: async ({ providerAccountId, provider }) => {
return await client.querySingle(`
select Account {
provider,
providerAccountId,
type,
access_token,
expires_at,
id_token,
refresh_token,
token_type,
scope,
session_state,
id,
userId
}
filter
.providerAccountId = <str>$providerAccountId
and
.provider = <str>$provider
`, { providerAccountId, provider })
},
session: async (sessionToken) => {
return await client.querySingle(`
select Session {
userId,
id,
expires,
sessionToken,
}
filter .sessionToken = <str>$sessionToken
`, { sessionToken })
},
async verificationToken({ token, identifier }) {
return await client.querySingle(`
select VerificationToken {
identifier,
expires,
token,
}
filter .token = <str>$token
and
.identifier = <str>$identifier
`, { token, identifier })
},
},
})

View File

@@ -0,0 +1,20 @@
{
"extends": "@auth/tsconfig/tsconfig.base.json",
"compilerOptions": {
"allowJs": true,
"baseUrl": ".",
"isolatedModules": true,
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "node",
"outDir": ".",
"rootDir": "src",
"skipDefaultLibCheck": true,
"strictNullChecks": true,
"stripInternal": true,
"declarationMap": true,
"declaration": true
},
"include": ["src/**/*"],
"exclude": ["*.js", "*.d.ts"]
}

View File

@@ -1,6 +1,6 @@
{
"name": "@auth/core",
"version": "0.14.0",
"version": "0.15.0",
"description": "Authentication for the Web.",
"keywords": [
"authentication",

View File

@@ -0,0 +1,123 @@
/**
* <div style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
* <span>Built-in <b>Dribbble</b> integration.</span>
* <a href="https://dribbble.com">
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/dribbble.svg" height="48" width="48"/>
* </a>
* </div>
*
* @module providers/dribbble
*/
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
export interface DribbbleProfile extends Record<string, any> {
id: number
name: string
email: string
avatar_url: string
}
/**
*
* Add Dribbble login to your page.
*
* ### Setup
*
* #### Callback URL
* ```
* https://example.com/api/auth/callback/dribbble
* ```
*
* #### Configuration
*```js
* import Auth from "@auth/core"
* import Google from "@auth/core/providers/dribbble"
*
* const request = new Request(origin)
* const response = await Auth(request, {
* providers: [Dribbble({ clientId: DRIBBBLE_CLIENT_ID, clientSecret: DRIBBBLE_CLIENT_SECRET })],
* })
* ```
*
* ### Resources
*
* - [Dribbble API](https://developer.dribbble.com)
* - [Dribbble OAuth](https://developer.dribbble.com/v2/oauth/)
* - [Dribbble Applications](https://dribbble.com/account/applications/new)
*
* ### Notes
*
* By default, Auth.js assumes that the GitHub provider is
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
*
* :::tip
*
* The Dribbble provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/dribbble.ts).
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
*
* :::
*
* :::info **Disclaimer**
*
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
*
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
*
* :::
*
* :::tip
* You can optionally set the scope to `public upload` for more advanced scenarios. If omitted, the default `public` scope will be used for authentication purposes.
* :::
*/
export default function Dribbble<P extends DribbbleProfile>(
options: OAuthUserConfig<P> & {
/**
* Reference: https://developer.dribbble.com/v2/oauth/#scopes
*
* For the purposes of NextAuth.js `upload`-only scope makes no sense,
* therefore it is excluded from suggested values. Treated by Dribbble as `public` when omitted.
*
* @default public
*/
scope?: "public" | "public upload"
}
): OAuthConfig<P> {
return {
id: "dribbble",
name: "Dribbble",
type: "oauth",
authorization: {
url: "https://dribbble.com/oauth/authorize",
params: { scope: options.scope },
},
token: "https://dribbble.com/oauth/token",
userinfo: "https://api.dribbble.com/v2/user",
profile(profile) {
return {
id: profile.id.toString(),
name: profile.name,
email: profile.email,
image: profile.avatar_url,
}
},
style: {
// Light mode
logo: "/dribbble.svg",
text: "#ea4c89",
bg: "#fff",
// Dark mode
logoDark: "/dribbble-dark.svg",
textDark: "#fff",
bgDark: "#000",
},
options,
}
}

View File

@@ -0,0 +1,269 @@
/**
* <div style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
* <span>Built-in <b>Tiktok</b> integration.</span>
* <a href="https://www.tiktok.com/">
* <img style={{display: "block"}} src="https://authjs.dev/img/providers/tiktok.svg" height="48" />
* </a>
* </div>
*
* @module providers/tiktok
*/
import { TokenSet } from "src/types.js"
import type { OAuthConfig, OAuthUserConfig } from "./index.js"
/**
* [More info](https://developers.tiktok.com/doc/tiktok-api-v2-get-user-info/)
*/
export interface TiktokProfile extends Record<string, any> {
data: {
user: {
/**
* The unique identification of the user in the current application.Open id
* for the client.
*
* To return this field, add `fields=open_id` in the user profile request's query parameter.
*/
open_id: string
/**
* The unique identification of the user across different apps for the same developer.
* For example, if a partner has X number of clients,
* it will get X number of open_id for the same TikTok user,
* but one persistent union_id for the particular user.
*
* To return this field, add `fields=union_id` in the user profile request's query parameter.
*/
union_id?: string
/**
* User's profile image.
*
* To return this field, add `fields=avatar_url` in the user profile request's query parameter.
*/
avatar_url: string
/**
* User`s profile image in 100x100 size.
*
* To return this field, add `fields=avatar_url_100` in the user profile request's query parameter.
*/
avatar_url_100?: string
/**
* User's profile image with higher resolution
*
* To return this field, add `fields=avatar_url_100` in the user profile request's query parameter.
*/
avatar_large_url?: string
/**
* User's profile name
*
* To return this field, add `fields=display_name` in the user profile request's query parameter.
*/
display_name: string
/**
* User's username.
*
* To return this field, add `fields=username` in the user profile request's query parameter.
*/
username: string
/** @note Email is currently unsupported by Tiktok */
email?: string
/**
* User's bio description if there is a valid one.
*
* To return this field, add `fields=bio_description` in the user profile request's query parameter.
*/
bio_description?: string
/**
* The link to user's TikTok profile page.
*
* To return this field, add `fields=profile_deep_link` in the user profile request's query parameter.
*/
profile_deep_link?: string
/**
* Whether TikTok has provided a verified badge to the account after confirming
* that it belongs to the user it represents.
*
* To return this field, add `fields=is_verified` in the user profile request's query parameter.
*/
is_verified?: boolean
/**
* User's followers count.
*
* To return this field, add `fields=follower_count` in the user profile request's query parameter.
*/
follower_count?: number
/**
* The number of accounts that the user is following.
*
* To return this field, add `fields=following_count` in the user profile request's query parameter.
*/
following_count?: number
/**
* The total number of likes received by the user across all of their videos.
*
* To return this field, add `fields=likes_count` in the user profile request's query parameter.
*/
likes_count?: number
/**
* The total number of publicly posted videos by the user.
*
* To return this field, add `fields=video_count` in the user profile request's query parameter.
*/
video_count?: number
}
}
error: {
/**
* The error category in string.
*/
code: string
/**
* The error message in string.
*/
message: string
/**
* The error message in string.
*/
log_id: string
}
}
/**
* Add Tiktok login to your page.
*
* ### Setup
*
* #### Callback URL
* ```
* https://example.com/api/auth/callback/tiktok
* ```
*
* #### Configuration
*```js
* import Auth from "@auth/core"
* import Tiktok from "@auth/core/providers/tiktok"
*
* const request = new Request(origin)
* const response = await Auth(request, {
* providers: [Tiktok({ clientId: TIKTOK_CLIENT_KEY, clientSecret: TIKTOK_CLIENT_SECRET })],
* })
* ```
*
* ### Resources
* - [Tiktok app console](https://developers.tiktok.com/)
* - [Tiktok login kit documentation](https://developers.tiktok.com/doc/login-kit-web/)
* - [Avaliable Scopes](https://developers.tiktok.com/doc/tiktok-api-scopes/)
*
*
* ### Notes
*
* :::tip
*
* Production applications cannot use localhost URLs to sign in with Tiktok. You need add the domain and Callback/Redirect url's to your Tiktok app and have them review and approved by the Tiktok Team.
*
* :::
*
* :::tip
*
* Email address is not supported by Tiktok.
*
* :::
*
* :::tip
*
* Client_ID will be the Client Key in the Tiktok Application
*
* :::
*
* By default, Auth.js assumes that the Tiktok provider is
* based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
*
* :::tip
*
* The Tiktok provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/tiktok.ts).
* To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
*
* :::
*
* :::info **Disclaimer**
*
* If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
*
* Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
* the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
* we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
*
* :::
*/
export default function Tiktok<P extends TiktokProfile>(
options: OAuthUserConfig<P>
): OAuthConfig<P> {
return {
id: "tiktok",
name: "TikTok",
type: "oauth",
authorization: {
url: "https://www.tiktok.com/v2/auth/authorize",
params: {
client_key: options.clientId,
scope: "user.info.profile",
response_type: "code",
},
},
token: {
async request({ params, provider }) {
const res = await fetch(`https://open.tiktokapis.com/v2/oauth/token/`, {
method: "POST",
headers: {
"Cache-Control": "no-cache",
"Content-Type": "application/x-www-form-urlencoded",
},
body: new URLSearchParams({
client_key: provider.clientId!,
client_secret: provider.clientSecret!,
code: params.code!,
grant_type: "authorization_code",
redirect_uri: provider.callbackUrl!,
}),
}).then((res) => res.json())
const tokens: TokenSet = {
access_token: res.access_token,
expires_at: res.expires_in,
refresh_token: res.refresh_token,
scope: res.scope,
id_token: res.open_id,
token_type: res.token_type,
session_state: res.open_id,
}
return {
tokens,
}
},
},
userinfo: {
url: "https://open.tiktokapis.com/v2/user/info/?fields=open_id,avatar_url,display_name,username",
async request({ tokens, provider }) {
return await fetch(provider.userinfo?.url as URL, {
headers: { Authorization: `Bearer ${tokens.access_token}` },
}).then(async (res) => await res.json())
},
},
profile(profile) {
return {
id: profile.data.user.open_id,
name: profile.data.user.display_name,
image: profile.data.user.avatar_url,
email: profile.data.user.email || null,
}
},
style: {
logo: "/tiktok.svg",
logoDark: "/tiktok-dark.svg",
bg: "#fff",
bgDark: "#000",
text: "#000",
textDark: "#fff",
},
options,
}
}

331
pnpm-lock.yaml generated
View File

@@ -79,6 +79,9 @@ importers:
'@auth/core':
specifier: workspace:*
version: link:../../../packages/core
'@auth/edgedb-adapter':
specifier: workspace:*
version: link:../../../packages/adapter-edgedb
'@auth/fauna-adapter':
specifier: workspace:*
version: link:../../../packages/adapter-fauna
@@ -97,6 +100,9 @@ importers:
'@supabase/supabase-js':
specifier: ^2.0.5
version: 2.0.5
edgedb:
specifier: ^1.0.1
version: 1.3.6
faunadb:
specifier: ^4
version: 4.6.0
@@ -116,6 +122,9 @@ importers:
specifier: ^18
version: 18.2.0(react@18.2.0)
devDependencies:
'@edgedb/generate':
specifier: ^0.0.4
version: 0.0.4(edgedb@1.3.6)
'@playwright/test':
specifier: 1.29.2
version: 1.29.2
@@ -274,22 +283,22 @@ importers:
devDependencies:
'@docusaurus/core':
specifier: 2.4.1
version: 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
version: 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/eslint-plugin':
specifier: 2.4.1
version: 2.4.1(eslint@8.30.0)(typescript@5.0.4)
version: 2.4.1(eslint@8.30.0)(typescript@4.9.5)
'@docusaurus/module-type-aliases':
specifier: 2.4.1
version: 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/preset-classic':
specifier: 2.4.1
version: 2.4.1(@algolia/client-search@4.13.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
version: 2.4.1(@algolia/client-search@4.13.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-common':
specifier: 2.4.1
version: 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
version: 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-mermaid':
specifier: 2.4.1
version: 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
version: 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types':
specifier: 2.4.1
version: 2.4.1(react-dom@18.2.0)(react@18.2.0)
@@ -298,7 +307,7 @@ importers:
version: 1.0.0-next.5(typedoc-plugin-markdown@4.0.0-next.6)
typedoc:
specifier: ^0.24.8
version: 0.24.8(typescript@5.0.4)
version: 0.24.8(typescript@4.9.5)
typedoc-plugin-markdown:
specifier: 4.0.0-next.6
version: 4.0.0-next.6(prettier@2.8.1)(typedoc@0.24.8)
@@ -399,6 +408,27 @@ importers:
specifier: ^27.4.3
version: 27.5.1
packages/adapter-edgedb:
devDependencies:
'@auth/adapter-test':
specifier: workspace:^0.0.0
version: link:../adapter-test
'@auth/core':
specifier: workspace:*
version: link:../core
'@auth/tsconfig':
specifier: workspace:^0.0.0
version: link:../tsconfig
edgedb:
specifier: ^1.0.1
version: 1.3.6
jest:
specifier: ^27.4.3
version: 27.5.1
typescript:
specifier: ^4.7.4
version: 4.9.5
packages/adapter-fauna:
dependencies:
'@auth/core':
@@ -3099,7 +3129,6 @@ packages:
/@babel/helper-plugin-utils@7.21.5:
resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==}
engines: {node: '>=6.9.0'}
dev: true
/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.18.5):
resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==}
@@ -7071,7 +7100,7 @@ packages:
- '@algolia/client-search'
dev: true
/@docusaurus/core@2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/core@2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==}
engines: {node: '>=16.14'}
hasBin: true
@@ -7130,7 +7159,7 @@ packages:
postcss-loader: 7.0.0(postcss@8.4.19)(webpack@5.75.0)
prompts: 2.4.2
react: 18.2.0
react-dev-utils: 12.0.1(eslint@8.30.0)(typescript@5.0.4)(webpack@5.75.0)
react-dev-utils: 12.0.1(eslint@8.30.0)(typescript@4.9.5)(webpack@5.75.0)
react-dom: 18.2.0(react@18.2.0)
react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0)
@@ -7179,13 +7208,13 @@ packages:
tslib: 2.5.2
dev: true
/@docusaurus/eslint-plugin@2.4.1(eslint@8.30.0)(typescript@5.0.4):
/@docusaurus/eslint-plugin@2.4.1(eslint@8.30.0)(typescript@4.9.5):
resolution: {integrity: sha512-Sb+aLgf07v2xenPHlcBtvADFkE6xi1Nx9cKNb98Tq5MGoywHpxUfwT3RHar+eA8vCjR3fu0npSzuRt26AJa5lw==}
engines: {node: '>=16.14'}
peerDependencies:
eslint: '>=6'
dependencies:
'@typescript-eslint/utils': 5.47.0(eslint@8.30.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.47.0(eslint@8.30.0)(typescript@4.9.5)
eslint: 8.30.0
tslib: 2.5.2
transitivePeerDependencies:
@@ -7259,14 +7288,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-content-blog@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-content-blog@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/logger': 2.4.1
'@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
@@ -7300,14 +7329,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-content-docs@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-content-docs@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/logger': 2.4.1
'@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
@@ -7341,14 +7370,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-content-pages@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-content-pages@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
@@ -7374,14 +7403,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-debug@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-debug@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
fs-extra: 10.1.0
@@ -7407,14 +7436,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-google-analytics@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-google-analytics@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
react: 18.2.0
@@ -7436,14 +7465,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-google-gtag@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-google-gtag@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
react: 18.2.0
@@ -7465,14 +7494,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-google-tag-manager@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-google-tag-manager@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
react: 18.2.0
@@ -7494,14 +7523,14 @@ packages:
- webpack-cli
dev: true
/@docusaurus/plugin-sitemap@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/plugin-sitemap@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/logger': 2.4.1
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
@@ -7528,25 +7557,25 @@ packages:
- webpack-cli
dev: true
/@docusaurus/preset-classic@2.4.1(@algolia/client-search@4.13.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/preset-classic@2.4.1(@algolia/client-search@4.13.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-debug': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-google-analytics': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-google-gtag': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-google-tag-manager': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-sitemap': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-classic': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-search-algolia': 2.4.1(@algolia/client-search@4.13.1)(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-debug': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-google-analytics': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-google-gtag': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-google-tag-manager': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-sitemap': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-classic': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-search-algolia': 2.4.1(@algolia/client-search@4.13.1)(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -7579,20 +7608,20 @@ packages:
react: 18.2.0
dev: true
/@docusaurus/theme-classic@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/theme-classic@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-translations': 2.4.1
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
@@ -7629,7 +7658,7 @@ packages:
- webpack-cli
dev: true
/@docusaurus/theme-common@2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/theme-common@2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==}
engines: {node: '>=16.14'}
peerDependencies:
@@ -7638,9 +7667,9 @@ packages:
dependencies:
'@docusaurus/mdx-loader': 2.4.1(@docusaurus/types@2.4.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-blog': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-content-pages': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
'@docusaurus/utils-common': 2.4.1(@docusaurus/types@2.4.1)
'@types/history': 4.7.11
@@ -7671,16 +7700,16 @@ packages:
- webpack-cli
dev: true
/@docusaurus/theme-mermaid@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/theme-mermaid@2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-cM0ImKIqZfjmlaC+uAjep39kNBvb1bjz429QBHGs32maob4+UnRzVPPpCUCltyPVb4xjG5h1Tyq4pHzhtIikqA==}
engines: {node: '>=16.14'}
peerDependencies:
react: ^16.8.4 || ^17.0.0
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/module-type-aliases': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/types': 2.4.1(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
'@mdx-js/react': 1.6.22(react@18.2.0)
@@ -7704,7 +7733,7 @@ packages:
- webpack-cli
dev: true
/@docusaurus/theme-search-algolia@2.4.1(@algolia/client-search@4.13.1)(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
/@docusaurus/theme-search-algolia@2.4.1(@algolia/client-search@4.13.1)(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==}
engines: {node: '>=16.14'}
peerDependencies:
@@ -7712,10 +7741,10 @@ packages:
react-dom: ^16.8.4 || ^17.0.0
dependencies:
'@docsearch/react': 3.3.0(@algolia/client-search@4.13.1)(react-dom@18.2.0)(react@18.2.0)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/core': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/logger': 2.4.1
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@docusaurus/plugin-content-docs': 2.4.1(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-common': 2.4.1(@docusaurus/types@2.4.1)(eslint@8.30.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-translations': 2.4.1
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
'@docusaurus/utils-validation': 2.4.1(@docusaurus/types@2.4.1)
@@ -7869,6 +7898,17 @@ packages:
'@edge-runtime/primitives': 1.1.0-beta.36
dev: true
/@edgedb/generate@0.0.4(edgedb@1.3.6):
resolution: {integrity: sha512-54Z0Z+kEDgATkpmm/Y1g4rdfzBB6waJeOCzkFYGJ6QENlnyjIo9fxKCxOJZM0FAF9n3VcCgZdsSgLFUjLiHh4g==}
engines: {node: '>= 12.0.0'}
hasBin: true
peerDependencies:
edgedb: ^1.0.0-alpha.0
dependencies:
chokidar: 3.5.3
edgedb: 1.3.6
dev: true
/@emotion/is-prop-valid@1.2.0:
resolution: {integrity: sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==}
dependencies:
@@ -9281,7 +9321,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
expect: 29.3.1
jest-snapshot: 29.3.1
jest-snapshot: 29.5.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -9291,7 +9331,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
expect: 29.3.1
jest-snapshot: 29.3.1
jest-snapshot: 29.5.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -9363,7 +9403,7 @@ packages:
'@types/node': 17.0.45
jest-message-util: 29.3.1
jest-mock: 29.3.0
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/@jest/fake-timers@29.3.1:
@@ -9375,7 +9415,7 @@ packages:
'@types/node': 17.0.45
jest-message-util: 29.3.1
jest-mock: 29.3.1
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/@jest/fake-timers@29.5.0:
@@ -9852,7 +9892,7 @@ packages:
resolution: {integrity: sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/test-result': 29.3.1
'@jest/test-result': 29.5.0
graceful-fs: 4.2.10
jest-haste-map: 29.3.1
slash: 3.0.0
@@ -9862,7 +9902,7 @@ packages:
resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/test-result': 29.3.1
'@jest/test-result': 29.5.0
graceful-fs: 4.2.10
jest-haste-map: 29.3.1
slash: 3.0.0
@@ -9905,7 +9945,7 @@ packages:
resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
'@jest/types': 27.5.1
babel-plugin-istanbul: 6.1.1
chalk: 4.1.2
@@ -9974,7 +10014,7 @@ packages:
resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
'@jest/types': 29.5.0
'@jridgewell/trace-mapping': 0.3.17
babel-plugin-istanbul: 6.1.1
@@ -9982,13 +10022,13 @@ packages:
convert-source-map: 2.0.0
fast-json-stable-stringify: 2.1.0
graceful-fs: 4.2.10
jest-haste-map: 29.3.1
jest-regex-util: 29.2.0
jest-util: 29.3.1
jest-haste-map: 29.5.0
jest-regex-util: 29.4.3
jest-util: 29.5.0
micromatch: 4.0.5
pirates: 4.0.5
slash: 3.0.0
write-file-atomic: 4.0.1
write-file-atomic: 4.0.2
transitivePeerDependencies:
- supports-color
dev: true
@@ -12745,7 +12785,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/typescript-estree@5.47.0(typescript@5.0.4):
/@typescript-eslint/typescript-estree@5.47.0(typescript@4.9.5):
resolution: {integrity: sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -12760,8 +12800,8 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.1
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -12805,7 +12845,7 @@ packages:
- typescript
dev: true
/@typescript-eslint/utils@5.47.0(eslint@8.30.0)(typescript@5.0.4):
/@typescript-eslint/utils@5.47.0(eslint@8.30.0)(typescript@4.9.5):
resolution: {integrity: sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -12815,7 +12855,7 @@ packages:
'@types/semver': 7.3.13
'@typescript-eslint/scope-manager': 5.47.0
'@typescript-eslint/types': 5.47.0
'@typescript-eslint/typescript-estree': 5.47.0(typescript@5.0.4)
'@typescript-eslint/typescript-estree': 5.47.0(typescript@4.9.5)
eslint: 8.30.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0(eslint@8.30.0)
@@ -13343,14 +13383,6 @@ packages:
- supports-color
dev: false
/anymatch@3.1.2:
resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
dev: true
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -13694,18 +13726,18 @@ packages:
- supports-color
dev: false
/babel-jest@27.5.1(@babel/core@7.20.12):
/babel-jest@27.5.1(@babel/core@7.22.1):
resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
'@jest/transform': 27.5.1
'@jest/types': 27.5.1
'@types/babel__core': 7.1.19
babel-plugin-istanbul: 6.1.1
babel-preset-jest: 27.5.1(@babel/core@7.20.12)
babel-preset-jest: 27.5.1(@babel/core@7.22.1)
chalk: 4.1.2
graceful-fs: 4.2.10
slash: 3.0.0
@@ -13826,7 +13858,7 @@ packages:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
engines: {node: '>=8'}
dependencies:
'@babel/helper-plugin-utils': 7.20.2
'@babel/helper-plugin-utils': 7.21.5
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-instrument: 5.2.0
@@ -14112,15 +14144,15 @@ packages:
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.1)
dev: false
/babel-preset-jest@27.5.1(@babel/core@7.20.12):
/babel-preset-jest@27.5.1(@babel/core@7.22.1):
resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
babel-plugin-jest-hoist: 27.5.1
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.1)
dev: true
/babel-preset-jest@28.1.1(@babel/core@7.20.12):
@@ -17233,6 +17265,11 @@ packages:
dependencies:
safe-buffer: 5.2.1
/edgedb@1.3.6:
resolution: {integrity: sha512-0eIBj/ClNYHkcxPyCtwGIZ4fC0RIWkI6CEntk8mPSVhcw6+32+o5pTCeb/tRwo9c56qVqJpiYR7Mqu+nZondNA==}
engines: {node: '>= 12.0.0'}
hasBin: true
/editorconfig@0.15.3:
resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==}
hasBin: true
@@ -19305,7 +19342,7 @@ packages:
/forever-agent@0.6.1:
resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
/fork-ts-checker-webpack-plugin@6.5.2(eslint@8.30.0)(typescript@5.0.4)(webpack@5.75.0):
/fork-ts-checker-webpack-plugin@6.5.2(eslint@8.30.0)(typescript@4.9.5)(webpack@5.75.0):
resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==}
engines: {node: '>=10', yarn: '>=1.0.0'}
peerDependencies:
@@ -19333,7 +19370,7 @@ packages:
schema-utils: 2.7.0
semver: 7.5.1
tapable: 1.1.3
typescript: 5.0.4
typescript: 4.9.5
webpack: 5.75.0
dev: true
@@ -21445,7 +21482,7 @@ packages:
dependencies:
'@jest/environment': 29.3.0
'@jest/expect': 29.3.0
'@jest/test-result': 29.3.1
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
'@types/node': 17.0.45
chalk: 4.1.2
@@ -21457,7 +21494,7 @@ packages:
jest-message-util: 29.3.1
jest-runtime: 29.3.1
jest-snapshot: 29.3.1
jest-util: 29.3.1
jest-util: 29.5.0
p-limit: 3.1.0
pretty-format: 29.3.1
slash: 3.0.0
@@ -21472,7 +21509,7 @@ packages:
dependencies:
'@jest/environment': 29.3.1
'@jest/expect': 29.3.1
'@jest/test-result': 29.3.1
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
'@types/node': 17.0.45
chalk: 4.1.2
@@ -21484,7 +21521,7 @@ packages:
jest-message-util: 29.3.1
jest-runtime: 29.3.1
jest-snapshot: 29.3.1
jest-util: 29.3.1
jest-util: 29.5.0
p-limit: 3.1.0
pretty-format: 29.3.1
slash: 3.0.0
@@ -21732,12 +21769,12 @@ packages:
ts-node:
optional: true
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
'@jest/test-sequencer': 27.5.1
'@jest/types': 27.5.1
babel-jest: 27.5.1(@babel/core@7.20.12)
babel-jest: 27.5.1(@babel/core@7.22.1)
chalk: 4.1.2
ci-info: 3.7.0
ci-info: 3.8.0
deepmerge: 4.3.0
glob: 7.2.3
graceful-fs: 4.2.10
@@ -22053,8 +22090,8 @@ packages:
'@jest/types': 29.5.0
chalk: 4.1.2
jest-get-type: 29.2.0
jest-util: 29.3.1
pretty-format: 29.3.1
jest-util: 29.5.0
pretty-format: 29.5.0
dev: true
/jest-each@29.3.1:
@@ -22064,8 +22101,8 @@ packages:
'@jest/types': 29.5.0
chalk: 4.1.2
jest-get-type: 29.2.0
jest-util: 29.3.1
pretty-format: 29.3.1
jest-util: 29.5.0
pretty-format: 29.5.0
dev: true
/jest-each@29.5.0:
@@ -22179,7 +22216,7 @@ packages:
'@jest/types': 29.5.0
'@types/node': 17.0.45
jest-mock: 29.3.0
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/jest-environment-node@29.3.1:
@@ -22191,7 +22228,7 @@ packages:
'@jest/types': 29.5.0
'@types/node': 17.0.45
jest-mock: 29.3.1
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/jest-environment-node@29.5.0:
@@ -22260,7 +22297,7 @@ packages:
'@jest/types': 27.5.1
'@types/graceful-fs': 4.1.5
'@types/node': 17.0.45
anymatch: 3.1.2
anymatch: 3.1.3
fb-watchman: 2.0.1
graceful-fs: 4.2.10
jest-regex-util: 27.5.1
@@ -22280,7 +22317,7 @@ packages:
'@jest/types': 28.1.3
'@types/graceful-fs': 4.1.5
'@types/node': 17.0.45
anymatch: 3.1.2
anymatch: 3.1.3
fb-watchman: 2.0.1
graceful-fs: 4.2.10
jest-regex-util: 28.0.2
@@ -22299,7 +22336,7 @@ packages:
'@jest/types': 29.5.0
'@types/graceful-fs': 4.1.5
'@types/node': 17.0.45
anymatch: 3.1.2
anymatch: 3.1.3
fb-watchman: 2.0.1
graceful-fs: 4.2.10
jest-regex-util: 29.2.0
@@ -22318,7 +22355,7 @@ packages:
'@jest/types': 29.5.0
'@types/graceful-fs': 4.1.5
'@types/node': 17.0.45
anymatch: 3.1.2
anymatch: 3.1.3
fb-watchman: 2.0.1
graceful-fs: 4.2.10
jest-regex-util: 29.2.0
@@ -22673,7 +22710,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@types/node': 17.0.45
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/jest-mock@29.3.1:
@@ -22682,7 +22719,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@types/node': 17.0.45
jest-util: 29.3.1
jest-util: 29.5.0
dev: true
/jest-mock@29.5.0:
@@ -23257,12 +23294,12 @@ packages:
resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/environment': 29.3.1
'@jest/environment': 29.5.0
'@jest/fake-timers': 29.3.1
'@jest/globals': 29.3.1
'@jest/source-map': 29.2.0
'@jest/test-result': 29.3.1
'@jest/transform': 29.3.1
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
'@types/node': 17.0.45
chalk: 4.1.2
@@ -23270,13 +23307,13 @@ packages:
collect-v8-coverage: 1.0.1
glob: 7.2.3
graceful-fs: 4.2.10
jest-haste-map: 29.3.1
jest-message-util: 29.3.1
jest-haste-map: 29.5.0
jest-message-util: 29.5.0
jest-mock: 29.3.1
jest-regex-util: 29.2.0
jest-resolve: 29.3.1
jest-snapshot: 29.3.1
jest-util: 29.3.1
jest-regex-util: 29.4.3
jest-resolve: 29.5.0
jest-snapshot: 29.5.0
jest-util: 29.5.0
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
@@ -23357,16 +23394,16 @@ packages:
resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@babel/core': 7.20.12
'@babel/generator': 7.20.14
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
'@babel/traverse': 7.20.13
'@babel/types': 7.20.7
'@babel/core': 7.22.1
'@babel/generator': 7.22.3
'@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.22.1)
'@babel/traverse': 7.22.4
'@babel/types': 7.22.4
'@jest/transform': 27.5.1
'@jest/types': 27.5.1
'@types/babel__traverse': 7.17.1
'@types/prettier': 2.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.1)
chalk: 4.1.2
expect: 27.5.1
graceful-fs: 4.2.10
@@ -23450,29 +23487,29 @@ packages:
resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/core': 7.20.12
'@babel/core': 7.22.1
'@babel/generator': 7.20.14
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.1)
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.22.1)
'@babel/traverse': 7.20.13
'@babel/types': 7.20.7
'@jest/expect-utils': 29.3.1
'@jest/transform': 29.3.1
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
'@types/babel__traverse': 7.17.1
'@types/prettier': 2.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12)
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.1)
chalk: 4.1.2
expect: 29.3.1
graceful-fs: 4.2.10
jest-diff: 29.3.1
jest-get-type: 29.2.0
jest-haste-map: 29.3.1
jest-haste-map: 29.5.0
jest-matcher-utils: 29.3.1
jest-message-util: 29.3.1
jest-util: 29.3.1
jest-message-util: 29.5.0
jest-util: 29.5.0
natural-compare: 1.4.0
pretty-format: 29.3.1
pretty-format: 29.5.0
semver: 7.5.1
transitivePeerDependencies:
- supports-color
@@ -23809,7 +23846,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@types/node': 17.0.45
jest-util: 29.3.1
jest-util: 29.5.0
merge-stream: 2.0.0
supports-color: 8.1.1
dev: true
@@ -26735,7 +26772,7 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
'@babel/code-frame': 7.18.6
'@babel/code-frame': 7.21.4
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
@@ -28567,7 +28604,7 @@ packages:
pure-color: 1.3.0
dev: true
/react-dev-utils@12.0.1(eslint@8.30.0)(typescript@5.0.4)(webpack@5.75.0):
/react-dev-utils@12.0.1(eslint@8.30.0)(typescript@4.9.5)(webpack@5.75.0):
resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -28586,7 +28623,7 @@ packages:
escape-string-regexp: 4.0.0
filesize: 8.0.7
find-up: 5.0.0
fork-ts-checker-webpack-plugin: 6.5.2(eslint@8.30.0)(typescript@5.0.4)(webpack@5.75.0)
fork-ts-checker-webpack-plugin: 6.5.2(eslint@8.30.0)(typescript@4.9.5)(webpack@5.75.0)
global-modules: 2.0.0
globby: 11.1.0
gzip-size: 6.0.0
@@ -28601,7 +28638,7 @@ packages:
shell-quote: 1.7.3
strip-ansi: 6.0.1
text-table: 0.2.0
typescript: 5.0.4
typescript: 4.9.5
webpack: 5.75.0
transitivePeerDependencies:
- eslint
@@ -31585,14 +31622,14 @@ packages:
- ts-node
dev: true
/tsutils@3.21.0(typescript@5.0.4):
/tsutils@3.21.0(typescript@4.9.5):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 5.0.4
typescript: 4.9.5
dev: true
/tsutils@3.21.0(typescript@5.2.2):
@@ -31757,10 +31794,10 @@ packages:
typedoc: '>=0.24.0'
dependencies:
prettier: 2.8.1
typedoc: 0.24.8(typescript@5.0.4)
typedoc: 0.24.8(typescript@4.9.5)
dev: true
/typedoc@0.24.8(typescript@5.0.4):
/typedoc@0.24.8(typescript@4.9.5):
resolution: {integrity: sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==}
engines: {node: '>= 14.14'}
hasBin: true
@@ -31771,7 +31808,7 @@ packages:
marked: 4.3.0
minimatch: 9.0.0
shiki: 0.14.1
typescript: 5.0.4
typescript: 4.9.5
dev: true
/typeorm-naming-strategies@4.1.0(typeorm@0.3.15):
@@ -31942,9 +31979,9 @@ packages:
- supports-color
dev: true
/typescript@5.0.4:
resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
engines: {node: '>=12.20'}
/typescript@4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
hasBin: true
dev: true