diff --git a/.changeset/rich-icons-swim.md b/.changeset/rich-icons-swim.md new file mode 100644 index 000000000000..ec073b068abf --- /dev/null +++ b/.changeset/rich-icons-swim.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Expose Server and SSRManifest as public types diff --git a/packages/adapter-auto/package.json b/packages/adapter-auto/package.json index 6c033bcbc8e9..3fd8a54f2be9 100644 --- a/packages/adapter-auto/package.json +++ b/packages/adapter-auto/package.json @@ -26,11 +26,15 @@ "scripts": { "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", + "check": "tsc", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore" }, "dependencies": { "@sveltejs/adapter-cloudflare": "workspace:*", "@sveltejs/adapter-netlify": "workspace:*", "@sveltejs/adapter-vercel": "workspace:*" + }, + "devDependencies": { + "typescript": "^4.6.2" } } diff --git a/packages/adapter-auto/tsconfig.json b/packages/adapter-auto/tsconfig.json new file mode 100644 index 000000000000..9e4540589a76 --- /dev/null +++ b/packages/adapter-auto/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "noEmit": true, + "noImplicitAny": true, + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } + }, + "include": ["**/*.js"] +} diff --git a/packages/adapter-cloudflare-workers/files/entry.d.ts b/packages/adapter-cloudflare-workers/ambient.d.ts similarity index 100% rename from packages/adapter-cloudflare-workers/files/entry.d.ts rename to packages/adapter-cloudflare-workers/ambient.d.ts diff --git a/packages/adapter-cloudflare-workers/index.js b/packages/adapter-cloudflare-workers/index.js index c4b6aa4c69ba..f161a109cb37 100644 --- a/packages/adapter-cloudflare-workers/index.js +++ b/packages/adapter-cloudflare-workers/index.js @@ -19,7 +19,7 @@ export default function () { // @ts-ignore const entrypoint = site['entry-point'] || 'workers-site'; - const files = fileURLToPath(new URL('./files', import.meta.url)); + const files = fileURLToPath(new URL('./files', import.meta.url).href); const tmp = builder.getBuildDirectory('cloudflare-workers-tmp'); builder.rimraf(bucket); diff --git a/packages/adapter-cloudflare-workers/package.json b/packages/adapter-cloudflare-workers/package.json index 510c265131da..e2793248041e 100644 --- a/packages/adapter-cloudflare-workers/package.json +++ b/packages/adapter-cloudflare-workers/package.json @@ -24,6 +24,7 @@ "scripts": { "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", + "check": "tsc", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore" }, "dependencies": { @@ -32,6 +33,6 @@ }, "devDependencies": { "@cloudflare/kv-asset-handler": "^0.2.0", - "@sveltejs/kit": "workspace:*" + "typescript": "^4.6.2" } } diff --git a/packages/adapter-cloudflare-workers/tsconfig.json b/packages/adapter-cloudflare-workers/tsconfig.json index d856a1dae902..af2a0c525acf 100644 --- a/packages/adapter-cloudflare-workers/tsconfig.json +++ b/packages/adapter-cloudflare-workers/tsconfig.json @@ -4,10 +4,13 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", "module": "es2020", "moduleResolution": "node", - "allowSyntheticDefaultImports": true + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["./index.js", "files"] + "include": ["**/*.js", "ambient.d.ts"] } diff --git a/packages/adapter-cloudflare/files/worker.d.ts b/packages/adapter-cloudflare/ambient.d.ts similarity index 100% rename from packages/adapter-cloudflare/files/worker.d.ts rename to packages/adapter-cloudflare/ambient.d.ts diff --git a/packages/adapter-cloudflare/index.js b/packages/adapter-cloudflare/index.js index ea3005e08da5..d79e65807257 100644 --- a/packages/adapter-cloudflare/index.js +++ b/packages/adapter-cloudflare/index.js @@ -8,7 +8,7 @@ export default function (options = {}) { return { name: '@sveltejs/adapter-cloudflare', async adapt(builder) { - const files = fileURLToPath(new URL('./files', import.meta.url)); + const files = fileURLToPath(new URL('./files', import.meta.url).href); const dest = builder.getBuildDirectory('cloudflare'); const tmp = builder.getBuildDirectory('cloudflare-tmp'); diff --git a/packages/adapter-cloudflare/package.json b/packages/adapter-cloudflare/package.json index 5fe809473778..05fbc5df153f 100644 --- a/packages/adapter-cloudflare/package.json +++ b/packages/adapter-cloudflare/package.json @@ -25,13 +25,14 @@ "scripts": { "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", + "check": "tsc", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore" }, "dependencies": { "esbuild": "^0.14.21" }, "devDependencies": { - "@sveltejs/kit": "workspace:*" + "typescript": "^4.6.2" }, "publishConfig": { "access": "public" diff --git a/packages/adapter-cloudflare/tsconfig.json b/packages/adapter-cloudflare/tsconfig.json index f9bf8e7cb2be..87628b965a0a 100644 --- a/packages/adapter-cloudflare/tsconfig.json +++ b/packages/adapter-cloudflare/tsconfig.json @@ -4,10 +4,12 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", "module": "es2020", "moduleResolution": "node", - "allowSyntheticDefaultImports": true + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["./index.js", "./files"] + "include": ["**/*.js", "ambient.d.ts"] } diff --git a/packages/adapter-netlify/src/handler.d.ts b/packages/adapter-netlify/ambient.d.ts similarity index 100% rename from packages/adapter-netlify/src/handler.d.ts rename to packages/adapter-netlify/ambient.d.ts diff --git a/packages/adapter-netlify/index.js b/packages/adapter-netlify/index.js index 330071470d6b..4d6aa3eea4c9 100644 --- a/packages/adapter-netlify/index.js +++ b/packages/adapter-netlify/index.js @@ -12,7 +12,7 @@ import toml from '@iarna/toml'; * } & toml.JsonMap} NetlifyConfig */ -const files = fileURLToPath(new URL('./files', import.meta.url)); +const files = fileURLToPath(new URL('./files', import.meta.url).href); /** @type {import('.')} */ export default function ({ split = false } = {}) { diff --git a/packages/adapter-netlify/package.json b/packages/adapter-netlify/package.json index fda6bcf0b5b0..3c492d1a47fa 100644 --- a/packages/adapter-netlify/package.json +++ b/packages/adapter-netlify/package.json @@ -25,6 +25,7 @@ "dev": "rimraf files && rollup -cw", "build": "rimraf files && rollup -c", "test": "uvu src \"(spec\\.js|test[\\\\/]index\\.js)\"", + "check": "tsc", "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", @@ -43,6 +44,7 @@ "@sveltejs/kit": "workspace:*", "rimraf": "^3.0.2", "rollup": "^2.58.0", + "typescript": "^4.6.2", "uvu": "^0.5.2" } } diff --git a/packages/adapter-netlify/rollup.config.js b/packages/adapter-netlify/rollup.config.js index 7564de03ee9c..ffbdb912e0e9 100644 --- a/packages/adapter-netlify/rollup.config.js +++ b/packages/adapter-netlify/rollup.config.js @@ -2,24 +2,25 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; -export default [ - { - input: { - handler: 'src/handler.js', - shims: 'src/shims.js' +/** @type {import('rollup').RollupOptions} */ +const config = { + input: { + handler: 'src/handler.js', + shims: 'src/shims.js' + }, + output: [ + { + dir: 'files/cjs', + format: 'cjs' }, - output: [ - { - dir: 'files/cjs', - format: 'cjs' - }, - { - dir: 'files/esm', - format: 'esm' - } - ], - plugins: [nodeResolve(), commonjs(), json()], - external: (id) => id === '0APP' || id.startsWith('node:'), - preserveEntrySignatures: true - } -]; + { + dir: 'files/esm', + format: 'esm' + } + ], + plugins: [nodeResolve(), commonjs(), json()], + external: (id) => id === '0SERVER' || id.startsWith('node:'), + preserveEntrySignatures: 'exports-only' +}; + +export default config; diff --git a/packages/adapter-netlify/tsconfig.json b/packages/adapter-netlify/tsconfig.json index 3b817fb6b17a..87bea241ee5c 100644 --- a/packages/adapter-netlify/tsconfig.json +++ b/packages/adapter-netlify/tsconfig.json @@ -4,10 +4,13 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", "module": "es2020", "moduleResolution": "node", - "allowSyntheticDefaultImports": true + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["./index.js", "src"] + "include": ["*.js", "src/**/*.js", "ambient.d.ts"] } diff --git a/packages/adapter-node/src/ambient.d.ts b/packages/adapter-node/ambient.d.ts similarity index 100% rename from packages/adapter-node/src/ambient.d.ts rename to packages/adapter-node/ambient.d.ts diff --git a/packages/adapter-node/index.d.ts b/packages/adapter-node/index.d.ts index e7169b54b799..38ca13c5c8f0 100644 --- a/packages/adapter-node/index.d.ts +++ b/packages/adapter-node/index.d.ts @@ -1,5 +1,11 @@ import { Adapter } from '@sveltejs/kit'; +declare global { + const HOST_ENV: string; + const PATH_ENV: string; + const PORT_ENV: string; +} + interface AdapterOptions { out?: string; precompress?: boolean; diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index fc302b17a978..01e3d2b458eb 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -7,7 +7,7 @@ import zlib from 'zlib'; const pipe = promisify(pipeline); -const files = fileURLToPath(new URL('./files', import.meta.url)); +const files = fileURLToPath(new URL('./files', import.meta.url).href); /** @type {import('.')} */ export default function ({ diff --git a/packages/adapter-node/package.json b/packages/adapter-node/package.json index 556f4f596a73..970a41e032e6 100644 --- a/packages/adapter-node/package.json +++ b/packages/adapter-node/package.json @@ -25,6 +25,7 @@ "dev": "rimraf files && rollup -cw", "build": "rimraf files && rollup -c", "test": "echo \"tests temporarily disabled\" # c8 uvu tests", + "check": "tsc", "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", @@ -44,6 +45,7 @@ "rimraf": "^3.0.2", "rollup": "^2.60.2", "sirv": "^2.0.0", + "typescript": "^4.6.2", "uvu": "^0.5.2" } } diff --git a/packages/adapter-node/src/handler.d.ts b/packages/adapter-node/src/handler.d.ts new file mode 100644 index 000000000000..dc1f50b46033 --- /dev/null +++ b/packages/adapter-node/src/handler.d.ts @@ -0,0 +1,9 @@ +import type { Handle } from '@sveltejs/kit'; + +declare global { + const ORIGIN: string; + const HOST_HEADER: string; + const PROTOCOL_HEADER: string; +} + +export const handler: Handle; diff --git a/packages/adapter-node/tsconfig.json b/packages/adapter-node/tsconfig.json index 517604c951ec..89ca95cf92bd 100644 --- a/packages/adapter-node/tsconfig.json +++ b/packages/adapter-node/tsconfig.json @@ -4,10 +4,13 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", - "module": "es2020", + "allowSyntheticDefaultImports": true, "moduleResolution": "node", - "allowSyntheticDefaultImports": true + "module": "es2020", + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["index.js", "src"] + "include": ["index.js", "src/**/*.js", "ambient.d.ts"] } diff --git a/packages/adapter-static/package.json b/packages/adapter-static/package.json index e0f9e56b5015..1c2b71d5fb2b 100644 --- a/packages/adapter-static/package.json +++ b/packages/adapter-static/package.json @@ -34,6 +34,7 @@ "port-authority": "^1.1.2", "sirv": "^2.0.0", "svelte": "^3.44.2", + "typescript": "^4.6.2", "uvu": "^0.5.2" } } diff --git a/packages/adapter-static/tsconfig.json b/packages/adapter-static/tsconfig.json index 113d5b4c70e3..d564497a3d40 100644 --- a/packages/adapter-static/tsconfig.json +++ b/packages/adapter-static/tsconfig.json @@ -4,11 +4,13 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", "module": "es2020", "moduleResolution": "node", "allowSyntheticDefaultImports": true, - "skipLibCheck": true + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["index.js", "test/*.js"] + "include": ["index.js"] } diff --git a/packages/adapter-vercel/files/ambient.d.ts b/packages/adapter-vercel/ambient.d.ts similarity index 100% rename from packages/adapter-vercel/files/ambient.d.ts rename to packages/adapter-vercel/ambient.d.ts diff --git a/packages/adapter-vercel/index.js b/packages/adapter-vercel/index.js index 67c29e4a60b1..7ed513d8eb9e 100644 --- a/packages/adapter-vercel/index.js +++ b/packages/adapter-vercel/index.js @@ -93,7 +93,7 @@ export default function ({ external = [] } = {}) { builder.rimraf(dir); builder.rimraf(tmp); - const files = fileURLToPath(new URL('./files', import.meta.url)); + const files = fileURLToPath(new URL('./files', import.meta.url).href); const dirs = { static: `${dir}/static`, diff --git a/packages/adapter-vercel/package.json b/packages/adapter-vercel/package.json index a9fdd82711d9..c5c15893598d 100644 --- a/packages/adapter-vercel/package.json +++ b/packages/adapter-vercel/package.json @@ -24,12 +24,14 @@ "scripts": { "lint": "eslint --ignore-path .gitignore \"**/*.{ts,js,svelte}\" && npm run check-format", "format": "npm run check-format -- --write", - "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore" + "check-format": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore", + "check": "tsc" }, "dependencies": { "esbuild": "^0.14.21" }, "devDependencies": { - "@sveltejs/kit": "workspace:*" + "@sveltejs/kit": "workspace:*", + "typescript": "^4.6.2" } } diff --git a/packages/adapter-vercel/tsconfig.json b/packages/adapter-vercel/tsconfig.json index d856a1dae902..af2a0c525acf 100644 --- a/packages/adapter-vercel/tsconfig.json +++ b/packages/adapter-vercel/tsconfig.json @@ -4,10 +4,13 @@ "checkJs": true, "noEmit": true, "noImplicitAny": true, - "target": "es2020", "module": "es2020", "moduleResolution": "node", - "allowSyntheticDefaultImports": true + "allowSyntheticDefaultImports": true, + "baseUrl": ".", + "paths": { + "@sveltejs/kit": ["../kit/types/index"] + } }, - "include": ["./index.js", "files"] + "include": ["**/*.js", "ambient.d.ts"] } diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index b8e79c7f32c4..0698718e4dbc 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -5,27 +5,95 @@ import './ambient'; import { CompileOptions } from 'svelte/types/compiler/interfaces'; import { + AdapterEntry, Body, - Builder, CspDirectives, Either, ErrorLoadInput, Fallthrough, LoadInput, LoadOutput, + Logger, MaybePromise, + Prerendered, PrerenderOnErrorValue, RequestEvent, + RequestOptions, ResolveOptions, ResponseHeaders, + RouteDefinition, TrailingSlash } from './private'; +import { SSRNodeLoader, SSRRoute, ValidatedConfig } from './internal'; export interface Adapter { name: string; adapt(builder: Builder): Promise; } +export interface Builder { + log: Logger; + rimraf(dir: string): void; + mkdirp(dir: string): void; + + config: ValidatedConfig; + prerendered: Prerendered; + + /** + * Create entry points that map to individual functions + * @param fn A function that groups a set of routes into an entry point + */ + createEntries(fn: (route: RouteDefinition) => AdapterEntry): void; + + generateManifest: (opts: { relativePath: string; format?: 'esm' | 'cjs' }) => string; + + getBuildDirectory(name: string): string; + getClientDirectory(): string; + getServerDirectory(): string; + getStaticDirectory(): string; + + /** + * @param dest the destination folder to which files should be copied + * @returns an array of paths corresponding to the files that have been created by the copy + */ + writeClient(dest: string): string[]; + /** + * + * @param dest + */ + writePrerendered( + dest: string, + opts?: { + fallback?: string; + } + ): string[]; + /** + * @param dest the destination folder to which files should be copied + * @returns an array of paths corresponding to the files that have been created by the copy + */ + writeServer(dest: string): string[]; + /** + * @param dest the destination folder to which files should be copied + * @returns an array of paths corresponding to the files that have been created by the copy + */ + writeStatic(dest: string): string[]; + /** + * @param from the source file or folder + * @param to the destination file or folder + * @param opts.filter a function to determine whether a file or folder should be copied + * @param opts.replace a map of strings to replace + * @returns an array of paths corresponding to the files that have been created by the copy + */ + copy( + from: string, + to: string, + opts?: { + filter?: (basename: string) => boolean; + replace?: Record; + } + ): string[]; +} + export interface Config { compilerOptions?: CompileOptions; extensions?: string[]; @@ -164,3 +232,24 @@ export type RequestHandlerOutput = MaybePromise< Fallthrough > >; + +export class Server { + constructor(manifest: SSRManifest); + respond(request: Request, options?: RequestOptions): Promise; +} + +export interface SSRManifest { + appDir: string; + assets: Set; + /** private fields */ + _: { + mime: Record; + entry: { + file: string; + js: string[]; + css: string[]; + }; + nodes: SSRNodeLoader[]; + routes: SSRRoute[]; + }; +} diff --git a/packages/kit/types/internal.d.ts b/packages/kit/types/internal.d.ts index 26cd29aaed0a..85f5bc04c2f1 100644 --- a/packages/kit/types/internal.d.ts +++ b/packages/kit/types/internal.d.ts @@ -6,7 +6,9 @@ import { Handle, HandleError, Load, - RequestHandler + RequestHandler, + Server, + SSRManifest } from './index'; import { Either, @@ -14,14 +16,11 @@ import { HttpMethod, JSONObject, MaybePromise, - Prerendered, RequestEvent, RequestOptions, ResolveOptions, ResponseHeaders, RouteSegment, - Server, - SSRManifest, TrailingSlash } from './private'; diff --git a/packages/kit/types/private.d.ts b/packages/kit/types/private.d.ts index b4beab62d945..b8c7f9660f14 100644 --- a/packages/kit/types/private.d.ts +++ b/packages/kit/types/private.d.ts @@ -2,7 +2,7 @@ // but which cannot be imported from `@sveltejs/kit`. Care should // be taken to avoid breaking changes when editing this file -import { SSRNodeLoader, SSRRoute, ValidatedConfig } from './internal'; +import { ValidatedConfig } from './internal'; export interface AdapterEntry { /** @@ -30,69 +30,6 @@ export interface AdapterEntry { export type Body = JSONValue | Uint8Array | ReadableStream | import('stream').Readable; -export interface Builder { - log: Logger; - rimraf(dir: string): void; - mkdirp(dir: string): void; - - config: ValidatedConfig; - prerendered: Prerendered; - - /** - * Create entry points that map to individual functions - * @param fn A function that groups a set of routes into an entry point - */ - createEntries(fn: (route: RouteDefinition) => AdapterEntry): void; - - generateManifest: (opts: { relativePath: string; format?: 'esm' | 'cjs' }) => string; - - getBuildDirectory(name: string): string; - getClientDirectory(): string; - getServerDirectory(): string; - getStaticDirectory(): string; - - /** - * @param dest the destination folder to which files should be copied - * @returns an array of paths corresponding to the files that have been created by the copy - */ - writeClient(dest: string): string[]; - /** - * - * @param dest - */ - writePrerendered( - dest: string, - opts?: { - fallback?: string; - } - ): string[]; - /** - * @param dest the destination folder to which files should be copied - * @returns an array of paths corresponding to the files that have been created by the copy - */ - writeServer(dest: string): string[]; - /** - * @param dest the destination folder to which files should be copied - * @returns an array of paths corresponding to the files that have been created by the copy - */ - writeStatic(dest: string): string[]; - /** - * @param from the source file or folder - * @param to the destination file or folder - * @param opts.filter a function to determine whether a file or folder should be copied - * @param opts.replace a map of strings to replace - * @returns an array of paths corresponding to the files that have been created by the copy - */ - copy( - from: string, - to: string, - opts?: { - filter?: (basename: string) => boolean; - replace?: Record; - } - ): string[]; -} - // Based on https://github.com/josh-hemphill/csp-typed-directives/blob/latest/src/csp.types.ts // // MIT License @@ -329,27 +266,6 @@ export interface RouteSegment { rest: boolean; } -export class Server { - constructor(manifest: SSRManifest); - respond(request: Request, options?: RequestOptions): Promise; -} - -export interface SSRManifest { - appDir: string; - assets: Set; - /** private fields */ - _: { - mime: Record; - entry: { - file: string; - js: string[]; - css: string[]; - }; - nodes: SSRNodeLoader[]; - routes: SSRRoute[]; - }; -} - export interface ToJSON { toJSON(...args: any[]): Exclude; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d87d7db74f50..c11df355e1e3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,10 +49,13 @@ importers: '@sveltejs/adapter-cloudflare': workspace:* '@sveltejs/adapter-netlify': workspace:* '@sveltejs/adapter-vercel': workspace:* + typescript: ^4.6.2 dependencies: '@sveltejs/adapter-cloudflare': link:../adapter-cloudflare '@sveltejs/adapter-netlify': link:../adapter-netlify '@sveltejs/adapter-vercel': link:../adapter-vercel + devDependencies: + typescript: 4.6.2 packages/adapter-begin: specifiers: @@ -66,25 +69,25 @@ importers: packages/adapter-cloudflare: specifiers: - '@sveltejs/kit': workspace:* esbuild: ^0.14.21 + typescript: ^4.6.2 dependencies: esbuild: 0.14.21 devDependencies: - '@sveltejs/kit': link:../kit + typescript: 4.6.2 packages/adapter-cloudflare-workers: specifiers: '@cloudflare/kv-asset-handler': ^0.2.0 '@iarna/toml': ^2.2.5 - '@sveltejs/kit': workspace:* esbuild: ^0.14.21 + typescript: ^4.6.2 dependencies: '@iarna/toml': 2.2.5 esbuild: 0.14.21 devDependencies: '@cloudflare/kv-asset-handler': 0.2.0 - '@sveltejs/kit': link:../kit + typescript: 4.6.2 packages/adapter-netlify: specifiers: @@ -98,6 +101,7 @@ importers: rimraf: ^3.0.2 rollup: ^2.58.0 tiny-glob: ^0.2.9 + typescript: ^4.6.2 uvu: ^0.5.2 dependencies: '@iarna/toml': 2.2.5 @@ -111,6 +115,7 @@ importers: '@sveltejs/kit': link:../kit rimraf: 3.0.2 rollup: 2.60.2 + typescript: 4.6.2 uvu: 0.5.2 packages/adapter-node: @@ -126,6 +131,7 @@ importers: rollup: ^2.60.2 sirv: ^2.0.0 tiny-glob: ^0.2.9 + typescript: ^4.6.2 uvu: ^0.5.2 dependencies: tiny-glob: 0.2.9 @@ -140,6 +146,7 @@ importers: rimraf: 3.0.2 rollup: 2.60.2 sirv: 2.0.0 + typescript: 4.6.2 uvu: 0.5.2 packages/adapter-static: @@ -151,6 +158,7 @@ importers: sirv: ^2.0.0 svelte: ^3.44.2 tiny-glob: ^0.2.9 + typescript: ^4.6.2 uvu: ^0.5.2 dependencies: tiny-glob: 0.2.9 @@ -161,16 +169,19 @@ importers: port-authority: 1.1.2 sirv: 2.0.0 svelte: 3.44.2 + typescript: 4.6.2 uvu: 0.5.2 packages/adapter-vercel: specifiers: '@sveltejs/kit': workspace:* esbuild: ^0.14.21 + typescript: ^4.6.2 dependencies: esbuild: 0.14.21 devDependencies: '@sveltejs/kit': link:../kit + typescript: 4.6.2 packages/create-svelte: specifiers: