@sveltejs/vite-plugin-svelte 1.0.0-next.28 → 1.0.0-next.31

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.js CHANGED
@@ -1,11 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __defProps = Object.defineProperties;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __getProtoOf = Object.getPrototypeOf;
9
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -21,7 +17,6 @@ var __spreadValues = (a, b) => {
21
17
  return a;
22
18
  };
23
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
20
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
26
21
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
27
22
  }) : x)(function(x) {
@@ -29,20 +24,9 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
29
24
  return require.apply(this, arguments);
30
25
  throw new Error('Dynamic require of "' + x + '" is not supported');
31
26
  });
32
- var __reExport = (target, module, desc) => {
33
- if (module && typeof module === "object" || typeof module === "function") {
34
- for (let key of __getOwnPropNames(module))
35
- if (!__hasOwnProp.call(target, key) && key !== "default")
36
- __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
37
- }
38
- return target;
39
- };
40
- var __toModule = (module) => {
41
- return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
42
- };
43
27
 
44
28
  // src/index.ts
45
- import fs6 from "fs";
29
+ import fs7 from "fs";
46
30
 
47
31
  // src/utils/log.ts
48
32
  import { cyan, yellow, red } from "kleur/colors";
@@ -186,7 +170,7 @@ function buildExtendedLogMessage(w) {
186
170
  }
187
171
 
188
172
  // src/handle-hot-update.ts
189
- async function handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options) {
173
+ async function handleHotUpdate(compileSvelte2, ctx, svelteRequest, cache, options) {
190
174
  const { read, server } = ctx;
191
175
  const cachedJS = cache.getJS(svelteRequest);
192
176
  if (!cachedJS) {
@@ -195,7 +179,7 @@ async function handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options
195
179
  }
196
180
  const cachedCss = cache.getCSS(svelteRequest);
197
181
  const content = await read();
198
- const compileData = await compileSvelte(svelteRequest, content, options);
182
+ const compileData = await compileSvelte2(svelteRequest, content, options);
199
183
  cache.update(compileData);
200
184
  const affectedModules = new Set();
201
185
  const cssModule = server.moduleGraph.getModuleById(svelteRequest.cssId);
@@ -287,7 +271,7 @@ function toSafe(base64) {
287
271
  }
288
272
 
289
273
  // src/utils/compile.ts
290
- var _createCompileSvelte = (makeHot) => async function compileSvelte(svelteRequest, code, options) {
274
+ var _createCompileSvelte = (makeHot) => async function compileSvelte2(svelteRequest, code, options) {
291
275
  var _a, _b;
292
276
  const { filename, normalizedFilename, cssId, ssr } = svelteRequest;
293
277
  const { emitCss = true } = options;
@@ -301,6 +285,13 @@ var _createCompileSvelte = (makeHot) => async function compileSvelte(svelteReque
301
285
  log.debug(`setting cssHash ${hash} for ${normalizedFilename}`);
302
286
  compileOptions.cssHash = () => hash;
303
287
  }
288
+ if (ssr && compileOptions.enableSourcemap !== false) {
289
+ if (typeof compileOptions.enableSourcemap === "object") {
290
+ compileOptions.enableSourcemap.css = false;
291
+ } else {
292
+ compileOptions.enableSourcemap = { js: true, css: false };
293
+ }
294
+ }
304
295
  let preprocessed;
305
296
  if (options.preprocess) {
306
297
  preprocessed = await preprocess(code, options.preprocess, { filename });
@@ -479,7 +470,7 @@ async function loadSvelteConfig(viteConfig, inlineOptions) {
479
470
  }
480
471
  if (!configFile.endsWith(".mjs")) {
481
472
  try {
482
- const _require = import.meta.url ? esmRequire != null ? esmRequire : esmRequire = createRequire(import.meta.url) : __require;
473
+ const _require = import.meta.url ? esmRequire ?? (esmRequire = createRequire(import.meta.url)) : __require;
483
474
  delete _require.cache[_require.resolve(configFile)];
484
475
  const result = _require(configFile);
485
476
  if (result != null) {
@@ -692,6 +683,126 @@ function needsOptimization(dep, localRequire) {
692
683
 
693
684
  // src/utils/options.ts
694
685
  import { createRequire as createRequire3 } from "module";
686
+
687
+ // src/utils/esbuild.ts
688
+ import { promises as fs4 } from "fs";
689
+ import { compile as compile2, preprocess as preprocess2 } from "svelte/compiler";
690
+
691
+ // src/utils/error.ts
692
+ function toRollupError(error) {
693
+ const { filename, frame, start, code, name } = error;
694
+ const rollupError = {
695
+ name,
696
+ id: filename,
697
+ message: buildExtendedLogMessage(error),
698
+ frame: formatFrameForVite(frame),
699
+ code,
700
+ stack: ""
701
+ };
702
+ if (start) {
703
+ rollupError.loc = {
704
+ line: start.line,
705
+ column: start.column,
706
+ file: filename
707
+ };
708
+ }
709
+ return rollupError;
710
+ }
711
+ function toESBuildError(error) {
712
+ const { filename, frame, start } = error;
713
+ const partialMessage = {
714
+ text: buildExtendedLogMessage(error)
715
+ };
716
+ if (start) {
717
+ partialMessage.location = {
718
+ line: start.line,
719
+ column: start.column,
720
+ file: filename,
721
+ lineText: lineFromFrame(start.line, frame)
722
+ };
723
+ }
724
+ return partialMessage;
725
+ }
726
+ function lineFromFrame(lineNo, frame) {
727
+ if (!frame) {
728
+ return "";
729
+ }
730
+ const lines = frame.split("\n");
731
+ const errorLine = lines.find((line) => line.trimStart().startsWith(`${lineNo}: `));
732
+ return errorLine ? errorLine.substring(errorLine.indexOf(": ") + 3) : "";
733
+ }
734
+ function formatFrameForVite(frame) {
735
+ if (!frame) {
736
+ return "";
737
+ }
738
+ return frame.split("\n").map((line) => line.match(/^\s+\^/) ? " " + line : " " + line.replace(":", " | ")).join("\n");
739
+ }
740
+
741
+ // src/utils/esbuild.ts
742
+ function esbuildSveltePlugin(options) {
743
+ return {
744
+ name: "vite-plugin-svelte:optimize-svelte",
745
+ setup(build) {
746
+ disableVitePrebundleSvelte(build);
747
+ const svelteExtensions = (options.extensions ?? [".svelte"]).map((ext) => ext.slice(1));
748
+ const svelteFilter = new RegExp(`\\.(` + svelteExtensions.join("|") + `)(\\?.*)?$`);
749
+ build.onLoad({ filter: svelteFilter }, async ({ path: filename }) => {
750
+ const code = await fs4.readFile(filename, "utf8");
751
+ try {
752
+ const contents = await compileSvelte(options, { filename, code });
753
+ return { contents };
754
+ } catch (e) {
755
+ return { errors: [toESBuildError(e)] };
756
+ }
757
+ });
758
+ }
759
+ };
760
+ }
761
+ function disableVitePrebundleSvelte(build) {
762
+ var _a;
763
+ const viteDepPrebundlePlugin = (_a = build.initialOptions.plugins) == null ? void 0 : _a.find((v) => v.name === "vite:dep-pre-bundle");
764
+ if (!viteDepPrebundlePlugin)
765
+ return;
766
+ const _setup = viteDepPrebundlePlugin.setup.bind(viteDepPrebundlePlugin);
767
+ viteDepPrebundlePlugin.setup = function(build2) {
768
+ const _onResolve = build2.onResolve.bind(build2);
769
+ build2.onResolve = function(options, callback) {
770
+ if (options.filter.source.includes("svelte")) {
771
+ options.filter = new RegExp(options.filter.source.replace("|svelte", ""), options.filter.flags);
772
+ }
773
+ return _onResolve(options, callback);
774
+ };
775
+ return _setup(build2);
776
+ };
777
+ }
778
+ async function compileSvelte(options, { filename, code }) {
779
+ var _a, _b;
780
+ const compileOptions = __spreadProps(__spreadValues({}, options.compilerOptions), {
781
+ css: true,
782
+ filename,
783
+ generate: "dom"
784
+ });
785
+ let preprocessed;
786
+ if (options.preprocess) {
787
+ preprocessed = await preprocess2(code, options.preprocess, { filename });
788
+ if (preprocessed.map)
789
+ compileOptions.sourcemap = preprocessed.map;
790
+ }
791
+ const finalCode = preprocessed ? preprocessed.code : code;
792
+ const dynamicCompileOptions = await ((_b = (_a = options.experimental) == null ? void 0 : _a.dynamicCompileOptions) == null ? void 0 : _b.call(_a, {
793
+ filename,
794
+ code: finalCode,
795
+ compileOptions
796
+ }));
797
+ if (dynamicCompileOptions && log.debug.enabled) {
798
+ log.debug(`dynamic compile options for ${filename}: ${JSON.stringify(dynamicCompileOptions)}`);
799
+ }
800
+ const finalCompileOptions = dynamicCompileOptions ? __spreadValues(__spreadValues({}, compileOptions), dynamicCompileOptions) : compileOptions;
801
+ const compiled = compile2(finalCode, finalCompileOptions);
802
+ return compiled.js.code + "//# sourceMappingURL=" + compiled.js.map.toUrl();
803
+ }
804
+
805
+ // src/utils/options.ts
695
806
  var knownOptions = new Set([
696
807
  "configFile",
697
808
  "include",
@@ -787,12 +898,11 @@ function mergeOptions(defaultOptions, svelteConfig, inlineOptions, viteConfig, v
787
898
  return merged;
788
899
  }
789
900
  async function resolveOptions(inlineOptions = {}, viteConfig, viteEnv) {
790
- var _a;
791
901
  const viteConfigWithResolvedRoot = __spreadProps(__spreadValues({}, viteConfig), {
792
902
  root: resolveViteRoot(viteConfig)
793
903
  });
794
904
  const svelteConfig = await loadSvelteConfig(viteConfigWithResolvedRoot, inlineOptions) || {};
795
- const defaultOptions = buildDefaultOptions(viteEnv.mode === "production", (_a = inlineOptions.emitCss) != null ? _a : svelteConfig.emitCss);
905
+ const defaultOptions = buildDefaultOptions(viteEnv.mode === "production", inlineOptions.emitCss ?? svelteConfig.emitCss);
796
906
  const resolvedOptions = mergeOptions(defaultOptions, svelteConfig, inlineOptions, viteConfigWithResolvedRoot, viteEnv);
797
907
  enforceOptionsForProduction(resolvedOptions);
798
908
  enforceOptionsForHmr(resolvedOptions);
@@ -816,7 +926,6 @@ function buildExtraViteConfig(options, config, configEnv) {
816
926
  return extraViteConfig;
817
927
  }
818
928
  function buildOptimizeDepsForSvelte(svelteDeps, options, optimizeDeps) {
819
- svelteDeps = svelteDeps.filter((dep) => dep.type === "component-library");
820
929
  const include = [];
821
930
  const exclude = ["svelte-hmr"];
822
931
  const isIncluded = (dep) => {
@@ -834,6 +943,16 @@ function buildOptimizeDepsForSvelte(svelteDeps, options, optimizeDeps) {
834
943
  } else {
835
944
  log.debug('"svelte" is excluded in optimizeDeps.exclude, skipped adding it to include.');
836
945
  }
946
+ if (options.experimental.prebundleSvelteLibraries) {
947
+ return {
948
+ include,
949
+ exclude,
950
+ esbuildOptions: {
951
+ plugins: [esbuildSveltePlugin(options)]
952
+ }
953
+ };
954
+ }
955
+ svelteDeps = svelteDeps.filter((dep) => dep.type === "component-library");
837
956
  const svelteDepsToExclude = Array.from(new Set(svelteDeps.map((dep) => dep.name))).filter((dep) => !isIncluded(dep));
838
957
  log.debug(`automatically excluding found svelte dependencies: ${svelteDepsToExclude.join(", ")}`);
839
958
  exclude.push(...svelteDepsToExclude.filter((x) => !isExcluded(x)));
@@ -945,7 +1064,7 @@ var VitePluginSvelteCache = class {
945
1064
  };
946
1065
 
947
1066
  // src/utils/watch.ts
948
- import fs4 from "fs";
1067
+ import fs5 from "fs";
949
1068
  import path4 from "path";
950
1069
  function setupWatchers(options, cache, requestParser) {
951
1070
  const { server, configFile: svelteConfigFile } = options;
@@ -957,7 +1076,7 @@ function setupWatchers(options, cache, requestParser) {
957
1076
  const emitChangeEventOnDependants = (filename) => {
958
1077
  const dependants = cache.getDependants(filename);
959
1078
  dependants.forEach((dependant) => {
960
- if (fs4.existsSync(dependant)) {
1079
+ if (fs5.existsSync(dependant)) {
961
1080
  log.debug(`emitting virtual change event for "${dependant}" because depdendency "${filename}" changed`);
962
1081
  watcher.emit("change", dependant);
963
1082
  }
@@ -1014,19 +1133,19 @@ function setupWatchers(options, cache, requestParser) {
1014
1133
  });
1015
1134
  }
1016
1135
  function ensureWatchedFile(watcher, file, root) {
1017
- if (file && !file.startsWith(root + "/") && !file.includes("\0") && fs4.existsSync(file)) {
1136
+ if (file && !file.startsWith(root + "/") && !file.includes("\0") && fs5.existsSync(file)) {
1018
1137
  watcher.add(path4.resolve(file));
1019
1138
  }
1020
1139
  }
1021
1140
 
1022
1141
  // src/utils/resolve.ts
1023
1142
  import path5 from "path";
1024
- import fs5 from "fs";
1143
+ import fs6 from "fs";
1025
1144
  import relative from "require-relative";
1026
1145
  function resolveViaPackageJsonSvelte(importee, importer) {
1027
1146
  if (importer && isBareImport(importee)) {
1028
1147
  const importeePkgFile = relative.resolve(`${importee}/package.json`, path5.dirname(importer));
1029
- const importeePkg = JSON.parse(fs5.readFileSync(importeePkgFile, { encoding: "utf-8" }));
1148
+ const importeePkg = JSON.parse(fs6.readFileSync(importeePkgFile, { encoding: "utf-8" }));
1030
1149
  if (importeePkg.svelte) {
1031
1150
  return path5.resolve(path5.dirname(importeePkgFile), importeePkg.svelte);
1032
1151
  }
@@ -1052,14 +1171,14 @@ import {
1052
1171
  transformWithEsbuild
1053
1172
  } from "vite";
1054
1173
  import MagicString2 from "magic-string";
1055
- import { preprocess as preprocess2 } from "svelte/compiler";
1174
+ import { preprocess as preprocess3 } from "svelte/compiler";
1056
1175
 
1057
1176
  // src/utils/sourcemap.ts
1058
1177
  import MagicString from "magic-string";
1059
1178
  async function buildMagicString(from, to, options) {
1060
1179
  let diff_match_patch, DIFF_DELETE, DIFF_INSERT;
1061
1180
  try {
1062
- const dmpPkg = await Promise.resolve().then(() => __toModule(__require("diff-match-patch")));
1181
+ const dmpPkg = await import("diff-match-patch");
1063
1182
  diff_match_patch = dmpPkg.diff_match_patch;
1064
1183
  DIFF_INSERT = dmpPkg.DIFF_INSERT;
1065
1184
  DIFF_DELETE = dmpPkg.DIFF_DELETE;
@@ -1152,7 +1271,7 @@ function createViteStylePreprocessor(config) {
1152
1271
  function createVitePreprocessorGroup(config) {
1153
1272
  return {
1154
1273
  markup({ content, filename }) {
1155
- return preprocess2(content, {
1274
+ return preprocess3(content, {
1156
1275
  script: createViteScriptPreprocessor(),
1157
1276
  style: createViteStylePreprocessor(config)
1158
1277
  }, { filename });
@@ -1287,7 +1406,7 @@ function svelte(inlineOptions) {
1287
1406
  let requestParser;
1288
1407
  let options;
1289
1408
  let viteConfig;
1290
- let compileSvelte;
1409
+ let compileSvelte2;
1291
1410
  let resolvedSvelteSSR;
1292
1411
  return {
1293
1412
  name: "vite-plugin-svelte",
@@ -1306,7 +1425,7 @@ function svelte(inlineOptions) {
1306
1425
  async configResolved(config) {
1307
1426
  addExtraPreprocessors(options, config);
1308
1427
  requestParser = buildIdParser(options);
1309
- compileSvelte = createCompileSvelte(options);
1428
+ compileSvelte2 = createCompileSvelte(options);
1310
1429
  viteConfig = config;
1311
1430
  log.debug("resolved options", options);
1312
1431
  },
@@ -1328,7 +1447,7 @@ function svelte(inlineOptions) {
1328
1447
  }
1329
1448
  if (viteConfig.assetsInclude(filename)) {
1330
1449
  log.debug(`load returns raw content for ${filename}`);
1331
- return fs6.readFileSync(filename, "utf-8");
1450
+ return fs7.readFileSync(filename, "utf-8");
1332
1451
  }
1333
1452
  }
1334
1453
  },
@@ -1392,7 +1511,12 @@ function svelte(inlineOptions) {
1392
1511
  log.error("failed to transform tagged svelte request", svelteRequest);
1393
1512
  throw new Error(`failed to transform tagged svelte request for id ${id}`);
1394
1513
  }
1395
- const compileData = await compileSvelte(svelteRequest, code, options);
1514
+ let compileData;
1515
+ try {
1516
+ compileData = await compileSvelte2(svelteRequest, code, options);
1517
+ } catch (e) {
1518
+ throw toRollupError(e);
1519
+ }
1396
1520
  logCompilerWarnings(compileData.compiled.warnings, options);
1397
1521
  cache.update(compileData);
1398
1522
  if (((_a = compileData.dependencies) == null ? void 0 : _a.length) && options.server) {
@@ -1409,7 +1533,7 @@ function svelte(inlineOptions) {
1409
1533
  }
1410
1534
  const svelteRequest = requestParser(ctx.file, false, ctx.timestamp);
1411
1535
  if (svelteRequest) {
1412
- return handleHotUpdate(compileSvelte, ctx, svelteRequest, cache, options);
1536
+ return handleHotUpdate(compileSvelte2, ctx, svelteRequest, cache, options);
1413
1537
  }
1414
1538
  },
1415
1539
  buildEnd() {