Compare commits

...

11 Commits

Author SHA1 Message Date
Vercel Release Bot
0dd9a27859 Version Packages (#11108)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @vercel/build-utils@7.6.0

### Minor Changes

- Revert "Default ruby to only currently supported version (3.2.0)"
([#11135](https://github.com/vercel/vercel/pull/11135))

- Mark `flags` as deprecated and replace them with `variants`
([#11098](https://github.com/vercel/vercel/pull/11098))

- [build-utils] change default package manager when no lockfile detected
from `yarn` to `npm` (gated behind feature flag)
([#11131](https://github.com/vercel/vercel/pull/11131))

### Patch Changes

- Update internal type for variants
([#11111](https://github.com/vercel/vercel/pull/11111))

## vercel@33.5.0

### Minor Changes

- Mark `flags` as deprecated and replace them with `variants`
([#11098](https://github.com/vercel/vercel/pull/11098))

### Patch Changes

- Updated dependencies
\[[`c32a909af`](c32a909afc),
[`b6ed28b9b`](b6ed28b9b1),
[`d21bb9f87`](d21bb9f87e),
[`4027a1833`](4027a18337),
[`8ba0ce932`](8ba0ce9324),
[`0d034b682`](0d034b6820),
[`abaa700ce`](abaa700cea),
[`3bad73401`](3bad73401b)]:
    -   @vercel/next@4.1.1
    -   @vercel/node@3.0.18
    -   @vercel/redwood@2.0.7
    -   @vercel/remix-builder@2.0.19
    -   @vercel/build-utils@7.6.0
    -   @vercel/static-build@2.3.0

## @vercel/static-build@2.3.0

### Minor Changes

- Revert "Default ruby to only currently supported version (3.2.0)"
([#11135](https://github.com/vercel/vercel/pull/11135))

### Patch Changes

- Updated dependencies
\[[`ab2444466`](ab24444660)]:
    -   @vercel/gatsby-plugin-vercel-builder@2.0.17

## @vercel/client@13.1.2

### Patch Changes

- Updated dependencies
\[[`b6ed28b9b`](b6ed28b9b1),
[`8ba0ce932`](8ba0ce9324),
[`0d034b682`](0d034b6820),
[`abaa700ce`](abaa700cea)]:
    -   @vercel/build-utils@7.6.0

## @vercel/gatsby-plugin-vercel-builder@2.0.17

### Patch Changes

- [gatsby-plugin-vercel-builder] use --keep-names esbuild flag
([#11117](https://github.com/vercel/vercel/pull/11117))

- Updated dependencies
\[[`b6ed28b9b`](b6ed28b9b1),
[`8ba0ce932`](8ba0ce9324),
[`0d034b682`](0d034b6820),
[`abaa700ce`](abaa700cea)]:
    -   @vercel/build-utils@7.6.0

## @vercel/next@4.1.1

### Patch Changes

- [node][next][redwood][remix] bump `@vercel/nft@0.26.3`
([#11115](https://github.com/vercel/vercel/pull/11115))

- Load common chunks on module initialization
([#11126](https://github.com/vercel/vercel/pull/11126))

- Fix index normalizing for app outputs
([#11099](https://github.com/vercel/vercel/pull/11099))

- Mark `flags` as deprecated and replace them with `variants`
([#11098](https://github.com/vercel/vercel/pull/11098))

- Fix rewrite RSC handling with trailingSlash
([#11107](https://github.com/vercel/vercel/pull/11107))

## @vercel/node@3.0.18

### Patch Changes

- [node][next][redwood][remix] bump `@vercel/nft@0.26.3`
([#11115](https://github.com/vercel/vercel/pull/11115))

- Updated dependencies
\[[`b6ed28b9b`](b6ed28b9b1),
[`8ba0ce932`](8ba0ce9324),
[`0d034b682`](0d034b6820),
[`abaa700ce`](abaa700cea)]:
    -   @vercel/build-utils@7.6.0

## @vercel/redwood@2.0.7

### Patch Changes

- [node][next][redwood][remix] bump `@vercel/nft@0.26.3`
([#11115](https://github.com/vercel/vercel/pull/11115))

## @vercel/remix-builder@2.0.19

### Patch Changes

- [node][next][redwood][remix] bump `@vercel/nft@0.26.3`
([#11115](https://github.com/vercel/vercel/pull/11115))

## @vercel-internals/types@1.0.22

### Patch Changes

- Updated dependencies
\[[`b6ed28b9b`](b6ed28b9b1),
[`8ba0ce932`](8ba0ce9324),
[`0d034b682`](0d034b6820),
[`abaa700ce`](abaa700cea)]:
    -   @vercel/build-utils@7.6.0

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-09 10:26:27 -06:00
Trek Glowacki
b6ed28b9b1 Revert "Default ruby to only currently supported version (3.2.0)" (#11135)
This reverts commit de63e35622 / #11104.
We had no great way to test this without release but we have other
things we'd like to deploy today. Will revert the revert when we're
closer to fixing just this issue.
2024-02-09 10:10:18 -06:00
Steven
0d034b6820 [build-utils] change default package manager when no lockfile detected from yarn to npm (gated behind feature flag) (#11131)
This PR changes the default package manager from `yarn` to `npm` in the case that no lockfile is present.

Many years ago when `yarn` was first released, it was much faster than `npm` so we used it by default. That is no longer the case today and `yarn@1` is no longer receiving new features.

For example, `sharp` and `esbuild` no longer works with `yarn@1`:


### Related

- https://github.com/lovell/sharp/issues/3750
- https://github.com/evanw/esbuild/issues/2949

Note that this change will not impact most projects because most used a lockfile.
2024-02-08 21:26:01 +00:00
Trek Glowacki
05c8be1a6d [static-build] Add a new Astro@4 fixture (#11090)
Add a new Astro@4 fixture. We were missing this one entirely.
2024-02-08 17:27:47 +00:00
Javi Velasco
d21bb9f87e [next] Preload common chunks (#11126)
This PR adds requiring the modules that _we know_ will be required in
the Next.js Lambda in the module scope in a attempt to make a better use
of resources.

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2024-02-06 11:51:38 -08:00
Shohei Maeda
ab24444660 [gatsby-plugin-vercel-builder] use --keep-names esbuild flag (#11117)
Some packages are very sensitive to minification.
For example: https://github.com/node-fetch/node-fetch/issues/784 which ends up in runtime error, and is hard to notice as they don't reproduce on local dev.

Setting `--keep-names` should prevent those edge cases: https://esbuild.github.io/api/#keep-names
2024-02-05 21:15:50 +00:00
Vercel Release Bot
20080d4ae7 [tests] Upgrade Turbo to version 1.12.2 (#11122)
This auto-generated PR updates Turbo to version 1.12.2
2024-02-05 15:34:48 +00:00
Steven
c32a909afc [node][next][redwood][remix] bump @vercel/nft@0.26.3 (#11115)
https://github.com/vercel/nft/releases/tag/0.26.3
2024-02-01 21:56:27 +00:00
Andy
abaa700cea [build-utils] Update variants type (#11111)
Follow up to https://github.com/vercel/vercel/pull/11098 to address the type changes.
2024-02-01 14:44:38 +00:00
Andy
8ba0ce9324 [cli] Add Variants to Build Output API (#11098)
Makes adjustments to replace `flags` with `variants`.

Also marks the current `flags` implementation as deprecated, as it
should get removed soon. Which I'll do in a follow up PR.
2024-02-01 10:28:12 +01:00
JJ Kasper
4027a18337 Fix index normalizing for app outputs (#11099)
This ensures we don't apply the index output normalizing for app paths which was previously already gated for prerenders but not all routes.
2024-01-31 22:13:23 +00:00
61 changed files with 16506 additions and 138 deletions

View File

@@ -1,5 +0,0 @@
---
"@vercel/next": patch
---
Fix rewrite RSC handling with trailingSlash

View File

@@ -1,5 +1,12 @@
# @vercel-internals/types
## 1.0.22
### Patch Changes
- Updated dependencies [[`b6ed28b9b`](https://github.com/vercel/vercel/commit/b6ed28b9b1712f882c93fe053b70d3eb1df21819), [`8ba0ce932`](https://github.com/vercel/vercel/commit/8ba0ce932434c6295fedb5307bee59a804b7e6a8), [`0d034b682`](https://github.com/vercel/vercel/commit/0d034b6820c0f3252949c0ffc483048c5aac7f04), [`abaa700ce`](https://github.com/vercel/vercel/commit/abaa700cea44c723cfc851baa2dfe9e1ae2e8a5c)]:
- @vercel/build-utils@7.6.0
## 1.0.21
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"private": true,
"name": "@vercel-internals/types",
"version": "1.0.21",
"version": "1.0.22",
"types": "index.d.ts",
"main": "index.d.ts",
"files": [
@@ -10,7 +10,7 @@
"dependencies": {
"@types/node": "14.14.31",
"@vercel-internals/constants": "1.0.4",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/routing-utils": "3.1.0"
},
"devDependencies": {

View File

@@ -33,7 +33,7 @@
"source-map-support": "0.5.12",
"ts-eager": "2.0.2",
"ts-jest": "29.1.0",
"turbo": "1.11.3",
"turbo": "1.12.2",
"typescript": "4.9.5"
},
"scripts": {

View File

@@ -1,5 +1,19 @@
# @vercel/build-utils
## 7.6.0
### Minor Changes
- Revert "Default ruby to only currently supported version (3.2.0)" ([#11135](https://github.com/vercel/vercel/pull/11135))
- Mark `flags` as deprecated and replace them with `variants` ([#11098](https://github.com/vercel/vercel/pull/11098))
- [build-utils] change default package manager when no lockfile detected from `yarn` to `npm` (gated behind feature flag) ([#11131](https://github.com/vercel/vercel/pull/11131))
### Patch Changes
- Update internal type for variants ([#11111](https://github.com/vercel/vercel/pull/11111))
## 7.5.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/build-utils",
"version": "7.5.1",
"version": "7.6.0",
"license": "Apache-2.0",
"main": "./dist/index.js",
"types": "./dist/index.d.js",

View File

@@ -302,7 +302,7 @@ export async function scanParentDirs(
});
let lockfilePath: string | undefined;
let lockfileVersion: number | undefined;
let cliType: CliType = 'yarn';
let cliType: CliType;
const [hasYarnLock, packageLockJson, pnpmLockYaml, bunLockBin] =
await Promise.all([
@@ -338,6 +338,12 @@ export async function scanParentDirs(
lockfilePath = bunLockPath;
// TODO: read "bun-lockfile-format-v0"
lockfileVersion = 0;
} else {
if (process.env.VERCEL_ENABLE_NPM_DEFAULT === '1') {
cliType = 'npm';
} else {
cliType = 'yarn';
}
}
const packageJsonPath = pkgJsonPath || undefined;
@@ -414,6 +420,14 @@ export async function runNpmInstall(
destPath
);
if (!packageJsonPath) {
debug(
`Skipping dependency installation because no package.json was found for ${destPath}`
);
runNpmInstallSema.release();
return false;
}
// Only allow `runNpmInstall()` to run once per `package.json`
// when doing a default install (no additional args)
if (meta && packageJsonPath && args.length === 0) {

View File

@@ -440,7 +440,9 @@ export interface Cron {
schedule: string;
}
// TODO: Proper description once complete
/**
* @deprecated Replaced by Variants. Remove once fully replaced.
*/
export interface Flag {
key: string;
defaultValue?: unknown;
@@ -471,7 +473,9 @@ export interface BuildResultV2Typical {
framework?: {
version: string;
};
/** @deprecated Replaced by Variants. Remove once fully replaced. */
flags?: Flag[];
variants?: Record<string, VariantDefinition>;
}
export type BuildResultV2 = BuildResultV2Typical | BuildResultBuildOutput;
@@ -491,3 +495,28 @@ export type ShouldServe = (
export type StartDevServer = (
options: StartDevServerOptions
) => Promise<StartDevServerResult>;
/**
* TODO: The following types will eventually be exported by a more
* relevant package.
*/
type VariantJSONArray = ReadonlyArray<VariantJSONValue>;
type VariantJSONValue =
| string
| boolean
| number
| null
| VariantJSONArray
| { [key: string]: VariantJSONValue };
type VariantOption = {
value: VariantJSONValue;
label?: string;
};
export interface VariantDefinition {
options?: VariantOption[];
origin?: string;
description?: string;
}

View File

@@ -0,0 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1

View File

@@ -0,0 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1

View File

@@ -0,0 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1

View File

@@ -0,0 +1,9 @@
{
"private": true,
"scripts": {
"build": "mkdir -p public && (printf \"npm version: \" && npm -v) > public/index.txt"
},
"dependencies": {
"sharp": "0.33.2"
}
}

View File

@@ -0,0 +1,3 @@
{
"probes": [{ "path": "/", "mustContain": "npm version: 8" }]
}

View File

@@ -0,0 +1,7 @@
{
"build": {
"env": {
"VERCEL_ENABLE_NPM_DEFAULT": "1"
}
}
}

View File

@@ -23,8 +23,6 @@ const skipFixtures: string[] = [
'23-pnpm-workspaces',
'41-nx-monorepo',
'42-npm-workspace-with-nx',
'jekyll-v4',
'middleman-v4',
];
// eslint-disable-next-line no-restricted-syntax

View File

@@ -576,6 +576,52 @@ it(
ms('1m')
);
it('should return cliType npm when no lockfile is present and VERCEL_ENABLE_NPM_DEFAULT is set', async () => {
const originalRepoLockfilePath = path.join(
__dirname,
'..',
'..',
'..',
'pnpm-lock.yaml'
);
const originalRepoLockfileData = await fs.readFile(originalRepoLockfilePath);
await fs.remove(originalRepoLockfilePath);
try {
process.env.VERCEL_ENABLE_NPM_DEFAULT = '1';
const fixture = path.join(__dirname, 'fixtures', '40-no-lockfile');
const result = await scanParentDirs(fixture);
expect(result.cliType).toEqual('npm');
expect(result.lockfileVersion).toEqual(undefined);
expect(result.lockfilePath).toEqual(undefined);
expect(result.packageJsonPath).toEqual(path.join(fixture, 'package.json'));
} finally {
delete process.env.VERCEL_ENABLE_NPM_DEFAULT;
await fs.writeFile(originalRepoLockfilePath, originalRepoLockfileData);
}
});
it('should return cliType yarn when no lockfile is present and VERCEL_ENABLE_NPM_DEFAULT is not set', async () => {
const originalRepoLockfilePath = path.join(
__dirname,
'..',
'..',
'..',
'pnpm-lock.yaml'
);
const originalRepoLockfileData = await fs.readFile(originalRepoLockfilePath);
await fs.remove(originalRepoLockfilePath);
try {
const fixture = path.join(__dirname, 'fixtures', '40-no-lockfile');
const result = await scanParentDirs(fixture);
expect(result.cliType).toEqual('yarn');
expect(result.lockfileVersion).toEqual(undefined);
expect(result.lockfilePath).toEqual(undefined);
expect(result.packageJsonPath).toEqual(path.join(fixture, 'package.json'));
} finally {
await fs.writeFile(originalRepoLockfilePath, originalRepoLockfileData);
}
});
it('should return cliType bun and correct lock file for bun v1', async () => {
const fixture = path.join(__dirname, 'fixtures', '31-bun-v1-with-yarn-lock');
const result = await scanParentDirs(fixture);

View File

@@ -1,5 +1,21 @@
# vercel
## 33.5.0
### Minor Changes
- Mark `flags` as deprecated and replace them with `variants` ([#11098](https://github.com/vercel/vercel/pull/11098))
### Patch Changes
- Updated dependencies [[`c32a909af`](https://github.com/vercel/vercel/commit/c32a909afcedf0ee55777d5dcaecc0c8383dd8c8), [`b6ed28b9b`](https://github.com/vercel/vercel/commit/b6ed28b9b1712f882c93fe053b70d3eb1df21819), [`d21bb9f87`](https://github.com/vercel/vercel/commit/d21bb9f87e1d837666fe8104d4e199b2590725d6), [`4027a1833`](https://github.com/vercel/vercel/commit/4027a1833718a92be74b2b3c5a4df23745d19a36), [`8ba0ce932`](https://github.com/vercel/vercel/commit/8ba0ce932434c6295fedb5307bee59a804b7e6a8), [`0d034b682`](https://github.com/vercel/vercel/commit/0d034b6820c0f3252949c0ffc483048c5aac7f04), [`abaa700ce`](https://github.com/vercel/vercel/commit/abaa700cea44c723cfc851baa2dfe9e1ae2e8a5c), [`3bad73401`](https://github.com/vercel/vercel/commit/3bad73401b4ec1f61e515965732cde8dcc052b17)]:
- @vercel/next@4.1.1
- @vercel/node@3.0.18
- @vercel/redwood@2.0.7
- @vercel/remix-builder@2.0.19
- @vercel/build-utils@7.6.0
- @vercel/static-build@2.3.0
## 33.4.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "vercel",
"version": "33.4.1",
"version": "33.5.0",
"preferGlobal": true,
"license": "Apache-2.0",
"description": "The command-line interface for Vercel",
@@ -31,17 +31,17 @@
"node": ">= 16"
},
"dependencies": {
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/fun": "1.1.0",
"@vercel/go": "3.0.5",
"@vercel/hydrogen": "1.0.2",
"@vercel/next": "4.1.0",
"@vercel/node": "3.0.17",
"@vercel/next": "4.1.1",
"@vercel/node": "3.0.18",
"@vercel/python": "4.1.1",
"@vercel/redwood": "2.0.6",
"@vercel/remix-builder": "2.0.18",
"@vercel/redwood": "2.0.7",
"@vercel/remix-builder": "2.0.19",
"@vercel/ruby": "2.0.5",
"@vercel/static-build": "2.2.0",
"@vercel/static-build": "2.3.0",
"chokidar": "3.3.1"
},
"devDependencies": {
@@ -88,8 +88,8 @@
"@types/yauzl-promise": "2.1.0",
"@vercel-internals/constants": "1.0.4",
"@vercel-internals/get-package-json": "1.0.0",
"@vercel-internals/types": "1.0.21",
"@vercel/client": "13.1.1",
"@vercel-internals/types": "1.0.22",
"@vercel/client": "13.1.2",
"@vercel/error-utils": "2.0.2",
"@vercel/frameworks": "2.0.6",
"@vercel/fs-detectors": "5.1.6",

View File

@@ -22,6 +22,7 @@ import {
Cron,
validateNpmrc,
Flag,
VariantDefinition,
} from '@vercel/build-utils';
import {
detectBuilders,
@@ -95,7 +96,9 @@ interface BuildOutputConfig {
version: string;
};
crons?: Cron[];
/** @deprecated Replaced by Variants. Remove once fully replaced. */
flags?: Flag[];
variants?: Record<string, VariantDefinition>;
}
/**
@@ -678,10 +681,13 @@ async function doBuild(
overrides: mergedOverrides,
framework,
crons: mergedCrons,
/** @deprecated Replaced by Variants. Remove once fully replaced. */
flags: mergedFlags,
};
await fs.writeJSON(join(outputDir, 'config.json'), config, { spaces: 2 });
await writeVariantsJson(client, buildResults.values(), outputDir);
const relOutputDir = relative(cwd, outputDir);
output.print(
`${prependEmoji(
@@ -826,6 +832,51 @@ function mergeFlags(
});
}
/**
* Takes the build output and writes all the variants into the `variants.json`
* file. It'll skip variants that already exist.
*/
async function writeVariantsJson(
{ output }: Client,
buildResults: Iterable<BuildResult | BuildOutputConfig>,
outputDir: string
): Promise<void> {
const variantsFilePath = join(outputDir, 'variants.json');
let hasVariants = true;
const variants = (await fs.readJSON(variantsFilePath).catch(error => {
if (error.code === 'ENOENT') {
hasVariants = false;
return { definitions: {} };
}
throw error;
})) as { definitions: Record<string, VariantDefinition> };
for (const result of buildResults) {
if (!('variants' in result) || !result.variants) continue;
for (const [key, defintion] of Object.entries(result.variants)) {
if (result.variants[key]) {
output.warn(
`The variant "${key}" was found multiple times. Only its first occurrence will be considered.`
);
continue;
}
hasVariants = true;
variants.definitions[key] = defintion;
}
}
// Only create the file when there are variants to write,
// or when the file already exists.
if (hasVariants) {
await fs.writeJSON(variantsFilePath, variants, { spaces: 2 });
}
}
async function writeBuildJson(buildsJson: BuildsManifest, outputDir: string) {
await fs.writeJSON(join(outputDir, 'builds.json'), buildsJson, { spaces: 2 });
}

View File

@@ -1,5 +1,12 @@
# @vercel/client
## 13.1.2
### Patch Changes
- Updated dependencies [[`b6ed28b9b`](https://github.com/vercel/vercel/commit/b6ed28b9b1712f882c93fe053b70d3eb1df21819), [`8ba0ce932`](https://github.com/vercel/vercel/commit/8ba0ce932434c6295fedb5307bee59a804b7e6a8), [`0d034b682`](https://github.com/vercel/vercel/commit/0d034b6820c0f3252949c0ffc483048c5aac7f04), [`abaa700ce`](https://github.com/vercel/vercel/commit/abaa700cea44c723cfc851baa2dfe9e1ae2e8a5c)]:
- @vercel/build-utils@7.6.0
## 13.1.1
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/client",
"version": "13.1.1",
"version": "13.1.2",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"homepage": "https://vercel.com",
@@ -37,7 +37,7 @@
"typescript": "4.9.5"
},
"dependencies": {
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/error-utils": "2.0.2",
"@vercel/routing-utils": "3.1.0",
"@zeit/fetch": "5.2.0",

View File

@@ -37,7 +37,7 @@
"@types/minimatch": "3.0.5",
"@types/node": "14.18.33",
"@types/semver": "7.3.10",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"jest-junit": "16.0.0",
"typescript": "4.9.5"
}

View File

@@ -1,5 +1,14 @@
# @vercel/gatsby-plugin-vercel-builder
## 2.0.17
### Patch Changes
- [gatsby-plugin-vercel-builder] use --keep-names esbuild flag ([#11117](https://github.com/vercel/vercel/pull/11117))
- Updated dependencies [[`b6ed28b9b`](https://github.com/vercel/vercel/commit/b6ed28b9b1712f882c93fe053b70d3eb1df21819), [`8ba0ce932`](https://github.com/vercel/vercel/commit/8ba0ce932434c6295fedb5307bee59a804b7e6a8), [`0d034b682`](https://github.com/vercel/vercel/commit/0d034b6820c0f3252949c0ffc483048c5aac7f04), [`abaa700ce`](https://github.com/vercel/vercel/commit/abaa700cea44c723cfc851baa2dfe9e1ae2e8a5c)]:
- @vercel/build-utils@7.6.0
## 2.0.16
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/gatsby-plugin-vercel-builder",
"version": "2.0.16",
"version": "2.0.17",
"main": "dist/index.js",
"files": [
"dist",
@@ -20,7 +20,7 @@
},
"dependencies": {
"@sinclair/typebox": "0.25.24",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/routing-utils": "3.1.0",
"esbuild": "0.14.47",
"etag": "1.8.1",

View File

@@ -35,6 +35,9 @@ export const writeHandler = async ({
platform: 'node',
bundle: true,
minify: true,
// prevents renaming edge cases from causing failures like:
// https://github.com/node-fetch/node-fetch/issues/784
keepNames: true,
define: {
'process.env.NODE_ENV': "'production'",
vercel_pathPrefix: JSON.stringify(prefix),

View File

@@ -29,7 +29,7 @@
"@types/node-fetch": "^2.3.0",
"@types/tar": "6.1.5",
"@types/yauzl-promise": "2.1.0",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"async-retry": "1.3.3",
"execa": "^1.0.0",
"fs-extra": "^7.0.0",

View File

@@ -26,7 +26,7 @@
"devDependencies": {
"@types/jest": "27.5.1",
"@types/node": "14.18.33",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"execa": "3.2.0",
"fs-extra": "11.1.0",
"jest-junit": "16.0.0"

View File

@@ -1,5 +1,19 @@
# @vercel/next
## 4.1.1
### Patch Changes
- [node][next][redwood][remix] bump `@vercel/nft@0.26.3` ([#11115](https://github.com/vercel/vercel/pull/11115))
- Load common chunks on module initialization ([#11126](https://github.com/vercel/vercel/pull/11126))
- Fix index normalizing for app outputs ([#11099](https://github.com/vercel/vercel/pull/11099))
- Mark `flags` as deprecated and replace them with `variants` ([#11098](https://github.com/vercel/vercel/pull/11098))
- Fix rewrite RSC handling with trailingSlash ([#11107](https://github.com/vercel/vercel/pull/11107))
## 4.1.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/next",
"version": "4.1.0",
"version": "4.1.1",
"license": "Apache-2.0",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
@@ -23,7 +23,7 @@
"dist"
],
"dependencies": {
"@vercel/nft": "0.26.2"
"@vercel/nft": "0.26.3"
},
"devDependencies": {
"@types/aws-lambda": "8.10.19",
@@ -40,7 +40,7 @@
"@types/semver": "6.0.0",
"@types/text-table": "0.2.1",
"@types/webpack-sources": "3.2.0",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/routing-utils": "3.1.0",
"async-sema": "3.0.1",
"buffer-crc32": "0.2.13",

View File

@@ -47,7 +47,7 @@ import {
UnwrapPromise,
getOperationType,
FunctionsConfigManifestV1,
VariantsManifest,
VariantsManifestLegacy,
RSC_CONTENT_TYPE,
RSC_PREFETCH_SUFFIX,
normalizePrefetches,
@@ -70,6 +70,30 @@ const NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION = 'v12.1.7-canary.33';
const EMPTY_ALLOW_QUERY_FOR_PRERENDERED_VERSION = 'v12.2.0';
const CORRECTED_MANIFESTS_VERSION = 'v12.2.0';
// Ideally this should be in a Next.js manifest so we can change it in
// the future but this also allows us to improve existing versions
const PRELOAD_CHUNKS = {
APP_ROUTER_PAGES: [
'.next/server/webpack-runtime.js',
'next/dist/client/components/action-async-storage.external.js',
'next/dist/client/components/request-async-storage.external.js',
'next/dist/client/components/static-generation-async-storage.external.js',
'next/dist/compiled/next-server/app-page.runtime.prod.js',
],
APP_ROUTER_HANDLER: [
'.next/server/webpack-runtime.js',
'next/dist/compiled/next-server/app-route.runtime.prod.js',
],
PAGES_ROUTER_PAGES: [
'.next/server/webpack-runtime.js',
'next/dist/compiled/next-server/pages.runtime.prod.js',
],
PAGES_ROUTER_API: [
'.next/server/webpack-api-runtime.js',
'next/dist/compiled/next-server/pages-api.runtime.prod.js',
],
};
// related PR: https://github.com/vercel/next.js/pull/52997
// and https://github.com/vercel/next.js/pull/56318
const BUNDLED_SERVER_NEXT_VERSION = 'v13.5.4';
@@ -158,7 +182,7 @@ export async function serverBuild({
imagesManifest?: NextImagesManifest;
prerenderManifest: NextPrerenderedRoutes;
requiredServerFilesManifest: NextRequiredServerFilesManifest;
variantsManifest: VariantsManifest | null;
variantsManifest: VariantsManifestLegacy | null;
}): Promise<BuildResult> {
lambdaPages = Object.assign({}, lambdaPages, lambdaAppPaths);
@@ -1068,9 +1092,58 @@ export async function serverBuild({
}
}
let launcherData = group.isAppRouter ? appLauncher : launcher;
let preloadChunks: string[] = [];
if (process.env.VERCEL_NEXT_PRELOAD_COMMON === '1') {
const nextPackageDir = path.dirname(
resolveFrom(projectDir, 'next/package.json')
);
if (group.isPages) {
preloadChunks = PRELOAD_CHUNKS.PAGES_ROUTER_PAGES;
} else if (group.isApiLambda) {
preloadChunks = PRELOAD_CHUNKS.PAGES_ROUTER_API;
} else if (group.isAppRouter && !group.isAppRouteHandler) {
preloadChunks = PRELOAD_CHUNKS.APP_ROUTER_PAGES;
} else if (group.isAppRouteHandler) {
preloadChunks = PRELOAD_CHUNKS.APP_ROUTER_HANDLER;
}
const normalizedPreloadChunks: string[] = [];
for (const preloadChunk of preloadChunks) {
const absoluteChunk = preloadChunk.startsWith('.next')
? path.join(projectDir, preloadChunk)
: path.join(nextPackageDir, '..', preloadChunk);
// ensure the chunks are actually in this layer
if (
group.pseudoLayer[
path.join('.', path.relative(baseDir, absoluteChunk))
]
) {
normalizedPreloadChunks.push(
// relative files need to be prefixed with ./ for require
preloadChunk.startsWith('.next')
? `./${preloadChunk}`
: preloadChunk
);
}
}
if (normalizedPreloadChunks.length > 0) {
launcherData = launcherData.replace(
'// @preserve next-server-preload-target',
normalizedPreloadChunks
.map(name => `require('${name}');`)
.join('\n')
);
}
}
const launcherFiles: { [name: string]: FileFsRef | FileBlob } = {
[path.join(path.relative(baseDir, projectDir), '___next_launcher.cjs')]:
new FileBlob({ data: group.isAppRouter ? appLauncher : launcher }),
new FileBlob({ data: launcherData }),
};
const operationType = getOperationType({ group, prerenderManifest });
@@ -1128,11 +1201,11 @@ export async function serverBuild({
);
});
}
let outputName = path.posix.join(entryDirectory, pageNoExt);
let outputName = normalizeIndexOutput(
path.posix.join(entryDirectory, pageNoExt),
true
);
if (!group.isAppRouter && !group.isAppRouteHandler) {
outputName = normalizeIndexOutput(outputName, true);
}
// If this is a PPR page, then we should prefix the output name.
if (isPPR) {
@@ -1443,9 +1516,10 @@ export async function serverBuild({
continue;
}
const pathname = normalizeIndexOutput(
path.posix.join('./', entryDirectory, route === '/' ? '/index' : route),
true
const pathname = path.posix.join(
'./',
entryDirectory,
route === '/' ? '/index' : route
);
if (lambdas[pathname]) {

View File

@@ -23,6 +23,8 @@ if (process.env.NODE_ENV !== 'production' && region !== 'dev1') {
// eslint-disable-next-line
const NextServer = require('__NEXT_SERVER_PATH__').default;
// @preserve next-server-preload-target
// __NEXT_CONFIG__ value is injected
declare const __NEXT_CONFIG__: any;
const conf = __NEXT_CONFIG__;

View File

@@ -2053,6 +2053,11 @@ export const onPrerenderRoute =
let isAppPathRoute = false;
// experimentalPPR signals app path route
if (appDir && experimentalPPR) {
isAppPathRoute = true;
}
// TODO: leverage manifest to determine app paths more accurately
if (appDir && srcRoute && (!dataRoute || dataRoute?.endsWith('.rsc'))) {
isAppPathRoute = true;
@@ -2184,7 +2189,6 @@ export const onPrerenderRoute =
if (routeKey !== '/index' && routeKey.endsWith('/index')) {
routeKey = `${routeKey}/index`;
routeFileNoExt = routeKey;
origRouteFileNoExt = routeKey;
}
}
@@ -2255,15 +2259,20 @@ export const onPrerenderRoute =
const lambdaId = pageLambdaMap[outputSrcPathPage];
lambda = lambdas[lambdaId];
} else {
const outputSrcPathPage = normalizeIndexOutput(
let outputSrcPathPage =
srcRoute == null
? outputPathPageOrig
: path.posix.join(
entryDirectory,
srcRoute === '/' ? '/index' : srcRoute
),
isServerMode
);
);
if (!isAppPathRoute) {
outputSrcPathPage = normalizeIndexOutput(
outputSrcPathPage,
isServerMode
);
}
lambda = lambdas[outputSrcPathPage];
}
@@ -2464,11 +2473,18 @@ export const onPrerenderRoute =
routesManifest,
locale
);
const localeOutputPathPage = normalizeIndexOutput(
path.posix.join(entryDirectory, localeRouteFileNoExt),
isServerMode
let localeOutputPathPage = path.posix.join(
entryDirectory,
localeRouteFileNoExt
);
if (!isAppPathRoute) {
localeOutputPathPage = normalizeIndexOutput(
localeOutputPathPage,
isServerMode
);
}
const origPrerenderPage = prerenders[outputPathPage];
prerenders[localeOutputPathPage] = {
...origPrerenderPage,
@@ -2969,14 +2985,17 @@ export async function getMiddlewareBundle({
}
if (routesManifest?.basePath) {
shortPath = normalizeIndexOutput(
path.posix.join(
'./',
routesManifest?.basePath,
shortPath.replace(/^\//, '')
),
true
const isAppPathRoute = !!appPathRoutesManifest[shortPath];
shortPath = path.posix.join(
'./',
routesManifest?.basePath,
shortPath.replace(/^\//, '')
);
if (!isAppPathRoute) {
shortPath = normalizeIndexOutput(shortPath, true);
}
}
worker.edgeFunction.name = shortPath;
@@ -3238,7 +3257,8 @@ export function isApiPage(page: string | undefined) {
.match(/(serverless|server)\/pages\/api(\/|\.js$)/);
}
export type VariantsManifest = Record<
/** @deprecated */
export type VariantsManifestLegacy = Record<
string,
{
defaultValue?: unknown;
@@ -3249,7 +3269,7 @@ export type VariantsManifest = Record<
export async function getVariantsManifest(
entryPath: string,
outputDirectory: string
): Promise<null | VariantsManifest> {
): Promise<null | VariantsManifestLegacy> {
const pathVariantsManifest = path.join(
entryPath,
outputDirectory,
@@ -3263,7 +3283,7 @@ export async function getVariantsManifest(
if (!hasVariantsManifest) return null;
const variantsManifest: VariantsManifest = await fs.readJSON(
const variantsManifest: VariantsManifestLegacy = await fs.readJSON(
pathVariantsManifest
);

View File

@@ -0,0 +1,7 @@
export default function Page() {
return (
<>
<p>dynamic-index</p>
</>
)
}

View File

@@ -18,7 +18,22 @@
}
],
"probes": [
{
{
"path": "/dynamic-index/hello/index",
"status": 200,
"mustContain": "dynamic-index"
},
{
"path": "/dynamic-index/hello/index",
"status": 200,
"mustContain": ":",
"mustNotContain": "<html",
"headers": {
"RSC": 1,
"Next-Router-Prefetch": 1
}
},
{
"path": "/rewritten-to-dashboard",
"status": 200,
"mustContain": "html"

View File

@@ -0,0 +1,7 @@
export default function Page() {
return (
<>
<p>dynamic-index</p>
</>
)
}

View File

@@ -18,6 +18,21 @@
}
],
"probes": [
{
"path": "/dynamic-index/hello/index",
"status": 200,
"mustContain": "dynamic-index"
},
{
"path": "/dynamic-index/hello/index",
"status": 200,
"mustContain": ":",
"mustNotContain": "<html",
"headers": {
"RSC": 1,
"Next-Router-Prefetch": 1
}
},
{
"path": "/rewritten-to-dashboard",
"status": 200,

View File

@@ -1,5 +1,14 @@
# @vercel/node
## 3.0.18
### Patch Changes
- [node][next][redwood][remix] bump `@vercel/nft@0.26.3` ([#11115](https://github.com/vercel/vercel/pull/11115))
- Updated dependencies [[`b6ed28b9b`](https://github.com/vercel/vercel/commit/b6ed28b9b1712f882c93fe053b70d3eb1df21819), [`8ba0ce932`](https://github.com/vercel/vercel/commit/8ba0ce932434c6295fedb5307bee59a804b7e6a8), [`0d034b682`](https://github.com/vercel/vercel/commit/0d034b6820c0f3252949c0ffc483048c5aac7f04), [`abaa700ce`](https://github.com/vercel/vercel/commit/abaa700cea44c723cfc851baa2dfe9e1ae2e8a5c)]:
- @vercel/build-utils@7.6.0
## 3.0.17
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/node",
"version": "3.0.17",
"version": "3.0.18",
"license": "Apache-2.0",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/node-js",
@@ -24,9 +24,9 @@
"@edge-runtime/primitives": "4.0.5",
"@edge-runtime/vm": "3.1.7",
"@types/node": "14.18.33",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/error-utils": "2.0.2",
"@vercel/nft": "0.26.2",
"@vercel/nft": "0.26.3",
"@vercel/static-config": "3.0.0",
"async-listen": "3.0.0",
"edge-runtime": "2.5.7",

View File

@@ -26,7 +26,7 @@
"@types/jest": "27.4.1",
"@types/node": "14.18.33",
"@types/which": "3.0.0",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"execa": "^1.0.0",
"fs-extra": "11.1.1",
"jest-junit": "16.0.0",

View File

@@ -1,5 +1,11 @@
# @vercel/redwood
## 2.0.7
### Patch Changes
- [node][next][redwood][remix] bump `@vercel/nft@0.26.3` ([#11115](https://github.com/vercel/vercel/pull/11115))
## 2.0.6
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/redwood",
"version": "2.0.6",
"version": "2.0.7",
"main": "./dist/index.js",
"license": "Apache-2.0",
"homepage": "https://vercel.com/docs",
@@ -20,7 +20,7 @@
"type-check": "tsc --noEmit"
},
"dependencies": {
"@vercel/nft": "0.26.2",
"@vercel/nft": "0.26.3",
"@vercel/routing-utils": "3.1.0",
"semver": "6.3.1"
},
@@ -28,7 +28,7 @@
"@types/aws-lambda": "8.10.19",
"@types/node": "14.18.33",
"@types/semver": "6.0.0",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"execa": "3.2.0",
"fs-extra": "11.1.0",
"jest-junit": "16.0.0"

View File

@@ -1,5 +1,11 @@
# @vercel/remix-builder
## 2.0.19
### Patch Changes
- [node][next][redwood][remix] bump `@vercel/nft@0.26.3` ([#11115](https://github.com/vercel/vercel/pull/11115))
## 2.0.18
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/remix-builder",
"version": "2.0.18",
"version": "2.0.19",
"license": "Apache-2.0",
"main": "./dist/index.js",
"homepage": "https://vercel.com/docs",
@@ -21,7 +21,7 @@
"defaults"
],
"dependencies": {
"@vercel/nft": "0.26.2",
"@vercel/nft": "0.26.3",
"@vercel/static-config": "3.0.0",
"ts-morph": "12.0.0"
},
@@ -30,7 +30,7 @@
"@types/jest": "27.5.1",
"@types/node": "14.18.33",
"@types/semver": "7.3.13",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"jest-junit": "16.0.0",
"path-to-regexp": "6.2.1",
"semver": "7.5.2"

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
"devDependencies": {
"@types/fs-extra": "8.0.0",
"@types/semver": "6.0.0",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"execa": "2.0.4",
"fs-extra": "^7.0.1",
"jest-junit": "16.0.0",

View File

@@ -1,5 +1,16 @@
# @vercel/static-build
## 2.3.0
### Minor Changes
- Revert "Default ruby to only currently supported version (3.2.0)" ([#11135](https://github.com/vercel/vercel/pull/11135))
### Patch Changes
- Updated dependencies [[`ab2444466`](https://github.com/vercel/vercel/commit/ab24444660339eaeacdaad7ff74594171a142b1e)]:
- @vercel/gatsby-plugin-vercel-builder@2.0.17
## 2.2.0
### Minor Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/static-build",
"version": "2.2.0",
"version": "2.3.0",
"license": "Apache-2.0",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/build-step",
@@ -21,7 +21,7 @@
},
"dependencies": {
"@vercel/gatsby-plugin-vercel-analytics": "1.0.11",
"@vercel/gatsby-plugin-vercel-builder": "2.0.16",
"@vercel/gatsby-plugin-vercel-builder": "2.0.17",
"@vercel/static-config": "3.0.0",
"ts-morph": "12.0.0"
},
@@ -35,7 +35,7 @@
"@types/node-fetch": "2.5.4",
"@types/promise-timeout": "1.3.0",
"@types/semver": "7.3.13",
"@vercel/build-utils": "7.5.1",
"@vercel/build-utils": "7.6.0",
"@vercel/error-utils": "2.0.2",
"@vercel/frameworks": "2.0.6",
"@vercel/fs-detectors": "5.1.6",

View File

@@ -46,7 +46,6 @@ import {
LocalFileSystemDetector,
} from '@vercel/fs-detectors';
const SUPPORTED_RUBY_VERSION = '3.2.0';
const sleep = (n: number) => new Promise(resolve => setTimeout(resolve, n));
const DEV_SERVER_PORT_BIND_TIMEOUT = ms('5m');
@@ -542,9 +541,12 @@ export const build: BuildV2 = async ({
pathList.push(vendorBin); // Add `./vendor/bin`
debug(`Added "${vendorBin}" to PATH env because a Gemfile was found`);
const dir = path.join(workPath, 'vendor', 'bundle', 'ruby');
const rubyVersion = SUPPORTED_RUBY_VERSION;
const rubyVersion =
existsSync(dir) && statSync(dir).isDirectory()
? readdirSync(dir)[0]
: '';
if (rubyVersion) {
gemHome = path.join(dir, rubyVersion);
gemHome = path.join(dir, rubyVersion); // Add `./vendor/bundle/ruby/2.7.0`
debug(`Set GEM_HOME="${gemHome}" because a Gemfile was found`);
}
}

View File

@@ -0,0 +1,23 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
.vercel

View File

@@ -0,0 +1,2 @@
probe.ts
update.ts

View File

@@ -0,0 +1,4 @@
import { defineConfig } from 'astro/config';
// https://astro.build/config
export default defineConfig({});

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
{
"name": "astro-v3",
"version": "0.0.1",
"type": "module",
"scripts": {
"astro": "astro",
"build": "astro build",
"dev": "astro dev",
"preview": "astro preview",
"start": "astro dev"
},
"dependencies": {
"astro": "^4.2.0"
}
}

View File

@@ -0,0 +1,5 @@
{
"probes": [
{ "path": "/", "mustContain": "Welcome to Astro" }
]
}

View File

@@ -0,0 +1,61 @@
---
interface Props {
title: string;
body: string;
href: string;
}
const { href, title, body } = Astro.props;
---
<li class="link-card">
<a href={href}>
<h2>
{title}
<span>&rarr;</span>
</h2>
<p>
{body}
</p>
</a>
</li>
<style>
.link-card {
list-style: none;
display: flex;
padding: 1px;
background-color: #23262d;
background-image: none;
background-size: 400%;
border-radius: 7px;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: calc(1.5rem - 1px);
border-radius: 8px;
color: white;
background-color: #23262d;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
background-image: var(--accent-gradient);
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent-light));
}
</style>

View File

@@ -0,0 +1 @@
/// <reference types="astro/client" />

View File

@@ -0,0 +1,50 @@
---
interface Props {
title: string;
}
const { title } = Astro.props;
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="description" content="Astro description" />
<meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} />
<title>{title}</title>
</head>
<body>
<slot />
</body>
</html>
<style is:global>
:root {
--accent: 136, 58, 234;
--accent-light: 224, 204, 250;
--accent-dark: 49, 10, 101;
--accent-gradient: linear-gradient(
45deg,
rgb(var(--accent)),
rgb(var(--accent-light)) 30%,
white 60%
);
}
html {
font-family: system-ui, sans-serif;
background: #13151a;
background-size: 224px;
}
code {
font-family:
Menlo,
Monaco,
Lucida Console,
Liberation Mono,
DejaVu Sans Mono,
Bitstream Vera Sans Mono,
Courier New,
monospace;
}
</style>

View File

@@ -0,0 +1,8 @@
---
import Layout from '../layouts/Layout.astro';
import Card from '../components/Card.astro';
---
<Layout title="Another Astro Page">
<h1>You are viewing another astro page</h1>
</Layout

View File

@@ -0,0 +1,80 @@
---
import Layout from '../layouts/Layout.astro';
import Card from '../components/Card.astro';
---
<Layout title="Welcome to Astro.">
<main>
<h1>Welcome to <span class="text-gradient">Astro</span></h1>
<p class="instructions">
To get started, open the directory <code>src/pages</code> in your project.<br />
<strong>Code Challenge:</strong> Tweak the "Welcome to Astro" message above.
</p>
<ul role="list" class="link-card-grid">
<Card
href="https://docs.astro.build/"
title="Documentation"
body="Learn how Astro works and explore the official API docs."
/>
</ul>
</main>
</Layout>
<style>
main {
margin: auto;
padding: 1rem;
width: 800px;
max-width: calc(100% - 2rem);
color: white;
font-size: 20px;
line-height: 1.6;
}
.astro-a {
position: absolute;
top: -32px;
left: 50%;
transform: translatex(-50%);
width: 220px;
height: auto;
z-index: -1;
}
h1 {
font-size: 4rem;
font-weight: 700;
line-height: 1;
text-align: center;
margin-bottom: 1em;
}
.text-gradient {
background-image: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-size: 400%;
background-position: 0%;
}
.instructions {
margin-bottom: 2rem;
border: 1px solid rgba(var(--accent-light), 25%);
background: linear-gradient(rgba(var(--accent-dark), 66%), rgba(var(--accent-dark), 33%));
padding: 1.5rem;
border-radius: 8px;
}
.instructions code {
font-size: 0.8em;
font-weight: bold;
background: rgba(var(--accent-light), 12%);
color: rgb(var(--accent-light));
border-radius: 4px;
padding: 0.3em 0.4em;
}
.instructions strong {
color: rgb(var(--accent-light));
}
.link-card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
gap: 2rem;
padding: 0;
}
</style>

View File

@@ -38,14 +38,8 @@ module.exports = function setupTests(groupIndex) {
console.log('testing group', groupIndex, fixtures);
}
const fixturesToSkip = ['jekyll-v3', 'jekyll-v4', 'middleman-v4'];
// eslint-disable-next-line no-restricted-syntax
for (const fixture of fixtures) {
if (fixturesToSkip.includes(fixture)) {
continue;
}
const errMsg = testsThatFailToBuild.get(fixture);
if (errMsg) {
// eslint-disable-next-line no-loop-func

108
pnpm-lock.yaml generated
View File

@@ -89,8 +89,8 @@ importers:
specifier: 29.1.0
version: 29.1.0(@babel/core@7.5.0)(esbuild@0.19.2)(jest@29.5.0)(typescript@4.9.5)
turbo:
specifier: 1.11.3
version: 1.11.3
specifier: 1.12.2
version: 1.12.2
typescript:
specifier: 4.9.5
version: 4.9.5
@@ -186,7 +186,7 @@ importers:
specifier: 1.0.4
version: link:../constants
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../../packages/build-utils
'@vercel/routing-utils':
specifier: 3.1.0
@@ -310,7 +310,7 @@ importers:
packages/cli:
dependencies:
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/fun':
specifier: 1.1.0
@@ -322,25 +322,25 @@ importers:
specifier: 1.0.2
version: link:../hydrogen
'@vercel/next':
specifier: 4.1.0
specifier: 4.1.1
version: link:../next
'@vercel/node':
specifier: 3.0.17
specifier: 3.0.18
version: link:../node
'@vercel/python':
specifier: 4.1.1
version: link:../python
'@vercel/redwood':
specifier: 2.0.6
specifier: 2.0.7
version: link:../redwood
'@vercel/remix-builder':
specifier: 2.0.18
specifier: 2.0.19
version: link:../remix
'@vercel/ruby':
specifier: 2.0.5
version: link:../ruby
'@vercel/static-build':
specifier: 2.2.0
specifier: 2.3.0
version: link:../static-build
chokidar:
specifier: 3.3.1
@@ -476,10 +476,10 @@ importers:
specifier: 1.0.0
version: link:../../internals/get-package-json
'@vercel-internals/types':
specifier: 1.0.21
specifier: 1.0.22
version: link:../../internals/types
'@vercel/client':
specifier: 13.1.1
specifier: 13.1.2
version: link:../client
'@vercel/error-utils':
specifier: 2.0.2
@@ -722,7 +722,7 @@ importers:
packages/client:
dependencies:
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/error-utils':
specifier: 2.0.2
@@ -926,7 +926,7 @@ importers:
specifier: 7.3.10
version: 7.3.10
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
jest-junit:
specifier: 16.0.0
@@ -951,7 +951,7 @@ importers:
specifier: 0.25.24
version: 0.25.24
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/routing-utils':
specifier: 3.1.0
@@ -1018,7 +1018,7 @@ importers:
specifier: 2.1.0
version: 2.1.0
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
async-retry:
specifier: 1.3.3
@@ -1067,7 +1067,7 @@ importers:
specifier: 14.18.33
version: 14.18.33
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
execa:
specifier: 3.2.0
@@ -1082,8 +1082,8 @@ importers:
packages/next:
dependencies:
'@vercel/nft':
specifier: 0.26.2
version: 0.26.2
specifier: 0.26.3
version: 0.26.3
devDependencies:
'@types/aws-lambda':
specifier: 8.10.19
@@ -1128,7 +1128,7 @@ importers:
specifier: 3.2.0
version: 3.2.0
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/routing-utils':
specifier: 3.1.0
@@ -1215,14 +1215,14 @@ importers:
specifier: 14.18.33
version: 14.18.33
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/error-utils':
specifier: 2.0.2
version: link:../error-utils
'@vercel/nft':
specifier: 0.26.2
version: 0.26.2
specifier: 0.26.3
version: 0.26.3
'@vercel/static-config':
specifier: 3.0.0
version: link:../static-config
@@ -1324,7 +1324,7 @@ importers:
specifier: 3.0.0
version: 3.0.0
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
execa:
specifier: ^1.0.0
@@ -1342,8 +1342,8 @@ importers:
packages/redwood:
dependencies:
'@vercel/nft':
specifier: 0.26.2
version: 0.26.2
specifier: 0.26.3
version: 0.26.3
'@vercel/routing-utils':
specifier: 3.1.0
version: link:../routing-utils
@@ -1361,7 +1361,7 @@ importers:
specifier: 6.0.0
version: 6.0.0
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
execa:
specifier: 3.2.0
@@ -1376,8 +1376,8 @@ importers:
packages/remix:
dependencies:
'@vercel/nft':
specifier: 0.26.2
version: 0.26.2
specifier: 0.26.3
version: 0.26.3
'@vercel/static-config':
specifier: 3.0.0
version: link:../static-config
@@ -1398,7 +1398,7 @@ importers:
specifier: 7.3.13
version: 7.3.13
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
jest-junit:
specifier: 16.0.0
@@ -1442,7 +1442,7 @@ importers:
specifier: 6.0.0
version: 6.0.0
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
execa:
specifier: 2.0.4
@@ -1463,7 +1463,7 @@ importers:
specifier: 1.0.11
version: link:../gatsby-plugin-vercel-analytics
'@vercel/gatsby-plugin-vercel-builder':
specifier: 2.0.16
specifier: 2.0.17
version: link:../gatsby-plugin-vercel-builder
'@vercel/static-config':
specifier: 3.0.0
@@ -1500,7 +1500,7 @@ importers:
specifier: 7.3.13
version: 7.3.13
'@vercel/build-utils':
specifier: 7.5.1
specifier: 7.6.0
version: link:../build-utils
'@vercel/error-utils':
specifier: 2.0.2
@@ -5386,8 +5386,8 @@ packages:
- supports-color
dev: false
/@vercel/nft@0.26.2:
resolution: {integrity: sha512-bxe2iShmKZi7476xYamyKvhhKwQ6JPEtQ2FSq1AjMUH2buMd8LQMkdoHinTqZYc+1sMTh3G0ARdjzNvV1FEisA==}
/@vercel/nft@0.26.3:
resolution: {integrity: sha512-h1z/NN9ppS4YOKwSgBoopJlhm7tS2Qb/9Ld1HXjDpvvTE7mY0xVD8nllXs+RihD9uTGJISOIMzp18Eg0EApaMA==}
engines: {node: '>=16'}
hasBin: true
dependencies:
@@ -14649,64 +14649,64 @@ packages:
safe-buffer: 5.2.1
dev: true
/turbo-darwin-64@1.11.3:
resolution: {integrity: sha512-IsOOg2bVbIt3o/X8Ew9fbQp5t1hTHN3fGNQYrPQwMR2W1kIAC6RfbVD4A9OeibPGyEPUpwOH79hZ9ydFH5kifw==}
/turbo-darwin-64@1.12.2:
resolution: {integrity: sha512-Aq/ePQ5KNx6XGwlZWTVTqpQYfysm1vkwkI6kAYgrX5DjMWn+tUXrSgNx4YNte0F+V4DQ7PtuWX+jRG0h0ZNg0A==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-darwin-arm64@1.11.3:
resolution: {integrity: sha512-FsJL7k0SaPbJzI/KCnrf/fi3PgCDCjTliMc/kEFkuWVA6Httc3Q4lxyLIIinz69q6JTx8wzh6yznUMzJRI3+dg==}
/turbo-darwin-arm64@1.12.2:
resolution: {integrity: sha512-wTr+dqkwJo/eXE+4SPTSeNBKyyfQJhI6I9sKVlCSBmtaNEqoGNgdVzgMUdqrg9AIFzLIiKO+zhfskNaSWpVFow==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-linux-64@1.11.3:
resolution: {integrity: sha512-SvW7pvTVRGsqtSkII5w+wriZXvxqkluw5FO/MNAdFw0qmoov+PZ237+37/NgArqE3zVn1GX9P6nUx9VO+xcQAg==}
/turbo-linux-64@1.12.2:
resolution: {integrity: sha512-BggBKrLojGarDaa2zBo+kUR3fmjpd6bLA8Unm3Aa2oJw0UvEi3Brd+w9lNsPZHXXQYBUzNUY2gCdxf3RteWb0g==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-linux-arm64@1.11.3:
resolution: {integrity: sha512-YhUfBi1deB3m+3M55X458J6B7RsIS7UtM3P1z13cUIhF+pOt65BgnaSnkHLwETidmhRh8Dl3GelaQGrB3RdCDw==}
/turbo-linux-arm64@1.12.2:
resolution: {integrity: sha512-v/apSRvVuwYjq1D9MJFsHv2EpGd1S4VoSdZvVfW6FaM06L8CFZa92urNR1svdGYN28YVKwK9Ikc9qudC6t/d5A==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-windows-64@1.11.3:
resolution: {integrity: sha512-s+vEnuM2TiZuAUUUpmBHDr6vnNbJgj+5JYfnYmVklYs16kXh+EppafYQOAkcRIMAh7GjV3pLq5/uGqc7seZeHA==}
/turbo-windows-64@1.12.2:
resolution: {integrity: sha512-3uDdwXcRGkgopYFdPDpxQiuQjfQ12Fxq0fhj+iGymav0eWA4W4wzYwSdlUp6rT22qOBIzaEsrIspRwx1DsMkNg==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo-windows-arm64@1.11.3:
resolution: {integrity: sha512-ZR5z5Zpc7cASwfdRAV5yNScCZBsgGSbcwiA/u3farCacbPiXsfoWUkz28iyrx21/TRW0bi6dbsB2v17swa8bjw==}
/turbo-windows-arm64@1.12.2:
resolution: {integrity: sha512-zNIHnwtQfJSjFi7movwhPQh2rfrcKZ7Xv609EN1yX0gEp9GxooCUi2yNnBQ8wTqFjioA2M5hZtGJQ0RrKaEm/Q==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo@1.11.3:
resolution: {integrity: sha512-RCJOUFcFMQNIGKSjC9YmA5yVP1qtDiBA0Lv9VIgrXraI5Da1liVvl3VJPsoDNIR9eFMyA/aagx1iyj6UWem5hA==}
/turbo@1.12.2:
resolution: {integrity: sha512-BcoQjBZ+LJCMdjzWhzQflOinUjek28rWXj07aaaAQ8T3Ehs0JFSjIsXOm4qIbo52G4xk3gFVcUtJhh/QRADl7g==}
hasBin: true
optionalDependencies:
turbo-darwin-64: 1.11.3
turbo-darwin-arm64: 1.11.3
turbo-linux-64: 1.11.3
turbo-linux-arm64: 1.11.3
turbo-windows-64: 1.11.3
turbo-windows-arm64: 1.11.3
turbo-darwin-64: 1.12.2
turbo-darwin-arm64: 1.12.2
turbo-linux-64: 1.12.2
turbo-linux-arm64: 1.12.2
turbo-windows-64: 1.12.2
turbo-windows-arm64: 1.12.2
dev: true
/tweetnacl@0.14.5: