diff --git a/documentation/docs/80-adapter-api.md b/documentation/docs/80-adapter-api.md index ef008e7b622a..8176bab201e7 100644 --- a/documentation/docs/80-adapter-api.md +++ b/documentation/docs/80-adapter-api.md @@ -23,15 +23,17 @@ export default function (options) { The types for `Adapter` and its parameters are available in [types/config.d.ts](https://github.com/sveltejs/kit/blob/master/packages/kit/types/config.d.ts). -Within the `adapt` method, there are a number of things that an adapter should do: - -- Clear out the build directory -- Output code that: - - Calls `init` - - Converts from the platform's request to a [SvelteKit request](#hooks-handle), calls `render`, and converts from a [SvelteKit response](#hooks-handle) to the platform's - - Globally shims `fetch` to work on the target platform. SvelteKit provides a `@sveltejs/kit/install-fetch` helper for platforms that can use `node-fetch` +Within the `adapt` method, an adapter should: + +- Clear out the build directory before anything else +- Import `{ appResolver }` from `@sveltejs/kit/adapter` +- Pass in `appResolver()` to esbuild plugins for build options +- Import `app` from `@sveltejs/kit/app` +- Call `app.init()` as early as possible +- Convert from the platform's request to a [SvelteKit request](#hooks-handle), call `app.render()`, and convert from a [SvelteKit response](#hooks-handle) to the platform's +- Globally shim `fetch` to work on the target platform. SvelteKit provides a `@sveltejs/kit/install-fetch` helper for platforms that can use `node-fetch` - Bundle the output to avoid needing to install dependencies on the target platform, if desired -- Call `utils.prerender` +- Prerender static pages by calling `utils.prerender()` - Put the user's static files and the generated JS/CSS in the correct location for the target platform If possible, we recommend putting the adapter output under the `build/` directory with any intermediate output placed under `'.svelte-kit/' + adapterName`. diff --git a/packages/adapter-cloudflare-workers/files/entry.js b/packages/adapter-cloudflare-workers/files/entry.js index f7a7e397a620..6317c1d6f5e7 100644 --- a/packages/adapter-cloudflare-workers/files/entry.js +++ b/packages/adapter-cloudflare-workers/files/entry.js @@ -1,6 +1,5 @@ -// TODO hardcoding the relative location makes this brittle -import { init, render } from '../output/server/app.js'; import { getAssetFromKV, NotFoundError } from '@cloudflare/kv-asset-handler'; +import { init, render } from '@sveltejs/kit/app'; init(); diff --git a/packages/adapter-cloudflare-workers/index.js b/packages/adapter-cloudflare-workers/index.js index 91909812030d..60bd73d6dc3c 100644 --- a/packages/adapter-cloudflare-workers/index.js +++ b/packages/adapter-cloudflare-workers/index.js @@ -1,9 +1,11 @@ -import fs from 'fs'; import { execSync } from 'child_process'; -import esbuild from 'esbuild'; -import toml from '@iarna/toml'; +import fs from 'fs'; import { fileURLToPath } from 'url'; +import toml from '@iarna/toml'; +import { appResolver } from '@sveltejs/kit/adapter'; +import esbuild from 'esbuild'; + /** * @typedef {import('esbuild').BuildOptions} BuildOptions */ @@ -40,7 +42,8 @@ export default function (options) { outfile: `${entrypoint}/index.js`, bundle: true, target: 'es2020', - platform: 'browser' + platform: 'browser', + plugins: [appResolver()] }; const build_options = diff --git a/packages/adapter-netlify/files/entry.js b/packages/adapter-netlify/files/entry.js index e5e7fd718c77..0878b798cde8 100644 --- a/packages/adapter-netlify/files/entry.js +++ b/packages/adapter-netlify/files/entry.js @@ -1,5 +1,4 @@ -// TODO hardcoding the relative location makes this brittle -import { init, render } from '../output/server/app.js'; +import { init, render } from '@sveltejs/kit/app'; init(); diff --git a/packages/adapter-netlify/index.js b/packages/adapter-netlify/index.js index 2368d0f2d1cd..573255829262 100644 --- a/packages/adapter-netlify/index.js +++ b/packages/adapter-netlify/index.js @@ -1,8 +1,10 @@ -import { appendFileSync, existsSync, readFileSync, writeFileSync } from 'fs'; +import fs from 'fs'; import { join, resolve } from 'path'; import { fileURLToPath } from 'url'; -import esbuild from 'esbuild'; + import toml from '@iarna/toml'; +import { appResolver } from '@sveltejs/kit/adapter'; +import esbuild from 'esbuild'; /** * @typedef {import('esbuild').BuildOptions} BuildOptions @@ -34,6 +36,7 @@ export default function (options) { outfile: '.netlify/functions-internal/__render.js', bundle: true, inject: [join(files, 'shims.js')], + plugins: [appResolver()], platform: 'node' }; @@ -42,7 +45,7 @@ export default function (options) { await esbuild.build(build_options); - writeFileSync(join('.netlify', 'package.json'), JSON.stringify({ type: 'commonjs' })); + fs.writeFileSync(join('.netlify', 'package.json'), JSON.stringify({ type: 'commonjs' })); utils.log.minor('Prerendering static pages...'); await utils.prerender({ @@ -57,7 +60,7 @@ export default function (options) { const redirectPath = join(publish, '_redirects'); utils.copy('_redirects', redirectPath); - appendFileSync(redirectPath, '\n\n/* /.netlify/functions/__render 200'); + fs.appendFileSync(redirectPath, '\n\n/* /.netlify/functions/__render 200'); } }; } @@ -65,12 +68,12 @@ export default function (options) { * @param {import('@sveltejs/kit').AdapterUtils} utils **/ function get_publish_directory(utils) { - if (existsSync('netlify.toml')) { + if (fs.existsSync('netlify.toml')) { /** @type {{ build?: { publish?: string }} & toml.JsonMap } */ let netlify_config; try { - netlify_config = toml.parse(readFileSync('netlify.toml', 'utf-8')); + netlify_config = toml.parse(fs.readFileSync('netlify.toml', 'utf-8')); } catch (err) { err.message = `Error parsing netlify.toml: ${err.message}`; throw err; diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index 70e9801ac0b1..fccc8cb5a2db 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -1,17 +1,12 @@ -import esbuild from 'esbuild'; -import { - createReadStream, - createWriteStream, - existsSync, - readFileSync, - statSync, - writeFileSync -} from 'fs'; +import fs from 'fs'; import { join } from 'path'; import { pipeline } from 'stream'; -import glob from 'tiny-glob'; import { fileURLToPath } from 'url'; import { promisify } from 'util'; + +import { appResolver } from '@sveltejs/kit/adapter'; +import esbuild from 'esbuild'; +import glob from 'tiny-glob'; import zlib from 'zlib'; const pipe = promisify(pipeline); @@ -46,8 +41,8 @@ export default function ({ utils.log.minor('Building SvelteKit middleware'); const files = fileURLToPath(new URL('./files', import.meta.url)); utils.copy(files, '.svelte-kit/node'); - writeFileSync( - '.svelte-kit/node/env.js', + fs.writeFileSync( + '.svelte-kit/node/env.js', // types pointed in src/env.d.ts `export const path = process.env[${JSON.stringify( path_env )}] || false;\nexport const host = process.env[${JSON.stringify( @@ -58,20 +53,26 @@ export default function ({ ); /** @type {BuildOptions} */ - const defaultOptions = { + const default_options = { entryPoints: ['.svelte-kit/node/middlewares.js'], outfile: join(out, 'middlewares.js'), bundle: true, - external: Object.keys(JSON.parse(readFileSync('package.json', 'utf8')).dependencies || {}), + external: Object.keys( + JSON.parse(fs.readFileSync('package.json', 'utf8')).dependencies || {} + ), format: 'esm', platform: 'node', target: 'node12', inject: [join(files, 'shims.js')], + plugins: [appResolver()], define: { APP_DIR: `"/${config.kit.appDir}/"` } }; - const build_options = esbuild_config ? await esbuild_config(defaultOptions) : defaultOptions; + + const build_options = esbuild_config + ? await esbuild_config(default_options) + : default_options; await esbuild.build(build_options); utils.log.minor('Building SvelteKit reference server'); @@ -95,6 +96,7 @@ export default function ({ } ] }; + const build_options_ref_server = esbuild_config ? await esbuild_config(default_options_ref_server) : default_options_ref_server; @@ -104,7 +106,7 @@ export default function ({ await utils.prerender({ dest: `${out}/prerendered` }); - if (precompress && existsSync(`${out}/prerendered`)) { + if (precompress && fs.existsSync(`${out}/prerendered`)) { utils.log.minor('Compressing prerendered pages'); await compress(`${out}/prerendered`); } @@ -139,13 +141,13 @@ async function compress_file(file, format = 'gz') { params: { [zlib.constants.BROTLI_PARAM_MODE]: zlib.constants.BROTLI_MODE_TEXT, [zlib.constants.BROTLI_PARAM_QUALITY]: zlib.constants.BROTLI_MAX_QUALITY, - [zlib.constants.BROTLI_PARAM_SIZE_HINT]: statSync(file).size + [zlib.constants.BROTLI_PARAM_SIZE_HINT]: fs.statSync(file).size } }) : zlib.createGzip({ level: zlib.constants.Z_BEST_COMPRESSION }); - const source = createReadStream(file); - const destination = createWriteStream(`${file}.${format}`); + const source = fs.createReadStream(file); + const destination = fs.createWriteStream(`${file}.${format}`); await pipe(source, compress, destination); } diff --git a/packages/adapter-node/rollup.config.js b/packages/adapter-node/rollup.config.js index 619756ee6c1e..90af4bf0ec87 100644 --- a/packages/adapter-node/rollup.config.js +++ b/packages/adapter-node/rollup.config.js @@ -21,7 +21,12 @@ export default [ sourcemap: true }, plugins: [nodeResolve(), commonjs(), json()], - external: ['./middlewares.js', './env.js', ...require('module').builtinModules] + external: [ + '@sveltejs/kit/app', + './middlewares.js', + './env.js', + ...require('module').builtinModules + ] }, { input: 'src/shims.js', diff --git a/packages/adapter-node/src/env.d.ts b/packages/adapter-node/src/env.d.ts new file mode 100644 index 000000000000..8987d5f2becc --- /dev/null +++ b/packages/adapter-node/src/env.d.ts @@ -0,0 +1,3 @@ +export const host: string; +export const path: string; +export const port: number; diff --git a/packages/adapter-node/src/index.js b/packages/adapter-node/src/index.js index b8e807ea8450..3fa2f0972a51 100644 --- a/packages/adapter-node/src/index.js +++ b/packages/adapter-node/src/index.js @@ -1,4 +1,3 @@ -// @ts-ignore import { path, host, port } from './env.js'; import { assetsMiddleware, kitMiddleware, prerenderedMiddleware } from './middlewares.js'; import compression from 'compression'; diff --git a/packages/adapter-node/src/kit-middleware.js b/packages/adapter-node/src/kit-middleware.js index 5807b3d587fb..830d1c1e6160 100644 --- a/packages/adapter-node/src/kit-middleware.js +++ b/packages/adapter-node/src/kit-middleware.js @@ -1,10 +1,9 @@ import { getRawBody } from '@sveltejs/kit/node'; /** + * @param {import('@sveltejs/kit').App} app * @return {import('polka').Middleware} */ -// TODO: type render function from @sveltejs/kit/adapter -// @ts-ignore export function create_kit_middleware({ render }) { return async (req, res) => { const parsed = new URL(req.url || '', 'http://localhost'); @@ -20,7 +19,8 @@ export function create_kit_middleware({ render }) { const rendered = await render({ method: req.method, - headers: req.headers, // TODO: what about repeated headers, i.e. string[] + // @ts-expect-error - TODO: what about repeated headers, i.e. string[] + headers: req.headers, path: parsed.pathname, query: parsed.searchParams, rawBody: body diff --git a/packages/adapter-node/src/middlewares.js b/packages/adapter-node/src/middlewares.js index ba4ee030244d..a3ed333eec04 100644 --- a/packages/adapter-node/src/middlewares.js +++ b/packages/adapter-node/src/middlewares.js @@ -1,16 +1,12 @@ -// TODO hardcoding the relative location makes this brittle -// Also, we need most of the logic in another file for testing because -// ../output/server/app.js doesn't exist when we run the tests -// @ts-ignore -import { init, render } from '../output/server/app.js'; -import { create_kit_middleware } from './kit-middleware.js'; - import fs from 'fs'; import { dirname, join } from 'path'; -import sirv from 'sirv'; import { fileURLToPath } from 'url'; -// App is a dynamic file built from the application layer. +import app from '@sveltejs/kit/app'; +import sirv from 'sirv'; +import { create_kit_middleware } from './kit-middleware.js'; + +app.init(); const __dirname = dirname(fileURLToPath(import.meta.url)); /** @type {import('polka').Middleware} */ @@ -42,7 +38,4 @@ export const assetsMiddleware = fs.existsSync(paths.assets) }) : noop_handler; -export const kitMiddleware = (function () { - init(); - return create_kit_middleware({ render }); -})(); +export const kitMiddleware = create_kit_middleware(app); diff --git a/packages/adapter-vercel/files/entry.js b/packages/adapter-vercel/files/entry.js index 35d6e3170a7c..9014c03f3e3b 100644 --- a/packages/adapter-vercel/files/entry.js +++ b/packages/adapter-vercel/files/entry.js @@ -1,8 +1,6 @@ +import { init, render } from '@sveltejs/kit/app'; import { getRawBody } from '@sveltejs/kit/node'; -// TODO hardcoding the relative location makes this brittle -import { init, render } from '../output/server/app.js'; - init(); export default async (req, res) => { diff --git a/packages/adapter-vercel/index.js b/packages/adapter-vercel/index.js index d5c53689f143..cae2ce0d34a5 100644 --- a/packages/adapter-vercel/index.js +++ b/packages/adapter-vercel/index.js @@ -1,6 +1,8 @@ import { writeFileSync } from 'fs'; import { join } from 'path'; import { fileURLToPath } from 'url'; + +import { appResolver } from '@sveltejs/kit/adapter'; import esbuild from 'esbuild'; /** @@ -37,6 +39,7 @@ export default function (options) { outfile: join(dirs.lambda, 'index.js'), bundle: true, inject: [join(files, 'shims.js')], + plugins: [appResolver()], platform: 'node' }; diff --git a/packages/kit/package.json b/packages/kit/package.json index 1f279e5964da..363d0b3d5af8 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -21,6 +21,7 @@ "amphtml-validator": "^1.0.34", "cookie": "^0.4.1", "devalue": "^2.0.1", + "esbuild": "^0.12.5", "eslint": "^7.25.0", "kleur": "^4.1.4", "locate-character": "^2.0.5", @@ -66,6 +67,9 @@ }, "exports": { "./package.json": "./package.json", + "./adapter": { + "import": "./dist/adapter.js" + }, "./ssr": { "import": "./dist/ssr.js" }, diff --git a/packages/kit/rollup.config.js b/packages/kit/rollup.config.js index cc44571ab66b..5b033430ac47 100644 --- a/packages/kit/rollup.config.js +++ b/packages/kit/rollup.config.js @@ -46,6 +46,7 @@ export default [ { input: { cli: 'src/cli.js', + adapter: 'src/core/adapt/plugins.js', ssr: 'src/runtime/server/index.js', node: 'src/core/node/index.js', hooks: 'src/runtime/hooks.js', diff --git a/packages/kit/src/core/adapt/plugins.js b/packages/kit/src/core/adapt/plugins.js new file mode 100644 index 000000000000..ff0bb1bbbe94 --- /dev/null +++ b/packages/kit/src/core/adapt/plugins.js @@ -0,0 +1,13 @@ +import { join } from 'path'; + +/** @type {import('@sveltejs/kit/adapter').AppResolver} */ +export function appResolver() { + return { + name: '@sveltejs/esbuild-plugin-app-resolver', + setup(build) { + build.onResolve({ filter: /@sveltejs\/kit\/app/ }, (args) => ({ + path: join(args.resolveDir, '../output/server/app.js') + })); + } + }; +} diff --git a/packages/kit/src/core/adapt/prerender.js b/packages/kit/src/core/adapt/prerender.js index 486f80c3afc3..ce5c0733e978 100644 --- a/packages/kit/src/core/adapt/prerender.js +++ b/packages/kit/src/core/adapt/prerender.js @@ -1,11 +1,13 @@ import { readFileSync, writeFileSync } from 'fs'; import { dirname, join, resolve as resolve_path } from 'path'; import { pathToFileURL, resolve, URL } from 'url'; -import { mkdirp } from '../../utils/filesystem.js'; + import { __fetch_polyfill } from '../../install-fetch.js'; -import { SVELTE_KIT } from '../constants.js'; +import { mkdirp } from '../../utils/filesystem.js'; import { get_single_valued_header } from '../../utils/http.js'; +import { SVELTE_KIT } from '../constants.js'; + /** * @typedef {import('types/config').PrerenderErrorHandler} PrerenderErrorHandler * @typedef {import('types/config').PrerenderOnErrorValue} OnError diff --git a/packages/kit/src/core/build/index.js b/packages/kit/src/core/build/index.js index 7ea97b239612..0e069608d448 100644 --- a/packages/kit/src/core/build/index.js +++ b/packages/kit/src/core/build/index.js @@ -90,7 +90,6 @@ export async function build(config, { cwd = process.cwd(), runtime = '@sveltejs/ * build_dir: string; * output_dir: string; * client_entry_file: string; - * service_worker_entry_file: string | null; * }} options */ async function build_client({ @@ -421,6 +420,9 @@ async function build_server( const host = ${config.kit.host ? s(config.kit.host) : `request.headers[${s(config.kit.hostHeader || 'host')}]`}; return respond({ ...request, host }, options, { prerender }); } + + const app = { init, render }; + export default app; ` .replace(/^\t{3}/gm, '') .trim() diff --git a/packages/kit/types/ambient-modules.d.ts b/packages/kit/types/ambient-modules.d.ts index 6e4f9b5de04d..0445f5aa972d 100644 --- a/packages/kit/types/ambient-modules.d.ts +++ b/packages/kit/types/ambient-modules.d.ts @@ -132,6 +132,27 @@ declare module '$service-worker' { export const timestamp: number; } +declare module '@sveltejs/kit/adapter' { + import { Plugin } from 'esbuild'; + + export interface AppResolver { + (): Plugin; + } + export const appResolver: AppResolver; +} + +declare module '@sveltejs/kit/app' { + import { App } from '@sveltejs/kit'; + + export const init: App['init']; + export const render: App['render']; + const app: { + init: typeof init; + render: typeof render; + }; + export default app; +} + declare module '@sveltejs/kit/hooks' { import { Handle } from '@sveltejs/kit'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 927ad5900155..65f14d895ef5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -214,6 +214,7 @@ importers: cheap-watch: ^1.0.3 cookie: ^0.4.1 devalue: ^2.0.1 + esbuild: ^0.12.5 eslint: ^7.25.0 kleur: ^4.1.4 locate-character: ^2.0.5 @@ -251,6 +252,7 @@ importers: amphtml-validator: 1.0.34 cookie: 0.4.1 devalue: 2.0.1 + esbuild: 0.12.20 eslint: 7.25.0 kleur: 4.1.4 locate-character: 2.0.5 @@ -280,7 +282,7 @@ packages: dependencies: '@actions/http-client': 1.0.11 '@octokit/core': 3.5.1 - '@octokit/plugin-paginate-rest': 2.16.0_@octokit+core@3.5.1 + '@octokit/plugin-paginate-rest': 2.15.1_@octokit+core@3.5.1 '@octokit/plugin-rest-endpoint-methods': 4.15.1_@octokit+core@3.5.1 dev: true @@ -618,17 +620,17 @@ packages: /@octokit/auth-token/2.4.5: resolution: {integrity: sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==} dependencies: - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 dev: true /@octokit/core/3.5.1: resolution: {integrity: sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==} dependencies: '@octokit/auth-token': 2.4.5 - '@octokit/graphql': 4.8.0 + '@octokit/graphql': 4.6.4 '@octokit/request': 5.6.1 '@octokit/request-error': 2.1.0 - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 before-after-hook: 2.2.2 universal-user-agent: 6.0.0 dev: true @@ -636,30 +638,30 @@ packages: /@octokit/endpoint/6.0.12: resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} dependencies: - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true - /@octokit/graphql/4.8.0: - resolution: {integrity: sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==} + /@octokit/graphql/4.6.4: + resolution: {integrity: sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==} dependencies: '@octokit/request': 5.6.1 - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 universal-user-agent: 6.0.0 dev: true - /@octokit/openapi-types/10.0.0: - resolution: {integrity: sha512-k1iO2zKuEjjRS1EJb4FwSLk+iF6EGp+ZV0OMRViQoWhQ1fZTk9hg1xccZII5uyYoiqcbC73MRBmT45y1vp2PPg==} + /@octokit/openapi-types/9.7.0: + resolution: {integrity: sha512-TUJ16DJU8mekne6+KVcMV5g6g/rJlrnIKn7aALG9QrNpnEipFc1xjoarh0PKaAWf2Hf+HwthRKYt+9mCm5RsRg==} dev: true - /@octokit/plugin-paginate-rest/2.16.0_@octokit+core@3.5.1: - resolution: {integrity: sha512-8YYzALPMvEZ35kgy5pdYvQ22Roz+BIuEaedO575GwE2vb/ACDqQn0xQrTJR4tnZCJn7pi8+AWPVjrFDaERIyXQ==} + /@octokit/plugin-paginate-rest/2.15.1_@octokit+core@3.5.1: + resolution: {integrity: sha512-47r52KkhQDkmvUKZqXzA1lKvcyJEfYh3TKAIe5+EzMeyDM3d+/s5v11i2gTk8/n6No6DPi3k5Ind6wtDbo/AEg==} peerDependencies: '@octokit/core': '>=2' dependencies: '@octokit/core': 3.5.1 - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 dev: true /@octokit/plugin-rest-endpoint-methods/4.15.1_@octokit+core@3.5.1: @@ -668,14 +670,14 @@ packages: '@octokit/core': '>=3' dependencies: '@octokit/core': 3.5.1 - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 deprecation: 2.3.1 dev: true /@octokit/request-error/2.1.0: resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} dependencies: - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 deprecation: 2.3.1 once: 1.4.0 dev: true @@ -685,16 +687,16 @@ packages: dependencies: '@octokit/endpoint': 6.0.12 '@octokit/request-error': 2.1.0 - '@octokit/types': 6.26.0 + '@octokit/types': 6.25.0 is-plain-object: 5.0.0 node-fetch: 2.6.1 universal-user-agent: 6.0.0 dev: true - /@octokit/types/6.26.0: - resolution: {integrity: sha512-RDxZBAFMtqs1ZPnbUu1e7ohPNfoNhTiep4fErY7tZs995BeHu369Vsh5woMIaFbllRWEZBfvTCS4hvDnMPiHrA==} + /@octokit/types/6.25.0: + resolution: {integrity: sha512-bNvyQKfngvAd/08COlYIN54nRgxskmejgywodizQNyiKoXmWRAjKup2/LYwm+T9V0gsKH6tuld1gM0PzmOiB4Q==} dependencies: - '@octokit/openapi-types': 10.0.0 + '@octokit/openapi-types': 9.7.0 dev: true /@polka/send/1.0.0-next.15: @@ -988,8 +990,8 @@ packages: '@types/node': 15.0.1 dev: true - /@types/yauzl/2.9.2: - resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} + /@types/yauzl/2.9.1: + resolution: {integrity: sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==} dependencies: '@types/node': 15.0.1 dev: true @@ -1757,7 +1759,6 @@ packages: resolution: {integrity: sha512-u7+0qTo9Z64MD9PhooEngCmzyEYJ6ovFhPp8PLNh3UasR5Ihjv6HWVXqm8uHmasdQlpsAf0IsY4U0YVUfCpt4Q==} hasBin: true requiresBuild: true - dev: false /esbuild/0.12.5: resolution: {integrity: sha512-vcuP53pA5XiwUU4FnlXM+2PnVjTfHGthM7uP1gtp+9yfheGvFFbq/KyuESThmtoHPUrfZH5JpxGVJIFDVD1Egw==} @@ -2050,7 +2051,7 @@ packages: get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.9.2 + '@types/yauzl': 2.9.1 transitivePeerDependencies: - supports-color dev: true