diff --git a/packages/cli/jest.config.js b/packages/cli/jest.config.js index ce32ad14b..5496291ed 100644 --- a/packages/cli/jest.config.js +++ b/packages/cli/jest.config.js @@ -1,11 +1,14 @@ /** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */ module.exports = { preset: 'ts-jest', - globals: { - 'ts-jest': { - diagnostics: false, - isolatedModules: true, - }, + transform: { + '^.+\\.[tj]s$': [ + 'ts-jest', + { + diagnostics: true, + isolatedModules: true, + }, + ], }, setupFilesAfterEnv: ['@alex_neo/jest-expect-message'], verbose: false, diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-module/api/data.js b/packages/cli/test/dev/fixtures/esm-js-edge-module/api/data.js new file mode 100644 index 000000000..4a248eded --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-module/api/data.js @@ -0,0 +1,17 @@ +import isLeapYear from 'leap-year'; + +export const config = { + runtime: 'edge' +}; + +export default async function handler(req) { + const data = { isLeapYear: isLeapYear() }; + const json = JSON.stringify(data); + + return new Response(json, { + headers: { + 'content-type': 'application/json;charset=UTF-8', + 'access-control-allow-origin': '*' + } + }); +} diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-module/package.json b/packages/cli/test/dev/fixtures/esm-js-edge-module/package.json new file mode 100644 index 000000000..fcb043ad6 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-module/package.json @@ -0,0 +1,8 @@ +{ + "name": "esm-js-edge-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "private": true, + "type": "module" +} \ No newline at end of file diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-js-edge-module/yarn.lock new file mode 100644 index 000000000..ef7990e05 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-module/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-no-module/api/data.js b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/api/data.js new file mode 100644 index 000000000..4a248eded --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/api/data.js @@ -0,0 +1,17 @@ +import isLeapYear from 'leap-year'; + +export const config = { + runtime: 'edge' +}; + +export default async function handler(req) { + const data = { isLeapYear: isLeapYear() }; + const json = JSON.stringify(data); + + return new Response(json, { + headers: { + 'content-type': 'application/json;charset=UTF-8', + 'access-control-allow-origin': '*' + } + }); +} diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-no-module/package.json b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/package.json new file mode 100644 index 000000000..4931154e6 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/package.json @@ -0,0 +1,7 @@ +{ + "name": "esm-js-edge-no-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "private": true +} diff --git a/packages/cli/test/dev/fixtures/esm-js-edge-no-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/yarn.lock new file mode 100644 index 000000000..ef7990e05 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-edge-no-module/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-module/api/data.js b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/api/data.js new file mode 100644 index 000000000..6d043120b --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/api/data.js @@ -0,0 +1,6 @@ +import isLeapYear from 'leap-year'; + +export default async function handler(req, res) { + const data = { isLeapYear: isLeapYear() }; + res.status(200).json(data); +} diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-module/package.json b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/package.json new file mode 100644 index 000000000..4bd1d9703 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/package.json @@ -0,0 +1,8 @@ +{ + "name": "esm-js-nodejs-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "private": true, + "type": "module" +} diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/yarn.lock new file mode 100644 index 000000000..ef7990e05 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-module/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/api/data.js b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/api/data.js new file mode 100644 index 000000000..6d043120b --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/api/data.js @@ -0,0 +1,6 @@ +import isLeapYear from 'leap-year'; + +export default async function handler(req, res) { + const data = { isLeapYear: isLeapYear() }; + res.status(200).json(data); +} diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/package.json b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/package.json new file mode 100644 index 000000000..48d41ba3e --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/package.json @@ -0,0 +1,7 @@ +{ + "name": "esm-js-nodejs-no-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "private": true +} diff --git a/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/yarn.lock new file mode 100644 index 000000000..ef7990e05 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-js-nodejs-no-module/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-module/api/data.ts b/packages/cli/test/dev/fixtures/esm-ts-edge-module/api/data.ts new file mode 100644 index 000000000..9d8a33071 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-module/api/data.ts @@ -0,0 +1,17 @@ +import isLeapYear from 'leap-year'; + +export const config = { + runtime: 'edge' +} + +export default async function handler(req: Request) { + const data = { isLeapYear: isLeapYear() }; + const json = JSON.stringify(data) + + return new Response(json, { + headers: { + 'content-type': 'application/json;charset=UTF-8', + 'access-control-allow-origin': '*' + } + }) +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-module/package.json b/packages/cli/test/dev/fixtures/esm-ts-edge-module/package.json new file mode 100644 index 000000000..05d32af14 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-module/package.json @@ -0,0 +1,12 @@ +{ + "name": "esm-ts-edge-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "devDependencies": { + "@vercel/edge": "latest", + "typescript": "4.9.5" + }, + "private": true, + "type": "module" +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-ts-edge-module/yarn.lock new file mode 100644 index 000000000..c646f4181 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-module/yarn.lock @@ -0,0 +1,18 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@vercel/edge@latest": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@vercel/edge/-/edge-0.3.2.tgz#2895479a80ef3e291da61bbdc6c76b54af2b7c1e" + integrity sha512-+Vmzzdj5bRdLkBUERJEMkm1pgBDoMrcyDZLRjCWQskOTpi9NfAyu5RU42y4XxpPBwHpuRzkk6lpGa1g3c1Xw2w== + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== + +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/api/data.ts b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/api/data.ts new file mode 100644 index 000000000..9d8a33071 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/api/data.ts @@ -0,0 +1,17 @@ +import isLeapYear from 'leap-year'; + +export const config = { + runtime: 'edge' +} + +export default async function handler(req: Request) { + const data = { isLeapYear: isLeapYear() }; + const json = JSON.stringify(data) + + return new Response(json, { + headers: { + 'content-type': 'application/json;charset=UTF-8', + 'access-control-allow-origin': '*' + } + }) +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/package.json b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/package.json new file mode 100644 index 000000000..eb0c75408 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/package.json @@ -0,0 +1,11 @@ +{ + "name": "esm-ts-edge-no-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "devDependencies": { + "@vercel/edge": "latest", + "typescript": "4.9.5" + }, + "private": true +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/yarn.lock new file mode 100644 index 000000000..c646f4181 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-edge-no-module/yarn.lock @@ -0,0 +1,18 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@vercel/edge@latest": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@vercel/edge/-/edge-0.3.2.tgz#2895479a80ef3e291da61bbdc6c76b54af2b7c1e" + integrity sha512-+Vmzzdj5bRdLkBUERJEMkm1pgBDoMrcyDZLRjCWQskOTpi9NfAyu5RU42y4XxpPBwHpuRzkk6lpGa1g3c1Xw2w== + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== + +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/api/data.ts b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/api/data.ts new file mode 100644 index 000000000..32c28b44d --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/api/data.ts @@ -0,0 +1,7 @@ +import isLeapYear from 'leap-year'; +import type { VercelRequest, VercelResponse } from '@vercel/node'; + +export default async function handler(req: VercelRequest, res: VercelResponse) { + const data = { isLeapYear: isLeapYear() }; + res.status(200).json(data); +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/package.json b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/package.json new file mode 100644 index 000000000..5db1cc7c9 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/package.json @@ -0,0 +1,12 @@ +{ + "name": "esm-ts-nodejs-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "devDependencies": { + "@vercel/node": "latest", + "typescript": "4.9.5" + }, + "private": true, + "type": "module" +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/yarn.lock new file mode 100644 index 000000000..998f4d121 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-module/yarn.lock @@ -0,0 +1,627 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@edge-runtime/format@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/format/-/format-1.1.0.tgz#5a209221a8bae7791d6e465c480f146249d1e15f" + integrity sha512-MkLDDtPhXZIMx83NykdFmOpF7gVWIdd6GBHYb8V/E+PKWvD2pK/qWx9B30oN1iDJ2XBm0SGDjz02S8nDHI9lMQ== + +"@edge-runtime/primitives@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/primitives/-/primitives-2.0.0.tgz#b4bf44f9cab36aee3027fe4c3ff3cc1d5713e155" + integrity sha512-AXqUq1zruTJAICrllUvZcgciIcEGHdF6KJ3r6FM0n4k8LpFxZ62tPWVIJ9HKm+xt+ncTBUZxwgUaQ73QMUQEKw== + +"@edge-runtime/vm@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/vm/-/vm-2.0.0.tgz#9170d2d03761eff4e27687888c4b2d9af1f94c7d" + integrity sha512-BOLrAX8IWHRXu1siZocwLguKJPEUv7cr+rG8tI4hvHgMdIsBWHJlLeB8EjuUVnIURFrUiM49lVKn8DRrECmngw== + dependencies: + "@edge-runtime/primitives" "2.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@ts-morph/common@~0.11.0": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e" + integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g== + dependencies: + fast-glob "^3.2.7" + minimatch "^3.0.4" + mkdirp "^1.0.4" + path-browserify "^1.0.1" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/json-schema@^7.0.6": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/node@14.18.33": + version "14.18.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" + integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== + +"@vercel/build-utils@6.7.1": + version "6.7.1" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-6.7.1.tgz#94bccb959d9f2dcdecb7744c939b546073902373" + integrity sha512-Ecc9oQBSVwk1suENcRcj1L6gQrUt4+0XA9oPFxrUpoFEk04lP/ZV3qAQPk+ex08N+vfUulYdqb+cmVTnwqsmqw== + +"@vercel/node-bridge@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-4.0.1.tgz#e4f41188f61d9cd4e7c44de31d436dd447e1978c" + integrity sha512-XEfKfnLGzlIBpad7eGNPql1HnMhoSTv9q3uDNC4axdaAC/kI5yvl8kXjuCPAXYvpbJnVQPpcSUC5/r5ap8F3jA== + +"@vercel/node@latest": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.10.3.tgz#24a65d9f7e69161762c85df630601f3852308c26" + integrity sha512-R6YwD7YTV4OPEjXnthTP2Zn96ZF2TAjmBhGKfYC9ZuqlmFzSxqyuHn+RUSkknkKBO46b4OzaNdi5XVnAdJizLA== + dependencies: + "@edge-runtime/vm" "2.0.0" + "@types/node" "14.18.33" + "@vercel/build-utils" "6.7.1" + "@vercel/node-bridge" "4.0.1" + "@vercel/static-config" "2.0.15" + edge-runtime "2.0.0" + esbuild "0.14.47" + exit-hook "2.2.1" + node-fetch "2.6.7" + ts-node "10.9.1" + typescript "4.3.4" + +"@vercel/static-config@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.15.tgz#a1e4d052e50cb9493071aaa2b4ca5e05c054fada" + integrity sha512-A/N3ZGiOOMql9JArwBTIfhFngFtmVC7ndKQKp0FoFq8MO79AS5qBBtdpILS5QA71M5v+9CPjVkHxN6QweU55Xg== + dependencies: + ajv "8.6.3" + json-schema-to-ts "1.6.4" + ts-morph "12.0.0" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +ajv@8.6.3: + version "8.6.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +code-block-writer@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" + integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-hrtime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" + integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +edge-runtime@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/edge-runtime/-/edge-runtime-2.0.0.tgz#4739e1c8f4237db8ad8a16db5f0e28cc6de16aab" + integrity sha512-TmRJhKi4mlM1e+zgF4CSzVU5gJ1sWj7ia+XhVgZ8PYyYUxk4PPjJU8qScpSLsAbdSxoBghLxdMuwuCzdYLd1sQ== + dependencies: + "@edge-runtime/format" "1.1.0" + "@edge-runtime/vm" "2.0.0" + exit-hook "2.2.1" + http-status "1.5.3" + mri "1.2.0" + picocolors "1.0.0" + pretty-bytes "5.6.0" + pretty-ms "7.0.1" + time-span "4.0.0" + +esbuild-android-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" + integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== + +esbuild-android-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" + integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== + +esbuild-darwin-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" + integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== + +esbuild-darwin-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" + integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== + +esbuild-freebsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" + integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== + +esbuild-freebsd-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" + integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== + +esbuild-linux-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" + integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== + +esbuild-linux-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" + integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== + +esbuild-linux-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" + integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== + +esbuild-linux-arm@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" + integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== + +esbuild-linux-mips64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" + integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== + +esbuild-linux-ppc64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" + integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== + +esbuild-linux-riscv64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" + integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== + +esbuild-linux-s390x@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" + integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== + +esbuild-netbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" + integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== + +esbuild-openbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" + integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== + +esbuild-sunos-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" + integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== + +esbuild-windows-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" + integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== + +esbuild-windows-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" + integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== + +esbuild-windows-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" + integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== + +esbuild@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" + integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== + optionalDependencies: + esbuild-android-64 "0.14.47" + esbuild-android-arm64 "0.14.47" + esbuild-darwin-64 "0.14.47" + esbuild-darwin-arm64 "0.14.47" + esbuild-freebsd-64 "0.14.47" + esbuild-freebsd-arm64 "0.14.47" + esbuild-linux-32 "0.14.47" + esbuild-linux-64 "0.14.47" + esbuild-linux-arm "0.14.47" + esbuild-linux-arm64 "0.14.47" + esbuild-linux-mips64le "0.14.47" + esbuild-linux-ppc64le "0.14.47" + esbuild-linux-riscv64 "0.14.47" + esbuild-linux-s390x "0.14.47" + esbuild-netbsd-64 "0.14.47" + esbuild-openbsd-64 "0.14.47" + esbuild-sunos-64 "0.14.47" + esbuild-windows-32 "0.14.47" + esbuild-windows-64 "0.14.47" + esbuild-windows-arm64 "0.14.47" + +exit-hook@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" + integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.7: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +http-status@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.5.3.tgz#9d1f6adcd1a609f535679f6e1b82811b96c3306e" + integrity sha512-jCClqdnnwigYslmtfb28vPplOgoiZ0siP2Z8C5Ua+3UKbx410v+c+jT+jh1bbI4TvcEySuX0vd/CfFZFbDkJeQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +json-schema-to-ts@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz#63e4fe854dff093923be9e8b59b39ee9a7971ba4" + integrity sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA== + dependencies: + "@types/json-schema" "^7.0.6" + ts-toolbelt "^6.15.5" + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mri@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +picocolors@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pretty-bytes@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-ms@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +time-span@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/time-span/-/time-span-4.0.0.tgz#fe74cd50a54e7998712f90ddfe47109040c985c4" + integrity sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g== + dependencies: + convert-hrtime "^3.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-morph@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7" + integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA== + dependencies: + "@ts-morph/common" "~0.11.0" + code-block-writer "^10.1.1" + +ts-node@10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-toolbelt@^6.15.5: + version "6.15.5" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" + integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== + +typescript@4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" + integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== + +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/api/data.ts b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/api/data.ts new file mode 100644 index 000000000..32c28b44d --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/api/data.ts @@ -0,0 +1,7 @@ +import isLeapYear from 'leap-year'; +import type { VercelRequest, VercelResponse } from '@vercel/node'; + +export default async function handler(req: VercelRequest, res: VercelResponse) { + const data = { isLeapYear: isLeapYear() }; + res.status(200).json(data); +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/package.json b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/package.json new file mode 100644 index 000000000..865f1f8b0 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/package.json @@ -0,0 +1,11 @@ +{ + "name": "esm-ts-nodejs-no-module", + "dependencies": { + "leap-year": "4.0.0" + }, + "devDependencies": { + "@vercel/node": "latest", + "typescript": "4.9.5" + }, + "private": true +} diff --git a/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/yarn.lock b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/yarn.lock new file mode 100644 index 000000000..998f4d121 --- /dev/null +++ b/packages/cli/test/dev/fixtures/esm-ts-nodejs-no-module/yarn.lock @@ -0,0 +1,627 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@edge-runtime/format@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/format/-/format-1.1.0.tgz#5a209221a8bae7791d6e465c480f146249d1e15f" + integrity sha512-MkLDDtPhXZIMx83NykdFmOpF7gVWIdd6GBHYb8V/E+PKWvD2pK/qWx9B30oN1iDJ2XBm0SGDjz02S8nDHI9lMQ== + +"@edge-runtime/primitives@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/primitives/-/primitives-2.0.0.tgz#b4bf44f9cab36aee3027fe4c3ff3cc1d5713e155" + integrity sha512-AXqUq1zruTJAICrllUvZcgciIcEGHdF6KJ3r6FM0n4k8LpFxZ62tPWVIJ9HKm+xt+ncTBUZxwgUaQ73QMUQEKw== + +"@edge-runtime/vm@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@edge-runtime/vm/-/vm-2.0.0.tgz#9170d2d03761eff4e27687888c4b2d9af1f94c7d" + integrity sha512-BOLrAX8IWHRXu1siZocwLguKJPEUv7cr+rG8tI4hvHgMdIsBWHJlLeB8EjuUVnIURFrUiM49lVKn8DRrECmngw== + dependencies: + "@edge-runtime/primitives" "2.0.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@ts-morph/common@~0.11.0": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.11.1.tgz#281af2a0642b19354d8aa07a0d50dfdb4aa8164e" + integrity sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g== + dependencies: + fast-glob "^3.2.7" + minimatch "^3.0.4" + mkdirp "^1.0.4" + path-browserify "^1.0.1" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/json-schema@^7.0.6": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/node@14.18.33": + version "14.18.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.33.tgz#8c29a0036771569662e4635790ffa9e057db379b" + integrity sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg== + +"@vercel/build-utils@6.7.1": + version "6.7.1" + resolved "https://registry.yarnpkg.com/@vercel/build-utils/-/build-utils-6.7.1.tgz#94bccb959d9f2dcdecb7744c939b546073902373" + integrity sha512-Ecc9oQBSVwk1suENcRcj1L6gQrUt4+0XA9oPFxrUpoFEk04lP/ZV3qAQPk+ex08N+vfUulYdqb+cmVTnwqsmqw== + +"@vercel/node-bridge@4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@vercel/node-bridge/-/node-bridge-4.0.1.tgz#e4f41188f61d9cd4e7c44de31d436dd447e1978c" + integrity sha512-XEfKfnLGzlIBpad7eGNPql1HnMhoSTv9q3uDNC4axdaAC/kI5yvl8kXjuCPAXYvpbJnVQPpcSUC5/r5ap8F3jA== + +"@vercel/node@latest": + version "2.10.3" + resolved "https://registry.yarnpkg.com/@vercel/node/-/node-2.10.3.tgz#24a65d9f7e69161762c85df630601f3852308c26" + integrity sha512-R6YwD7YTV4OPEjXnthTP2Zn96ZF2TAjmBhGKfYC9ZuqlmFzSxqyuHn+RUSkknkKBO46b4OzaNdi5XVnAdJizLA== + dependencies: + "@edge-runtime/vm" "2.0.0" + "@types/node" "14.18.33" + "@vercel/build-utils" "6.7.1" + "@vercel/node-bridge" "4.0.1" + "@vercel/static-config" "2.0.15" + edge-runtime "2.0.0" + esbuild "0.14.47" + exit-hook "2.2.1" + node-fetch "2.6.7" + ts-node "10.9.1" + typescript "4.3.4" + +"@vercel/static-config@2.0.15": + version "2.0.15" + resolved "https://registry.yarnpkg.com/@vercel/static-config/-/static-config-2.0.15.tgz#a1e4d052e50cb9493071aaa2b4ca5e05c054fada" + integrity sha512-A/N3ZGiOOMql9JArwBTIfhFngFtmVC7ndKQKp0FoFq8MO79AS5qBBtdpILS5QA71M5v+9CPjVkHxN6QweU55Xg== + dependencies: + ajv "8.6.3" + json-schema-to-ts "1.6.4" + ts-morph "12.0.0" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +ajv@8.6.3: + version "8.6.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +code-block-writer@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-10.1.1.tgz#ad5684ed4bfb2b0783c8b131281ae84ee640a42f" + integrity sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-hrtime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" + integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +edge-runtime@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/edge-runtime/-/edge-runtime-2.0.0.tgz#4739e1c8f4237db8ad8a16db5f0e28cc6de16aab" + integrity sha512-TmRJhKi4mlM1e+zgF4CSzVU5gJ1sWj7ia+XhVgZ8PYyYUxk4PPjJU8qScpSLsAbdSxoBghLxdMuwuCzdYLd1sQ== + dependencies: + "@edge-runtime/format" "1.1.0" + "@edge-runtime/vm" "2.0.0" + exit-hook "2.2.1" + http-status "1.5.3" + mri "1.2.0" + picocolors "1.0.0" + pretty-bytes "5.6.0" + pretty-ms "7.0.1" + time-span "4.0.0" + +esbuild-android-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" + integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== + +esbuild-android-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" + integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== + +esbuild-darwin-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" + integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== + +esbuild-darwin-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" + integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== + +esbuild-freebsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" + integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== + +esbuild-freebsd-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" + integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== + +esbuild-linux-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" + integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== + +esbuild-linux-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" + integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== + +esbuild-linux-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" + integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== + +esbuild-linux-arm@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" + integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== + +esbuild-linux-mips64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" + integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== + +esbuild-linux-ppc64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" + integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== + +esbuild-linux-riscv64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" + integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== + +esbuild-linux-s390x@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" + integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== + +esbuild-netbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" + integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== + +esbuild-openbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" + integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== + +esbuild-sunos-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" + integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== + +esbuild-windows-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" + integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== + +esbuild-windows-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" + integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== + +esbuild-windows-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" + integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== + +esbuild@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" + integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== + optionalDependencies: + esbuild-android-64 "0.14.47" + esbuild-android-arm64 "0.14.47" + esbuild-darwin-64 "0.14.47" + esbuild-darwin-arm64 "0.14.47" + esbuild-freebsd-64 "0.14.47" + esbuild-freebsd-arm64 "0.14.47" + esbuild-linux-32 "0.14.47" + esbuild-linux-64 "0.14.47" + esbuild-linux-arm "0.14.47" + esbuild-linux-arm64 "0.14.47" + esbuild-linux-mips64le "0.14.47" + esbuild-linux-ppc64le "0.14.47" + esbuild-linux-riscv64 "0.14.47" + esbuild-linux-s390x "0.14.47" + esbuild-netbsd-64 "0.14.47" + esbuild-openbsd-64 "0.14.47" + esbuild-sunos-64 "0.14.47" + esbuild-windows-32 "0.14.47" + esbuild-windows-64 "0.14.47" + esbuild-windows-arm64 "0.14.47" + +exit-hook@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-2.2.1.tgz#007b2d92c6428eda2b76e7016a34351586934593" + integrity sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.7: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +http-status@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.5.3.tgz#9d1f6adcd1a609f535679f6e1b82811b96c3306e" + integrity sha512-jCClqdnnwigYslmtfb28vPplOgoiZ0siP2Z8C5Ua+3UKbx410v+c+jT+jh1bbI4TvcEySuX0vd/CfFZFbDkJeQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +json-schema-to-ts@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz#63e4fe854dff093923be9e8b59b39ee9a7971ba4" + integrity sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA== + dependencies: + "@types/json-schema" "^7.0.6" + ts-toolbelt "^6.15.5" + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +leap-year@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/leap-year/-/leap-year-4.0.0.tgz#e18a9001d45a393c6d5cc5f3e7bbf9b238fe068b" + integrity sha512-+GveCBnhFmRjFf04Nj/2Z/w5lNC4bRXpecIRz5QkK+LnWBwuf9jAaNEfbybrU+e2ls8J6p+FZMjiq1aEh+gPAw== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mri@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +picocolors@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pretty-bytes@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-ms@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +time-span@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/time-span/-/time-span-4.0.0.tgz#fe74cd50a54e7998712f90ddfe47109040c985c4" + integrity sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g== + dependencies: + convert-hrtime "^3.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-morph@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-12.0.0.tgz#a601c3538703755cbfa2d42b62c52df73e9dbbd7" + integrity sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA== + dependencies: + "@ts-morph/common" "~0.11.0" + code-block-writer "^10.1.1" + +ts-node@10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-toolbelt@^6.15.5: + version "6.15.5" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" + integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== + +typescript@4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc" + integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew== + +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/packages/cli/test/dev/integration-5.test.ts b/packages/cli/test/dev/integration-5.test.ts index b7c4c9388..026a9a0f9 100644 --- a/packages/cli/test/dev/integration-5.test.ts +++ b/packages/cli/test/dev/integration-5.test.ts @@ -447,3 +447,117 @@ test( } }) ); + +describe('[vercel dev] ESM edge functions', () => { + test( + '[vercel dev] ESM .js type=module', + testFixtureStdio( + 'esm-js-edge-module', + async (_testPath: any, port: any) => { + let res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .ts type=module', + testFixtureStdio( + 'esm-ts-edge-module', + async (_testPath: any, port: any) => { + const res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .js type=commonjs', + testFixtureStdio( + 'esm-js-edge-no-module', + async (_testPath: any, port: any) => { + const res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .ts type=commonjs', + testFixtureStdio( + 'esm-ts-edge-no-module', + async (_testPath: any, port: any) => { + const res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); +}); + +describe('[vercel dev] ESM serverless functions', () => { + test( + '[vercel dev] ESM .js type=module', + testFixtureStdio( + 'esm-js-nodejs-module', + async (_testPath: any, port: any) => { + const res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .ts type=module', + testFixtureStdio( + 'esm-ts-nodejs-module', + async (_testPath: any, port: any) => { + const res = await fetch(`http://localhost:${port}/api/data`); + validateResponseHeaders(res); + const json = await res.json(); + expect(json).toHaveProperty('isLeapYear'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .js type=commonjs', + testFixtureStdio( + 'esm-js-nodejs-no-module', + async (testPath: any) => { + // bad gateway + // require() of ESM Module + await testPath(500, '/api/data'); + }, + { skipDeploy: true } + ) + ); + + test( + '[vercel dev] ESM .ts type=commonjs', + testFixtureStdio( + 'esm-ts-nodejs-no-module', + async (testPath: any) => { + // bad gateway + // require() of ESM Module + await testPath(500, '/api/data'); + }, + { skipDeploy: true } + ) + ); +}); diff --git a/packages/cli/test/dev/utils.js b/packages/cli/test/dev/utils.js index 0f0fbd096..bff29b999 100644 --- a/packages/cli/test/dev/utils.js +++ b/packages/cli/test/dev/utils.js @@ -115,6 +115,11 @@ function validateResponseHeaders(res, podId) { async function exec(directory, args = []) { const token = await fetchCachedToken(); + console.log( + `exec() ${binaryPath} dev ${directory} -t ***${ + process.env.VERCEL_TEAM_ID ? ' --scope ***' : '' + } ${args.join(' ')}` + ); return execa( binaryPath, [ @@ -195,6 +200,11 @@ async function testFixture(directory, opts = {}, args = []) { await runNpmInstall(directory); const token = await fetchCachedToken(); + console.log( + `testFixture() ${binaryPath} dev ${directory} -t ***${ + process.env.VERCEL_TEAM_ID ? ' --scope ***' : '' + } -l ${port} ${args.join(' ')}` + ); const dev = execa( binaryPath, [ @@ -427,6 +437,11 @@ function testFixtureStdio( try { let printedOutput = false; + console.log( + `testFixtureStdio() ${binaryPath} dev -l ${port} -t ***${ + process.env.VERCEL_TEAM_ID ? ' --scope ***' : '' + } --debug` + ); const env = skipDeploy ? { ...process.env, __VERCEL_SKIP_DEV_CMD: 1 } : process.env; diff --git a/packages/cli/test/unit/commands/build/index.test.ts b/packages/cli/test/unit/commands/build/index.test.ts index f1c9d17ca..90aba5bfc 100644 --- a/packages/cli/test/unit/commands/build/index.test.ts +++ b/packages/cli/test/unit/commands/build/index.test.ts @@ -82,6 +82,7 @@ describe('build', () => { const output = join(cwd, '.vercel/output'); try { process.chdir(cwd); + const exitCode = await build(client); expect(exitCode).toEqual(0); @@ -195,6 +196,7 @@ describe('build', () => { const output = join(cwd, '.vercel/output'); try { process.chdir(cwd); + const exitCode = await build(client); expect(exitCode).toEqual(0); @@ -1267,9 +1269,6 @@ describe('build', () => { const cwd = fixture('local-config'); const output = join(cwd, '.vercel/output'); try { - client.stdout.pipe(process.stdout); - client.stderr.pipe(process.stderr); - process.chdir(cwd); let exitCode = await build(client); delete process.env.__VERCEL_BUILD_RUNNING; diff --git a/packages/cli/test/unit/util/build/import-builders.test.ts b/packages/cli/test/unit/util/build/import-builders.test.ts index 3621e0078..f735361be 100644 --- a/packages/cli/test/unit/util/build/import-builders.test.ts +++ b/packages/cli/test/unit/util/build/import-builders.test.ts @@ -9,7 +9,8 @@ import { import vercelNextPkg from '@vercel/next/package.json'; import vercelNodePkg from '@vercel/node/package.json'; -jest.setTimeout(60 * 1000); +// these tests can take upwards of 190s on macos-latest +jest.setTimeout(4 * 60 * 1000); const repoRoot = join(__dirname, '../../../../../..'); diff --git a/packages/next/src/edge-function-source/get-edge-function-source.ts b/packages/next/src/edge-function-source/get-edge-function-source.ts index 18a7093f7..bdd1a0f20 100644 --- a/packages/next/src/edge-function-source/get-edge-function-source.ts +++ b/packages/next/src/edge-function-source/get-edge-function-source.ts @@ -8,7 +8,7 @@ import zlib from 'zlib'; import { promisify } from 'util'; import { prettyBytes } from '../utils'; -// @ts-expect-error this is a prebuilt file, based on `../../scripts/build-edge-function-template.js` +// @ts-ignore this is a prebuilt file, based on `../../scripts/build-edge-function-template.js` import template from '../../dist/___get-nextjs-edge-function.js'; const gzip = promisify(zlib.gzip); diff --git a/packages/next/test/fixtures/00-initial-notfound-revalidate-i18n/index.test.js b/packages/next/test/fixtures/00-initial-notfound-revalidate-i18n/index.test.js index 2ae81116f..9350c6ead 100644 --- a/packages/next/test/fixtures/00-initial-notfound-revalidate-i18n/index.test.js +++ b/packages/next/test/fixtures/00-initial-notfound-revalidate-i18n/index.test.js @@ -40,7 +40,7 @@ describe(`${__dirname.split(path.sep).pop()}`, () => { }); it('should render the page on-demand with preview mode enabled', async () => { - for (locale of ['fr', 'en-US', 'fr-FR', 'nl', 'nl-NL', 'de']) { + for (const locale of ['fr', 'en-US', 'fr-FR', 'nl', 'nl-NL', 'de']) { const dataRes = await fetch( `${ctx.deploymentUrl}/_next/data/testing-build-id/${locale}/preview-only-not-found.json` ); diff --git a/packages/next/test/fixtures/09-yarn-workspaces/packages/common/package.json b/packages/next/test/fixtures/09-yarn-workspaces/packages/common/package.json index eee2bf71e..8c494f9a9 100644 --- a/packages/next/test/fixtures/09-yarn-workspaces/packages/common/package.json +++ b/packages/next/test/fixtures/09-yarn-workspaces/packages/common/package.json @@ -12,6 +12,6 @@ "node": "16.x" }, "devDependencies": { - "typescript": "^3.7.3" + "typescript": "4.9.5" } } diff --git a/packages/next/test/fixtures/09-yarn-workspaces/packages/web/package.json b/packages/next/test/fixtures/09-yarn-workspaces/packages/web/package.json index 4aec47c2e..6db56b650 100644 --- a/packages/next/test/fixtures/09-yarn-workspaces/packages/web/package.json +++ b/packages/next/test/fixtures/09-yarn-workspaces/packages/web/package.json @@ -22,7 +22,7 @@ "@types/node": "^12.12.14", "@types/react": "^16.9.15", "@types/react-dom": "16.9.4", - "typescript": "3.7.3" + "typescript": "4.9.5" }, "license": "ISC" } diff --git a/packages/next/tsconfig.json b/packages/next/tsconfig.json index 62985a54a..be1e6f95f 100644 --- a/packages/next/tsconfig.json +++ b/packages/next/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "allowJs": true, "strict": true, "esModuleInterop": true, "lib": ["ES2020"], diff --git a/packages/node/build.js b/packages/node/build.js index d6893ab67..f1cebc78d 100644 --- a/packages/node/build.js +++ b/packages/node/build.js @@ -35,10 +35,17 @@ async function main() { await Promise.all([ fs.remove(mainDir), fs.remove(join(outDir, 'babel.d.ts')), - fs.remove(join(outDir, 'dev-server.d.ts')), + fs.remove(join(outDir, 'dev-server.d.mts')), + fs.remove(join(outDir, 'fork-dev-server.d.ts')), fs.remove(join(outDir, 'types.d.ts')), fs.remove(join(outDir, 'typescript.d.ts')), fs.remove(join(outDir, 'utils.d.ts')), + fs.remove(join(outDir, 'edge-functions/edge-handler-template.d.ts')), + fs.remove(join(outDir, 'edge-functions/edge-handler.d.mts')), + fs.remove(join(outDir, 'edge-functions/edge-wasm-plugin.d.mts')), + fs.remove(join(outDir, 'edge-functions/edge-node-compat-plugin.d.mts')), + fs.remove(join(outDir, 'serverless-functions/helpers.d.ts')), + fs.remove(join(outDir, 'serverless-functions/serverless-handler.d.mts')), ]); // Copy type file for ts test @@ -47,11 +54,6 @@ async function main() { join(__dirname, 'test/fixtures/15-helpers/ts/types.d.ts') ); - await fs.copyFile( - join(__dirname, 'src/serverless-functions/dynamic-import.js'), - join(outDir, 'serverless-functions/dynamic-import.js') - ); - await fs.copyFile( join(__dirname, 'src/edge-functions/edge-handler-template.js'), join(outDir, 'edge-functions/edge-handler-template.js') diff --git a/packages/node/package.json b/packages/node/package.json index adbabda91..cddd8d2de 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -21,6 +21,7 @@ "dependencies": { "@edge-runtime/vm": "2.0.0", "@types/node": "14.18.33", + "@types/node-fetch": "2.6.3", "@vercel/build-utils": "6.7.1", "@vercel/error-utils": "1.0.8", "@vercel/static-config": "2.0.16", @@ -28,11 +29,11 @@ "edge-runtime": "2.1.4", "esbuild": "0.14.47", "exit-hook": "2.2.1", - "node-fetch": "2.6.7", + "node-fetch": "2.6.9", "path-to-regexp": "6.2.1", "ts-morph": "12.0.0", "ts-node": "10.9.1", - "typescript": "4.3.4" + "typescript": "4.9.5" }, "devDependencies": { "@babel/core": "7.5.0", @@ -42,8 +43,7 @@ "@types/content-type": "1.1.3", "@types/cookie": "0.3.3", "@types/etag": "1.8.0", - "@types/jest": "27.4.1", - "@types/node-fetch": "^2.6.1", + "@types/jest": "29.5.0", "@types/test-listen": "1.1.0", "@vercel/ncc": "0.24.0", "@vercel/nft": "0.22.5", diff --git a/packages/node/src/dev-server.ts b/packages/node/src/dev-server.mts similarity index 92% rename from packages/node/src/dev-server.ts rename to packages/node/src/dev-server.mts index 0dea0a10a..27516fdd0 100644 --- a/packages/node/src/dev-server.ts +++ b/packages/node/src/dev-server.mts @@ -6,18 +6,18 @@ if (!entrypoint) { } import { join } from 'path'; -const useRequire = process.env.VERCEL_DEV_IS_ESM !== '1'; - import type { Headers } from 'node-fetch'; -import type { VercelProxyResponse } from './types'; +import type { VercelProxyResponse } from './types.js'; import { Config } from '@vercel/build-utils'; -import { createEdgeEventHandler } from './edge-functions/edge-handler'; +import { createEdgeEventHandler } from './edge-functions/edge-handler.mjs'; import { createServer, IncomingMessage, ServerResponse } from 'http'; -import { createServerlessEventHandler } from './serverless-functions/serverless-handler'; -import { EdgeRuntimes, isEdgeRuntime, logError } from './utils'; +import { createServerlessEventHandler } from './serverless-functions/serverless-handler.mjs'; +import { EdgeRuntimes, isEdgeRuntime, logError } from './utils.js'; import { getConfig } from '@vercel/static-config'; import { Project } from 'ts-morph'; -import listen from 'async-listen'; +import asyncListen from 'async-listen'; + +const { default: listen } = asyncListen; const parseConfig = (entryPointPath: string) => getConfig(new Project(), entryPointPath); @@ -57,7 +57,6 @@ async function createEventHandler( return createServerlessEventHandler(entrypointPath, { mode: staticConfig?.supportsResponseStreaming ? 'streaming' : 'buffer', shouldAddHelpers: options.shouldAddHelpers, - useRequire, }); } @@ -95,7 +94,7 @@ async function main() { } } -export async function onDevRequest( +async function onDevRequest( req: IncomingMessage, res: ServerResponse ): Promise { diff --git a/packages/node/src/edge-functions/edge-handler.ts b/packages/node/src/edge-functions/edge-handler.mts similarity index 96% rename from packages/node/src/edge-functions/edge-handler.ts rename to packages/node/src/edge-functions/edge-handler.mts index 0d80a0050..eb90e6219 100644 --- a/packages/node/src/edge-functions/edge-handler.ts +++ b/packages/node/src/edge-functions/edge-handler.mts @@ -1,19 +1,19 @@ -import { createEdgeWasmPlugin, WasmAssets } from './edge-wasm-plugin'; +import { createEdgeWasmPlugin, WasmAssets } from './edge-wasm-plugin.mjs'; import { createNodeCompatPlugin, NodeCompatBindings, -} from './edge-node-compat-plugin'; +} from './edge-node-compat-plugin.mjs'; import { EdgeRuntime, runServer } from 'edge-runtime'; import fetch, { Headers } from 'node-fetch'; import { isError } from '@vercel/error-utils'; import { readFileSync } from 'fs'; -import { serializeBody, entrypointToOutputPath, logError } from '../utils'; +import { serializeBody, entrypointToOutputPath, logError } from '../utils.js'; import esbuild from 'esbuild'; import exitHook from 'exit-hook'; import type { HeadersInit } from 'node-fetch'; -import type { VercelProxyResponse } from '../types'; +import type { VercelProxyResponse } from '../types.js'; import type { IncomingMessage } from 'http'; -import { pathToFileURL } from 'url'; +import { fileURLToPath } from 'url'; const NODE_VERSION_MAJOR = process.version.match(/^v(\d+)\.\d+/)?.[1]; const NODE_VERSION_IDENTIFIER = `node${NODE_VERSION_MAJOR}`; @@ -23,6 +23,7 @@ if (!NODE_VERSION_MAJOR) { ); } +const __dirname = fileURLToPath(new URL('.', import.meta.url)); const edgeHandlerTemplate = readFileSync( `${__dirname}/edge-handler-template.js` ); @@ -63,7 +64,7 @@ async function compileUserCode( let code = readFileSync(args.path, 'utf8'); code = code.replace( /\bimport\.meta\.url\b/g, - JSON.stringify(pathToFileURL(__filename)) + JSON.stringify(import.meta.url) ); return { contents: code }; }); @@ -196,6 +197,7 @@ export async function createEdgeEventHandler( if (body !== undefined) headers.set('content-length', String(body.length)); const url = new URL(request.url ?? '/', server.url); + // @ts-expect-error const response = await fetch(url, { body, headers, diff --git a/packages/node/src/edge-functions/edge-node-compat-plugin.ts b/packages/node/src/edge-functions/edge-node-compat-plugin.mts similarity index 100% rename from packages/node/src/edge-functions/edge-node-compat-plugin.ts rename to packages/node/src/edge-functions/edge-node-compat-plugin.mts diff --git a/packages/node/src/edge-functions/edge-wasm-plugin.ts b/packages/node/src/edge-functions/edge-wasm-plugin.mts similarity index 100% rename from packages/node/src/edge-functions/edge-wasm-plugin.ts rename to packages/node/src/edge-functions/edge-wasm-plugin.mts diff --git a/packages/node/src/fork-dev-server.ts b/packages/node/src/fork-dev-server.ts index 3c68849d4..755a53515 100644 --- a/packages/node/src/fork-dev-server.ts +++ b/packages/node/src/fork-dev-server.ts @@ -1,5 +1,6 @@ import once from '@tootallnate/once'; -import { cloneEnv, Config, Meta } from '@vercel/build-utils'; +import { cloneEnv } from '@vercel/build-utils'; +import type { Config, Meta } from '@vercel/build-utils'; import { ChildProcess, fork, ForkOptions } from 'child_process'; import { pathToFileURL } from 'url'; import { join } from 'path'; @@ -25,15 +26,11 @@ export function forkDevServer(options: { const esmLoader = pathToFileURL(join(tsNodePath, '..', '..', 'esm.mjs')); const cjsLoader = join(tsNodePath, '..', '..', 'register', 'index.js'); const devServerPath = - options.devServerPath || join(__dirname, 'dev-server.js'); + options.devServerPath || join(__dirname, 'dev-server.mjs'); if (options.maybeTranspile) { if (options.isTypeScript) { - if (options.isEsm) { - nodeOptions = `--loader ${esmLoader} ${nodeOptions || ''}`; - } else { - nodeOptions = `--require ${cjsLoader} ${nodeOptions || ''}`; - } + nodeOptions = `--loader ${esmLoader} ${nodeOptions || ''}`; } else { if (options.isEsm) { // no transform needed because Node.js supports ESM natively @@ -48,7 +45,6 @@ export function forkDevServer(options: { execArgv: [], env: cloneEnv(process.env, options.meta.env, { VERCEL_DEV_ENTRYPOINT: options.entrypoint, - VERCEL_DEV_IS_ESM: options.isEsm ? '1' : undefined, VERCEL_DEV_CONFIG: JSON.stringify(options.config), VERCEL_DEV_BUILD_ENV: JSON.stringify(options.meta.buildEnv || {}), TS_NODE_TRANSPILE_ONLY: '1', diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index bb378283a..8baec9ce8 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -600,6 +600,20 @@ export const startDevServer: StartDevServer = async opts => { } } + // if we're using ESM, we need to tell TypeScript to use `nodenext` to + // preserve the `import` semantics + if (isEsm) { + if (!tsConfig.compilerOptions) { + tsConfig.compilerOptions = {}; + } + if (tsConfig.compilerOptions.module === undefined) { + tsConfig.compilerOptions.module = 'nodenext'; + } + if (tsConfig.compilerOptions.moduleResolution === undefined) { + tsConfig.compilerOptions.moduleResolution = 'nodenext'; + } + } + const nodeVersionMajor = Number(process.versions.node.split('.')[0]); fixConfig(tsConfig, nodeVersionMajor); diff --git a/packages/node/src/serverless-functions/dynamic-import.js b/packages/node/src/serverless-functions/dynamic-import.js deleted file mode 100644 index 9628f938b..000000000 --- a/packages/node/src/serverless-functions/dynamic-import.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -const { pathToFileURL } = require('url'); -const { isAbsolute } = require('path'); - -function dynamicImport(filepath) { - const id = isAbsolute(filepath) ? pathToFileURL(filepath).href : filepath; - return import(id); -} - -module.exports = { - dynamicImport, -}; diff --git a/packages/node/src/serverless-functions/serverless-handler.ts b/packages/node/src/serverless-functions/serverless-handler.mts similarity index 73% rename from packages/node/src/serverless-functions/serverless-handler.ts rename to packages/node/src/serverless-functions/serverless-handler.mts index 4f1aac487..82bdf7a65 100644 --- a/packages/node/src/serverless-functions/serverless-handler.ts +++ b/packages/node/src/serverless-functions/serverless-handler.mts @@ -1,20 +1,20 @@ -import { addHelpers } from './helpers'; +import { addHelpers } from './helpers.js'; import { createServer } from 'http'; -// @ts-expect-error -import { dynamicImport } from './dynamic-import.js'; -import { serializeBody } from '../utils'; +import { serializeBody } from '../utils.js'; import { streamToBuffer } from '@vercel/build-utils'; import exitHook from 'exit-hook'; import fetch from 'node-fetch'; -import listen from 'async-listen'; -import type { HeadersInit } from 'node-fetch'; +import asyncListen from 'async-listen'; +import { isAbsolute } from 'path'; +import { pathToFileURL } from 'url'; import type { ServerResponse, IncomingMessage } from 'http'; -import type { VercelProxyResponse } from '../types'; -import type { VercelRequest, VercelResponse } from './helpers'; +import type { VercelProxyResponse } from '../types.js'; +import type { VercelRequest, VercelResponse } from './helpers.js'; + +const { default: listen } = asyncListen; type ServerlessServerOptions = { shouldAddHelpers: boolean; - useRequire: boolean; mode: 'streaming' | 'buffer'; }; @@ -35,13 +35,11 @@ async function createServerlessServer( return { url: await listen(server) }; } -async function compileUserCode( - entrypointPath: string, - options: ServerlessServerOptions -) { - let fn = options.useRequire - ? require(entrypointPath) - : await dynamicImport(entrypointPath); +async function compileUserCode(entrypointPath: string) { + const id = isAbsolute(entrypointPath) + ? pathToFileURL(entrypointPath).href + : entrypointPath; + let fn = await import(id); /** * In some cases we might have nested default props due to TS => JS @@ -57,17 +55,18 @@ export async function createServerlessEventHandler( entrypointPath: string, options: ServerlessServerOptions ): Promise<(request: IncomingMessage) => Promise> { - const userCode = await compileUserCode(entrypointPath, options); + const userCode = await compileUserCode(entrypointPath); const server = await createServerlessServer(userCode, options); return async function (request: IncomingMessage) { const url = new URL(request.url ?? '/', server.url); + // @ts-expect-error const response = await fetch(url, { body: await serializeBody(request), headers: { ...request.headers, host: request.headers['x-forwarded-host'], - } as unknown as HeadersInit, + }, method: request.method, redirect: 'manual', }); @@ -78,7 +77,6 @@ export async function createServerlessEventHandler( } else { body = await streamToBuffer(response.body); response.headers.delete('transfer-encoding'); - //@ts-expect-error response.headers.set('content-length', body.length); } diff --git a/packages/node/test/fixtures/18-nested-tsconfig/probes.json b/packages/node/test/fixtures/18-nested-tsconfig/probes.json index 344bc4249..f2a1f65e9 100644 --- a/packages/node/test/fixtures/18-nested-tsconfig/probes.json +++ b/packages/node/test/fixtures/18-nested-tsconfig/probes.json @@ -7,7 +7,7 @@ }, { "path": "/functions/es5.ts", - "mustContain": "+" + "mustContain": "concat" }, { "path": "/pricing/", diff --git a/packages/node/test/unit/dev.test.ts b/packages/node/test/unit/dev.test.ts index e5f8c94f7..550f86863 100644 --- a/packages/node/test/unit/dev.test.ts +++ b/packages/node/test/unit/dev.test.ts @@ -2,7 +2,7 @@ import { forkDevServer, readMessage } from '../../src/fork-dev-server'; import { resolve, extname } from 'path'; import fetch from 'node-fetch'; -jest.setTimeout(10 * 1000); +jest.setTimeout(20 * 1000); function testForkDevServer(entrypoint: string) { const ext = extname(entrypoint); @@ -10,7 +10,9 @@ function testForkDevServer(entrypoint: string) { const isEsm = ext === '.mjs'; return forkDevServer({ maybeTranspile: true, - config: {}, + config: { + debug: true, + }, isEsm, isTypeScript, meta: {}, @@ -18,7 +20,7 @@ function testForkDevServer(entrypoint: string) { tsConfig: undefined, workPath: resolve(__dirname, '../dev-fixtures'), entrypoint, - devServerPath: resolve(__dirname, '../../dist/dev-server.js'), + devServerPath: resolve(__dirname, '../../dist/dev-server.mjs'), }); } diff --git a/packages/node/test/unit/edge-handler/edge-handler-template.test.ts b/packages/node/test/unit/edge-handler/edge-handler-template.test.mts similarity index 97% rename from packages/node/test/unit/edge-handler/edge-handler-template.test.ts rename to packages/node/test/unit/edge-handler/edge-handler-template.test.mts index 07be3cd76..f0d22137d 100644 --- a/packages/node/test/unit/edge-handler/edge-handler-template.test.ts +++ b/packages/node/test/unit/edge-handler/edge-handler-template.test.mts @@ -3,7 +3,7 @@ import { getUrl, respond, // @ts-ignore - this is a special patch file to allow importing from the template -} from '../../../src/edge-functions/edge-handler-template.js'; +} from '../../../src/edge-functions/edge-handler-template.mjs'; describe('edge-handler-template', () => { describe('getUrl()', () => { diff --git a/packages/node/test/unit/edge-handler/edge-wasm-plugin.test.ts b/packages/node/test/unit/edge-handler/edge-wasm-plugin.test.mts similarity index 93% rename from packages/node/test/unit/edge-handler/edge-wasm-plugin.test.ts rename to packages/node/test/unit/edge-handler/edge-wasm-plugin.test.mts index c24f60ad6..d58c3a2db 100644 --- a/packages/node/test/unit/edge-handler/edge-wasm-plugin.test.ts +++ b/packages/node/test/unit/edge-handler/edge-wasm-plugin.test.mts @@ -1,4 +1,4 @@ -import { createEdgeWasmPlugin } from '../../../src/edge-functions/edge-wasm-plugin'; +import { createEdgeWasmPlugin } from '../../../dist/edge-functions/edge-wasm-plugin.mjs'; import { prepareFilesystem } from '../test-utils'; import { build } from 'esbuild'; import { join } from 'path'; diff --git a/packages/node/test/unit/prepare-cache.test.ts b/packages/node/test/unit/prepare-cache.test.ts index 83637f7d7..a8ba66c9a 100644 --- a/packages/node/test/unit/prepare-cache.test.ts +++ b/packages/node/test/unit/prepare-cache.test.ts @@ -23,6 +23,7 @@ describe('prepareCache()', () => { entrypoint: '.', config: {}, workPath: path.resolve(__dirname, '../cache-fixtures/foo/'), + repoRootPath: path.resolve(__dirname, '../cache-fixtures/foo/'), }); const file = files['node_modules/file']; diff --git a/packages/node/test/unit/serverless-handler/dynamic-import.test.ts b/packages/node/test/unit/serverless-handler/dynamic-import.test.ts deleted file mode 100644 index ff7b6a564..000000000 --- a/packages/node/test/unit/serverless-handler/dynamic-import.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -// @ts-expect-error -import { dynamicImport } from '../../../src/serverless-functions/dynamic-import.js'; -import { resolve } from 'path'; - -describe('dynamic-import', () => { - test('load esm code', async () => { - const entrypointPath = resolve( - __dirname, - '../../dev-fixtures/esm-module.mjs' - ); - - const fn = await dynamicImport(entrypointPath); - - let buffer = ''; - const headers: Record = {}; - - const res = { - send: (data: string) => { - buffer = data; - return res; - }, - setHeader: (key: string, value: string) => (headers[key] = value), - end: () => {}, - }; - - const req = {}; - - fn.default(req, res); - - expect(buffer).toBe('Hello, world!'); - expect(headers).toStrictEqual({ 'x-hello': 'world' }); - }); -}); diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json index 15b1eecda..214f57b22 100644 --- a/packages/node/tsconfig.json +++ b/packages/node/tsconfig.json @@ -1,15 +1,16 @@ { "compilerOptions": { "strict": true, + "allowJs": true, "esModuleInterop": true, "lib": ["ES2020", "DOM"], "target": "ES2020", - "module": "commonjs", + "module": "nodenext", "outDir": "dist", "sourceMap": false, "declaration": true, "skipLibCheck": true, - "moduleResolution": "node", + "moduleResolution": "nodenext", "typeRoots": ["./@types", "./node_modules/@types"] }, "include": ["src/**/*"], diff --git a/packages/static-build/tsconfig.json b/packages/static-build/tsconfig.json index 45f910702..f57327218 100644 --- a/packages/static-build/tsconfig.json +++ b/packages/static-build/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "allowJs": true, "declaration": false, "esModuleInterop": true, "lib": ["ES2020"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a82552bc3..dd62fac38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1178,6 +1178,9 @@ importers: '@types/node': specifier: 14.18.33 version: 14.18.33 + '@types/node-fetch': + specifier: 2.6.3 + version: 2.6.3 '@vercel/build-utils': specifier: 6.7.1 version: link:../build-utils @@ -1200,8 +1203,8 @@ importers: specifier: 2.2.1 version: 2.2.1 node-fetch: - specifier: 2.6.7 - version: 2.6.7 + specifier: 2.6.9 + version: 2.6.9 path-to-regexp: specifier: 6.2.1 version: 6.2.1 @@ -1212,8 +1215,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@swc/core@1.2.218)(@types/node@14.18.33)(typescript@4.9.4) typescript: - specifier: 4.3.4 - version: 4.3.4 + specifier: 4.9.5 + version: 4.9.5 devDependencies: '@babel/core': specifier: 7.5.0 @@ -1237,11 +1240,8 @@ importers: specifier: 1.8.0 version: 1.8.0 '@types/jest': - specifier: 27.4.1 - version: 27.4.1 - '@types/node-fetch': - specifier: ^2.6.1 - version: 2.6.2 + specifier: 29.5.0 + version: 29.5.0 '@types/test-listen': specifier: 1.1.0 version: 1.1.0 @@ -4237,7 +4237,7 @@ packages: resolution: {integrity: sha512-TInJmbrsmYIwUyrRxytjO82KjJbRwm67F7LoZs1shAq6rMvNqi4NxSY9j+hT/939alFmEq1zssoy/caeLXHRfQ==} engines: {node: ^14.15.0 || >=16.0.0} dependencies: - node-fetch: 2.6.7 + node-fetch: 2.6.9 npmlog: 6.0.2 transitivePeerDependencies: - encoding @@ -4692,7 +4692,7 @@ packages: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.6.7 + node-fetch: 2.6.9 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 @@ -5054,7 +5054,7 @@ packages: '@octokit/request-error': 3.0.2 '@octokit/types': 8.1.0 is-plain-object: 5.0.0 - node-fetch: 2.6.7 + node-fetch: 2.6.9 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -5989,8 +5989,8 @@ packages: /@types/jest@29.5.0: resolution: {integrity: sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg==} dependencies: - expect: 29.3.1 - pretty-format: 29.3.1 + expect: 29.5.0 + pretty-format: 29.5.0 dev: true /@types/js-yaml@3.12.1: @@ -6117,6 +6117,13 @@ packages: form-data: 3.0.1 dev: true + /@types/node-fetch@2.6.3: + resolution: {integrity: sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==} + dependencies: + '@types/node': 16.18.11 + form-data: 3.0.1 + dev: false + /@types/node@10.12.18: resolution: {integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==} dev: false @@ -6953,7 +6960,7 @@ packages: lodash.debounce: 4.0.8 lru-cache: 7.14.1 minimatch: 3.1.2 - node-fetch: 2.6.7 + node-fetch: 2.6.9 ora: 5.4.1 postcss: 8.4.21 postcss-discard-duplicates: 5.1.0(postcss@8.4.21) @@ -11136,7 +11143,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.24 - dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -13946,7 +13952,6 @@ packages: /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true dependencies: js-tokens: 4.0.0 dev: true @@ -14920,6 +14925,17 @@ packages: whatwg-url: 5.0.0 dev: true + /node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + /node-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} @@ -17629,7 +17645,7 @@ packages: dependencies: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 - node-fetch: 2.6.7 + node-fetch: 2.6.9 stream-events: 1.0.5 uuid: 8.3.2 transitivePeerDependencies: @@ -18247,6 +18263,7 @@ packages: /typescript@4.3.4: resolution: {integrity: sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==} engines: {node: '>=4.2.0'} + dev: true /typescript@4.5.2: resolution: {integrity: sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==} diff --git a/test/lib/deployment/test-deployment.js b/test/lib/deployment/test-deployment.js index 1c6f083fe..29ccef12d 100644 --- a/test/lib/deployment/test-deployment.js +++ b/test/lib/deployment/test-deployment.js @@ -149,7 +149,7 @@ async function runProbe(probe, deploymentId, deploymentUrl, ctx) { // we must eval it since we use devalue to stringify it global.__BUILD_MANIFEST_CB = null; ctx.nextBuildManifest = eval( - `self = {};` + manifestContent + `;self.__BUILD_MANIFEST` + `var self = {};` + manifestContent + `;self.__BUILD_MANIFEST` ); } let scriptRelativePath = ctx.nextBuildManifest[scriptName];