Compare commits
14 Commits
@blitzjs/a
...
@blitzjs/a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fe860512c | ||
|
|
adfe8ff919 | ||
|
|
980869fbc8 | ||
|
|
00f6d5576a | ||
|
|
1945d85db2 | ||
|
|
b0c21b0706 | ||
|
|
931156c352 | ||
|
|
1436e76180 | ||
|
|
c3bb5cd95b | ||
|
|
8b08fe4e38 | ||
|
|
604dc3b345 | ||
|
|
20fb3b9427 | ||
|
|
66ea6ec0cb | ||
|
|
8490b07246 |
5
.changeset/fast-trainers-kneel.md
Normal file
5
.changeset/fast-trainers-kneel.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Export Zod utils from blitz core package
|
||||
5
.changeset/moody-squids-cheer.md
Normal file
5
.changeset/moody-squids-cheer.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
test automated publish
|
||||
@@ -22,11 +22,13 @@
|
||||
"dirty-monkeys-greet",
|
||||
"empty-berries-rule",
|
||||
"fair-wombats-sneeze",
|
||||
"fast-trainers-kneel",
|
||||
"flat-bees-approve",
|
||||
"great-months-train",
|
||||
"hot-drinks-approve",
|
||||
"lovely-colts-share",
|
||||
"modern-cameras-pull",
|
||||
"moody-squids-cheer",
|
||||
"nice-starfishes-live",
|
||||
"nine-onions-admire",
|
||||
"ninety-pets-heal",
|
||||
@@ -35,8 +37,10 @@
|
||||
"poor-penguins-look",
|
||||
"poor-shrimps-think",
|
||||
"quiet-feet-travel",
|
||||
"rich-chairs-invent",
|
||||
"sharp-falcons-begin",
|
||||
"silent-colts-reply",
|
||||
"small-socks-confess",
|
||||
"stupid-walls-sell",
|
||||
"swift-drinks-dress",
|
||||
"ten-rivers-burn",
|
||||
@@ -45,6 +49,7 @@
|
||||
"twenty-beans-pump",
|
||||
"two-kiwis-help",
|
||||
"unlucky-papayas-sleep",
|
||||
"weak-suns-shave",
|
||||
"wicked-ghosts-cough",
|
||||
"wise-frogs-give"
|
||||
]
|
||||
|
||||
5
.changeset/rich-chairs-invent.md
Normal file
5
.changeset/rich-chairs-invent.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
---
|
||||
|
||||
Rename prefetchBlitzQuery to prefetchQuery, add prefetchInfiniteQuery
|
||||
5
.changeset/small-socks-confess.md
Normal file
5
.changeset/small-socks-confess.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/auth": patch
|
||||
---
|
||||
|
||||
Add passport adapter to @blitzjs/auth
|
||||
5
.changeset/weak-suns-shave.md
Normal file
5
.changeset/weak-suns-shave.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
---
|
||||
|
||||
Move blitz config to next.config.js
|
||||
11
.github/workflows/release.yml
vendored
11
.github/workflows/release.yml
vendored
@@ -20,18 +20,25 @@ jobs:
|
||||
with:
|
||||
node-version: 16.x
|
||||
|
||||
- name: Creating .npmrc
|
||||
run: |
|
||||
cat << EOF > "$HOME/.npmrc"
|
||||
//registry.npmjs.org/:_authToken=$NPM_TOKEN
|
||||
EOF
|
||||
env:
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
- name: Pre-publish
|
||||
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
|
||||
with:
|
||||
version: 6.32.6
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm changeset version
|
||||
- run: pnpm build
|
||||
|
||||
- name: Create Release Pull Request
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
publish: pnpm changeset publish
|
||||
publish: pnpm release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
1
.npmrc
1
.npmrc
@@ -1,4 +1,5 @@
|
||||
save-exact=true
|
||||
strict-peer-dependencies=false
|
||||
|
||||
public-hoist-pattern[]=secure-password
|
||||
public-hoist-pattern[]=*types*
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@blitzjs/rpc": "workspace:*",
|
||||
"@hookform/resolvers": "2.8.8",
|
||||
"@prisma/client": "3.9.0",
|
||||
"blitz": "workspace:2.0.0-alpha.23",
|
||||
"blitz": "workspace:2.0.0-alpha.25",
|
||||
"next": "12.1.6-canary.17",
|
||||
"prisma": "3.9.0",
|
||||
"react": "18.0.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {setupBlitzServer} from "@blitzjs/next"
|
||||
import {AuthServerPlugin, PrismaStorage} from "@blitzjs/auth"
|
||||
import {prisma as db} from "../prisma/index"
|
||||
import db from "db"
|
||||
import {simpleRolesIsAuthorized} from "@blitzjs/auth"
|
||||
|
||||
const {gSSP, gSP, api} = setupBlitzServer({
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import {Ctx} from "blitz"
|
||||
import {prisma} from "../../prisma"
|
||||
import {User} from "prisma"
|
||||
import db, {User} from "db"
|
||||
|
||||
export default async function createUser(
|
||||
input: {name: string; email: string},
|
||||
@@ -8,7 +7,7 @@ export default async function createUser(
|
||||
): Promise<User> {
|
||||
ctx.session.$authorize()
|
||||
|
||||
const user = await prisma.user.create({data: {name: input.name, email: input.email}})
|
||||
const user = await db.user.create({data: {name: input.name, email: input.email}})
|
||||
|
||||
return user
|
||||
}
|
||||
|
||||
27
apps/web/app/queries/getInfiniteUsers.ts
Normal file
27
apps/web/app/queries/getInfiniteUsers.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import {resolver} from "@blitzjs/rpc"
|
||||
import {paginate} from "blitz"
|
||||
import db, {Prisma} from "db"
|
||||
|
||||
interface GetUsersInput
|
||||
extends Pick<Prisma.UserFindManyArgs, "where" | "orderBy" | "skip" | "take"> {}
|
||||
|
||||
export default resolver.pipe(async ({where, orderBy, skip = 0, take = 100}: GetUsersInput) => {
|
||||
const {
|
||||
items: users,
|
||||
hasMore,
|
||||
nextPage,
|
||||
count,
|
||||
} = await paginate({
|
||||
skip,
|
||||
take,
|
||||
count: () => db.user.count({where}),
|
||||
query: (paginateArgs) => db.user.findMany({...paginateArgs, where, orderBy}),
|
||||
})
|
||||
|
||||
return {
|
||||
users,
|
||||
nextPage,
|
||||
hasMore,
|
||||
count,
|
||||
}
|
||||
})
|
||||
@@ -1,11 +1,10 @@
|
||||
import {Ctx} from "blitz"
|
||||
import {prisma} from "../../prisma"
|
||||
import {User} from "prisma"
|
||||
import db, {User} from "db"
|
||||
|
||||
export default async function getUsers(_input: {}, ctx: Ctx): Promise<User[]> {
|
||||
ctx.session.$authorize()
|
||||
|
||||
const users = await prisma.user.findMany()
|
||||
const users = await db.user.findMany()
|
||||
|
||||
return users
|
||||
}
|
||||
|
||||
@@ -5,4 +5,4 @@ const EnhancedPrisma = enhancePrisma(PrismaClient)
|
||||
|
||||
export * from "@prisma/client"
|
||||
const prisma = new EnhancedPrisma()
|
||||
export {prisma}
|
||||
export default prisma
|
||||
@@ -6,5 +6,10 @@ const {withBlitz} = require("@blitzjs/next")
|
||||
module.exports = withBlitz(
|
||||
withBundleAnalyzer({
|
||||
reactStrictMode: true,
|
||||
blitz: {
|
||||
customServer: {
|
||||
hotReload: false,
|
||||
},
|
||||
},
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
"prisma:studio": "prisma studio",
|
||||
"test": "jest"
|
||||
},
|
||||
"prisma": {
|
||||
"schema": "./db/schema.prisma"
|
||||
},
|
||||
"dependencies": {
|
||||
"@blitzjs/auth": "workspace:*",
|
||||
"@blitzjs/config": "workspace:*",
|
||||
@@ -19,9 +22,12 @@
|
||||
"@blitzjs/rpc": "workspace:*",
|
||||
"@prisma/client": "3.9.0",
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/passport-twitter": "1.0.37",
|
||||
"blitz": "workspace:*",
|
||||
"jest": "27.5.1",
|
||||
"next": "12.1.6-canary.17",
|
||||
"passport-mock-strategy": "2.0.0",
|
||||
"passport-twitter": "1.0.4",
|
||||
"prisma": "3.9.0",
|
||||
"react": "18.0.0",
|
||||
"react-dom": "18.0.0",
|
||||
|
||||
44
apps/web/pages/api/auth/[...auth].ts
Normal file
44
apps/web/pages/api/auth/[...auth].ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import {passportAuth} from "@blitzjs/auth"
|
||||
import {api} from "app/blitz-server"
|
||||
import db from "db"
|
||||
import {Strategy as TwitterStrategy} from "passport-twitter"
|
||||
|
||||
export default api(
|
||||
passportAuth({
|
||||
successRedirectUrl: "/",
|
||||
errorRedirectUrl: "/",
|
||||
strategies: [
|
||||
{
|
||||
strategy: new TwitterStrategy(
|
||||
{
|
||||
consumerKey: process.env.TWITTER_CONSUMER_KEY as string,
|
||||
consumerSecret: process.env.TWITTER_CONSUMER_SECRET as string,
|
||||
accessTokenURL: "https://api.twitter.com/oauth/access_token",
|
||||
callbackURL: "http://127.0.0.1:3000/api/auth/twitter/callback",
|
||||
includeEmail: true,
|
||||
},
|
||||
async function (_token, _tokenSecret, profile, done) {
|
||||
const email = profile.emails?.[0]?.value ?? "blitz@test.com"
|
||||
|
||||
const user = await db.user.upsert({
|
||||
where: {email},
|
||||
create: {
|
||||
email,
|
||||
name: profile.displayName,
|
||||
},
|
||||
update: {email},
|
||||
})
|
||||
|
||||
const publicData = {
|
||||
userId: user.id,
|
||||
roles: [user.role],
|
||||
source: "twitter",
|
||||
}
|
||||
|
||||
done(undefined, {publicData})
|
||||
},
|
||||
),
|
||||
},
|
||||
],
|
||||
}),
|
||||
)
|
||||
@@ -1,14 +1,13 @@
|
||||
import {api} from "app/blitz-server"
|
||||
import {SessionContext} from "@blitzjs/auth"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
|
||||
export default api(async (_req, res, ctx) => {
|
||||
const blitzContext = ctx
|
||||
|
||||
const publicData = blitzContext.session.$publicData
|
||||
|
||||
const sessions = await prisma.session.findMany({})
|
||||
const sessionsCount = await prisma.session.count({})
|
||||
const sessions = await db.session.findMany({})
|
||||
const sessionsCount = await db.session.count({})
|
||||
|
||||
res.status(200).json({
|
||||
userId: blitzContext.session.userId,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import {NextApiRequest, NextApiResponse} from "next"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
|
||||
export default async function handle(req: NextApiRequest, res: NextApiResponse) {
|
||||
const session = await prisma.session.findFirst({
|
||||
const session = await db.session.findFirst({
|
||||
where: {
|
||||
handle: "test",
|
||||
},
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import {api} from "app/blitz-server"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
|
||||
export default api(async (_req, res) => {
|
||||
const sessions = await prisma.session.deleteMany()
|
||||
const sessionsCount = await prisma.session.count()
|
||||
const sessions = await db.session.deleteMany()
|
||||
const sessionsCount = await db.session.count()
|
||||
|
||||
res.status(200).json({
|
||||
activeSessions: sessions,
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import {setPublicDataForUser} from "@blitzjs/auth"
|
||||
import {api} from "app/blitz-server"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
|
||||
export default api(async (req, res, ctx) => {
|
||||
if (ctx.session.$thisIsAuthorized()) {
|
||||
ctx.session.$publicData
|
||||
|
||||
await prisma.user.update({
|
||||
await db.user.update({
|
||||
where: {id: ctx.session.userId as number},
|
||||
data: {role: req.query.role as string},
|
||||
})
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import {api} from "app/blitz-server"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
import {SecurePassword} from "@blitzjs/auth"
|
||||
|
||||
export const authenticateUser = async (email: string, password: string) => {
|
||||
const user = await prisma.user.findFirst({where: {email}})
|
||||
const user = await db.user.findFirst({where: {email}})
|
||||
if (!user) throw new Error("Authentication Error")
|
||||
|
||||
const result = await SecurePassword.verify(user.hashedPassword, password)
|
||||
@@ -11,7 +11,7 @@ export const authenticateUser = async (email: string, password: string) => {
|
||||
if (result === SecurePassword.VALID_NEEDS_REHASH) {
|
||||
// Upgrade hashed password with a more secure hash
|
||||
const improvedHash = await SecurePassword.hash(password)
|
||||
await prisma.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}})
|
||||
await db.user.update({where: {id: user.id}, data: {hashedPassword: improvedHash}})
|
||||
}
|
||||
|
||||
const {hashedPassword, ...rest} = user
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {api} from "app/blitz-server"
|
||||
import {prisma} from "../../prisma/index"
|
||||
import db from "db"
|
||||
import {SecurePassword} from "@blitzjs/auth"
|
||||
|
||||
export default api(async (req, res, ctx) => {
|
||||
@@ -9,7 +9,7 @@ export default api(async (req, res, ctx) => {
|
||||
(req.query.password as string) || "test-password",
|
||||
)
|
||||
const email = (req.query.email as string) || "test" + Math.random() + "@test.com"
|
||||
const user = await prisma.user.create({
|
||||
const user = await db.user.create({
|
||||
data: {email, hashedPassword, role: "user"},
|
||||
select: {id: true, name: true, email: true, role: true},
|
||||
})
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import {useState} from "react"
|
||||
import {SessionContext} from "@blitzjs/auth"
|
||||
import {useMutation} from "@blitzjs/rpc"
|
||||
import createUser from "app/mutations/createUser"
|
||||
import {User} from "prisma"
|
||||
import {User} from "db"
|
||||
|
||||
function Page() {
|
||||
const [name, setName] = useState("")
|
||||
|
||||
32
apps/web/pages/page-with-inf-prefetch.tsx
Normal file
32
apps/web/pages/page-with-inf-prefetch.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
import {useInfiniteQuery} from "@blitzjs/rpc"
|
||||
import {gSSP} from "app/blitz-server"
|
||||
import getInfiniteUsers from "app/queries/getInfiniteUsers"
|
||||
|
||||
export const getServerSideProps = gSSP(async ({ctx}) => {
|
||||
const {prefetchInfiniteQuery} = ctx
|
||||
|
||||
await prefetchInfiniteQuery(getInfiniteUsers, {}, {})
|
||||
return {props: {}}
|
||||
})
|
||||
|
||||
function PageWithGssp(props) {
|
||||
const [usersPages] = useInfiniteQuery(getInfiniteUsers, (page = {take: 3, skip: 0}) => page, {
|
||||
getNextPageParam: (lastPage) => lastPage.nextPage,
|
||||
})
|
||||
return (
|
||||
<div>
|
||||
{usersPages.map((usersPage) =>
|
||||
usersPage?.users.map((u) => (
|
||||
<div key={u.createdAt.toDateString()}>
|
||||
<p>name: {u.name}</p>
|
||||
<p>role: {u.role}</p>
|
||||
<p>email: {u.email}</p>
|
||||
<hr />
|
||||
</div>
|
||||
)),
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default PageWithGssp
|
||||
@@ -3,9 +3,9 @@ import {gSSP} from "app/blitz-server"
|
||||
import getUsers from "app/queries/getUsers"
|
||||
|
||||
export const getServerSideProps = gSSP(async ({ctx}) => {
|
||||
const {prefetchBlitzQuery} = ctx
|
||||
const {prefetchQuery} = ctx
|
||||
|
||||
await prefetchBlitzQuery(getUsers, {})
|
||||
await prefetchQuery(getUsers, {}, {})
|
||||
return {props: {}}
|
||||
})
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
"clean": "turbo run clean && rm -rf node_modules",
|
||||
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
|
||||
"pre-publish": "changeset add && changeset version && pnpm build && git add . && git commit -v",
|
||||
"release": "pnpm build && changeset publish",
|
||||
"publish-release": "changeset publish && git push --follow-tags"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @blitzjs/auth
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1436e761: Add passport adapter to @blitzjs/auth
|
||||
- Updated dependencies [1436e761]
|
||||
- blitz@2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [8490b072]
|
||||
- blitz@2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/auth",
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts",
|
||||
@@ -21,21 +21,25 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@types/b64-lite": "1.3.0",
|
||||
"@types/cookie-session": "2.0.44",
|
||||
"@types/passport": "1.0.7",
|
||||
"@types/secure-password": "3.1.1",
|
||||
"b64-lite": "1.4.0",
|
||||
"bad-behavior": "1.0.1",
|
||||
"blitz": "2.0.0-alpha.23",
|
||||
"blitz": "2.0.0-alpha.25",
|
||||
"cookie": "0.4.1",
|
||||
"cookie-session": "2.0.0",
|
||||
"debug": "4.3.3",
|
||||
"http": "0.0.1-security",
|
||||
"jsonwebtoken": "8.5.1",
|
||||
"nanoid": "3.2.0",
|
||||
"passport": "0.5.2",
|
||||
"path": "0.12.7",
|
||||
"secure-password": "4.0.0",
|
||||
"url": "0.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.23",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.25",
|
||||
"@testing-library/react": "13.0.0",
|
||||
"@testing-library/react-hooks": "7.0.2",
|
||||
"@types/cookie": "0.4.1",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
export * from "./auth-sessions"
|
||||
export * from "./auth-utils"
|
||||
export * from "./auth-plugin"
|
||||
export * from "./passport-adapter"
|
||||
|
||||
204
packages/blitz-auth/src/server/passport-adapter.ts
Normal file
204
packages/blitz-auth/src/server/passport-adapter.ts
Normal file
@@ -0,0 +1,204 @@
|
||||
/* @eslint-disable no-redeclare */
|
||||
import cookieSession from "cookie-session"
|
||||
import passport from "passport"
|
||||
import type {AuthenticateOptions, Strategy} from "passport"
|
||||
import {isLocalhost} from "./index"
|
||||
import {
|
||||
assert,
|
||||
connectMiddleware,
|
||||
Ctx,
|
||||
handleRequestWithMiddleware,
|
||||
Middleware,
|
||||
MiddlewareResponse,
|
||||
secureProxyMiddleware,
|
||||
} from "blitz"
|
||||
import {IncomingMessage, ServerResponse} from "http"
|
||||
import {PublicData, SessionContext} from "../shared"
|
||||
|
||||
const isFunction = (functionToCheck: unknown): functionToCheck is Function =>
|
||||
typeof functionToCheck === "function"
|
||||
|
||||
const isVerifyCallbackResult = (value: unknown): value is VerifyCallbackResult =>
|
||||
typeof value === "object" && value !== null && "publicData" in value
|
||||
|
||||
const INTERNAL_REDIRECT_URL_KEY = "_redirectUrl"
|
||||
|
||||
export interface BlitzPassportConfigCallbackParams {
|
||||
ctx: Ctx
|
||||
req: IncomingMessage
|
||||
res: ServerResponse
|
||||
}
|
||||
|
||||
export type BlitzPassportConfigCallback = ({
|
||||
ctx,
|
||||
req,
|
||||
res,
|
||||
}: BlitzPassportConfigCallbackParams) => BlitzPassportConfigObject
|
||||
|
||||
export type BlitzPassportConfig = BlitzPassportConfigObject | BlitzPassportConfigCallback
|
||||
|
||||
export type BlitzPassportStrategy = {
|
||||
authenticateOptions?: AuthenticateOptions
|
||||
strategy: Strategy
|
||||
}
|
||||
|
||||
export type BlitzPassportConfigObject = {
|
||||
successRedirectUrl?: string
|
||||
errorRedirectUrl?: string
|
||||
strategies: BlitzPassportStrategy[]
|
||||
secureProxy?: boolean
|
||||
}
|
||||
|
||||
export type VerifyCallbackResult = {
|
||||
publicData: PublicData
|
||||
privateData?: Record<string, unknown>
|
||||
redirectUrl?: string
|
||||
}
|
||||
|
||||
export type ApiHandlerIncomingMessage = IncomingMessage & {
|
||||
query: {
|
||||
[key: string]: string | string[]
|
||||
}
|
||||
}
|
||||
|
||||
export type ApiHandler = (
|
||||
req: ApiHandlerIncomingMessage,
|
||||
res: MiddlewareResponse & {status: (statusCode: number) => any},
|
||||
) => void | Promise<void>
|
||||
|
||||
export function passportAuth(config: BlitzPassportConfig): ApiHandler {
|
||||
return async function authHandler(req, res) {
|
||||
const configObject: BlitzPassportConfigObject = isFunction(config)
|
||||
? config({ctx: res.blitzCtx, req, res})
|
||||
: config
|
||||
|
||||
const cookieSessionMiddleware = cookieSession({
|
||||
secret: process.env.SESSION_SECRET_KEY || "default-dev-secret",
|
||||
secure: process.env.NODE_ENV === "production" && !isLocalhost(req),
|
||||
})
|
||||
|
||||
const passportMiddleware = passport.initialize()
|
||||
|
||||
const middleware: Middleware<ApiHandlerIncomingMessage, MiddlewareResponse<Ctx>>[] = [
|
||||
connectMiddleware(cookieSessionMiddleware as Middleware),
|
||||
connectMiddleware(passportMiddleware as Middleware),
|
||||
connectMiddleware(passport.session()),
|
||||
]
|
||||
|
||||
if (configObject.secureProxy) {
|
||||
middleware.push(secureProxyMiddleware)
|
||||
}
|
||||
|
||||
assert(
|
||||
req.query.auth,
|
||||
"req.query.auth is not defined. Page must be named [...auth].ts/js. See more at https://blitzjs.com/docs/passportjs#1-add-the-passport-js-api-route",
|
||||
)
|
||||
assert(
|
||||
Array.isArray(req.query.auth),
|
||||
"req.query.auth must be an array. Page must be named [...auth].ts/js. See more at https://blitzjs.com/docs/passportjs#1-add-the-passport-js-api-route",
|
||||
)
|
||||
|
||||
if (!req.query.auth.length) {
|
||||
return res.status(404).end()
|
||||
}
|
||||
|
||||
assert(
|
||||
configObject.strategies.length,
|
||||
"No Passport strategies found! Please add at least one strategy.",
|
||||
)
|
||||
|
||||
const blitzStrategy = configObject.strategies.find(
|
||||
({strategy}) => strategy.name === req.query?.auth?.[0] ?? "",
|
||||
)
|
||||
assert(blitzStrategy, `A passport strategy was not found for: ${req.query.auth[0]}`)
|
||||
|
||||
const {strategy, authenticateOptions} = blitzStrategy
|
||||
|
||||
passport.use(strategy)
|
||||
const strategyName = strategy.name as string
|
||||
|
||||
if (req.query.auth.length === 1) {
|
||||
console.info(`Starting authentication via ${strategyName}...`)
|
||||
if (req.query.redirectUrl) {
|
||||
// eslint-disable-next-line no-shadow
|
||||
middleware.push(async (req, res, next) => {
|
||||
const session = res.blitzCtx.session as SessionContext
|
||||
assert(session, "Missing Blitz sessionMiddleware!")
|
||||
await session.$setPublicData({
|
||||
[INTERNAL_REDIRECT_URL_KEY]: req.query.redirectUrl,
|
||||
} as any)
|
||||
return next()
|
||||
})
|
||||
}
|
||||
middleware.push(
|
||||
connectMiddleware(passport.authenticate(strategyName, {...authenticateOptions})),
|
||||
)
|
||||
} else if (req.query.auth[1] === "callback") {
|
||||
console.info(`Processing callback for ${strategyName}...`)
|
||||
middleware.push(
|
||||
// eslint-disable-next-line no-shadow
|
||||
connectMiddleware((req, res, next) => {
|
||||
const session = res.blitzCtx.session as SessionContext
|
||||
assert(session, "Missing Blitz sessionMiddleware!")
|
||||
|
||||
passport.authenticate(strategyName, async (err: any, result: any) => {
|
||||
try {
|
||||
let error = err
|
||||
|
||||
if (!error && result === false) {
|
||||
console.warn(
|
||||
`Login via ${strategyName} failed - usually this means the user did not authenticate properly with the provider`,
|
||||
)
|
||||
error = `Login failed`
|
||||
}
|
||||
|
||||
const redirectUrlFromVerifyResult =
|
||||
result && typeof result === "object" && result.redirectUrl
|
||||
let redirectUrl: string =
|
||||
redirectUrlFromVerifyResult ||
|
||||
(session.$publicData as any)[INTERNAL_REDIRECT_URL_KEY] ||
|
||||
(error ? configObject.errorRedirectUrl : configObject.successRedirectUrl) ||
|
||||
"/"
|
||||
|
||||
if (error) {
|
||||
redirectUrl += "?authError=" + encodeURIComponent(error.toString())
|
||||
res.setHeader("Location", redirectUrl)
|
||||
res.statusCode = 302
|
||||
res.end()
|
||||
return
|
||||
}
|
||||
|
||||
assert(
|
||||
typeof result === "object" && result !== null,
|
||||
`Your '${strategyName}' passport verify callback returned empty data. Ensure you call 'done(null, {publicData: {userId: 1}})' along with any other publicData fields you need)`,
|
||||
)
|
||||
assert(
|
||||
(result as any).publicData,
|
||||
`'publicData' is missing from your '${strategyName}' passport verify callback. Ensure you call 'done(null, {publicData: {userId: 1}})' along with any other publicData fields you need)`,
|
||||
)
|
||||
assert(isVerifyCallbackResult(result), "Passport verify callback is invalid")
|
||||
|
||||
delete (result.publicData as any)[INTERNAL_REDIRECT_URL_KEY]
|
||||
|
||||
await session.$create(result.publicData, result.privateData)
|
||||
|
||||
res.setHeader("Location", redirectUrl)
|
||||
res.statusCode = 302
|
||||
res.end()
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
res.statusCode = 500
|
||||
res.end()
|
||||
}
|
||||
})(req, res, next)
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
await handleRequestWithMiddleware<ApiHandlerIncomingMessage, MiddlewareResponse<Ctx>>(
|
||||
req,
|
||||
res,
|
||||
middleware,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,19 @@
|
||||
# @blitzjs/next
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 931156c3: Rename prefetchBlitzQuery to prefetchQuery, add prefetchInfiniteQuery
|
||||
- b0c21b07: Move blitz config to next.config.js
|
||||
- @blitzjs/rpc@2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @blitzjs/rpc@2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/next",
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"dev": "pnpm predev && pnpm watch unbuild src --wait=0.2",
|
||||
@@ -23,7 +23,7 @@
|
||||
"eslint.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@blitzjs/rpc": "2.0.0-alpha.23",
|
||||
"@blitzjs/rpc": "2.0.0-alpha.25",
|
||||
"@types/hoist-non-react-statics": "3.3.1",
|
||||
"debug": "4.3.3",
|
||||
"fs-extra": "10.0.1",
|
||||
@@ -32,7 +32,7 @@
|
||||
"superjson": "1.8.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.23",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.25",
|
||||
"@testing-library/dom": "8.13.0",
|
||||
"@testing-library/jest-dom": "5.16.3",
|
||||
"@testing-library/react": "13.0.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"@types/testing-library__react-hooks": "4.0.0",
|
||||
"blitz": "2.0.0-alpha.23",
|
||||
"blitz": "2.0.0-alpha.25",
|
||||
"cross-spawn": "7.0.3",
|
||||
"find-up": "4.1.0",
|
||||
"lodash.frompairs": "4.0.1",
|
||||
|
||||
@@ -13,8 +13,14 @@ import type {
|
||||
MiddlewareResponse,
|
||||
AsyncFunc,
|
||||
FirstParam,
|
||||
AddParameters,
|
||||
} from "blitz"
|
||||
import {handleRequestWithMiddleware} from "blitz"
|
||||
import type {NextConfig} from "next"
|
||||
import {getQueryKey, getInfiniteQueryKey, installWebpackConfig} from "@blitzjs/rpc"
|
||||
import {dehydrate} from "@blitzjs/rpc"
|
||||
import {DefaultOptions, QueryClient} from "react-query"
|
||||
import {IncomingMessage, ServerResponse} from "http"
|
||||
import {withSuperJsonProps} from "./superjson"
|
||||
|
||||
export * from "./index-browser"
|
||||
@@ -23,8 +29,8 @@ export * from "./index-browser"
|
||||
export interface Ctx extends BlitzCtx {}
|
||||
|
||||
export interface BlitzNextApiResponse
|
||||
extends NextApiResponse,
|
||||
Omit<MiddlewareResponse, keyof NextApiResponse> {}
|
||||
extends MiddlewareResponse,
|
||||
Omit<NextApiResponse, keyof MiddlewareResponse> {}
|
||||
|
||||
export type NextApiHandler = (
|
||||
req: NextApiRequest,
|
||||
@@ -60,20 +66,28 @@ export const setupBlitzServer = ({plugins}: SetupBlitzOptions) => {
|
||||
const gSSP =
|
||||
<TProps>(handler: BlitzGSSPHandler<TProps>): GetServerSideProps<TProps> =>
|
||||
async ({req, res, ...rest}) => {
|
||||
await handleRequestWithMiddleware(req, res, middlewares)
|
||||
await handleRequestWithMiddleware<IncomingMessage, ServerResponse>(req, res, middlewares)
|
||||
const ctx = contextMiddleware.reduceRight(
|
||||
(y, f) => (f ? f(y) : y),
|
||||
(res as MiddlewareResponse).blitzCtx,
|
||||
)
|
||||
let queryClient: null | QueryClient = null
|
||||
|
||||
ctx.prefetchBlitzQuery = async (fn, input, defaultOptions = {}) => {
|
||||
const prefetchQuery: AddParameters<PrefetchQueryFn, [boolean?]> = async (
|
||||
fn,
|
||||
input,
|
||||
defaultOptions = {},
|
||||
infinite = false,
|
||||
) => {
|
||||
queryClient = new QueryClient({defaultOptions})
|
||||
|
||||
const queryKey = getQueryKey(fn, input)
|
||||
const queryKey = infinite ? getQueryKey(fn, input) : getInfiniteQueryKey(fn, input)
|
||||
await queryClient.prefetchQuery(queryKey, () => fn(input, ctx))
|
||||
}
|
||||
|
||||
ctx.prefetchQuery = prefetchQuery
|
||||
ctx.prefetchInfiniteQuery = (...args) => prefetchQuery(...args, true)
|
||||
|
||||
const result = await handler({req, res, ctx, ...rest})
|
||||
return withSuperJsonProps(withDehydratedState(result, queryClient))
|
||||
}
|
||||
@@ -84,13 +98,21 @@ export const setupBlitzServer = ({plugins}: SetupBlitzOptions) => {
|
||||
const ctx = contextMiddleware.reduceRight((y, f) => (f ? f(y) : y), {} as Ctx)
|
||||
let queryClient: null | QueryClient = null
|
||||
|
||||
ctx.prefetchBlitzQuery = async (fn, input, defaultOptions = {}) => {
|
||||
const prefetchQuery: AddParameters<PrefetchQueryFn, [boolean?]> = async (
|
||||
fn,
|
||||
input,
|
||||
defaultOptions = {},
|
||||
infinite = false,
|
||||
) => {
|
||||
queryClient = new QueryClient({defaultOptions})
|
||||
|
||||
const queryKey = getQueryKey(fn, input)
|
||||
const queryKey = infinite ? getQueryKey(fn, input) : getInfiniteQueryKey(fn, input)
|
||||
await queryClient.prefetchQuery(queryKey, () => fn(input, ctx))
|
||||
}
|
||||
|
||||
ctx.prefetchQuery = prefetchQuery
|
||||
ctx.prefetchInfiniteQuery = (...args) => prefetchQuery(...args, true)
|
||||
|
||||
const result = await handler({...context, ctx: ctx})
|
||||
return withSuperJsonProps(withDehydratedState(result, queryClient))
|
||||
}
|
||||
@@ -109,12 +131,15 @@ export const setupBlitzServer = ({plugins}: SetupBlitzOptions) => {
|
||||
return {gSSP, gSP, api}
|
||||
}
|
||||
|
||||
import type {NextConfig} from "next"
|
||||
import {getQueryKey, installWebpackConfig} from "@blitzjs/rpc"
|
||||
import {dehydrate} from "@blitzjs/rpc"
|
||||
import {DefaultOptions, QueryClient} from "react-query"
|
||||
export interface BlitzConfig extends NextConfig {
|
||||
blitz?: {
|
||||
customServer?: {
|
||||
hotReload?: boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function withBlitz(nextConfig: NextConfig = {}) {
|
||||
export function withBlitz(nextConfig: BlitzConfig = {}) {
|
||||
return Object.assign({}, nextConfig, {
|
||||
webpack: (config: any, options: any) => {
|
||||
installWebpackConfig(config)
|
||||
@@ -126,7 +151,7 @@ export function withBlitz(nextConfig: NextConfig = {}) {
|
||||
} as NextConfig)
|
||||
}
|
||||
|
||||
type PrefetchQueryFn = <T extends AsyncFunc, TInput = FirstParam<T>>(
|
||||
export type PrefetchQueryFn = <T extends AsyncFunc, TInput = FirstParam<T>>(
|
||||
resolver: T,
|
||||
params: TInput,
|
||||
options?: DefaultOptions,
|
||||
@@ -144,6 +169,7 @@ function withDehydratedState<T extends Result>(result: T, queryClient: QueryClie
|
||||
|
||||
declare module "blitz" {
|
||||
export interface Ctx {
|
||||
prefetchBlitzQuery: PrefetchQueryFn
|
||||
prefetchQuery: PrefetchQueryFn
|
||||
prefetchInfiniteQuery: PrefetchQueryFn
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @blitzjs/rpc
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [1436e761]
|
||||
- Updated dependencies [1436e761]
|
||||
- blitz@2.0.0-alpha.25
|
||||
- @blitzjs/auth@2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [8490b072]
|
||||
- blitz@2.0.0-alpha.24
|
||||
- @blitzjs/auth@2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/rpc",
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts && wait-on -d 250 ../blitz-auth/dist/index-browser.d.ts",
|
||||
@@ -20,7 +20,7 @@
|
||||
"dist/**"
|
||||
],
|
||||
"dependencies": {
|
||||
"@blitzjs/auth": "2.0.0-alpha.23",
|
||||
"@blitzjs/auth": "2.0.0-alpha.25",
|
||||
"b64-lite": "1.4.0",
|
||||
"bad-behavior": "1.0.1",
|
||||
"chalk": "^4.1.0",
|
||||
@@ -30,11 +30,11 @@
|
||||
"zod": "3.10.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.23",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.25",
|
||||
"@types/debug": "4.1.7",
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"blitz": "2.0.0-alpha.23",
|
||||
"blitz": "2.0.0-alpha.25",
|
||||
"next": "12.1.6-canary.17",
|
||||
"react": "18.0.0",
|
||||
"react-dom": "18.0.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"watch": "1.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"blitz": "2.0.0-alpha.23",
|
||||
"blitz": "2.0.0-alpha.25",
|
||||
"next": "*"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# blitz
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1436e761: Export Zod utils from blitz core package
|
||||
- @blitzjs/generator@2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 8490b072: test automated publish
|
||||
- @blitzjs/generator@2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "blitz",
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"dev": "watch unbuild src --wait=0.2",
|
||||
@@ -23,7 +23,7 @@
|
||||
"blitz": "bin/blitz"
|
||||
},
|
||||
"dependencies": {
|
||||
"@blitzjs/generator": "2.0.0-alpha.23",
|
||||
"@blitzjs/generator": "2.0.0-alpha.25",
|
||||
"arg": "5.0.1",
|
||||
"chalk": "^4.1.0",
|
||||
"console-table-printer": "2.10.0",
|
||||
@@ -49,7 +49,7 @@
|
||||
"tslog": "3.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.23",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.25",
|
||||
"@types/cookie": "0.4.1",
|
||||
"@types/cross-spawn": "6.0.2",
|
||||
"@types/debug": "4.1.7",
|
||||
|
||||
@@ -82,3 +82,4 @@ export * from "./utils"
|
||||
export * from "./ts-utils"
|
||||
export * from "./types"
|
||||
export * from "./errors"
|
||||
export * from "./zod-utils"
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import {IncomingMessage, ServerResponse} from "http"
|
||||
import {compose, Ctx, Middleware, MiddlewareNext, MiddlewareResponse} from "./index-server"
|
||||
|
||||
export async function handleRequestWithMiddleware(
|
||||
req: IncomingMessage,
|
||||
res: ServerResponse,
|
||||
middleware: Middleware[],
|
||||
export async function handleRequestWithMiddleware<
|
||||
Req extends IncomingMessage = IncomingMessage,
|
||||
Res extends ServerResponse = ServerResponse,
|
||||
>(
|
||||
req: Req,
|
||||
res: Res,
|
||||
middleware: Middleware<Req, Res>[],
|
||||
{
|
||||
throwOnError = true,
|
||||
stackPrintOnError = true,
|
||||
@@ -13,8 +16,8 @@ export async function handleRequestWithMiddleware(
|
||||
stackPrintOnError?: boolean
|
||||
} = {},
|
||||
) {
|
||||
if (!(res as MiddlewareResponse).blitzCtx) {
|
||||
;(res as MiddlewareResponse).blitzCtx = {} as Ctx
|
||||
if (!(res as unknown as MiddlewareResponse).blitzCtx) {
|
||||
;(res as unknown as MiddlewareResponse).blitzCtx = {} as Ctx
|
||||
}
|
||||
if (!(res as any)._blitz) {
|
||||
;(res as any)._blitz = {}
|
||||
@@ -23,7 +26,7 @@ export async function handleRequestWithMiddleware(
|
||||
let handler = compose(middleware)
|
||||
|
||||
try {
|
||||
await handler(req as IncomingMessage, res as MiddlewareResponse, (error) => {
|
||||
await handler(req, res, (error) => {
|
||||
if (error) {
|
||||
throw error
|
||||
}
|
||||
@@ -111,12 +114,10 @@ export async function handleRequestWithMiddleware(
|
||||
* If the middleware function doesn't declare receiving the `next` callback
|
||||
* assume that it's synchronous and invoke `next` ourselves
|
||||
*/
|
||||
function noCallbackHandler(
|
||||
req: IncomingMessage,
|
||||
res: MiddlewareResponse,
|
||||
next: MiddlewareNext,
|
||||
middleware: Middleware,
|
||||
) {
|
||||
export function noCallbackHandler<
|
||||
Req extends IncomingMessage = IncomingMessage,
|
||||
Res = MiddlewareResponse,
|
||||
>(req: Req, res: Res, next: MiddlewareNext, middleware: Middleware<Req, Res>) {
|
||||
// Cast to any to call with two arguments for connect compatibility
|
||||
;(middleware as any)(req, res)
|
||||
return next()
|
||||
@@ -127,12 +128,10 @@ function noCallbackHandler(
|
||||
* the Promise when it's called. If it's never called, the middleware stack
|
||||
* completion will stall
|
||||
*/
|
||||
function withCallbackHandler(
|
||||
req: IncomingMessage,
|
||||
res: MiddlewareResponse,
|
||||
next: MiddlewareNext,
|
||||
middleware: Middleware,
|
||||
) {
|
||||
export function withCallbackHandler<
|
||||
Req extends IncomingMessage = IncomingMessage,
|
||||
Res = MiddlewareResponse,
|
||||
>(req: Req, res: Res, next: MiddlewareNext, middleware: Middleware<Req, Res>) {
|
||||
return new Promise((resolve, reject) => {
|
||||
// Rule doesn't matter since we are inside new Promise()
|
||||
//eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
@@ -148,13 +147,14 @@ function withCallbackHandler(
|
||||
* given middleware function declares at least 3 parameters, i.e. includes
|
||||
* the `next` callback function
|
||||
*/
|
||||
export function connectMiddleware(
|
||||
middleware: Middleware<IncomingMessage, ServerResponse>,
|
||||
): Middleware<IncomingMessage, MiddlewareResponse> {
|
||||
export function connectMiddleware<
|
||||
Req extends IncomingMessage = IncomingMessage,
|
||||
Res extends MiddlewareResponse = MiddlewareResponse,
|
||||
>(middleware: Middleware<Req, Res>): Middleware<Req, Res> {
|
||||
const handler = middleware.length < 3 ? noCallbackHandler : withCallbackHandler
|
||||
return function connectHandler(req: IncomingMessage, res, next) {
|
||||
return function connectHandler(req: Req, res, next) {
|
||||
return handler(req, res, next, middleware)
|
||||
} as Middleware<IncomingMessage, MiddlewareResponse>
|
||||
} as Middleware<Req, Res>
|
||||
}
|
||||
|
||||
export const secureProxyMiddleware: Middleware<
|
||||
|
||||
@@ -2,11 +2,11 @@ import * as fs from "fs"
|
||||
import * as path from "path"
|
||||
|
||||
export function readBlitzConfig(rootFolder: string = process.cwd()) {
|
||||
const packageJsonFile = fs.readFileSync(path.join(rootFolder, "package.json"), {
|
||||
const nextConfigFile = fs.readFileSync(path.join(rootFolder, "next.config.js"), {
|
||||
encoding: "utf8",
|
||||
flag: "r",
|
||||
})
|
||||
const packageJson = JSON.parse(packageJsonFile)
|
||||
const nextConfig = eval(nextConfigFile)
|
||||
|
||||
return packageJson.blitz || {}
|
||||
return nextConfig.blitz || {}
|
||||
}
|
||||
|
||||
@@ -31,3 +31,8 @@ export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) ex
|
||||
: never
|
||||
|
||||
export type Simplify<T> = {[P in keyof T]: T[P]}
|
||||
|
||||
export type AddParameters<
|
||||
TFunction extends (...args: any) => any,
|
||||
TParameters extends [...args: any],
|
||||
> = (...args: [...Parameters<TFunction>, ...TParameters]) => ReturnType<TFunction>
|
||||
|
||||
@@ -76,7 +76,7 @@ export const setCookie = (name: string, value: string, expires: string) => {
|
||||
}
|
||||
export const deleteCookie = (name: string) => setCookie(name, "", "Thu, 01 Jan 1970 00:00:01 GMT")
|
||||
|
||||
export function compose(middleware: Middleware[]) {
|
||||
export function compose(middleware: Middleware<any, any>[]) {
|
||||
if (!Array.isArray(middleware)) {
|
||||
throw new TypeError("Middleware stack must be an array!")
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @blitzjs/config
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
## 2.0.0-alpha.22
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@blitzjs/config",
|
||||
"private": true,
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "5.9.1",
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# @blitzjs/generator
|
||||
|
||||
## 2.0.0-alpha.25
|
||||
|
||||
## 2.0.0-alpha.24
|
||||
|
||||
## 2.0.0-alpha.23
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/generator",
|
||||
"version": "2.0.0-alpha.23",
|
||||
"version": "2.0.0-alpha.25",
|
||||
"scripts": {
|
||||
"dev": "watch unbuild src --wait=0.2",
|
||||
"build": "unbuild && pnpm build:templates",
|
||||
@@ -45,7 +45,7 @@
|
||||
"vinyl": "2.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "2.0.0-alpha.23",
|
||||
"@blitzjs/config": "2.0.0-alpha.25",
|
||||
"@juanm04/cpx": "2.0.1",
|
||||
"@types/babel__core": "7.1.19",
|
||||
"@types/diff": "5.0.2",
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"@typescript-eslint/parser": "5.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "2.0.0-alpha.23",
|
||||
"@blitzjs/config": "2.0.0-alpha.25",
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"react": "18.0.0",
|
||||
|
||||
413
pnpm-lock.yaml
generated
413
pnpm-lock.yaml
generated
@@ -50,7 +50,7 @@ importers:
|
||||
"@types/node": 17.0.16
|
||||
"@types/preview-email": 2.0.1
|
||||
"@types/react": 18.0.1
|
||||
blitz: workspace:2.0.0-alpha.22
|
||||
blitz: workspace:2.0.0-alpha.25
|
||||
eslint: 7.32.0
|
||||
husky: 7.0.4
|
||||
jest: 27.5.1
|
||||
@@ -109,11 +109,14 @@ importers:
|
||||
"@next/bundle-analyzer": 12.0.8
|
||||
"@prisma/client": 3.9.0
|
||||
"@types/jest": 27.4.1
|
||||
"@types/passport-twitter": 1.0.37
|
||||
"@types/react": 18.0.1
|
||||
blitz: workspace:*
|
||||
eslint: 7.32.0
|
||||
jest: 27.5.1
|
||||
next: 12.1.6-canary.17
|
||||
passport-mock-strategy: 2.0.0
|
||||
passport-twitter: 1.0.4
|
||||
prisma: 3.9.0
|
||||
react: 18.0.0
|
||||
react-dom: 18.0.0
|
||||
@@ -126,9 +129,12 @@ importers:
|
||||
"@blitzjs/rpc": link:../../packages/blitz-rpc
|
||||
"@prisma/client": 3.9.0_prisma@3.9.0
|
||||
"@types/jest": 27.4.1
|
||||
"@types/passport-twitter": 1.0.37
|
||||
blitz: link:../../packages/blitz
|
||||
jest: 27.5.1_ts-node@10.7.0
|
||||
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
|
||||
passport-mock-strategy: 2.0.0
|
||||
passport-twitter: 1.0.4
|
||||
prisma: 3.9.0
|
||||
react: 18.0.0
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
@@ -320,8 +326,8 @@ importers:
|
||||
|
||||
packages/blitz:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.22
|
||||
"@blitzjs/generator": 2.0.0-alpha.22
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.25
|
||||
"@blitzjs/generator": 2.0.0-alpha.25
|
||||
"@types/cookie": 0.4.1
|
||||
"@types/cross-spawn": 6.0.2
|
||||
"@types/debug": 4.1.7
|
||||
@@ -417,24 +423,28 @@ importers:
|
||||
|
||||
packages/blitz-auth:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.22
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.25
|
||||
"@testing-library/react": 13.0.0
|
||||
"@testing-library/react-hooks": 7.0.2
|
||||
"@types/b64-lite": 1.3.0
|
||||
"@types/cookie": 0.4.1
|
||||
"@types/cookie-session": 2.0.44
|
||||
"@types/debug": 4.1.7
|
||||
"@types/jsonwebtoken": 8.5.8
|
||||
"@types/passport": 1.0.7
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
"@types/secure-password": 3.1.1
|
||||
b64-lite: 1.4.0
|
||||
bad-behavior: 1.0.1
|
||||
blitz: 2.0.0-alpha.22
|
||||
blitz: 2.0.0-alpha.25
|
||||
cookie: 0.4.1
|
||||
cookie-session: 2.0.0
|
||||
debug: 4.3.3
|
||||
http: 0.0.1-security
|
||||
jsonwebtoken: 8.5.1
|
||||
nanoid: 3.2.0
|
||||
passport: 0.5.2
|
||||
path: 0.12.7
|
||||
react: 18.0.0
|
||||
react-dom: 18.0.0
|
||||
@@ -445,15 +455,19 @@ importers:
|
||||
watch: 1.0.2
|
||||
dependencies:
|
||||
"@types/b64-lite": 1.3.0
|
||||
"@types/cookie-session": 2.0.44
|
||||
"@types/passport": 1.0.7
|
||||
"@types/secure-password": 3.1.1
|
||||
b64-lite: 1.4.0
|
||||
bad-behavior: 1.0.1
|
||||
blitz: link:../blitz
|
||||
cookie: 0.4.1
|
||||
cookie-session: 2.0.0
|
||||
debug: 4.3.3
|
||||
http: 0.0.1-security
|
||||
jsonwebtoken: 8.5.1
|
||||
nanoid: 3.2.0
|
||||
passport: 0.5.2
|
||||
path: 0.12.7
|
||||
secure-password: 4.0.0
|
||||
url: 0.11.0
|
||||
@@ -474,8 +488,8 @@ importers:
|
||||
|
||||
packages/blitz-next:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.22
|
||||
"@blitzjs/rpc": 2.0.0-alpha.22
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.25
|
||||
"@blitzjs/rpc": 2.0.0-alpha.25
|
||||
"@testing-library/dom": 8.13.0
|
||||
"@testing-library/jest-dom": 5.16.3
|
||||
"@testing-library/react": 13.0.0
|
||||
@@ -487,7 +501,7 @@ importers:
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
"@types/testing-library__react-hooks": 4.0.0
|
||||
blitz: 2.0.0-alpha.22
|
||||
blitz: 2.0.0-alpha.25
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.3
|
||||
find-up: 4.1.0
|
||||
@@ -539,14 +553,14 @@ importers:
|
||||
|
||||
packages/blitz-rpc:
|
||||
specifiers:
|
||||
"@blitzjs/auth": 2.0.0-alpha.22
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.22
|
||||
"@blitzjs/auth": 2.0.0-alpha.25
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.25
|
||||
"@types/debug": 4.1.7
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
b64-lite: 1.4.0
|
||||
bad-behavior: 1.0.1
|
||||
blitz: 2.0.0-alpha.22
|
||||
blitz: 2.0.0-alpha.25
|
||||
chalk: ^4.1.0
|
||||
debug: 4.3.3
|
||||
next: 12.1.6-canary.17
|
||||
@@ -601,7 +615,7 @@ importers:
|
||||
"@babel/plugin-transform-typescript": 7.12.1
|
||||
"@babel/preset-env": 7.12.10
|
||||
"@babel/types": 7.12.10
|
||||
"@blitzjs/config": 2.0.0-alpha.22
|
||||
"@blitzjs/config": 2.0.0-alpha.25
|
||||
"@juanm04/cpx": 2.0.1
|
||||
"@mrleebo/prisma-ast": 0.2.6
|
||||
"@types/babel__core": 7.1.19
|
||||
@@ -692,7 +706,7 @@ importers:
|
||||
|
||||
packages/pkg-template:
|
||||
specifiers:
|
||||
"@blitzjs/config": 2.0.0-alpha.22
|
||||
"@blitzjs/config": 2.0.0-alpha.25
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1
|
||||
@@ -1128,6 +1142,8 @@ packages:
|
||||
}
|
||||
engines: {node: ">=6.0.0"}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
"@babel/types": 7.17.10
|
||||
|
||||
/@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.12.10:
|
||||
resolution:
|
||||
@@ -2515,6 +2531,8 @@ packages:
|
||||
semver: 6.3.0
|
||||
spawndamnit: 2.0.0
|
||||
validate-npm-package-name: 3.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@changesets/apply-release-plan/6.0.0:
|
||||
@@ -2777,7 +2795,6 @@ packages:
|
||||
integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==,
|
||||
}
|
||||
engines: {node: ">= 12"}
|
||||
dev: false
|
||||
|
||||
/@cspotcode/source-map-support/0.7.0:
|
||||
resolution:
|
||||
@@ -2787,7 +2804,6 @@ packages:
|
||||
engines: {node: ">=12"}
|
||||
dependencies:
|
||||
"@cspotcode/source-map-consumer": 0.8.0
|
||||
dev: false
|
||||
|
||||
/@eslint/eslintrc/0.4.3:
|
||||
resolution:
|
||||
@@ -3753,28 +3769,24 @@ packages:
|
||||
{
|
||||
integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@tsconfig/node12/1.0.9:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@tsconfig/node14/1.0.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@tsconfig/node16/1.0.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@types/aria-query/4.2.2:
|
||||
resolution:
|
||||
@@ -3835,7 +3847,6 @@ packages:
|
||||
dependencies:
|
||||
"@types/connect": 3.4.35
|
||||
"@types/node": 17.0.24
|
||||
dev: true
|
||||
|
||||
/@types/cacheable-request/6.0.2:
|
||||
resolution:
|
||||
@@ -3872,7 +3883,16 @@ packages:
|
||||
}
|
||||
dependencies:
|
||||
"@types/node": 17.0.24
|
||||
dev: true
|
||||
|
||||
/@types/cookie-session/2.0.44:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-3DheOZ41pql6raSIkqEPphJdhA2dX2bkS+s2Qacv8YMKkoCbAIEXbsDil7351ARzMqvfyDUGNeHGiRZveIzhqQ==,
|
||||
}
|
||||
dependencies:
|
||||
"@types/express": 4.17.13
|
||||
"@types/keygrip": 1.0.2
|
||||
dev: false
|
||||
|
||||
/@types/cookie/0.4.1:
|
||||
resolution:
|
||||
@@ -3950,7 +3970,6 @@ packages:
|
||||
"@types/node": 17.0.24
|
||||
"@types/qs": 6.9.7
|
||||
"@types/range-parser": 1.2.4
|
||||
dev: true
|
||||
|
||||
/@types/express/4.17.13:
|
||||
resolution:
|
||||
@@ -3962,7 +3981,6 @@ packages:
|
||||
"@types/express-serve-static-core": 4.17.28
|
||||
"@types/qs": 6.9.7
|
||||
"@types/serve-static": 1.13.10
|
||||
dev: true
|
||||
|
||||
/@types/fs-extra/9.0.13:
|
||||
resolution:
|
||||
@@ -4099,6 +4117,13 @@ packages:
|
||||
"@types/node": 17.0.24
|
||||
dev: true
|
||||
|
||||
/@types/keygrip/1.0.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@types/keyv/3.1.4:
|
||||
resolution:
|
||||
{
|
||||
@@ -4153,7 +4178,6 @@ packages:
|
||||
{
|
||||
integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==,
|
||||
}
|
||||
dev: true
|
||||
|
||||
/@types/minimatch/3.0.5:
|
||||
resolution:
|
||||
@@ -4197,7 +4221,6 @@ packages:
|
||||
{
|
||||
integrity: sha512-ydLaGVfQOQ6hI1xK2A5nVh8bl0OGoIfYMxPWHqqYe9bTkWCfqiVvZoh2I/QF2sNSkZzZyROBoTefIEI+PB6iIA==,
|
||||
}
|
||||
dev: true
|
||||
|
||||
/@types/node/17.0.24:
|
||||
resolution:
|
||||
@@ -4230,6 +4253,25 @@ packages:
|
||||
"@types/node": 17.0.24
|
||||
dev: true
|
||||
|
||||
/@types/passport-twitter/1.0.37:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-/FHODUP6ExYpRFdhVOtbHwVZRmni0kFyOFhOwqg61SoSwcED4c5tkhYu5cJElyhD5jbevRTmgInLFFI5s2hBag==,
|
||||
}
|
||||
dependencies:
|
||||
"@types/express": 4.17.13
|
||||
"@types/passport": 1.0.7
|
||||
dev: false
|
||||
|
||||
/@types/passport/1.0.7:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-JtswU8N3kxBYgo+n9of7C97YQBT+AYPP2aBfNGTzABqPAZnK/WOAaKfh3XesUYMZRrXFuoPc2Hv0/G/nQFveHw==,
|
||||
}
|
||||
dependencies:
|
||||
"@types/express": 4.17.13
|
||||
dev: false
|
||||
|
||||
/@types/pluralize/0.0.29:
|
||||
resolution:
|
||||
{
|
||||
@@ -4279,14 +4321,12 @@ packages:
|
||||
{
|
||||
integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==,
|
||||
}
|
||||
dev: true
|
||||
|
||||
/@types/range-parser/1.2.4:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==,
|
||||
}
|
||||
dev: true
|
||||
|
||||
/@types/react-dom/17.0.14:
|
||||
resolution:
|
||||
@@ -4381,7 +4421,6 @@ packages:
|
||||
dependencies:
|
||||
"@types/mime": 1.3.2
|
||||
"@types/node": 17.0.24
|
||||
dev: true
|
||||
|
||||
/@types/stack-utils/2.0.1:
|
||||
resolution:
|
||||
@@ -5037,7 +5076,6 @@ packages:
|
||||
{
|
||||
integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/arg/5.0.1:
|
||||
resolution:
|
||||
@@ -5495,6 +5533,8 @@ packages:
|
||||
qs: 6.9.7
|
||||
raw-body: 2.4.3
|
||||
type-is: 1.6.18
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/boxen/4.2.0:
|
||||
@@ -5549,6 +5589,8 @@ packages:
|
||||
snapdragon-node: 2.1.1
|
||||
split-string: 3.1.0
|
||||
to-regex: 3.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/braces/3.0.2:
|
||||
@@ -6204,6 +6246,21 @@ packages:
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
|
||||
/cookie-session/2.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==,
|
||||
}
|
||||
engines: {node: ">= 0.10"}
|
||||
dependencies:
|
||||
cookies: 0.8.0
|
||||
debug: 3.2.7
|
||||
on-headers: 1.0.2
|
||||
safe-buffer: 5.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/cookie-signature/1.0.6:
|
||||
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
|
||||
dev: true
|
||||
@@ -6224,6 +6281,17 @@ packages:
|
||||
engines: {node: ">= 0.6"}
|
||||
dev: true
|
||||
|
||||
/cookies/0.8.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==,
|
||||
}
|
||||
engines: {node: ">= 0.8"}
|
||||
dependencies:
|
||||
depd: 2.0.0
|
||||
keygrip: 1.1.0
|
||||
dev: false
|
||||
|
||||
/copy-descriptor/0.1.1:
|
||||
resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=}
|
||||
engines: {node: ">=0.10.0"}
|
||||
@@ -6257,7 +6325,6 @@ packages:
|
||||
{
|
||||
integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/cross-spawn/5.1.0:
|
||||
resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=}
|
||||
@@ -6429,6 +6496,11 @@ packages:
|
||||
{
|
||||
integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==,
|
||||
}
|
||||
peerDependencies:
|
||||
supports-color: "*"
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
|
||||
@@ -6437,6 +6509,11 @@ packages:
|
||||
{
|
||||
integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==,
|
||||
}
|
||||
peerDependencies:
|
||||
supports-color: "*"
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
|
||||
@@ -6669,6 +6746,14 @@ packages:
|
||||
engines: {node: ">= 0.6"}
|
||||
dev: true
|
||||
|
||||
/depd/2.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==,
|
||||
}
|
||||
engines: {node: ">= 0.8"}
|
||||
dev: false
|
||||
|
||||
/destroy/1.0.4:
|
||||
resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=}
|
||||
dev: true
|
||||
@@ -6704,6 +6789,8 @@ packages:
|
||||
dependencies:
|
||||
address: 1.2.0
|
||||
debug: 2.6.9
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/diff-sequences/27.5.1:
|
||||
@@ -6719,7 +6806,6 @@ packages:
|
||||
integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==,
|
||||
}
|
||||
engines: {node: ">=0.3.1"}
|
||||
dev: false
|
||||
|
||||
/diff/5.0.0:
|
||||
resolution:
|
||||
@@ -7022,6 +7108,13 @@ packages:
|
||||
is-date-object: 1.0.5
|
||||
is-symbol: 1.0.4
|
||||
|
||||
/es6-promise/4.2.8:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/esbuild-android-64/0.14.34:
|
||||
resolution:
|
||||
{
|
||||
@@ -7819,12 +7912,13 @@ packages:
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
eslint-plugin-import: 2.26.0
|
||||
eslint-plugin-import: 2.26.0_oisyptfcq77gha3jnxd6iiraai
|
||||
eslint-plugin-jsx-a11y: 6.5.1
|
||||
eslint-plugin-react: 7.29.4
|
||||
eslint-plugin-react-hooks: 4.5.0
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
@@ -7847,13 +7941,14 @@ packages:
|
||||
eslint: 7.32.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy
|
||||
eslint-plugin-import: 2.26.0_eslint@7.32.0
|
||||
eslint-plugin-import: 2.26.0_7wbjhcx7mafjsevdiadrnvhmpe
|
||||
eslint-plugin-jsx-a11y: 6.5.1_eslint@7.32.0
|
||||
eslint-plugin-react: 7.29.4_eslint@7.32.0
|
||||
eslint-plugin-react-hooks: 4.5.0_eslint@7.32.0
|
||||
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
@@ -7875,6 +7970,8 @@ packages:
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
resolve: 1.22.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/eslint-import-resolver-typescript/2.7.1_fkfqfehjtk7sk2efaqbgxsuasa:
|
||||
resolution:
|
||||
@@ -7887,7 +7984,7 @@ packages:
|
||||
eslint-plugin-import: "*"
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint-plugin-import: 2.26.0
|
||||
eslint-plugin-import: 2.26.0_oisyptfcq77gha3jnxd6iiraai
|
||||
glob: 7.2.0
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.0
|
||||
@@ -7908,7 +8005,7 @@ packages:
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint: 7.32.0
|
||||
eslint-plugin-import: 2.26.0_eslint@7.32.0
|
||||
eslint-plugin-import: 2.26.0_7wbjhcx7mafjsevdiadrnvhmpe
|
||||
glob: 7.2.0
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.0
|
||||
@@ -7917,56 +8014,87 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-module-utils/2.7.3:
|
||||
/eslint-module-utils/2.7.3_bpv7bvgsekzf76isjsnkhydtce:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==,
|
||||
}
|
||||
engines: {node: ">=4"}
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": "*"
|
||||
eslint-import-resolver-node: "*"
|
||||
eslint-import-resolver-typescript: "*"
|
||||
eslint-import-resolver-webpack: "*"
|
||||
peerDependenciesMeta:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.23.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
debug: 3.2.7
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy
|
||||
find-up: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-import/2.26.0:
|
||||
/eslint-module-utils/2.7.3_dbnyosdljuntx5ukba4qoruhni:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==,
|
||||
integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==,
|
||||
}
|
||||
engines: {node: ">=4"}
|
||||
peerDependencies:
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
||||
"@typescript-eslint/parser": "*"
|
||||
eslint-import-resolver-node: "*"
|
||||
eslint-import-resolver-typescript: "*"
|
||||
eslint-import-resolver-webpack: "*"
|
||||
peerDependenciesMeta:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
array-includes: 3.1.5
|
||||
array.prototype.flat: 1.3.0
|
||||
debug: 2.6.9
|
||||
doctrine: 2.1.0
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
debug: 3.2.7
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-module-utils: 2.7.3
|
||||
has: 1.0.3
|
||||
is-core-module: 2.8.1
|
||||
is-glob: 4.0.3
|
||||
minimatch: 3.1.2
|
||||
object.values: 1.1.5
|
||||
resolve: 1.22.0
|
||||
tsconfig-paths: 3.14.1
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
find-up: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-import/2.26.0_eslint@7.32.0:
|
||||
/eslint-plugin-import/2.26.0_7wbjhcx7mafjsevdiadrnvhmpe:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==,
|
||||
}
|
||||
engines: {node: ">=4"}
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": "*"
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
||||
peerDependenciesMeta:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.23.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
array-includes: 3.1.5
|
||||
array.prototype.flat: 1.3.0
|
||||
debug: 2.6.9
|
||||
doctrine: 2.1.0
|
||||
eslint: 7.32.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-module-utils: 2.7.3
|
||||
eslint-module-utils: 2.7.3_bpv7bvgsekzf76isjsnkhydtce
|
||||
has: 1.0.3
|
||||
is-core-module: 2.8.1
|
||||
is-glob: 4.0.3
|
||||
@@ -7974,8 +8102,45 @@ packages:
|
||||
object.values: 1.1.5
|
||||
resolve: 1.22.0
|
||||
tsconfig-paths: 3.14.1
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-import/2.26.0_oisyptfcq77gha3jnxd6iiraai:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==,
|
||||
}
|
||||
engines: {node: ">=4"}
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": "*"
|
||||
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
|
||||
peerDependenciesMeta:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
array-includes: 3.1.5
|
||||
array.prototype.flat: 1.3.0
|
||||
debug: 2.6.9
|
||||
doctrine: 2.1.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-module-utils: 2.7.3_dbnyosdljuntx5ukba4qoruhni
|
||||
has: 1.0.3
|
||||
is-core-module: 2.8.1
|
||||
is-glob: 4.0.3
|
||||
minimatch: 3.1.2
|
||||
object.values: 1.1.5
|
||||
resolve: 1.22.0
|
||||
tsconfig-paths: 3.14.1
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-jsx-a11y/6.5.1:
|
||||
resolution:
|
||||
{
|
||||
@@ -8379,6 +8544,8 @@ packages:
|
||||
regex-not: 1.0.2
|
||||
snapdragon: 0.8.2
|
||||
to-regex: 3.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/expect/27.5.1:
|
||||
@@ -8430,6 +8597,8 @@ packages:
|
||||
type-is: 1.6.18
|
||||
utils-merge: 1.0.1
|
||||
vary: 1.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/extend-shallow/2.0.1:
|
||||
@@ -8481,6 +8650,8 @@ packages:
|
||||
regex-not: 1.0.2
|
||||
snapdragon: 0.8.2
|
||||
to-regex: 3.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/extract-zip/2.0.1:
|
||||
@@ -8519,6 +8690,8 @@ packages:
|
||||
is-glob: 4.0.3
|
||||
merge2: 1.4.1
|
||||
micromatch: 3.1.10
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/fast-glob/3.2.11:
|
||||
@@ -8627,6 +8800,8 @@ packages:
|
||||
parseurl: 1.3.3
|
||||
statuses: 1.5.0
|
||||
unpipe: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/find-cache-dir/2.1.0:
|
||||
@@ -8983,6 +9158,8 @@ packages:
|
||||
fs-extra: 7.0.1
|
||||
globby: 9.2.0
|
||||
read-yaml-file: 1.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/glob-parent/3.1.0:
|
||||
@@ -9083,6 +9260,8 @@ packages:
|
||||
ignore: 4.0.6
|
||||
pify: 4.0.1
|
||||
slash: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/got/11.8.3:
|
||||
@@ -9114,6 +9293,8 @@ packages:
|
||||
dependencies:
|
||||
"@sindresorhus/is": 0.14.0
|
||||
"@szmarczak/http-timer": 1.1.2
|
||||
"@types/keyv": 3.1.4
|
||||
"@types/responselike": 1.0.0
|
||||
cacheable-request: 6.1.0
|
||||
decompress-response: 3.3.0
|
||||
duplexer3: 0.1.4
|
||||
@@ -10925,6 +11106,16 @@ packages:
|
||||
safe-buffer: 5.2.1
|
||||
dev: false
|
||||
|
||||
/keygrip/1.1.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==,
|
||||
}
|
||||
engines: {node: ">= 0.6"}
|
||||
dependencies:
|
||||
tsscmp: 1.0.6
|
||||
dev: false
|
||||
|
||||
/keyv/3.1.0:
|
||||
resolution:
|
||||
{
|
||||
@@ -11572,6 +11763,8 @@ packages:
|
||||
regex-not: 1.0.2
|
||||
snapdragon: 0.8.2
|
||||
to-regex: 3.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/micromatch/4.0.5:
|
||||
@@ -11853,6 +12046,8 @@ packages:
|
||||
regex-not: 1.0.2
|
||||
snapdragon: 0.8.2
|
||||
to-regex: 3.0.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/natural-compare/1.4.0:
|
||||
@@ -12118,6 +12313,10 @@ packages:
|
||||
integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==,
|
||||
}
|
||||
|
||||
/oauth/0.9.15:
|
||||
resolution: {integrity: sha1-vR/vr2hslrdUda7VGWQS/2DPucE=}
|
||||
dev: false
|
||||
|
||||
/object-assign/4.1.1:
|
||||
resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
|
||||
engines: {node: ">=0.10.0"}
|
||||
@@ -12225,6 +12424,14 @@ packages:
|
||||
ee-first: 1.1.1
|
||||
dev: true
|
||||
|
||||
/on-headers/1.0.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==,
|
||||
}
|
||||
engines: {node: ">= 0.8"}
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
@@ -12559,6 +12766,66 @@ packages:
|
||||
engines: {node: ">=0.10.0"}
|
||||
dev: false
|
||||
|
||||
/passport-mock-strategy/2.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-9YUT0sja/7n+HfQ+Jwx4XETERRh1uciRjpHhEZMcYS1FBnMrfrSlKVS42bMU06ewSFiPhXztazAE6XwiZdZQ/g==,
|
||||
}
|
||||
engines: {node: ">= 6"}
|
||||
dependencies:
|
||||
"@types/express": 4.17.13
|
||||
"@types/passport": 1.0.7
|
||||
es6-promise: 4.2.8
|
||||
passport: 0.4.1
|
||||
dev: false
|
||||
|
||||
/passport-oauth1/1.2.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==,
|
||||
}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dependencies:
|
||||
oauth: 0.9.15
|
||||
passport-strategy: 1.0.0
|
||||
utils-merge: 1.0.1
|
||||
dev: false
|
||||
|
||||
/passport-strategy/1.0.0:
|
||||
resolution: {integrity: sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dev: false
|
||||
|
||||
/passport-twitter/1.0.4:
|
||||
resolution: {integrity: sha1-AaeZ4fdgvy3knyul+6MigvGJMtc=}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dependencies:
|
||||
passport-oauth1: 1.2.0
|
||||
xtraverse: 0.1.0
|
||||
dev: false
|
||||
|
||||
/passport/0.4.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==,
|
||||
}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dependencies:
|
||||
passport-strategy: 1.0.0
|
||||
pause: 0.0.1
|
||||
dev: false
|
||||
|
||||
/passport/0.5.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-w9n/Ot5I7orGD4y+7V3EFJCQEznE5RxHamUxcqLT2QoJY0f2JdN8GyHonYFvN0Vz+L6lUJfVhrk2aZz2LbuREw==,
|
||||
}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dependencies:
|
||||
passport-strategy: 1.0.0
|
||||
pause: 0.0.1
|
||||
dev: false
|
||||
|
||||
/patch-package/6.4.7:
|
||||
resolution:
|
||||
{
|
||||
@@ -12661,6 +12928,10 @@ packages:
|
||||
}
|
||||
dev: false
|
||||
|
||||
/pause/0.0.1:
|
||||
resolution: {integrity: sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=}
|
||||
dev: false
|
||||
|
||||
/pend/1.2.0:
|
||||
resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=}
|
||||
dev: true
|
||||
@@ -13895,6 +14166,8 @@ packages:
|
||||
on-finished: 2.3.0
|
||||
range-parser: 1.2.1
|
||||
statuses: 1.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/serve-static/1.14.2:
|
||||
@@ -13908,6 +14181,8 @@ packages:
|
||||
escape-html: 1.0.3
|
||||
parseurl: 1.3.3
|
||||
send: 0.17.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/set-blocking/2.0.0:
|
||||
@@ -14124,6 +14399,8 @@ packages:
|
||||
source-map: 0.5.7
|
||||
source-map-resolve: 0.5.3
|
||||
use: 3.1.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/sodium-native/3.3.0:
|
||||
@@ -14196,6 +14473,7 @@ packages:
|
||||
integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
|
||||
}
|
||||
engines: {node: ">=0.10.0"}
|
||||
requiresBuild: true
|
||||
|
||||
/source-map/0.7.3:
|
||||
resolution:
|
||||
@@ -14926,7 +15204,6 @@ packages:
|
||||
typescript: 4.6.3
|
||||
v8-compile-cache-lib: 3.0.1
|
||||
yn: 3.1.1
|
||||
dev: false
|
||||
|
||||
/ts-node/10.7.0_typescript@4.6.3:
|
||||
resolution:
|
||||
@@ -15005,6 +15282,14 @@ packages:
|
||||
source-map-support: 0.5.21
|
||||
dev: false
|
||||
|
||||
/tsscmp/1.0.6:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==,
|
||||
}
|
||||
engines: {node: ">=0.6.x"}
|
||||
dev: false
|
||||
|
||||
/tsutils/3.21.0_typescript@4.6.3:
|
||||
resolution:
|
||||
{
|
||||
@@ -15273,7 +15558,6 @@ packages:
|
||||
}
|
||||
engines: {node: ">=4.2.0"}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/uc.micro/1.0.6:
|
||||
resolution:
|
||||
@@ -15483,7 +15767,6 @@ packages:
|
||||
/utils-merge/1.0.1:
|
||||
resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dev: true
|
||||
|
||||
/uuid/8.3.2:
|
||||
resolution:
|
||||
@@ -15498,7 +15781,6 @@ packages:
|
||||
{
|
||||
integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==,
|
||||
}
|
||||
dev: false
|
||||
|
||||
/v8-compile-cache/2.3.0:
|
||||
resolution:
|
||||
@@ -15991,6 +16273,22 @@ packages:
|
||||
integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==,
|
||||
}
|
||||
|
||||
/xmldom/0.1.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==,
|
||||
}
|
||||
engines: {node: ">=0.1"}
|
||||
deprecated: Deprecated due to CVE-2021-21366 resolved in 0.5.0
|
||||
dev: false
|
||||
|
||||
/xtraverse/0.1.0:
|
||||
resolution: {integrity: sha1-t0G60BjveNip0ug63gB7P3lZxzI=}
|
||||
engines: {node: ">= 0.4.0"}
|
||||
dependencies:
|
||||
xmldom: 0.1.31
|
||||
dev: false
|
||||
|
||||
/y18n/4.0.3:
|
||||
resolution:
|
||||
{
|
||||
@@ -16088,7 +16386,6 @@ packages:
|
||||
integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==,
|
||||
}
|
||||
engines: {node: ">=6"}
|
||||
dev: false
|
||||
|
||||
/yocto-queue/0.1.0:
|
||||
resolution:
|
||||
|
||||
Reference in New Issue
Block a user