diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index c77deda75..6a12cad56 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -201,6 +201,7 @@ module.exports = {
ignorePatterns: [
'packages/*/types/index.d.ts',
'packages/*/types/index.d.ts.map',
- 'packages/*/CHANGELOG.md'
+ 'packages/*/CHANGELOG.md',
+ 'packages/playground/treeshaking/compare/*'
]
};
diff --git a/packages/playground/treeshaking/.gitignore b/packages/playground/treeshaking/.gitignore
new file mode 100644
index 000000000..a547bf36d
--- /dev/null
+++ b/packages/playground/treeshaking/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/packages/playground/treeshaking/README.md b/packages/playground/treeshaking/README.md
new file mode 100644
index 000000000..47379abff
--- /dev/null
+++ b/packages/playground/treeshaking/README.md
@@ -0,0 +1,3 @@
+# Svelte + Vite
+
+and a little something 5
diff --git a/packages/playground/treeshaking/compare/diff.md b/packages/playground/treeshaking/compare/diff.md
new file mode 100644
index 000000000..d189b2a39
--- /dev/null
+++ b/packages/playground/treeshaking/compare/diff.md
@@ -0,0 +1,126 @@
+```diff
+diff --git a/packages/playground/treeshaking/compare/index_without_tree_shaking.js b/packages/playground/treeshaking/compare/index_with_tree_shaking.js
+index d873257d..a0bc9c7c 100644
+--- a/packages/playground/treeshaking/compare/index_without_tree_shaking.js
++++ b/packages/playground/treeshaking/compare/index_with_tree_shaking.js
+@@ -1,11 +1,10 @@
+ import {
+- c as comment,
+- i as if_block,
+ a as append,
+ t as template,
++ c as comment,
+ f as first_child,
+ m as mount
+-} from './vendor-CjCr5kEU.js';
++} from './vendor-CWxgFfOZ.js';
+ (function polyfill() {
+ const relList = document.createElement('link').relList;
+ if (relList && relList.supports && relList.supports('modulepreload')) {
+@@ -40,102 +39,15 @@ import {
+ fetch(link.href, fetchOpts);
+ }
+ })();
+-var root_2 = template(`Inner1-1`, 1);
+-var root_4 = template(`Inner1-2`, 1);
+-var root_5 = template(`Inner1-3`, 1);
+-var root_8 = template(`Inner2-1`, 1);
+-var root_10 = template(`Inner2-2`, 1);
+-var root_11 = template(`Inner2-3`, 1);
+-var root_12 = template(`
Hello!
`);
++var root = template(`Inner2-2`, 1);
+ function Counter($$anchor, $$props) {
+- var fragment = comment();
+- var node = first_child(fragment);
+- if_block(
+- node,
+- () => $$props.initialCount < 0,
+- ($$anchor2) => {
+- var fragment_1 = comment();
+- var node_1 = first_child(fragment_1);
+- if_block(
+- node_1,
+- () => $$props.initialCount < 0,
+- ($$anchor3) => {
+- var fragment_2 = root_2();
+- append($$anchor3, fragment_2);
+- },
+- ($$anchor3) => {
+- var fragment_3 = comment();
+- var node_2 = first_child(fragment_3);
+- if_block(
+- node_2,
+- () => $$props.initialCount > 0,
+- ($$anchor4) => {
+- var fragment_4 = root_4();
+- append($$anchor4, fragment_4);
+- },
+- ($$anchor4) => {
+- var fragment_5 = root_5();
+- append($$anchor4, fragment_5);
+- },
+- true
+- );
+- append($$anchor3, fragment_3);
+- }
+- );
+- append($$anchor2, fragment_1);
+- },
+- ($$anchor2) => {
+- var fragment_6 = comment();
+- var node_3 = first_child(fragment_6);
+- if_block(
+- node_3,
+- () => $$props.initialCount > 0,
+- ($$anchor3) => {
+- var fragment_7 = comment();
+- var node_4 = first_child(fragment_7);
+- if_block(
+- node_4,
+- () => $$props.initialCount < 0,
+- ($$anchor4) => {
+- var fragment_8 = root_8();
+- append($$anchor4, fragment_8);
+- },
+- ($$anchor4) => {
+- var fragment_9 = comment();
+- var node_5 = first_child(fragment_9);
+- if_block(
+- node_5,
+- () => $$props.initialCount > 0,
+- ($$anchor5) => {
+- var fragment_10 = root_10();
+- append($$anchor5, fragment_10);
+- },
+- ($$anchor5) => {
+- var fragment_11 = root_11();
+- append($$anchor5, fragment_11);
+- },
+- true
+- );
+- append($$anchor4, fragment_9);
+- }
+- );
+- append($$anchor3, fragment_7);
+- },
+- ($$anchor3) => {
+- var p = root_12();
+- append($$anchor3, p);
+- },
+- true
+- );
+- append($$anchor2, fragment_6);
+- }
+- );
++ var fragment = root();
+ append($$anchor, fragment);
+ }
+ function App($$anchor) {
+ var fragment = comment();
+ var node = first_child(fragment);
+- Counter(node, { initialCount: 1 });
++ Counter(node);
+ append($$anchor, fragment);
+ }
+ mount(App, {
+```
diff --git a/packages/playground/treeshaking/compare/index_with_tree_shaking.js b/packages/playground/treeshaking/compare/index_with_tree_shaking.js
new file mode 100644
index 000000000..a0bc9c7c8
--- /dev/null
+++ b/packages/playground/treeshaking/compare/index_with_tree_shaking.js
@@ -0,0 +1,56 @@
+import {
+ a as append,
+ t as template,
+ c as comment,
+ f as first_child,
+ m as mount
+} from './vendor-CWxgFfOZ.js';
+(function polyfill() {
+ const relList = document.createElement('link').relList;
+ if (relList && relList.supports && relList.supports('modulepreload')) {
+ return;
+ }
+ for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
+ processPreload(link);
+ }
+ new MutationObserver((mutations) => {
+ for (const mutation of mutations) {
+ if (mutation.type !== 'childList') {
+ continue;
+ }
+ for (const node of mutation.addedNodes) {
+ if (node.tagName === 'LINK' && node.rel === 'modulepreload') processPreload(node);
+ }
+ }
+ }).observe(document, { childList: true, subtree: true });
+ function getFetchOpts(link) {
+ const fetchOpts = {};
+ if (link.integrity) fetchOpts.integrity = link.integrity;
+ if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
+ if (link.crossOrigin === 'use-credentials') fetchOpts.credentials = 'include';
+ else if (link.crossOrigin === 'anonymous') fetchOpts.credentials = 'omit';
+ else fetchOpts.credentials = 'same-origin';
+ return fetchOpts;
+ }
+ function processPreload(link) {
+ if (link.ep) return;
+ link.ep = true;
+ const fetchOpts = getFetchOpts(link);
+ fetch(link.href, fetchOpts);
+ }
+})();
+var root = template(`Inner2-2`, 1);
+function Counter($$anchor, $$props) {
+ var fragment = root();
+ append($$anchor, fragment);
+}
+function App($$anchor) {
+ var fragment = comment();
+ var node = first_child(fragment);
+ Counter(node);
+ append($$anchor, fragment);
+}
+mount(App, {
+ props: {},
+ target: document.getElementById('app')
+});
diff --git a/packages/playground/treeshaking/compare/index_without_tree_shaking.js b/packages/playground/treeshaking/compare/index_without_tree_shaking.js
new file mode 100644
index 000000000..d873257d0
--- /dev/null
+++ b/packages/playground/treeshaking/compare/index_without_tree_shaking.js
@@ -0,0 +1,144 @@
+import {
+ c as comment,
+ i as if_block,
+ a as append,
+ t as template,
+ f as first_child,
+ m as mount
+} from './vendor-CjCr5kEU.js';
+(function polyfill() {
+ const relList = document.createElement('link').relList;
+ if (relList && relList.supports && relList.supports('modulepreload')) {
+ return;
+ }
+ for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
+ processPreload(link);
+ }
+ new MutationObserver((mutations) => {
+ for (const mutation of mutations) {
+ if (mutation.type !== 'childList') {
+ continue;
+ }
+ for (const node of mutation.addedNodes) {
+ if (node.tagName === 'LINK' && node.rel === 'modulepreload') processPreload(node);
+ }
+ }
+ }).observe(document, { childList: true, subtree: true });
+ function getFetchOpts(link) {
+ const fetchOpts = {};
+ if (link.integrity) fetchOpts.integrity = link.integrity;
+ if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
+ if (link.crossOrigin === 'use-credentials') fetchOpts.credentials = 'include';
+ else if (link.crossOrigin === 'anonymous') fetchOpts.credentials = 'omit';
+ else fetchOpts.credentials = 'same-origin';
+ return fetchOpts;
+ }
+ function processPreload(link) {
+ if (link.ep) return;
+ link.ep = true;
+ const fetchOpts = getFetchOpts(link);
+ fetch(link.href, fetchOpts);
+ }
+})();
+var root_2 = template(`Inner1-1`, 1);
+var root_4 = template(`Inner1-2`, 1);
+var root_5 = template(`Inner1-3`, 1);
+var root_8 = template(`Inner2-1`, 1);
+var root_10 = template(`Inner2-2`, 1);
+var root_11 = template(`Inner2-3`, 1);
+var root_12 = template(`Hello!
`);
+function Counter($$anchor, $$props) {
+ var fragment = comment();
+ var node = first_child(fragment);
+ if_block(
+ node,
+ () => $$props.initialCount < 0,
+ ($$anchor2) => {
+ var fragment_1 = comment();
+ var node_1 = first_child(fragment_1);
+ if_block(
+ node_1,
+ () => $$props.initialCount < 0,
+ ($$anchor3) => {
+ var fragment_2 = root_2();
+ append($$anchor3, fragment_2);
+ },
+ ($$anchor3) => {
+ var fragment_3 = comment();
+ var node_2 = first_child(fragment_3);
+ if_block(
+ node_2,
+ () => $$props.initialCount > 0,
+ ($$anchor4) => {
+ var fragment_4 = root_4();
+ append($$anchor4, fragment_4);
+ },
+ ($$anchor4) => {
+ var fragment_5 = root_5();
+ append($$anchor4, fragment_5);
+ },
+ true
+ );
+ append($$anchor3, fragment_3);
+ }
+ );
+ append($$anchor2, fragment_1);
+ },
+ ($$anchor2) => {
+ var fragment_6 = comment();
+ var node_3 = first_child(fragment_6);
+ if_block(
+ node_3,
+ () => $$props.initialCount > 0,
+ ($$anchor3) => {
+ var fragment_7 = comment();
+ var node_4 = first_child(fragment_7);
+ if_block(
+ node_4,
+ () => $$props.initialCount < 0,
+ ($$anchor4) => {
+ var fragment_8 = root_8();
+ append($$anchor4, fragment_8);
+ },
+ ($$anchor4) => {
+ var fragment_9 = comment();
+ var node_5 = first_child(fragment_9);
+ if_block(
+ node_5,
+ () => $$props.initialCount > 0,
+ ($$anchor5) => {
+ var fragment_10 = root_10();
+ append($$anchor5, fragment_10);
+ },
+ ($$anchor5) => {
+ var fragment_11 = root_11();
+ append($$anchor5, fragment_11);
+ },
+ true
+ );
+ append($$anchor4, fragment_9);
+ }
+ );
+ append($$anchor3, fragment_7);
+ },
+ ($$anchor3) => {
+ var p = root_12();
+ append($$anchor3, p);
+ },
+ true
+ );
+ append($$anchor2, fragment_6);
+ }
+ );
+ append($$anchor, fragment);
+}
+function App($$anchor) {
+ var fragment = comment();
+ var node = first_child(fragment);
+ Counter(node, { initialCount: 1 });
+ append($$anchor, fragment);
+}
+mount(App, {
+ props: {},
+ target: document.getElementById('app')
+});
diff --git a/packages/playground/treeshaking/index.html b/packages/playground/treeshaking/index.html
new file mode 100644
index 000000000..7d4f5f410
--- /dev/null
+++ b/packages/playground/treeshaking/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Svelte
+
+
+
+
+
+
diff --git a/packages/playground/treeshaking/jsconfig.json b/packages/playground/treeshaking/jsconfig.json
new file mode 100644
index 000000000..31e2eea42
--- /dev/null
+++ b/packages/playground/treeshaking/jsconfig.json
@@ -0,0 +1,32 @@
+{
+ "compilerOptions": {
+ "moduleResolution": "bundler",
+ "target": "ESNext",
+ "module": "ESNext",
+ /**
+ * svelte-preprocess cannot figure out whether you have
+ * a value or a type, so tell TypeScript to enforce using
+ * `import type` instead of `import` for Types.
+ */
+ "verbatimModuleSyntax": true,
+ "isolatedModules": true,
+ "resolveJsonModule": true,
+ /**
+ * To have warnings / errors of the Svelte compiler at the
+ * correct position, enable source maps by default.
+ */
+ "sourceMap": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ /**
+ * Typecheck JS in `.svelte` and `.js` files by default.
+ * Disable this if you'd like to use dynamic types.
+ */
+ "checkJs": true
+ },
+ /**
+ * Use global.d.ts instead of compilerOptions.types
+ * to avoid limiting type declarations.
+ */
+ "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
+}
diff --git a/packages/playground/treeshaking/package.json b/packages/playground/treeshaking/package.json
new file mode 100644
index 000000000..aa814b441
--- /dev/null
+++ b/packages/playground/treeshaking/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "playground-basic",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "@sveltejs/vite-plugin-svelte": "workspace:^",
+ "e2e-test-dep-svelte-module": "workspace:^",
+ "svelte": "^5.0.0-next.144",
+ "vite": "^5.2.12"
+ }
+}
diff --git a/packages/playground/treeshaking/public/vite.svg b/packages/playground/treeshaking/public/vite.svg
new file mode 100644
index 000000000..e7b8dfb1b
--- /dev/null
+++ b/packages/playground/treeshaking/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/playground/treeshaking/src/App.svelte b/packages/playground/treeshaking/src/App.svelte
new file mode 100644
index 000000000..b7276731a
--- /dev/null
+++ b/packages/playground/treeshaking/src/App.svelte
@@ -0,0 +1,5 @@
+
+
+
diff --git a/packages/playground/treeshaking/src/assets/svelte.svg b/packages/playground/treeshaking/src/assets/svelte.svg
new file mode 100644
index 000000000..c5e08481f
--- /dev/null
+++ b/packages/playground/treeshaking/src/assets/svelte.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/playground/treeshaking/src/lib/Counter.svelte b/packages/playground/treeshaking/src/lib/Counter.svelte
new file mode 100644
index 000000000..0aed470f9
--- /dev/null
+++ b/packages/playground/treeshaking/src/lib/Counter.svelte
@@ -0,0 +1,24 @@
+
+
+{#if initialCount < 0}
+ {#if initialCount < 0}
+ Inner1-1
+ {:else if initialCount > 0}
+ Inner1-2
+ {:else}
+ Inner1-3
+ {/if}
+{:else if initialCount > 0}
+ {#if initialCount < 0}
+ Inner2-1
+ {:else if initialCount > 0}
+ Inner2-2
+ {:else}
+ Inner2-3
+ {/if}
+{:else}
+ Hello!
+{/if}
diff --git a/packages/playground/treeshaking/src/main.js b/packages/playground/treeshaking/src/main.js
new file mode 100644
index 000000000..ffad176bf
--- /dev/null
+++ b/packages/playground/treeshaking/src/main.js
@@ -0,0 +1,7 @@
+import App from './App.svelte';
+import * as svelte from 'svelte';
+
+svelte.mount(App, {
+ props: {},
+ target: document.getElementById('app')
+});
diff --git a/packages/playground/treeshaking/src/vite-env.d.ts b/packages/playground/treeshaking/src/vite-env.d.ts
new file mode 100644
index 000000000..4078e7476
--- /dev/null
+++ b/packages/playground/treeshaking/src/vite-env.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/packages/playground/treeshaking/svelte.config.js b/packages/playground/treeshaking/svelte.config.js
new file mode 100644
index 000000000..251264976
--- /dev/null
+++ b/packages/playground/treeshaking/svelte.config.js
@@ -0,0 +1,12 @@
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+export default {
+ // Consult https://svelte.dev/docs#compile-time-svelte-preprocess
+ // for more information about preprocessors
+ preprocess: vitePreprocess(),
+ vitePlugin: {
+ experimental: {
+ componentLevelTreeShaking: true
+ }
+ }
+};
diff --git a/packages/playground/treeshaking/vite.config.js b/packages/playground/treeshaking/vite.config.js
new file mode 100644
index 000000000..683610a8d
--- /dev/null
+++ b/packages/playground/treeshaking/vite.config.js
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vite';
+import { svelte } from '@sveltejs/vite-plugin-svelte';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [svelte()],
+ build: {
+ minify: false,
+ rollupOptions: {
+ output: {
+ manualChunks(id) {
+ if (id.includes('node_modules')) {
+ return 'vendor';
+ }
+ }
+ }
+ }
+ }
+});
diff --git a/packages/vite-plugin-svelte/package.json b/packages/vite-plugin-svelte/package.json
index 153ab4b68..d1613f2d9 100644
--- a/packages/vite-plugin-svelte/package.json
+++ b/packages/vite-plugin-svelte/package.json
@@ -46,7 +46,8 @@
"deepmerge": "^4.3.1",
"kleur": "^4.1.5",
"magic-string": "^0.30.10",
- "vitefu": "^0.2.5"
+ "vitefu": "^0.2.5",
+ "zimmerframe": "^1.1.2"
},
"peerDependencies": {
"svelte": "^5.0.0-next.96 || ^5.0.0",
@@ -54,7 +55,9 @@
},
"devDependencies": {
"@types/debug": "^4.1.12",
+ "@types/estree": "^1.0.5",
"esbuild": "^0.21.4",
+ "rollup": "^4.18.0",
"sass": "^1.77.2",
"svelte": "^5.0.0-next.144",
"vite": "^5.2.12"
diff --git a/packages/vite-plugin-svelte/src/constants.js b/packages/vite-plugin-svelte/src/constants.js
new file mode 100644
index 000000000..15905d33c
--- /dev/null
+++ b/packages/vite-plugin-svelte/src/constants.js
@@ -0,0 +1,3 @@
+export const PLUGIN_NAME_VPS = 'vite-plugin-svelte';
+export const PLUGIN_NAME_VPS_MODULE = 'vite-plugin-svelte-module';
+export const PLUGIN_NAME_VPS_TRAVERSER = 'vite-plugin-svelte-traverser';
diff --git a/packages/vite-plugin-svelte/src/index.js b/packages/vite-plugin-svelte/src/index.js
index e458689f9..1d860a8a3 100644
--- a/packages/vite-plugin-svelte/src/index.js
+++ b/packages/vite-plugin-svelte/src/index.js
@@ -17,6 +17,10 @@ import { saveSvelteMetadata } from './utils/optimizer.js';
import { VitePluginSvelteCache } from './utils/vite-plugin-svelte-cache.js';
import { loadRaw } from './utils/load-raw.js';
import * as svelteCompiler from 'svelte/compiler';
+import * as constants from './constants.js';
+import { rollup } from 'rollup';
+import { createTreeShakePreprocess } from './utils/tree-shaking/phase1.js';
+import { DYNAMIC } from './utils/tree-shaking/shared.js';
/**
* @param {Partial} [inlineOptions]
@@ -37,15 +41,23 @@ export function svelte(inlineOptions) {
let options;
/** @type {import('vite').ResolvedConfig} */
let viteConfig;
+ /** @type {import('./types/tree-shaking.js').TreeShakePreprocess} */
+ let treeShakePreprocess;
/** @type {import('./types/compile.d.ts').CompileSvelte} */
let compileSvelte;
/* eslint-enable no-unused-vars */
/** @type {import('./types/plugin-api.d.ts').PluginAPI} */
const api = {};
+ /** @type {Record} */
+ const propsByComponentId = {};
+ /** @type {'tree-shake-traverser' | 'main' | undefined} */
+ let buildPhase;
+ /** @type {string[]} */
+ const svelteFileIds = [];
/** @type {import('vite').Plugin[]} */
const plugins = [
{
- name: 'vite-plugin-svelte',
+ name: constants.PLUGIN_NAME_VPS,
// make sure our resolver runs before vite internal resolver to resolve svelte field correctly
enforce: 'pre',
api,
@@ -69,13 +81,28 @@ export function svelte(inlineOptions) {
patchResolvedViteConfig(config, options);
requestParser = buildIdParser(options);
compileSvelte = createCompileSvelte();
+ treeShakePreprocess = createTreeShakePreprocess();
viteConfig = config;
// TODO deep clone to avoid mutability from outside?
api.options = options;
log.debug('resolved options', options, 'config');
},
- async buildStart() {
+ async buildStart(rollupOptions) {
+ if (viteConfig.isProduction && options.experimental?.componentLevelTreeShaking) {
+ if (!buildPhase) {
+ buildPhase = 'tree-shake-traverser';
+ const bundle = await rollup({
+ ...rollupOptions,
+ cache: false,
+ output: []
+ });
+ await bundle.close();
+ }
+ } else {
+ buildPhase = 'main';
+ }
+
if (!options.prebundleSvelteLibraries) return;
const isSvelteMetadataChanged = await saveSvelteMetadata(viteConfig.cacheDir, options);
if (isSvelteMetadataChanged) {
@@ -94,6 +121,9 @@ export function svelte(inlineOptions) {
const ssr = !!opts?.ssr;
const svelteRequest = requestParser(id, !!ssr);
if (svelteRequest) {
+ if (buildPhase === 'tree-shake-traverser') {
+ svelteFileIds.push(id);
+ }
const { filename, query, raw } = svelteRequest;
if (raw) {
const code = await loadRaw(svelteRequest, compileSvelte, options);
@@ -140,12 +170,35 @@ export function svelte(inlineOptions) {
async transform(code, id, opts) {
const ssr = !!opts?.ssr;
const svelteRequest = requestParser(id, ssr);
+
if (!svelteRequest || svelteRequest.query.type === 'style' || svelteRequest.raw) {
return;
}
+
let compileData;
try {
- compileData = await compileSvelte(svelteRequest, code, options);
+ if (buildPhase === 'tree-shake-traverser') {
+ const { componentUsage } = await treeShakePreprocess(
+ svelteRequest,
+ code,
+ id,
+ options,
+ this.resolve
+ );
+
+ for (const [componentId, props] of Object.entries(componentUsage)) {
+ propsByComponentId[componentId] ??= [];
+ propsByComponentId[componentId].push(...props);
+ }
+ }
+
+ compileData = await compileSvelte(
+ svelteRequest,
+ code,
+ options,
+ id,
+ propsByComponentId[id] ?? []
+ );
} catch (e) {
cache.setError(svelteRequest, e);
throw toRollupError(e, options);
@@ -184,10 +237,13 @@ export function svelte(inlineOptions) {
},
async buildEnd() {
await options.stats?.finishAll();
+ if (buildPhase === 'tree-shake-traverser') {
+ buildPhase = 'main';
+ }
}
},
{
- name: 'vite-plugin-svelte-module',
+ name: constants.PLUGIN_NAME_VPS_MODULE,
enforce: 'post',
async configResolved() {
moduleRequestParser = buildModuleIdParser(options);
@@ -211,6 +267,25 @@ export function svelte(inlineOptions) {
}
}
},
+ {
+ name: constants.PLUGIN_NAME_VPS_TRAVERSER,
+ enforce: 'post',
+ async moduleParsed(moduleInfo) {
+ if (buildPhase !== 'tree-shake-traverser') return;
+
+ // If a Svelte file is imported from a JS file, we recognize the props as dynamic.
+ // This is because importing a Svelte file from a JS file usually indicates the user wants to perform a complex operation.
+ // TODO: Handle main.js
+ if (!svelteFileIds.includes(moduleInfo.id)) {
+ for (const importId of moduleInfo.importedIds) {
+ if (svelteFileIds.includes(importId)) {
+ propsByComponentId[moduleInfo.id] ??= [];
+ propsByComponentId[moduleInfo.id].push(DYNAMIC);
+ }
+ }
+ }
+ }
+ },
svelteInspector()
];
return plugins;
diff --git a/packages/vite-plugin-svelte/src/public.d.ts b/packages/vite-plugin-svelte/src/public.d.ts
index 63c053378..7821f9743 100644
--- a/packages/vite-plugin-svelte/src/public.d.ts
+++ b/packages/vite-plugin-svelte/src/public.d.ts
@@ -172,6 +172,13 @@ interface ExperimentalOptions {
disableSvelteResolveWarnings?: boolean;
compileModule?: CompileModuleOptions;
+
+ /**
+ * Enable component-level tree shaking.
+ * If true, the plugin performs dead code elimination (DCE) on Svelte components.
+ * WARNING: This process traverses entire files, significantly increasing build time.
+ */
+ componentLevelTreeShaking?: boolean;
}
interface CompileModuleOptions {
diff --git a/packages/vite-plugin-svelte/src/types/compile.d.ts b/packages/vite-plugin-svelte/src/types/compile.d.ts
index d6ba48e0f..bdab477b3 100644
--- a/packages/vite-plugin-svelte/src/types/compile.d.ts
+++ b/packages/vite-plugin-svelte/src/types/compile.d.ts
@@ -1,11 +1,14 @@
import type { Processed, CompileResult } from 'svelte/compiler';
import type { SvelteRequest } from './id.d.ts';
import type { ResolvedOptions } from './options.d.ts';
+import type { Props } from './tree-shaking.d.ts';
export type CompileSvelte = (
svelteRequest: SvelteRequest,
code: string,
- options: Partial
+ options: Partial,
+ id: string,
+ propsUsage: Props[]
) => Promise;
export interface Code {
diff --git a/packages/vite-plugin-svelte/src/types/tree-shaking.d.ts b/packages/vite-plugin-svelte/src/types/tree-shaking.d.ts
new file mode 100644
index 000000000..de9b02b56
--- /dev/null
+++ b/packages/vite-plugin-svelte/src/types/tree-shaking.d.ts
@@ -0,0 +1,22 @@
+import type { SvelteRequest } from './id.d.ts';
+import type { ResolvedOptions } from './options.d.ts';
+import type { PluginContext } from 'rollup';
+import type { SourceMap } from 'magic-string';
+
+export type TreeShakePreprocess = (
+ svelteRequest: SvelteRequest,
+ code: string,
+ id: string,
+ options: Partial,
+ resolve: PluginContext['resolve']
+) => Promise<{
+ dependencies: string[];
+ map: string | object | undefined;
+ componentUsage: Record;
+}>;
+
+type DYNAMIC = symbol;
+export type ComponentId = string;
+export type Props = Record | DYNAMIC;
+type PropName = string;
+type PropValue = any;
diff --git a/packages/vite-plugin-svelte/src/utils/compile.js b/packages/vite-plugin-svelte/src/utils/compile.js
index 12e240f0c..a9c6159b4 100644
--- a/packages/vite-plugin-svelte/src/utils/compile.js
+++ b/packages/vite-plugin-svelte/src/utils/compile.js
@@ -9,6 +9,7 @@ import {
} from './preprocess.js';
import { mapToRelative } from './sourcemaps.js';
import { enhanceCompileError } from './error.js';
+import { treeShakeSvelteComponent } from './tree-shaking/phase2.js';
// TODO this is a patched version of https://github.com/sveltejs/vite-plugin-svelte/pull/796/files#diff-3bce0b33034aad4b35ca094893671f7e7ddf4d27254ae7b9b0f912027a001b15R10
// which is closer to the other regexes in at least not falling into commented script
@@ -24,7 +25,7 @@ export function createCompileSvelte() {
let stats;
const devStylePreprocessor = createInjectScopeEverythingRulePreprocessorGroup();
/** @type {import('../types/compile.d.ts').CompileSvelte} */
- return async function compileSvelte(svelteRequest, code, options) {
+ return async function compileSvelte(svelteRequest, code, options, id, propsUsage) {
const { filename, normalizedFilename, cssId, ssr, raw } = svelteRequest;
const { emitCss = true } = options;
/** @type {string[]} */
@@ -103,13 +104,20 @@ export function createCompileSvelte() {
if (typeof preprocessed?.map === 'object') {
mapToRelative(preprocessed?.map, filename);
}
+
+ let finalCode = preprocessed ? preprocessed.code : code;
+
+ if (options.experimental?.componentLevelTreeShaking) {
+ finalCode = treeShakeSvelteComponent(finalCode, propsUsage);
+ }
+
if (raw && svelteRequest.query.type === 'preprocessed') {
// @ts-expect-error shortcut
return /** @type {import('../types/compile.d.ts').CompileData} */ {
preprocessed: preprocessed ?? { code }
};
}
- const finalCode = preprocessed ? preprocessed.code : code;
+
const dynamicCompileOptions = await options?.dynamicCompileOptions?.({
filename,
code: finalCode,
diff --git a/packages/vite-plugin-svelte/src/utils/tree-shaking/phase1.js b/packages/vite-plugin-svelte/src/utils/tree-shaking/phase1.js
new file mode 100644
index 000000000..ef9377c37
--- /dev/null
+++ b/packages/vite-plugin-svelte/src/utils/tree-shaking/phase1.js
@@ -0,0 +1,158 @@
+/**
+ * Traverse Svelte component files to collect Svelte component usage information for tree shaking.
+ */
+
+import * as svelte from 'svelte/compiler';
+import { checkPreprocessDependencies } from '../preprocess.js';
+import { mapToRelative } from '../sourcemaps.js';
+import { walk } from 'zimmerframe';
+import { DYNAMIC } from './shared.js';
+
+/**
+ * @param {string} id
+ * @param {import ('estree').ImportDeclaration} node
+ * @param {import('rollup').PluginContext["resolve"]} resolve
+ * @returns {Promise<{ id: import('rollup').ResolvedId | null, symbol: string} | undefined>}
+ */
+async function resolveImport(id, node, resolve) {
+ const { source, specifiers } = node;
+ const { value } = source;
+ if (typeof value !== 'string' || !value.endsWith('.svelte')) {
+ return;
+ }
+
+ const resolved = await resolve(value, id);
+ const defaultSpecifier = specifiers.find(
+ (specifier) => specifier.type === 'ImportDefaultSpecifier'
+ );
+ if (defaultSpecifier) {
+ return { id: resolved, symbol: defaultSpecifier.local.name };
+ }
+ return undefined;
+}
+
+/**
+ * @param {string} id
+ * @param {string} svelteCode
+ * @param {import('rollup').PluginContext["resolve"]} resolve
+ * @returns {Promise>}
+ */
+async function traverse(id, svelteCode, resolve) {
+ const ast = svelte.parse(svelteCode, { modern: true });
+
+ /** @type {ReturnType[]} */
+ const resolvedImportPromises = [];
+
+ /**
+ * @param {any} script
+ */
+ async function walkScript(script) {
+ walk(script, /** @type {{imports: string[]}} */ ({ imports: [] }), {
+ ImportDeclaration(/** @type {import('estree').ImportDeclaration} */ node, { next }) {
+ resolvedImportPromises.push(resolveImport(id, node, resolve));
+ next();
+ }
+ });
+ }
+
+ ast.instance && walkScript(ast.instance);
+ ast.module && walkScript(ast.module);
+
+ /** @type {Record} */
+ const symbolToId = {};
+ for (const result of await Promise.all(resolvedImportPromises)) {
+ if (result && result.id) {
+ symbolToId[result.symbol] = result.id;
+ }
+ }
+
+ /** @type {Record} */
+ const result = {};
+
+ walk(
+ /** @type {any} */ (ast.fragment),
+ {},
+ {
+ Component(node, { next }) {
+ const componentSymbol = node.name;
+ /** @type {import('../../types/tree-shaking.js').Props} */
+ const props = {};
+ for (const attribute of node.attributes) {
+ if (attribute.type === 'Attribute') {
+ const { name } = attribute;
+ for (const value of attribute.value) {
+ if (value.type === 'Text') {
+ props[name] = value.raw;
+ } else if (value.type === 'ExpressionTag') {
+ const { expression } = value;
+ if (expression.type === 'Literal') {
+ props[name] = expression.value;
+ } else {
+ props[name] = DYNAMIC;
+ }
+ }
+ }
+ }
+ }
+
+ const componentId = symbolToId[componentSymbol];
+ if (componentId) {
+ result[componentId.id] ??= [];
+ result[componentId.id].push(props);
+ }
+ next();
+ }
+ }
+ );
+
+ return result;
+}
+
+/**
+ * @returns {import('../../types/tree-shaking.js').TreeShakePreprocess}
+ */
+export function createTreeShakePreprocess() {
+ /** @type {import('../../types/tree-shaking.js').TreeShakePreprocess} */
+ return async function treeShakePreprocess(svelteRequest, code, id, options, resolve) {
+ /** @type {string[]} */
+ const dependencies = [];
+ /** @type {import('svelte/compiler').Warning[]} */
+ const warnings = [];
+
+ let preprocessed;
+ if (svelteRequest) {
+ const { filename } = svelteRequest;
+ const preprocessors = options.preprocess;
+ if (preprocessors) {
+ try {
+ preprocessed = await svelte.preprocess(code, preprocessors, { filename }); // full filename here so postcss works
+ } catch (e) {
+ e.message = `Error while preprocessing ${filename}${e.message ? ` - ${e.message}` : ''}`;
+ throw e;
+ }
+
+ if (preprocessed.dependencies?.length) {
+ const checked = checkPreprocessDependencies(filename, preprocessed.dependencies);
+ if (checked.warnings.length) {
+ warnings.push(...checked.warnings);
+ }
+ if (checked.dependencies.length) {
+ dependencies.push(...checked.dependencies);
+ }
+ }
+ }
+ if (typeof preprocessed?.map === 'object') {
+ mapToRelative(preprocessed?.map, filename);
+ }
+ }
+
+ const finalCode = preprocessed ? preprocessed.code : code;
+ const componentUsage = await traverse(id, finalCode, resolve);
+
+ return {
+ dependencies,
+ map: preprocessed?.map,
+ componentUsage
+ };
+ };
+}
diff --git a/packages/vite-plugin-svelte/src/utils/tree-shaking/phase2.js b/packages/vite-plugin-svelte/src/utils/tree-shaking/phase2.js
new file mode 100644
index 000000000..99ebd1bd1
--- /dev/null
+++ b/packages/vite-plugin-svelte/src/utils/tree-shaking/phase2.js
@@ -0,0 +1,257 @@
+/**
+ * Perform dead code elimination for Svelte components using props value information.
+ * To avoid creating a sourcemap, this process replaces dead code with spaces.
+ */
+
+import { parse } from 'svelte/compiler';
+import { walk } from 'zimmerframe';
+import MagicString from 'magic-string';
+import { DYNAMIC } from './shared.js';
+
+/**
+ * @param {string} svelteCode
+ * @param {import('../../types/tree-shaking.js').Props[]} propsUsage
+ * @returns {string}
+ */
+export function treeShakeSvelteComponent(svelteCode, propsUsage) {
+ const magicString = new MagicString(svelteCode);
+ const ast = parse(svelteCode, { modern: true });
+ /** @type {{ start: number; end: number }[]} */
+ const removedRanges = [];
+
+ /**
+ * @param {number} start
+ * @param {number} end
+ * @returns {string}
+ */
+ function asSpace(start, end) {
+ return svelteCode.substring(start, end).replace(/\S/g, ' ');
+ }
+
+ /**
+ * @param {number} start
+ * @param {number} end
+ */
+ function remove(start, end) {
+ for (const removedRange of removedRanges) {
+ if (start >= removedRange.start && end <= removedRange.end) {
+ return;
+ }
+ }
+ removedRanges.push({ start, end });
+ magicString.update(start, end, asSpace(start, end));
+ }
+
+ walk(
+ /** @type {any} */ (ast.fragment),
+ {},
+ {
+ IfBlock(node, { next }) {
+ const { test } = node;
+ const evaluated = propsUsage.map((props) => {
+ return evaluateExpression(test, props);
+ });
+
+ let hasTrue = false;
+ let hasFalse = false;
+ let hasDynamic = false;
+ for (const v of evaluated) {
+ if (v === true) hasTrue = true;
+ if (v === false) hasFalse = true;
+ if (v === DYNAMIC) hasDynamic = true;
+ }
+
+ if (!hasDynamic) {
+ const { consequent, alternate } = node;
+ const ifBodyStart = consequent.nodes[0].start;
+ const ifBodyEnd = consequent.nodes[consequent.nodes.length - 1].end;
+ if (hasTrue && !hasFalse) {
+ // Remove {#if xxx}
+ remove(node.start, ifBodyStart);
+ // Remove after elseif, else blocks and {/if}
+ remove(ifBodyEnd, node.end);
+
+ node.alternate = undefined;
+ } else if (!hasTrue && hasFalse) {
+ // Remove {#if xxx}
+ remove(node.start, ifBodyStart);
+
+ // Remove consequent block
+ remove(ifBodyStart, ifBodyEnd);
+ const alternateFirstChild = alternate.nodes[0];
+
+ if (alternateFirstChild.type === 'IfBlock') {
+ const elseIfTestStart = alternateFirstChild.test.start;
+ // Replace `{:else if` to `{#if`
+ magicString.update(
+ ifBodyEnd,
+ elseIfTestStart,
+ svelteCode.substring(ifBodyEnd, elseIfTestStart).replace('{:else if', ' {#if')
+ );
+ }
+
+ node.consequent = undefined;
+ }
+ }
+
+ next();
+ }
+ }
+ );
+
+ return magicString.toString();
+}
+
+/**
+ * @param {import('estree').Expression} node
+ * @param {import('../../types/tree-shaking.js').Props} props
+ * @returns {boolean | typeof DYNAMIC}
+ */
+function evaluateExpression(node, props) {
+ if (node.type === 'LogicalExpression') {
+ return evaluateLogicalExpression(node, props);
+ }
+ if (node.type === 'BinaryExpression') {
+ return evaluateBinaryExpression(node, props);
+ }
+ return DYNAMIC;
+}
+
+/**
+ * @param {import('estree').LogicalExpression} node
+ * @param {import('../../types/tree-shaking.js').Props} props
+ * @returns {boolean | typeof DYNAMIC}
+ */
+function evaluateLogicalExpression(node, props) {
+ const { left, operator, right } = node;
+ const leftValue = getValue(left, props);
+ if (leftValue === DYNAMIC) {
+ return DYNAMIC;
+ }
+ const rightValue = getValue(right, props);
+ if (rightValue === DYNAMIC) {
+ return DYNAMIC;
+ }
+ return evaluateOperator(
+ evaluateExpression(leftValue, props),
+ operator,
+ evaluateExpression(rightValue, props)
+ );
+}
+
+/**
+ * @param {import('estree').BinaryExpression} node
+ * @param {import('../../types/tree-shaking.js').Props} props
+ * @returns {boolean | typeof DYNAMIC}
+ */
+function evaluateBinaryExpression(node, props) {
+ const { left, operator, right } = node;
+ const leftValue = getValue(left, props);
+ if (leftValue === DYNAMIC) {
+ return DYNAMIC;
+ }
+ const rightValue = getValue(right, props);
+ if (rightValue === DYNAMIC) {
+ return DYNAMIC;
+ }
+
+ return evaluate(leftValue, operator, rightValue);
+}
+
+/**
+ * @param {import('estree').Expression} node
+ * @param {import('../../types/tree-shaking.js').Props} props
+ * @returns {any | typeof DYNAMIC}
+ */
+function getValue(node, props) {
+ if (node.type === 'Literal') {
+ return node.value;
+ }
+ if (node.type === 'Identifier') {
+ if (props === DYNAMIC) {
+ return DYNAMIC;
+ }
+ if (typeof props !== 'symbol') {
+ return props[node.name] ?? DYNAMIC;
+ }
+ return DYNAMIC;
+ }
+}
+
+/**
+ * @param {any} left
+ * @param {import ('estree').LogicalOperator} operator
+ * @param {any} right
+ * @returns {boolean | typeof DYNAMIC}
+ */
+function evaluateOperator(left, operator, right) {
+ switch (operator) {
+ case '&&':
+ return left && right;
+ case '||':
+ return left || right;
+ default:
+ return DYNAMIC;
+ }
+}
+
+/**
+ * @param {any} left
+ * @param {import ('estree').BinaryOperator} operator
+ * @param {any} right
+ * @returns {boolean | typeof DYNAMIC}
+ */
+function evaluate(left, operator, right) {
+ try {
+ switch (operator) {
+ case '==':
+ return left == right;
+ case '!=':
+ return left != right;
+ case '===':
+ return left === right;
+ case '!==':
+ return left !== right;
+ case '<':
+ return left < right;
+ case '<=':
+ return left <= right;
+ case '>':
+ return left > right;
+ case '>=':
+ return left >= right;
+ case '<<':
+ return Boolean(left << right);
+ case '>>':
+ return Boolean(left >> right);
+ case '>>>':
+ return Boolean(left >>> right);
+ case '+':
+ return left + right;
+ case '-':
+ return Boolean(left - right);
+ case '*':
+ return Boolean(left * right);
+ case '/':
+ return Boolean(left / right);
+ case '%':
+ return Boolean(left % right);
+ case '**':
+ return Boolean(left ** right);
+ case '|':
+ return Boolean(left | right);
+ case '^':
+ return Boolean(left ^ right);
+ case '&':
+ return Boolean(left & right);
+ case 'in':
+ return left in right;
+ case 'instanceof':
+ return left instanceof right;
+ default:
+ return DYNAMIC;
+ }
+ } catch (e) {
+ return DYNAMIC;
+ }
+}
diff --git a/packages/vite-plugin-svelte/src/utils/tree-shaking/shared.js b/packages/vite-plugin-svelte/src/utils/tree-shaking/shared.js
new file mode 100644
index 000000000..5368d5cfc
--- /dev/null
+++ b/packages/vite-plugin-svelte/src/utils/tree-shaking/shared.js
@@ -0,0 +1 @@
+export const DYNAMIC = Symbol('DYNAMIC');
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2840d0bb3..d0014b11f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,7 +30,7 @@ importers:
version: 20.12.13
'@typescript-eslint/eslint-plugin':
specifier: ^7.11.0
- version: 7.11.0(@typescript-eslint/parser@7.11.0)(eslint@8.57.0)(typescript@5.4.5)
+ version: 7.11.0(@typescript-eslint/parser@7.11.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/parser':
specifier: ^7.11.0
version: 7.11.0(eslint@8.57.0)(typescript@5.4.5)
@@ -57,7 +57,7 @@ importers:
version: 17.7.0(eslint@8.57.0)
eslint-plugin-prettier:
specifier: ^5.1.3
- version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5)
+ version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5)
eslint-plugin-svelte:
specifier: ^2.39.0
version: 2.39.0(eslint@8.57.0)(svelte@5.0.0-next.144)
@@ -105,7 +105,7 @@ importers:
version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@20.12.13)
+ version: 1.6.0(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests:
devDependencies:
@@ -117,7 +117,7 @@ importers:
version: 1.2.2
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@20.12.13)
+ version: 1.6.0(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/_test_dependencies/cjs-and-esm: {}
@@ -139,7 +139,7 @@ importers:
dependencies:
e2e-test-dep-cjs-only:
specifier: file:../cjs-only
- version: file:packages/e2e-tests/_test_dependencies/cjs-only
+ version: link:../cjs-only
packages/e2e-tests/_test_dependencies/svelte-hybrid:
dependencies:
@@ -148,7 +148,7 @@ importers:
version: 20.12.13
e2e-test-dep-cjs-only:
specifier: file:../cjs-only
- version: file:packages/e2e-tests/_test_dependencies/cjs-only
+ version: link:../cjs-only
packages/e2e-tests/_test_dependencies/svelte-module: {}
@@ -156,19 +156,19 @@ importers:
dependencies:
e2e-test-dep-cjs-and-esm:
specifier: file:../cjs-and-esm
- version: file:packages/e2e-tests/_test_dependencies/cjs-and-esm
+ version: link:../cjs-and-esm
e2e-test-dep-scss-only:
specifier: file:../scss-only
- version: file:packages/e2e-tests/_test_dependencies/scss-only
+ version: link:../scss-only
e2e-test-dep-svelte-simple:
specifier: file:../svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../svelte-simple
packages/e2e-tests/_test_dependencies/svelte-simple:
dependencies:
e2e-test-dep-cjs-only:
specifier: file:../cjs-only
- version: file:packages/e2e-tests/_test_dependencies/cjs-only
+ version: link:../cjs-only
packages/e2e-tests/_test_dependencies/types-only: {}
@@ -178,7 +178,7 @@ importers:
dependencies:
e2e-test-dep-svelte-simple:
specifier: file:../_test_dependencies/svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../_test_dependencies/svelte-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -197,16 +197,16 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss-load-config@5.1.0)(postcss@8.4.38)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/configfile-custom:
dependencies:
e2e-test-dep-svelte-simple:
specifier: file:../_test_dependencies/svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../_test_dependencies/svelte-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -216,13 +216,13 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/configfile-esm:
dependencies:
e2e-test-dep-svelte-simple:
specifier: file:../_test_dependencies/svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../_test_dependencies/svelte-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -232,10 +232,10 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/css-dev-sourcemap:
devDependencies:
@@ -250,7 +250,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/custom-extensions:
devDependencies:
@@ -262,25 +262,25 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/dependencies:
dependencies:
e2e-test-dep-cjs-and-esm:
specifier: file:../_test_dependencies/cjs-and-esm
- version: file:packages/e2e-tests/_test_dependencies/cjs-and-esm
+ version: link:../_test_dependencies/cjs-and-esm
e2e-test-dep-cjs-only:
specifier: file:../_test_dependencies/cjs-only
- version: file:packages/e2e-tests/_test_dependencies/cjs-only
+ version: link:../_test_dependencies/cjs-only
e2e-test-dep-esm-only:
specifier: file:../_test_dependencies/esm-only
- version: file:packages/e2e-tests/_test_dependencies/esm-only
+ version: link:../_test_dependencies/esm-only
e2e-test-dep-index-only:
specifier: file:../_test_dependencies/index-only
- version: file:packages/e2e-tests/_test_dependencies/index-only
+ version: link:../_test_dependencies/index-only
e2e-test-dep-scss-only:
specifier: file:../_test_dependencies/scss-only
- version: file:packages/e2e-tests/_test_dependencies/scss-only
+ version: link:../_test_dependencies/scss-only
packages/e2e-tests/dynamic-compile-options:
devDependencies:
@@ -292,7 +292,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/env:
devDependencies:
@@ -304,20 +304,20 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/hmr:
dependencies:
e2e-test-dep-svelte-simple:
specifier: file:../_test_dependencies/svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../_test_dependencies/svelte-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
version: link:../../vite-plugin-svelte
e2e-test-dep-vite-plugins:
specifier: file:../_test_dependencies/vite-plugins
- version: file:packages/e2e-tests/_test_dependencies/vite-plugins
+ version: link:../_test_dependencies/vite-plugins
node-fetch:
specifier: ^3.3.2
version: 3.3.2
@@ -326,7 +326,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/import-queries:
devDependencies:
@@ -341,13 +341,13 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/inspector-kit:
devDependencies:
'@sveltejs/kit':
specifier: ^2.5.10
- version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
+ version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
version: link:../../vite-plugin-svelte
@@ -356,7 +356,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/inspector-vite:
devDependencies:
@@ -368,16 +368,16 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/kit-node:
devDependencies:
'@sveltejs/adapter-node':
specifier: ^5.0.1
- version: 5.0.1(@sveltejs/kit@2.5.10)
+ version: 5.0.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)))
'@sveltejs/kit':
specifier: ^2.5.10
- version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
+ version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
'@sveltejs/package':
specifier: ^2.3.1
version: 2.3.1(svelte@5.0.0-next.144)(typescript@5.4.5)
@@ -386,16 +386,16 @@ importers:
version: link:../../vite-plugin-svelte
e2e-test-dep-svelte-api-only:
specifier: file:../_test_dependencies/svelte-api-only
- version: file:packages/e2e-tests/_test_dependencies/svelte-api-only
+ version: link:../_test_dependencies/svelte-api-only
e2e-test-dep-vite-plugins:
specifier: file:../_test_dependencies/vite-plugins
- version: file:packages/e2e-tests/_test_dependencies/vite-plugins
+ version: link:../_test_dependencies/vite-plugins
svelte:
specifier: ^5.0.0-next.144
version: 5.0.0-next.144
svelte-check:
specifier: ^3.8.0
- version: 3.8.0(postcss@8.4.38)(svelte@5.0.0-next.144)
+ version: 3.8.0(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)
svelte-i18n:
specifier: ^4.0.0
version: 4.0.0(svelte@5.0.0-next.144)
@@ -407,16 +407,16 @@ importers:
version: 5.4.5
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/package-json-svelte-field:
dependencies:
e2e-test-dep-svelte-hybrid:
specifier: file:../_test_dependencies/svelte-hybrid
- version: file:packages/e2e-tests/_test_dependencies/svelte-hybrid
+ version: link:../_test_dependencies/svelte-hybrid
e2e-test-dep-svelte-nested:
specifier: file:../_test_dependencies/svelte-nested
- version: file:packages/e2e-tests/_test_dependencies/svelte-nested
+ version: link:../_test_dependencies/svelte-nested
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -429,28 +429,28 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/prebundle-svelte-deps:
dependencies:
e2e-test-dep-svelte-api-only:
specifier: file:../_test_dependencies/svelte-api-only
- version: file:packages/e2e-tests/_test_dependencies/svelte-api-only
+ version: link:../_test_dependencies/svelte-api-only
e2e-test-dep-svelte-exports-simple:
specifier: file:../_test_dependencies/svelte-exports-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-exports-simple
+ version: link:../_test_dependencies/svelte-exports-simple
e2e-test-dep-svelte-hybrid:
specifier: file:../_test_dependencies/svelte-hybrid
- version: file:packages/e2e-tests/_test_dependencies/svelte-hybrid
+ version: link:../_test_dependencies/svelte-hybrid
e2e-test-dep-svelte-module:
specifier: file:../_test_dependencies/svelte-module
- version: file:packages/e2e-tests/_test_dependencies/svelte-module
+ version: link:../_test_dependencies/svelte-module
e2e-test-dep-svelte-nested:
specifier: file:../_test_dependencies/svelte-nested
- version: file:packages/e2e-tests/_test_dependencies/svelte-nested
+ version: link:../_test_dependencies/svelte-nested
e2e-test-dep-svelte-simple:
specifier: file:../_test_dependencies/svelte-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-simple
+ version: link:../_test_dependencies/svelte-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -463,10 +463,10 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/preprocess-with-vite:
devDependencies:
@@ -484,13 +484,13 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/resolve-exports-svelte:
dependencies:
e2e-test-dep-svelte-exports-simple:
specifier: file:../_test_dependencies/svelte-exports-simple
- version: file:packages/e2e-tests/_test_dependencies/svelte-exports-simple
+ version: link:../_test_dependencies/svelte-exports-simple
devDependencies:
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
@@ -500,7 +500,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/svelte-preprocess:
devDependencies:
@@ -515,13 +515,13 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
typescript:
specifier: ^5.4.5
version: 5.4.5
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/e2e-tests/ts-type-import:
devDependencies:
@@ -539,7 +539,7 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
@@ -575,7 +575,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground: {}
@@ -592,7 +592,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/big:
devDependencies:
@@ -604,7 +604,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/big-component-library:
dependencies:
@@ -629,19 +629,19 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/big-component-library-kit:
devDependencies:
'@sveltejs/adapter-auto':
specifier: 3.2.1
- version: 3.2.1(@sveltejs/kit@2.5.10)
+ version: 3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)))
'@sveltejs/kit':
specifier: ^2.5.10
- version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
+ version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
version: link:../../vite-plugin-svelte
@@ -662,16 +662,16 @@ importers:
version: 5.0.0-next.144
svelte-check:
specifier: ^3.8.0
- version: 3.8.0(postcss@8.4.38)(svelte@5.0.0-next.144)
+ version: 3.8.0(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
typescript:
specifier: ^5.4.5
version: 5.4.5
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/big-component-library-vite-ssr:
dependencies:
@@ -708,10 +708,10 @@ importers:
version: 5.0.0-next.144
svelte-preprocess:
specifier: ^5.1.4
- version: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ version: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/kit-demo-app:
devDependencies:
@@ -723,10 +723,10 @@ importers:
version: 2.2.1
'@sveltejs/adapter-auto':
specifier: ^3.2.1
- version: 3.2.1(@sveltejs/kit@2.5.10)
+ version: 3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)))
'@sveltejs/kit':
specifier: ^2.5.10
- version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
+ version: 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
'@sveltejs/vite-plugin-svelte':
specifier: workspace:^
version: link:../../vite-plugin-svelte
@@ -735,13 +735,13 @@ importers:
version: 5.0.0-next.144
svelte-check:
specifier: ^3.8.0
- version: 3.8.0(postcss@8.4.38)(svelte@5.0.0-next.144)
+ version: 3.8.0(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)
typescript:
specifier: ^5.4.5
version: 5.4.5
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/playground/optimizedeps-include:
devDependencies:
@@ -756,7 +756,22 @@ importers:
version: 0.6.12
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
+
+ packages/playground/treeshaking:
+ devDependencies:
+ '@sveltejs/vite-plugin-svelte':
+ specifier: workspace:^
+ version: link:../../vite-plugin-svelte
+ e2e-test-dep-svelte-module:
+ specifier: workspace:^
+ version: link:../../e2e-tests/_test_dependencies/svelte-module
+ svelte:
+ specifier: ^5.0.0-next.144
+ version: 5.0.0-next.144
+ vite:
+ specifier: ^5.2.12
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/vite-plugin-svelte:
dependencies:
@@ -777,14 +792,23 @@ importers:
version: 0.30.10
vitefu:
specifier: ^0.2.5
- version: 0.2.5(vite@5.2.12)
+ version: 0.2.5(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
+ zimmerframe:
+ specifier: ^1.1.2
+ version: 1.1.2
devDependencies:
'@types/debug':
specifier: ^4.1.12
version: 4.1.12
+ '@types/estree':
+ specifier: ^1.0.5
+ version: 1.0.5
esbuild:
specifier: ^0.21.4
version: 0.21.4
+ rollup:
+ specifier: ^4.18.0
+ version: 4.18.0
sass:
specifier: ^1.77.2
version: 1.77.2
@@ -793,7 +817,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages/vite-plugin-svelte-inspector:
dependencies:
@@ -812,7 +836,7 @@ importers:
version: 5.0.0-next.144
vite:
specifier: ^5.2.12
- version: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ version: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
packages:
@@ -1465,8 +1489,8 @@ packages:
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm-eabi@4.9.6':
- resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==}
+ '@rollup/rollup-android-arm-eabi@4.18.0':
+ resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
cpu: [arm]
os: [android]
@@ -1475,8 +1499,8 @@ packages:
cpu: [arm64]
os: [android]
- '@rollup/rollup-android-arm64@4.9.6':
- resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==}
+ '@rollup/rollup-android-arm64@4.18.0':
+ resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
cpu: [arm64]
os: [android]
@@ -1485,8 +1509,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-arm64@4.9.6':
- resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==}
+ '@rollup/rollup-darwin-arm64@4.18.0':
+ resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
cpu: [arm64]
os: [darwin]
@@ -1495,8 +1519,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.9.6':
- resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==}
+ '@rollup/rollup-darwin-x64@4.18.0':
+ resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
cpu: [x64]
os: [darwin]
@@ -1505,8 +1529,13 @@ packages:
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-gnueabihf@4.9.6':
- resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
+ resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
+ resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
cpu: [arm]
os: [linux]
@@ -1515,8 +1544,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.9.6':
- resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==}
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
+ resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
cpu: [arm64]
os: [linux]
@@ -1525,18 +1554,23 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.9.6':
- resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==}
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
+ resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
+ resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
+ cpu: [ppc64]
+ os: [linux]
+
'@rollup/rollup-linux-riscv64-gnu@4.13.1':
resolution: {integrity: sha512-Jv1DkIvwEPAb+v25/Unrnnq9BO3F5cbFPT821n3S5litkz+O5NuXuNhqtPx5KtcwOTtaqkTsO+IVzJOsxd11aQ==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.9.6':
- resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==}
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
+ resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
cpu: [riscv64]
os: [linux]
@@ -1545,13 +1579,18 @@ packages:
cpu: [s390x]
os: [linux]
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
+ resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
+ cpu: [s390x]
+ os: [linux]
+
'@rollup/rollup-linux-x64-gnu@4.13.1':
resolution: {integrity: sha512-zGRDulLTeDemR8DFYyFIQ8kMP02xpUsX4IBikc7lwL9PrwR3gWmX2NopqiGlI2ZVWMl15qZeUjumTwpv18N7sQ==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.9.6':
- resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==}
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
+ resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
cpu: [x64]
os: [linux]
@@ -1560,8 +1599,8 @@ packages:
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.9.6':
- resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==}
+ '@rollup/rollup-linux-x64-musl@4.18.0':
+ resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
cpu: [x64]
os: [linux]
@@ -1570,8 +1609,8 @@ packages:
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-arm64-msvc@4.9.6':
- resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==}
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
+ resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
cpu: [arm64]
os: [win32]
@@ -1580,8 +1619,8 @@ packages:
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.9.6':
- resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==}
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
+ resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
cpu: [ia32]
os: [win32]
@@ -1590,8 +1629,8 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.9.6':
- resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==}
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
+ resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
cpu: [x64]
os: [win32]
@@ -2242,55 +2281,6 @@ packages:
peerDependencies:
typescript: '>=5.0.4 <5.5'
- e2e-test-dep-cjs-and-esm@file:packages/e2e-tests/_test_dependencies/cjs-and-esm:
- resolution: {directory: packages/e2e-tests/_test_dependencies/cjs-and-esm, type: directory}
- name: e2e-test-dep-cjs-and-esm
-
- e2e-test-dep-cjs-only@file:packages/e2e-tests/_test_dependencies/cjs-only:
- resolution: {directory: packages/e2e-tests/_test_dependencies/cjs-only, type: directory}
- name: e2e-test-dep-cjs-only
-
- e2e-test-dep-esm-only@file:packages/e2e-tests/_test_dependencies/esm-only:
- resolution: {directory: packages/e2e-tests/_test_dependencies/esm-only, type: directory}
- name: e2e-test-dep-esm-only
-
- e2e-test-dep-index-only@file:packages/e2e-tests/_test_dependencies/index-only:
- resolution: {directory: packages/e2e-tests/_test_dependencies/index-only, type: directory}
- name: e2e-test-dep-index-only
-
- e2e-test-dep-scss-only@file:packages/e2e-tests/_test_dependencies/scss-only:
- resolution: {directory: packages/e2e-tests/_test_dependencies/scss-only, type: directory}
- name: e2e-test-dep-scss-only
-
- e2e-test-dep-svelte-api-only@file:packages/e2e-tests/_test_dependencies/svelte-api-only:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-api-only, type: directory}
- name: e2e-test-dep-svelte-api-only
-
- e2e-test-dep-svelte-exports-simple@file:packages/e2e-tests/_test_dependencies/svelte-exports-simple:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-exports-simple, type: directory}
- name: e2e-test-dep-svelte-exports-simple
-
- e2e-test-dep-svelte-hybrid@file:packages/e2e-tests/_test_dependencies/svelte-hybrid:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-hybrid, type: directory}
- name: e2e-test-dep-svelte-hybrid
- hasBin: true
-
- e2e-test-dep-svelte-module@file:packages/e2e-tests/_test_dependencies/svelte-module:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-module, type: directory}
- name: e2e-test-dep-svelte-module
-
- e2e-test-dep-svelte-nested@file:packages/e2e-tests/_test_dependencies/svelte-nested:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-nested, type: directory}
- name: e2e-test-dep-svelte-nested
-
- e2e-test-dep-svelte-simple@file:packages/e2e-tests/_test_dependencies/svelte-simple:
- resolution: {directory: packages/e2e-tests/_test_dependencies/svelte-simple, type: directory}
- name: e2e-test-dep-svelte-simple
-
- e2e-test-dep-vite-plugins@file:packages/e2e-tests/_test_dependencies/vite-plugins:
- resolution: {directory: packages/e2e-tests/_test_dependencies/vite-plugins, type: directory}
- name: e2e-test-dep-vite-plugins
-
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -3727,8 +3717,8 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
- rollup@4.9.6:
- resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==}
+ rollup@4.18.0:
+ resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -4952,135 +4942,148 @@ snapshots:
'@polka/url@1.0.0-next.24': {}
- '@rollup/plugin-commonjs@25.0.7(rollup@4.9.6)':
+ '@rollup/plugin-commonjs@25.0.7(rollup@4.13.1)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.6)
+ '@rollup/pluginutils': 5.1.0(rollup@4.13.1)
commondir: 1.0.1
estree-walker: 2.0.2
glob: 8.1.0
is-reference: 1.2.1
magic-string: 0.30.10
- rollup: 4.9.6
+ optionalDependencies:
+ rollup: 4.13.1
- '@rollup/plugin-json@6.1.0(rollup@4.9.6)':
+ '@rollup/plugin-json@6.1.0(rollup@4.13.1)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.6)
- rollup: 4.9.6
+ '@rollup/pluginutils': 5.1.0(rollup@4.13.1)
+ optionalDependencies:
+ rollup: 4.13.1
- '@rollup/plugin-node-resolve@15.2.3(rollup@4.9.6)':
+ '@rollup/plugin-node-resolve@15.2.3(rollup@4.13.1)':
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.6)
+ '@rollup/pluginutils': 5.1.0(rollup@4.13.1)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.8
- rollup: 4.9.6
+ optionalDependencies:
+ rollup: 4.13.1
- '@rollup/pluginutils@5.1.0(rollup@4.9.6)':
+ '@rollup/pluginutils@5.1.0(rollup@4.13.1)':
dependencies:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 4.9.6
+ optionalDependencies:
+ rollup: 4.13.1
'@rollup/rollup-android-arm-eabi@4.13.1':
optional: true
- '@rollup/rollup-android-arm-eabi@4.9.6':
+ '@rollup/rollup-android-arm-eabi@4.18.0':
optional: true
'@rollup/rollup-android-arm64@4.13.1':
optional: true
- '@rollup/rollup-android-arm64@4.9.6':
+ '@rollup/rollup-android-arm64@4.18.0':
optional: true
'@rollup/rollup-darwin-arm64@4.13.1':
optional: true
- '@rollup/rollup-darwin-arm64@4.9.6':
+ '@rollup/rollup-darwin-arm64@4.18.0':
optional: true
'@rollup/rollup-darwin-x64@4.13.1':
optional: true
- '@rollup/rollup-darwin-x64@4.9.6':
+ '@rollup/rollup-darwin-x64@4.18.0':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.13.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.9.6':
+ '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.18.0':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.13.1':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.9.6':
+ '@rollup/rollup-linux-arm64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-arm64-musl@4.13.1':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.9.6':
+ '@rollup/rollup-linux-arm64-musl@4.18.0':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.13.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.9.6':
+ '@rollup/rollup-linux-riscv64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.13.1':
optional: true
+ '@rollup/rollup-linux-s390x-gnu@4.18.0':
+ optional: true
+
'@rollup/rollup-linux-x64-gnu@4.13.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.9.6':
+ '@rollup/rollup-linux-x64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-x64-musl@4.13.1':
optional: true
- '@rollup/rollup-linux-x64-musl@4.9.6':
+ '@rollup/rollup-linux-x64-musl@4.18.0':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.13.1':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.9.6':
+ '@rollup/rollup-win32-arm64-msvc@4.18.0':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.13.1':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.9.6':
+ '@rollup/rollup-win32-ia32-msvc@4.18.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.13.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.9.6':
+ '@rollup/rollup-win32-x64-msvc@4.18.0':
optional: true
'@sinclair/typebox@0.27.8': {}
- '@sveltejs/adapter-auto@3.2.1(@sveltejs/kit@2.5.10)':
+ '@sveltejs/adapter-auto@3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)))':
dependencies:
- '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
+ '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
import-meta-resolve: 4.1.0
- '@sveltejs/adapter-node@5.0.1(@sveltejs/kit@2.5.10)':
+ '@sveltejs/adapter-node@5.0.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)))':
dependencies:
- '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.6)
- '@rollup/plugin-json': 6.1.0(rollup@4.9.6)
- '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.6)
- '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)
- rollup: 4.9.6
+ '@rollup/plugin-commonjs': 25.0.7(rollup@4.13.1)
+ '@rollup/plugin-json': 6.1.0(rollup@4.13.1)
+ '@rollup/plugin-node-resolve': 15.2.3(rollup@4.13.1)
+ '@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))
+ rollup: 4.13.1
- '@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12)':
+ '@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@packages+vite-plugin-svelte)(svelte@5.0.0-next.144)(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': link:packages/vite-plugin-svelte
'@types/cookie': 0.6.0
@@ -5096,7 +5099,7 @@ snapshots:
sirv: 2.0.4
svelte: 5.0.0-next.144
tiny-glob: 0.2.9
- vite: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ vite: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
'@sveltejs/package@2.3.1(svelte@5.0.0-next.144)(typescript@5.4.5)':
dependencies:
@@ -5161,7 +5164,7 @@ snapshots:
'@types/unist@2.0.10': {}
- '@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0)(eslint@8.57.0)(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@7.11.0(@typescript-eslint/parser@7.11.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
dependencies:
'@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 7.11.0(eslint@8.57.0)(typescript@5.4.5)
@@ -5174,6 +5177,7 @@ snapshots:
ignore: 5.3.1
natural-compare: 1.4.0
ts-api-utils: 1.3.0(typescript@5.4.5)
+ optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
@@ -5186,6 +5190,7 @@ snapshots:
'@typescript-eslint/visitor-keys': 7.11.0
debug: 4.3.4
eslint: 8.57.0
+ optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
@@ -5202,6 +5207,7 @@ snapshots:
debug: 4.3.4
eslint: 8.57.0
ts-api-utils: 1.3.0(typescript@5.4.5)
+ optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
@@ -5218,6 +5224,7 @@ snapshots:
minimatch: 9.0.4
semver: 7.6.2
ts-api-utils: 1.3.0(typescript@5.4.5)
+ optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
- supports-color
@@ -5769,43 +5776,6 @@ snapshots:
ts-api-utils: 1.0.3(typescript@5.4.5)
typescript: 5.4.5
- e2e-test-dep-cjs-and-esm@file:packages/e2e-tests/_test_dependencies/cjs-and-esm: {}
-
- e2e-test-dep-cjs-only@file:packages/e2e-tests/_test_dependencies/cjs-only: {}
-
- e2e-test-dep-esm-only@file:packages/e2e-tests/_test_dependencies/esm-only: {}
-
- e2e-test-dep-index-only@file:packages/e2e-tests/_test_dependencies/index-only: {}
-
- e2e-test-dep-scss-only@file:packages/e2e-tests/_test_dependencies/scss-only: {}
-
- e2e-test-dep-svelte-api-only@file:packages/e2e-tests/_test_dependencies/svelte-api-only:
- dependencies:
- svelte: 5.0.0-next.144
-
- e2e-test-dep-svelte-exports-simple@file:packages/e2e-tests/_test_dependencies/svelte-exports-simple:
- dependencies:
- e2e-test-dep-cjs-only: file:packages/e2e-tests/_test_dependencies/cjs-only
-
- e2e-test-dep-svelte-hybrid@file:packages/e2e-tests/_test_dependencies/svelte-hybrid:
- dependencies:
- '@types/node': 20.12.13
- e2e-test-dep-cjs-only: file:packages/e2e-tests/_test_dependencies/cjs-only
-
- e2e-test-dep-svelte-module@file:packages/e2e-tests/_test_dependencies/svelte-module: {}
-
- e2e-test-dep-svelte-nested@file:packages/e2e-tests/_test_dependencies/svelte-nested:
- dependencies:
- e2e-test-dep-cjs-and-esm: file:packages/e2e-tests/_test_dependencies/cjs-and-esm
- e2e-test-dep-scss-only: file:packages/e2e-tests/_test_dependencies/scss-only
- e2e-test-dep-svelte-simple: file:packages/e2e-tests/_test_dependencies/svelte-simple
-
- e2e-test-dep-svelte-simple@file:packages/e2e-tests/_test_dependencies/svelte-simple:
- dependencies:
- e2e-test-dep-cjs-only: file:packages/e2e-tests/_test_dependencies/cjs-only
-
- e2e-test-dep-vite-plugins@file:packages/e2e-tests/_test_dependencies/vite-plugins: {}
-
ee-first@1.1.1: {}
electron-to-chromium@1.4.690: {}
@@ -6045,13 +6015,14 @@ snapshots:
minimatch: 9.0.4
semver: 7.6.2
- eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5):
+ eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5):
dependencies:
eslint: 8.57.0
- eslint-config-prettier: 9.1.0(eslint@8.57.0)
prettier: 3.2.5
prettier-linter-helpers: 1.0.0
synckit: 0.8.6
+ optionalDependencies:
+ eslint-config-prettier: 9.1.0(eslint@8.57.0)
eslint-plugin-svelte@2.39.0(eslint@8.57.0)(svelte@5.0.0-next.144):
dependencies:
@@ -6067,8 +6038,9 @@ snapshots:
postcss-safe-parser: 6.0.0(postcss@8.4.38)
postcss-selector-parser: 6.0.16
semver: 7.6.2
- svelte: 5.0.0-next.144
svelte-eslint-parser: 0.36.0(svelte@5.0.0-next.144)
+ optionalDependencies:
+ svelte: 5.0.0-next.144
transitivePeerDependencies:
- supports-color
- ts-node
@@ -7214,14 +7186,16 @@ snapshots:
postcss-load-config@3.1.4(postcss@8.4.38):
dependencies:
lilconfig: 2.1.0
- postcss: 8.4.38
yaml: 1.10.2
+ optionalDependencies:
+ postcss: 8.4.38
postcss-load-config@5.1.0(postcss@8.4.38):
dependencies:
lilconfig: 3.1.1
- postcss: 8.4.38
yaml: 2.4.2
+ optionalDependencies:
+ postcss: 8.4.38
postcss-safe-parser@6.0.0(postcss@8.4.38):
dependencies:
@@ -7407,23 +7381,26 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.13.1
fsevents: 2.3.3
- rollup@4.9.6:
+ rollup@4.18.0:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.9.6
- '@rollup/rollup-android-arm64': 4.9.6
- '@rollup/rollup-darwin-arm64': 4.9.6
- '@rollup/rollup-darwin-x64': 4.9.6
- '@rollup/rollup-linux-arm-gnueabihf': 4.9.6
- '@rollup/rollup-linux-arm64-gnu': 4.9.6
- '@rollup/rollup-linux-arm64-musl': 4.9.6
- '@rollup/rollup-linux-riscv64-gnu': 4.9.6
- '@rollup/rollup-linux-x64-gnu': 4.9.6
- '@rollup/rollup-linux-x64-musl': 4.9.6
- '@rollup/rollup-win32-arm64-msvc': 4.9.6
- '@rollup/rollup-win32-ia32-msvc': 4.9.6
- '@rollup/rollup-win32-x64-msvc': 4.9.6
+ '@rollup/rollup-android-arm-eabi': 4.18.0
+ '@rollup/rollup-android-arm64': 4.18.0
+ '@rollup/rollup-darwin-arm64': 4.18.0
+ '@rollup/rollup-darwin-x64': 4.18.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.18.0
+ '@rollup/rollup-linux-arm64-gnu': 4.18.0
+ '@rollup/rollup-linux-arm64-musl': 4.18.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.18.0
+ '@rollup/rollup-linux-s390x-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-gnu': 4.18.0
+ '@rollup/rollup-linux-x64-musl': 4.18.0
+ '@rollup/rollup-win32-arm64-msvc': 4.18.0
+ '@rollup/rollup-win32-ia32-msvc': 4.18.0
+ '@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
run-applescript@5.0.0:
@@ -7697,7 +7674,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte-check@3.8.0(postcss@8.4.38)(svelte@5.0.0-next.144):
+ svelte-check@3.8.0(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144):
dependencies:
'@jridgewell/trace-mapping': 0.3.20
chokidar: 3.6.0
@@ -7706,7 +7683,7 @@ snapshots:
picocolors: 1.0.1
sade: 1.8.1
svelte: 5.0.0-next.144
- svelte-preprocess: 5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5)
+ svelte-preprocess: 5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5)
typescript: 5.4.5
transitivePeerDependencies:
- '@babel/core'
@@ -7726,6 +7703,7 @@ snapshots:
espree: 9.6.1
postcss: 8.4.38
postcss-scss: 4.0.9(postcss@8.4.38)
+ optionalDependencies:
svelte: 5.0.0-next.144
svelte-i18n@4.0.0(svelte@5.0.0-next.144):
@@ -7739,28 +7717,19 @@ snapshots:
svelte: 5.0.0-next.144
tiny-glob: 0.2.9
- svelte-preprocess@5.1.4(postcss-load-config@5.1.0)(postcss@8.4.38)(svelte@5.0.0-next.144)(typescript@5.4.5):
+ svelte-preprocess@5.1.4(postcss-load-config@5.1.0(postcss@8.4.38))(postcss@8.4.38)(sass@1.77.2)(stylus@0.63.0)(svelte@5.0.0-next.144)(typescript@5.4.5):
dependencies:
'@types/pug': 2.0.10
detect-indent: 6.1.0
magic-string: 0.30.10
- postcss: 8.4.38
- postcss-load-config: 5.1.0(postcss@8.4.38)
sorcery: 0.11.0
strip-indent: 3.0.0
svelte: 5.0.0-next.144
- typescript: 5.4.5
-
- svelte-preprocess@5.1.4(postcss@8.4.38)(sass@1.77.2)(svelte@5.0.0-next.144)(typescript@5.4.5):
- dependencies:
- '@types/pug': 2.0.10
- detect-indent: 6.1.0
- magic-string: 0.30.10
+ optionalDependencies:
postcss: 8.4.38
+ postcss-load-config: 5.1.0(postcss@8.4.38)
sass: 1.77.2
- sorcery: 0.11.0
- strip-indent: 3.0.0
- svelte: 5.0.0-next.144
+ stylus: 0.63.0
typescript: 5.4.5
svelte2tsx@0.7.0(svelte@5.0.0-next.144)(typescript@5.4.5):
@@ -7953,7 +7922,24 @@ snapshots:
vary@1.1.2: {}
- vite-node@1.6.0(@types/node@20.12.13):
+ vite-node@1.6.0(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.4
+ pathe: 1.1.1
+ picocolors: 1.0.1
+ vite: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ vite-node@1.6.0(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0):
dependencies:
cac: 6.7.14
debug: 4.3.4
@@ -7970,24 +7956,67 @@ snapshots:
- supports-color
- terser
- vite@5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0):
+ vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0):
dependencies:
- '@types/node': 20.12.13
esbuild: 0.20.2
postcss: 8.4.38
- rollup: 4.13.1
+ rollup: 4.18.0
+ optionalDependencies:
+ '@types/node': 20.11.5
+ fsevents: 2.3.3
sass: 1.77.2
stylus: 0.63.0
+
+ vite@5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0):
+ dependencies:
+ esbuild: 0.20.2
+ postcss: 8.4.38
+ rollup: 4.18.0
optionalDependencies:
+ '@types/node': 20.12.13
fsevents: 2.3.3
+ sass: 1.77.2
+ stylus: 0.63.0
+
+ vitefu@0.2.5(vite@5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)):
+ optionalDependencies:
+ vite: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
- vitefu@0.2.5(vite@5.2.12):
+ vitest@1.6.0(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0):
dependencies:
- vite: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
+ '@vitest/expect': 1.6.0
+ '@vitest/runner': 1.6.0
+ '@vitest/snapshot': 1.6.0
+ '@vitest/spy': 1.6.0
+ '@vitest/utils': 1.6.0
+ acorn-walk: 8.3.2
+ chai: 4.3.10
+ debug: 4.3.4
+ execa: 8.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.10
+ pathe: 1.1.1
+ picocolors: 1.0.0
+ std-env: 3.7.0
+ strip-literal: 2.0.0
+ tinybench: 2.5.1
+ tinypool: 0.8.4
+ vite: 5.2.12(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
+ vite-node: 1.6.0(@types/node@20.11.5)(sass@1.77.2)(stylus@0.63.0)
+ why-is-node-running: 2.2.2
+ optionalDependencies:
+ '@types/node': 20.11.5
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
- vitest@1.6.0(@types/node@20.12.13):
+ vitest@1.6.0(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0):
dependencies:
- '@types/node': 20.12.13
'@vitest/expect': 1.6.0
'@vitest/runner': 1.6.0
'@vitest/snapshot': 1.6.0
@@ -8006,8 +8035,10 @@ snapshots:
tinybench: 2.5.1
tinypool: 0.8.4
vite: 5.2.12(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
- vite-node: 1.6.0(@types/node@20.12.13)
+ vite-node: 1.6.0(@types/node@20.12.13)(sass@1.77.2)(stylus@0.63.0)
why-is-node-running: 2.2.2
+ optionalDependencies:
+ '@types/node': 20.12.13
transitivePeerDependencies:
- less
- lightningcss