mirror of
https://github.com/withastro/astro.git
synced 2025-12-05 18:56:38 -06:00
chore: move vercel adapter to code
This commit is contained in:
@@ -31,12 +31,12 @@
|
||||
},
|
||||
"files": ["dist", "types.d.ts"],
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"build": "astro-scripts build \"src/**/*.ts\" && tsc",
|
||||
"test": "astro-scripts test --timeout 50000 \"test/**/!(hosted).test.js\"",
|
||||
"test:hosted": "astro-scripts test --timeout 30000 \"test/hosted/*.test.js\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/internal-helpers": "^0.4.2",
|
||||
"@astrojs/internal-helpers": "^0.5.1",
|
||||
"@vercel/analytics": "^1.4.1",
|
||||
"@vercel/edge": "^1.2.1",
|
||||
"@vercel/nft": "^0.29.0",
|
||||
@@ -48,8 +48,7 @@
|
||||
"astro": "^5.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/test-utils": "workspace:*",
|
||||
"astro": "^5.1.6",
|
||||
"astro": "workspace:*",
|
||||
"astro-scripts": "workspace:*",
|
||||
"cheerio": "1.0.0"
|
||||
},
|
||||
|
||||
@@ -53,7 +53,6 @@ const service: ExternalImageService = {
|
||||
options.width && searchParams.append('w', options.width.toString());
|
||||
options.quality && searchParams.append('q', options.quality.toString());
|
||||
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
return '/_vercel/image?' + searchParams;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -15,7 +15,6 @@ export const baseDevService: Omit<LocalImageService, 'transform'> = {
|
||||
options.width && searchParams.append('w', options.width.toString());
|
||||
options.quality && searchParams.append('q', options.quality.toString());
|
||||
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
return '/_image?' + searchParams;
|
||||
},
|
||||
parseURL(url) {
|
||||
@@ -26,9 +25,7 @@ export const baseDevService: Omit<LocalImageService, 'transform'> = {
|
||||
}
|
||||
|
||||
const transform = {
|
||||
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
||||
src: params.get('href')!,
|
||||
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
||||
width: params.has('w') ? Number.parseInt(params.get('w')!) : undefined,
|
||||
quality: params.get('q'),
|
||||
};
|
||||
|
||||
@@ -142,7 +142,6 @@ export function sharedValidateOptions(
|
||||
} else {
|
||||
if (!configuredWidths.includes(options.width)) {
|
||||
const nearestWidth = configuredWidths.reduce((prev, curr) => {
|
||||
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
||||
return Math.abs(curr - options.width!) < Math.abs(prev - options.width!) ? curr : prev;
|
||||
});
|
||||
|
||||
|
||||
@@ -174,11 +174,9 @@ export default function vercelAdapter({
|
||||
}: VercelServerlessConfig = {}): AstroIntegration {
|
||||
if (maxDuration) {
|
||||
if (typeof maxDuration !== 'number') {
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
throw new TypeError(`maxDuration must be a number`, { cause: maxDuration });
|
||||
}
|
||||
if (maxDuration <= 0) {
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
throw new TypeError(`maxDuration must be a positive number`, { cause: maxDuration });
|
||||
}
|
||||
}
|
||||
@@ -223,9 +221,9 @@ export default function vercelAdapter({
|
||||
hooks: {
|
||||
'astro:build:done': async () => {
|
||||
logger.info('Copying static files to .vercel/output/static');
|
||||
const staticDir =
|
||||
const _staticDir =
|
||||
_buildOutput === 'static' ? _config.outDir : _config.build.client;
|
||||
cpSync(staticDir, new URL('./.vercel/output/static/', _config.root), {
|
||||
cpSync(_staticDir, new URL('./.vercel/output/static/', _config.root), {
|
||||
recursive: true,
|
||||
});
|
||||
},
|
||||
@@ -258,7 +256,6 @@ export default function vercelAdapter({
|
||||
`maxDuration is set to ${maxDuration} seconds, which is longer than the maximum allowed duration of 900 seconds.`
|
||||
);
|
||||
logger.warn(
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`Please make sure that your plan allows for this duration. See https://vercel.com/docs/functions/serverless-functions/runtimes#maxduration for more information.`
|
||||
);
|
||||
}
|
||||
@@ -574,7 +571,7 @@ class VercelBuilder {
|
||||
) {}
|
||||
|
||||
async buildServerlessFolder(entry: URL, functionName: string, root: URL) {
|
||||
const { config, includeFiles, excludeFiles, logger, NTF_CACHE, runtime, maxDuration } = this;
|
||||
const { includeFiles, excludeFiles, logger, NTF_CACHE, runtime, maxDuration } = this;
|
||||
// .vercel/output/functions/<name>.func/
|
||||
const functionFolder = new URL(`./functions/${functionName}.func/`, this.outDir);
|
||||
const packageJson = new URL(`./functions/${functionName}.func/package.json`, this.outDir);
|
||||
@@ -635,7 +632,6 @@ class VercelBuilder {
|
||||
this.logger
|
||||
);
|
||||
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
await writeJson(new URL(`./.vc-config.json`, functionFolder), {
|
||||
runtime: 'edge',
|
||||
entrypoint: 'middleware.mjs',
|
||||
@@ -649,13 +645,9 @@ function getRuntime(process: NodeJS.Process, logger: AstroIntegrationLogger): Ru
|
||||
const support = SUPPORTED_NODE_VERSIONS[major];
|
||||
if (support === undefined) {
|
||||
logger.warn(
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`\n` +
|
||||
`\tThe local Node.js version (${major}) is not supported by Vercel Serverless Functions.\n` +
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`\tYour project will use Node.js 18 as the runtime instead.\n` +
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`\tConsider switching your local version to 18.\n`
|
||||
);
|
||||
return 'nodejs18.x';
|
||||
@@ -682,12 +674,9 @@ function getRuntime(process: NodeJS.Process, logger: AstroIntegrationLogger): Ru
|
||||
support.removal
|
||||
);
|
||||
logger.warn(
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`\n` +
|
||||
`\tYour project is being built for Node.js ${major} as the runtime.\n` +
|
||||
`\tThis version is deprecated by Vercel Serverless Functions, and scheduled to be disabled on ${removeDate}.\n` +
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
`\tConsider upgrading your local version to 18.\n`
|
||||
);
|
||||
return `nodejs${major}.x`;
|
||||
|
||||
@@ -42,7 +42,6 @@ export async function copyDependenciesToFunction(
|
||||
|
||||
for (const error of result.warnings) {
|
||||
if (error.message.startsWith('Failed to resolve dependency')) {
|
||||
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
||||
const [, module, file] = /Cannot find module '(.+?)' loaded from (.+)/.exec(error.message)!;
|
||||
|
||||
// The import(astroRemark) sometimes fails to resolve, but it's not a problem
|
||||
@@ -65,7 +64,6 @@ export async function copyDependenciesToFunction(
|
||||
// such as this html file in "main" meant for nw instead of node:
|
||||
// https://github.com/vercel/nft/issues/311
|
||||
else if (error.message.startsWith('Failed to parse')) {
|
||||
// biome-ignore lint/correctness/noUnnecessaryContinue: <explanation>
|
||||
continue;
|
||||
} else {
|
||||
throw error;
|
||||
|
||||
@@ -6,16 +6,6 @@ import type { Redirect } from '@vercel/routing-utils';
|
||||
|
||||
const pathJoin = nodePath.posix.join;
|
||||
|
||||
// https://vercel.com/docs/project-configuration#legacy/routes
|
||||
interface VercelRoute {
|
||||
src: string;
|
||||
methods?: string[];
|
||||
dest?: string;
|
||||
headers?: Record<string, string>;
|
||||
status?: number;
|
||||
continue?: boolean;
|
||||
}
|
||||
|
||||
// Copied from astro/packages/astro/src/core/routing/manifest/create.ts
|
||||
// Disable eslint as we're not sure how to improve this regex yet
|
||||
// eslint-disable-next-line regexp/no-super-linear-backtracking
|
||||
|
||||
@@ -7,7 +7,6 @@ export async function getInjectableWebAnalyticsContent({
|
||||
}: {
|
||||
mode: 'development' | 'production';
|
||||
}) {
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
const base = `window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };`;
|
||||
|
||||
if (mode === 'development') {
|
||||
|
||||
@@ -16,8 +16,12 @@ import {
|
||||
*
|
||||
* Then this file gets bundled with esbuild. The bundle phase will inline the Astro middleware code.
|
||||
*
|
||||
* @param astroMiddlewareEntryPoint
|
||||
* @param astroMiddlewareEntryPointPath
|
||||
* @param root
|
||||
* @param vercelEdgeMiddlewareHandlerPath
|
||||
* @param outPath
|
||||
* @param middlewareSecret
|
||||
* @param logger
|
||||
* @returns {Promise<URL>} The path to the bundled file
|
||||
*/
|
||||
export async function generateEdgeMiddleware(
|
||||
@@ -61,7 +65,6 @@ export async function generateEdgeMiddleware(
|
||||
name: 'esbuild-namespace-node-built-in-modules',
|
||||
setup(build) {
|
||||
const filter = new RegExp(builtinModules.map((mod) => `(^${mod}$)`).join('|'));
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
build.onResolve({ filter }, (args) => ({ path: 'node:' + args.path, external: true }));
|
||||
},
|
||||
},
|
||||
@@ -82,14 +85,12 @@ function edgeMiddlewareTemplate(
|
||||
const filePathEdgeMiddleware = fileURLToPath(vercelEdgeMiddlewareHandlerPath);
|
||||
let handlerTemplateImport = '';
|
||||
let handlerTemplateCall = '{}';
|
||||
// biome-ignore lint/style/useTemplate: <explanation>
|
||||
if (existsSync(filePathEdgeMiddleware + '.js') || existsSync(filePathEdgeMiddleware + '.ts')) {
|
||||
logger.warn(
|
||||
'Usage of `vercel-edge-middleware.js` is deprecated. You can now use the `waitUntil(promise)` function directly as `ctx.locals.waitUntil(promise)`.'
|
||||
);
|
||||
const stringified = JSON.stringify(filePathEdgeMiddleware.replace(/\\/g, '/'));
|
||||
handlerTemplateImport = `import handler from ${stringified}`;
|
||||
// biome-ignore lint/style/noUnusedTemplateLiteral: <explanation>
|
||||
handlerTemplateCall = `await handler({ request, context })`;
|
||||
} else {
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { before, describe, it } from 'node:test';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Vercel edge middleware', () => {
|
||||
/** @type {import('../../../astro/test/test-utils.js').Fixture} */
|
||||
/** @type {import('./test-utils.js').Fixture} */
|
||||
let build;
|
||||
before(async () => {
|
||||
build = await loadFixture({
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
"dependencies": {
|
||||
"@astrojs/sitemap": "^3.2.1",
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@astrojs/vercel": "workspace:*",
|
||||
"astro": "^5.1.6"
|
||||
"astro": "workspace:*"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import * as cheerio from 'cheerio';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Image', () => {
|
||||
/** @type {import('../../../astro/test/test-utils.js').Fixture} */
|
||||
/** @type {import('./test-utils.js').Fixture} */
|
||||
let fixture;
|
||||
|
||||
before(async () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { before, describe, it } from 'node:test';
|
||||
import { describe, it } from 'node:test';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Assets generated by integrations', () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { before, describe, it } from 'node:test';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Redirects', () => {
|
||||
/** @type {import('../../../astro/test/test-utils.js').Fixture} */
|
||||
/** @type {import('./test-utils.js').Fixture} */
|
||||
let fixture;
|
||||
|
||||
before(async () => {
|
||||
|
||||
@@ -3,7 +3,7 @@ import { describe, it } from 'node:test';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Static Assets', () => {
|
||||
/** @type {import('../../../astro/test/test-utils.js').Fixture} */
|
||||
/** @type {import('./test-utils.js').Fixture} */
|
||||
let fixture;
|
||||
|
||||
const VALID_CACHE_CONTROL = 'public, max-age=31536000, immutable';
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { loadFixture as baseLoadFixture } from '@astrojs/test-utils';
|
||||
|
||||
export { fixLineEndings } from '@astrojs/test-utils';
|
||||
import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
|
||||
export { fixLineEndings } from '../../../astro/test/test-utils.js';
|
||||
|
||||
export function loadFixture(config) {
|
||||
if (config?.root) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "../../tsconfig.base.json",
|
||||
"extends": "../../../tsconfig.base.json",
|
||||
"include": ["src"],
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
|
||||
265
pnpm-lock.yaml
generated
265
pnpm-lock.yaml
generated
@@ -5484,7 +5484,213 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel: {}
|
||||
packages/integrations/vercel:
|
||||
dependencies:
|
||||
'@astrojs/internal-helpers':
|
||||
specifier: ^0.5.1
|
||||
version: link:../../internal-helpers
|
||||
'@vercel/analytics':
|
||||
specifier: ^1.4.1
|
||||
version: 1.4.1(react@19.0.0)(svelte@5.19.7)(vue@3.5.13(typescript@5.7.3))
|
||||
'@vercel/edge':
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1
|
||||
'@vercel/nft':
|
||||
specifier: ^0.29.0
|
||||
version: 0.29.1(rollup@4.34.2)
|
||||
'@vercel/routing-utils':
|
||||
specifier: 5.0.2
|
||||
version: 5.0.2
|
||||
esbuild:
|
||||
specifier: ^0.24.0
|
||||
version: 0.24.2
|
||||
fast-glob:
|
||||
specifier: ^3.3.3
|
||||
version: 3.3.3
|
||||
devDependencies:
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../astro
|
||||
astro-scripts:
|
||||
specifier: workspace:*
|
||||
version: link:../../../scripts
|
||||
cheerio:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/integrations/vercel/test/fixtures/basic:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/image:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/integration-assets:
|
||||
dependencies:
|
||||
'@astrojs/sitemap':
|
||||
specifier: ^3.2.1
|
||||
version: link:../../../../sitemap
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/isr:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/max-duration:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/middleware-with-edge-file:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/middleware-without-edge-file:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/no-output:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/prerendered-error-pages:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/redirects:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/redirects-serverless:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/server-islands:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/serverless-prerender:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/serverless-with-dynamic-routes:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/static:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/static-assets:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/streaming:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/fixtures/with-web-analytics-enabled/output-as-static:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../../..
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../../../../../astro
|
||||
|
||||
packages/integrations/vercel/test/hosted/hosted-astro-project:
|
||||
dependencies:
|
||||
'@astrojs/vercel':
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
astro:
|
||||
specifier: ^5.1.6
|
||||
version: link:../../../../../astro
|
||||
|
||||
packages/integrations/vue:
|
||||
dependencies:
|
||||
@@ -7708,11 +7914,43 @@ packages:
|
||||
'@ungap/structured-clone@1.2.0':
|
||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||
|
||||
'@vercel/analytics@1.4.1':
|
||||
resolution: {integrity: sha512-ekpL4ReX2TH3LnrRZTUKjHHNpNy9S1I7QmS+g/RQXoSUQ8ienzosuX7T9djZ/s8zPhBx1mpHP/Rw5875N+zQIQ==}
|
||||
peerDependencies:
|
||||
'@remix-run/react': ^2
|
||||
'@sveltejs/kit': ^1 || ^2
|
||||
next: '>= 13'
|
||||
react: ^18 || ^19 || ^19.0.0-rc
|
||||
svelte: '>= 4'
|
||||
vue: ^3
|
||||
vue-router: ^4
|
||||
peerDependenciesMeta:
|
||||
'@remix-run/react':
|
||||
optional: true
|
||||
'@sveltejs/kit':
|
||||
optional: true
|
||||
next:
|
||||
optional: true
|
||||
react:
|
||||
optional: true
|
||||
svelte:
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
vue-router:
|
||||
optional: true
|
||||
|
||||
'@vercel/edge@1.2.1':
|
||||
resolution: {integrity: sha512-1++yncEyIAi68D3UEOlytYb1IUcIulMWdoSzX2h9LuSeeyR7JtaIgR8DcTQ6+DmYOQn+5MCh6LY+UmK6QBByNA==}
|
||||
|
||||
'@vercel/nft@0.29.1':
|
||||
resolution: {integrity: sha512-6239JJM1V9b3OjvZIjbe+47/hGxMr44FEzlbTErrqzebCaoKAHK+yvahn3gdNacybDUbTxVF8Zuh0vqaeM8aKQ==}
|
||||
engines: {node: '>=18'}
|
||||
hasBin: true
|
||||
|
||||
'@vercel/routing-utils@5.0.2':
|
||||
resolution: {integrity: sha512-uJViB3+HEo+kzHYELs7cQWX5k0kCNvq9G/8nJQX8mP5Ta0fG68CBRmOaaG8A+2xbtTp/QuGORIwV8CsI9ebcNg==}
|
||||
|
||||
'@vitejs/plugin-react@4.3.4':
|
||||
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
@@ -10226,6 +10464,12 @@ packages:
|
||||
path-to-regexp@0.1.12:
|
||||
resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
|
||||
|
||||
path-to-regexp@6.1.0:
|
||||
resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==}
|
||||
|
||||
path-to-regexp@6.3.0:
|
||||
resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
|
||||
|
||||
path-type@4.0.0:
|
||||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -13887,6 +14131,14 @@ snapshots:
|
||||
|
||||
'@ungap/structured-clone@1.2.0': {}
|
||||
|
||||
'@vercel/analytics@1.4.1(react@19.0.0)(svelte@5.19.7)(vue@3.5.13(typescript@5.7.3))':
|
||||
optionalDependencies:
|
||||
react: 19.0.0
|
||||
svelte: 5.19.7
|
||||
vue: 3.5.13(typescript@5.7.3)
|
||||
|
||||
'@vercel/edge@1.2.1': {}
|
||||
|
||||
'@vercel/nft@0.29.1(rollup@4.34.2)':
|
||||
dependencies:
|
||||
'@mapbox/node-pre-gyp': 2.0.0
|
||||
@@ -13906,6 +14158,13 @@ snapshots:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
||||
'@vercel/routing-utils@5.0.2':
|
||||
dependencies:
|
||||
path-to-regexp: 6.1.0
|
||||
path-to-regexp-updated: path-to-regexp@6.3.0
|
||||
optionalDependencies:
|
||||
ajv: 6.12.6
|
||||
|
||||
'@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(sass@1.83.4)(yaml@2.5.1))':
|
||||
dependencies:
|
||||
'@babel/core': 7.26.0
|
||||
@@ -16841,6 +17100,10 @@ snapshots:
|
||||
|
||||
path-to-regexp@0.1.12: {}
|
||||
|
||||
path-to-regexp@6.1.0: {}
|
||||
|
||||
path-to-regexp@6.3.0: {}
|
||||
|
||||
path-type@4.0.0: {}
|
||||
|
||||
path-type@5.0.0: {}
|
||||
|
||||
Reference in New Issue
Block a user