@sveltejs/vite-plugin-svelte
Advanced tools
Comparing version 2.4.6 to 3.0.0-next.0
{ | ||
"name": "@sveltejs/vite-plugin-svelte", | ||
"version": "2.4.6", | ||
"version": "3.0.0-next.0", | ||
"license": "MIT", | ||
@@ -19,3 +19,3 @@ "author": "dominikg", | ||
"engines": { | ||
"node": "^14.18.0 || >= 16" | ||
"node": "^18.0.0 || >=20" | ||
}, | ||
@@ -38,3 +38,2 @@ "repository": { | ||
"dependencies": { | ||
"@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", | ||
"debug": "^4.3.4", | ||
@@ -45,7 +44,8 @@ "deepmerge": "^4.3.1", | ||
"svelte-hmr": "^0.15.3", | ||
"vitefu": "^0.2.4" | ||
"vitefu": "^0.2.4", | ||
"@sveltejs/vite-plugin-svelte-inspector": "^2.0.0-next.0" | ||
}, | ||
"peerDependencies": { | ||
"svelte": "^3.54.0 || ^4.0.0", | ||
"vite": "^4.0.0" | ||
"svelte": "^4.0.0", | ||
"vite": "^5.0.0-beta.1 || ^5.0.0" | ||
}, | ||
@@ -56,3 +56,3 @@ "devDependencies": { | ||
"svelte": "^4.2.0", | ||
"vite": "^4.4.9" | ||
"vite": "^5.0.0-beta.1" | ||
}, | ||
@@ -59,0 +59,0 @@ "scripts": { |
@@ -17,3 +17,7 @@ import { log, logCompilerWarnings } from './utils/log.js'; | ||
// file hasn't been requested yet (e.g. async component) | ||
log.debug(`handleHotUpdate called before initial transform for ${svelteRequest.id}`); | ||
log.debug( | ||
`handleHotUpdate called before initial transform for ${svelteRequest.id}`, | ||
undefined, | ||
'hmr' | ||
); | ||
return; | ||
@@ -43,3 +47,3 @@ } | ||
if (!cssUpdated) { | ||
log.debug(`skipping unchanged css for ${svelteRequest.cssId}`); | ||
log.debug(`skipping unchanged css for ${svelteRequest.cssId}`, undefined, 'hmr'); | ||
affectedModules.splice(cssIdx, 1); | ||
@@ -52,3 +56,3 @@ } | ||
if (!jsUpdated) { | ||
log.debug(`skipping unchanged js for ${svelteRequest.id}`); | ||
log.debug(`skipping unchanged js for ${svelteRequest.id}`, undefined, 'hmr'); | ||
affectedModules.splice(jsIdx, 1); | ||
@@ -63,3 +67,7 @@ // transform won't be called, log warnings here | ||
if (ssrModulesToInvalidate.length > 0) { | ||
log.debug(`invalidating modules ${ssrModulesToInvalidate.map((m) => m.id).join(', ')}`); | ||
log.debug( | ||
`invalidating modules ${ssrModulesToInvalidate.map((m) => m.id).join(', ')}`, | ||
undefined, | ||
'hmr' | ||
); | ||
ssrModulesToInvalidate.forEach((moduleNode) => server.moduleGraph.invalidateModule(moduleNode)); | ||
@@ -71,3 +79,5 @@ } | ||
.map((m) => m.id) | ||
.join(', ')}` | ||
.join(', ')}`, | ||
undefined, | ||
'hmr' | ||
); | ||
@@ -74,0 +84,0 @@ } |
118
src/index.js
import fs from 'node:fs'; | ||
import { version as viteVersion } from 'vite'; | ||
import { svelteInspector } from '@sveltejs/vite-plugin-svelte-inspector'; | ||
import { isDepExcluded } from 'vitefu'; | ||
import { handleHotUpdate } from './handle-hot-update.js'; | ||
@@ -20,4 +18,2 @@ import { log, logCompilerWarnings } from './utils/log.js'; | ||
import { ensureWatchedFile, setupWatchers } from './utils/watch.js'; | ||
import { resolveViaPackageJsonSvelte } from './utils/resolve.js'; | ||
import { toRollupError } from './utils/error.js'; | ||
@@ -27,7 +23,3 @@ import { saveSvelteMetadata } from './utils/optimizer.js'; | ||
import { loadRaw } from './utils/load-raw.js'; | ||
import { FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE } from './utils/constants.js'; | ||
import { isSvelte3 } from './utils/svelte-version.js'; | ||
const isVite4_0 = viteVersion.startsWith('4.0'); | ||
/** @type {import('./index.d.ts').svelte} */ | ||
@@ -47,11 +39,5 @@ export function svelte(inlineOptions) { | ||
let viteConfig; | ||
/** @type {import('./types/compile.d.ts').CompileSvelte} */ | ||
let compileSvelte; | ||
/* eslint-enable no-unused-vars */ | ||
/** @type {Promise<import('vite').Rollup.PartialResolvedId | null>} */ | ||
let resolvedSvelteSSR; | ||
/** @type {Set<string>} */ | ||
let packagesWithResolveWarnings; | ||
/** @type {import('./types/plugin-api.d.ts').PluginAPI} */ | ||
@@ -77,3 +63,3 @@ const api = {}; | ||
const extraViteConfig = await buildExtraViteConfig(options, config); | ||
log.debug('additional vite config', extraViteConfig); | ||
log.debug('additional vite config', extraViteConfig, 'config'); | ||
return extraViteConfig; | ||
@@ -90,7 +76,6 @@ }, | ||
api.options = options; | ||
log.debug('resolved options', options); | ||
log.debug('resolved options', options, 'config'); | ||
}, | ||
async buildStart() { | ||
packagesWithResolveWarnings = new Set(); | ||
if (!options.prebundleSvelteLibraries) return; | ||
@@ -116,3 +101,10 @@ const isSvelteMetadataChanged = await saveSvelteMetadata(viteConfig.cacheDir, options); | ||
if (raw) { | ||
return loadRaw(svelteRequest, compileSvelte, options); | ||
const code = await loadRaw(svelteRequest, compileSvelte, options); | ||
// prevent vite from injecting sourcemaps in the results. | ||
return { | ||
code, | ||
map: { | ||
mappings: '' | ||
} | ||
}; | ||
} else { | ||
@@ -122,3 +114,2 @@ if (query.svelte && query.type === 'style') { | ||
if (css) { | ||
log.debug(`load returns css for ${filename}`); | ||
return css; | ||
@@ -129,3 +120,3 @@ } | ||
if (viteConfig.assetsInclude(filename)) { | ||
log.debug(`load returns raw content for ${filename}`); | ||
log.debug(`load returns raw content for ${filename}`, undefined, 'load'); | ||
return fs.readFileSync(filename, 'utf-8'); | ||
@@ -144,76 +135,10 @@ } | ||
// see https://github.com/sveltejs/vite-plugin-svelte/issues/14 | ||
log.debug(`resolveId resolved virtual css module ${svelteRequest.cssId}`); | ||
log.debug( | ||
`resolveId resolved virtual css module ${svelteRequest.cssId}`, | ||
undefined, | ||
'resolve' | ||
); | ||
return svelteRequest.cssId; | ||
} | ||
} | ||
// TODO: remove this after bumping peerDep on Vite to 4.1+ or Svelte to 4.0+ | ||
if (isVite4_0 && isSvelte3 && ssr && importee === 'svelte') { | ||
if (!resolvedSvelteSSR) { | ||
resolvedSvelteSSR = this.resolve('svelte/ssr', undefined, { skipSelf: true }).then( | ||
(svelteSSR) => { | ||
log.debug('resolved svelte to svelte/ssr'); | ||
return svelteSSR; | ||
}, | ||
(err) => { | ||
log.debug( | ||
'failed to resolve svelte to svelte/ssr. Update svelte to a version that exports it', | ||
err | ||
); | ||
return null; // returning null here leads to svelte getting resolved regularly | ||
} | ||
); | ||
} | ||
return resolvedSvelteSSR; | ||
} | ||
//@ts-expect-error scan | ||
const scan = !!opts?.scan; // scanner phase of optimizeDeps | ||
const isPrebundled = | ||
options.prebundleSvelteLibraries && | ||
viteConfig.optimizeDeps?.disabled !== true && | ||
viteConfig.optimizeDeps?.disabled !== (options.isBuild ? 'build' : 'dev') && | ||
!isDepExcluded(importee, viteConfig.optimizeDeps?.exclude ?? []); | ||
// for prebundled libraries we let vite resolve the prebundling result | ||
// for ssr, during scanning and non-prebundled, we do it | ||
if (ssr || scan || !isPrebundled) { | ||
try { | ||
const isFirstResolve = !cache.hasResolvedSvelteField(importee, importer); | ||
const resolved = await resolveViaPackageJsonSvelte(importee, importer, cache); | ||
if (isFirstResolve && resolved) { | ||
const packageInfo = await cache.getPackageInfo(resolved); | ||
const packageVersion = `${packageInfo.name}@${packageInfo.version}`; | ||
log.debug.once( | ||
`resolveId resolved ${importee} to ${resolved} via package.json svelte field of ${packageVersion}` | ||
); | ||
try { | ||
const viteResolved = ( | ||
await this.resolve(importee, importer, { ...opts, skipSelf: true }) | ||
)?.id; | ||
if (resolved !== viteResolved) { | ||
packagesWithResolveWarnings.add(packageVersion); | ||
log.debug.enabled && | ||
log.debug.once( | ||
`resolve difference for ${packageVersion} ${importee} - svelte: "${resolved}", vite: "${viteResolved}"` | ||
); | ||
} | ||
} catch (e) { | ||
packagesWithResolveWarnings.add(packageVersion); | ||
log.debug.enabled && | ||
log.debug.once( | ||
`resolve error for ${packageVersion} ${importee} - svelte: "${resolved}", vite: ERROR`, | ||
e | ||
); | ||
} | ||
} | ||
return resolved; | ||
} catch (e) { | ||
log.debug.once( | ||
`error trying to resolve ${importee} from ${importer} via package.json svelte field `, | ||
e | ||
); | ||
// this error most likely happens due to non-svelte related importee/importers so swallow it here | ||
// in case it really way a svelte library, users will notice anyway. (lib not working due to failed resolve) | ||
} | ||
} | ||
}, | ||
@@ -247,3 +172,2 @@ | ||
} | ||
log.debug(`transform returns compiled js for ${svelteRequest.filename}`); | ||
return { | ||
@@ -270,12 +194,2 @@ ...compileData.compiled.js, | ||
await options.stats?.finishAll(); | ||
if ( | ||
!options.experimental?.disableSvelteResolveWarnings && | ||
packagesWithResolveWarnings?.size > 0 | ||
) { | ||
log.warn( | ||
`WARNING: The following packages use a svelte resolve configuration in package.json that has conflicting results and is going to cause problems future.\n\n${[ | ||
...packagesWithResolveWarnings | ||
].join('\n')}\n\nPlease see ${FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE} for details.` | ||
); | ||
} | ||
} | ||
@@ -282,0 +196,0 @@ }, |
@@ -12,4 +12,2 @@ import { compile, preprocess, walk } from 'svelte/compiler'; | ||
import { isSvelte3 } from './svelte-version.js'; | ||
/** | ||
@@ -59,9 +57,5 @@ * @param {Function} [makeHot] | ||
}; | ||
if (isSvelte3) { | ||
// @ts-ignore | ||
compileOptions.format = 'esm'; | ||
} | ||
if (options.hot && options.emitCss) { | ||
const hash = `s-${safeBase64Hash(normalizedFilename)}`; | ||
log.debug(`setting cssHash ${hash} for ${normalizedFilename}`); | ||
compileOptions.cssHash = () => hash; | ||
@@ -117,3 +111,5 @@ } | ||
log.debug( | ||
`dynamic compile options for ${filename}: ${JSON.stringify(dynamicCompileOptions)}` | ||
`dynamic compile options for ${filename}: ${JSON.stringify(dynamicCompileOptions)}`, | ||
undefined, | ||
'compile' | ||
); | ||
@@ -131,11 +127,2 @@ } | ||
if (isSvelte3) { | ||
// prevent dangling pure comments | ||
// see https://github.com/sveltejs/kit/issues/9492#issuecomment-1487704985 | ||
// uses regex replace with whitespace to keep sourcemap/character count unmodified | ||
compiled.js.code = compiled.js.code.replace( | ||
/\/\* [@#]__PURE__ \*\/(\s*)$/gm, | ||
' $1' | ||
); | ||
} | ||
if (endStat) { | ||
@@ -142,0 +129,0 @@ endStat(); |
@@ -1,3 +0,1 @@ | ||
import { isSvelte3 } from './svelte-version.js'; | ||
export const VITE_RESOLVE_MAIN_FIELDS = ['module', 'jsnext:main', 'jsnext']; | ||
@@ -11,2 +9,3 @@ | ||
'svelte/internal', | ||
'svelte/internal/disclose-version', | ||
'svelte/motion', | ||
@@ -18,6 +17,2 @@ 'svelte/ssr', | ||
]; | ||
// TODO add to global list after dropping svelte 3 | ||
if (!isSvelte3) { | ||
SVELTE_IMPORTS.push('svelte/internal/disclose-version'); | ||
} | ||
@@ -32,3 +27,3 @@ export const SVELTE_HMR_IMPORTS = [ | ||
export const FAQ_LINK_CONFLICTS_IN_SVELTE_RESOLVE = | ||
'https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#conflicts-in-svelte-resolve'; | ||
export const FAQ_LINK_MISSING_EXPORTS_CONDITION = | ||
'https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#missing-exports-condition'; |
@@ -5,3 +5,2 @@ import { readFileSync } from 'node:fs'; | ||
import { toESBuildError } from './error.js'; | ||
import { isSvelte3 } from './svelte-version.js'; | ||
@@ -71,6 +70,3 @@ /** | ||
}; | ||
if (isSvelte3) { | ||
// @ts-ignore | ||
compileOptions.format = 'esm'; | ||
} | ||
let preprocessed; | ||
@@ -77,0 +73,0 @@ |
@@ -67,3 +67,3 @@ import fs from 'node:fs'; | ||
} | ||
log.debug(`load returns direct result for ${id}`); | ||
log.debug(`load returns direct result for ${id}`, undefined, 'load'); | ||
let directOutput = result.code; | ||
@@ -80,3 +80,3 @@ if (query.sourcemap && result.map?.toUrl) { | ||
} else if (query.raw) { | ||
log.debug(`load returns raw result for ${id}`); | ||
log.debug(`load returns raw result for ${id}`, undefined, 'load'); | ||
return toRawExports(result); | ||
@@ -83,0 +83,0 @@ } else { |
@@ -107,3 +107,3 @@ import { createRequire } from 'node:module'; | ||
if (existingKnownConfigFiles.length === 0) { | ||
log.debug(`no svelte config found at ${root}`); | ||
log.debug(`no svelte config found at ${root}`, undefined, 'config'); | ||
return; | ||
@@ -110,0 +110,0 @@ } else if (existingKnownConfigFiles.length > 1) { |
@@ -11,3 +11,3 @@ /* eslint-disable no-console */ | ||
debug: { | ||
log: debug(`vite:${prefix}`), | ||
log: debug(`${prefix}`), | ||
enabled: false, | ||
@@ -69,3 +69,9 @@ isDebug: true | ||
if (logger.isDebug) { | ||
const log = namespace ? logger.log.extend(namespace) : logger.log; | ||
let log = logger.log; | ||
if (namespace) { | ||
if (!isDebugNamespaceEnabled(namespace)) { | ||
return; | ||
} | ||
log = logger.log.extend(namespace); | ||
} | ||
payload !== undefined ? log(message, payload) : log(message); | ||
@@ -256,3 +262,3 @@ } else { | ||
export function isDebugNamespaceEnabled(namespace) { | ||
return debug.enabled(`vite:${prefix}:${namespace}`); | ||
return debug.enabled(`${prefix}:${namespace}`); | ||
} |
@@ -6,2 +6,3 @@ /* eslint-disable no-unused-vars */ | ||
import { | ||
FAQ_LINK_MISSING_EXPORTS_CONDITION, | ||
SVELTE_EXPORT_CONDITIONS, | ||
@@ -432,3 +433,3 @@ SVELTE_HMR_IMPORTS, | ||
) { | ||
log.debug('enabling "experimental.hmrPartialAccept" in vite config'); | ||
log.debug('enabling "experimental.hmrPartialAccept" in vite config', undefined, 'config'); | ||
extraViteConfig.experimental = { hmrPartialAccept: true }; | ||
@@ -486,2 +487,3 @@ } | ||
// extra handling for svelte dependencies in the project | ||
const packagesWithoutSvelteExportsCondition = new Set(); | ||
const depsConfig = await crawlFrameworkPkgs({ | ||
@@ -502,3 +504,7 @@ root: options.root, | ||
} | ||
return hasSvelteCondition || !!pkgJson.svelte; | ||
const hasSvelteField = !!pkgJson.svelte; | ||
if (hasSvelteField && !hasSvelteCondition) { | ||
packagesWithoutSvelteExportsCondition.add(`${pkgJson.name}@${pkgJson.version}`); | ||
} | ||
return hasSvelteCondition || hasSvelteField; | ||
}, | ||
@@ -517,5 +523,14 @@ isSemiFrameworkPkgByJson(pkgJson) { | ||
}); | ||
if ( | ||
!options.experimental?.disableSvelteResolveWarnings && | ||
packagesWithoutSvelteExportsCondition?.size > 0 | ||
) { | ||
log.warn( | ||
`WARNING: The following packages have a svelte field in their package.json but no exports condition for svelte.\n\n${[ | ||
...packagesWithoutSvelteExportsCondition | ||
].join('\n')}\n\nPlease see ${FAQ_LINK_MISSING_EXPORTS_CONDITION} for details.` | ||
); | ||
} | ||
log.debug('extra config for dependencies generated by vitefu', depsConfig, 'config'); | ||
log.debug('extra config for dependencies generated by vitefu', depsConfig); | ||
if (options.prebundleSvelteLibraries) { | ||
@@ -553,3 +568,3 @@ // prebundling enabled, so we don't need extra dependency excludes | ||
log.debug('post-processed extra config for dependencies', depsConfig); | ||
log.debug('post-processed extra config for dependencies', depsConfig, 'config'); | ||
@@ -571,7 +586,13 @@ return depsConfig; | ||
log.debug( | ||
`adding bare svelte packages to optimizeDeps.include: ${svelteImportsToInclude.join(', ')} ` | ||
`adding bare svelte packages to optimizeDeps.include: ${svelteImportsToInclude.join(', ')} `, | ||
undefined, | ||
'config' | ||
); | ||
include.push(...svelteImportsToInclude); | ||
} else { | ||
log.debug('"svelte" is excluded in optimizeDeps.exclude, skipped adding it to include.'); | ||
log.debug( | ||
'"svelte" is excluded in optimizeDeps.exclude, skipped adding it to include.', | ||
undefined, | ||
'config' | ||
); | ||
} | ||
@@ -578,0 +599,0 @@ /** @type {(string | RegExp)[]} */ |
@@ -87,3 +87,5 @@ import MagicString from 'magic-string'; | ||
.map((p) => p.name) | ||
.join(', ')}` | ||
.join(', ')}`, | ||
undefined, | ||
'preprocess' | ||
); | ||
@@ -95,3 +97,5 @@ } | ||
.map((p) => p.name) | ||
.join(', ')}` | ||
.join(', ')}`, | ||
undefined, | ||
'preprocess' | ||
); | ||
@@ -98,0 +102,0 @@ appendPreprocessors.push(...pluginsWithPreprocessors.map((p) => p.api.sveltePreprocess)); |
@@ -27,4 +27,2 @@ import { readFileSync } from 'node:fs'; | ||
#dependants = new Map(); | ||
/** @type {Map<string, string>} */ | ||
#resolvedSvelteFields = new Map(); | ||
/** @type {Map<string, any>} */ | ||
@@ -173,41 +171,2 @@ #errors = new Map(); | ||
/** | ||
* @param {string} name | ||
* @param {string} [importer] | ||
* @returns {string|void} | ||
*/ | ||
getResolvedSvelteField(name, importer) { | ||
return this.#resolvedSvelteFields.get(this.#getResolvedSvelteFieldKey(name, importer)); | ||
} | ||
/** | ||
* @param {string} name | ||
* @param {string} [importer] | ||
* @returns {boolean} | ||
*/ | ||
hasResolvedSvelteField(name, importer) { | ||
return this.#resolvedSvelteFields.has(this.#getResolvedSvelteFieldKey(name, importer)); | ||
} | ||
/** | ||
* | ||
* @param {string} importee | ||
* @param {string | undefined} importer | ||
* @param {string} resolvedSvelte | ||
*/ | ||
setResolvedSvelteField(importee, importer, resolvedSvelte) { | ||
this.#resolvedSvelteFields.set( | ||
this.#getResolvedSvelteFieldKey(importee, importer), | ||
resolvedSvelte | ||
); | ||
} | ||
/** | ||
* @param {string} importee | ||
* @param {string | undefined} importer | ||
* @returns {string} | ||
*/ | ||
#getResolvedSvelteFieldKey(importee, importer) { | ||
return importer ? `${importer} > ${importee}` : importee; | ||
} | ||
/** | ||
* @param {string} file | ||
@@ -214,0 +173,0 @@ * @returns {Promise<PackageInfo>} |
@@ -25,3 +25,5 @@ import fs from 'node:fs'; | ||
log.debug( | ||
`emitting virtual change event for "${dependant}" because depdendency "${filename}" changed` | ||
`emitting virtual change event for "${dependant}" because depdendency "${filename}" changed`, | ||
undefined, | ||
'hmr' | ||
); | ||
@@ -38,3 +40,3 @@ watcher.emit('change', dependant); | ||
if (removedFromCache) { | ||
log.debug(`cleared VitePluginSvelteCache for deleted file ${filename}`); | ||
log.debug(`cleared VitePluginSvelteCache for deleted file ${filename}`, undefined, 'hmr'); | ||
} | ||
@@ -41,0 +43,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
108182
31
3284
1
+ Added@esbuild/aix-ppc64@0.21.5(transitive)
+ Added@esbuild/android-arm@0.21.5(transitive)
+ Added@esbuild/android-arm64@0.21.5(transitive)
+ Added@esbuild/android-x64@0.21.5(transitive)
+ Added@esbuild/darwin-arm64@0.21.5(transitive)
+ Added@esbuild/darwin-x64@0.21.5(transitive)
+ Added@esbuild/freebsd-arm64@0.21.5(transitive)
+ Added@esbuild/freebsd-x64@0.21.5(transitive)
+ Added@esbuild/linux-arm@0.21.5(transitive)
+ Added@esbuild/linux-arm64@0.21.5(transitive)
+ Added@esbuild/linux-ia32@0.21.5(transitive)
+ Added@esbuild/linux-loong64@0.21.5(transitive)
+ Added@esbuild/linux-mips64el@0.21.5(transitive)
+ Added@esbuild/linux-ppc64@0.21.5(transitive)
+ Added@esbuild/linux-riscv64@0.21.5(transitive)
+ Added@esbuild/linux-s390x@0.21.5(transitive)
+ Added@esbuild/linux-x64@0.21.5(transitive)
+ Added@esbuild/netbsd-x64@0.21.5(transitive)
+ Added@esbuild/openbsd-x64@0.21.5(transitive)
+ Added@esbuild/sunos-x64@0.21.5(transitive)
+ Added@esbuild/win32-arm64@0.21.5(transitive)
+ Added@esbuild/win32-ia32@0.21.5(transitive)
+ Added@esbuild/win32-x64@0.21.5(transitive)
+ Added@rollup/rollup-android-arm-eabi@4.22.5(transitive)
+ Added@rollup/rollup-android-arm64@4.22.5(transitive)
+ Added@rollup/rollup-darwin-arm64@4.22.5(transitive)
+ Added@rollup/rollup-darwin-x64@4.22.5(transitive)
+ Added@rollup/rollup-linux-arm-gnueabihf@4.22.5(transitive)
+ Added@rollup/rollup-linux-arm-musleabihf@4.22.5(transitive)
+ Added@rollup/rollup-linux-arm64-gnu@4.22.5(transitive)
+ Added@rollup/rollup-linux-arm64-musl@4.22.5(transitive)
+ Added@rollup/rollup-linux-powerpc64le-gnu@4.22.5(transitive)
+ Added@rollup/rollup-linux-riscv64-gnu@4.22.5(transitive)
+ Added@rollup/rollup-linux-s390x-gnu@4.22.5(transitive)
+ Added@rollup/rollup-linux-x64-gnu@4.22.5(transitive)
+ Added@rollup/rollup-linux-x64-musl@4.22.5(transitive)
+ Added@rollup/rollup-win32-arm64-msvc@4.22.5(transitive)
+ Added@rollup/rollup-win32-ia32-msvc@4.22.5(transitive)
+ Added@rollup/rollup-win32-x64-msvc@4.22.5(transitive)
+ Added@sveltejs/vite-plugin-svelte@3.1.2(transitive)
+ Added@sveltejs/vite-plugin-svelte-inspector@2.1.0(transitive)
+ Addedesbuild@0.21.5(transitive)
+ Addedrollup@4.22.5(transitive)
+ Addedsvelte-hmr@0.16.0(transitive)
+ Addedvite@5.4.8(transitive)
- Removed@esbuild/android-arm@0.18.20(transitive)
- Removed@esbuild/android-arm64@0.18.20(transitive)
- Removed@esbuild/android-x64@0.18.20(transitive)
- Removed@esbuild/darwin-arm64@0.18.20(transitive)
- Removed@esbuild/darwin-x64@0.18.20(transitive)
- Removed@esbuild/freebsd-arm64@0.18.20(transitive)
- Removed@esbuild/freebsd-x64@0.18.20(transitive)
- Removed@esbuild/linux-arm@0.18.20(transitive)
- Removed@esbuild/linux-arm64@0.18.20(transitive)
- Removed@esbuild/linux-ia32@0.18.20(transitive)
- Removed@esbuild/linux-loong64@0.18.20(transitive)
- Removed@esbuild/linux-mips64el@0.18.20(transitive)
- Removed@esbuild/linux-ppc64@0.18.20(transitive)
- Removed@esbuild/linux-riscv64@0.18.20(transitive)
- Removed@esbuild/linux-s390x@0.18.20(transitive)
- Removed@esbuild/linux-x64@0.18.20(transitive)
- Removed@esbuild/netbsd-x64@0.18.20(transitive)
- Removed@esbuild/openbsd-x64@0.18.20(transitive)
- Removed@esbuild/sunos-x64@0.18.20(transitive)
- Removed@esbuild/win32-arm64@0.18.20(transitive)
- Removed@esbuild/win32-ia32@0.18.20(transitive)
- Removed@esbuild/win32-x64@0.18.20(transitive)
- Removed@sveltejs/vite-plugin-svelte-inspector@1.0.4(transitive)
- Removedesbuild@0.18.20(transitive)
- Removedrollup@3.29.5(transitive)
- Removedvite@4.5.5(transitive)