Compare commits

..

10 Commits

Author SHA1 Message Date
Nathan Rajlich
7845bef826 Publish Stable
- vercel@28.16.7
 - @vercel/edge@0.3.0
 - @vercel/gatsby-plugin-vercel-builder@1.1.9
 - @vercel/next@3.6.1
 - @vercel/node-bridge@3.1.12
 - @vercel/node@2.9.8
 - @vercel/static-build@1.3.12
2023-02-24 04:04:16 -08:00
github-actions[bot]
7acb2e4b07 [examples] Upgrade Next.js to version 13.2.1 (#9536)
This auto-generated PR updates Next.js to version 13.2.1
2023-02-24 11:55:18 +00:00
Gal Schlezinger
abea002e93 [edge] Add RequestContext type (#9526)
Co-authored-by: Kiko Beats <josefrancisco.verdu@gmail.com>
2023-02-24 03:07:16 -08:00
Nathan Rajlich
2db9678bd4 [node-bridge] Fix multiple Set-Cookie headers in streaming mode (#9520)
Multiple `Set-Cookie` headers are being concat'd instead of being sent individually when in streaming mode.

**Non-streaming:**

```
$ curl -v https://01-remix-basics-eqztqyq3y.vercel-support.app/set-cookie 2>&1 | grep cookie
* h2h3 [:path: /set-cookie]
> GET /set-cookie HTTP/2
< set-cookie: foo=bar
< set-cookie: sessionId=38afes7a8
```

**Streaming:**

```
$ curl -v https://01-remix-basics-9b18alizh.vercel-support.app/set-cookie 2>&1 | grep cookie
* h2h3 [:path: /set-cookie]
> GET /set-cookie HTTP/2
< set-cookie: foo=bar,sessionId=38afes7a8
```
2023-02-24 04:03:37 +00:00
JJ Kasper
05f942c53f [tests] Update app-dir integration test (#9532)
The cache heuristic changed so there are now two separate serverless functions expected.
2023-02-24 00:29:34 +00:00
Nathan Rajlich
6c5f0b7aa0 Publish Stable
- vercel@28.16.6
 - @vercel/remix@1.4.1
2023-02-23 15:53:45 -08:00
Nathan Rajlich
fea05383b9 [remix] Ignore serverBuildPath from Remix config (#9531)
We are explicitly overriding `serverBuildPath` so there is no need to use the value that `readConfig()` gives to us.

Fixes #9524.
2023-02-23 23:52:27 +00:00
github-actions[bot]
247f49f765 [examples] Upgrade Next.js to version 13.2.0 (#9529)
This auto-generated PR updates Next.js to version 13.2.0

Co-authored-by: vercel-release-bot <infra+release@vercel.com>
2023-02-23 15:28:38 -05:00
Nathan Rajlich
231714c71b [remix] cd to the project directory during readConfig() (#9518)
Sometimes the `cwd` needs to be properly set for some Remix configurations. This is problematic in monorepos because the default `cwd` is the root of the monorepo, and not the project directory.

So `cd` to the project directory when reading the Remix config file to account for that.

Fixes https://github.com/kiliman/remix-flat-routes/issues/42.
Fixes https://github.com/vercel/vercel/discussions/9478.
2023-02-23 19:18:40 +00:00
Nathan Rajlich
73d6f0d0fa [remix] Update @remix-run/dev dep to v1.13.0 (#9519)
There were some fixes to thier new v2 filesystem routing that this will help with.

Related to https://github.com/remix-run/remix/issues/5322 and https://github.com/remix-run/remix/pull/5228.
2023-02-23 03:44:37 +00:00
21 changed files with 381 additions and 2408 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -9,10 +9,9 @@
"lint": "next lint"
},
"dependencies": {
"@next/font": "13.1.6",
"eslint": "8.32.0",
"eslint-config-next": "13.1.6",
"next": "13.1.6",
"eslint": "8.34.0",
"eslint-config-next": "13.2.1",
"next": "13.2.1",
"react": "18.2.0",
"react-dom": "18.2.0"
}

View File

@@ -1,6 +1,6 @@
import Head from 'next/head'
import Image from 'next/image'
import { Inter } from '@next/font/google'
import { Inter } from 'next/font/google'
import styles from '@/styles/Home.module.css'
const inter = Inter({ subsets: ['latin'] })

View File

@@ -1,6 +1,6 @@
{
"name": "vercel",
"version": "28.16.5",
"version": "28.16.7",
"preferGlobal": true,
"license": "Apache-2.0",
"description": "The command-line interface for Vercel",
@@ -44,13 +44,13 @@
"@vercel/build-utils": "6.3.1",
"@vercel/go": "2.3.8",
"@vercel/hydrogen": "0.0.54",
"@vercel/next": "3.6.0",
"@vercel/node": "2.9.7",
"@vercel/next": "3.6.1",
"@vercel/node": "2.9.8",
"@vercel/python": "3.1.50",
"@vercel/redwood": "1.1.6",
"@vercel/remix": "1.4.0",
"@vercel/remix": "1.4.1",
"@vercel/ruby": "1.3.67",
"@vercel/static-build": "1.3.11"
"@vercel/static-build": "1.3.12"
},
"devDependencies": {
"@alex_neo/jest-expect-message": "1.0.5",

View File

@@ -7,6 +7,7 @@
- [ExtraResponseInit](interfaces/ExtraResponseInit.md)
- [Geo](interfaces/Geo.md)
- [ModifiedRequest](interfaces/ModifiedRequest.md)
- [RequestContext](interfaces/RequestContext.md)
### Variables

View File

@@ -0,0 +1,79 @@
# Interface: RequestContext
An extension to the standard `Request` object that is passed to every Edge Function.
**`Example`**
```ts
import type { RequestContext } from '@vercel/edge';
export default async function handler(
request: Request,
ctx: RequestContext
): Promise<Response> {
// ctx is the RequestContext
}
```
## Table of contents
### Methods
- [waitUntil](RequestContext.md#waituntil)
## Methods
### waitUntil
**waitUntil**(`promise`): `void`
A method that can be used to keep the function running after a response has been sent.
This is useful when you have an async task that you want to keep running even after the
response has been sent and the request has ended.
**`Example`**
<caption>Sending an internal error to an error tracking service</caption>
```ts
import type { RequestContext } from '@vercel/edge';
export async function handleRequest(
request: Request,
ctx: RequestContext
): Promise<Response> {
try {
return await myFunctionThatReturnsResponse();
} catch (e) {
ctx.waitUntil(
(async () => {
// report this error to your error tracking service
await fetch('https://my-error-tracking-service.com', {
method: 'POST',
body: JSON.stringify({
stack: e.stack,
message: e.message,
name: e.name,
url: request.url,
}),
});
})()
);
return new Response('Internal Server Error', { status: 500 });
}
}
```
#### Parameters
| Name | Type | Description |
| :-------- | :---------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- |
| `promise` | [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)<`unknown`\> | A promise that will be kept alive until it resolves or rejects. |
#### Returns
`void`
#### Defined in
[packages/edge/src/request.ts:47](https://github.com/vercel/vercel/blob/main/packages/edge/src/request.ts#L47)

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/edge",
"version": "0.2.7",
"version": "0.3.0",
"license": "MIT",
"main": "dist/index.js",
"module": "dist/index.mjs",

View File

@@ -4,5 +4,6 @@ export * from './middleware-helpers';
export type { Geo } from './edge-headers';
export * from './edge-headers';
export * from './response';
export type { RequestContext } from './request';
import './published-types.d.ts';

View File

@@ -0,0 +1,52 @@
/**
* An extension to the standard `Request` object that is passed to every Edge Function.
*
* @example
* ```ts
* import type { RequestContext } from '@vercel/edge';
*
* export default async function handler(request: Request, ctx: RequestContext): Promise<Response> {
* // ctx is the RequestContext
* }
* ```
*/
export interface RequestContext {
/**
* A method that can be used to keep the function running after a response has been sent.
* This is useful when you have an async task that you want to keep running even after the
* response has been sent and the request has ended.
*
* @example
*
* <caption>Sending an internal error to an error tracking service</caption>
*
* ```ts
* import type { RequestContext } from '@vercel/edge';
*
* export async function handleRequest(request: Request, ctx: RequestContext): Promise<Response> {
* try {
* return await myFunctionThatReturnsResponse();
* } catch (e) {
* ctx.waitUntil((async () => {
* // report this error to your error tracking service
* await fetch('https://my-error-tracking-service.com', {
* method: 'POST',
* body: JSON.stringify({
* stack: e.stack,
* message: e.message,
* name: e.name,
* url: request.url,
* }),
* });
* })());
* return new Response('Internal Server Error', { status: 500 });
* }
* }
* ```
*/
waitUntil(
/**
* A promise that will be kept alive until it resolves or rejects.
*/ promise: Promise<unknown>
): void;
}

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/gatsby-plugin-vercel-builder",
"version": "1.1.8",
"version": "1.1.9",
"main": "dist/index.js",
"files": [
"dist",
@@ -15,7 +15,7 @@
},
"dependencies": {
"@vercel/build-utils": "6.3.1",
"@vercel/node": "2.9.7",
"@vercel/node": "2.9.8",
"@vercel/routing-utils": "2.1.9",
"ajv": "8.12.0",
"esbuild": "0.14.47",

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/next",
"version": "3.6.0",
"version": "3.6.1",
"license": "MIT",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",

View File

@@ -26,7 +26,7 @@ if (parseInt(process.versions.node.split('.')[0], 10) >= 16) {
}
}
expect(lambdas.size).toBe(1);
expect(lambdas.size).toBe(2);
expect(buildResult.output['dashboard']).toBeDefined();
expect(buildResult.output['dashboard/another']).toBeDefined();
expect(buildResult.output['dashboard/changelog']).toBeDefined();

View File

@@ -435,7 +435,13 @@ function getStreamResponseCallback({ url, socket, cipher, resolve, reject }) {
headers += `x-vercel-status-code: ${response.statusCode || 200}${CRLF}`;
for (const [name, value] of getHeadersIterator(response.headers)) {
if (!['connection', 'transfer-encoding'].includes(name)) {
headers += `x-vercel-header-${name}: ${value}${CRLF}`;
if (typeof value === 'string') {
headers += `x-vercel-header-${name}: ${value}${CRLF}`;
} else {
for (const val of value) {
headers += `x-vercel-header-${name}: ${val}${CRLF}`;
}
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/node-bridge",
"version": "3.1.11",
"version": "3.1.12",
"license": "MIT",
"main": "./index.js",
"repository": {

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/node",
"version": "2.9.7",
"version": "2.9.8",
"license": "MIT",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/node-js",
@@ -32,7 +32,7 @@
"@edge-runtime/vm": "2.0.0",
"@types/node": "14.18.33",
"@vercel/build-utils": "6.3.1",
"@vercel/node-bridge": "3.1.11",
"@vercel/node-bridge": "3.1.12",
"@vercel/static-config": "2.0.13",
"edge-runtime": "2.0.0",
"esbuild": "0.14.47",

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/remix",
"version": "1.4.0",
"version": "1.4.1",
"license": "MIT",
"main": "./dist/index.js",
"homepage": "https://vercel.com/docs",
@@ -21,7 +21,7 @@
"server-edge.mjs"
],
"dependencies": {
"@remix-run/dev": "1.12.0",
"@remix-run/dev": "1.13.0",
"@vercel/nft": "0.22.5",
"@vercel/static-config": "2.0.13",
"path-to-regexp": "6.2.1",

View File

@@ -28,6 +28,7 @@ import type {
PackageJson,
BuildResultV2Typical,
} from '@vercel/build-utils';
import type { RemixConfig } from '@remix-run/dev/dist/config';
import type { ConfigRoute } from '@remix-run/dev/dist/config/routes';
import {
findConfig,
@@ -94,8 +95,8 @@ export const build: BuildV2 = async ({
// Make `remix build` output production mode
spawnOpts.env.NODE_ENV = 'production';
let remixConfig = await readConfig(entrypointFsDirname);
const { serverEntryPoint } = remixConfig;
const remixConfig = await chdirAndReadConfig(entrypointFsDirname);
const remixRoutes = Object.values(remixConfig.routes);
// We need to patch the `remix.config.js` file to force some values necessary
// for a build that works on either Node.js or the Edge runtime
@@ -103,6 +104,7 @@ export const build: BuildV2 = async ({
const renamedRemixConfigPath = remixConfigPath
? `${remixConfigPath}.original${extname(remixConfigPath)}`
: undefined;
const serverBuildPath = 'build/index.js';
if (remixConfigPath && renamedRemixConfigPath) {
await fs.rename(remixConfigPath, renamedRemixConfigPath);
@@ -122,7 +124,7 @@ export const build: BuildV2 = async ({
config.serverBuildTarget = undefined;
config.serverModuleFormat = 'cjs';
config.serverPlatform = 'node';
config.serverBuildPath = 'build/index.js';
config.serverBuildPath = ${JSON.stringify(serverBuildPath)}
export default config;`;
} else {
patchedConfig = `const config = require('./${basename(
@@ -131,7 +133,7 @@ export default config;`;
config.serverBuildTarget = undefined;
config.serverModuleFormat = 'cjs';
config.serverPlatform = 'node';
config.serverBuildPath = 'build/index.js';
config.serverBuildPath = ${JSON.stringify(serverBuildPath)}
module.exports = config;`;
}
await fs.writeFile(remixConfigPath, patchedConfig);
@@ -166,7 +168,6 @@ module.exports = config;`;
});
}
}
remixConfig = await readConfig(entrypointFsDirname);
} finally {
// Clean up our patched `remix.config.js` to be polite
if (remixConfigPath && renamedRemixConfigPath) {
@@ -174,9 +175,6 @@ module.exports = config;`;
}
}
const { serverBuildPath } = remixConfig;
const remixRoutes = Object.values(remixConfig.routes);
// Figure out which pages should be edge functions
let hasEdgeRoute = false;
const staticConfigsMap = new Map<ConfigRoute, BaseFunctionConfig>();
@@ -207,16 +205,16 @@ module.exports = config;`;
createRenderNodeFunction(
entrypointFsDirname,
repoRootPath,
serverBuildPath,
serverEntryPoint,
join(entrypointFsDirname, serverBuildPath),
remixConfig.serverEntryPoint,
nodeVersion
),
hasEdgeRoute
? createRenderEdgeFunction(
entrypointFsDirname,
repoRootPath,
serverBuildPath,
serverEntryPoint
join(entrypointFsDirname, serverBuildPath),
remixConfig.serverEntryPoint
)
: undefined,
]);
@@ -482,3 +480,15 @@ async function ensureResolvable(start: string, base: string, pkgName: string) {
function isEdgeRuntime(runtime: string): boolean {
return runtime === 'edge' || runtime === 'experimental-edge';
}
async function chdirAndReadConfig(dir: string) {
const originalCwd = process.cwd();
let remixConfig: RemixConfig;
try {
process.chdir(dir);
remixConfig = await readConfig(dir);
} finally {
process.chdir(originalCwd);
}
return remixConfig;
}

View File

@@ -3,6 +3,7 @@
*/
export default {
ignoredRouteFiles: ["**/.*"],
serverBuildTarget: "vercel",
// When running locally in development mode, we use the built-in remix
// server. This does not understand the vercel lambda module format,
// so we default back to the standard build output.

View File

@@ -5,7 +5,7 @@
"src": "package.json",
"use": "@vercel/remix",
"config": {
"installCommand": "env | sort && npm install --install-strategy=linked",
"installCommand": "npm install --install-strategy=linked",
"zeroConfig": true
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@vercel/static-build",
"version": "1.3.11",
"version": "1.3.12",
"license": "MIT",
"main": "./dist/index",
"homepage": "https://vercel.com/docs/build-step",
@@ -30,7 +30,7 @@
},
"dependencies": {
"@vercel/gatsby-plugin-vercel-analytics": "1.0.7",
"@vercel/gatsby-plugin-vercel-builder": "1.1.8"
"@vercel/gatsby-plugin-vercel-builder": "1.1.9"
},
"devDependencies": {
"@types/aws-lambda": "8.10.64",

80
pnpm-lock.yaml generated
View File

@@ -213,14 +213,14 @@ importers:
'@vercel/go': 2.3.8
'@vercel/hydrogen': 0.0.54
'@vercel/ncc': 0.24.0
'@vercel/next': 3.6.0
'@vercel/node': 2.9.7
'@vercel/next': 3.6.1
'@vercel/node': 2.9.8
'@vercel/python': 3.1.50
'@vercel/redwood': 1.1.6
'@vercel/remix': 1.4.0
'@vercel/remix': 1.4.1
'@vercel/routing-utils': 2.1.9
'@vercel/ruby': 1.3.67
'@vercel/static-build': 1.3.11
'@vercel/static-build': 1.3.12
'@zeit/source-map-support': 0.6.2
ajv: 6.12.2
alpha-sort: 2.0.1
@@ -598,7 +598,7 @@ importers:
'@types/node': 14.18.33
'@types/react': 18.0.26
'@vercel/build-utils': 6.3.1
'@vercel/node': 2.9.7
'@vercel/node': 2.9.8
'@vercel/routing-utils': 2.1.9
ajv: 8.12.0
esbuild: 0.14.47
@@ -777,7 +777,7 @@ importers:
'@vercel/build-utils': 6.3.1
'@vercel/ncc': 0.24.0
'@vercel/nft': 0.22.5
'@vercel/node-bridge': 3.1.11
'@vercel/node-bridge': 3.1.12
'@vercel/static-config': 2.0.13
content-type: 1.0.4
cookie: 0.4.0
@@ -898,7 +898,7 @@ importers:
packages/remix:
specifiers:
'@remix-run/dev': 1.12.0
'@remix-run/dev': 1.13.0
'@types/jest': 27.5.1
'@types/node': 14.18.33
'@vercel/build-utils': 6.3.1
@@ -908,7 +908,7 @@ importers:
ts-morph: 12.0.0
typescript: 4.9.4
dependencies:
'@remix-run/dev': 1.12.0
'@remix-run/dev': 1.13.0
'@vercel/nft': 0.22.5
'@vercel/static-config': link:../static-config
path-to-regexp: 6.2.1
@@ -989,7 +989,7 @@ importers:
'@vercel/frameworks': 1.3.1
'@vercel/fs-detectors': 3.8.1
'@vercel/gatsby-plugin-vercel-analytics': 1.0.7
'@vercel/gatsby-plugin-vercel-builder': 1.1.8
'@vercel/gatsby-plugin-vercel-builder': 1.1.9
'@vercel/ncc': 0.24.0
'@vercel/routing-utils': 2.1.9
'@vercel/static-config': 2.0.13
@@ -3888,7 +3888,7 @@ packages:
resolution: {integrity: sha512-TInJmbrsmYIwUyrRxytjO82KjJbRwm67F7LoZs1shAq6rMvNqi4NxSY9j+hT/939alFmEq1zssoy/caeLXHRfQ==}
engines: {node: ^14.15.0 || >=16.0.0}
dependencies:
node-fetch: 2.6.8
node-fetch: 2.6.7
npmlog: 6.0.2
transitivePeerDependencies:
- encoding
@@ -4859,7 +4859,7 @@ packages:
'@octokit/request-error': 3.0.2
'@octokit/types': 8.1.0
is-plain-object: 5.0.0
node-fetch: 2.6.8
node-fetch: 2.6.7
universal-user-agent: 6.0.0
transitivePeerDependencies:
- encoding
@@ -5282,12 +5282,12 @@ packages:
webpack: 5.75.0_esbuild@0.14.47
dev: true
/@remix-run/dev/1.12.0:
resolution: {integrity: sha512-lBiA2FlDi+DjpOAE/vn93zFTSxudKag/FGpmbV6O+LQItDCpFARfbBMhTck/uKcc95nyhRd1GGhQ4ZDgQnyjaQ==}
/@remix-run/dev/1.13.0:
resolution: {integrity: sha512-hPqUjM9RRcz3inBOWqP3GKhggVz0a0ikWaRZpdKrhpQNCNiF6Hunbx876mJERj2YrmIzJ05eoeQmmdF6xcr4qg==}
engines: {node: '>=14'}
hasBin: true
peerDependencies:
'@remix-run/serve': ^1.12.0
'@remix-run/serve': ^1.13.0
peerDependenciesMeta:
'@remix-run/serve':
optional: true
@@ -5303,7 +5303,7 @@ packages:
'@babel/types': 7.20.7
'@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.16.3
'@npmcli/package-json': 2.0.0
'@remix-run/server-runtime': 1.12.0
'@remix-run/server-runtime': 1.13.0
'@vanilla-extract/integration': 6.0.3
arg: 5.0.2
cacache: 15.3.0
@@ -5325,10 +5325,11 @@ packages:
lodash.debounce: 4.0.8
lru-cache: 7.14.1
minimatch: 3.1.2
node-fetch: 2.6.8
node-fetch: 2.6.7
ora: 5.4.1
postcss: 8.4.21
postcss-discard-duplicates: 5.1.0_postcss@8.4.21
postcss-load-config: 4.0.1_postcss@8.4.21
postcss-modules: 6.0.0_postcss@8.4.21
prettier: 2.7.1
pretty-ms: 7.0.1
@@ -5347,6 +5348,7 @@ packages:
- bufferutil
- encoding
- supports-color
- ts-node
- utf-8-validate
dev: false
@@ -5370,6 +5372,11 @@ packages:
engines: {node: '>=14'}
dev: false
/@remix-run/router/1.3.2:
resolution: {integrity: sha512-t54ONhl/h75X94SWsHGQ4G/ZrCEguKSRQr7DrjTciJXW0YU1QhlwYeycvK5JgkzlxmvrK7wq1NB/PLtHxoiDcA==}
engines: {node: '>=14'}
dev: false
/@remix-run/server-runtime/1.12.0:
resolution: {integrity: sha512-7I0165Ns/ffPfCEfuiqD58lMderTn2s/sew1xJ34ONa21mG/7+5T7diHIgxKST8rS3816JPmlwSqUaHgwbmO6Q==}
engines: {node: '>=14'}
@@ -5383,6 +5390,19 @@ packages:
source-map: 0.7.4
dev: false
/@remix-run/server-runtime/1.13.0:
resolution: {integrity: sha512-gjIW3XCeIlOt3rrOZMD6HixQydRgs1SwYjP99ZAVruG2+gNq/tL2OusMFYTLvtWrybt215tPROyF/6iTLsaO3g==}
engines: {node: '>=14'}
dependencies:
'@remix-run/router': 1.3.2
'@types/cookie': 0.4.1
'@types/react': 18.0.26
'@web3-storage/multipart-parser': 1.0.0
cookie: 0.4.2
set-cookie-parser: 2.5.1
source-map: 0.7.4
dev: false
/@remix-run/web-blob/3.0.4:
resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==}
dependencies:
@@ -6082,7 +6102,7 @@ packages:
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.4
'@types/node': 18.11.18
'@types/node': 14.18.33
'@types/responselike': 1.0.0
/@types/chance/1.1.3:
@@ -6309,7 +6329,7 @@ packages:
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
dependencies:
'@types/minimatch': 5.1.2
'@types/node': 18.11.18
'@types/node': 14.18.33
/@types/graceful-fs/4.1.6:
resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
@@ -6424,7 +6444,7 @@ packages:
/@types/keyv/3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
'@types/node': 18.11.18
'@types/node': 14.18.33
/@types/load-json-file/2.0.7:
resolution: {integrity: sha512-NrH6jPlV77QCVPhAHofWeiOr77TgpKt82c2RVxSBChWBJqyY/u4ngl3CA4mcsAg/w7rNLrkR7dkObMV0ihLLXw==}
@@ -6546,6 +6566,7 @@ packages:
/@types/node/18.11.18:
resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
dev: true
/@types/node/8.10.66:
resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==}
@@ -6631,7 +6652,7 @@ packages:
/@types/responselike/1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
'@types/node': 18.11.18
'@types/node': 14.18.33
/@types/retry/0.12.2:
resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
@@ -16498,7 +16519,6 @@ packages:
/lilconfig/2.0.6:
resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
engines: {node: '>=10'}
dev: true
/line-async-iterator/3.0.0:
resolution: {integrity: sha512-IJwnVaX14dtWL2Za0B/qpuettNO3wtO2tb3NT37ffrz3ZOOkAFOpty5vysg7eLJ+QodMLRSROjR2csFB8ozYJg==}
@@ -19298,6 +19318,23 @@ packages:
yaml: 1.10.2
dev: true
/postcss-load-config/4.0.1_postcss@8.4.21:
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
dependencies:
lilconfig: 2.0.6
postcss: 8.4.21
yaml: 2.2.1
dev: false
/postcss-loader/5.3.0_6jdsrmfenkuhhw3gx4zvjlznce:
resolution: {integrity: sha512-/+Z1RAmssdiSLgIZwnJHwBMnlABPgF7giYzTN2NOfr9D21IJZ4mQC1R2miwp80zno9M4zMD/umGI8cR+2EL5zw==}
engines: {node: '>= 10.13.0'}
@@ -23639,7 +23676,6 @@ packages:
/yaml/2.2.1:
resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==}
engines: {node: '>= 14'}
dev: true
/yargs-parser/10.1.0:
resolution: {integrity: sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==}