@sveltejs/kit 2.14.1 → 2.15.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.14.1",
3
+ "version": "2.15.1",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -143,7 +143,7 @@ const options = object(
143
143
 
144
144
  output: object({
145
145
  preloadStrategy: list(['modulepreload', 'preload-js', 'preload-mjs']),
146
- bundleStrategy: list(['split', 'single'])
146
+ bundleStrategy: list(['split', 'single', 'inline'])
147
147
  }),
148
148
 
149
149
  paths: object({
@@ -499,14 +499,15 @@ export interface KitConfig {
499
499
  */
500
500
  preloadStrategy?: 'modulepreload' | 'preload-js' | 'preload-mjs';
501
501
  /**
502
- * If `'split'`, splits the app up into multiple .js/.css files so that they are loaded lazily as the user navigates around the app. This is the default, and is recommended for most scenarios.
503
- * If `'single'`, creates just one .js bundle and one .css file containing code for the entire app.
502
+ * - If `'split'`, splits the app up into multiple .js/.css files so that they are loaded lazily as the user navigates around the app. This is the default, and is recommended for most scenarios.
503
+ * - If `'single'`, creates just one .js bundle and one .css file containing code for the entire app.
504
+ * - If `'inline'`, inlines all JavaScript and CSS of the entire app into the HTML. The result is usable without a server (i.e. you can just open the file in your browser).
504
505
  *
505
506
  * When using `'split'`, you can also adjust the bundling behaviour by setting [`output.experimentalMinChunkSize`](https://rollupjs.org/configuration-options/#output-experimentalminchunksize) and [`output.manualChunks`](https://rollupjs.org/configuration-options/#output-manualchunks)inside your Vite config's [`build.rollupOptions`](https://vite.dev/config/build-options.html#build-rollupoptions).
506
507
  * @default 'split'
507
508
  * @since 2.13.0
508
509
  */
509
- bundleStrategy?: 'split' | 'single';
510
+ bundleStrategy?: 'split' | 'single' | 'inline';
510
511
  };
511
512
  paths?: {
512
513
  /**
@@ -631,26 +631,30 @@ async function kit({ svelte_config }) {
631
631
  const client_base =
632
632
  kit.paths.relative !== false || kit.paths.assets ? './' : kit.paths.base || '/';
633
633
 
634
+ const inline = !ssr && svelte_config.kit.output.bundleStrategy === 'inline';
635
+ const split = ssr || svelte_config.kit.output.bundleStrategy === 'split';
636
+
634
637
  new_config = {
635
638
  base: ssr ? assets_base(kit) : client_base,
636
639
  build: {
637
640
  copyPublicDir: !ssr,
638
- cssCodeSplit: true,
641
+ cssCodeSplit: svelte_config.kit.output.bundleStrategy !== 'inline',
639
642
  cssMinify: initial_config.build?.minify == null ? true : !!initial_config.build.minify,
640
643
  // don't use the default name to avoid collisions with 'static/manifest.json'
641
644
  manifest: '.vite/manifest.json', // TODO: remove this after bumping peer dep to vite 5
642
645
  outDir: `${out}/${ssr ? 'server' : 'client'}`,
643
646
  rollupOptions: {
644
- input,
647
+ input: inline ? input['bundle'] : input,
645
648
  output: {
646
- format: 'esm',
649
+ format: inline ? 'iife' : 'esm',
650
+ name: `__sveltekit_${version_hash}.app`,
647
651
  entryFileNames: ssr ? '[name].js' : `${prefix}/[name].[hash].${ext}`,
648
652
  chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[name].[hash].${ext}`,
649
653
  assetFileNames: `${prefix}/assets/[name].[hash][extname]`,
650
654
  hoistTransitiveImports: false,
651
655
  sourcemapIgnoreList,
652
- manualChunks:
653
- svelte_config.kit.output.bundleStrategy === 'single' ? () => 'bundle' : undefined
656
+ manualChunks: split ? undefined : () => 'bundle',
657
+ inlineDynamicImports: false
654
658
  },
655
659
  preserveEntrySignatures: 'strict'
656
660
  },
@@ -868,6 +872,22 @@ async function kit({ svelte_config }) {
868
872
  (chunk) => chunk.type === 'chunk' && chunk.modules[env_dynamic_public]
869
873
  )
870
874
  };
875
+
876
+ if (svelte_config.kit.output.bundleStrategy === 'inline') {
877
+ const style = /** @type {import('rollup').OutputAsset} */ (
878
+ output.find(
879
+ (chunk) =>
880
+ chunk.type === 'asset' &&
881
+ chunk.names.length === 1 &&
882
+ chunk.names[0] === 'style.css'
883
+ )
884
+ );
885
+
886
+ build_data.client.inline = {
887
+ script: read(`${out}/client/${start.file}`),
888
+ style: /** @type {string | undefined} */ (style?.source)
889
+ };
890
+ }
871
891
  }
872
892
 
873
893
  const css = output.filter(
@@ -1,4 +1,4 @@
1
- /* if `bundleStrategy === 'single'`, this file is used as the entry point */
1
+ /* if `bundleStrategy` is 'single' or 'inline', this file is used as the entry point */
2
2
 
3
3
  import * as kit from './entry.js';
4
4
 
@@ -303,12 +303,25 @@ export function create_updated_store() {
303
303
  * - uses hash router and pathname is more than base
304
304
  * @param {URL} url
305
305
  * @param {string} base
306
- * @param {boolean} has_pathname_in_hash
306
+ * @param {boolean} hash_routing
307
307
  */
308
- export function is_external_url(url, base, has_pathname_in_hash) {
309
- return (
310
- url.origin !== origin ||
311
- !url.pathname.startsWith(base) ||
312
- (has_pathname_in_hash && url.pathname !== (base || '/'))
313
- );
308
+ export function is_external_url(url, base, hash_routing) {
309
+ if (url.origin !== origin || !url.pathname.startsWith(base)) {
310
+ return true;
311
+ }
312
+
313
+ if (hash_routing) {
314
+ if (url.pathname === base + '/') {
315
+ return false;
316
+ }
317
+
318
+ // be lenient if serving from filesystem
319
+ if (url.protocol === 'file:' && url.pathname.replace(/\/[^/]+\.html?$/, '') === base) {
320
+ return false;
321
+ }
322
+
323
+ return true;
324
+ }
325
+
326
+ return false;
314
327
  }
@@ -186,10 +186,6 @@ class BaseProvider {
186
186
  this.#style_src.push(source);
187
187
  }
188
188
 
189
- if (this.#style_src_needs_csp) {
190
- this.#style_src.push(source);
191
- }
192
-
193
189
  if (this.#style_src_attr_needs_csp) {
194
190
  this.#style_src_attr.push(source);
195
191
  }
@@ -95,16 +95,21 @@ export async function render_response({
95
95
  let base_expression = s(paths.base);
96
96
 
97
97
  // if appropriate, use relative paths for greater portability
98
- if (paths.relative && !state.prerendering?.fallback) {
99
- const segments = event.url.pathname.slice(paths.base.length).split('/').slice(2);
98
+ if (paths.relative) {
99
+ if (!state.prerendering?.fallback) {
100
+ const segments = event.url.pathname.slice(paths.base.length).split('/').slice(2);
100
101
 
101
- base = segments.map(() => '..').join('/') || '.';
102
+ base = segments.map(() => '..').join('/') || '.';
102
103
 
103
- // resolve e.g. '../..' against current location, then remove trailing slash
104
- base_expression = `new URL(${s(base)}, location).pathname.slice(0, -1)`;
104
+ // resolve e.g. '../..' against current location, then remove trailing slash
105
+ base_expression = `new URL(${s(base)}, location).pathname.slice(0, -1)`;
105
106
 
106
- if (!paths.assets || (paths.assets[0] === '/' && paths.assets !== SVELTE_KIT_ASSETS)) {
107
- assets = base;
107
+ if (!paths.assets || (paths.assets[0] === '/' && paths.assets !== SVELTE_KIT_ASSETS)) {
108
+ assets = base;
109
+ }
110
+ } else if (options.hash_routing) {
111
+ // we have to assume that we're in the right place
112
+ base_expression = "new URL('.', location).pathname.slice(0, -1)";
108
113
  }
109
114
  }
110
115
 
@@ -197,7 +202,7 @@ export async function render_response({
197
202
  for (const url of node.stylesheets) stylesheets.add(url);
198
203
  for (const url of node.fonts) fonts.add(url);
199
204
 
200
- if (node.inline_styles) {
205
+ if (node.inline_styles && !client.inline) {
201
206
  Object.entries(await node.inline_styles()).forEach(([k, v]) => inline_styles.set(k, v));
202
207
  }
203
208
  }
@@ -223,15 +228,18 @@ export async function render_response({
223
228
  return `${assets}/${path}`;
224
229
  };
225
230
 
226
- if (inline_styles.size > 0) {
227
- const content = Array.from(inline_styles.values()).join('\n');
231
+ // inline styles can come from `bundleStrategy: 'inline'` or `inlineStyleThreshold`
232
+ const style = client.inline
233
+ ? client.inline?.style
234
+ : Array.from(inline_styles.values()).join('\n');
228
235
 
236
+ if (style) {
229
237
  const attributes = __SVELTEKIT_DEV__ ? [' data-sveltekit'] : [];
230
238
  if (csp.style_needs_nonce) attributes.push(` nonce="${csp.nonce}"`);
231
239
 
232
- csp.add_style(content);
240
+ csp.add_style(style);
233
241
 
234
- head += `\n\t<style${attributes.join('')}>${content}</style>`;
242
+ head += `\n\t<style${attributes.join('')}>${style}</style>`;
235
243
  }
236
244
 
237
245
  for (const dep of stylesheets) {
@@ -293,17 +301,19 @@ export async function render_response({
293
301
  modulepreloads.add(`${options.app_dir}/env.js`);
294
302
  }
295
303
 
296
- const included_modulepreloads = Array.from(modulepreloads, (dep) => prefixed(dep)).filter(
297
- (path) => resolve_opts.preload({ type: 'js', path })
298
- );
299
-
300
- for (const path of included_modulepreloads) {
301
- // see the kit.output.preloadStrategy option for details on why we have multiple options here
302
- link_header_preloads.add(`<${encodeURI(path)}>; rel="modulepreload"; nopush`);
303
- if (options.preload_strategy !== 'modulepreload') {
304
- head += `\n\t\t<link rel="preload" as="script" crossorigin="anonymous" href="${path}">`;
305
- } else if (state.prerendering) {
306
- head += `\n\t\t<link rel="modulepreload" href="${path}">`;
304
+ if (!client.inline) {
305
+ const included_modulepreloads = Array.from(modulepreloads, (dep) => prefixed(dep)).filter(
306
+ (path) => resolve_opts.preload({ type: 'js', path })
307
+ );
308
+
309
+ for (const path of included_modulepreloads) {
310
+ // see the kit.output.preloadStrategy option for details on why we have multiple options here
311
+ link_header_preloads.add(`<${encodeURI(path)}>; rel="modulepreload"; nopush`);
312
+ if (options.preload_strategy !== 'modulepreload') {
313
+ head += `\n\t\t<link rel="preload" as="script" crossorigin="anonymous" href="${path}">`;
314
+ } else if (state.prerendering) {
315
+ head += `\n\t\t<link rel="modulepreload" href="${path}">`;
316
+ }
307
317
  }
308
318
  }
309
319
 
@@ -392,15 +402,19 @@ export async function render_response({
392
402
  args.push(`{\n${indent}\t${hydrate.join(`,\n${indent}\t`)}\n${indent}}`);
393
403
  }
394
404
 
395
- // `client.app` is a proxy for `bundleStrategy !== 'single'`
396
- const boot = client.app
397
- ? `Promise.all([
405
+ // `client.app` is a proxy for `bundleStrategy === 'split'`
406
+ const boot = client.inline
407
+ ? `${client.inline.script}
408
+
409
+ __sveltekit_${options.version_hash}.app.start(${args.join(', ')});`
410
+ : client.app
411
+ ? `Promise.all([
398
412
  import(${s(prefixed(client.start))}),
399
413
  import(${s(prefixed(client.app))})
400
414
  ]).then(([kit, app]) => {
401
415
  kit.start(app, ${args.join(', ')});
402
416
  });`
403
- : `import(${s(prefixed(client.start))}).then((app) => {
417
+ : `import(${s(prefixed(client.start))}).then((app) => {
404
418
  app.start(${args.join(', ')})
405
419
  });`;
406
420
 
@@ -74,6 +74,10 @@ export interface BuildData {
74
74
  stylesheets: string[];
75
75
  fonts: string[];
76
76
  uses_env_dynamic_public: boolean;
77
+ inline?: {
78
+ script: string;
79
+ style: string | undefined;
80
+ };
77
81
  } | null;
78
82
  server_manifest: import('vite').Manifest;
79
83
  }
@@ -1,4 +1,5 @@
1
- import { BROWSER } from 'esm-env';
1
+ // @ts-ignore - need to publish types for sub-package imports
2
+ import BROWSER from 'esm-env/browser';
2
3
 
3
4
  const param_pattern = /^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;
4
5
 
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.14.1';
4
+ export const VERSION = '2.15.1';
package/types/index.d.ts CHANGED
@@ -481,14 +481,15 @@ declare module '@sveltejs/kit' {
481
481
  */
482
482
  preloadStrategy?: 'modulepreload' | 'preload-js' | 'preload-mjs';
483
483
  /**
484
- * If `'split'`, splits the app up into multiple .js/.css files so that they are loaded lazily as the user navigates around the app. This is the default, and is recommended for most scenarios.
485
- * If `'single'`, creates just one .js bundle and one .css file containing code for the entire app.
484
+ * - If `'split'`, splits the app up into multiple .js/.css files so that they are loaded lazily as the user navigates around the app. This is the default, and is recommended for most scenarios.
485
+ * - If `'single'`, creates just one .js bundle and one .css file containing code for the entire app.
486
+ * - If `'inline'`, inlines all JavaScript and CSS of the entire app into the HTML. The result is usable without a server (i.e. you can just open the file in your browser).
486
487
  *
487
488
  * When using `'split'`, you can also adjust the bundling behaviour by setting [`output.experimentalMinChunkSize`](https://rollupjs.org/configuration-options/#output-experimentalminchunksize) and [`output.manualChunks`](https://rollupjs.org/configuration-options/#output-manualchunks)inside your Vite config's [`build.rollupOptions`](https://vite.dev/config/build-options.html#build-rollupoptions).
488
489
  * @default 'split'
489
490
  * @since 2.13.0
490
491
  */
491
- bundleStrategy?: 'split' | 'single';
492
+ bundleStrategy?: 'split' | 'single' | 'inline';
492
493
  };
493
494
  paths?: {
494
495
  /**
@@ -1667,6 +1668,10 @@ declare module '@sveltejs/kit' {
1667
1668
  stylesheets: string[];
1668
1669
  fonts: string[];
1669
1670
  uses_env_dynamic_public: boolean;
1671
+ inline?: {
1672
+ script: string;
1673
+ style: string | undefined;
1674
+ };
1670
1675
  } | null;
1671
1676
  server_manifest: import('vite').Manifest;
1672
1677
  }
@@ -159,6 +159,6 @@
159
159
  null,
160
160
  null
161
161
  ],
162
- "mappings": "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",
162
+ "mappings": "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",
163
163
  "ignoreList": []
164
164
  }