1
0
mirror of synced 2026-02-04 12:08:33 -05:00

Compare commits

...

12 Commits

Author SHA1 Message Date
github-actions[bot]
ac9c4cebc8 Version Packages (alpha) (#3514)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-07 15:43:57 +02:00
Dillon Raphael
a7e37c58db Export BlitzProvider from blitz-next (#3513)
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
2022-07-07 15:36:52 +02:00
Brandon Bayer
b0d2505a85 Update CODEOWNERS 2022-07-06 23:54:29 +02:00
github-actions[bot]
024cd819e3 Version Packages (alpha) (#3512)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-07-06 19:25:31 +02:00
Dillon Raphael
12cb7a727d Upgrade Prisma to v4.0.0 (#3511)
* Upgrade Prisma to v4.0.0

* Changeset
2022-07-06 19:21:36 +02:00
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
53 changed files with 527 additions and 301 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,5 @@
---
"@blitzjs/next": patch
---
Export BlitzProvider from @blitzjs/next

View File

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

View File

@@ -43,6 +43,7 @@
"healthy-rice-shout",
"hot-drinks-approve",
"late-steaks-give",
"lemon-games-press",
"lovely-colts-share",
"lucky-cows-try",
"modern-cameras-pull",
@@ -50,6 +51,7 @@
"nervous-beds-travel",
"nervous-dolls-rule",
"new-coats-turn",
"nice-deers-dream",
"nice-starfishes-live",
"nine-onions-admire",
"ninety-pets-heal",
@@ -59,9 +61,11 @@
"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",
@@ -73,6 +77,7 @@
"strong-apes-reply",
"stupid-walls-sell",
"swift-drinks-dress",
"tall-meals-learn",
"tame-keys-reply",
"tasty-news-collect",
"ten-hairs-listen",

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,5 @@
---
"@blitzjs/generator": patch
---
Upgrade Prisma to v4.0.0

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.49",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"blitz": "workspace:2.0.0-alpha.53",
"next": "12.2.0",
"prisma": "4.0.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

@@ -25,10 +25,10 @@
"@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",
"prisma": "4.0.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"ts-node": "10.7.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,8 +19,8 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.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,8 +19,8 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.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,8 +14,8 @@
"@blitzjs/rpc": "workspace:*",
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"react-query": "3.39.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,8 +22,8 @@
"@prisma/client": "3.9.0",
"blitz": "workspace:*",
"lowdb": "3.0.0",
"next": "12.1.6-canary.17",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.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,29 @@
# @blitzjs/auth
## 2.0.0-alpha.53
### Patch Changes
- blitz@2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- blitz@2.0.0-alpha.52
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/auth",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"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.49",
"blitz": "2.0.0-alpha.53",
"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.49",
"@blitzjs/config": "workspace:2.0.0-alpha.53",
"@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,32 @@
# @blitzjs/next
## 2.0.0-alpha.53
### Patch Changes
- a7e37c58: Export BlitzProvider from @blitzjs/next
- @blitzjs/rpc@2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- @blitzjs/rpc@2.0.0-alpha.52
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/next",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"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.49",
"@blitzjs/rpc": "2.0.0-alpha.53",
"@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.49",
"@blitzjs/config": "workspace:2.0.0-alpha.53",
"@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.49",
"blitz": "2.0.0-alpha.53",
"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

@@ -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>
)
@@ -89,14 +85,14 @@ export type BlitzLayout<P = {}> = React.ComponentType<P> & {
export type AppProps<P = {}> = AppPropsType<Router, P> & {
Component: BlitzPage
}
const BlitzProvider = ({
client,
export const BlitzProvider = ({
client = globalThis.queryClient,
contextSharing = false,
dehydratedState,
hydrateOptions,
children,
}: BlitzProviderProps) => {
if (globalThis.queryClient) {
if (client) {
return (
<QueryClientProvider
client={client || globalThis.queryClient}

View File

@@ -1,5 +1,34 @@
# @blitzjs/rpc
## 2.0.0-alpha.53
### Patch Changes
- @blitzjs/auth@2.0.0-alpha.53
- blitz@2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- blitz@2.0.0-alpha.52
- @blitzjs/auth@2.0.0-alpha.52
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/rpc",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"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.49",
"@blitzjs/auth": "2.0.0-alpha.53",
"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.49",
"@blitzjs/config": "workspace:2.0.0-alpha.53",
"@types/debug": "4.1.7",
"@types/react": "18.0.1",
"@types/react-dom": "17.0.14",
"blitz": "2.0.0-alpha.49",
"next": "12.1.6-canary.17",
"blitz": "2.0.0-alpha.53",
"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.49",
"next": "*"
"blitz": "2.0.0-alpha.53",
"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

View File

@@ -1,5 +1,31 @@
# blitz
## 2.0.0-alpha.53
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- Updated dependencies [12cb7a72]
- @blitzjs/generator@2.0.0-alpha.52
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "blitz",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"scripts": {
"build": "unbuild",
"dev": "watch unbuild src --wait=0.2",
@@ -23,7 +23,7 @@
"blitz": "bin/blitz"
},
"dependencies": {
"@blitzjs/generator": "2.0.0-alpha.49",
"@blitzjs/generator": "2.0.0-alpha.53",
"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.49",
"@blitzjs/config": "workspace:2.0.0-alpha.53",
"@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

@@ -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,36 @@
# @blitzjs/codemod
## 2.0.0-alpha.53
### Patch Changes
- @blitzjs/generator@2.0.0-alpha.53
- blitz@2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- Updated dependencies [12cb7a72]
- @blitzjs/generator@2.0.0-alpha.52
- blitz@2.0.0-alpha.52
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/codemod",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"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.49",
"@blitzjs/generator": "2.0.0-alpha.53",
"arg": "5.0.1",
"blitz": "2.0.0-alpha.49",
"blitz": "2.0.0-alpha.53",
"chalk": "^4.1.0",
"cross-spawn": "7.0.3",
"debug": "4.3.3",

View File

@@ -85,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"
@@ -223,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()
@@ -260,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())
})
},
@@ -331,7 +344,6 @@ const upgradeLegacy = async () => {
(file) => {
const program = getCollectionFromSource(file)
// BlitzApiHandler -> NextApiHandler
replaceImport(program, "blitz", "BlitzApiHandler", "next", "NextApiHandler")
replaceIdentifiers(program, "BlitzApiHandler", "NextApiHandler")

View File

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

View File

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

View File

@@ -1,5 +1,21 @@
# @blitzjs/generator
## 2.0.0-alpha.53
## 2.0.0-alpha.52
### Patch Changes
- 12cb7a72: Upgrade Prisma to v4.0.0
## 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

View File

@@ -1,6 +1,6 @@
{
"name": "@blitzjs/generator",
"version": "2.0.0-alpha.49",
"version": "2.0.0-alpha.53",
"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.49",
"@blitzjs/config": "2.0.0-alpha.53",
"@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",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.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",
"prisma": "3.9.0",
"next": "12.2.0",
"prisma": "4.0.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.49",
"@blitzjs/config": "2.0.0-alpha.53",
"@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 {

368
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,38 +48,38 @@ importers:
"@types/node": 17.0.16
"@types/preview-email": 2.0.1
"@types/react": 18.0.1
blitz: workspace:2.0.0-alpha.48
blitz: workspace:2.0.0-alpha.52
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
preview-email: 3.x
prisma: 3.9.0
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
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
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@hookform/resolvers": 2.8.8_react-hook-form@7.29.0
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.0
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 4.0.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,10 +112,10 @@ 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
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
ts-node: 10.7.0
@@ -127,15 +125,15 @@ importers:
"@blitzjs/config": link:../../packages/config
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.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
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
passport-mock-strategy: 2.0.0
passport-twitter: 1.0.4
prisma: 3.9.0
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
ts-node: 10.7.0_typescript@4.6.3
@@ -162,9 +160,9 @@ 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
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
typescript: ^4.5.3
@@ -172,11 +170,11 @@ importers:
"@blitzjs/auth": link:../../packages/blitz-auth
"@blitzjs/config": link:../../packages/config
"@blitzjs/next": link:../../packages/blitz-next
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
devDependencies:
@@ -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,9 +247,9 @@ 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
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
typescript: ^4.5.3
@@ -259,11 +257,11 @@ importers:
"@blitzjs/auth": link:../../packages/blitz-auth
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
devDependencies:
@@ -296,8 +294,8 @@ importers:
eslint-config-next: latest
eslint-plugin-testing-library: 5.0.1
jsdom: ^19.0.0
next: 12.1.6-canary.17
prisma: 3.9.0
next: 12.2.0
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
react-query: 3.39.0
@@ -307,10 +305,10 @@ importers:
"@blitzjs/config": link:../../packages/config
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.0
blitz: link:../../packages/blitz
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
react-query: 3.39.0_zpnidt7m3osuk7shl3s4oenomq
@@ -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,9 +378,9 @@ 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
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0
typescript: ^4.5.3
@@ -390,11 +388,11 @@ importers:
"@blitzjs/auth": link:../../packages/blitz-auth
"@blitzjs/next": link:../../packages/blitz-next
"@blitzjs/rpc": link:../../packages/blitz-rpc
"@prisma/client": 3.9.0_prisma@3.9.0
"@prisma/client": 3.9.0_prisma@4.0.0
blitz: link:../../packages/blitz
lowdb: 3.0.0
next: 12.1.6-canary.17_zpnidt7m3osuk7shl3s4oenomq
prisma: 3.9.0
next: 12.2.0_zpnidt7m3osuk7shl3s4oenomq
prisma: 4.0.0
react: 18.0.0
react-dom: 18.0.0_react@18.0.0
devDependencies:
@@ -471,8 +469,8 @@ importers:
packages/blitz:
specifiers:
"@blitzjs/config": workspace:2.0.0-alpha.48
"@blitzjs/generator": 2.0.0-alpha.48
"@blitzjs/config": workspace:2.0.0-alpha.52
"@blitzjs/generator": 2.0.0-alpha.52
"@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.48
"@blitzjs/config": workspace:2.0.0-alpha.52
"@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.48
blitz: 2.0.0-alpha.52
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.48
"@blitzjs/rpc": 2.0.0-alpha.48
"@blitzjs/config": workspace:2.0.0-alpha.52
"@blitzjs/rpc": 2.0.0-alpha.52
"@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.48
blitz: 2.0.0-alpha.52
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.48
"@blitzjs/config": workspace:2.0.0-alpha.48
"@blitzjs/auth": 2.0.0-alpha.52
"@blitzjs/config": workspace:2.0.0-alpha.52
"@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.48
blitz: 2.0.0-alpha.52
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.48
"@blitzjs/generator": 2.0.0-alpha.52
"@types/jscodeshift": 0.11.2
"@types/node": 17.0.16
arg: 5.0.1
ast-types: 0.14.2
blitz: 2.0.0-alpha.48
blitz: 2.0.0-alpha.52
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.48
"@blitzjs/config": 2.0.0-alpha.52
"@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.48
"@blitzjs/config": 2.0.0-alpha.52
"@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]
@@ -3629,7 +3638,7 @@ packages:
}
dev: true
/@prisma/client/3.9.0_prisma@3.9.0:
/@prisma/client/3.9.0_prisma@4.0.0:
resolution:
{
integrity: sha512-PByWVI7l+KYUQL/pqR81363qhUh3LhYMIYn2czz5slbt3JC6aAk+Wm7PE9nalqSE6s4xSIYdHj6N0yTNqr86sA==,
@@ -3643,7 +3652,7 @@ packages:
optional: true
dependencies:
"@prisma/engines-version": 3.9.0-58.bcc2ff906db47790ee902e7bbc76d7ffb1893009
prisma: 3.9.0
prisma: 4.0.0
dev: false
/@prisma/engines-version/3.9.0-58.bcc2ff906db47790ee902e7bbc76d7ffb1893009:
@@ -3653,10 +3662,10 @@ packages:
}
dev: false
/@prisma/engines/3.9.0-58.bcc2ff906db47790ee902e7bbc76d7ffb1893009:
/@prisma/engines/3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11:
resolution:
{
integrity: sha512-qM+uJbkelB21bnK44gYE049YTHIjHysOuj0mj5U2gDGyNLfmiazlggzFPCgEjgme4U5YB2tYs6Z5Hq08Kl8pjA==,
integrity: sha512-u/rG4lDHALolWBLr3yebZ+N2qImp3SDMcu7bHNJuRDaYvYEXy/MqfNRNEgd9GoPsXL3gofYf0VzJf2AmCG3YVw==,
}
requiresBuild: true
dev: false
@@ -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:
{
@@ -13950,16 +13911,16 @@ packages:
- supports-color
dev: true
/prisma/3.9.0:
/prisma/4.0.0:
resolution:
{
integrity: sha512-KppIukAgJH6o4q9CRYQUqpJUFt8XOK+5eTlv9W+w/SnaSzar+zbT7RCxspCkoGGVSASAQDMYWSKm3QON/o5ENg==,
integrity: sha512-Dtsar03XpCBkcEb2ooGWO/WcgblDTLzGhPcustbehwlFXuTMliMDRzXsfygsgYwQoZnAUKRd1rhpvBNEUziOVw==,
}
engines: {node: ">=12.6"}
engines: {node: ">=14.17"}
hasBin: true
requiresBuild: true
dependencies:
"@prisma/engines": 3.9.0-58.bcc2ff906db47790ee902e7bbc76d7ffb1893009
"@prisma/engines": 3.16.0-49.da41d2bb3406da22087b849f0e911199ba4fbf11
dev: false
/process-nextick-args/2.0.1:
@@ -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==,
}