mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-25 19:00:01 +00:00
Compare commits
5 Commits
@vercel/ne
...
testing_fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fa8af9136 | ||
|
|
2090719c39 | ||
|
|
11813250ce | ||
|
|
58bec9aa01 | ||
|
|
dd199896ab |
2
.changeset/gorgeous-cycles-sell.md
Normal file
2
.changeset/gorgeous-cycles-sell.md
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
---
|
||||
5
.changeset/lemon-bears-talk.md
Normal file
5
.changeset/lemon-bears-talk.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@vercel/build-utils": patch
|
||||
---
|
||||
|
||||
reject mismatched corepack and detected package managers
|
||||
5
.github/dependabot.yml
vendored
5
.github/dependabot.yml
vendored
@@ -63,21 +63,16 @@ updates:
|
||||
allow:
|
||||
- dependency-name: '@remix-run*'
|
||||
- dependency-name: '@shopify*'
|
||||
- dependency-name: 'remix*'
|
||||
ignore:
|
||||
- dependency-name: '@remix-run*'
|
||||
update-types:
|
||||
['version-update:semver-major', 'version-update:semver-patch']
|
||||
- dependency-name: 'remix*'
|
||||
update-types:
|
||||
['version-update:semver-major', 'version-update:semver-patch']
|
||||
- dependency-name: '@shopify*'
|
||||
update-types:
|
||||
['version-update:semver-major', 'version-update:semver-patch']
|
||||
groups:
|
||||
core:
|
||||
patterns:
|
||||
- 'remix*'
|
||||
- '@remix-run*'
|
||||
- '@shopify*'
|
||||
update-types:
|
||||
|
||||
@@ -20,6 +20,12 @@ import { cloneEnv } from '../clone-env';
|
||||
// Only allow one `runNpmInstall()` invocation to run concurrently
|
||||
const runNpmInstallSema = new Sema(1);
|
||||
|
||||
const NO_OVERRIDE = {
|
||||
detectedLockfile: undefined,
|
||||
detectedPackageManager: undefined,
|
||||
path: undefined,
|
||||
};
|
||||
|
||||
export type CliType = 'yarn' | 'npm' | 'pnpm' | 'bun';
|
||||
|
||||
export interface ScanParentDirsResult {
|
||||
@@ -557,9 +563,6 @@ export function getEnvForPackageManager({
|
||||
nodeVersion: NodeVersion | undefined;
|
||||
env: { [x: string]: string | undefined };
|
||||
}) {
|
||||
const corepackFlagged = env.ENABLE_EXPERIMENTAL_COREPACK === '1';
|
||||
const corepackEnabled = corepackFlagged && Boolean(packageJsonPackageManager);
|
||||
|
||||
const {
|
||||
detectedLockfile,
|
||||
detectedPackageManager,
|
||||
@@ -567,10 +570,12 @@ export function getEnvForPackageManager({
|
||||
} = getPathOverrideForPackageManager({
|
||||
cliType,
|
||||
lockfileVersion,
|
||||
corepackEnabled,
|
||||
corepackPackageManager: packageJsonPackageManager,
|
||||
nodeVersion,
|
||||
});
|
||||
|
||||
const corepackFlagged = env.ENABLE_EXPERIMENTAL_COREPACK === '1';
|
||||
const corepackEnabled = corepackFlagged && Boolean(packageJsonPackageManager);
|
||||
if (corepackEnabled) {
|
||||
debug(
|
||||
`Detected corepack use for "${packageJsonPackageManager}". Not overriding package manager version.`
|
||||
@@ -629,12 +634,9 @@ type DetectedPnpmVersion =
|
||||
| 'corepack_enabled';
|
||||
|
||||
function detectPnpmVersion(
|
||||
lockfileVersion: number | undefined,
|
||||
corepackEnabled: boolean
|
||||
lockfileVersion: number | undefined
|
||||
): DetectedPnpmVersion {
|
||||
switch (true) {
|
||||
case corepackEnabled:
|
||||
return 'corepack_enabled';
|
||||
case lockfileVersion === undefined:
|
||||
return 'not found';
|
||||
case lockfileVersion === 5.3:
|
||||
@@ -665,12 +667,12 @@ function shouldUseNpm7(
|
||||
export function getPathOverrideForPackageManager({
|
||||
cliType,
|
||||
lockfileVersion,
|
||||
corepackEnabled,
|
||||
corepackPackageManager,
|
||||
nodeVersion,
|
||||
}: {
|
||||
cliType: CliType;
|
||||
lockfileVersion: number | undefined;
|
||||
corepackEnabled: boolean;
|
||||
corepackPackageManager: string | undefined;
|
||||
nodeVersion: NodeVersion | undefined;
|
||||
}): {
|
||||
/**
|
||||
@@ -683,73 +685,164 @@ export function getPathOverrideForPackageManager({
|
||||
detectedPackageManager: string | undefined;
|
||||
/**
|
||||
* Value of $PATH that includes the binaries for the detected package manager.
|
||||
* Undefined if no $PATH are necessary.
|
||||
* `undefined` if no $PATH are necessary.
|
||||
*/
|
||||
path: string | undefined;
|
||||
} {
|
||||
const no_override = {
|
||||
detectedLockfile: undefined,
|
||||
detectedPackageManager: undefined,
|
||||
path: undefined,
|
||||
};
|
||||
const detectedPackageManger = detectPackageManager(
|
||||
cliType,
|
||||
lockfileVersion,
|
||||
nodeVersion
|
||||
);
|
||||
if (!detectedPackageManger) {
|
||||
return NO_OVERRIDE;
|
||||
}
|
||||
|
||||
if (!corepackPackageManager) {
|
||||
return detectedPackageManger;
|
||||
}
|
||||
|
||||
if (
|
||||
validateVersionOverlap(
|
||||
detectedPackageManger.detectedPackageManager,
|
||||
corepackPackageManager
|
||||
)
|
||||
) {
|
||||
// corepack is going to take care of it; do nothing special
|
||||
return NO_OVERRIDE;
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`Detected package manager (by lockfile) "${detectedPackageManger.detectedPackageManager}" does not match intended corepack package manager "${corepackPackageManager}". Update your lockfile or "package.json#packageManager" values to match.`
|
||||
);
|
||||
}
|
||||
|
||||
function validateVersionOverlap(
|
||||
detectedPackageManger: string,
|
||||
corepackPackageManager: string
|
||||
) {
|
||||
const validatedDetectedPackageManger = validateVersionSpecifier(
|
||||
detectedPackageManger
|
||||
);
|
||||
if (!validatedDetectedPackageManger) {
|
||||
throw new Error(
|
||||
`Detected package manager "${detectedPackageManger}" is not a valid semver value.`
|
||||
);
|
||||
}
|
||||
|
||||
const validatedCorepackPackageManager = validateVersionSpecifier(
|
||||
corepackPackageManager
|
||||
);
|
||||
if (!validatedCorepackPackageManager) {
|
||||
throw new Error(
|
||||
`Intended corepack defined package manager "${corepackPackageManager}" is not a valid semver value.`
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
validatedDetectedPackageManger.packageName !==
|
||||
validatedCorepackPackageManager.packageName
|
||||
) {
|
||||
throw new Error(
|
||||
`Detected package manager "${validatedDetectedPackageManger.packageName}" does not match intended corepack defined package manager "${validatedCorepackPackageManager.packageName}". Change your lockfile or "package.json#packageManager" value to match.`
|
||||
);
|
||||
}
|
||||
|
||||
return intersects(
|
||||
validatedDetectedPackageManger.packageVersionRange,
|
||||
validatedCorepackPackageManager.packageVersionRange
|
||||
);
|
||||
}
|
||||
|
||||
function validateVersionSpecifier(version: string) {
|
||||
if (!version) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const [before, after, ...extra] = version.split('@');
|
||||
|
||||
if (extra.length) {
|
||||
// should not have more than one `@`
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (!before) {
|
||||
// should have a package before the `@`
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (!after) {
|
||||
// should have a version after the `@`
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (!validRange(after)) {
|
||||
// the version after the `@` should be a valid semver value
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return {
|
||||
packageName: before,
|
||||
packageVersionRange: after,
|
||||
};
|
||||
}
|
||||
|
||||
function detectPackageManager(
|
||||
cliType: CliType,
|
||||
lockfileVersion: number | undefined,
|
||||
nodeVersion: NodeVersion | undefined
|
||||
) {
|
||||
switch (cliType) {
|
||||
case 'npm':
|
||||
switch (true) {
|
||||
case corepackEnabled:
|
||||
return no_override;
|
||||
case shouldUseNpm7(lockfileVersion, nodeVersion):
|
||||
return {
|
||||
path: '/node16/bin-npm7',
|
||||
detectedLockfile: 'package-lock.json',
|
||||
detectedPackageManager: 'npm 7+',
|
||||
detectedPackageManager: 'npm@7.x',
|
||||
};
|
||||
default:
|
||||
return no_override;
|
||||
return undefined;
|
||||
}
|
||||
case 'pnpm':
|
||||
switch (detectPnpmVersion(lockfileVersion, corepackEnabled)) {
|
||||
case 'corepack_enabled':
|
||||
return no_override;
|
||||
switch (detectPnpmVersion(lockfileVersion)) {
|
||||
case 'pnpm 7':
|
||||
// pnpm 7
|
||||
return {
|
||||
path: '/pnpm7/node_modules/.bin',
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 7',
|
||||
detectedPackageManager: 'pnpm@7.x',
|
||||
};
|
||||
case 'pnpm 8':
|
||||
// pnpm 8
|
||||
return {
|
||||
path: '/pnpm8/node_modules/.bin',
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 8',
|
||||
detectedPackageManager: 'pnpm@8.x',
|
||||
};
|
||||
case 'pnpm 9':
|
||||
// pnpm 9
|
||||
return {
|
||||
path: '/pnpm9/node_modules/.bin',
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 9',
|
||||
detectedPackageManager: 'pnpm@9.x',
|
||||
};
|
||||
case 'pnpm 6':
|
||||
default:
|
||||
return no_override;
|
||||
return undefined;
|
||||
}
|
||||
case 'bun':
|
||||
switch (true) {
|
||||
case corepackEnabled:
|
||||
return no_override;
|
||||
default:
|
||||
// Bun 1
|
||||
return {
|
||||
path: '/bun1',
|
||||
detectedLockfile: 'bun.lockb',
|
||||
detectedPackageManager: 'Bun',
|
||||
detectedPackageManager: 'bun@1.x',
|
||||
};
|
||||
}
|
||||
case 'yarn':
|
||||
return no_override;
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -793,13 +886,19 @@ export function getPathForPackageManager({
|
||||
// broken behavior.
|
||||
const corepackEnabled = env.ENABLE_EXPERIMENTAL_COREPACK === '1';
|
||||
|
||||
const overrides = getPathOverrideForPackageManager({
|
||||
let overrides = getPathOverrideForPackageManager({
|
||||
cliType,
|
||||
lockfileVersion,
|
||||
corepackEnabled,
|
||||
corepackPackageManager: undefined,
|
||||
nodeVersion,
|
||||
});
|
||||
|
||||
if (corepackEnabled) {
|
||||
// this is essentially always overriding the value of `override`, but that's what was happening
|
||||
// in this deprecated function before
|
||||
overrides = NO_OVERRIDE;
|
||||
}
|
||||
|
||||
const alreadyInPath = (newPath: string) => {
|
||||
const oldPath = env.PATH ?? '';
|
||||
return oldPath.split(path.delimiter).includes(newPath);
|
||||
|
||||
@@ -63,7 +63,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
FOO: 'bar',
|
||||
PATH: `/node16/bin-npm7${delimiter}foo`,
|
||||
},
|
||||
consoleLogOutput: 'Detected `package-lock.json` generated by npm 7+',
|
||||
consoleLogOutput: 'Detected `package-lock.json` generated by npm@7.x',
|
||||
consoleWarnOutput: null,
|
||||
},
|
||||
{
|
||||
@@ -71,7 +71,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
args: {
|
||||
cliType: 'npm',
|
||||
nodeVersion: { major: 14, range: '14.x', runtime: 'nodejs14.x' },
|
||||
packageJsonPackageManager: 'pnpm@latest',
|
||||
packageJsonPackageManager: 'npm@*',
|
||||
lockfileVersion: 2,
|
||||
env: {
|
||||
FOO: 'bar',
|
||||
@@ -177,7 +177,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
PATH: `/pnpm7/node_modules/.bin${delimiter}foo`,
|
||||
},
|
||||
consoleLogOutput:
|
||||
'Detected `pnpm-lock.yaml` version 5.4 generated by pnpm 7',
|
||||
'Detected `pnpm-lock.yaml` version 5.4 generated by pnpm@7.x',
|
||||
consoleWarnOutput: null,
|
||||
},
|
||||
{
|
||||
@@ -197,7 +197,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
PATH: `/pnpm8/node_modules/.bin${delimiter}foo`,
|
||||
},
|
||||
consoleLogOutput:
|
||||
'Detected `pnpm-lock.yaml` version 6 generated by pnpm 8',
|
||||
'Detected `pnpm-lock.yaml` version 6 generated by pnpm@8.x',
|
||||
consoleWarnOutput: null,
|
||||
},
|
||||
{
|
||||
@@ -217,7 +217,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
PATH: `/pnpm9/node_modules/.bin${delimiter}foo`,
|
||||
},
|
||||
consoleLogOutput:
|
||||
'Detected `pnpm-lock.yaml` version 9 generated by pnpm 9',
|
||||
'Detected `pnpm-lock.yaml` version 9 generated by pnpm@9.x',
|
||||
consoleWarnOutput: null,
|
||||
},
|
||||
{
|
||||
@@ -236,7 +236,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
FOO: 'bar',
|
||||
PATH: `/bun1${delimiter}/usr/local/bin`,
|
||||
},
|
||||
consoleLogOutput: 'Detected `bun.lockb` generated by Bun',
|
||||
consoleLogOutput: 'Detected `bun.lockb` generated by bun@1.x',
|
||||
consoleWarnOutput:
|
||||
'Warning: Bun is used as a package manager at build time only, not at runtime with Functions',
|
||||
},
|
||||
@@ -245,7 +245,7 @@ describe('Test `getEnvForPackageManager()`', () => {
|
||||
args: {
|
||||
cliType: 'pnpm',
|
||||
nodeVersion: { major: 16, range: '16.x', runtime: 'nodejs16.x' },
|
||||
packageJsonPackageManager: 'npm@latest',
|
||||
packageJsonPackageManager: 'pnpm@*',
|
||||
lockfileVersion: 5.4,
|
||||
env: {
|
||||
FOO: 'bar',
|
||||
@@ -342,7 +342,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'package-lock.json',
|
||||
detectedPackageManager: 'npm 7+',
|
||||
detectedPackageManager: 'npm@7.x',
|
||||
path: '/node16/bin-npm7',
|
||||
},
|
||||
},
|
||||
@@ -351,7 +351,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
args: {
|
||||
cliType: 'npm',
|
||||
nodeVersion: { major: 14, range: '14.x', runtime: 'nodejs14.x' },
|
||||
packageJsonPackageManager: 'pnpm@latest',
|
||||
packageJsonPackageManager: 'npm@*',
|
||||
lockfileVersion: 2,
|
||||
env: {
|
||||
FOO: 'bar',
|
||||
@@ -415,7 +415,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 7',
|
||||
detectedPackageManager: 'pnpm@7.x',
|
||||
path: '/pnpm7/node_modules/.bin',
|
||||
},
|
||||
},
|
||||
@@ -433,7 +433,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 8',
|
||||
detectedPackageManager: 'pnpm@8.x',
|
||||
path: '/pnpm8/node_modules/.bin',
|
||||
},
|
||||
},
|
||||
@@ -451,7 +451,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 9',
|
||||
detectedPackageManager: 'pnpm@9.x',
|
||||
path: '/pnpm9/node_modules/.bin',
|
||||
},
|
||||
},
|
||||
@@ -469,7 +469,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'bun.lockb',
|
||||
detectedPackageManager: 'Bun',
|
||||
detectedPackageManager: 'bun@1.x',
|
||||
path: '/bun1',
|
||||
},
|
||||
},
|
||||
@@ -478,7 +478,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
args: {
|
||||
cliType: 'pnpm',
|
||||
nodeVersion: { major: 16, range: '16.x', runtime: 'nodejs16.x' },
|
||||
packageJsonPackageManager: 'npm@latest',
|
||||
packageJsonPackageManager: 'pnpm@*',
|
||||
lockfileVersion: 5.4,
|
||||
env: {
|
||||
FOO: 'bar',
|
||||
@@ -496,8 +496,7 @@ describe('Test `getPathOverrideForPackageManager()`', () => {
|
||||
getPathOverrideForPackageManager({
|
||||
cliType: args.cliType,
|
||||
lockfileVersion: args.lockfileVersion,
|
||||
// naive assumption that enabling corepack as a feature means it's used, but this is fine for tests
|
||||
corepackEnabled: Boolean(args.env.ENABLE_EXPERIMENTAL_COREPACK),
|
||||
corepackPackageManager: args.packageJsonPackageManager,
|
||||
nodeVersion: args.nodeVersion,
|
||||
})
|
||||
).toStrictEqual(want);
|
||||
@@ -540,7 +539,7 @@ describe('Test `getPathForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'package-lock.json',
|
||||
detectedPackageManager: 'npm 7+',
|
||||
detectedPackageManager: 'npm@7.x',
|
||||
path: '/node16/bin-npm7',
|
||||
yarnNodeLinker: undefined,
|
||||
},
|
||||
@@ -647,7 +646,7 @@ describe('Test `getPathForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'pnpm-lock.yaml',
|
||||
detectedPackageManager: 'pnpm 7',
|
||||
detectedPackageManager: 'pnpm@7.x',
|
||||
path: '/pnpm7/node_modules/.bin',
|
||||
yarnNodeLinker: undefined,
|
||||
},
|
||||
@@ -665,7 +664,7 @@ describe('Test `getPathForPackageManager()`', () => {
|
||||
},
|
||||
want: {
|
||||
detectedLockfile: 'bun.lockb',
|
||||
detectedPackageManager: 'Bun',
|
||||
detectedPackageManager: 'bun@1.x',
|
||||
path: '/bun1',
|
||||
yarnNodeLinker: undefined,
|
||||
},
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
# vercel
|
||||
|
||||
## 34.2.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Support incremental PPR for large applications ([#11625](https://github.com/vercel/vercel/pull/11625))
|
||||
|
||||
- Updated dependencies [[`73e558913`](https://github.com/vercel/vercel/commit/73e558913ab30ba097d7536a12fa8a7c967479f0)]:
|
||||
- @vercel/next@4.2.12
|
||||
|
||||
## 34.2.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vercel",
|
||||
"version": "34.2.1",
|
||||
"version": "34.2.0",
|
||||
"preferGlobal": true,
|
||||
"license": "Apache-2.0",
|
||||
"description": "The command-line interface for Vercel",
|
||||
@@ -36,7 +36,7 @@
|
||||
"@vercel/fun": "1.1.0",
|
||||
"@vercel/go": "3.1.1",
|
||||
"@vercel/hydrogen": "1.0.2",
|
||||
"@vercel/next": "4.2.12",
|
||||
"@vercel/next": "4.2.11",
|
||||
"@vercel/node": "3.1.5",
|
||||
"@vercel/python": "4.2.0",
|
||||
"@vercel/redwood": "2.0.9",
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
# @vercel/next
|
||||
|
||||
## 4.2.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Support incremental PPR for large applications ([#11625](https://github.com/vercel/vercel/pull/11625))
|
||||
|
||||
## 4.2.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@vercel/next",
|
||||
"version": "4.2.12",
|
||||
"version": "4.2.11",
|
||||
"license": "Apache-2.0",
|
||||
"main": "./dist/index",
|
||||
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
||||
|
||||
@@ -1358,11 +1358,6 @@ export const build: BuildV2 = async ({
|
||||
experimentalPPRRoutes.add(route);
|
||||
}
|
||||
|
||||
const isAppPPREnabled = requiredServerFilesManifest
|
||||
? requiredServerFilesManifest.config.experimental?.ppr === true ||
|
||||
requiredServerFilesManifest.config.experimental?.ppr === 'incremental'
|
||||
: false;
|
||||
|
||||
if (requiredServerFilesManifest) {
|
||||
if (!routesManifest) {
|
||||
throw new Error(
|
||||
@@ -1418,7 +1413,6 @@ export const build: BuildV2 = async ({
|
||||
hasIsr500Page,
|
||||
variantsManifest,
|
||||
experimentalPPRRoutes,
|
||||
isAppPPREnabled,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1938,7 +1932,7 @@ export const build: BuildV2 = async ({
|
||||
canUsePreviewMode,
|
||||
bypassToken: prerenderManifest.bypassToken || '',
|
||||
isServerMode,
|
||||
isAppPPREnabled: false,
|
||||
experimentalPPRRoutes,
|
||||
hasActionOutputSupport: false,
|
||||
}).then(arr =>
|
||||
localizeDynamicRoutes(
|
||||
@@ -1969,7 +1963,7 @@ export const build: BuildV2 = async ({
|
||||
canUsePreviewMode,
|
||||
bypassToken: prerenderManifest.bypassToken || '',
|
||||
isServerMode,
|
||||
isAppPPREnabled: false,
|
||||
experimentalPPRRoutes,
|
||||
hasActionOutputSupport: false,
|
||||
}).then(arr =>
|
||||
arr.map(route => {
|
||||
|
||||
@@ -144,7 +144,6 @@ export async function serverBuild({
|
||||
requiredServerFilesManifest,
|
||||
variantsManifest,
|
||||
experimentalPPRRoutes,
|
||||
isAppPPREnabled,
|
||||
}: {
|
||||
appPathRoutesManifest?: Record<string, string>;
|
||||
dynamicPages: string[];
|
||||
@@ -186,15 +185,7 @@ export async function serverBuild({
|
||||
requiredServerFilesManifest: NextRequiredServerFilesManifest;
|
||||
variantsManifest: VariantsManifest | null;
|
||||
experimentalPPRRoutes: ReadonlySet<string>;
|
||||
isAppPPREnabled: boolean;
|
||||
}): Promise<BuildResult> {
|
||||
if (isAppPPREnabled) {
|
||||
debug(
|
||||
'experimentalPPRRoutes',
|
||||
JSON.stringify(Array.from(experimentalPPRRoutes))
|
||||
);
|
||||
}
|
||||
|
||||
lambdaPages = Object.assign({}, lambdaPages, lambdaAppPaths);
|
||||
|
||||
const experimentalAllowBundling = Boolean(
|
||||
@@ -226,6 +217,12 @@ export async function serverBuild({
|
||||
}
|
||||
}
|
||||
|
||||
const experimental = {
|
||||
ppr:
|
||||
requiredServerFilesManifest.config.experimental?.ppr === true ||
|
||||
requiredServerFilesManifest.config.experimental?.ppr === 'incremental',
|
||||
};
|
||||
|
||||
let appRscPrefetches: UnwrapPromise<ReturnType<typeof glob>> = {};
|
||||
let appBuildTraces: UnwrapPromise<ReturnType<typeof glob>> = {};
|
||||
let appDir: string | null = null;
|
||||
@@ -233,7 +230,7 @@ export async function serverBuild({
|
||||
if (appPathRoutesManifest) {
|
||||
appDir = path.join(pagesDir, '../app');
|
||||
appBuildTraces = await glob('**/*.js.nft.json', appDir);
|
||||
appRscPrefetches = isAppPPREnabled
|
||||
appRscPrefetches = experimental.ppr
|
||||
? {}
|
||||
: await glob(`**/*${RSC_PREFETCH_SUFFIX}`, appDir);
|
||||
|
||||
@@ -254,7 +251,7 @@ export async function serverBuild({
|
||||
if (rewrite.src && rewrite.dest) {
|
||||
rewrite.src = rewrite.src.replace(
|
||||
/\/?\(\?:\/\)\?/,
|
||||
`(?<rscsuff>${isAppPPREnabled ? '(\\.prefetch)?' : ''}\\.rsc)?(?:/)?`
|
||||
`(?<rscsuff>${experimental.ppr ? '(\\.prefetch)?' : ''}\\.rsc)?(?:/)?`
|
||||
);
|
||||
let destQueryIndex = rewrite.dest.indexOf('?');
|
||||
|
||||
@@ -937,6 +934,9 @@ export async function serverBuild({
|
||||
const appRouterStreamingActionLambdaGroups: LambdaGroup[] = [];
|
||||
|
||||
for (const group of appRouterLambdaGroups) {
|
||||
if (!group.isPrerenders || group.isExperimentalPPR) {
|
||||
group.isStreaming = true;
|
||||
}
|
||||
group.isAppRouter = true;
|
||||
|
||||
// We create a streaming variant of the Prerender lambda group
|
||||
@@ -951,6 +951,9 @@ export async function serverBuild({
|
||||
}
|
||||
|
||||
for (const group of appRouteHandlersLambdaGroups) {
|
||||
if (!group.isPrerenders) {
|
||||
group.isStreaming = true;
|
||||
}
|
||||
group.isAppRouter = true;
|
||||
group.isAppRouteHandler = true;
|
||||
}
|
||||
@@ -981,24 +984,18 @@ export async function serverBuild({
|
||||
apiLambdaGroups: apiLambdaGroups.map(group => ({
|
||||
pages: group.pages,
|
||||
isPrerender: group.isPrerenders,
|
||||
isStreaming: group.isStreaming,
|
||||
isExperimentalPPR: group.isExperimentalPPR,
|
||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||
})),
|
||||
pageLambdaGroups: pageLambdaGroups.map(group => ({
|
||||
pages: group.pages,
|
||||
isPrerender: group.isPrerenders,
|
||||
isStreaming: group.isStreaming,
|
||||
isExperimentalPPR: group.isExperimentalPPR,
|
||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||
})),
|
||||
appRouterLambdaGroups: appRouterLambdaGroups.map(group => ({
|
||||
pages: group.pages,
|
||||
isPrerender: group.isPrerenders,
|
||||
isStreaming: group.isStreaming,
|
||||
isExperimentalPPR: group.isExperimentalPPR,
|
||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||
})),
|
||||
@@ -1006,8 +1003,6 @@ export async function serverBuild({
|
||||
appRouterStreamingActionLambdaGroups.map(group => ({
|
||||
pages: group.pages,
|
||||
isPrerender: group.isPrerenders,
|
||||
isStreaming: group.isStreaming,
|
||||
isExperimentalPPR: group.isExperimentalPPR,
|
||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||
})),
|
||||
@@ -1015,8 +1010,6 @@ export async function serverBuild({
|
||||
group => ({
|
||||
pages: group.pages,
|
||||
isPrerender: group.isPrerenders,
|
||||
isStreaming: group.isStreaming,
|
||||
isExperimentalPPR: group.isExperimentalPPR,
|
||||
pseudoLayerBytes: group.pseudoLayerBytes,
|
||||
uncompressedLayerBytes: group.pseudoLayerUncompressedBytes,
|
||||
})
|
||||
@@ -1196,10 +1189,15 @@ export async function serverBuild({
|
||||
|
||||
const lambda = await createLambdaFromPseudoLayers(options);
|
||||
|
||||
// This is a PPR lambda if it's an App Page with the PPR experimental flag
|
||||
// enabled.
|
||||
const isPPR =
|
||||
experimental.ppr && group.isAppRouter && !group.isAppRouteHandler;
|
||||
|
||||
// If PPR is enabled and this is an App Page, create the non-streaming
|
||||
// lambda for the page for revalidation.
|
||||
let revalidate: NodejsLambda | undefined;
|
||||
if (group.isExperimentalPPR) {
|
||||
if (isPPR) {
|
||||
if (!options.isStreaming) {
|
||||
throw new Error("Invariant: PPR lambda isn't streaming");
|
||||
}
|
||||
@@ -1216,11 +1214,14 @@ export async function serverBuild({
|
||||
// This is the name of the page, where the root is `index`.
|
||||
const pageName = pageFilename.replace(/\.js$/, '');
|
||||
|
||||
// This is the name of the page prefixed with a `/`, where the root is
|
||||
// `/index`.
|
||||
const pagePath = path.posix.join('/', pageName);
|
||||
|
||||
// This is the routable pathname for the page, where the root is `/`.
|
||||
const pagePathname = normalizePage(pageName);
|
||||
const pagePathname = pagePath === '/index' ? '/' : pagePath;
|
||||
|
||||
let isPrerender = prerenderRoutes.has(pagePathname);
|
||||
const isRoutePPREnabled = experimentalPPRRoutes.has(pagePathname);
|
||||
|
||||
if (!isPrerender && routesManifest?.i18n) {
|
||||
isPrerender = routesManifest.i18n.locales.some(locale => {
|
||||
@@ -1238,7 +1239,7 @@ export async function serverBuild({
|
||||
}
|
||||
|
||||
// If this is a PPR page, then we should prefix the output name.
|
||||
if (isRoutePPREnabled) {
|
||||
if (isPPR) {
|
||||
if (!revalidate) {
|
||||
throw new Error("Invariant: PPR lambda isn't set");
|
||||
}
|
||||
@@ -1319,13 +1320,6 @@ export async function serverBuild({
|
||||
console.timeEnd(lambdaCreationLabel);
|
||||
}
|
||||
|
||||
if (isAppPPREnabled) {
|
||||
debug(
|
||||
'experimentalStreamingLambdaPaths',
|
||||
JSON.stringify(Array.from(experimentalStreamingLambdaPaths))
|
||||
);
|
||||
}
|
||||
|
||||
const prerenderRoute = onPrerenderRoute({
|
||||
appDir,
|
||||
pagesDir,
|
||||
@@ -1413,7 +1407,7 @@ export async function serverBuild({
|
||||
bypassToken: prerenderManifest.bypassToken || '',
|
||||
isServerMode: true,
|
||||
dynamicMiddlewareRouteMap: middleware.dynamicRouteMap,
|
||||
isAppPPREnabled,
|
||||
experimentalPPRRoutes,
|
||||
hasActionOutputSupport,
|
||||
}).then(arr =>
|
||||
localizeDynamicRoutes(
|
||||
@@ -1595,7 +1589,7 @@ export async function serverBuild({
|
||||
if (lambdas[pathname]) {
|
||||
lambdas[`${pathname}.rsc`] = lambdas[pathname];
|
||||
|
||||
if (isAppPPREnabled) {
|
||||
if (experimental.ppr) {
|
||||
lambdas[`${pathname}${RSC_PREFETCH_SUFFIX}`] = lambdas[pathname];
|
||||
}
|
||||
}
|
||||
@@ -1603,7 +1597,7 @@ export async function serverBuild({
|
||||
if (edgeFunctions[pathname]) {
|
||||
edgeFunctions[`${pathname}.rsc`] = edgeFunctions[pathname];
|
||||
|
||||
if (isAppPPREnabled) {
|
||||
if (experimental.ppr) {
|
||||
edgeFunctions[`${pathname}${RSC_PREFETCH_SUFFIX}`] =
|
||||
edgeFunctions[pathname];
|
||||
}
|
||||
@@ -1622,7 +1616,7 @@ export async function serverBuild({
|
||||
'RSC, Next-Router-State-Tree, Next-Router-Prefetch';
|
||||
const appNotFoundPath = path.posix.join('.', entryDirectory, '_not-found');
|
||||
|
||||
if (isAppPPREnabled && !rscPrefetchHeader) {
|
||||
if (experimental.ppr && !rscPrefetchHeader) {
|
||||
throw new Error("Invariant: cannot use PPR without 'rsc.prefetchHeader'");
|
||||
}
|
||||
|
||||
@@ -1630,7 +1624,7 @@ export async function serverBuild({
|
||||
// all the routes that support it (and are listed) have configured lambdas.
|
||||
// This only applies to routes that do not have fallbacks enabled (these are
|
||||
// routes that have `dynamicParams = false` defined.
|
||||
if (isAppPPREnabled) {
|
||||
if (experimental.ppr) {
|
||||
for (const { srcRoute, dataRoute, experimentalPPR } of Object.values(
|
||||
prerenderManifest.staticRoutes
|
||||
)) {
|
||||
@@ -1913,7 +1907,7 @@ export async function serverBuild({
|
||||
|
||||
...(appDir
|
||||
? [
|
||||
...(rscPrefetchHeader && isAppPPREnabled
|
||||
...(rscPrefetchHeader && experimental.ppr
|
||||
? [
|
||||
{
|
||||
src: `^${path.posix.join('/', entryDirectory, '/')}`,
|
||||
|
||||
@@ -192,12 +192,8 @@ function normalizePage(page: string): string {
|
||||
if (!page.startsWith('/')) {
|
||||
page = `/${page}`;
|
||||
}
|
||||
|
||||
// Replace the `/index` with `/`
|
||||
if (page === '/index') {
|
||||
page = '/';
|
||||
}
|
||||
|
||||
// remove '/index' from the end
|
||||
page = page.replace(/\/index$/, '/');
|
||||
return page;
|
||||
}
|
||||
|
||||
@@ -324,8 +320,8 @@ export async function getDynamicRoutes({
|
||||
bypassToken,
|
||||
isServerMode,
|
||||
dynamicMiddlewareRouteMap,
|
||||
experimentalPPRRoutes,
|
||||
hasActionOutputSupport,
|
||||
isAppPPREnabled,
|
||||
}: {
|
||||
entryPath: string;
|
||||
entryDirectory: string;
|
||||
@@ -337,8 +333,8 @@ export async function getDynamicRoutes({
|
||||
bypassToken?: string;
|
||||
isServerMode?: boolean;
|
||||
dynamicMiddlewareRouteMap?: ReadonlyMap<string, RouteWithSrc>;
|
||||
experimentalPPRRoutes: ReadonlySet<string>;
|
||||
hasActionOutputSupport: boolean;
|
||||
isAppPPREnabled: boolean;
|
||||
}): Promise<RouteWithSrc[]> {
|
||||
if (routesManifest) {
|
||||
switch (routesManifest.version) {
|
||||
@@ -412,7 +408,7 @@ export async function getDynamicRoutes({
|
||||
];
|
||||
}
|
||||
|
||||
if (isAppPPREnabled) {
|
||||
if (experimentalPPRRoutes.has(page)) {
|
||||
let dest = route.dest?.replace(/($|\?)/, '.prefetch.rsc$1');
|
||||
|
||||
if (page === '/' || page === '/index') {
|
||||
@@ -1508,9 +1504,9 @@ export type LambdaGroup = {
|
||||
maxDuration?: number;
|
||||
isAppRouter?: boolean;
|
||||
isAppRouteHandler?: boolean;
|
||||
readonly isStreaming: boolean;
|
||||
readonly isPrerenders: boolean;
|
||||
readonly isExperimentalPPR: boolean;
|
||||
isStreaming?: boolean;
|
||||
isPrerenders?: boolean;
|
||||
isExperimentalPPR?: boolean;
|
||||
isActionLambda?: boolean;
|
||||
isPages?: boolean;
|
||||
isApiLambda: boolean;
|
||||
@@ -1565,7 +1561,6 @@ export async function getPageLambdaGroups({
|
||||
const routeName = normalizePage(page.replace(/\.js$/, ''));
|
||||
const isPrerenderRoute = prerenderRoutes.has(routeName);
|
||||
const isExperimentalPPR = experimentalPPRRoutes?.has(routeName) ?? false;
|
||||
const isStreaming = !isPrerenderRoute || isExperimentalPPR;
|
||||
|
||||
let opts: { memory?: number; maxDuration?: number } = {};
|
||||
|
||||
@@ -1637,7 +1632,6 @@ export async function getPageLambdaGroups({
|
||||
...opts,
|
||||
isPrerenders: isPrerenderRoute,
|
||||
isExperimentalPPR,
|
||||
isStreaming,
|
||||
isApiLambda: !!isApiPage(page),
|
||||
pseudoLayerBytes: initialPseudoLayer.pseudoLayerBytes,
|
||||
pseudoLayerUncompressedBytes: initialPseudoLayerUncompressed,
|
||||
@@ -2225,6 +2219,22 @@ export const onPrerenderRoute =
|
||||
initialStatus = 404;
|
||||
}
|
||||
|
||||
/**
|
||||
* If the route key had an `/index` suffix added, we need to note it so we
|
||||
* can remove it from the output path later accurately.
|
||||
*/
|
||||
let addedIndexSuffix = false;
|
||||
|
||||
if (isAppPathRoute) {
|
||||
// for literal index routes we need to append an additional /index
|
||||
// due to the proxy's normalizing for /index routes
|
||||
if (routeKey !== '/index' && routeKey.endsWith('/index')) {
|
||||
routeKey = `${routeKey}/index`;
|
||||
routeFileNoExt = routeKey;
|
||||
addedIndexSuffix = true;
|
||||
}
|
||||
}
|
||||
|
||||
let outputPathPage = path.posix.join(entryDirectory, routeFileNoExt);
|
||||
|
||||
if (!isAppPathRoute) {
|
||||
@@ -2418,7 +2428,7 @@ export const onPrerenderRoute =
|
||||
// static route first, then try the srcRoute if it doesn't exist. If we
|
||||
// can't find it at all, this constitutes an error.
|
||||
experimentalStreamingLambdaPath = experimentalStreamingLambdaPaths.get(
|
||||
pathnameToOutputName(entryDirectory, routeKey)
|
||||
pathnameToOutputName(entryDirectory, routeKey, addedIndexSuffix)
|
||||
);
|
||||
if (!experimentalStreamingLambdaPath && srcRoute) {
|
||||
experimentalStreamingLambdaPath =
|
||||
@@ -2679,10 +2689,19 @@ export function getNextServerPath(nextVersion: string) {
|
||||
: 'next/dist/next-server/server';
|
||||
}
|
||||
|
||||
function pathnameToOutputName(entryDirectory: string, pathname: string) {
|
||||
function pathnameToOutputName(
|
||||
entryDirectory: string,
|
||||
pathname: string,
|
||||
addedIndexSuffix = false
|
||||
) {
|
||||
if (pathname === '/') {
|
||||
pathname = '/index';
|
||||
}
|
||||
// If the `/index` was added for a route that ended in `/index` we need to
|
||||
// strip the second one off before joining it with the entryDirectory.
|
||||
else if (addedIndexSuffix) {
|
||||
pathname = pathname.replace(/\/index$/, '');
|
||||
}
|
||||
|
||||
return path.posix.join(entryDirectory, pathname);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
export const metadata = {
|
||||
metadataBase: new URL(process.env.VERCEL_PROJECT_PRODUCTION_URL ?? 'http://localhost:3000'),
|
||||
};
|
||||
|
||||
export default function Root({ children }) {
|
||||
return (
|
||||
<html className="this-is-the-document-html">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "20.4.5",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430",
|
||||
"typescript": "4.9.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "next build website-preview"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
"chrome-aws-lambda": "8.0.0",
|
||||
"firebase": "8.3.0",
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"scripts": {
|
||||
"vercel-build": "next build"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"@types/node": "^12.12.56",
|
||||
"@types/react": "^16.9.49",
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430",
|
||||
"typescript": "4.9.5"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"next": "canary",
|
||||
"react": "19.0.0-rc-81c5ff2e04-20240521",
|
||||
"react-dom": "19.0.0-rc-81c5ff2e04-20240521"
|
||||
"react": "19.0.0-beta-4508873393-20240430",
|
||||
"react-dom": "19.0.0-beta-4508873393-20240430"
|
||||
},
|
||||
"ignoreNextjsUpdates": true
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user