diff --git a/package.json b/package.json index 41f93d526c..6f4b571831 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "prettier": "^3.2.4", "prettier-plugin-svelte": "^3.4.0", "svelte": "workspace:^", - "typescript": "^5.5.4", + "typescript": "^6.0.0", "typescript-eslint": "^8.56.0", "v8-natives": "^1.2.5", "vitest": "^4.1.7" diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 6404eb0596..621072b451 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -166,7 +166,7 @@ "rollup": "^4.59.0", "source-map": "^0.7.4", "tinyglobby": "^0.2.12", - "typescript": "^5.5.4", + "typescript": "^6.0.0", "vitest": "^4.1.7", "web-features": "^3.29.0" }, diff --git a/packages/svelte/src/internal/types.d.ts b/packages/svelte/src/internal/types.d.ts index 2f9ff8d75b..d12f4adbf9 100644 --- a/packages/svelte/src/internal/types.d.ts +++ b/packages/svelte/src/internal/types.d.ts @@ -2,7 +2,7 @@ export type NotFunction = T extends Function ? never : T; declare global { - // @ts-ignore devalue has it in its types, but it's not part of the standard lib at the version our runtime is. - // We're not actually doing anything with it so we silence the error this ay - type Float16Array = any; + // devalue references this type, but it isn't included in our runtime's ES2021 lib. + // Use an interface so it merges with the built-in declaration when checking with newer libs. + interface Float16Array {} } diff --git a/packages/svelte/tests/types/tsconfig.json b/packages/svelte/tests/types/tsconfig.json index 9a8c2e4da4..fa2eda741f 100644 --- a/packages/svelte/tests/types/tsconfig.json +++ b/packages/svelte/tests/types/tsconfig.json @@ -1,8 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "rootDir": "../..", - "baseUrl": "../../" + "rootDir": "../.." }, "include": ["."] } diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 661b840354..7ab1e1016d 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -580,7 +580,7 @@ declare module 'svelte' { * */ export function unmount(component: Record, options?: { outro?: boolean; - } | undefined): Promise; + }): Promise; /** * Returns a promise that resolves once any pending state changes have been applied. * */ @@ -1651,7 +1651,7 @@ declare module 'svelte/compiler' { * */ export function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: { filename?: string; - } | undefined): Promise; + }): Promise; /** * `print` converts a Svelte AST node back into Svelte source code. * It is primarily intended for tools that parse and transform components using the compiler’s modern AST representation. @@ -1676,7 +1676,7 @@ declare module 'svelte/compiler' { export function migrate(source: string, { filename, use_ts }?: { filename?: string; use_ts?: boolean; - } | undefined): { + }): { code: string; }; type ICompileDiagnostic = { @@ -2067,7 +2067,7 @@ declare module 'svelte/legacy' { * Function to create a `bubble` function that mimic the behavior of `on:click` without handler available in svelte 4. * @deprecated Use this only as a temporary solution to migrate your automatically delegated events in Svelte 5. */ - export function createBubbler(): (type: string) => (event: Event) => boolean; + export function createBubbler(): ( type: string) => ( event: Event) => boolean; /** * Support using the component as both a class and function during the transition period */ @@ -2282,13 +2282,13 @@ declare module 'svelte/motion' { * * @deprecated Use [`Spring`](https://svelte.dev/docs/svelte/svelte-motion#Spring) instead * */ - export function spring(value?: T | undefined, opts?: SpringOptions | undefined): Spring; + export function spring(value?: T, opts?: SpringOptions): Spring; /** * A tweened store in Svelte is a special type of store that provides smooth transitions between state values over time. * * @deprecated Use [`Tween`](https://svelte.dev/docs/svelte/svelte-motion#Tween) instead * */ - export function tweened(value?: T | undefined, defaults?: TweenOptions | undefined): Tweened; + export function tweened(value?: T, defaults?: TweenOptions): Tweened; /** * A wrapper for a value that tweens smoothly to its target value. Changes to `tween.target` will cause `tween.current` to * move towards it over time, taking account of the `delay`, `duration` and `easing` options. @@ -2321,7 +2321,7 @@ declare module 'svelte/motion' { * ``` * */ - static of(fn: () => U, options?: TweenOptions | undefined): Tween; + static of(fn: () => U, options?: TweenOptions): Tween; constructor(value: T, options?: TweenOptions); /** @@ -2329,7 +2329,7 @@ declare module 'svelte/motion' { * * If `options` are provided, they will override the tween's defaults. * */ - set(value: T, options?: TweenOptions | undefined): Promise; + set(value: T, options?: TweenOptions): Promise; get current(): T; set target(v: T); get target(): T; @@ -2466,10 +2466,6 @@ declare module 'svelte/reactivity' { constructor(value?: Iterable | null | undefined); - getOrInsert(key: K, value: V): V; - - getOrInsertComputed(key: K, callbackFn: (key: K) => V): V; - set(key: K, value: V): this; #private; } @@ -2559,7 +2555,7 @@ declare module 'svelte/reactivity' { * @param query A media query string * @param fallback Fallback value for the server */ - constructor(query: string, fallback?: boolean | undefined); + constructor(query: string, fallback?: boolean); } /** * Returns a `subscribe` function that integrates external event-based systems with Svelte's reactivity. @@ -2799,13 +2795,13 @@ declare module 'svelte/store' { * * @param value initial value * */ - export function readable(value?: T | undefined, start?: StartStopNotifier | undefined): Readable; + export function readable(value?: T, start?: StartStopNotifier): Readable; /** * Create a `Writable` store that allows both updating and reading by subscription. * * @param value initial value * */ - export function writable(value?: T | undefined, start?: StartStopNotifier | undefined): Writable; + export function writable(value?: T, start?: StartStopNotifier): Writable; /** * Derived value store by synchronizing one or more readable stores and * applying an aggregation function over its input values. @@ -2904,34 +2900,34 @@ declare module 'svelte/transition' { * Animates a `blur` filter alongside an element's opacity. * * */ - export function blur(node: Element, { delay, duration, easing, amount, opacity }?: BlurParams | undefined): TransitionConfig; + export function blur(node: Element, { delay, duration, easing, amount, opacity }?: BlurParams): TransitionConfig; /** * Animates the opacity of an element from 0 to the current opacity for `in` transitions and from the current opacity to 0 for `out` transitions. * * */ - export function fade(node: Element, { delay, duration, easing }?: FadeParams | undefined): TransitionConfig; + export function fade(node: Element, { delay, duration, easing }?: FadeParams): TransitionConfig; /** * Animates the x and y positions and the opacity of an element. `in` transitions animate from the provided values, passed as parameters to the element's default values. `out` transitions animate from the element's default values to the provided values. * * */ - export function fly(node: Element, { delay, duration, easing, x, y, opacity }?: FlyParams | undefined): TransitionConfig; + export function fly(node: Element, { delay, duration, easing, x, y, opacity }?: FlyParams): TransitionConfig; /** * Slides an element in and out. * * */ - export function slide(node: Element, { delay, duration, easing, axis }?: SlideParams | undefined): TransitionConfig; + export function slide(node: Element, { delay, duration, easing, axis }?: SlideParams): TransitionConfig; /** * Animates the opacity and scale of an element. `in` transitions animate from the provided values, passed as parameters, to an element's current (default) values. `out` transitions animate from an element's default values to the provided values. * * */ - export function scale(node: Element, { delay, duration, easing, start, opacity }?: ScaleParams | undefined): TransitionConfig; + export function scale(node: Element, { delay, duration, easing, start, opacity }?: ScaleParams): TransitionConfig; /** * Animates the stroke of an SVG element, like a snake in a tube. `in` transitions begin with the path invisible and draw the path to the screen over time. `out` transitions start in a visible state and gradually erase the path. `draw` only works with elements that have a `getTotalLength` method, like `` and ``. * * */ export function draw(node: SVGElement & { getTotalLength(): number; - }, { delay, speed, duration, easing }?: DrawParams | undefined): TransitionConfig; + }, { delay, speed, duration, easing }?: DrawParams): TransitionConfig; /** * The `crossfade` function creates a pair of [transitions](https://svelte.dev/docs/svelte/transition) called `send` and `receive`. When an element is 'sent', it looks for a corresponding element being 'received', and generates a transition that transforms the element to its counterpart's position and fades it out. When an element is 'received', the reverse happens. If there is no counterpart, the `fallback` transition is used. * diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7fee7b592..a9697d4480 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 10.0.1(eslint@10.0.0) '@sveltejs/eslint-config': specifier: ^9.0.0 - version: 9.0.0(@eslint/js@10.0.1(eslint@10.0.0))(@stylistic/eslint-plugin-js@1.8.0(eslint@10.0.0))(eslint-config-prettier@9.1.0(eslint@10.0.0))(eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@5.5.4))(eslint-plugin-svelte@3.15.0(eslint@10.0.0)(svelte@packages+svelte))(eslint@10.0.0)(typescript-eslint@8.56.0(eslint@10.0.0)(typescript@5.5.4))(typescript@5.5.4) + version: 9.0.0(@eslint/js@10.0.1(eslint@10.0.0))(@stylistic/eslint-plugin-js@1.8.0(eslint@10.0.0))(eslint-config-prettier@9.1.0(eslint@10.0.0))(eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@6.0.3))(eslint-plugin-svelte@3.15.0(eslint@10.0.0)(svelte@packages+svelte))(eslint@10.0.0)(typescript-eslint@8.56.0(eslint@10.0.0)(typescript@6.0.3))(typescript@6.0.3) '@types/node': specifier: ^20.11.5 version: 20.19.17 @@ -54,11 +54,11 @@ importers: specifier: workspace:^ version: link:packages/svelte typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^6.0.0 + version: 6.0.3 typescript-eslint: specifier: ^8.56.0 - version: 8.56.0(eslint@10.0.0)(typescript@5.5.4) + version: 8.56.0(eslint@10.0.0)(typescript@6.0.3) v8-natives: specifier: ^1.2.5 version: 1.2.5 @@ -146,7 +146,7 @@ importers: version: 2.10.32 dts-buddy: specifier: ^0.5.5 - version: 0.5.5(typescript@5.5.4) + version: 0.5.5(typescript@6.0.3) esbuild: specifier: ^0.28.1 version: 0.28.1 @@ -160,8 +160,8 @@ importers: specifier: ^0.2.12 version: 0.2.17 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^6.0.0 + version: 6.0.3 vitest: specifier: ^4.1.7 version: 4.1.7(@types/node@20.19.17)(@vitest/coverage-v8@4.1.7)(jsdom@25.0.1)(vite@7.3.5(@types/node@20.19.17)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)) @@ -2262,8 +2262,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -3060,17 +3060,17 @@ snapshots: dependencies: acorn: 8.18.0 - '@sveltejs/eslint-config@9.0.0(@eslint/js@10.0.1(eslint@10.0.0))(@stylistic/eslint-plugin-js@1.8.0(eslint@10.0.0))(eslint-config-prettier@9.1.0(eslint@10.0.0))(eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@5.5.4))(eslint-plugin-svelte@3.15.0(eslint@10.0.0)(svelte@packages+svelte))(eslint@10.0.0)(typescript-eslint@8.56.0(eslint@10.0.0)(typescript@5.5.4))(typescript@5.5.4)': + '@sveltejs/eslint-config@9.0.0(@eslint/js@10.0.1(eslint@10.0.0))(@stylistic/eslint-plugin-js@1.8.0(eslint@10.0.0))(eslint-config-prettier@9.1.0(eslint@10.0.0))(eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@6.0.3))(eslint-plugin-svelte@3.15.0(eslint@10.0.0)(svelte@packages+svelte))(eslint@10.0.0)(typescript-eslint@8.56.0(eslint@10.0.0)(typescript@6.0.3))(typescript@6.0.3)': dependencies: '@eslint/js': 10.0.1(eslint@10.0.0) '@stylistic/eslint-plugin-js': 1.8.0(eslint@10.0.0) eslint: 10.0.0 eslint-config-prettier: 9.1.0(eslint@10.0.0) - eslint-plugin-n: 17.24.0(eslint@10.0.0)(typescript@5.5.4) + eslint-plugin-n: 17.24.0(eslint@10.0.0)(typescript@6.0.3) eslint-plugin-svelte: 3.15.0(eslint@10.0.0)(svelte@packages+svelte) globals: 17.3.0 - typescript: 5.5.4 - typescript-eslint: 8.56.0(eslint@10.0.0)(typescript@5.5.4) + typescript: 6.0.3 + typescript-eslint: 8.56.0(eslint@10.0.0)(typescript@6.0.3) '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.0(svelte@packages+svelte)(vite@7.3.5(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0)))(svelte@packages+svelte)(vite@7.3.5(@types/node@24.5.2)(lightningcss@1.23.0)(sass@1.70.0)(terser@5.27.0))': dependencies: @@ -3129,40 +3129,40 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@5.5.4))(eslint@10.0.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@6.0.3))(eslint@10.0.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.56.0(eslint@10.0.0)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@10.0.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.56.0(eslint@10.0.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.56.0 eslint: 10.0.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.5.4) - typescript: 5.5.4 + ts-api-utils: 2.4.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.56.0 '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.56.0 debug: 4.4.3 eslint: 10.0.0 - typescript: 5.5.4 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.0(typescript@5.5.4)': + '@typescript-eslint/project-service@8.56.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.5.4) + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@6.0.3) '@typescript-eslint/types': 8.59.4 debug: 4.4.3 - typescript: 5.5.4 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3171,19 +3171,19 @@ snapshots: '@typescript-eslint/types': 8.56.0 '@typescript-eslint/visitor-keys': 8.56.0 - '@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.5.4)': + '@typescript-eslint/tsconfig-utils@8.56.0(typescript@6.0.3)': dependencies: - typescript: 5.5.4 + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.56.0(eslint@10.0.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.56.0(eslint@10.0.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@6.0.3) debug: 4.4.3 eslint: 10.0.0 - ts-api-utils: 2.4.0(typescript@5.5.4) - typescript: 5.5.4 + ts-api-utils: 2.4.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3191,29 +3191,29 @@ snapshots: '@typescript-eslint/types@8.59.4': {} - '@typescript-eslint/typescript-estree@8.56.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.56.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.56.0(typescript@5.5.4) - '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.5.4) + '@typescript-eslint/project-service': 8.56.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@6.0.3) '@typescript-eslint/types': 8.56.0 '@typescript-eslint/visitor-keys': 8.56.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.4.0(typescript@5.5.4) - typescript: 5.5.4 + ts-api-utils: 2.4.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.0(eslint@10.0.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.56.0(eslint@10.0.0)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0) '@typescript-eslint/scope-manager': 8.56.0 '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@6.0.3) eslint: 10.0.0 - typescript: 5.5.4 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -3439,7 +3439,7 @@ snapshots: dependencies: path-type: 4.0.0 - dts-buddy@0.5.5(typescript@5.5.4): + dts-buddy@0.5.5(typescript@6.0.3): dependencies: '@jridgewell/source-map': 0.3.6 '@jridgewell/sourcemap-codec': 1.6.0 @@ -3448,8 +3448,8 @@ snapshots: magic-string: 0.30.21 sade: 1.8.1 tinyglobby: 0.2.17 - ts-api-utils: 1.3.0(typescript@5.5.4) - typescript: 5.5.4 + ts-api-utils: 1.3.0(typescript@6.0.3) + typescript: 6.0.3 enhanced-resolve@5.24.0: dependencies: @@ -3547,7 +3547,7 @@ snapshots: dependencies: eslint: 10.0.0 - eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@5.5.4): + eslint-plugin-n@17.24.0(eslint@10.0.0)(typescript@6.0.3): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0) enhanced-resolve: 5.24.0 @@ -3558,7 +3558,7 @@ snapshots: globrex: 0.1.2 ignore: 5.3.2 semver: 7.8.5 - ts-declaration-location: 1.0.7(typescript@5.5.4) + ts-declaration-location: 1.0.7(typescript@6.0.3) transitivePeerDependencies: - typescript @@ -4397,35 +4397,35 @@ snapshots: dependencies: regexparam: 3.0.0 - ts-api-utils@1.3.0(typescript@5.5.4): + ts-api-utils@1.3.0(typescript@6.0.3): dependencies: - typescript: 5.5.4 + typescript: 6.0.3 - ts-api-utils@2.4.0(typescript@5.5.4): + ts-api-utils@2.4.0(typescript@6.0.3): dependencies: - typescript: 5.5.4 + typescript: 6.0.3 - ts-declaration-location@1.0.7(typescript@5.5.4): + ts-declaration-location@1.0.7(typescript@6.0.3): dependencies: picomatch: 4.0.4 - typescript: 5.5.4 + typescript: 6.0.3 type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.56.0(eslint@10.0.0)(typescript@5.5.4): + typescript-eslint@8.56.0(eslint@10.0.0)(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@5.5.4))(eslint@10.0.0)(typescript@5.5.4) - '@typescript-eslint/parser': 8.56.0(eslint@10.0.0)(typescript@5.5.4) - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0)(typescript@6.0.3))(eslint@10.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.56.0(eslint@10.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.56.0(eslint@10.0.0)(typescript@6.0.3) eslint: 10.0.0 - typescript: 5.5.4 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - typescript@5.5.4: {} + typescript@6.0.3: {} undici-types@6.21.0: {}