Compare commits
19 Commits
@blitzjs/c
...
@blitzjs/c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72addbbeed | ||
|
|
1c809094fd | ||
|
|
54a66a95dc | ||
|
|
8d9ea00e1d | ||
|
|
ab4d9de70f | ||
|
|
8f166a5db0 | ||
|
|
df7cee84ad | ||
|
|
b364af7f57 | ||
|
|
20fc9f80f4 | ||
|
|
80e1ead7cb | ||
|
|
a3bbe6ce3f | ||
|
|
348fd6f5e4 | ||
|
|
cacb65d633 | ||
|
|
f397cc2036 | ||
|
|
ffa7b5ccc2 | ||
|
|
a961aff881 | ||
|
|
ac9c4cebc8 | ||
|
|
a7e37c58db | ||
|
|
b0d2505a85 |
5
.changeset/cool-horses-check.md
Normal file
5
.changeset/cool-horses-check.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Fixes issue when generating a new blitz app with the form flag that ends up installing the wrong form library
|
||||
5
.changeset/curly-seas-serve.md
Normal file
5
.changeset/curly-seas-serve.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Check for new versions when running CLI
|
||||
5
.changeset/good-apes-drum.md
Normal file
5
.changeset/good-apes-drum.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Fixes wrong import of the db module in `blitz db seed` command function
|
||||
5
.changeset/heavy-apes-judge.md
Normal file
5
.changeset/heavy-apes-judge.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Show all blitz packages when running `blitz version` command
|
||||
5
.changeset/lemon-seas-push.md
Normal file
5
.changeset/lemon-seas-push.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/generator": patch
|
||||
---
|
||||
|
||||
Don't try to copy RPC API endpoint in templates that don't have it
|
||||
6
.changeset/moody-bags-walk.md
Normal file
6
.changeset/moody-bags-walk.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Fix redirectAuthenticatedTo errors
|
||||
5
.changeset/nice-deers-dream.md
Normal file
5
.changeset/nice-deers-dream.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
---
|
||||
|
||||
Export BlitzProvider from @blitzjs/next
|
||||
7
.changeset/nine-birds-confess.md
Normal file
7
.changeset/nine-birds-confess.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
"@blitzjs/rpc": patch
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Fix SSP / SP not prefetching queries correctly
|
||||
5
.changeset/olive-sheep-rhyme.md
Normal file
5
.changeset/olive-sheep-rhyme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/generator": patch
|
||||
---
|
||||
|
||||
Add missing lint deps to the new app templates
|
||||
5
.changeset/perfect-eyes-repeat.md
Normal file
5
.changeset/perfect-eyes-repeat.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/rpc": patch
|
||||
---
|
||||
|
||||
Fix pipe resolver return type
|
||||
@@ -25,6 +25,8 @@
|
||||
"breezy-cameras-double",
|
||||
"bright-mangos-run",
|
||||
"cool-doors-invent",
|
||||
"cool-horses-check",
|
||||
"curly-seas-serve",
|
||||
"dirty-monkeys-greet",
|
||||
"eleven-humans-sort",
|
||||
"empty-berries-rule",
|
||||
@@ -37,25 +39,33 @@
|
||||
"four-meals-fry",
|
||||
"fuzzy-jars-admire",
|
||||
"gentle-dogs-reply",
|
||||
"good-apes-drum",
|
||||
"good-insects-wink",
|
||||
"great-months-train",
|
||||
"green-papayas-do",
|
||||
"healthy-rice-shout",
|
||||
"heavy-apes-judge",
|
||||
"hot-drinks-approve",
|
||||
"late-steaks-give",
|
||||
"lemon-games-press",
|
||||
"lemon-seas-push",
|
||||
"lovely-colts-share",
|
||||
"lucky-cows-try",
|
||||
"modern-cameras-pull",
|
||||
"moody-bags-walk",
|
||||
"moody-squids-cheer",
|
||||
"nervous-beds-travel",
|
||||
"nervous-dolls-rule",
|
||||
"new-coats-turn",
|
||||
"nice-deers-dream",
|
||||
"nice-starfishes-live",
|
||||
"nine-birds-confess",
|
||||
"nine-onions-admire",
|
||||
"ninety-pets-heal",
|
||||
"olive-bees-buy",
|
||||
"olive-feet-rhyme",
|
||||
"olive-sheep-rhyme",
|
||||
"perfect-eyes-repeat",
|
||||
"plenty-bottles-swim",
|
||||
"poor-peas-lick",
|
||||
"poor-penguins-look",
|
||||
@@ -70,9 +80,11 @@
|
||||
"sharp-falcons-begin",
|
||||
"shy-olives-hang",
|
||||
"silent-colts-reply",
|
||||
"slimy-needles-taste",
|
||||
"slow-walls-poke",
|
||||
"small-socks-confess",
|
||||
"smooth-planets-admire",
|
||||
"soft-adults-smell",
|
||||
"strong-apes-reply",
|
||||
"stupid-walls-sell",
|
||||
"swift-drinks-dress",
|
||||
@@ -84,7 +96,10 @@
|
||||
"tender-pianos-check",
|
||||
"thick-parrots-float",
|
||||
"thirty-countries-build",
|
||||
"tidy-clouds-smoke",
|
||||
"twelve-lemons-smile",
|
||||
"twenty-beans-pump",
|
||||
"two-carpets-rhyme",
|
||||
"two-kiwis-help",
|
||||
"two-tigers-type",
|
||||
"unlucky-papayas-sleep",
|
||||
|
||||
6
.changeset/slimy-needles-taste.md
Normal file
6
.changeset/slimy-needles-taste.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
"@blitzjs/generator": patch
|
||||
---
|
||||
|
||||
Add jest.config.js to newly generated typescript apps
|
||||
5
.changeset/soft-adults-smell.md
Normal file
5
.changeset/soft-adults-smell.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/auth": patch
|
||||
---
|
||||
|
||||
Fix `Page.authenticate` not working for layout components
|
||||
5
.changeset/tidy-clouds-smoke.md
Normal file
5
.changeset/tidy-clouds-smoke.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
Fix routes manifest showing duplicates for non queries|resolvers reso…
|
||||
5
.changeset/twelve-lemons-smile.md
Normal file
5
.changeset/twelve-lemons-smile.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@blitzjs/next": patch
|
||||
---
|
||||
|
||||
Fix prefetching multiple queries causes only the last one to be passed to page
|
||||
5
.changeset/two-carpets-rhyme.md
Normal file
5
.changeset/two-carpets-rhyme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"blitz": patch
|
||||
---
|
||||
|
||||
During `blitz new` if project name argument is set to "." change it to current folder name
|
||||
2
.npmrc
2
.npmrc
@@ -6,4 +6,4 @@ public-hoist-pattern[]=*types*
|
||||
public-hoist-pattern[]=*eslint*
|
||||
public-hoist-pattern[]=@prettier/plugin-*
|
||||
public-hoist-pattern[]=*prettier-plugin-*
|
||||
strict-peer-dependencies=false
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import React from "react"
|
||||
import Head from "next/head"
|
||||
import React, { FC } from "react"
|
||||
import { BlitzLayout } from "@blitzjs/next"
|
||||
|
||||
const Layout: FC<{ title?: string; children?: React.ReactNode }> = ({ title, children }) => {
|
||||
const Layout: BlitzLayout<{ title?: string; children?: React.ReactNode }> = ({
|
||||
title,
|
||||
children,
|
||||
}) => {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"@blitzjs/rpc": "workspace:*",
|
||||
"@hookform/resolvers": "2.8.8",
|
||||
"@prisma/client": "3.9.0",
|
||||
"blitz": "workspace:2.0.0-alpha.52",
|
||||
"blitz": "workspace:2.0.0-alpha.55",
|
||||
"next": "12.2.0",
|
||||
"prisma": "4.0.0",
|
||||
"react": "18.0.0",
|
||||
@@ -46,7 +46,10 @@
|
||||
"@types/node": "17.0.16",
|
||||
"@types/preview-email": "2.0.1",
|
||||
"@types/react": "18.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "5.9.1",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-next": "12.2.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"husky": "7.0.4",
|
||||
"jest": "27.5.1",
|
||||
"lint-staged": "12.1.7",
|
||||
|
||||
@@ -1,5 +1,32 @@
|
||||
# @blitzjs/auth
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 1c809094: Fix `Page.authenticate` not working for layout components
|
||||
- Updated dependencies [8f166a5d]
|
||||
- Updated dependencies [54a66a95]
|
||||
- blitz@2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [f397cc20]
|
||||
- Updated dependencies [cacb65d6]
|
||||
- Updated dependencies [348fd6f5]
|
||||
- Updated dependencies [20fc9f80]
|
||||
- Updated dependencies [a3bbe6ce]
|
||||
- Updated dependencies [ffa7b5cc]
|
||||
- blitz@2.0.0-alpha.54
|
||||
|
||||
## 2.0.0-alpha.53
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- blitz@2.0.0-alpha.53
|
||||
|
||||
## 2.0.0-alpha.52
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/auth",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"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.52",
|
||||
"blitz": "2.0.0-alpha.55",
|
||||
"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.52",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.55",
|
||||
"@testing-library/react": "13.0.0",
|
||||
"@testing-library/react-hooks": "7.0.2",
|
||||
"@types/cookie": "0.4.1",
|
||||
|
||||
@@ -216,8 +216,8 @@ export function getAuthValues<TProps = any>(
|
||||
) {
|
||||
if (!Page) return {}
|
||||
|
||||
let authenticate = "authenticate" in Page && Page.authenticate
|
||||
let redirectAuthenticatedTo = "redirectAuthenticatedTo" in Page && Page.redirectAuthenticatedTo
|
||||
let authenticate = (Page as BlitzPage)?.authenticate
|
||||
let redirectAuthenticatedTo = (Page as BlitzPage)?.redirectAuthenticatedTo
|
||||
|
||||
if (authenticate === undefined && redirectAuthenticatedTo === undefined) {
|
||||
const layout = "getLayout" in Page && Page.getLayout?.(<Page {...props} />)
|
||||
|
||||
@@ -1,5 +1,30 @@
|
||||
# @blitzjs/next
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 8d9ea00e: Fix prefetching multiple queries causes only the last one to be passed to page
|
||||
- Updated dependencies [df7cee84]
|
||||
- @blitzjs/rpc@2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 348fd6f5: Fix redirectAuthenticatedTo errors
|
||||
- 20fc9f80: Fix SSP / SP not prefetching queries correctly
|
||||
- 80e1ead7: Add jest.config.js to newly generated typescript apps
|
||||
- Updated dependencies [20fc9f80]
|
||||
- @blitzjs/rpc@2.0.0-alpha.54
|
||||
|
||||
## 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/next",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"dev": "pnpm predev && pnpm watch unbuild src --wait=0.2",
|
||||
@@ -18,12 +18,13 @@
|
||||
"sideEffects": false,
|
||||
"license": "MIT",
|
||||
"files": [
|
||||
"jest/**",
|
||||
"dist/**",
|
||||
"scripts/**",
|
||||
"eslint.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@blitzjs/rpc": "2.0.0-alpha.52",
|
||||
"@blitzjs/rpc": "2.0.0-alpha.55",
|
||||
"@types/hoist-non-react-statics": "3.3.1",
|
||||
"debug": "4.3.3",
|
||||
"fs-extra": "10.0.1",
|
||||
@@ -32,7 +33,7 @@
|
||||
"superjson": "1.8.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.52",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.55",
|
||||
"@testing-library/dom": "8.13.0",
|
||||
"@testing-library/jest-dom": "5.16.3",
|
||||
"@testing-library/react": "13.0.0",
|
||||
@@ -42,7 +43,7 @@
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"@types/testing-library__react-hooks": "4.0.0",
|
||||
"blitz": "2.0.0-alpha.52",
|
||||
"blitz": "2.0.0-alpha.55",
|
||||
"cross-spawn": "7.0.3",
|
||||
"find-up": "4.1.0",
|
||||
"next": "12.2.0",
|
||||
|
||||
@@ -6,14 +6,15 @@ import type {
|
||||
Simplify,
|
||||
} from "blitz"
|
||||
import Head from "next/head"
|
||||
import React from "react"
|
||||
import React, {ReactNode} from "react"
|
||||
import {QueryClient, QueryClientProvider} from "react-query"
|
||||
import {Hydrate, HydrateOptions} from "react-query/hydration"
|
||||
import {withSuperJSONPage} from "./superjson"
|
||||
import {Ctx} from "blitz"
|
||||
import {UrlObject} from "url"
|
||||
import {AppPropsType} from "next/dist/shared/lib/utils"
|
||||
import {Router} from "next/router"
|
||||
import {Router, useRouter} from "next/router"
|
||||
import {RouterContext} from "./router-context"
|
||||
|
||||
export * from "./error-boundary"
|
||||
export * from "./error-component"
|
||||
@@ -67,6 +68,7 @@ export type BlitzProviderProps = {
|
||||
interface RouteUrlObject extends Pick<UrlObject, "pathname" | "query"> {
|
||||
pathname: string
|
||||
}
|
||||
|
||||
type RedirectAuthenticatedTo = string | RouteUrlObject | false
|
||||
type RedirectAuthenticatedToFnCtx = {
|
||||
session: Ctx["session"]["$publicData"]
|
||||
@@ -78,34 +80,38 @@ export type BlitzPage<P = {}> = React.ComponentType<P> & {
|
||||
suppressFirstRenderFlicker?: boolean
|
||||
redirectAuthenticatedTo?: RedirectAuthenticatedTo | RedirectAuthenticatedToFn
|
||||
}
|
||||
export type BlitzLayout<P = {}> = React.ComponentType<P> & {
|
||||
export type BlitzLayout<P = {}> = React.ComponentType<P & {children: ReactNode}> & {
|
||||
authenticate?: boolean | {redirectTo?: string | RouteUrlObject}
|
||||
redirectAuthenticatedTo?: RedirectAuthenticatedTo | RedirectAuthenticatedToFn
|
||||
}
|
||||
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) {
|
||||
const router = useRouter()
|
||||
|
||||
if (client) {
|
||||
return (
|
||||
<QueryClientProvider
|
||||
client={client || globalThis.queryClient}
|
||||
contextSharing={contextSharing}
|
||||
>
|
||||
<Hydrate state={dehydratedState} options={hydrateOptions}>
|
||||
{children}
|
||||
</Hydrate>
|
||||
</QueryClientProvider>
|
||||
<RouterContext.Provider value={router}>
|
||||
<QueryClientProvider
|
||||
client={client || globalThis.queryClient}
|
||||
contextSharing={contextSharing}
|
||||
>
|
||||
<Hydrate state={dehydratedState} options={hydrateOptions}>
|
||||
{children}
|
||||
</Hydrate>
|
||||
</QueryClientProvider>
|
||||
</RouterContext.Provider>
|
||||
)
|
||||
}
|
||||
|
||||
return children
|
||||
return <RouterContext.Provider value={router}>{children}</RouterContext.Provider>
|
||||
}
|
||||
|
||||
export type PluginsExports<TPlugins extends readonly ClientPlugin<object>[]> = Simplify<
|
||||
|
||||
@@ -104,7 +104,7 @@ export const setupBlitzServer = ({plugins, onError}: SetupBlitzOptions) => {
|
||||
) => {
|
||||
queryClient = new QueryClient({defaultOptions})
|
||||
|
||||
const queryKey = infinite ? getQueryKey(fn, input) : getInfiniteQueryKey(fn, input)
|
||||
const queryKey = infinite ? getInfiniteQueryKey(fn, input) : getQueryKey(fn, input)
|
||||
await queryClient.prefetchQuery(queryKey, () => fn(input, ctx))
|
||||
}
|
||||
|
||||
@@ -134,9 +134,11 @@ export const setupBlitzServer = ({plugins, onError}: SetupBlitzOptions) => {
|
||||
defaultOptions = {},
|
||||
infinite = false,
|
||||
) => {
|
||||
queryClient = new QueryClient({defaultOptions})
|
||||
if (!queryClient) {
|
||||
queryClient = new QueryClient({defaultOptions})
|
||||
}
|
||||
|
||||
const queryKey = infinite ? getQueryKey(fn, input) : getInfiniteQueryKey(fn, input)
|
||||
const queryKey = infinite ? getInfiniteQueryKey(fn, input) : getQueryKey(fn, input)
|
||||
await queryClient.prefetchQuery(queryKey, () => fn(input, ctx))
|
||||
}
|
||||
|
||||
@@ -224,8 +226,8 @@ function withDehydratedState<T extends Result>(result: T, queryClient: QueryClie
|
||||
if (!queryClient) {
|
||||
return result
|
||||
}
|
||||
const dehydratedProps = dehydrate(queryClient)
|
||||
return {...result, props: {...("props" in result ? result.props : undefined), dehydratedProps}}
|
||||
const dehydratedState = dehydrate(queryClient)
|
||||
return {...result, props: {...("props" in result ? result.props : undefined), dehydratedState}}
|
||||
}
|
||||
|
||||
declare module "blitz" {
|
||||
|
||||
@@ -1,5 +1,37 @@
|
||||
# @blitzjs/rpc
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- df7cee84: Fix pipe resolver return type
|
||||
- Updated dependencies [8f166a5d]
|
||||
- Updated dependencies [54a66a95]
|
||||
- Updated dependencies [1c809094]
|
||||
- blitz@2.0.0-alpha.55
|
||||
- @blitzjs/auth@2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 20fc9f80: Fix SSP / SP not prefetching queries correctly
|
||||
- Updated dependencies [f397cc20]
|
||||
- Updated dependencies [cacb65d6]
|
||||
- Updated dependencies [348fd6f5]
|
||||
- Updated dependencies [20fc9f80]
|
||||
- Updated dependencies [a3bbe6ce]
|
||||
- Updated dependencies [ffa7b5cc]
|
||||
- blitz@2.0.0-alpha.54
|
||||
- @blitzjs/auth@2.0.0-alpha.54
|
||||
|
||||
## 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
|
||||
|
||||
@@ -5,6 +5,7 @@ const config: BuildConfig = {
|
||||
"./src/index-browser",
|
||||
"./src/index-server",
|
||||
"./src/loader-server",
|
||||
"./src/loader-server-resolvers",
|
||||
"./src/loader-client",
|
||||
],
|
||||
externals: [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/rpc",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"predev": "wait-on -d 250 ../blitz/dist/index-server.d.ts && wait-on -d 250 ../blitz-auth/dist/index-browser.d.ts",
|
||||
@@ -20,7 +20,7 @@
|
||||
"dist/**"
|
||||
],
|
||||
"dependencies": {
|
||||
"@blitzjs/auth": "2.0.0-alpha.52",
|
||||
"@blitzjs/auth": "2.0.0-alpha.55",
|
||||
"b64-lite": "1.4.0",
|
||||
"bad-behavior": "1.0.1",
|
||||
"chalk": "^4.1.0",
|
||||
@@ -30,11 +30,11 @@
|
||||
"zod": "3.17.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.52",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.55",
|
||||
"@types/debug": "4.1.7",
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"blitz": "2.0.0-alpha.52",
|
||||
"blitz": "2.0.0-alpha.55",
|
||||
"next": "12.2.0",
|
||||
"react": "18.0.0",
|
||||
"react-dom": "18.0.0",
|
||||
@@ -43,7 +43,7 @@
|
||||
"watch": "1.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"blitz": "2.0.0-alpha.52",
|
||||
"blitz": "2.0.0-alpha.55",
|
||||
"next": ">=12.2.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
||||
@@ -50,8 +50,9 @@ export function __internal_addBlitzRpcResolver(
|
||||
}
|
||||
|
||||
const dir = __dirname + (() => "")() // trick to avoid `@vercel/ncc` to glob import
|
||||
const loaderServer = resolve(dir, "./loader-server.cjs")
|
||||
const loaderClient = resolve(dir, "./loader-client.cjs")
|
||||
const loaderServer = resolve(dir, "./loader-server.cjs")
|
||||
const loaderServerResolvers = resolve(dir, "./loader-server-resolvers.cjs")
|
||||
|
||||
interface WebpackRuleOptions {
|
||||
resolverPath: ResolverPathOptions | undefined
|
||||
@@ -94,6 +95,10 @@ export function installWebpackConfig({
|
||||
loader: loaderClient,
|
||||
options: webpackRuleOptions,
|
||||
},
|
||||
{
|
||||
loader: loaderServerResolvers,
|
||||
options: webpackRuleOptions,
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
50
packages/blitz-rpc/src/loader-server-resolvers.test.ts
Normal file
50
packages/blitz-rpc/src/loader-server-resolvers.test.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import {describe, expect, it} from "vitest"
|
||||
import {transformBlitzRpcResolverServer} from "./loader-server-resolvers"
|
||||
|
||||
const META_TAGS_AND_EXPORT = `
|
||||
__internal_rpcHandler._resolverName = 'test'
|
||||
__internal_rpcHandler._resolverType = 'query'
|
||||
__internal_rpcHandler._routePath = '/api/rpc/test'
|
||||
|
||||
export default __internal_rpcHandler
|
||||
`.trim()
|
||||
|
||||
describe("transformBlitzRpcResolverServer", () => {
|
||||
it("should compile for function", async () => {
|
||||
const result = await transformBlitzRpcResolverServer(
|
||||
"export default function test() { return 'test' }",
|
||||
"queries/test.js",
|
||||
"/",
|
||||
)
|
||||
|
||||
expect(result).toBe(
|
||||
`const __internal_rpcHandler = function test() { return 'test' }\n\n${META_TAGS_AND_EXPORT}`,
|
||||
)
|
||||
})
|
||||
|
||||
it("should compile with resolver", async () => {
|
||||
const result = await transformBlitzRpcResolverServer(
|
||||
`const test = resolver.pipe(() => Promise.resolve('test'))
|
||||
export default test`,
|
||||
"queries/test.js",
|
||||
"/",
|
||||
)
|
||||
|
||||
expect(result).toBe(
|
||||
`const test = resolver.pipe(() => Promise.resolve('test'))
|
||||
const __internal_rpcHandler = test\n\n${META_TAGS_AND_EXPORT}`,
|
||||
)
|
||||
})
|
||||
|
||||
it("should compile for plain lambda", async () => {
|
||||
const result = await transformBlitzRpcResolverServer(
|
||||
"export default () => Promise.resolve('test')",
|
||||
"queries/test.js",
|
||||
"/",
|
||||
)
|
||||
|
||||
expect(result).toBe(
|
||||
`const __internal_rpcHandler = () => Promise.resolve('test')\n\n${META_TAGS_AND_EXPORT}`,
|
||||
)
|
||||
})
|
||||
})
|
||||
68
packages/blitz-rpc/src/loader-server-resolvers.ts
Normal file
68
packages/blitz-rpc/src/loader-server-resolvers.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import {
|
||||
assertPosixPath,
|
||||
convertFilePathToResolverName,
|
||||
convertFilePathToResolverType,
|
||||
convertPageFilePathToRoutePath,
|
||||
Loader,
|
||||
LoaderOptions,
|
||||
toPosixPath,
|
||||
} from "./loader-utils"
|
||||
import {normalizeApiRoute} from "./data-client"
|
||||
import {posix} from "path"
|
||||
|
||||
// Subset of `import type { LoaderDefinitionFunction } from 'webpack'`
|
||||
|
||||
export async function loader(this: Loader, input: string): Promise<string> {
|
||||
const compiler = this._compiler!
|
||||
const id = this.resource
|
||||
const root = this._compiler!.context
|
||||
|
||||
const isSSR = compiler.name === "server"
|
||||
if (isSSR) {
|
||||
return await transformBlitzRpcResolverServer(
|
||||
input,
|
||||
toPosixPath(id),
|
||||
toPosixPath(root),
|
||||
this.query,
|
||||
)
|
||||
}
|
||||
|
||||
return input
|
||||
}
|
||||
|
||||
module.exports = loader
|
||||
|
||||
export async function transformBlitzRpcResolverServer(
|
||||
src: string,
|
||||
id: string,
|
||||
root: string,
|
||||
options?: LoaderOptions,
|
||||
) {
|
||||
assertPosixPath(id)
|
||||
assertPosixPath(root)
|
||||
|
||||
const resolverFilePath = "/" + posix.relative(root, id)
|
||||
assertPosixPath(resolverFilePath)
|
||||
const routePath = convertPageFilePathToRoutePath(resolverFilePath, options?.resolverPath)
|
||||
const resolverName = convertFilePathToResolverName(resolverFilePath)
|
||||
const resolverType = convertFilePathToResolverType(resolverFilePath)
|
||||
|
||||
const fullRoutePath = normalizeApiRoute("/api/rpc" + routePath)
|
||||
|
||||
const lines = src.split("\n")
|
||||
const newLines = lines.map((line) => {
|
||||
if (line.trim().startsWith("export default")) {
|
||||
return line.replace("export default", "const __internal_rpcHandler =")
|
||||
}
|
||||
|
||||
return line
|
||||
})
|
||||
|
||||
return `${newLines.join("\n")}
|
||||
|
||||
__internal_rpcHandler._resolverName = '${resolverName}'
|
||||
__internal_rpcHandler._resolverType = '${resolverType}'
|
||||
__internal_rpcHandler._routePath = '${fullRoutePath}'
|
||||
|
||||
export default __internal_rpcHandler`
|
||||
}
|
||||
@@ -54,7 +54,7 @@ function pipe<A, B, C, D, E, F, G, CA = Ctx, CB = CA, CC = CB, CD = CC, CE = CD,
|
||||
de: PipeFn<D, E, CD, CE>,
|
||||
ef: PipeFn<E, F, CE, CF>,
|
||||
fg: PipeFn<F, G, CF, CG>,
|
||||
): (input: A, ctx: CA) => EnsurePromise<CG>
|
||||
): (input: A, ctx: CA) => EnsurePromise<G>
|
||||
function pipe<
|
||||
A,
|
||||
B,
|
||||
|
||||
@@ -1,5 +1,34 @@
|
||||
# blitz
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 8f166a5d: Check for new versions when running CLI
|
||||
- 54a66a95: Show all blitz packages when running `blitz version` command
|
||||
- Updated dependencies [ab4d9de7]
|
||||
- @blitzjs/generator@2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- f397cc20: Fixes issue when generating a new blitz app with the form flag that ends up installing the wrong form library
|
||||
- cacb65d6: Fixes wrong import of the db module in `blitz db seed` command function
|
||||
- 348fd6f5: Fix redirectAuthenticatedTo errors
|
||||
- 20fc9f80: Fix SSP / SP not prefetching queries correctly
|
||||
- a3bbe6ce: Fix routes manifest showing duplicates for non queries|resolvers reso…
|
||||
- ffa7b5cc: During `blitz new` if project name argument is set to "." change it to current folder name
|
||||
- Updated dependencies [a961aff8]
|
||||
- Updated dependencies [80e1ead7]
|
||||
- @blitzjs/generator@2.0.0-alpha.54
|
||||
|
||||
## 2.0.0-alpha.53
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @blitzjs/generator@2.0.0-alpha.53
|
||||
|
||||
## 2.0.0-alpha.52
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "blitz",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"dev": "watch unbuild src --wait=0.2",
|
||||
@@ -23,8 +23,9 @@
|
||||
"blitz": "bin/blitz"
|
||||
},
|
||||
"dependencies": {
|
||||
"@blitzjs/generator": "2.0.0-alpha.52",
|
||||
"@blitzjs/generator": "2.0.0-alpha.55",
|
||||
"arg": "5.0.1",
|
||||
"boxen": "7.0.0",
|
||||
"chalk": "^4.1.0",
|
||||
"console-table-printer": "2.10.0",
|
||||
"cross-spawn": "7.0.3",
|
||||
@@ -37,6 +38,7 @@
|
||||
"find-up": "4.1.0",
|
||||
"fs-extra": "10.0.1",
|
||||
"hasbin": "1.2.3",
|
||||
"node-fetch": "3.2.3",
|
||||
"npm-which": "3.0.1",
|
||||
"ora": "5.3.0",
|
||||
"os-name": "5.0.1",
|
||||
@@ -52,7 +54,7 @@
|
||||
"watchpack": "2.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.52",
|
||||
"@blitzjs/config": "workspace:2.0.0-alpha.55",
|
||||
"@types/cookie": "0.4.1",
|
||||
"@types/cross-spawn": "6.0.2",
|
||||
"@types/debug": "4.1.7",
|
||||
@@ -69,7 +71,6 @@
|
||||
"@types/test-listen": "1.1.0",
|
||||
"@types/watchpack": "1.1.1",
|
||||
"express": "4.17.3",
|
||||
"node-fetch": "3.2.3",
|
||||
"react": "18.0.0",
|
||||
"test-listen": "1.1.0",
|
||||
"typescript": "^4.5.3",
|
||||
|
||||
@@ -51,7 +51,7 @@ const runSeed = async (seedBasePath: string) => {
|
||||
throw err
|
||||
}
|
||||
|
||||
const db = require(dbPath).db
|
||||
const db = require(dbPath)
|
||||
await db.$disconnect()
|
||||
console.log("Done Seeding")
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import {CliCommand} from "../index"
|
||||
import arg from "arg"
|
||||
import {AppGenerator, AppGeneratorOptions, getLatestVersion} from "@blitzjs/generator"
|
||||
import {runPrisma} from "../../prisma-utils"
|
||||
import {checkLatestVersion} from "../utils/check-latest-version"
|
||||
|
||||
const forms = {
|
||||
"react-final-form": "React Final Form" as const,
|
||||
@@ -24,8 +25,13 @@ const language = {
|
||||
type TLanguage = keyof typeof language
|
||||
|
||||
type TPkgManager = "npm" | "yarn" | "pnpm"
|
||||
type TTemplate = "full" | "minimal"
|
||||
const installCommandMap: Record<TPkgManager, string> = {
|
||||
yarn: "yarn",
|
||||
pnpm: "pnpm install",
|
||||
npm: "npm install",
|
||||
}
|
||||
|
||||
type TTemplate = "full" | "minimal"
|
||||
const templates: {[key in TTemplate]: AppGeneratorOptions["template"]} = {
|
||||
full: {
|
||||
path: "app",
|
||||
@@ -87,6 +93,10 @@ const determineProjectName = async () => {
|
||||
projectPath = path.resolve(projectName)
|
||||
} else {
|
||||
projectName = args._.slice(1)[0] as string
|
||||
if (projectName === ".") {
|
||||
projectName = path.basename(process.cwd())
|
||||
}
|
||||
|
||||
projectPath = path.resolve(projectName)
|
||||
}
|
||||
}
|
||||
@@ -128,14 +138,7 @@ const determineFormLib = async () => {
|
||||
|
||||
projectFormLib = res.form
|
||||
} else {
|
||||
switch (args["--form"] as TForms) {
|
||||
case "react-final-form":
|
||||
projectFormLib = forms["react-final-form"]
|
||||
case "react-hook-form":
|
||||
projectFormLib = forms["react-hook-form"]
|
||||
case "formik":
|
||||
projectFormLib = forms["formik"]
|
||||
}
|
||||
projectFormLib = forms[args["--form"] as TForms]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,11 +205,7 @@ const determinePkgManagerToInstallDeps = async () => {
|
||||
|
||||
projectPkgManger = res.pkgManager
|
||||
|
||||
if (res.pkgManager === "skip") {
|
||||
shouldInstallDeps = false
|
||||
} else {
|
||||
shouldInstallDeps = true
|
||||
}
|
||||
shouldInstallDeps = res.pkgManager !== "skip"
|
||||
} else {
|
||||
const res = await prompts({
|
||||
type: "confirm",
|
||||
@@ -222,7 +221,7 @@ const determinePkgManagerToInstallDeps = async () => {
|
||||
const newApp: CliCommand = async (argv) => {
|
||||
const shouldUpgrade = !args["--skip-upgrade"]
|
||||
if (shouldUpgrade) {
|
||||
//TODO: Handle checking for updates
|
||||
await checkLatestVersion()
|
||||
}
|
||||
|
||||
await determineProjectName()
|
||||
@@ -278,16 +277,7 @@ const newApp: CliCommand = async (argv) => {
|
||||
await generator.run()
|
||||
|
||||
if (requireManualInstall) {
|
||||
let cmd
|
||||
switch (projectPkgManger) {
|
||||
case "yarn":
|
||||
cmd = "yarn"
|
||||
case "npm":
|
||||
cmd = "npm install"
|
||||
case "pnpm":
|
||||
cmd = "pnpm install"
|
||||
}
|
||||
postInstallSteps.push(cmd)
|
||||
postInstallSteps.push(installCommandMap[projectPkgManger])
|
||||
postInstallSteps.push(
|
||||
"blitz prisma migrate dev (when asked, you can name the migration anything)",
|
||||
)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import {NON_STANDARD_NODE_ENV} from "./utils/constants"
|
||||
import arg from "arg"
|
||||
import {loadEnvConfig} from "../env-utils"
|
||||
import {getCommandBin} from "./utils/config"
|
||||
import spawn from "cross-spawn"
|
||||
import {readdirSync} from "fs-extra"
|
||||
import resolveFrom from "resolve-from"
|
||||
import pkgDir from "pkg-dir"
|
||||
import {join} from "path"
|
||||
|
||||
import {loadEnvConfig} from "../env-utils"
|
||||
import {NON_STANDARD_NODE_ENV} from "./utils/constants"
|
||||
import {getCommandBin} from "./utils/config"
|
||||
import {readVersions} from "./utils/read-versions"
|
||||
|
||||
import {getPkgManager} from "./utils/helpers"
|
||||
|
||||
const commonArgs = {
|
||||
// Flags
|
||||
@@ -57,9 +57,6 @@ if (aliases[args._[0] as Alias]) {
|
||||
|
||||
const forwardedArgs = blitzCommand ? args._.slice(1) : args._
|
||||
|
||||
const globalBlitzPath = resolveFrom(__dirname, "blitz")
|
||||
const localBlitzPath = resolveFrom.silent(process.cwd(), "blitz")
|
||||
|
||||
async function runCommandFromBin() {
|
||||
if (!args._[0]) {
|
||||
console.log("No command specified")
|
||||
@@ -83,18 +80,17 @@ async function runCommandFromBin() {
|
||||
async function printEnvInfo() {
|
||||
const osName = await import("os-name")
|
||||
const envinfo = await import("envinfo")
|
||||
const pkgManager = readdirSync(process.cwd()).includes("pnpm-lock.yaml")
|
||||
? "pnpm"
|
||||
: readdirSync(process.cwd()).includes("yarn-lock.yaml")
|
||||
? "yarn"
|
||||
: "npm"
|
||||
|
||||
const pkgManager = getPkgManager()
|
||||
const env = await envinfo.default.run(
|
||||
{
|
||||
System: ["OS", "CPU", "Memory", "Shell"],
|
||||
Binaries: ["Node", "Yarn", "npm", "pnpm"],
|
||||
npmPackages: [
|
||||
"blitz",
|
||||
"@blitzjs/rpc",
|
||||
"@blitzjs/auth",
|
||||
"@blitzjs/next",
|
||||
"typescript",
|
||||
"react",
|
||||
"react-dom",
|
||||
@@ -106,18 +102,13 @@ async function printEnvInfo() {
|
||||
{showNotFound: true},
|
||||
)
|
||||
|
||||
const globalBlitzPkgJsonPath = pkgDir.sync(globalBlitzPath)
|
||||
const localBlitzPkgJsonPath = pkgDir.sync(localBlitzPath)
|
||||
|
||||
if (globalBlitzPkgJsonPath && globalBlitzPkgJsonPath !== localBlitzPkgJsonPath) {
|
||||
// This branch won't run if user does `npx blitz` or `yarn blitz`
|
||||
const globalVersion = require(join(globalBlitzPkgJsonPath, "package.json")).version
|
||||
const {globalVersion, localVersions} = readVersions()
|
||||
if (globalVersion) {
|
||||
console.log(`Blitz version: ${globalVersion} (global)`)
|
||||
}
|
||||
|
||||
if (localBlitzPkgJsonPath) {
|
||||
const localVersion = require(join(localBlitzPkgJsonPath, "package.json")).version
|
||||
console.log(`Blitz version: ${localVersion} (local)`)
|
||||
if (localVersions.blitz) {
|
||||
console.log(`Blitz version: ${localVersions.blitz} (local)`)
|
||||
}
|
||||
|
||||
console.log(
|
||||
|
||||
185
packages/blitz/src/cli/utils/check-latest-version.ts
Normal file
185
packages/blitz/src/cli/utils/check-latest-version.ts
Normal file
@@ -0,0 +1,185 @@
|
||||
import findUp from "find-up"
|
||||
import resolveFrom from "resolve-from"
|
||||
import {join, dirname} from "path"
|
||||
import fs from "fs"
|
||||
import {readVersions, resolveVersionType} from "./read-versions"
|
||||
import {getPkgManager} from "./helpers"
|
||||
import superjson from "superjson"
|
||||
|
||||
const returnNpmEndpoint = (packageName: string) => {
|
||||
return `https://registry.npmjs.org/-/package/${packageName}/dist-tags`
|
||||
}
|
||||
|
||||
function getUpdateString(packageName: string, tag: string, isGlobal?: boolean) {
|
||||
const pkgManager = getPkgManager()
|
||||
switch (pkgManager) {
|
||||
case "npm":
|
||||
return `npm install${isGlobal ? " -g" : ""} ${packageName}@${tag}`
|
||||
case "yarn":
|
||||
return `yarn${isGlobal ? " global" : ""} add ${packageName}@${tag}`
|
||||
case "pnpm":
|
||||
return `pnpm install${isGlobal ? " -g" : ""} ${packageName}@${tag}`
|
||||
}
|
||||
}
|
||||
const isInternalBlitzMonorepoDevelopment = fs.existsSync(
|
||||
join(process.cwd(), "..", "..", "packages", "blitz", "dist", "chunks"),
|
||||
)
|
||||
|
||||
async function findNodeModulesRoot(src: string) {
|
||||
const blitzPkgLocation = dirname(
|
||||
(await findUp("package.json", {
|
||||
cwd: resolveFrom(src, "blitz"),
|
||||
})) ?? "",
|
||||
)
|
||||
|
||||
if (!blitzPkgLocation) {
|
||||
throw new Error("Internal Blitz Error: unable to find 'blitz' package location")
|
||||
}
|
||||
|
||||
return blitzPkgLocation.includes(".pnpm")
|
||||
? join(blitzPkgLocation, "../../../../")
|
||||
: join(blitzPkgLocation, "../")
|
||||
}
|
||||
|
||||
export async function checkLatestVersion() {
|
||||
if (!isInternalBlitzMonorepoDevelopment) {
|
||||
const fetch = await import("node-fetch")
|
||||
const boxen = await import("boxen")
|
||||
const versions = readVersions()
|
||||
const nodeModulesRoot = await findNodeModulesRoot(process.cwd())
|
||||
const dotBlitzCacheExists = fs.existsSync(
|
||||
join(nodeModulesRoot, ".blitz", "checkUpdateCache.json"),
|
||||
)
|
||||
let dotBlitzCache
|
||||
let shouldRun = true
|
||||
|
||||
if (dotBlitzCacheExists) {
|
||||
dotBlitzCache = fs.readFileSync(join(nodeModulesRoot, ".blitz", "checkUpdateCache.json"))
|
||||
const now = new Date()
|
||||
const msBetweenTimes = Math.abs(
|
||||
superjson.parse<{lastUpdated: Date}>(dotBlitzCache.toString()).lastUpdated.getTime() -
|
||||
now.getTime(),
|
||||
)
|
||||
const hoursBetweenTimes = msBetweenTimes / (60 * 60 * 1000)
|
||||
shouldRun = hoursBetweenTimes > 24
|
||||
}
|
||||
|
||||
if (shouldRun) {
|
||||
let errors: {message: string; instructions: string}[] = []
|
||||
try {
|
||||
const blitzResponse = await fetch.default(returnNpmEndpoint("blitz"))
|
||||
const remoteBlitzVersions = (await blitzResponse.json()) as Record<string, string>
|
||||
|
||||
const blitzNextResponse = await fetch.default(returnNpmEndpoint("@blitzjs/next"))
|
||||
const remoteBlitzNextVersions = (await blitzNextResponse.json()) as Record<string, string>
|
||||
|
||||
const blitzAuthResponse = await fetch.default(returnNpmEndpoint("@blitzjs/auth"))
|
||||
const remoteBlitzAuthVersions = (await blitzAuthResponse.json()) as Record<string, string>
|
||||
|
||||
const blitzRpcResponse = await fetch.default(returnNpmEndpoint("@blitzjs/rpc"))
|
||||
const remoteBlitzRpcVersions = (await blitzRpcResponse.json()) as Record<string, string>
|
||||
|
||||
for (const version of Object.entries(versions)) {
|
||||
if (version[0] === "globalVersion") {
|
||||
const versionType = resolveVersionType(version[1] as string)
|
||||
|
||||
if (remoteBlitzVersions.hasOwnProperty("beta") && versionType !== "beta") {
|
||||
errors.push({
|
||||
message: `blitz(global) (current) ${version[1]} -> (latest) ${remoteBlitzVersions["beta"]}`,
|
||||
instructions: `${getUpdateString("blitz", "beta", true)}`,
|
||||
})
|
||||
} else if (remoteBlitzVersions[versionType] !== version[1]) {
|
||||
errors.push({
|
||||
message: `blitz(global) (current) ${version[1]} -> (latest) ${remoteBlitzVersions[versionType]}`,
|
||||
instructions: `${getUpdateString("blitz", versionType, true)}`,
|
||||
})
|
||||
}
|
||||
} else if (version[0] === "localVersions") {
|
||||
for (const localVersion of Object.entries(version[1])) {
|
||||
const versionType = resolveVersionType(localVersion[1] as string)
|
||||
|
||||
switch (localVersion[0]) {
|
||||
case "blitz":
|
||||
if (remoteBlitzVersions.hasOwnProperty("beta") && versionType !== "beta") {
|
||||
errors.push({
|
||||
message: `blitz (current) ${localVersion[1]} -> (latest) ${remoteBlitzVersions["beta"]}`,
|
||||
instructions: `${getUpdateString("blitz", "beta", false)}`,
|
||||
})
|
||||
} else if (remoteBlitzVersions[versionType] !== localVersion[1]) {
|
||||
errors.push({
|
||||
message: `blitz (current) ${localVersion[1]} -> (latest) ${remoteBlitzVersions[versionType]}`,
|
||||
instructions: `${getUpdateString("blitz", versionType, false)}`,
|
||||
})
|
||||
}
|
||||
break
|
||||
case "blitzAuth":
|
||||
if (remoteBlitzAuthVersions.hasOwnProperty("beta") && versionType !== "beta") {
|
||||
errors.push({
|
||||
message: `@blitzjs/auth (current) ${localVersion[1]} -> (latest) ${remoteBlitzAuthVersions["beta"]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/auth", "beta", false)}`,
|
||||
})
|
||||
} else if (remoteBlitzAuthVersions[versionType] !== localVersion[1]) {
|
||||
errors.push({
|
||||
message: `@blitzjs/auth (current) ${localVersion[1]} -> (latest) ${remoteBlitzAuthVersions[versionType]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/auth", versionType, false)}`,
|
||||
})
|
||||
}
|
||||
break
|
||||
case "blitzNext":
|
||||
if (remoteBlitzNextVersions.hasOwnProperty("beta") && versionType !== "beta") {
|
||||
errors.push({
|
||||
message: `@blitzjs/next (current) ${localVersion[1]} -> (latest) ${remoteBlitzNextVersions["beta"]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/next", "beta", false)}`,
|
||||
})
|
||||
} else if (remoteBlitzNextVersions[versionType] !== localVersion[1]) {
|
||||
errors.push({
|
||||
message: `@blitzjs/next (current) ${localVersion[1]} -> (latest) ${remoteBlitzNextVersions[versionType]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/next", versionType, false)}`,
|
||||
})
|
||||
}
|
||||
break
|
||||
case "blitzRpc":
|
||||
if (remoteBlitzRpcVersions.hasOwnProperty("beta") && versionType !== "beta") {
|
||||
errors.push({
|
||||
message: `@blitzjs/rpc (current) ${localVersion[1]} -> (latest) ${remoteBlitzRpcVersions["beta"]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/rpc", "beta", false)}`,
|
||||
})
|
||||
} else if (remoteBlitzRpcVersions[versionType] !== localVersion[1]) {
|
||||
errors.push({
|
||||
message: `@blitzjs/rpc (current) ${localVersion[1]} -> (latest) ${remoteBlitzRpcVersions[versionType]}`,
|
||||
instructions: `${getUpdateString("@blitzjs/rpc", versionType, false)}`,
|
||||
})
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(
|
||||
boxen.default(
|
||||
`You are running outdated blitz packages\n\n ${errors
|
||||
.map((e) => e.message)
|
||||
.join("\n")} \n\n Run the following to update:\n ${errors
|
||||
.map((e) => e.instructions)
|
||||
.join("\n")}`,
|
||||
{padding: 1},
|
||||
),
|
||||
)
|
||||
|
||||
const dotBlitz = join(nodeModulesRoot, ".blitz")
|
||||
fs.writeFileSync(
|
||||
join(dotBlitz, "checkUpdateCache.json"),
|
||||
superjson.stringify({lastUpdated: new Date()}),
|
||||
)
|
||||
} catch (err) {
|
||||
if (err instanceof fetch.FetchError) {
|
||||
// TODO: Check if network error and throw otherwise
|
||||
// pass fetch error
|
||||
} else {
|
||||
console.log(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
packages/blitz/src/cli/utils/helpers.ts
Normal file
9
packages/blitz/src/cli/utils/helpers.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import {readdirSync} from "fs-extra"
|
||||
|
||||
export function getPkgManager() {
|
||||
return readdirSync(process.cwd()).includes("pnpm-lock.yaml")
|
||||
? "pnpm"
|
||||
: readdirSync(process.cwd()).includes("yarn-lock.yaml")
|
||||
? "yarn"
|
||||
: "npm"
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
startCustomServer,
|
||||
buildCustomServer,
|
||||
} from "./next-utils"
|
||||
import {checkLatestVersion} from "./check-latest-version"
|
||||
import {readBlitzConfig} from "../../server-utils"
|
||||
|
||||
export async function build(config: ServerConfig) {
|
||||
@@ -18,7 +19,7 @@ export async function build(config: ServerConfig) {
|
||||
|
||||
export async function dev(config: ServerConfig) {
|
||||
const {rootFolder, nextBin} = await normalize({...config, env: "dev"})
|
||||
|
||||
void checkLatestVersion()
|
||||
if (customServerExists()) {
|
||||
console.log("Using your custom server")
|
||||
|
||||
|
||||
79
packages/blitz/src/cli/utils/read-versions.ts
Normal file
79
packages/blitz/src/cli/utils/read-versions.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
import {join} from "path"
|
||||
import pkgDir from "pkg-dir"
|
||||
import resolveFrom from "resolve-from"
|
||||
|
||||
const globalBlitzPath = resolveFrom(__dirname, "blitz")
|
||||
const localBlitzPath = resolveFrom.silent(process.cwd(), "blitz")
|
||||
const localBlitzAuthPath = resolveFrom.silent(process.cwd(), "@blitzjs/auth")
|
||||
const localBlitzRpcPath = resolveFrom.silent(process.cwd(), "@blitzjs/rpc")
|
||||
const localBlitzNextPath = resolveFrom.silent(process.cwd(), "@blitzjs/next")
|
||||
|
||||
export function readVersions() {
|
||||
const globalBlitzPkgJsonPath = pkgDir.sync(globalBlitzPath)
|
||||
const localBlitzPkgJsonPath = pkgDir.sync(localBlitzPath)
|
||||
const localBlitzAuthPkgJsonPath = pkgDir.sync(localBlitzAuthPath)
|
||||
const localBlitzNextPkgJsonPath = pkgDir.sync(localBlitzNextPath)
|
||||
const localBlitzRpcPkgJsonPath = pkgDir.sync(localBlitzRpcPath)
|
||||
|
||||
const versions: {
|
||||
globalVersion?: string
|
||||
localVersions: {
|
||||
blitz?: string
|
||||
blitzAuth?: string
|
||||
blitzRpc?: string
|
||||
blitzNext?: string
|
||||
}
|
||||
} = {globalVersion: "", localVersions: {}}
|
||||
|
||||
// This branch won't run if user does `npx blitz` or `yarn blitz`
|
||||
if (globalBlitzPkgJsonPath && globalBlitzPkgJsonPath !== localBlitzPkgJsonPath) {
|
||||
versions.globalVersion = require(join(globalBlitzPkgJsonPath, "package.json")).version
|
||||
}
|
||||
|
||||
if (localBlitzPkgJsonPath) {
|
||||
versions.localVersions.blitz = require(join(localBlitzPkgJsonPath, "package.json")).version
|
||||
}
|
||||
|
||||
if (localBlitzAuthPkgJsonPath) {
|
||||
versions.localVersions.blitzAuth = require(join(
|
||||
localBlitzAuthPkgJsonPath,
|
||||
"package.json",
|
||||
)).version
|
||||
}
|
||||
|
||||
if (localBlitzNextPkgJsonPath) {
|
||||
versions.localVersions.blitzNext = require(join(
|
||||
localBlitzNextPkgJsonPath,
|
||||
"package.json",
|
||||
)).version
|
||||
}
|
||||
|
||||
if (localBlitzRpcPkgJsonPath) {
|
||||
versions.localVersions.blitzRpc = require(join(
|
||||
localBlitzRpcPkgJsonPath,
|
||||
"package.json",
|
||||
)).version
|
||||
}
|
||||
|
||||
return versions
|
||||
}
|
||||
|
||||
export function resolveVersionType(version: string) {
|
||||
if (version.includes("alpha")) {
|
||||
return "alpha" as const
|
||||
}
|
||||
|
||||
if (version.includes("beta")) {
|
||||
return "beta" as const
|
||||
}
|
||||
|
||||
if (version.includes("danger")) {
|
||||
return "danger" as const
|
||||
}
|
||||
|
||||
if (version.includes("canary")) {
|
||||
return "canary" as const
|
||||
}
|
||||
|
||||
return "latest" as const
|
||||
}
|
||||
@@ -228,23 +228,39 @@ export function buildPageExtensionRegex(pageExtensions: string[]) {
|
||||
type PagesMapping = {
|
||||
[page: string]: string
|
||||
}
|
||||
export function convertPageFilePathToRoutePath(filePath: string, pageExtensions: string[]) {
|
||||
return filePath
|
||||
.replace(/^.*?[\\/]pages[\\/]/, "/")
|
||||
.replace(/^.*?[\\/]api[\\/]/, "/api/")
|
||||
.replace(/^.*?[\\/]queries[\\/]/, "/api/rpc/")
|
||||
.replace(/^.*?[\\/]mutations[\\/]/, "/api/rpc/")
|
||||
.replace(new RegExp(`\\.+(${pageExtensions.join("|")})$`), "")
|
||||
function stripExtension(filePath: string, pageExtensions: string[]) {
|
||||
return filePath.replace(new RegExp(`\\.+(${pageExtensions.join("|")})$`), "")
|
||||
}
|
||||
export function createPagesMapping(pagePaths: string[], pageExtensions: string[]) {
|
||||
export function convertPageFilePathToRoutePath(filePath: string, pageExtensions: string[]) {
|
||||
return stripExtension(
|
||||
filePath
|
||||
.replace(/^.*?[\\/]pages[\\/]/, "/")
|
||||
.replace(/^.*?[\\/]api[\\/]/, "/api/")
|
||||
.replace(/^.*?[\\/]queries[\\/]/, "/api/rpc/")
|
||||
.replace(/^.*?[\\/]mutations[\\/]/, "/api/rpc/"),
|
||||
pageExtensions,
|
||||
)
|
||||
}
|
||||
export function createPagesMapping(pagePaths: string[], config: any) {
|
||||
const {pageExtensions, blitz} = config
|
||||
const resolverType = blitz?.resolverPath || "queries|mutations"
|
||||
|
||||
const previousPages: PagesMapping = {}
|
||||
const pages = pagePaths.reduce((result: PagesMapping, pagePath): PagesMapping => {
|
||||
const pages = pagePaths.reduce<PagesMapping>((result, pagePath) => {
|
||||
let page = `${convertPageFilePathToRoutePath(pagePath, pageExtensions).replace(
|
||||
/\\/g,
|
||||
"/",
|
||||
)}`.replace(/\/index$/, "")
|
||||
let pageKey = page === "" ? "/" : page
|
||||
const isResolver = pagePath.includes("/queries/") || pagePath.includes("/mutations/")
|
||||
if (isResolver) {
|
||||
if (typeof resolverType === "function") {
|
||||
page = `/api/rpc${resolverType(pagePath)}`
|
||||
} else if (resolverType === "root") {
|
||||
page = `/api/rpc${stripExtension(pagePath, pageExtensions)}`
|
||||
}
|
||||
}
|
||||
|
||||
let pageKey = page === "" ? "/" : page
|
||||
if (pageKey in result) {
|
||||
console.warn(
|
||||
`Duplicate page detected. ${previousPages[pageKey]} and ${pagePath} both resolve to ${pageKey}.`,
|
||||
@@ -255,6 +271,7 @@ export function createPagesMapping(pagePaths: string[], pageExtensions: string[]
|
||||
result[pageKey] = join(PAGES_DIR_ALIAS, pagePath).replace(/\\/g, "/")
|
||||
return result
|
||||
}, {})
|
||||
|
||||
pages["/_app"] = pages["/_app"] || "next/dist/pages/_app"
|
||||
pages["/_error"] = pages["/_error"] || "next/dist/pages/_error"
|
||||
pages["/_document"] = pages["/_document"] || "next/dist/pages/_document"
|
||||
@@ -277,7 +294,7 @@ function getVerb(type: string) {
|
||||
const apiPathRegex = /([\\/]api[\\/])/
|
||||
export async function collectAllRoutes(directory: string, config: any) {
|
||||
const routeFiles = await collectPages(directory, config.pageExtensions!)
|
||||
const rawRouteMappings = createPagesMapping(routeFiles, config.pageExtensions!)
|
||||
const rawRouteMappings = createPagesMapping(routeFiles, config)
|
||||
const routes = []
|
||||
for (const [route, filePath] of Object.entries(rawRouteMappings)) {
|
||||
if (["/_app", "/_document", "/_error"].includes(route)) continue
|
||||
|
||||
@@ -1,5 +1,37 @@
|
||||
# @blitzjs/codemod
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [8f166a5d]
|
||||
- Updated dependencies [54a66a95]
|
||||
- Updated dependencies [ab4d9de7]
|
||||
- blitz@2.0.0-alpha.55
|
||||
- @blitzjs/generator@2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [f397cc20]
|
||||
- Updated dependencies [cacb65d6]
|
||||
- Updated dependencies [348fd6f5]
|
||||
- Updated dependencies [20fc9f80]
|
||||
- Updated dependencies [a961aff8]
|
||||
- Updated dependencies [80e1ead7]
|
||||
- Updated dependencies [a3bbe6ce]
|
||||
- Updated dependencies [ffa7b5cc]
|
||||
- blitz@2.0.0-alpha.54
|
||||
- @blitzjs/generator@2.0.0-alpha.54
|
||||
|
||||
## 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/codemod",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"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.52",
|
||||
"@blitzjs/generator": "2.0.0-alpha.55",
|
||||
"arg": "5.0.1",
|
||||
"blitz": "2.0.0-alpha.52",
|
||||
"blitz": "2.0.0-alpha.55",
|
||||
"chalk": "^4.1.0",
|
||||
"cross-spawn": "7.0.3",
|
||||
"debug": "4.3.3",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @blitzjs/config
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
## 2.0.0-alpha.53
|
||||
|
||||
## 2.0.0-alpha.52
|
||||
|
||||
## 2.0.0-alpha.51
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "@blitzjs/config",
|
||||
"private": true,
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "5.9.1",
|
||||
"@typescript-eslint/parser": "5.9.1",
|
||||
"eslint-config-next": "12.0.7",
|
||||
"eslint-config-prettier": "8.3.0"
|
||||
"eslint-config-next": "12.2.0",
|
||||
"eslint-config-prettier": "8.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^4.5.3"
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @blitzjs/generator
|
||||
|
||||
## 2.0.0-alpha.55
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ab4d9de7: Don't try to copy RPC API endpoint in templates that don't have it
|
||||
|
||||
## 2.0.0-alpha.54
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- a961aff8: Add missing lint deps to the new app templates
|
||||
- 80e1ead7: Add jest.config.js to newly generated typescript apps
|
||||
|
||||
## 2.0.0-alpha.53
|
||||
|
||||
## 2.0.0-alpha.52
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@blitzjs/generator",
|
||||
"version": "2.0.0-alpha.52",
|
||||
"version": "2.0.0-alpha.55",
|
||||
"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.52",
|
||||
"@blitzjs/config": "2.0.0-alpha.55",
|
||||
"@juanm04/cpx": "2.0.1",
|
||||
"@types/babel__core": "7.1.19",
|
||||
"@types/diff": "5.0.2",
|
||||
|
||||
@@ -30,6 +30,7 @@ export interface AppGeneratorOptions extends GeneratorOptions {
|
||||
form?: "React Final Form" | "React Hook Form" | "Formik"
|
||||
onPostInstall?: () => Promise<void>
|
||||
}
|
||||
|
||||
type PkgManager = "npm" | "yarn" | "pnpm"
|
||||
|
||||
export class AppGenerator extends Generator<AppGeneratorOptions> {
|
||||
@@ -49,7 +50,7 @@ export class AppGenerator extends Generator<AppGeneratorOptions> {
|
||||
"types.ts",
|
||||
]
|
||||
}
|
||||
return ["jsconfig.json", "jest.config.js", "package.js.json", "pre-push-js"]
|
||||
return ["jsconfig.json", "package.js.json", "pre-push-js"]
|
||||
}
|
||||
|
||||
async getTemplateValues() {
|
||||
@@ -76,10 +77,14 @@ export class AppGenerator extends Generator<AppGeneratorOptions> {
|
||||
this.destinationPath(this.options.useTs ? "package.ts.json" : "package.js.json"),
|
||||
this.destinationPath("package.json"),
|
||||
)
|
||||
this.fs.move(
|
||||
this.destinationPath(`pages/api/rpc/blitzrpcroute.${this.options.useTs ? "ts" : "js"}`),
|
||||
this.destinationPath(`pages/api/rpc/[[...blitz]].${this.options.useTs ? "ts" : "js"}`),
|
||||
)
|
||||
|
||||
const rpcEndpointPath = `pages/api/rpc/blitzrpcroute.${this.options.useTs ? "ts" : "js"}`
|
||||
if (this.fs.exists(rpcEndpointPath)) {
|
||||
this.fs.move(
|
||||
this.destinationPath(rpcEndpointPath),
|
||||
this.destinationPath(`pages/api/rpc/[[...blitz]].${this.options.useTs ? "ts" : "js"}`),
|
||||
)
|
||||
}
|
||||
|
||||
if (!this.options.template.skipForms) {
|
||||
this.updateForms()
|
||||
@@ -286,6 +291,7 @@ export class AppGenerator extends Generator<AppGeneratorOptions> {
|
||||
}
|
||||
commitSpinner.succeed()
|
||||
}
|
||||
|
||||
private updateForms() {
|
||||
const pkg = this.fs.readJSON(this.destinationPath("package.json")) as
|
||||
| Record<string, any>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import Head from "next/head"
|
||||
import React, { FC } from "react"
|
||||
import React, {FC} from "react"
|
||||
import {BlitzLayout} from "@blitzjs/next"
|
||||
|
||||
const Layout: FC<{ title?: string; children?: React.ReactNode }> = ({ title, children }) => {
|
||||
const Layout: BlitzLayout<{title?: string; children?: React.ReactNode}> = ({title, children}) => {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
"@types/preview-email": "2.0.1",
|
||||
"@types/react": "18.0.1",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-next": "12.2.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"husky": "7.0.4",
|
||||
"jest": "27.5.1",
|
||||
"lint-staged": "12.1.7",
|
||||
|
||||
@@ -39,7 +39,10 @@
|
||||
"@types/node": "17.0.16",
|
||||
"@types/preview-email": "2.0.1",
|
||||
"@types/react": "18.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "5.30.5",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-next": "12.2.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"husky": "7.0.4",
|
||||
"jest": "27.5.1",
|
||||
"lint-staged": "12.1.7",
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
"@types/node": "17.0.16",
|
||||
"@types/react": "18.0.1",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-next": "12.2.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"husky": "7.0.4",
|
||||
"jest": "27.5.1",
|
||||
"lint-staged": "12.1.7",
|
||||
|
||||
@@ -32,7 +32,10 @@
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/node": "17.0.16",
|
||||
"@types/react": "18.0.1",
|
||||
"@typescript-eslint/eslint-plugin": "5.30.5",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"eslint-config-next": "12.2.0",
|
||||
"husky": "7.0.4",
|
||||
"jest": "27.5.1",
|
||||
"lint-staged": "12.1.7",
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"@typescript-eslint/parser": "5.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@blitzjs/config": "2.0.0-alpha.52",
|
||||
"@blitzjs/config": "2.0.0-alpha.55",
|
||||
"@types/react": "18.0.1",
|
||||
"@types/react-dom": "17.0.14",
|
||||
"react": "18.0.0",
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
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 {
|
||||
336
pnpm-lock.yaml
generated
336
pnpm-lock.yaml
generated
@@ -48,8 +48,11 @@ importers:
|
||||
"@types/node": 17.0.16
|
||||
"@types/preview-email": 2.0.1
|
||||
"@types/react": 18.0.1
|
||||
blitz: workspace:2.0.0-alpha.51
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1
|
||||
blitz: workspace:2.0.0-alpha.54
|
||||
eslint: 7.32.0
|
||||
eslint-config-next: 12.2.0
|
||||
eslint-config-prettier: 8.5.0
|
||||
husky: 7.0.4
|
||||
jest: 27.5.1
|
||||
lint-staged: 12.1.7
|
||||
@@ -88,7 +91,10 @@ importers:
|
||||
"@types/node": 17.0.16
|
||||
"@types/preview-email": 2.0.1
|
||||
"@types/react": 18.0.1
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
eslint: 7.32.0
|
||||
eslint-config-next: 12.2.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
eslint-config-prettier: 8.5.0_eslint@7.32.0
|
||||
husky: 7.0.4
|
||||
jest: 27.5.1_ts-node@10.7.0
|
||||
lint-staged: 12.1.7
|
||||
@@ -318,7 +324,7 @@ importers:
|
||||
"@vitejs/plugin-react": 1.3.0
|
||||
delay: 5.0.0
|
||||
eslint: 7.32.0
|
||||
eslint-config-next: 12.2.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
eslint-config-next: 12.2.2_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
eslint-plugin-testing-library: 5.0.1_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
jsdom: 19.0.0
|
||||
typescript: 4.6.3
|
||||
@@ -469,8 +475,8 @@ importers:
|
||||
|
||||
packages/blitz:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.51
|
||||
"@blitzjs/generator": 2.0.0-alpha.51
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.54
|
||||
"@blitzjs/generator": 2.0.0-alpha.54
|
||||
"@types/cookie": 0.4.1
|
||||
"@types/cross-spawn": 6.0.2
|
||||
"@types/debug": 4.1.7
|
||||
@@ -487,6 +493,7 @@ importers:
|
||||
"@types/test-listen": 1.1.0
|
||||
"@types/watchpack": 1.1.1
|
||||
arg: 5.0.1
|
||||
boxen: 7.0.0
|
||||
chalk: ^4.1.0
|
||||
console-table-printer: 2.10.0
|
||||
cross-spawn: 7.0.3
|
||||
@@ -523,6 +530,7 @@ importers:
|
||||
dependencies:
|
||||
"@blitzjs/generator": link:../generator
|
||||
arg: 5.0.1
|
||||
boxen: 7.0.0
|
||||
chalk: 4.1.2
|
||||
console-table-printer: 2.10.0
|
||||
cross-spawn: 7.0.3
|
||||
@@ -535,6 +543,7 @@ importers:
|
||||
find-up: 4.1.0
|
||||
fs-extra: 10.0.1
|
||||
hasbin: 1.2.3
|
||||
node-fetch: 3.2.3
|
||||
npm-which: 3.0.1
|
||||
ora: 5.3.0
|
||||
os-name: 5.0.1
|
||||
@@ -566,7 +575,6 @@ importers:
|
||||
"@types/test-listen": 1.1.0
|
||||
"@types/watchpack": 1.1.1
|
||||
express: 4.17.3
|
||||
node-fetch: 3.2.3
|
||||
react: 18.0.0
|
||||
test-listen: 1.1.0
|
||||
typescript: 4.6.3
|
||||
@@ -576,7 +584,7 @@ importers:
|
||||
|
||||
packages/blitz-auth:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.51
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.54
|
||||
"@testing-library/react": 13.0.0
|
||||
"@testing-library/react-hooks": 7.0.2
|
||||
"@types/b64-lite": 1.3.0
|
||||
@@ -590,7 +598,7 @@ importers:
|
||||
"@types/secure-password": 3.1.1
|
||||
b64-lite: 1.4.0
|
||||
bad-behavior: 1.0.1
|
||||
blitz: 2.0.0-alpha.51
|
||||
blitz: 2.0.0-alpha.54
|
||||
cookie: 0.4.1
|
||||
cookie-session: 2.0.0
|
||||
debug: 4.3.3
|
||||
@@ -641,8 +649,8 @@ importers:
|
||||
|
||||
packages/blitz-next:
|
||||
specifiers:
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.51
|
||||
"@blitzjs/rpc": 2.0.0-alpha.51
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.54
|
||||
"@blitzjs/rpc": 2.0.0-alpha.54
|
||||
"@testing-library/dom": 8.13.0
|
||||
"@testing-library/jest-dom": 5.16.3
|
||||
"@testing-library/react": 13.0.0
|
||||
@@ -653,7 +661,7 @@ importers:
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
"@types/testing-library__react-hooks": 4.0.0
|
||||
blitz: 2.0.0-alpha.51
|
||||
blitz: 2.0.0-alpha.54
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.3
|
||||
find-up: 4.1.0
|
||||
@@ -702,14 +710,14 @@ importers:
|
||||
|
||||
packages/blitz-rpc:
|
||||
specifiers:
|
||||
"@blitzjs/auth": 2.0.0-alpha.51
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.51
|
||||
"@blitzjs/auth": 2.0.0-alpha.54
|
||||
"@blitzjs/config": workspace:2.0.0-alpha.54
|
||||
"@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.51
|
||||
blitz: 2.0.0-alpha.54
|
||||
chalk: ^4.1.0
|
||||
debug: 4.3.3
|
||||
next: 12.2.0
|
||||
@@ -751,12 +759,12 @@ importers:
|
||||
"@babel/plugin-syntax-typescript": 7.17.12
|
||||
"@babel/preset-env": 7.12.10
|
||||
"@blitzjs/config": workspace:*
|
||||
"@blitzjs/generator": 2.0.0-alpha.51
|
||||
"@blitzjs/generator": 2.0.0-alpha.54
|
||||
"@types/jscodeshift": 0.11.2
|
||||
"@types/node": 17.0.16
|
||||
arg: 5.0.1
|
||||
ast-types: 0.14.2
|
||||
blitz: 2.0.0-alpha.51
|
||||
blitz: 2.0.0-alpha.54
|
||||
chalk: ^4.1.0
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.3
|
||||
@@ -794,14 +802,14 @@ importers:
|
||||
specifiers:
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1
|
||||
"@typescript-eslint/parser": 5.9.1
|
||||
eslint-config-next: 12.0.7
|
||||
eslint-config-prettier: 8.3.0
|
||||
eslint-config-next: 12.2.0
|
||||
eslint-config-prettier: 8.5.0
|
||||
typescript: ^4.5.3
|
||||
dependencies:
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1_z2xqbpkx26iu62rx2zdto5f5qy
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
eslint-config-next: 12.0.7_typescript@4.6.3
|
||||
eslint-config-prettier: 8.3.0
|
||||
eslint-config-next: 12.2.0_typescript@4.6.3
|
||||
eslint-config-prettier: 8.5.0
|
||||
devDependencies:
|
||||
typescript: 4.6.3
|
||||
|
||||
@@ -811,7 +819,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.51
|
||||
"@blitzjs/config": 2.0.0-alpha.54
|
||||
"@juanm04/cpx": 2.0.1
|
||||
"@mrleebo/prisma-ast": 0.2.6
|
||||
"@types/babel__core": 7.1.19
|
||||
@@ -902,7 +910,7 @@ importers:
|
||||
|
||||
packages/pkg-template:
|
||||
specifiers:
|
||||
"@blitzjs/config": 2.0.0-alpha.51
|
||||
"@blitzjs/config": 2.0.0-alpha.54
|
||||
"@types/react": 18.0.1
|
||||
"@types/react-dom": 17.0.14
|
||||
"@typescript-eslint/eslint-plugin": 5.9.1
|
||||
@@ -3435,15 +3443,6 @@ packages:
|
||||
integrity: sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==,
|
||||
}
|
||||
|
||||
/@next/eslint-plugin-next/12.0.7:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-xk7eMjw4+roWWR/0ETIoToCNs2wdvCGgQUiUO390Rj33/82yxZsh+ODRSaFWkiKp8zHWQN5GCW+U5pfjt/gyQg==,
|
||||
}
|
||||
dependencies:
|
||||
glob: 7.1.7
|
||||
dev: false
|
||||
|
||||
/@next/eslint-plugin-next/12.2.0:
|
||||
resolution:
|
||||
{
|
||||
@@ -3451,6 +3450,14 @@ packages:
|
||||
}
|
||||
dependencies:
|
||||
glob: 7.1.7
|
||||
|
||||
/@next/eslint-plugin-next/12.2.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-XOi0WzJhGH3Lk51SkSu9eZxF+IY1ZZhWcJTIGBycAbWU877IQa6+6KxMATWCOs7c+bmp6Sd8KywXJaDRxzu0JA==,
|
||||
}
|
||||
dependencies:
|
||||
glob: 7.1.7
|
||||
dev: true
|
||||
|
||||
/@next/swc-android-arm-eabi/12.2.0:
|
||||
@@ -4751,6 +4758,35 @@ packages:
|
||||
dev: true
|
||||
optional: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin/5.9.1_hrkuebk64jiu2ut2d2sm4oylnu:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-Xv9tkFlyD4MQGpJgTo6wqDqGvHIRmRgah/2Sjz1PUnJTawjHWIwBivUE9x0QtU2WVii9baYgavo/bHjrZJkqTw==,
|
||||
}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": ^5.0.0
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
typescript: "*"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils": 5.9.1_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
"@typescript-eslint/scope-manager": 5.9.1
|
||||
"@typescript-eslint/type-utils": 5.9.1_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
debug: 4.3.4
|
||||
eslint: 7.32.0
|
||||
functional-red-black-tree: 1.0.1
|
||||
ignore: 5.2.0
|
||||
regexpp: 3.2.0
|
||||
semver: 7.3.7
|
||||
tsutils: 3.21.0_typescript@4.6.3
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin/5.9.1_rvfvfrvgktle2hmlnfpjw2zp4u:
|
||||
resolution:
|
||||
{
|
||||
@@ -4890,6 +4926,27 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser/5.28.0_typescript@4.6.3:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==,
|
||||
}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
typescript: "*"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": 5.28.0
|
||||
"@typescript-eslint/types": 5.28.0
|
||||
"@typescript-eslint/typescript-estree": 5.28.0_typescript@4.6.3
|
||||
debug: 4.3.4
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@typescript-eslint/parser/5.9.1_hrkuebk64jiu2ut2d2sm4oylnu:
|
||||
resolution:
|
||||
{
|
||||
@@ -4944,7 +5001,6 @@ packages:
|
||||
dependencies:
|
||||
"@typescript-eslint/types": 5.28.0
|
||||
"@typescript-eslint/visitor-keys": 5.28.0
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/scope-manager/5.9.1:
|
||||
resolution:
|
||||
@@ -5005,7 +5061,6 @@ packages:
|
||||
integrity: sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==,
|
||||
}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/types/5.9.1:
|
||||
resolution:
|
||||
@@ -5036,7 +5091,6 @@ packages:
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree/5.9.1_typescript@4.6.3:
|
||||
resolution:
|
||||
@@ -5091,7 +5145,6 @@ packages:
|
||||
dependencies:
|
||||
"@typescript-eslint/types": 5.28.0
|
||||
eslint-visitor-keys: 3.3.0
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/visitor-keys/5.9.1:
|
||||
resolution:
|
||||
@@ -5846,6 +5899,23 @@ packages:
|
||||
widest-line: 3.1.0
|
||||
dev: false
|
||||
|
||||
/boxen/7.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==,
|
||||
}
|
||||
engines: {node: ">=14.16"}
|
||||
dependencies:
|
||||
ansi-align: 3.0.1
|
||||
camelcase: 7.0.0
|
||||
chalk: 5.0.1
|
||||
cli-boxes: 3.0.0
|
||||
string-width: 5.1.2
|
||||
type-fest: 2.16.0
|
||||
widest-line: 4.0.1
|
||||
wrap-ansi: 8.0.1
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
resolution:
|
||||
{
|
||||
@@ -6113,6 +6183,14 @@ packages:
|
||||
}
|
||||
engines: {node: ">=10"}
|
||||
|
||||
/camelcase/7.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==,
|
||||
}
|
||||
engines: {node: ">=14.16"}
|
||||
dev: false
|
||||
|
||||
/caniuse-lite/1.0.30001339:
|
||||
resolution:
|
||||
{
|
||||
@@ -6172,7 +6250,6 @@ packages:
|
||||
integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==,
|
||||
}
|
||||
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
/char-regex/1.0.2:
|
||||
resolution:
|
||||
@@ -6294,6 +6371,14 @@ packages:
|
||||
engines: {node: ">=6"}
|
||||
dev: false
|
||||
|
||||
/cli-boxes/3.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==,
|
||||
}
|
||||
engines: {node: ">=10"}
|
||||
dev: false
|
||||
|
||||
/cli-cursor/3.1.0:
|
||||
resolution:
|
||||
{
|
||||
@@ -6659,6 +6744,7 @@ packages:
|
||||
{
|
||||
integrity: sha512-ksjJc/xVTQzT2q6trPja2qWynMEaGO36rDui2SiqLPYab9TmPgT8nIVcre/yscviPCSweUdCDGKe4MsQA9w1zQ==,
|
||||
}
|
||||
deprecated: core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.
|
||||
requiresBuild: true
|
||||
|
||||
/core-util-is/1.0.3:
|
||||
@@ -6806,7 +6892,6 @@ packages:
|
||||
integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==,
|
||||
}
|
||||
engines: {node: ">= 12"}
|
||||
dev: true
|
||||
|
||||
/data-urls/2.0.0:
|
||||
resolution:
|
||||
@@ -8304,34 +8389,6 @@ packages:
|
||||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
/eslint-config-next/12.0.7_typescript@4.6.3:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-kWOaym5qjyzR190zFKkZMaHetmiRORmzJiKML7Kr9CL213S6SwkrHHCEL58TRdpx0NA+HzrsFR9zgcV2pvV2Yg==,
|
||||
}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
next: ">=10.2.0"
|
||||
typescript: ">=3.3.1"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@next/eslint-plugin-next": 12.0.7
|
||||
"@rushstack/eslint-patch": 1.1.3
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
eslint-plugin-import: 2.26.0_oisyptfcq77gha3jnxd6iiraai
|
||||
eslint-plugin-jsx-a11y: 6.5.1
|
||||
eslint-plugin-react: 7.30.0
|
||||
eslint-plugin-react-hooks: 4.5.0
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-config-next/12.2.0_hrkuebk64jiu2ut2d2sm4oylnu:
|
||||
resolution:
|
||||
{
|
||||
@@ -8360,16 +8417,83 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-config-prettier/8.3.0:
|
||||
/eslint-config-next/12.2.0_typescript@4.6.3:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==,
|
||||
integrity: sha512-QWzNegadFXjQ0h3hixnLacRM9Kot85vQefyNsA8IeOnERZMz0Gvays1W6DMCjSxJbnCwuWaMXj9DCpar5IahRA==,
|
||||
}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
typescript: ">=3.3.1"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@next/eslint-plugin-next": 12.2.0
|
||||
"@rushstack/eslint-patch": 1.1.3
|
||||
"@typescript-eslint/parser": 5.28.0_typescript@4.6.3
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
eslint-plugin-import: 2.26.0_xtdmsd4adcznatktegie3poqce
|
||||
eslint-plugin-jsx-a11y: 6.5.1
|
||||
eslint-plugin-react: 7.30.0
|
||||
eslint-plugin-react-hooks: 4.5.0
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-config-next/12.2.2_hrkuebk64jiu2ut2d2sm4oylnu:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-oJhWBLC4wDYYUFv/5APbjHUFd0QRFCojMdj/QnMoOEktmeTvwnnoA8F8uaXs0fQgsaTK0tbUxBRv9/Y4/rpxOA==,
|
||||
}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0
|
||||
typescript: ">=3.3.1"
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@next/eslint-plugin-next": 12.2.2
|
||||
"@rushstack/eslint-patch": 1.1.3
|
||||
"@typescript-eslint/parser": 5.28.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
eslint: 7.32.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy
|
||||
eslint-plugin-import: 2.26.0_zhtk6rij7obli3ams3sxis7j7e
|
||||
eslint-plugin-jsx-a11y: 6.5.1_eslint@7.32.0
|
||||
eslint-plugin-react: 7.30.0_eslint@7.32.0
|
||||
eslint-plugin-react-hooks: 4.5.0_eslint@7.32.0
|
||||
typescript: 4.6.3
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-config-prettier/8.5.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==,
|
||||
}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: ">=7.0.0"
|
||||
dev: false
|
||||
|
||||
/eslint-config-prettier/8.5.0_eslint@7.32.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==,
|
||||
}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
eslint: ">=7.0.0"
|
||||
dependencies:
|
||||
eslint: 7.32.0
|
||||
dev: true
|
||||
|
||||
/eslint-import-resolver-node/0.3.6:
|
||||
resolution:
|
||||
{
|
||||
@@ -8392,14 +8516,13 @@ packages:
|
||||
eslint-plugin-import: "*"
|
||||
dependencies:
|
||||
debug: 4.3.4
|
||||
eslint-plugin-import: 2.26.0_oisyptfcq77gha3jnxd6iiraai
|
||||
eslint-plugin-import: 2.26.0_xtdmsd4adcznatktegie3poqce
|
||||
glob: 7.2.0
|
||||
is-glob: 4.0.3
|
||||
resolve: 1.22.0
|
||||
tsconfig-paths: 3.14.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-import-resolver-typescript/2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy:
|
||||
resolution:
|
||||
@@ -8422,36 +8545,6 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-module-utils/2.7.3_dbnyosdljuntx5ukba4qoruhni:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==,
|
||||
}
|
||||
engines: {node: ">=4"}
|
||||
peerDependencies:
|
||||
"@typescript-eslint/parser": "*"
|
||||
eslint-import-resolver-node: "*"
|
||||
eslint-import-resolver-typescript: "*"
|
||||
eslint-import-resolver-webpack: "*"
|
||||
peerDependenciesMeta:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
eslint-import-resolver-node:
|
||||
optional: true
|
||||
eslint-import-resolver-typescript:
|
||||
optional: true
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
debug: 3.2.7
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
find-up: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-module-utils/2.7.3_pbmiczca3qpqvnkfcriol7sq7u:
|
||||
resolution:
|
||||
{
|
||||
@@ -8473,16 +8566,15 @@ packages:
|
||||
eslint-import-resolver-webpack:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.28.0_hrkuebk64jiu2ut2d2sm4oylnu
|
||||
"@typescript-eslint/parser": 5.28.0_typescript@4.6.3
|
||||
debug: 3.2.7
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-import-resolver-typescript: 2.7.1_hpmu7kn6tcn2vnxpfzvv33bxmy
|
||||
eslint-import-resolver-typescript: 2.7.1_fkfqfehjtk7sk2efaqbgxsuasa
|
||||
find-up: 2.1.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-import/2.26.0_oisyptfcq77gha3jnxd6iiraai:
|
||||
/eslint-plugin-import/2.26.0_xtdmsd4adcznatktegie3poqce:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==,
|
||||
@@ -8495,13 +8587,13 @@ packages:
|
||||
"@typescript-eslint/parser":
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.9.1_typescript@4.6.3
|
||||
"@typescript-eslint/parser": 5.28.0_typescript@4.6.3
|
||||
array-includes: 3.1.5
|
||||
array.prototype.flat: 1.3.0
|
||||
debug: 2.6.9
|
||||
doctrine: 2.1.0
|
||||
eslint-import-resolver-node: 0.3.6
|
||||
eslint-module-utils: 2.7.3_dbnyosdljuntx5ukba4qoruhni
|
||||
eslint-module-utils: 2.7.3_pbmiczca3qpqvnkfcriol7sq7u
|
||||
has: 1.0.3
|
||||
is-core-module: 2.8.1
|
||||
is-glob: 4.0.3
|
||||
@@ -8513,7 +8605,6 @@ packages:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/eslint-plugin-import/2.26.0_zhtk6rij7obli3ams3sxis7j7e:
|
||||
resolution:
|
||||
@@ -9176,7 +9267,6 @@ packages:
|
||||
dependencies:
|
||||
node-domexception: 1.0.0
|
||||
web-streams-polyfill: 3.2.1
|
||||
dev: true
|
||||
|
||||
/file-entry-cache/6.0.1:
|
||||
resolution:
|
||||
@@ -9388,7 +9478,6 @@ packages:
|
||||
engines: {node: ">=12.20.0"}
|
||||
dependencies:
|
||||
fetch-blob: 3.1.5
|
||||
dev: true
|
||||
|
||||
/forwarded/0.2.0:
|
||||
resolution:
|
||||
@@ -12832,7 +12921,6 @@ packages:
|
||||
integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==,
|
||||
}
|
||||
engines: {node: ">=10.5.0"}
|
||||
dev: true
|
||||
|
||||
/node-fetch/3.2.3:
|
||||
resolution:
|
||||
@@ -12844,7 +12932,6 @@ packages:
|
||||
data-uri-to-buffer: 4.0.0
|
||||
fetch-blob: 3.1.5
|
||||
formdata-polyfill: 4.0.10
|
||||
dev: true
|
||||
|
||||
/node-gyp-build/4.4.0:
|
||||
resolution:
|
||||
@@ -16385,6 +16472,14 @@ packages:
|
||||
engines: {node: ">=8"}
|
||||
dev: false
|
||||
|
||||
/type-fest/2.16.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==,
|
||||
}
|
||||
engines: {node: ">=12.20"}
|
||||
dev: false
|
||||
|
||||
/type-is/1.6.18:
|
||||
resolution:
|
||||
{
|
||||
@@ -16898,7 +16993,6 @@ packages:
|
||||
integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==,
|
||||
}
|
||||
engines: {node: ">= 8"}
|
||||
dev: true
|
||||
|
||||
/webidl-conversions/5.0.0:
|
||||
resolution:
|
||||
@@ -17072,6 +17166,16 @@ packages:
|
||||
string-width: 4.2.3
|
||||
dev: false
|
||||
|
||||
/widest-line/4.0.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==,
|
||||
}
|
||||
engines: {node: ">=12"}
|
||||
dependencies:
|
||||
string-width: 5.1.2
|
||||
dev: false
|
||||
|
||||
/windows-release/5.0.1:
|
||||
resolution:
|
||||
{
|
||||
@@ -17124,6 +17228,18 @@ packages:
|
||||
string-width: 4.2.3
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
/wrap-ansi/8.0.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==,
|
||||
}
|
||||
engines: {node: ">=12"}
|
||||
dependencies:
|
||||
ansi-styles: 6.1.0
|
||||
string-width: 5.1.2
|
||||
strip-ansi: 7.0.1
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
resolution:
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user