@sveltejs/vite-plugin-svelte 1.0.0-next.34 → 1.0.0-next.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -49,12 +49,12 @@ __export(src_exports, {
49
49
  svelte: () => svelte
50
50
  });
51
51
 
52
- // ../../node_modules/.pnpm/tsup@5.11.10_typescript@4.5.4/node_modules/tsup/assets/cjs_shims.js
52
+ // ../../node_modules/.pnpm/tsup@5.11.11_typescript@4.5.4/node_modules/tsup/assets/cjs_shims.js
53
53
  var getImportMetaUrl = () => typeof document === "undefined" ? new URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
54
54
  var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
55
55
 
56
56
  // src/index.ts
57
- var import_fs7 = __toESM(require("fs"), 1);
57
+ var import_fs6 = __toESM(require("fs"), 1);
58
58
 
59
59
  // src/utils/log.ts
60
60
  var import_colors = require("kleur/colors");
@@ -1261,6 +1261,7 @@ var VitePluginSvelteCache = class {
1261
1261
  this._js = /* @__PURE__ */ new Map();
1262
1262
  this._dependencies = /* @__PURE__ */ new Map();
1263
1263
  this._dependants = /* @__PURE__ */ new Map();
1264
+ this._resolvedSvelteFields = /* @__PURE__ */ new Map();
1264
1265
  }
1265
1266
  update(compileData) {
1266
1267
  this.updateCSS(compileData);
@@ -1326,6 +1327,15 @@ var VitePluginSvelteCache = class {
1326
1327
  const dependants = this._dependants.get(path7);
1327
1328
  return dependants ? [...dependants] : [];
1328
1329
  }
1330
+ getResolvedSvelteField(name, importer) {
1331
+ return this._resolvedSvelteFields.get(this._getResolvedSvelteFieldKey(name, importer));
1332
+ }
1333
+ setResolvedSvelteField(importee, importer = void 0, resolvedSvelte) {
1334
+ this._resolvedSvelteFields.set(this._getResolvedSvelteFieldKey(importee, importer), resolvedSvelte);
1335
+ }
1336
+ _getResolvedSvelteFieldKey(importee, importer) {
1337
+ return importer ? `${importer} > ${importee}` : importee;
1338
+ }
1329
1339
  };
1330
1340
 
1331
1341
  // src/utils/watch.ts
@@ -1405,14 +1415,24 @@ function ensureWatchedFile(watcher, file, root) {
1405
1415
 
1406
1416
  // src/utils/resolve.ts
1407
1417
  var import_path5 = __toESM(require("path"), 1);
1408
- var import_fs5 = __toESM(require("fs"), 1);
1409
- var import_require_relative = __toESM(require("require-relative"), 1);
1410
- function resolveViaPackageJsonSvelte(importee, importer) {
1411
- if (importer && isBareImport(importee)) {
1412
- const importeePkgFile = import_require_relative.default.resolve(`${importee}/package.json`, import_path5.default.dirname(importer));
1413
- const importeePkg = JSON.parse(import_fs5.default.readFileSync(importeePkgFile, { encoding: "utf-8" }));
1414
- if (importeePkg.svelte) {
1415
- return import_path5.default.resolve(import_path5.default.dirname(importeePkgFile), importeePkg.svelte);
1418
+ var import_module4 = require("module");
1419
+ function resolveViaPackageJsonSvelte(importee, importer, cache) {
1420
+ if (importer && isBareImport(importee) && !is_common_without_svelte_field(importee)) {
1421
+ const cached = cache.getResolvedSvelteField(importee, importer);
1422
+ if (cached) {
1423
+ return cached;
1424
+ }
1425
+ const localRequire = (0, import_module4.createRequire)(importer);
1426
+ const pkgData = resolveDependencyData(importee, localRequire);
1427
+ if (pkgData) {
1428
+ const { pkg, dir } = pkgData;
1429
+ if (pkg.svelte) {
1430
+ const result = import_path5.default.resolve(dir, pkg.svelte);
1431
+ cache.setResolvedSvelteField(importee, importer, result);
1432
+ return result;
1433
+ }
1434
+ } else {
1435
+ throw new Error(`failed to resolve package.json of ${importee} imported by ${importer}`);
1416
1436
  }
1417
1437
  }
1418
1438
  }
@@ -1432,7 +1452,7 @@ function isBareImport(importee) {
1432
1452
  }
1433
1453
 
1434
1454
  // src/utils/optimizer.ts
1435
- var import_fs6 = __toESM(require("fs"), 1);
1455
+ var import_fs5 = __toESM(require("fs"), 1);
1436
1456
  var import_path6 = __toESM(require("path"), 1);
1437
1457
  var import_vite4 = require("vite");
1438
1458
  var PREBUNDLE_SENSITIVE_OPTIONS = [
@@ -1447,19 +1467,19 @@ async function handleOptimizeDeps(options, viteConfig) {
1447
1467
  if (!options.experimental.prebundleSvelteLibraries || !viteConfig.cacheDir)
1448
1468
  return;
1449
1469
  const viteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_metadata.json");
1450
- if (!import_fs6.default.existsSync(viteMetadataPath))
1470
+ if (!import_fs5.default.existsSync(viteMetadataPath))
1451
1471
  return;
1452
1472
  const svelteMetadataPath = import_path6.default.resolve(viteConfig.cacheDir, "_svelte_metadata.json");
1453
1473
  const currentSvelteMetadata = JSON.stringify(generateSvelteMetadata(options), (_, value) => {
1454
1474
  return typeof value === "function" ? value.toString() : value;
1455
1475
  });
1456
- if (import_fs6.default.existsSync(svelteMetadataPath)) {
1457
- const existingSvelteMetadata = import_fs6.default.readFileSync(svelteMetadataPath, "utf8");
1476
+ if (import_fs5.default.existsSync(svelteMetadataPath)) {
1477
+ const existingSvelteMetadata = import_fs5.default.readFileSync(svelteMetadataPath, "utf8");
1458
1478
  if (existingSvelteMetadata === currentSvelteMetadata)
1459
1479
  return;
1460
1480
  }
1461
1481
  await (0, import_vite4.optimizeDeps)(viteConfig, true);
1462
- import_fs6.default.writeFileSync(svelteMetadataPath, currentSvelteMetadata);
1482
+ import_fs5.default.writeFileSync(svelteMetadataPath, currentSvelteMetadata);
1463
1483
  }
1464
1484
  function generateSvelteMetadata(options) {
1465
1485
  const metadata = {};
@@ -1476,7 +1496,7 @@ function svelte(inlineOptions) {
1476
1496
  }
1477
1497
  validateInlineOptions(inlineOptions);
1478
1498
  const cache = new VitePluginSvelteCache();
1479
- const pkg_export_errors = /* @__PURE__ */ new Set();
1499
+ const pkg_resolve_errors = /* @__PURE__ */ new Set();
1480
1500
  let requestParser;
1481
1501
  let options;
1482
1502
  let viteConfig;
@@ -1525,7 +1545,7 @@ function svelte(inlineOptions) {
1525
1545
  }
1526
1546
  if (viteConfig.assetsInclude(filename)) {
1527
1547
  log.debug(`load returns raw content for ${filename}`);
1528
- return import_fs7.default.readFileSync(filename, "utf-8");
1548
+ return import_fs6.default.readFileSync(filename, "utf-8");
1529
1549
  }
1530
1550
  }
1531
1551
  },
@@ -1553,21 +1573,13 @@ function svelte(inlineOptions) {
1553
1573
  return resolvedSvelteSSR;
1554
1574
  }
1555
1575
  try {
1556
- const resolved = resolveViaPackageJsonSvelte(importee, importer);
1576
+ const resolved = resolveViaPackageJsonSvelte(importee, importer, cache);
1557
1577
  if (resolved) {
1558
1578
  log.debug(`resolveId resolved ${resolved} via package.json svelte field of ${importee}`);
1559
1579
  return resolved;
1560
1580
  }
1561
1581
  } catch (err) {
1562
- switch (err.code) {
1563
- case "ERR_PACKAGE_PATH_NOT_EXPORTED":
1564
- pkg_export_errors.add(importee);
1565
- return null;
1566
- case "MODULE_NOT_FOUND":
1567
- return null;
1568
- default:
1569
- throw err;
1570
- }
1582
+ pkg_resolve_errors.add(importee);
1571
1583
  }
1572
1584
  },
1573
1585
  async transform(code, id, opts) {
@@ -1615,8 +1627,10 @@ function svelte(inlineOptions) {
1615
1627
  }
1616
1628
  },
1617
1629
  buildEnd() {
1618
- if (pkg_export_errors.size > 0) {
1619
- log.warn(`The following packages did not export their \`package.json\` file so we could not check the "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_export_errors, (s) => `- ${s}`).join("\n"));
1630
+ if (pkg_resolve_errors.size > 0) {
1631
+ 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.
1632
+ If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
1633
+ ${Array.from(pkg_resolve_errors, (s) => `- ${s}`).join("\n")}`.replace(/\t/g, ""));
1620
1634
  }
1621
1635
  }
1622
1636
  };