1
0
mirror of synced 2026-02-03 18:01:02 -05:00

Compare commits

...

15 Commits

Author SHA1 Message Date
github-actions[bot]
923703b661 Version Packages (alpha) (#3510)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-06 18:26:09 +02:00
Dillon Raphael
70f9ae4921 Handle next/dynamic default import in codemod (#3509) 2022-07-06 18:21:45 +02:00
beerose
c738ecacbc Remove --tag option from release script 2022-07-06 17:07:55 +02:00
github-actions[bot]
ad0b087d9f Version Packages (alpha) (#3507)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-06 16:03:29 +02:00
Dillon Raphael
dc694cf1cf remove mounted check from withBlitz (#3504)
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
2022-07-06 15:59:18 +02:00
Aleksandra
4c221b655e Tag @blitzjs/rpc and @blitzjs/auth with alpha, update package.json files (#3508) 2022-07-06 13:56:25 +02:00
Aleksandra
c11f0401cf Update Next.js version and addBasePath location (#3506) 2022-07-06 13:14:48 +02:00
github-actions[bot]
830b51d0dc Version Packages (alpha) (#3492)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-04 17:39:14 +02:00
David
bec9512e30 Expand & rename baseResolverPath (#3421)
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
2022-07-04 17:35:36 +02:00
Dillon Raphael
1493729d6b forked changesets action 2022-07-04 16:48:30 +02:00
Dillon Raphael
6bb5980da9 revert changesets action version 2022-07-04 15:44:21 +02:00
Dillon Raphael
7310f7171d use forked changesets github action 2022-07-04 15:32:28 +02:00
github-actions[bot]
d855ee3e1d Version Packages (alpha) (#3487)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-04 13:29:42 +02:00
Aleksandra
93851d90ca Handle duplicated imports with Blitz codemod (#3486) 2022-07-04 13:25:44 +02:00
beerose
3ab05b3cda Update pnpm-lock.yaml 2022-07-01 17:07:36 +02:00
64 changed files with 871 additions and 407 deletions

View File

@@ -0,0 +1,6 @@
---
"@blitzjs/rpc": patch
"@blitzjs/generator": patch
---
Update Next.js version and addBasePath location

View File

@@ -0,0 +1,6 @@
---
"blitz": patch
"@blitzjs/codemod": patch
---
Handle duplicate imports with Blitz upgrade-legacy codemod

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/codemod": patch
---
Handle next/dynamic default import in codemod

View File

@@ -43,12 +43,14 @@
"healthy-rice-shout",
"hot-drinks-approve",
"late-steaks-give",
"lemon-games-press",
"lovely-colts-share",
"lucky-cows-try",
"modern-cameras-pull",
"moody-squids-cheer",
"nervous-beds-travel",
"nervous-dolls-rule",
"new-coats-turn",
"nice-starfishes-live",
"nine-onions-admire",
"ninety-pets-heal",
@@ -58,14 +60,17 @@
"poor-peas-lick",
"poor-penguins-look",
"poor-shrimps-think",
"popular-teachers-pay",
"purple-singers-greet",
"quiet-feet-travel",
"quiet-pans-hunt",
"quiet-sloths-rule",
"rich-chairs-invent",
"rich-queens-travel",
"sharp-falcons-begin",
"shy-olives-hang",
"silent-colts-reply",
"slow-walls-poke",
"small-socks-confess",
"smooth-planets-admire",
"strong-apes-reply",

View File

@@ -0,0 +1,5 @@
---
"@blitzjs/next": patch
---
Removes the check for when withBlitz is mounted before rendering the users app. We had this previously to avoid the react 18 suspense error being showin in development with nextjs.

View File

@@ -0,0 +1,6 @@
---
"@blitzjs/next": patch
"@blitzjs/rpc": patch
---
Allow resolverPath to be a function which is ran for every file path that is converted to RPC Route

View File

@@ -1,43 +0,0 @@
name-template: "v$RESOLVED_VERSION"
tag-template: "v$RESOLVED_VERSION"
# categories:
# - title: 'Blitz'
# label: 'blitz'
# - title: '@blitzjs/next'
# label: 'blitz-next'
# - title: '@blitzjs/rpc'
# label: 'blitz-rpc'
# - title: '@blitzjs/auth'
# label: 'blitz-auth'
version-resolver:
major:
labels:
- "major"
minor:
labels:
- "minor"
patch:
labels:
- "patch"
default: patch
# autolabeler:
# - label: 'blitz'
# title:
# - '/blitz/i'
# - label: 'blitz-next'
# title:
# - '/@blitzjs\/next/i'
# - label: 'blitz-rpc'
# title:
# - '/@blitzjs\/rpc/i'
# - label: 'blitz-auth'
# title:
# - '/@blitzjs\/auth/i'
template: |
## Whats Changed
$CHANGES
## Contributors
$CONTRIBUTORS

View File

@@ -42,10 +42,10 @@ jobs:
- run: pnpm build
- name: Create Release Pull Request
uses: changesets/action@v1
uses: blitz-js/changesets-action@main
with:
publish: pnpm release
createGithubReleases: false
createGithubReleases: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -29,14 +29,14 @@
"@blitzjs/rpc": "workspace:*",
"@hookform/resolvers": "2.8.8",
"@prisma/client": "3.9.0",
"blitz": "workspace:2.0.0-alpha.47",
"next": "12.1.6-canary.17",
"blitz": "workspace:2.0.0-alpha.51",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"react-hook-form": "7.29.0",
"ts-node": "10.7.0",
"zod": "3.10.1"
"zod": "3.17.3"
},
"devDependencies": {
"@next/bundle-analyzer": "12.0.8",

View File

@@ -10,7 +10,6 @@ module.exports = withBlitz(
customServer: {
hotReload: false,
},
resolverBasePath: "root",
},
}),
)

View File

@@ -25,7 +25,7 @@
"@types/passport-twitter": "1.0.37",
"blitz": "workspace:*",
"jest": "27.5.1",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"passport-mock-strategy": "2.0.0",
"passport-twitter": "1.0.4",
"prisma": "3.9.0",

View File

@@ -1,6 +1,6 @@
import {ErrorFallbackProps, ErrorComponent, ErrorBoundary, AppProps} from "@blitzjs/next"
import {AuthenticationError, AuthorizationError} from "blitz"
import React from "react"
import React, {Suspense} from "react"
import {withBlitz} from "app/blitz-client"
function RootErrorFallback({error}: ErrorFallbackProps) {
@@ -26,7 +26,9 @@ function RootErrorFallback({error}: ErrorFallbackProps) {
function MyApp({Component, pageProps}: AppProps) {
return (
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
<Suspense fallback="Loading...">
<Component {...pageProps} />
</Suspense>
</ErrorBoundary>
)
}

View File

@@ -19,7 +19,7 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0"

View File

@@ -1,6 +1,6 @@
import {ErrorFallbackProps, ErrorComponent, ErrorBoundary, AppProps} from "@blitzjs/next"
import {AuthenticationError, AuthorizationError} from "blitz"
import React from "react"
import React, {Suspense} from "react"
import {withBlitz} from "../app/blitz-client"
function RootErrorFallback({error}: ErrorFallbackProps) {
@@ -25,9 +25,11 @@ function RootErrorFallback({error}: ErrorFallbackProps) {
function MyApp({Component, pageProps}: AppProps) {
return (
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
<Suspense fallback="Loading...">
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
</Suspense>
)
}

View File

@@ -1,4 +1,2 @@
const {withBlitz} = require("@blitzjs/next")
module.exports = withBlitz({
// update me
})
module.exports = withBlitz({})

View File

@@ -15,7 +15,7 @@
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"blitz": "workspace:*",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0"
},

View File

@@ -1,6 +1,6 @@
import {ErrorFallbackProps, ErrorComponent, ErrorBoundary, AppProps} from "@blitzjs/next"
import {AuthenticationError, AuthorizationError} from "blitz"
import React from "react"
import React, {Suspense} from "react"
import {withBlitz} from "../app/blitz-client"
function RootErrorFallback({error}: ErrorFallbackProps) {
@@ -25,9 +25,11 @@ function RootErrorFallback({error}: ErrorFallbackProps) {
function MyApp({Component, pageProps}: AppProps) {
return (
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
<Suspense fallback="Loading...">
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
</Suspense>
)
}

View File

@@ -19,7 +19,7 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0"

View File

@@ -1,6 +1,6 @@
import {ErrorFallbackProps, ErrorComponent, ErrorBoundary, AppProps} from "@blitzjs/next"
import {AuthenticationError, AuthorizationError} from "blitz"
import React from "react"
import React, {Suspense} from "react"
import {withBlitz} from "../app/blitz-client"
function RootErrorFallback({error}: ErrorFallbackProps) {
@@ -25,9 +25,11 @@ function RootErrorFallback({error}: ErrorFallbackProps) {
function MyApp({Component, pageProps}: AppProps) {
return (
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
<Suspense fallback="Loading...">
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
</Suspense>
)
}

View File

@@ -14,7 +14,7 @@
"@blitzjs/rpc": "workspace:*",
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0",

View File

@@ -1,4 +1,4 @@
const {withBlitz} = require("@blitzjs/next")
module.exports = withBlitz({
target: 'experimental-serverless-trace',
target: "experimental-serverless-trace",
})

View File

@@ -12,7 +12,7 @@
"@blitzjs/next": "workspace:*",
"@blitzjs/rpc": "workspace:*",
"blitz": "workspace:*",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0"
},

View File

@@ -22,7 +22,7 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0"

View File

@@ -1,6 +1,6 @@
import {ErrorFallbackProps, ErrorComponent, ErrorBoundary, AppProps} from "@blitzjs/next"
import {AuthenticationError, AuthorizationError} from "blitz"
import React from "react"
import React, {Suspense} from "react"
import {withBlitz} from "../app/blitz-client"
function RootErrorFallback({error}: ErrorFallbackProps) {
@@ -25,9 +25,11 @@ function RootErrorFallback({error}: ErrorFallbackProps) {
function MyApp({Component, pageProps}: AppProps) {
return (
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
<Suspense fallback="Loading...">
<ErrorBoundary FallbackComponent={RootErrorFallback}>
<Component {...pageProps} />
</ErrorBoundary>
</Suspense>
)
}

View File

@@ -28,9 +28,8 @@
"husky": "7.0.4",
"jsdom": "^19.0.0",
"lint-staged": "12.1.7",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"only-allow": "1.1.0",
"patch-package": "6.4.7",
"prettier": "^2.5.1",
"prettier-plugin-prisma": "3.8.0",
"pretty-quick": "3.1.3",
@@ -39,5 +38,5 @@
"wait-on": "6.0.1"
},
"npmClient": "pnpm",
"packageManager": "pnpm@6.21.0"
"packageManager": "pnpm@7.4.0-1"
}

View File

@@ -1,5 +1,30 @@
# @blitzjs/auth
## 2.0.0-alpha.51
### Patch Changes
- blitz@2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- blitz@2.0.0-alpha.50
## 2.0.0-alpha.49
### Patch Changes
- blitz@2.0.0-alpha.49
## 2.0.0-alpha.48
### Patch Changes
- Updated dependencies [93851d90]
- blitz@2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"scripts": {
"build": "unbuild",
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts",
@@ -26,7 +26,7 @@
"@types/secure-password": "3.1.1",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"blitz": "2.0.0-alpha.47",
"blitz": "2.0.0-alpha.51",
"cookie": "0.4.1",
"cookie-session": "2.0.0",
"debug": "4.3.3",
@@ -39,7 +39,7 @@
"url": "0.11.0"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@blitzjs/config": "workspace:2.0.0-alpha.51",
"@testing-library/react": "13.0.0",
"@testing-library/react-hooks": "7.0.2",
"@types/cookie": "0.4.1",

View File

@@ -57,7 +57,7 @@ export type VerifyCallbackResult = {
export type ApiHandlerIncomingMessage = IncomingMessage & {
query: {
[key: string]: string | string[]
[key: string]: string | string[] | undefined
}
}

View File

@@ -1,5 +1,33 @@
# @blitzjs/next
## 2.0.0-alpha.51
### Patch Changes
- @blitzjs/rpc@2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- dc694cf1: Removes the check for when withBlitz is mounted before rendering the users app. We had this previously to avoid the react 18 suspense error being showin in development with nextjs.
- Updated dependencies [c11f0401]
- @blitzjs/rpc@2.0.0-alpha.50
## 2.0.0-alpha.49
### Patch Changes
- bec9512e: Allow resolverPath to be a function which is ran for every file path that is converted to RPC Route
- Updated dependencies [bec9512e]
- @blitzjs/rpc@2.0.0-alpha.49
## 2.0.0-alpha.48
### Patch Changes
- @blitzjs/rpc@2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"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.47",
"@blitzjs/rpc": "2.0.0-alpha.51",
"@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.47",
"@blitzjs/config": "workspace:2.0.0-alpha.51",
"@testing-library/dom": "8.13.0",
"@testing-library/jest-dom": "5.16.3",
"@testing-library/react": "13.0.0",
@@ -42,10 +42,10 @@
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"@types/testing-library__react-hooks": "4.0.0",
"blitz": "2.0.0-alpha.47",
"blitz": "2.0.0-alpha.51",
"cross-spawn": "7.0.3",
"find-up": "4.1.0",
"next": "12.1.6-canary.17",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"resolve-from": "5.0.0",
@@ -58,7 +58,7 @@
"access": "public"
},
"peerDependencies": {
"next": "*",
"next": ">=12.2.0",
"react": "*"
}
}

View File

@@ -220,8 +220,7 @@ test("withErrorBoundary HOC", () => {
expect(cleanStack(onErrorComponentStack)).toMatchInlineSnapshot(`
{
"componentStack": "
at __vite_ssr_import_4__.withErrorBoundary.FallbackComponent
at ErrorBoundary
at ErrorBoundary
at withErrorBoundary",
}
`)

View File

@@ -35,11 +35,7 @@ const buildWithBlitz = <TPlugins extends readonly ClientPlugin<object>[]>(plugin
const BlitzOuterRoot = (props: AppProps) => {
const component = React.useMemo(() => withPlugins(props.Component), [props.Component])
const [mounted, setMounted] = React.useState(false)
React.useEffect(() => {
// Current workaround to fix react 18 suspense error issue
setMounted(true)
// supress first render flicker
setTimeout(() => {
document.documentElement.classList.add("blitz-first-render-complete")
@@ -51,7 +47,7 @@ const buildWithBlitz = <TPlugins extends readonly ClientPlugin<object>[]>(plugin
<>
{/* @ts-ignore todo */}
{props.Component.suppressFirstRenderFlicker && <NoPageFlicker />}
{mounted && <UserAppRoot {...props} Component={component} />}
<UserAppRoot {...props} Component={component} />
</>
</BlitzProvider>
)

View File

@@ -17,11 +17,17 @@ import type {
MiddlewareResponse,
} from "blitz"
import {handleRequestWithMiddleware, startWatcher, stopWatcher} from "blitz"
import {dehydrate, getQueryKey, getInfiniteQueryKey, loaderClient, loaderServer} from "@blitzjs/rpc"
import {
dehydrate,
getInfiniteQueryKey,
getQueryKey,
installWebpackConfig,
InstallWebpackConfigOptions,
ResolverPathOptions,
} from "@blitzjs/rpc"
import {DefaultOptions, QueryClient} from "react-query"
import {IncomingMessage, ServerResponse} from "http"
import {withSuperJsonProps} from "./superjson"
import {ResolverBasePath} from "@blitzjs/rpc/src/index-server"
import {ParsedUrlQuery} from "querystring"
import {PreviewData} from "next/types"
@@ -163,59 +169,13 @@ export const setupBlitzServer = ({plugins, onError}: SetupBlitzOptions) => {
export interface BlitzConfig extends NextConfig {
blitz?: {
resolverBasePath?: ResolverBasePath
resolverPath?: ResolverPathOptions
customServer?: {
hotReload?: boolean
}
}
}
interface WebpackRuleOptions {
resolverBasePath?: ResolverBasePath
}
interface WebpackRule {
test: RegExp
use: Array<{
loader: string
options: WebpackRuleOptions
}>
}
interface InstallWebpackConfigOptions {
webpackConfig: {
module: {
rules: WebpackRule[]
}
}
nextConfig: BlitzConfig
}
export function installWebpackConfig({webpackConfig, nextConfig}: InstallWebpackConfigOptions) {
const options: WebpackRuleOptions = {
resolverBasePath: nextConfig.blitz?.resolverBasePath,
}
webpackConfig.module.rules.push({
test: /\/\[\[\.\.\.blitz]]\.[jt]s$/,
use: [
{
loader: loaderServer,
options,
},
],
})
webpackConfig.module.rules.push({
test: /[\\/](queries|mutations)[\\/]/,
use: [
{
loader: loaderClient,
options,
},
],
})
}
export function withBlitz(nextConfig: BlitzConfig = {}) {
if (
process.env.NODE_ENV !== "production" &&
@@ -236,7 +196,12 @@ export function withBlitz(nextConfig: BlitzConfig = {}) {
const config = Object.assign({}, nextConfig, {
webpack: (config: InstallWebpackConfigOptions["webpackConfig"], options: any) => {
installWebpackConfig({webpackConfig: config, nextConfig})
installWebpackConfig({
webpackConfig: config,
webpackRuleOptions: {
resolverPath: nextConfig.blitz?.resolverPath,
},
})
if (typeof nextConfig.webpack === "function") {
return nextConfig.webpack(config, options)
}

View File

@@ -1,5 +1,36 @@
# @blitzjs/rpc
## 2.0.0-alpha.51
### Patch Changes
- @blitzjs/auth@2.0.0-alpha.51
- blitz@2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- c11f0401: Update Next.js version and addBasePath location
- blitz@2.0.0-alpha.50
- @blitzjs/auth@2.0.0-alpha.50
## 2.0.0-alpha.49
### Patch Changes
- bec9512e: Allow resolverPath to be a function which is ran for every file path that is converted to RPC Route
- @blitzjs/auth@2.0.0-alpha.49
- blitz@2.0.0-alpha.49
## 2.0.0-alpha.48
### Patch Changes
- Updated dependencies [93851d90]
- blitz@2.0.0-alpha.48
- @blitzjs/auth@2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"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,22 +20,22 @@
"dist/**"
],
"dependencies": {
"@blitzjs/auth": "2.0.0-alpha.47",
"@blitzjs/auth": "2.0.0-alpha.51",
"b64-lite": "1.4.0",
"bad-behavior": "1.0.1",
"chalk": "^4.1.0",
"debug": "4.3.3",
"react-query": "3.39.0",
"superjson": "1.8.0",
"zod": "3.10.1"
"zod": "3.17.3"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@blitzjs/config": "workspace:2.0.0-alpha.51",
"@types/debug": "4.1.7",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-alpha.47",
"next": "12.1.6-canary.17",
"blitz": "2.0.0-alpha.51",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"typescript": "^4.5.3",
@@ -43,8 +43,8 @@
"watch": "1.0.2"
},
"peerDependencies": {
"blitz": "2.0.0-alpha.47",
"next": "*"
"blitz": "2.0.0-alpha.51",
"next": ">=12.2.0"
},
"publishConfig": {
"access": "public"

View File

@@ -1,5 +1,5 @@
import {normalizePathTrailingSlash} from "next/dist/client/normalize-trailing-slash"
import {addBasePath} from "next/dist/shared/lib/router/router"
import {addBasePath} from "next/dist/client/add-base-path"
import {deserialize, serialize} from "superjson"
import {SuperJSONResult} from "superjson/dist/types"
import {CSRFTokenMismatchError, isServer} from "blitz"

View File

@@ -1,7 +1,6 @@
import {assert, Ctx, prettyMs} from "blitz"
import {NextApiRequest, NextApiResponse} from "next"
import {deserialize, serialize as superjsonSerialize} from "superjson"
import chalk from "chalk"
import {resolve} from "path"
// TODO - optimize end user server bundles by not exporting all client stuff here
@@ -26,7 +25,7 @@ function getGlobalObject<T extends Record<string, unknown>>(key: string, default
type Resolver = (...args: unknown[]) => Promise<unknown>
type ResolverFiles = Record<string, () => Promise<{default?: Resolver}>>
export type ResolverBasePath = "queries|mutations" | "root" | undefined
export type ResolverPathOptions = "queries|mutations" | "root" | ((path: string) => string)
// We define `global.__internal_blitzRpcResolverFiles` to ensure we use the same global object.
// Needed for Next.js. I'm guessing that Next.js is including the `node_modules/` files in a seperate bundle than user files.
@@ -51,8 +50,53 @@ export function __internal_addBlitzRpcResolver(
}
const dir = __dirname + (() => "")() // trick to avoid `@vercel/ncc` to glob import
export const loaderServer = resolve(dir, "./loader-server.cjs")
export const loaderClient = resolve(dir, "./loader-client.cjs")
const loaderServer = resolve(dir, "./loader-server.cjs")
const loaderClient = resolve(dir, "./loader-client.cjs")
interface WebpackRuleOptions {
resolverPath: ResolverPathOptions | undefined
}
interface WebpackRule {
test: RegExp
use: Array<{
loader: string
options: WebpackRuleOptions
}>
}
export interface InstallWebpackConfigOptions {
webpackConfig: {
module: {
rules: WebpackRule[]
}
}
webpackRuleOptions: WebpackRuleOptions
}
export function installWebpackConfig({
webpackConfig,
webpackRuleOptions,
}: InstallWebpackConfigOptions) {
webpackConfig.module.rules.push({
test: /\/\[\[\.\.\.blitz]]\.[jt]s$/,
use: [
{
loader: loaderServer,
options: webpackRuleOptions,
},
],
})
webpackConfig.module.rules.push({
test: /[\\/](queries|mutations)[\\/]/,
use: [
{
loader: loaderClient,
options: webpackRuleOptions,
},
],
})
}
// ----------
// END LOADER

View File

@@ -42,7 +42,7 @@ export async function transformBlitzRpcResolverClient(
const resolverFilePath = "/" + posix.relative(root, id)
assertPosixPath(resolverFilePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverBasePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverPath)
const resolverName = convertFilePathToResolverName(resolverFilePath)
const resolverType = convertFilePathToResolverType(resolverFilePath)

View File

@@ -55,7 +55,7 @@ export async function transformBlitzRpcServer(
for (let resolverFilePath of resolvers) {
const relativeResolverPath = posix.relative(dirname(id), join(root, resolverFilePath))
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverBasePath)
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverPath)
code += `__internal_addBlitzRpcResolver('${routePath}', () => import('${relativeResolverPath}'));`
code += "\n"
}

View File

@@ -1,9 +1,9 @@
import {assert} from "blitz"
import {posix, sep, win32} from "path"
import {ResolverBasePath} from "./index-server"
import {ResolverPathOptions} from "./index-server"
export interface LoaderOptions {
resolverBasePath?: ResolverBasePath
resolverPath: ResolverPathOptions
}
export interface Loader {
@@ -51,9 +51,13 @@ const fileExtensionRegex = /\.([a-z]+)$/
export function convertPageFilePathToRoutePath(
filePath: string,
resolverBasePath: ResolverBasePath,
resolverPath?: ResolverPathOptions,
) {
if (resolverBasePath === "root") {
if (typeof resolverPath === "function") {
return resolverPath(filePath)
}
if (resolverPath === "root") {
return filePath.replace(fileExtensionRegex, "")
}

View File

@@ -1,5 +1,31 @@
# blitz
## 2.0.0-alpha.51
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- Updated dependencies [c11f0401]
- @blitzjs/generator@2.0.0-alpha.50
## 2.0.0-alpha.49
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.49
## 2.0.0-alpha.48
### Patch Changes
- 93851d90: Handle duplicate imports with Blitz upgrade-legacy codemod
- @blitzjs/generator@2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-alpha.47",
"@blitzjs/generator": "2.0.0-alpha.51",
"arg": "5.0.1",
"chalk": "^4.1.0",
"console-table-printer": "2.10.0",
@@ -52,7 +52,7 @@
"watchpack": "2.1.1"
},
"devDependencies": {
"@blitzjs/config": "workspace:2.0.0-alpha.47",
"@blitzjs/config": "workspace:2.0.0-alpha.51",
"@types/cookie": "0.4.1",
"@types/cross-spawn": "6.0.2",
"@types/debug": "4.1.7",
@@ -75,7 +75,7 @@
"typescript": "^4.5.3",
"unbuild": "0.6.9",
"watch": "1.0.2",
"zod": "3.10.1"
"zod": "3.17.3"
},
"peerDependencies": {
"react": "*"

View File

@@ -1,8 +1,30 @@
import {CliCommand} from "../index"
/* @ts-ignore */
import {generateManifest} from "../utils/routes-manifest"
import resolveCwd from "resolve-cwd"
import {join} from "path"
import fs from "fs-extra"
const codegen: CliCommand = async () => {
try {
/*
Updates the user's nextjs file and adds onRecoverableError to the hydrateRoot 3rd parameter object.
We can remove this when https://github.com/vercel/next.js/pull/38207 is merged into next.js
*/
const nextDir = await resolveCwd("next")
const nextClientIndex = join(nextDir, "../..", "client", "index.js")
const readFile = await fs.readFile(nextClientIndex)
const updatedFile = readFile
.toString()
.replace(
/ReactDOM\.hydrateRoot\(.*?\);/,
`ReactDOM.hydrateRoot(domEl, reactEl, process.env.NODE_ENV === 'development' ? {onRecoverableError: (err) => err.toString().includes("could not finish this Suspense boundary") ? null : console.error(err)} : undefined);`,
)
await fs.writeFile(nextClientIndex, updatedFile)
} catch (err) {
console.log(err)
}
try {
await generateManifest()
} catch (err) {

View File

@@ -515,15 +515,6 @@ export const isInternalBlitzMonorepoDevelopment = __dirname.match(
)
async function findNodeModulesRoot(src: string) {
/*
* Because of our package structure, and because of how things like pnpm link modules,
* we must first find blitz package, and then find `next` and then
* the root of `next`
*
* This is because we import from `.blitz` inside `next/stdlib`.
* If that changes, then this logic here will need to change
*/
let root: string
if (isInternalBlitzMonorepoDevelopment) {
root = join(__dirname, "..", "..", "..", "..", "/node_modules")

View File

@@ -9,6 +9,7 @@ export * from "./types"
export * from "./prisma-utils"
export * from "./middleware"
export * from "./paginate"
export {baseLogger, newLine, log} from "./logging"
export {startWatcher, stopWatcher} from "./cli/utils/routes-manifest"
// const blitzConfig = findBlitzConfigDirectory() as string
// const file = readFileSync(blitzConfig)

View File

@@ -0,0 +1,189 @@
import {ISettingsParam, Logger} from "tslog"
import c from "chalk"
import {Table} from "console-table-printer"
import ora from "ora"
import readline from "readline"
export type LogLevel = "trace" | "debug" | "info" | "warn" | "error" | "fatal"
declare module globalThis {
let _blitz_baseLogger: Logger
let _blitz_logLevel: LogLevel
}
export const newLine = () => {
const logLevel: LogLevel = globalThis._blitz_logLevel
switch (logLevel) {
case "trace":
case "debug":
case "info":
console.log(" ")
break
case "warn":
case "error":
case "fatal":
default:
//nothing
break
}
}
export const baseLogger = (options?: ISettingsParam): Logger => {
if (globalThis._blitz_baseLogger) return globalThis._blitz_baseLogger
let config
try {
config = {} as any // todo: loadConfigAtRuntime()
} catch {
config = {}
}
globalThis._blitz_baseLogger = new Logger({
minLevel: config?.log?.level || "info",
type: config?.log?.type || "pretty",
dateTimePattern:
process.env.NODE_ENV === "production"
? "year-month-day hour:minute:second.millisecond"
: "hour:minute:second.millisecond",
displayFunctionName: false,
displayFilePath: "hidden",
displayRequestId: false,
dateTimeTimezone:
process.env.NODE_ENV === "production"
? "utc"
: Intl.DateTimeFormat().resolvedOptions().timeZone,
prettyInspectHighlightStyles: {
name: "yellow",
number: "blue",
bigint: "blue",
boolean: "blue",
},
maskValuesOfKeys: ["password", "passwordConfirmation"],
exposeErrorCodeFrame: process.env.NODE_ENV !== "production",
...options,
})
return globalThis._blitz_baseLogger
}
export const table = Table
export const chalk = c
// const blitzTrueBrandColor = '6700AB'
const blitzBrightBrandColor = "8a3df0"
// Using bright brand color so it's better for dark terminals
const brandColor = blitzBrightBrandColor
const withBrand = (str: string) => {
return c.hex(brandColor).bold(str)
}
const withCaret = (str: string) => {
return `${c.gray(">")} ${str}`
}
const withCheck = (str: string) => {
return `${c.green("✔")} ${str}`
}
const withProgress = (str: string) => {
return withCaret(str)
}
/**
* Logs a branded purple message to stdout.
*
* @param {string} msg
*/
const branded = (msg: string) => {
console.log(c.hex(brandColor).bold(msg))
}
/**
* Clears the line and optionally log a message to stdout.
*
* @param {string} msg
*/
const clearLine = (msg?: string) => {
readline.clearLine(process.stdout, 0)
readline.cursorTo(process.stdout, 0)
msg && process.stdout.write(msg)
}
const clearConsole = () => {
if (process.platform === "win32") {
process.stdout.write("\x1B[2J\x1B[0f")
} else {
process.stdout.write("\x1B[2J\x1B[3J\x1B[H")
}
}
/**
* Logs a progress message to stdout.
*
* @param {string} msg
*/
const progress = (msg: string) => {
console.log(withProgress(msg))
}
const spinner = (str: string) => {
return ora({
text: str,
color: "blue",
spinner: {
interval: 120,
frames: ["◢", "◣", "◤", "◥"],
},
})
}
/**
* Logs a green success message to stdout.
*
* @param {string} msg
*/
const success = (msg: string) => {
console.log(withCheck(c.green(msg)))
}
/**
* Logs a red error message to stdout.
*
* @param {string} msg
*/
const error = (msg: string) => {
console.log(`${c.red(msg)}`)
}
/**
* Colorizes a variable for display.
*
* @param {string} val
*/
const variable = (val: any) => {
return c.cyan.bold(`${val}`)
}
/**
* If the DEBUG env var is set this will write to the console
* @param str msg
*/
const debug = require("debug")("blitz")
export const log = {
withBrand,
withCaret,
branded,
clearLine,
clearConsole,
progress,
spinner,
success,
error,
variable,
debug,
Table,
}

View File

@@ -78,7 +78,7 @@ describe("formatZodError", () => {
})
expect(formatZodError(result.error)).toEqual({
students: [undefined, {name: "Required"}, {name: "Expected string, received boolean"}],
data: [undefined, "Expected true, received undefined"],
data: [undefined, "Invalid literal value, expected true"],
})
})
})

View File

@@ -1,5 +1,37 @@
# @blitzjs/codemod
## 2.0.0-alpha.51
### Patch Changes
- 70f9ae49: Handle next/dynamic default import in codemod
- @blitzjs/generator@2.0.0-alpha.51
- blitz@2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- Updated dependencies [c11f0401]
- @blitzjs/generator@2.0.0-alpha.50
- blitz@2.0.0-alpha.50
## 2.0.0-alpha.49
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.49
- blitz@2.0.0-alpha.49
## 2.0.0-alpha.48
### Patch Changes
- 93851d90: Handle duplicate imports with Blitz upgrade-legacy codemod
- Updated dependencies [93851d90]
- blitz@2.0.0-alpha.48
- @blitzjs/generator@2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/codemod",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -25,9 +25,9 @@
"@babel/plugin-proposal-class-properties": "7.17.12",
"@babel/plugin-syntax-jsx": "7.17.12",
"@babel/plugin-syntax-typescript": "7.17.12",
"@blitzjs/generator": "2.0.0-alpha.47",
"@blitzjs/generator": "2.0.0-alpha.51",
"arg": "5.0.1",
"blitz": "2.0.0-alpha.47",
"blitz": "2.0.0-alpha.51",
"chalk": "^4.1.0",
"cross-spawn": "7.0.3",
"debug": "4.3.3",

View File

@@ -12,6 +12,9 @@ import {
getCollectionFromSource,
wrapDeclaration,
findIdentifier,
removeImport,
replaceImport,
replaceIdentifiers,
} from "./utils"
import {log} from "blitz"
@@ -82,8 +85,8 @@ const upgradeLegacy = async () => {
packageJsonPath.dependencies["react"] = "latest"
packageJsonPath.dependencies["react-dom"] = "latest"
packageJsonPath.dependencies["@blitzjs/next"] = "alpha"
packageJsonPath.dependencies["@blitzjs/rpc"] = "latest"
packageJsonPath.dependencies["@blitzjs/auth"] = "latest"
packageJsonPath.dependencies["@blitzjs/rpc"] = "alpha"
packageJsonPath.dependencies["@blitzjs/auth"] = "alpha"
packageJsonPath.dependencies["blitz"] = "alpha"
packageJsonPath.dependencies["next"] = "latest"
packageJsonPath.dependencies["prisma"] = "latest"
@@ -98,6 +101,10 @@ const upgradeLegacy = async () => {
name: "update project's imports",
action: async () => {
const specialImports: Record<string, string> = {
NextApiHandler: "next",
NextApiRequest: "next",
NextApiResponse: "next",
Link: "next/link",
Image: "next/image",
Script: "next/script",
@@ -139,6 +146,7 @@ const upgradeLegacy = async () => {
useSession: "@blitzjs/auth",
useAuthenticatedSession: "@blitzjs/auth",
useRedirectAuthenticated: "@blitzjs/auth",
SessionContext: "@blitzjs/auth",
useAuthorize: "@blitzjs/auth",
useQuery: "@blitzjs/rpc",
useParam: "@blitzjs/next",
@@ -155,6 +163,7 @@ const upgradeLegacy = async () => {
dehydrate: "@blitzjs/rpc",
invoke: "@blitzjs/rpc",
Routes: "@blitzjs/next",
useRouterQuery: "next/router",
useRouter: "next/router",
Router: "next/router",
@@ -182,26 +191,16 @@ const upgradeLegacy = async () => {
parsedProgram.value.program.body.forEach((e: ImportDeclaration) => {
if (e.type === "ImportDeclaration") {
if (e.source.value === "blitz") {
const specifierIndexesToRemove: number[] = []
e.specifiers?.slice().forEach((specifier: any, index) => {
e.specifiers?.slice().forEach((specifier: any) => {
const importedName =
specifier.imported.type === "StringLiteral"
? specifier.imported.value
: specifier.imported.name
if (importedName in specialImports) {
parsedProgram.value.program.body.unshift(
j.importDeclaration(
[specifier],
j.stringLiteral(specialImports[importedName] as string),
),
)
specifierIndexesToRemove.push(index)
addNamedImport(program, importedName, specialImports[importedName]!)
removeImport(program, importedName, "blitz")
}
})
// Remove import from original blitz import deconstruct
specifierIndexesToRemove.reverse().forEach((index) => {
e.specifiers?.splice(index, 1)
})
// Removed left over "import 'blitz';"
if (!e.specifiers?.length) {
const index = parsedProgram.value.program.body.indexOf(e)
@@ -224,6 +223,7 @@ const upgradeLegacy = async () => {
const nextImage = findImport(program, "next/image")
const nextLink = findImport(program, "next/link")
const nextHead = findImport(program, "next/head")
const dynamic = findImport(program, "next/dynamic")
if (nextImage?.length) {
nextImage.remove()
@@ -261,6 +261,18 @@ const upgradeLegacy = async () => {
)
}
if (dynamic?.length) {
dynamic.remove()
program
.get()
.value.program.body.unshift(
j.importDeclaration(
[j.importDefaultSpecifier(j.identifier("dynamic"))],
j.stringLiteral("next/dynamic"),
),
)
}
fs.writeFileSync(path.join(path.resolve(file)), program.toSource())
})
},
@@ -300,30 +312,40 @@ const upgradeLegacy = async () => {
(file) => {
const program = getCollectionFromSource(file)
findIdentifier(program, "BlitzApiRequest")
.paths()
.forEach((path) => {
if (path.parentPath.parentPath.parentPath.value.type === "ImportDeclaration") {
path.parentPath.parentPath.parentPath.value.source.value = "next"
}
path.value.name = "NextApiRequest"
})
findIdentifier(program, "BlitzApiResponse")
.paths()
.forEach((path) => {
if (path.parentPath.parentPath.parentPath.value.type === "ImportDeclaration") {
path.parentPath.parentPath.parentPath.value.source.value = "next"
}
path.value.name = "NextApiResponse"
})
findIdentifier(program, "BlitzApiHandler")
.paths()
.forEach((path) => {
if (path.parentPath.parentPath.parentPath.value.type === "ImportDeclaration") {
path.parentPath.parentPath.parentPath.value.source.value = "next"
}
path.value.name = "NextApiHandler"
})
replaceImport(program, "blitz", "BlitzApiRequest", "next", "NextApiRequest")
replaceIdentifiers(program, "BlitzApiRequest", "NextApiRequest")
fs.writeFileSync(path.join(path.resolve(file)), program.toSource())
},
)
},
})
steps.push({
name: "change BlitzApiResponse to NextApiResponse",
action: async () => {
getAllFiles(path.join(appDir, "api"), [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach(
(file) => {
const program = getCollectionFromSource(file)
replaceImport(program, "blitz", "BlitzApiResponse", "next", "NextApiResponse")
replaceIdentifiers(program, "BlitzApiResponse", "NextApiResponse")
fs.writeFileSync(path.join(path.resolve(file)), program.toSource())
},
)
},
})
steps.push({
name: "change BlitzApiHandler to NextApiHandler",
action: async () => {
getAllFiles(path.join(appDir, "api"), [], [], [".ts", ".tsx", ".js", ".jsx"]).forEach(
(file) => {
const program = getCollectionFromSource(file)
replaceImport(program, "blitz", "BlitzApiHandler", "next", "NextApiHandler")
replaceIdentifiers(program, "BlitzApiHandler", "NextApiHandler")
fs.writeFileSync(path.join(path.resolve(file)), program.toSource())
},

View File

@@ -175,6 +175,14 @@ export function addNamedImport(
)
if (existingImport.length) {
// see if existing import has the same specifier
const existingSpecifier = existingImport.find(
j.ImportSpecifier,
(node) => node.imported.name === importStatement,
)
if (existingSpecifier.length) {
return
}
existingImport.get().value.specifiers.push(j.importSpecifier(j.identifier(importStatement)))
} else {
program
@@ -193,6 +201,23 @@ export function addNamedImport(
}
}
export function removeImport(
program: Collection<any>,
importStatement: string,
importFrom: string,
) {
const existingImport = program.find(
j.ImportDeclaration,
(node) => node.source.value === importFrom,
)
if (existingImport.length) {
existingImport.get().value.specifiers = existingImport
.get()
.value.specifiers.filter((specifier: any) => specifier.imported.name !== importStatement)
}
}
export function getAllFiles(
dirPath: string,
accFiles: string[] = [],
@@ -241,3 +266,44 @@ export function getCollectionFromSource(filename: string) {
},
})
}
export function replaceImport(
program: Collection<any>,
importFrom: string,
importStatement: string,
newImportFrom: string,
newImportStatement: string,
) {
const existingImport = findImport(program, importFrom)
existingImport?.forEach((node) => {
const getNode = node.get()
getNode.value.specifiers.slice().forEach((specifier: any, index: number) => {
const importedName =
specifier.imported.type === "StringLiteral"
? specifier.imported.value
: specifier.imported.name
if (importedName === importStatement) {
addNamedImport(program, newImportStatement, newImportFrom)
// make sure we don't have the same import twice
removeImport(program, newImportStatement, importFrom)
getNode.value.specifiers.splice(index, 1)
if (!getNode.value.specifiers?.length) {
const index = program.get().value.program.body.indexOf(getNode.value)
program.get().value.program.body.splice(index, 1)
}
}
})
})
}
export function replaceIdentifiers(
program: Collection<any>,
identifier: string,
newIdentifier: string,
) {
findIdentifier(program, identifier)
.paths()
.forEach((path) => {
path.value.name = "NextApiRequest"
})
}

View File

@@ -1,5 +1,13 @@
# @blitzjs/config
## 2.0.0-alpha.51
## 2.0.0-alpha.50
## 2.0.0-alpha.49
## 2.0.0-alpha.48
## 2.0.0-alpha.47
## 2.0.0-alpha.46

View File

@@ -1,7 +1,7 @@
{
"name": "@blitzjs/config",
"private": true,
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.9.1",

View File

@@ -1,5 +1,17 @@
# @blitzjs/generator
## 2.0.0-alpha.51
## 2.0.0-alpha.50
### Patch Changes
- c11f0401: Update Next.js version and addBasePath location
## 2.0.0-alpha.49
## 2.0.0-alpha.48
## 2.0.0-alpha.47
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/generator",
"version": "2.0.0-alpha.47",
"version": "2.0.0-alpha.51",
"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.47",
"@blitzjs/config": "2.0.0-alpha.51",
"@juanm04/cpx": "2.0.1",
"@types/babel__core": "7.1.19",
"@types/diff": "5.0.2",

View File

@@ -1,5 +1,3 @@
TODO
[![Blitz.js](https://raw.githubusercontent.com/blitz-js/art/master/github-cover-photo.png)](https://blitzjs.com)
This is a [Blitz.js](https://github.com/blitz-js/blitz) app.

View File

@@ -22,16 +22,16 @@
"*.{js}": ["eslint --fix"]
},
"dependencies": {
"@blitzjs/auth": "latest",
"@blitzjs/auth": "alpha",
"@blitzjs/next": "alpha",
"@blitzjs/rpc": "latest",
"@blitzjs/rpc": "alpha",
"@prisma/client": "3.9.0",
"blitz": "alpha",
"next": "12.1.6",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"zod": "3.10.1"
"zod": "3.17.3"
},
"devDependencies": {
"@next/bundle-analyzer": "12.0.8",

View File

@@ -22,16 +22,16 @@
"*.{js,ts,tsx}": ["eslint --fix"]
},
"dependencies": {
"@blitzjs/auth": "latest",
"@blitzjs/auth": "alpha",
"@blitzjs/next": "alpha",
"@blitzjs/rpc": "latest",
"@blitzjs/rpc": "alpha",
"@prisma/client": "3.9.0",
"blitz": "alpha",
"next": "12.1.6",
"next": "12.2.0",
"prisma": "3.9.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"zod": "3.10.1"
"zod": "3.17.3"
},
"devDependencies": {
"@next/bundle-analyzer": "12.0.8",

View File

@@ -20,7 +20,7 @@
"dependencies": {
"@blitzjs/next": "alpha",
"blitz": "alpha",
"next": "12.1.6",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"ts-node": "10.7.0"

View File

@@ -22,7 +22,7 @@
"dependencies": {
"@blitzjs/next": "alpha",
"blitz": "alpha",
"next": "12.1.6",
"next": "12.2.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"ts-node": "10.7.0"

View File

@@ -25,7 +25,7 @@
"@typescript-eslint/parser": "5.9.1"
},
"devDependencies": {
"@blitzjs/config": "2.0.0-alpha.47",
"@blitzjs/config": "2.0.0-alpha.51",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"react": "18.0.0",

29
patches/next@12.2.0.patch Normal file
View File

@@ -0,0 +1,29 @@
diff --git a/dist/build/webpack-config.js b/dist/build/webpack-config.js
index f9cab03b74411376898fbf5bd14c187236d9ad1b..f91706ec39cc53d642e477ecc10978b17d2b8bb4 100755
--- a/dist/build/webpack-config.js
+++ b/dist/build/webpack-config.js
@@ -910,6 +910,7 @@ async function getBaseWebpackConfig(dir, { buildId , config , compilerType , dev
"process.env.__NEXT_I18N_SUPPORT": JSON.stringify(!!config.i18n),
"process.env.__NEXT_I18N_DOMAINS": JSON.stringify((ref9 = config.i18n) == null ? void 0 : ref9.domains),
"process.env.__NEXT_ANALYTICS_ID": JSON.stringify(config.analyticsId),
+ 'process.env.__NEXT_REACT_ONRECOVERABLE_ERROR': config.reactOnRecoverableError,
...isNodeServer || isEdgeServer ? {
// Fix bad-actors in the npm ecosystem (e.g. `node-formidable`)
// This is typically found in unmaintained modules from the
diff --git a/dist/client/index.js b/dist/client/index.js
index 74242a1991af91cc44c2d4af3516f9225043f987..ed2f298d65a636fa79b3d580ad6e3aa0792efcfd 100755
--- a/dist/client/index.js
+++ b/dist/client/index.js
@@ -475,7 +475,11 @@ function renderReactElement(domEl, fn) {
if (process.env.__NEXT_REACT_ROOT) {
if (!reactRoot) {
// Unlike with createRoot, you don't need a separate root.render() call here
- reactRoot = ReactDOM.hydrateRoot(domEl, reactEl);
+ reactRoot = ReactDOM.hydrateRoot(domEl, reactEl, Boolean(process.env.__NEXT_REACT_ONRECOVERABLE_ERROR)
+ ? {
+ onRecoverableError: process.env.__NEXT_REACT_ONRECOVERABLE_ERROR,
+ }
+ : undefined);
// TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing
shouldHydrate = false;
} else {

316
pnpm-lock.yaml generated
View File

@@ -9,9 +9,8 @@ importers:
husky: 7.0.4
jsdom: ^19.0.0
lint-staged: 12.1.7
next: 12.1.6-canary.17
next: 12.2.0
only-allow: 1.1.0
patch-package: 6.4.7
prettier: ^2.5.1
prettier-plugin-prisma: 3.8.0
pretty-quick: 3.1.3
@@ -25,9 +24,8 @@ importers:
husky: 7.0.4
jsdom: 19.0.0
lint-staged: 12.1.7
next: 12.1.6-canary.17
next: 12.2.0
only-allow: 1.1.0
patch-package: 6.4.7
prettier: 2.6.2
prettier-plugin-prisma: 3.8.0_prettier@2.6.2
pretty-quick: 3.1.3_prettier@2.6.2
@@ -50,12 +48,12 @@ importers:
"@types/node": 17.0.16
"@types/preview-email": 2.0.1
"@types/react": 18.0.1
blitz: workspace:2.0.0-alpha.46
blitz: workspace:2.0.0-alpha.50
eslint: 7.32.0
husky: 7.0.4
jest: 27.5.1
lint-staged: 12.1.7
next: 12.1.6-canary.17
next: 12.2.0
prettier: ^2.5.1
prettier-plugin-prisma: 3.8.0
pretty-quick: 3.1.3
@@ -66,7 +64,7 @@ importers:
react-hook-form: 7.29.0
ts-node: 10.7.0
typescript: ^4.5.3
zod: 3.10.1
zod: 3.17.3
dependencies:
"@blitzjs/auth": link:../../packages/blitz-auth
"@blitzjs/config": link:../../packages/config
@@ -75,13 +73,13 @@ importers:
"@hookform/resolvers": 2.8.8_react-hook-form@7.29.0
"@prisma/client": 3.9.0_prisma@3.9.0
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
react-hook-form: 7.29.0_react@18.0.0
ts-node: 10.7.0_fxg3r7oju3tntkxsvleuiot4fa
zod: 3.10.1
zod: 3.17.3
devDependencies:
"@next/bundle-analyzer": 12.0.8
"@testing-library/react": 13.0.0_zpnidt7m3osuk7shl3s4oenomq
@@ -114,7 +112,7 @@ importers:
blitz: workspace:*
eslint: 7.32.0
jest: 27.5.1
next: 12.1.6-canary.17
next: 12.2.0
passport-mock-strategy: 2.0.0
passport-twitter: 1.0.4
prisma: 3.9.0
@@ -132,7 +130,7 @@ importers:
"@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
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
passport-mock-strategy: 2.0.0
passport-twitter: 1.0.4
prisma: 3.9.0
@@ -162,7 +160,7 @@ importers:
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
next: 12.1.6-canary.17
next: 12.2.0
node-fetch: 3.2.3
prisma: 3.9.0
react: 18.0.0
@@ -175,7 +173,7 @@ importers:
"@prisma/client": 3.9.0_prisma@3.9.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
@@ -206,7 +204,7 @@ importers:
eslint: 7.32.0
fs-extra: 10.0.1
get-port: 6.1.2
next: 12.1.6-canary.17
next: 12.2.0
node-fetch: 3.2.3
react: 18.0.0
react-dom: 18.0.0
@@ -216,7 +214,7 @@ importers:
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
devDependencies:
@@ -249,7 +247,7 @@ importers:
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
next: 12.1.6-canary.17
next: 12.2.0
node-fetch: 3.2.3
prisma: 3.9.0
react: 18.0.0
@@ -262,7 +260,7 @@ importers:
"@prisma/client": 3.9.0_prisma@3.9.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
@@ -296,7 +294,7 @@ importers:
eslint-config-next: latest
eslint-plugin-testing-library: 5.0.1
jsdom: ^19.0.0
next: 12.1.6-canary.17
next: 12.2.0
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0
@@ -309,7 +307,7 @@ importers:
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 3.9.0_prisma@3.9.0
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
@@ -339,7 +337,7 @@ importers:
blitz: workspace:*
eslint: 7.32.0
fs-extra: 10.0.1
next: 12.1.6-canary.17
next: 12.2.0
react: 18.0.0
react-dom: 18.0.0
typescript: ^4.5.3
@@ -349,7 +347,7 @@ importers:
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
devDependencies:
@@ -380,7 +378,7 @@ importers:
fs-extra: 10.0.1
get-port: 6.1.2
lowdb: 3.0.0
next: 12.1.6-canary.17
next: 12.2.0
node-fetch: 3.2.3
prisma: 3.9.0
react: 18.0.0
@@ -393,7 +391,7 @@ importers:
"@prisma/client": 3.9.0_prisma@3.9.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
@@ -471,8 +469,8 @@ importers:
packages/blitz:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/generator": 2.0.0-alpha.46
"@blitzjs/config": workspace:2.0.0-alpha.50
"@blitzjs/generator": 2.0.0-alpha.50
"@types/cookie": 0.4.1
"@types/cross-spawn": 6.0.2
"@types/debug": 4.1.7
@@ -521,7 +519,7 @@ importers:
unbuild: 0.6.9
watch: 1.0.2
watchpack: 2.1.1
zod: 3.10.1
zod: 3.17.3
dependencies:
"@blitzjs/generator": link:../generator
arg: 5.0.1
@@ -574,11 +572,11 @@ importers:
typescript: 4.6.3
unbuild: 0.6.9
watch: 1.0.2
zod: 3.10.1
zod: 3.17.3
packages/blitz-auth:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/config": workspace:2.0.0-alpha.50
"@testing-library/react": 13.0.0
"@testing-library/react-hooks": 7.0.2
"@types/b64-lite": 1.3.0
@@ -592,7 +590,7 @@ importers:
"@types/secure-password": 3.1.1
b64-lite: 1.4.0
bad-behavior: 1.0.1
blitz: 2.0.0-alpha.46
blitz: 2.0.0-alpha.50
cookie: 0.4.1
cookie-session: 2.0.0
debug: 4.3.3
@@ -643,8 +641,8 @@ importers:
packages/blitz-next:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/rpc": 2.0.0-alpha.46
"@blitzjs/config": workspace:2.0.0-alpha.50
"@blitzjs/rpc": 2.0.0-alpha.50
"@testing-library/dom": 8.13.0
"@testing-library/jest-dom": 5.16.3
"@testing-library/react": 13.0.0
@@ -655,13 +653,13 @@ 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.46
blitz: 2.0.0-alpha.50
cross-spawn: 7.0.3
debug: 4.3.3
find-up: 4.1.0
fs-extra: 10.0.1
hoist-non-react-statics: 3.3.2
next: 12.1.6-canary.17
next: 12.2.0
react: 18.0.0
react-dom: 18.0.0
react-query: 3.39.0
@@ -693,7 +691,7 @@ importers:
blitz: link:../blitz
cross-spawn: 7.0.3
find-up: 4.1.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
resolve-from: 5.0.0
@@ -704,17 +702,17 @@ importers:
packages/blitz-rpc:
specifiers:
"@blitzjs/auth": 2.0.0-alpha.46
"@blitzjs/config": workspace:2.0.0-alpha.46
"@blitzjs/auth": 2.0.0-alpha.50
"@blitzjs/config": workspace:2.0.0-alpha.50
"@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.46
blitz: 2.0.0-alpha.50
chalk: ^4.1.0
debug: 4.3.3
next: 12.1.6-canary.17
next: 12.2.0
react: 18.0.0
react-dom: 18.0.0
react-query: 3.39.0
@@ -722,7 +720,7 @@ importers:
typescript: ^4.5.3
unbuild: 0.6.9
watch: 1.0.2
zod: 3.10.1
zod: 3.17.3
dependencies:
"@blitzjs/auth": link:../blitz-auth
b64-lite: 1.4.0
@@ -731,14 +729,14 @@ importers:
debug: 4.3.3
react-query: 3.39.0_zpnidt7m3osuk7shl3s4oenomq
superjson: 1.8.0
zod: 3.10.1
zod: 3.17.3
devDependencies:
"@blitzjs/config": link:../config
"@types/debug": 4.1.7
"@types/react": 18.0.1
"@types/react-dom": 17.0.14
blitz: link:../blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
typescript: 4.6.3
@@ -753,12 +751,12 @@ importers:
"@babel/plugin-syntax-typescript": 7.17.12
"@babel/preset-env": 7.12.10
"@blitzjs/config": workspace:*
"@blitzjs/generator": 2.0.0-alpha.46
"@blitzjs/generator": 2.0.0-alpha.50
"@types/jscodeshift": 0.11.2
"@types/node": 17.0.16
arg: 5.0.1
ast-types: 0.14.2
blitz: 2.0.0-alpha.46
blitz: 2.0.0-alpha.50
chalk: ^4.1.0
cross-spawn: 7.0.3
debug: 4.3.3
@@ -813,7 +811,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.46
"@blitzjs/config": 2.0.0-alpha.50
"@juanm04/cpx": 2.0.1
"@mrleebo/prisma-ast": 0.2.6
"@types/babel__core": 7.1.19
@@ -904,7 +902,7 @@ importers:
packages/pkg-template:
specifiers:
"@blitzjs/config": 2.0.0-alpha.46
"@blitzjs/config": 2.0.0-alpha.50
"@types/react": 18.0.1
"@types/react-dom": 17.0.14
"@typescript-eslint/eslint-plugin": 5.9.1
@@ -3431,10 +3429,10 @@ packages:
- utf-8-validate
dev: true
/@next/env/12.1.6-canary.17:
/@next/env/12.2.0:
resolution:
{
integrity: sha512-/uCSXyxMDO37Rw1ngfI17/KH1iUWUIndRjYpRsfQDoJcL8yuCv8iB4CTw1cAdknZ/A48p0ukzJ/zktYvsa6tgg==,
integrity: sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==,
}
/@next/eslint-plugin-next/12.0.7:
@@ -3455,10 +3453,10 @@ packages:
glob: 7.1.7
dev: true
/@next/swc-android-arm-eabi/12.1.6-canary.17:
/@next/swc-android-arm-eabi/12.2.0:
resolution:
{
integrity: sha512-1L3HKWM+M0ruo2EbKFMYGEHDmLx6XrYAf/5gMAW0xw0vIoKIpPNupZgfl8D+fHjp07tL8lg6i8MYCooMH14ybQ==,
integrity: sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==,
}
engines: {node: ">= 10"}
cpu: [arm]
@@ -3466,10 +3464,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-android-arm64/12.1.6-canary.17:
/@next/swc-android-arm64/12.2.0:
resolution:
{
integrity: sha512-ZM+0ttYxOFeLOHDPifcBZViaa3i0Kro17U8ilLxAVdqPH9GUQkSJOcBumHsWWI4KDjEaB2brTz1d3Tf8IoZDUw==,
integrity: sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==,
}
engines: {node: ">= 10"}
cpu: [arm64]
@@ -3477,10 +3475,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-darwin-arm64/12.1.6-canary.17:
/@next/swc-darwin-arm64/12.2.0:
resolution:
{
integrity: sha512-UzuX8mIXwFDkG7nfVLE53Nw1grtgk42tep+1qpVvYteG++7+ARqYboJ2H5bQA9+WaB2iZmW3PU2yMo4B+543Aw==,
integrity: sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==,
}
engines: {node: ">= 10"}
cpu: [arm64]
@@ -3488,10 +3486,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-darwin-x64/12.1.6-canary.17:
/@next/swc-darwin-x64/12.2.0:
resolution:
{
integrity: sha512-mLt3rxUYgjavAaoyN234SmWJ1tv6hpZ1zn1ioUyV9g6qNR1TcuLDZeA+bx7wrdQsBuKrG31ssOF7W2gWYJZxCw==,
integrity: sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==,
}
engines: {node: ">= 10"}
cpu: [x64]
@@ -3499,10 +3497,21 @@ packages:
requiresBuild: true
optional: true
/@next/swc-linux-arm-gnueabihf/12.1.6-canary.17:
/@next/swc-freebsd-x64/12.2.0:
resolution:
{
integrity: sha512-7jkGI7nPGBrnCQfOhoe2spn/PNqMZbspdkX2kcbnIsUzor4Bm03ZFL76NTK7XO9q1H5wnsEeAftPCx8GExiaDA==,
integrity: sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==,
}
engines: {node: ">= 10"}
cpu: [x64]
os: [freebsd]
requiresBuild: true
optional: true
/@next/swc-linux-arm-gnueabihf/12.2.0:
resolution:
{
integrity: sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==,
}
engines: {node: ">= 10"}
cpu: [arm]
@@ -3510,10 +3519,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-linux-arm64-gnu/12.1.6-canary.17:
/@next/swc-linux-arm64-gnu/12.2.0:
resolution:
{
integrity: sha512-bxiZpiEuKfS0Oh7GdQJQUqY/z7vndBygQFkqtji62xnUmoI64LGxAwG3Wix+MfZqRu3OYv482fUKKBYsZ7zopQ==,
integrity: sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==,
}
engines: {node: ">= 10"}
cpu: [arm64]
@@ -3521,10 +3530,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-linux-arm64-musl/12.1.6-canary.17:
/@next/swc-linux-arm64-musl/12.2.0:
resolution:
{
integrity: sha512-IloJSboqPXy7Z6glS6M9l0J/rqSNe3Kv38651YZyvJ04oUEgCM+zZpO5bqwH2U5zvzbcuvIsnx01X8KuyT7pYQ==,
integrity: sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==,
}
engines: {node: ">= 10"}
cpu: [arm64]
@@ -3532,10 +3541,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-linux-x64-gnu/12.1.6-canary.17:
/@next/swc-linux-x64-gnu/12.2.0:
resolution:
{
integrity: sha512-Vj3Eo49sNxov3Uqp/F3M2Ae0fc0MEN/5OMQ7RdD0BDKRDtg6BZuie1u7XB6/dSUJ5/Yr/CYXpmFPxUaxptgL5g==,
integrity: sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==,
}
engines: {node: ">= 10"}
cpu: [x64]
@@ -3543,10 +3552,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-linux-x64-musl/12.1.6-canary.17:
/@next/swc-linux-x64-musl/12.2.0:
resolution:
{
integrity: sha512-tOaVOurrFWyPezjuYgEHjuo1rRNdDDRe1X+Ypl7jjGk39uPnnAJRYOhItEUmuIJI9gQKsx+Ls1FvBT4N2yeLXA==,
integrity: sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==,
}
engines: {node: ">= 10"}
cpu: [x64]
@@ -3554,10 +3563,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-win32-arm64-msvc/12.1.6-canary.17:
/@next/swc-win32-arm64-msvc/12.2.0:
resolution:
{
integrity: sha512-oOIirLj/xhq1pQz6anbRBowleRR+AGd1ZFP3BS8e2ypdjgzaphY/U7WonffDA0JSAcs4Pzt0vYmkXmf52VSBaA==,
integrity: sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==,
}
engines: {node: ">= 10"}
cpu: [arm64]
@@ -3565,10 +3574,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-win32-ia32-msvc/12.1.6-canary.17:
/@next/swc-win32-ia32-msvc/12.2.0:
resolution:
{
integrity: sha512-Zld1RyPjY+e8E1DKCmmkj1qRf61dmg8o6efp3vtzg0qfUaG8mIBsVrghLGSRMla9x+/iKKGqjvw/teJWAiqttw==,
integrity: sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==,
}
engines: {node: ">= 10"}
cpu: [ia32]
@@ -3576,10 +3585,10 @@ packages:
requiresBuild: true
optional: true
/@next/swc-win32-x64-msvc/12.1.6-canary.17:
/@next/swc-win32-x64-msvc/12.2.0:
resolution:
{
integrity: sha512-gAj3x6WqHPAhQY0Gq5F4LakkHIe61KkkwN4DnMf/tgHM9G1H+babeYYUjSKZvWl1X7CJsdZq/LGzXhmG4PQDyw==,
integrity: sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==,
}
engines: {node: ">= 10"}
cpu: [x64]
@@ -3839,6 +3848,14 @@ packages:
dependencies:
"@sinonjs/commons": 1.8.3
/@swc/helpers/0.4.2:
resolution:
{
integrity: sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==,
}
dependencies:
tslib: 2.4.0
/@szmarczak/http-timer/1.1.2:
resolution:
{
@@ -5105,13 +5122,6 @@ packages:
- supports-color
dev: true
/@yarnpkg/lockfile/1.1.0:
resolution:
{
integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==,
}
dev: false
/abab/2.0.6:
resolution:
{
@@ -6244,13 +6254,6 @@ packages:
- supports-color
dev: true
/ci-info/2.0.0:
resolution:
{
integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==,
}
dev: false
/ci-info/3.3.1:
resolution:
{
@@ -9291,15 +9294,6 @@ packages:
locate-path: 6.0.0
path-exists: 4.0.0
/find-yarn-workspace-root/2.0.0:
resolution:
{
integrity: sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==,
}
dependencies:
micromatch: 4.0.5
dev: false
/find-yarn-workspace-root2/1.2.16:
resolution:
{
@@ -10302,16 +10296,6 @@ packages:
}
engines: {node: ">= 0.4"}
/is-ci/2.0.0:
resolution:
{
integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==,
}
hasBin: true
dependencies:
ci-info: 2.0.0
dev: false
/is-ci/3.0.1:
resolution:
{
@@ -10390,6 +10374,7 @@ packages:
}
engines: {node: ">=8"}
hasBin: true
dev: true
/is-expression/4.0.0:
resolution:
@@ -10683,6 +10668,7 @@ packages:
engines: {node: ">=8"}
dependencies:
is-docker: 2.2.1
dev: true
/is2/2.0.7:
resolution:
@@ -11745,15 +11731,6 @@ packages:
engines: {node: ">=0.10.0"}
dev: false
/klaw-sync/6.0.0:
resolution:
{
integrity: sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==,
}
dependencies:
graceful-fs: 4.2.10
dev: false
/kleur/3.0.3:
resolution:
{
@@ -12739,10 +12716,10 @@ packages:
}
dev: false
/next/12.1.6-canary.17:
/next/12.2.0:
resolution:
{
integrity: sha512-Aw2snJwacpeHiT9bOIH2hmu1UM5PigklTRnZfKOsozJ4ZrapxG2bk/DMc1t/nkn+DH6kSYwWJXMIKfysP/vymg==,
integrity: sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==,
}
engines: {node: ">=12.22.0"}
hasBin: true
@@ -12760,32 +12737,35 @@ packages:
sass:
optional: true
dependencies:
"@next/env": 12.1.6-canary.17
"@next/env": 12.2.0
"@swc/helpers": 0.4.2
caniuse-lite: 1.0.30001339
postcss: 8.4.5
styled-jsx: 5.0.2
use-sync-external-store: 1.1.0
optionalDependencies:
"@next/swc-android-arm-eabi": 12.1.6-canary.17
"@next/swc-android-arm64": 12.1.6-canary.17
"@next/swc-darwin-arm64": 12.1.6-canary.17
"@next/swc-darwin-x64": 12.1.6-canary.17
"@next/swc-linux-arm-gnueabihf": 12.1.6-canary.17
"@next/swc-linux-arm64-gnu": 12.1.6-canary.17
"@next/swc-linux-arm64-musl": 12.1.6-canary.17
"@next/swc-linux-x64-gnu": 12.1.6-canary.17
"@next/swc-linux-x64-musl": 12.1.6-canary.17
"@next/swc-win32-arm64-msvc": 12.1.6-canary.17
"@next/swc-win32-ia32-msvc": 12.1.6-canary.17
"@next/swc-win32-x64-msvc": 12.1.6-canary.17
"@next/swc-android-arm-eabi": 12.2.0
"@next/swc-android-arm64": 12.2.0
"@next/swc-darwin-arm64": 12.2.0
"@next/swc-darwin-x64": 12.2.0
"@next/swc-freebsd-x64": 12.2.0
"@next/swc-linux-arm-gnueabihf": 12.2.0
"@next/swc-linux-arm64-gnu": 12.2.0
"@next/swc-linux-arm64-musl": 12.2.0
"@next/swc-linux-x64-gnu": 12.2.0
"@next/swc-linux-x64-musl": 12.2.0
"@next/swc-win32-arm64-msvc": 12.2.0
"@next/swc-win32-ia32-msvc": 12.2.0
"@next/swc-win32-x64-msvc": 12.2.0
transitivePeerDependencies:
- "@babel/core"
- babel-plugin-macros
dev: false
/next/12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq:
/next/12.2.0_zpnidt7m3osuk7shl3s4oenomq:
resolution:
{
integrity: sha512-Aw2snJwacpeHiT9bOIH2hmu1UM5PigklTRnZfKOsozJ4ZrapxG2bk/DMc1t/nkn+DH6kSYwWJXMIKfysP/vymg==,
integrity: sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==,
}
engines: {node: ">=12.22.0"}
hasBin: true
@@ -12803,25 +12783,28 @@ packages:
sass:
optional: true
dependencies:
"@next/env": 12.1.6-canary.17
"@next/env": 12.2.0
"@swc/helpers": 0.4.2
caniuse-lite: 1.0.30001339
postcss: 8.4.5
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
styled-jsx: 5.0.2_react@18.0.0
use-sync-external-store: 1.1.0_react@18.0.0
optionalDependencies:
"@next/swc-android-arm-eabi": 12.1.6-canary.17
"@next/swc-android-arm64": 12.1.6-canary.17
"@next/swc-darwin-arm64": 12.1.6-canary.17
"@next/swc-darwin-x64": 12.1.6-canary.17
"@next/swc-linux-arm-gnueabihf": 12.1.6-canary.17
"@next/swc-linux-arm64-gnu": 12.1.6-canary.17
"@next/swc-linux-arm64-musl": 12.1.6-canary.17
"@next/swc-linux-x64-gnu": 12.1.6-canary.17
"@next/swc-linux-x64-musl": 12.1.6-canary.17
"@next/swc-win32-arm64-msvc": 12.1.6-canary.17
"@next/swc-win32-ia32-msvc": 12.1.6-canary.17
"@next/swc-win32-x64-msvc": 12.1.6-canary.17
"@next/swc-android-arm-eabi": 12.2.0
"@next/swc-android-arm64": 12.2.0
"@next/swc-darwin-arm64": 12.2.0
"@next/swc-darwin-x64": 12.2.0
"@next/swc-freebsd-x64": 12.2.0
"@next/swc-linux-arm-gnueabihf": 12.2.0
"@next/swc-linux-arm64-gnu": 12.2.0
"@next/swc-linux-arm64-musl": 12.2.0
"@next/swc-linux-x64-gnu": 12.2.0
"@next/swc-linux-x64-musl": 12.2.0
"@next/swc-win32-arm64-msvc": 12.2.0
"@next/swc-win32-ia32-msvc": 12.2.0
"@next/swc-win32-x64-msvc": 12.2.0
transitivePeerDependencies:
- "@babel/core"
- babel-plugin-macros
@@ -13157,6 +13140,7 @@ packages:
dependencies:
is-docker: 2.2.1
is-wsl: 2.2.0
dev: true
/opener/1.5.2:
resolution:
@@ -13547,29 +13531,6 @@ packages:
pause: 0.0.1
dev: false
/patch-package/6.4.7:
resolution:
{
integrity: sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==,
}
engines: {npm: ">5"}
hasBin: true
dependencies:
"@yarnpkg/lockfile": 1.1.0
chalk: 2.4.2
cross-spawn: 6.0.5
find-yarn-workspace-root: 2.0.0
fs-extra: 7.0.1
is-ci: 2.0.0
klaw-sync: 6.0.0
minimist: 1.2.6
open: 7.4.2
rimraf: 2.6.3
semver: 5.7.1
slash: 2.0.0
tmp: 0.0.33
dev: false
/path-dirname/1.0.2:
resolution:
{
@@ -16633,6 +16594,25 @@ packages:
querystring: 0.2.0
dev: false
/use-sync-external-store/1.1.0:
resolution:
{
integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==,
}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dev: false
/use-sync-external-store/1.1.0_react@18.0.0:
resolution:
{
integrity: sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==,
}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
react: 18.0.0
/use/3.1.1:
resolution:
{
@@ -17360,8 +17340,8 @@ packages:
}
engines: {node: ">=10"}
/zod/3.10.1:
/zod/3.17.3:
resolution:
{
integrity: sha512-ZnIzDr3vhppKW7yTAlvUQ7QJir5yoL14DgZ6DjYNb4/D4DxFdZeysF6Q5hAahU7KXtaiTgYkGO/qiAD83YN3ig==,
integrity: sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg==,
}