diff --git a/.changeset/witty-years-relate.md b/.changeset/witty-years-relate.md new file mode 100644 index 000000000000..c0d93ddb3ea7 --- /dev/null +++ b/.changeset/witty-years-relate.md @@ -0,0 +1,5 @@ +--- +"@sveltejs/enhanced-img": minor +--- + +breaking: require Svelte 5 diff --git a/packages/enhanced-img/package.json b/packages/enhanced-img/package.json index 8f922e5d8be5..89c3445e7362 100644 --- a/packages/enhanced-img/package.json +++ b/packages/enhanced-img/package.json @@ -38,20 +38,20 @@ "dependencies": { "magic-string": "^0.30.5", "svelte-parse-markup": "^0.1.5", - "vite-imagetools": "^7.0.1" + "vite-imagetools": "^7.0.1", + "zimmerframe": "^1.1.2" }, "devDependencies": { "@types/estree": "^1.0.5", "@types/node": "^18.19.48", - "estree-walker": "^3.0.3", "rollup": "^4.14.2", - "svelte": "^4.2.10", - "typescript": "^5.3.3", + "svelte": "^5.0.0", + "typescript": "^5.6.3", "vite": "^5.3.2", "vitest": "^2.0.1" }, "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.0", + "svelte": "^5.0.0", "vite": ">= 5.0.0" } } diff --git a/packages/enhanced-img/src/preprocessor.js b/packages/enhanced-img/src/preprocessor.js index 0222037e593b..2de5d9f6b9cc 100644 --- a/packages/enhanced-img/src/preprocessor.js +++ b/packages/enhanced-img/src/preprocessor.js @@ -1,8 +1,10 @@ +/** @import { AST } from 'svelte/compiler' */ + import { existsSync } from 'node:fs'; import * as path from 'node:path'; import MagicString from 'magic-string'; -import { asyncWalk } from 'estree-walker'; +import { walk } from 'zimmerframe'; import { VERSION } from 'svelte/compiler'; import { parse } from 'svelte-parse-markup'; @@ -32,7 +34,7 @@ export function image(opts) { } const s = new MagicString(content); - const ast = parse(content, { filename }); + const ast = parse(content, { filename, modern: true }); /** * Import path to import name @@ -49,20 +51,26 @@ export function image(opts) { const consts = new Map(); /** - * @param {import('svelte/types/compiler/interfaces').TemplateNode} node - * @param {{ type: string, start: number, end: number, raw: string }} src_attribute + * @param {import('svelte/compiler').AST.RegularElement} node + * @param {AST.Text | AST.ExpressionTag} src_attribute * @returns {Promise} */ async function update_element(node, src_attribute) { - // TODO: this will become ExpressionTag in Svelte 5 - if (src_attribute.type === 'MustacheTag') { - const src_var_name = content - .substring(src_attribute.start + 1, src_attribute.end - 1) - .trim(); - s.update(node.start, node.end, dynamic_img_to_picture(content, node, src_var_name)); - return; - } else if (src_attribute.type === 'AttributeShorthand') { - const src_var_name = content.substring(src_attribute.start, src_attribute.end).trim(); + if (src_attribute.type === 'ExpressionTag') { + const start = + 'end' in src_attribute.expression + ? src_attribute.expression.end + : src_attribute.expression.range?.[0]; + const end = + 'start' in src_attribute.expression + ? src_attribute.expression.start + : src_attribute.expression.range?.[1]; + + if (typeof start !== 'number' || typeof end !== 'number') { + throw new Error('ExpressionTag has no range'); + } + const src_var_name = content.substring(start, end).trim(); + s.update(node.start, node.end, dynamic_img_to_picture(content, node, src_var_name)); return; } @@ -73,10 +81,10 @@ export function image(opts) { const sizes = get_attr_value(node, 'sizes'); const width = get_attr_value(node, 'width'); url += url.includes('?') ? '&' : '?'; - if (sizes) { + if (sizes && 'raw' in sizes) { url += 'imgSizes=' + encodeURIComponent(sizes.raw) + '&'; } - if (width) { + if (width && 'raw' in width) { url += 'imgWidth=' + encodeURIComponent(width.raw) + '&'; } url += 'enhanced'; @@ -119,23 +127,35 @@ export function image(opts) { } } + /** + * @type {Array>} + */ + const pending_ast_updates = []; // TODO: switch to zimmerframe with Svelte 5 - // @ts-ignore - await asyncWalk(ast.html, { - /** - * @param {import('svelte/types/compiler/interfaces').TemplateNode} node - */ - async enter(node) { - if (node.type === 'Element') { - // Compare node tag match - if (node.name === 'enhanced:img') { + + walk( + /** @type {import('svelte/compiler').AST.Root} */ (ast), + {}, + { + _(_, { next }) { + next(); + }, + /** @param {import('svelte/compiler').AST.RegularElement} node */ + // @ts-ignore + RegularElement(node) { + if ('name' in node && node.name === 'enhanced:img') { + // Compare node tag match const src = get_attr_value(node, 'src'); - if (!src) return; - await update_element(node, src); + + if (!src || typeof src === 'boolean') return; + + pending_ast_updates.push(update_element(node, src)); } } } - }); + ); + + await Promise.all(pending_ast_updates); // add imports and consts to @@ -28,7 +29,11 @@ alt="sizes test" /> - + (foo = 'clicked an image!')} + alt="event handler test" +/> @@ -42,6 +47,10 @@ {/each} +{#each images as _, i} + +{/each} + diff --git a/packages/enhanced-img/test/Output.svelte b/packages/enhanced-img/test/Output.svelte index aa7ba366238e..2cc0fe0609ae 100644 --- a/packages/enhanced-img/test/Output.svelte +++ b/packages/enhanced-img/test/Output.svelte @@ -1,4 +1,4 @@ - @@ -33,7 +34,7 @@ sizes test -event handler test + (foo = 'clicked an image!')} alt="event handler test" width=1440 height=1440 /> alias test @@ -65,6 +66,19 @@ {/if} {/each} +{#each images as _, i} + {#if typeof get_image(i) === 'string'} + opt-in test +{:else} + + {#each Object.entries(get_image(i).sources) as [format, srcset]} + + {/each} + opt-in test + +{/if} +{/each} + diff --git a/packages/enhanced-img/types/internal.d.ts b/packages/enhanced-img/types/internal.d.ts new file mode 100644 index 000000000000..814511d0ed6d --- /dev/null +++ b/packages/enhanced-img/types/internal.d.ts @@ -0,0 +1,34 @@ +import type { AST } from 'svelte/compiler'; + +type ElementLike = + | AST.Component + | AST.TitleElement + | AST.SlotElement + | AST.RegularElement + | AST.SvelteBody + | AST.SvelteComponent + | AST.SvelteDocument + | AST.SvelteElement + | AST.SvelteFragment + | AST.SvelteHead + | AST.SvelteOptionsRaw + | AST.SvelteSelf + | AST.SvelteWindow; + +type Tag = AST.ExpressionTag | AST.HtmlTag | AST.ConstTag | AST.DebugTag | AST.RenderTag; + +type Directive = + | AST.AnimateDirective + | AST.BindDirective + | AST.ClassDirective + | AST.LetDirective + | AST.OnDirective + | AST.StyleDirective + | AST.TransitionDirective + | AST.UseDirective; + +type Block = AST.EachBlock | AST.IfBlock | AST.AwaitBlock | AST.KeyBlock | AST.SnippetBlock; + +export type TemplateNode = AST.Text | Tag | ElementLike | AST.Comment | Block; + +export type Attribute = AST.Attribute | AST.SpreadAttribute | Directive; diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index 01f2c98f3f91..e6521e979560 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -147,6 +147,7 @@ export async function sveltekit() { preprocess, onwarn: svelte_config.onwarn, compilerOptions: { + // @ts-ignore - ignore this property when running `pnpm check` against Svelte 5 in the ecosystem CI hydratable: isSvelte5Plus() ? undefined : true, ...svelte_config.compilerOptions }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 682ac22e7c49..0a360411ab50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 2.27.8 '@sveltejs/eslint-config': specifier: ^8.1.0 - version: 8.1.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.6.0))(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint-plugin-n@17.9.0(eslint@9.6.0))(eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@4.2.19))(eslint@9.6.0)(typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.4.5))(typescript@5.4.5) + version: 8.1.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.6.0))(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint-plugin-n@17.9.0(eslint@9.6.0))(eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@5.1.9))(eslint@9.6.0)(typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.6.3))(typescript@5.6.3) '@svitejs/changesets-changelog-github-compact': specifier: ^1.1.0 version: 1.1.0 @@ -28,10 +28,10 @@ importers: version: 3.1.1 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.1.2(prettier@3.1.1)(svelte@4.2.19) + version: 3.1.2(prettier@3.1.1)(svelte@5.1.9) typescript-eslint: specifier: ^8.0.0 - version: 8.4.0(eslint@9.6.0)(typescript@5.4.5) + version: 8.4.0(eslint@9.6.0)(typescript@5.6.3) packages/adapter-auto: dependencies: @@ -44,7 +44,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + version: 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) '@types/node': specifier: ^18.19.48 version: 18.19.50 @@ -137,7 +137,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + version: 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) '@types/node': specifier: ^18.19.48 version: 18.19.50 @@ -177,7 +177,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + version: 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) '@types/node': specifier: ^18.19.48 version: 18.19.50 @@ -274,7 +274,7 @@ importers: version: link:../kit '@sveltejs/vite-plugin-svelte': specifier: ^3.0.1 - version: 3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + version: 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) '@types/node': specifier: ^18.19.48 version: 18.19.50 @@ -289,7 +289,7 @@ importers: dependencies: '@sveltejs/kit': specifier: ^1.0.0 || ^2.0.0 - version: 2.6.2(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + version: 2.7.3(@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) devDependencies: typescript: specifier: ^5.3.3 @@ -304,10 +304,13 @@ importers: version: 0.30.11 svelte-parse-markup: specifier: ^0.1.5 - version: 0.1.5(svelte@4.2.19) + version: 0.1.5(svelte@5.1.9) vite-imagetools: specifier: ^7.0.1 version: 7.0.1(rollup@4.24.0) + zimmerframe: + specifier: ^1.1.2 + version: 1.1.2 devDependencies: '@types/estree': specifier: ^1.0.5 @@ -315,18 +318,15 @@ importers: '@types/node': specifier: ^18.19.48 version: 18.19.50 - estree-walker: - specifier: ^3.0.3 - version: 3.0.3 rollup: specifier: ^4.14.2 version: 4.24.0 svelte: - specifier: ^4.2.10 - version: 4.2.19 + specifier: ^5.0.0 + version: 5.1.9 typescript: - specifier: ^5.3.3 - version: 5.4.5 + specifier: ^5.6.3 + version: 5.6.3 vite: specifier: ^5.3.2 version: 5.3.6(@types/node@18.19.50)(lightningcss@1.24.1) @@ -1928,8 +1928,8 @@ packages: typescript: '>= 5' typescript-eslint: '>= 7.5' - '@sveltejs/kit@2.6.2': - resolution: {integrity: sha512-ruogrSPXjckn5poUiZU8VYNCSPHq66SFR1AATvOikQxtP6LNI4niAZVX/AWZRe/EPDG3oY2DNJ9c5z7u0t2NAQ==} + '@sveltejs/kit@2.7.3': + resolution: {integrity: sha512-Vx7nq5MJ86I8qXYsVidC5PX6xm+uxt8DydvOdmJoyOK7LvGP18OFEG359yY+aa51t6pENvqZAMqAREQQx1OI2Q==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -2088,6 +2088,11 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} @@ -2257,7 +2262,7 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} @@ -2278,10 +2283,6 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -2489,6 +2490,9 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3421,10 +3425,6 @@ packages: engines: {node: '>=18'} hasBin: true - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - sirv@3.0.0: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} @@ -3577,6 +3577,10 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} + svelte@5.1.9: + resolution: {integrity: sha512-nzq+PPKGS2PoEWDjAcXSrKSbXmmmOAxd6dAz1IhRusUpVkFS6DMELWPyBPGwu6TpO/gsgtFXwX0M4+pAR5gzKw==} + engines: {node: '>=18'} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -3663,6 +3667,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + ufo@1.5.3: resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} @@ -4492,22 +4501,22 @@ snapshots: eslint-visitor-keys: 4.1.0 espree: 10.2.0 - '@sveltejs/eslint-config@8.1.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.6.0))(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint-plugin-n@17.9.0(eslint@9.6.0))(eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@4.2.19))(eslint@9.6.0)(typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.4.5))(typescript@5.4.5)': + '@sveltejs/eslint-config@8.1.0(@stylistic/eslint-plugin-js@2.1.0(eslint@9.6.0))(eslint-config-prettier@9.1.0(eslint@9.6.0))(eslint-plugin-n@17.9.0(eslint@9.6.0))(eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@5.1.9))(eslint@9.6.0)(typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.6.3))(typescript@5.6.3)': dependencies: '@stylistic/eslint-plugin-js': 2.1.0(eslint@9.6.0) eslint: 9.6.0 eslint-config-prettier: 9.1.0(eslint@9.6.0) eslint-plugin-n: 17.9.0(eslint@9.6.0) - eslint-plugin-svelte: 2.41.0(eslint@9.6.0)(svelte@4.2.19) + eslint-plugin-svelte: 2.41.0(eslint@9.6.0)(svelte@5.1.9) globals: 15.10.0 - typescript: 5.4.5 - typescript-eslint: 8.4.0(eslint@9.6.0)(typescript@5.4.5) + typescript: 5.6.3 + typescript-eslint: 8.4.0(eslint@9.6.0)(typescript@5.6.3) - '@sveltejs/kit@2.6.2(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1))': + '@sveltejs/kit@2.7.3(@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) '@types/cookie': 0.6.0 - cookie: 0.7.2 + cookie: 0.6.0 devalue: 5.1.0 esm-env: 1.0.0 import-meta-resolve: 4.1.0 @@ -4516,8 +4525,8 @@ snapshots: mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 - sirv: 2.0.4 - svelte: 4.2.19 + sirv: 3.0.0 + svelte: 5.1.9 tiny-glob: 0.2.9 vite: 5.3.6(@types/node@18.19.50)(lightningcss@1.24.1) @@ -4530,6 +4539,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1))': + dependencies: + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + debug: 4.3.5 + svelte: 5.1.9 + vite: 5.3.6(@types/node@18.19.50)(lightningcss@1.24.1) + transitivePeerDependencies: + - supports-color + '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1))': dependencies: '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@4.2.19)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) @@ -4544,6 +4562,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)))(svelte@5.1.9)(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + debug: 4.3.5 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.11 + svelte: 5.1.9 + svelte-hmr: 0.16.0(svelte@5.1.9) + vite: 5.3.6(@types/node@18.19.50)(lightningcss@1.24.1) + vitefu: 0.2.5(vite@5.3.6(@types/node@18.19.50)(lightningcss@1.24.1)) + transitivePeerDependencies: + - supports-color + '@svitejs/changesets-changelog-github-compact@1.1.0': dependencies: '@changesets/get-github-info': 0.5.2 @@ -4599,34 +4631,34 @@ snapshots: dependencies: '@types/node': 18.19.50 - '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.4.5))(eslint@9.6.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.6.3))(eslint@9.6.0)(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.4.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/parser': 8.4.0(eslint@9.6.0)(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/type-utils': 8.4.0(eslint@9.6.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.4.0 eslint: 9.6.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.4.5)': + '@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.5 eslint: 9.6.0 optionalDependencies: - typescript: 5.4.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4635,21 +4667,21 @@ snapshots: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/type-utils@8.4.0(eslint@9.6.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.6.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.4.5) - '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.6.3) debug: 4.3.5 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.4.0': {} - '@typescript-eslint/typescript-estree@8.4.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.4.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 @@ -4658,18 +4690,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.5) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.4.0(eslint@9.6.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.4.0(eslint@9.6.0)(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@typescript-eslint/scope-manager': 8.4.0 '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.6.3) eslint: 9.6.0 transitivePeerDependencies: - supports-color @@ -4736,6 +4768,10 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-typescript@1.4.13(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + acorn-walk@8.3.2: {} acorn@8.12.1: {} @@ -4912,8 +4948,6 @@ snapshots: cookie@0.6.0: {} - cookie@0.7.2: {} - cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 @@ -5090,7 +5124,7 @@ snapshots: minimatch: 9.0.5 semver: 7.6.3 - eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@4.2.19): + eslint-plugin-svelte@2.41.0(eslint@9.6.0)(svelte@5.1.9): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) '@jridgewell/sourcemap-codec': 1.5.0 @@ -5103,9 +5137,9 @@ snapshots: postcss-safe-parser: 6.0.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 semver: 7.6.3 - svelte-eslint-parser: 0.39.2(svelte@4.2.19) + svelte-eslint-parser: 0.39.2(svelte@5.1.9) optionalDependencies: - svelte: 4.2.19 + svelte: 5.1.9 transitivePeerDependencies: - ts-node @@ -5182,6 +5216,11 @@ snapshots: dependencies: estraverse: 5.3.0 + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -5839,10 +5878,10 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.1.2(prettier@3.1.1)(svelte@4.2.19): + prettier-plugin-svelte@3.1.2(prettier@3.1.1)(svelte@5.1.9): dependencies: prettier: 3.1.1 - svelte: 4.2.19 + svelte: 5.1.9 prettier@2.8.8: {} @@ -6040,12 +6079,6 @@ snapshots: sirv: 3.0.0 tinydate: 1.3.0 - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.28 - mrmime: 2.0.0 - totalist: 3.0.1 - sirv@3.0.0: dependencies: '@polka/url': 1.0.0-next.28 @@ -6122,7 +6155,7 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-eslint-parser@0.39.2(svelte@4.2.19): + svelte-eslint-parser@0.39.2(svelte@5.1.9): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -6130,15 +6163,19 @@ snapshots: postcss: 8.4.47 postcss-scss: 4.0.9(postcss@8.4.47) optionalDependencies: - svelte: 4.2.19 + svelte: 5.1.9 svelte-hmr@0.16.0(svelte@4.2.19): dependencies: svelte: 4.2.19 - svelte-parse-markup@0.1.5(svelte@4.2.19): + svelte-hmr@0.16.0(svelte@5.1.9): dependencies: - svelte: 4.2.19 + svelte: 5.1.9 + + svelte-parse-markup@0.1.5(svelte@5.1.9): + dependencies: + svelte: 5.1.9 svelte-preprocess@6.0.0(postcss-load-config@3.1.4(postcss@8.4.47))(postcss@8.4.47)(svelte@4.2.19)(typescript@5.4.5): dependencies: @@ -6174,6 +6211,22 @@ snapshots: magic-string: 0.30.11 periscopic: 3.1.0 + svelte@5.1.9: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.12.1 + acorn-typescript: 1.4.13(acorn@8.12.1) + aria-query: 5.3.2 + axobject-query: 4.1.0 + esm-env: 1.0.0 + esrap: 1.2.2 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.11 + zimmerframe: 1.1.2 + tapable@2.2.1: {} tar@6.2.1: @@ -6227,6 +6280,10 @@ snapshots: dependencies: typescript: 5.4.5 + ts-api-utils@1.3.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + ts-morph@24.0.0: dependencies: '@ts-morph/common': 0.25.0 @@ -6238,19 +6295,21 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.4.5): + typescript-eslint@8.4.0(eslint@9.6.0)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.4.5))(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/parser': 8.4.0(eslint@9.6.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.6.0)(typescript@5.6.3))(eslint@9.6.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.4.0(eslint@9.6.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.4.0(eslint@9.6.0)(typescript@5.6.3) optionalDependencies: - typescript: 5.4.5 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color typescript@5.4.5: {} + typescript@5.6.3: {} + ufo@1.5.3: {} undici-types@5.26.5: {}