Socket
Socket
Sign inDemoInstall

@sveltejs/vite-plugin-svelte

Package Overview
Dependencies
Maintainers
4
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sveltejs/vite-plugin-svelte - npm Package Compare versions

Comparing version 1.0.0-next.37 to 1.0.0-next.38

69

dist/index.js

@@ -687,7 +687,16 @@ var __defProp = Object.defineProperty;

const pkg = depData.pkg;
const isCjs = pkg.main && !pkg.module && !pkg.exports;
if (!isCjs)
const hasEsmFields = pkg.module || pkg.exports;
if (hasEsmFields)
return false;
const entryExt = path2.extname(pkg.main);
return !entryExt || entryExt === ".js" || entryExt === ".cjs";
if (pkg.main) {
const entryExt = path2.extname(pkg.main);
return !entryExt || entryExt === ".js" || entryExt === ".cjs";
} else {
try {
localRequire.resolve(`${dep}/index.js`);
return true;
} catch {
return false;
}
}
}

@@ -1428,4 +1437,2 @@

}
} else {
throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
}

@@ -1467,6 +1474,6 @@ }

return;
const viteMetadataPath = path6.resolve(viteConfig.cacheDir, "_metadata.json");
if (!fs6.existsSync(viteMetadataPath))
const viteMetadataPath = findViteMetadataPath(viteConfig.cacheDir);
if (!viteMetadataPath)
return;
const svelteMetadataPath = path6.resolve(viteConfig.cacheDir, "_svelte_metadata.json");
const svelteMetadataPath = path6.resolve(viteMetadataPath, "../_svelte_metadata.json");
const currentSvelteMetadata = JSON.stringify(generateSvelteMetadata(options), (_, value) => {

@@ -1490,2 +1497,10 @@ return typeof value === "function" ? value.toString() : value;

}
function findViteMetadataPath(cacheDir) {
const metadataPaths = ["_metadata.json", "deps/_metadata.json"];
for (const metadataPath of metadataPaths) {
const viteMetadataPath = path6.resolve(cacheDir, metadataPath);
if (fs6.existsSync(viteMetadataPath))
return viteMetadataPath;
}
}

@@ -1499,3 +1514,2 @@ // src/index.ts

const cache = new VitePluginSvelteCache();
const pkg_resolve_errors = /* @__PURE__ */ new Set();
let requestParser;

@@ -1576,10 +1590,6 @@ let options;

}
try {
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {
log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
return resolved;
}
} catch (err) {
pkg_resolve_errors.add(importee);
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {
log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
return resolved;
}

@@ -1591,17 +1601,5 @@ },

const svelteRequest = requestParser(id, ssr);
if (!svelteRequest) {
if (!svelteRequest || svelteRequest.query.svelte) {
return;
}
const { filename, query } = svelteRequest;
if (query.svelte) {
if (query.type === "style") {
const css = cache.getCSS(svelteRequest);
if (css) {
log.debug(`transform returns css for ${filename}`);
return css;
}
}
log.error("failed to transform tagged svelte request", svelteRequest);
throw new Error(`failed to transform tagged svelte request for id ${id}`);
}
let compileData;

@@ -1620,3 +1618,3 @@ try {

}
log.debug(`transform returns compiled js for ${filename}`);
log.debug(`transform returns compiled js for ${svelteRequest.filename}`);
return compileData.compiled.js;

@@ -1632,9 +1630,2 @@ },

}
},
buildEnd() {
if (pkg_resolve_errors.size > 0) {
log.warn(`vite-plugin-svelte was unable to find package.json of the following packages and wasn't able to resolve via their "svelte" field.
If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join("\n")}`.replace(/\t/g, ""));
}
}

@@ -1641,0 +1632,0 @@ };

{
"name": "@sveltejs/vite-plugin-svelte",
"version": "1.0.0-next.37",
"version": "1.0.0-next.38",
"license": "MIT",

@@ -63,7 +63,7 @@ "author": "dominikg",

"diff-match-patch": "^1.0.5",
"esbuild": "^0.14.14",
"rollup": "^2.66.1",
"svelte": "^3.46.3",
"esbuild": "^0.14.23",
"rollup": "^2.67.3",
"svelte": "^3.46.4",
"tsup": "^5.11.13",
"vite": "^2.7.13"
"vite": "^2.8.4"
},

@@ -70,0 +70,0 @@ "scripts": {

@@ -30,3 +30,2 @@ import fs from 'fs';

const cache = new VitePluginSvelteCache();
const pkg_resolve_errors = new Set();
// updated in configResolved hook

@@ -140,10 +139,6 @@ let requestParser: IdParser;

try {
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {
log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
return resolved;
}
} catch (err) {
pkg_resolve_errors.add(importee);
const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
if (resolved) {
log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
return resolved;
}

@@ -155,18 +150,5 @@ },

const svelteRequest = requestParser(id, ssr);
if (!svelteRequest) {
if (!svelteRequest || svelteRequest.query.svelte) {
return;
}
const { filename, query } = svelteRequest;
if (query.svelte) {
if (query.type === 'style') {
const css = cache.getCSS(svelteRequest);
if (css) {
log.debug(`transform returns css for ${filename}`);
return css; // TODO return code arg instead? it's the code from load hook.
}
}
log.error('failed to transform tagged svelte request', svelteRequest);
throw new Error(`failed to transform tagged svelte request for id ${id}`);
}
let compileData;

@@ -185,3 +167,3 @@ try {

}
log.debug(`transform returns compiled js for ${filename}`);
log.debug(`transform returns compiled js for ${svelteRequest.filename}`);
return compileData.compiled.js;

@@ -198,16 +180,2 @@ },

}
},
/**
* All resolutions done; display warnings wrt `package.json` access.
*/
// TODO generateBundle isn't called by vite, is buildEnd enough or should it be logged once per violation in resolve
buildEnd() {
if (pkg_resolve_errors.size > 0) {
log.warn(
`vite-plugin-svelte was unable to find package.json of the following packages and wasn't able to resolve via their "svelte" field.
If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join('\n')}`.replace(/\t/g, '')
);
}
}

@@ -214,0 +182,0 @@ };

@@ -1,7 +0,8 @@

import { findRootSvelteDependencies } from '../dependencies';
import { findRootSvelteDependencies, needsOptimization } from '../dependencies';
import * as path from 'path';
import { createRequire } from 'module';
describe('dependencies', () => {
describe('findRootSvelteDependencies', () => {
it('should find svelte dependencies in packages/e2e-test/hmr', async () => {
it('should find svelte dependencies in packages/e2e-test/hmr', () => {
const deps = findRootSvelteDependencies(path.resolve('packages/e2e-tests/hmr'));

@@ -12,3 +13,3 @@ expect(deps).toHaveLength(1);

});
it('should find nested svelte dependencies in packages/e2e-test/package-json-svelte-field', async () => {
it('should find nested svelte dependencies in packages/e2e-test/package-json-svelte-field', () => {
const deps = findRootSvelteDependencies(

@@ -30,2 +31,12 @@ path.resolve('packages/e2e-tests/package-json-svelte-field')

});
describe('needsOptimization', () => {
it('should optimize cjs deps only', () => {
const localRequire = createRequire(path.resolve('packages/e2e-tests/dependencies'));
expect(needsOptimization('e2e-test-dep-cjs-and-esm', localRequire)).toBe(false);
expect(needsOptimization('e2e-test-dep-cjs-only', localRequire)).toBe(true);
expect(needsOptimization('e2e-test-dep-esm-only', localRequire)).toBe(false);
expect(needsOptimization('e2e-test-dep-index-only', localRequire)).toBe(true);
expect(needsOptimization('e2e-test-dep-types-only', localRequire)).toBe(false);
});
});
});

@@ -190,8 +190,19 @@ import { log } from './log';

// see https://github.com/sveltejs/vite-plugin-svelte/issues/162
const isCjs = pkg.main && !pkg.module && !pkg.exports;
if (!isCjs) return false;
// ensure entry is js so vite can prebundle it
// see https://github.com/sveltejs/vite-plugin-svelte/issues/233
const entryExt = path.extname(pkg.main);
return !entryExt || entryExt === '.js' || entryExt === '.cjs';
const hasEsmFields = pkg.module || pkg.exports;
if (hasEsmFields) return false;
if (pkg.main) {
// ensure entry is js so vite can prebundle it
// see https://github.com/sveltejs/vite-plugin-svelte/issues/233
const entryExt = path.extname(pkg.main);
return !entryExt || entryExt === '.js' || entryExt === '.cjs';
} else {
// check if has implicit index.js entrypoint
// https://github.com/sveltejs/vite-plugin-svelte/issues/281
try {
localRequire.resolve(`${dep}/index.js`);
return true;
} catch {
return false;
}
}
}

@@ -198,0 +209,0 @@

@@ -19,7 +19,6 @@ import fs from 'fs';

const viteMetadataPath = path.resolve(viteConfig.cacheDir, '_metadata.json');
const viteMetadataPath = findViteMetadataPath(viteConfig.cacheDir);
if (!viteMetadataPath) return;
if (!fs.existsSync(viteMetadataPath)) return;
const svelteMetadataPath = path.resolve(viteConfig.cacheDir, '_svelte_metadata.json');
const svelteMetadataPath = path.resolve(viteMetadataPath, '../_svelte_metadata.json');
const currentSvelteMetadata = JSON.stringify(generateSvelteMetadata(options), (_, value) => {

@@ -45,1 +44,9 @@ return typeof value === 'function' ? value.toString() : value;

}
function findViteMetadataPath(cacheDir: string) {
const metadataPaths = ['_metadata.json', 'deps/_metadata.json'];
for (const metadataPath of metadataPaths) {
const viteMetadataPath = path.resolve(cacheDir, metadataPath);
if (fs.existsSync(viteMetadataPath)) return viteMetadataPath;
}
}

@@ -30,4 +30,2 @@ import path from 'path';

}
} else {
throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
}

@@ -34,0 +32,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc