@sveltejs/kit 1.0.0-next.34 → 1.0.0-next.340

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.
Files changed (73) hide show
  1. package/README.md +12 -9
  2. package/assets/app/env.js +16 -0
  3. package/assets/app/navigation.js +24 -0
  4. package/assets/app/paths.js +1 -0
  5. package/assets/app/stores.js +97 -0
  6. package/assets/client/singletons.js +13 -0
  7. package/assets/client/start.js +1768 -0
  8. package/assets/components/error.svelte +18 -2
  9. package/assets/env.js +8 -0
  10. package/assets/paths.js +13 -0
  11. package/assets/server/index.js +3384 -0
  12. package/dist/chunks/cert.js +28154 -0
  13. package/dist/chunks/constants.js +663 -0
  14. package/dist/chunks/filesystem.js +110 -0
  15. package/dist/chunks/index.js +544 -0
  16. package/dist/chunks/index2.js +1384 -0
  17. package/dist/chunks/index3.js +118 -0
  18. package/dist/chunks/index4.js +183 -0
  19. package/dist/chunks/index5.js +252 -0
  20. package/dist/chunks/index6.js +15749 -0
  21. package/dist/chunks/misc.js +78 -0
  22. package/dist/chunks/multipart-parser.js +449 -0
  23. package/dist/chunks/object.js +83 -0
  24. package/dist/chunks/sync.js +858 -0
  25. package/dist/chunks/write_tsconfig.js +160 -0
  26. package/dist/cli.js +1101 -64
  27. package/dist/hooks.js +28 -0
  28. package/dist/install-fetch.js +6518 -0
  29. package/dist/node.js +94 -0
  30. package/package.json +80 -62
  31. package/svelte-kit.js +0 -1
  32. package/types/ambient.d.ts +302 -0
  33. package/types/index.d.ts +292 -0
  34. package/types/internal.d.ts +321 -0
  35. package/types/private.d.ts +235 -0
  36. package/CHANGELOG.md +0 -362
  37. package/assets/runtime/app/navigation.js +0 -23
  38. package/assets/runtime/app/navigation.js.map +0 -1
  39. package/assets/runtime/app/paths.js +0 -2
  40. package/assets/runtime/app/paths.js.map +0 -1
  41. package/assets/runtime/app/stores.js +0 -78
  42. package/assets/runtime/app/stores.js.map +0 -1
  43. package/assets/runtime/internal/singletons.js +0 -15
  44. package/assets/runtime/internal/singletons.js.map +0 -1
  45. package/assets/runtime/internal/start.js +0 -591
  46. package/assets/runtime/internal/start.js.map +0 -1
  47. package/assets/runtime/utils-85ebcc60.js +0 -18
  48. package/assets/runtime/utils-85ebcc60.js.map +0 -1
  49. package/dist/api.js +0 -32
  50. package/dist/api.js.map +0 -1
  51. package/dist/cli.js.map +0 -1
  52. package/dist/create_app.js +0 -577
  53. package/dist/create_app.js.map +0 -1
  54. package/dist/index.js +0 -329
  55. package/dist/index.js.map +0 -1
  56. package/dist/index2.js +0 -14368
  57. package/dist/index2.js.map +0 -1
  58. package/dist/index3.js +0 -545
  59. package/dist/index3.js.map +0 -1
  60. package/dist/index4.js +0 -71
  61. package/dist/index4.js.map +0 -1
  62. package/dist/index5.js +0 -465
  63. package/dist/index5.js.map +0 -1
  64. package/dist/index6.js +0 -729
  65. package/dist/index6.js.map +0 -1
  66. package/dist/renderer.js +0 -2413
  67. package/dist/renderer.js.map +0 -1
  68. package/dist/standard.js +0 -100
  69. package/dist/standard.js.map +0 -1
  70. package/dist/utils.js +0 -57
  71. package/dist/utils.js.map +0 -1
  72. package/dist/vite.js +0 -317
  73. package/dist/vite.js.map +0 -1
package/dist/index3.js DELETED
@@ -1,545 +0,0 @@
1
- import fs, { existsSync, readFileSync, writeFileSync } from 'fs';
2
- import { fileURLToPath } from 'url';
3
- import path from 'path';
4
- import require$$1 from 'child_process';
5
- import { promisify } from 'util';
6
- import { b as bold, g as green, c as cyan } from './index.js';
7
- import { m as mkdirp, c as copy_assets } from './utils.js';
8
- import { c as create_manifest_data, a as create_app } from './create_app.js';
9
- import { rollup } from 'rollup';
10
- import { terser } from 'rollup-plugin-terser';
11
- import css_chunks from 'rollup-plugin-css-chunks';
12
- import './standard.js';
13
-
14
- const inject_styles = `
15
- export default function(files) {
16
- return Promise.all(files.map(function(file) { return new Promise(function(fulfil, reject) {
17
- var href = new URL(file, import.meta.url);
18
- var baseURI = document.baseURI;
19
- if (!baseURI) {
20
- var baseTags = document.getElementsByTagName('base');
21
- baseURI = baseTags.length ? baseTags[0].href : document.URL;
22
- }
23
- var relative = ('' + href).substring(baseURI.length);
24
- var link = document.querySelector('link[rel=stylesheet][href="' + relative + '"]')
25
- || document.querySelector('link[rel=stylesheet][href="' + href + '"]');
26
- if (!link) {
27
- link = document.createElement('link');
28
- link.rel = 'stylesheet';
29
- link.href = href;
30
- document.head.appendChild(link);
31
- }
32
- if (link.sheet) {
33
- fulfil();
34
- } else {
35
- link.addEventListener('load', function() { return fulfil() });
36
- link.addEventListener('error', reject);
37
- }
38
- })}));
39
- };`.trim();
40
-
41
- const INJECT_STYLES_NAME = 'inject_styles';
42
- const INJECT_STYLES_ID = 'inject_styles.js';
43
-
44
- const find_css = (chunk, bundle) => {
45
- const css_files = new Set();
46
- const visited = new Set();
47
-
48
- const recurse = (c) => {
49
- if (visited.has(c)) return;
50
- visited.add(c);
51
-
52
- if (c.imports) {
53
- c.imports.forEach((file) => {
54
- if (file.endsWith('.css')) {
55
- css_files.add(file);
56
- } else {
57
- const imported_chunk = bundle[file];
58
- if (imported_chunk) {
59
- recurse(imported_chunk);
60
- }
61
- }
62
- });
63
- }
64
- };
65
-
66
- recurse(chunk);
67
- return Array.from(css_files);
68
- };
69
-
70
- const css_injection = {
71
- name: 'svelte-css-injection',
72
- buildStart() {
73
- this.emitFile({
74
- type: 'chunk',
75
- id: INJECT_STYLES_ID,
76
- name: INJECT_STYLES_NAME,
77
- preserveSignature: 'allow-extension'
78
- });
79
- },
80
- load(id) {
81
- return id === INJECT_STYLES_ID ? inject_styles : null;
82
- },
83
- resolveId(importee) {
84
- return importee === INJECT_STYLES_ID ? INJECT_STYLES_ID : null;
85
- },
86
- renderDynamicImport({ targetModuleId }) {
87
- if (targetModuleId) {
88
- const t = Buffer.from(targetModuleId).toString('hex');
89
- return {
90
- left: 'Promise.all([import(',
91
- right: `), ___SVELTE_CSS_INJECTION___${t}___]).then(function(x) { return x[0]; })`
92
- };
93
- } else {
94
- return {
95
- left: 'import(',
96
- right: ')'
97
- };
98
- }
99
- },
100
- async generateBundle(_options, bundle) {
101
- const inject_styles_file = Object.keys(bundle).find((f) => f.startsWith('inject_styles'));
102
-
103
- let has_css = false;
104
- for (const name in bundle) {
105
- const chunk = bundle[name];
106
-
107
- let chunk_has_css = false;
108
-
109
- if (chunk.code) {
110
- chunk.code = chunk.code.replace(/___SVELTE_CSS_INJECTION___([0-9a-f]+)___/g, (_m, id) => {
111
- id = Buffer.from(id, 'hex').toString();
112
- const target = Object.values(bundle).find((c) => c.modules && c.modules[id]);
113
-
114
- if (target) {
115
- const css_files = find_css(target, bundle);
116
- if (css_files.length > 0) {
117
- chunk_has_css = true;
118
- return `__inject_styles(${JSON.stringify(css_files)})`;
119
- }
120
- }
121
-
122
- return '';
123
- });
124
-
125
- if (chunk_has_css) {
126
- has_css = true;
127
- chunk.code += `\nimport __inject_styles from './${inject_styles_file}';`;
128
- }
129
- }
130
- }
131
-
132
- if (!has_css) {
133
- delete bundle[inject_styles_file];
134
- }
135
- }
136
- };
137
-
138
- const execFile = promisify(require$$1.execFile);
139
-
140
- let snowpack_pkg_file;
141
- let dir = fileURLToPath(import.meta.url);
142
- while (dir !== (dir = path.join(dir, '..'))) {
143
- snowpack_pkg_file = path.join(dir, 'node_modules/snowpack/package.json');
144
- if (existsSync(snowpack_pkg_file)) break;
145
- }
146
-
147
- const snowpack_pkg = JSON.parse(readFileSync(snowpack_pkg_file, 'utf-8')); // eslint-disable-line
148
- const snowpack_bin = path.resolve(path.dirname(snowpack_pkg_file), snowpack_pkg.bin.snowpack);
149
- const ignorable_warnings = new Set(['EMPTY_BUNDLE', 'MISSING_EXPORT']);
150
- const onwarn = (warning, handler) => {
151
- // TODO would be nice to just eliminate the circular dependencies instead of
152
- // squelching these warnings (it happens when e.g. the root layout imports
153
- // from $app/navigation)
154
- if (ignorable_warnings.has(warning.code)) return;
155
- handler(warning);
156
- };
157
-
158
- const DIR = '.svelte';
159
- const ASSETS = `${DIR}/assets`;
160
- const UNOPTIMIZED = `${DIR}/build/unoptimized`;
161
- const OPTIMIZED = `${DIR}/build/optimized`;
162
-
163
- const s = JSON.stringify;
164
-
165
- async function build(config) {
166
- const manifest = create_manifest_data(config);
167
-
168
- mkdirp(ASSETS);
169
- await rimraf(UNOPTIMIZED);
170
- await rimraf(OPTIMIZED);
171
-
172
- create_app({
173
- manifest_data: manifest,
174
- output: '.svelte/assets'
175
- });
176
-
177
- copy_assets();
178
-
179
- // TODO use import.meta.env.SSR upon resolution of https://github.com/snowpackjs/snowpack/discussions/1889
180
- // prettier-ignore
181
- writeFileSync('.svelte/assets/runtime/app/env.js', [
182
- 'export const browser = typeof window !== "undefined";',
183
- 'export const dev = false;',
184
- `export const amp = ${config.amp};`
185
- ].join('\n'));
186
-
187
- const tick = bold(green('✔'));
188
- console.log(bold(cyan('Transforming...')));
189
-
190
- const mount = [
191
- `--mount.${config.files.routes}=/${config.appDir}/routes`,
192
- `--mount.${config.files.setup}=/${config.appDir}/setup`
193
- ];
194
-
195
- const env = { ...process.env, SVELTE_KIT_APP_DIR: config.appDir };
196
-
197
- const promises = {
198
- transform_client: execFile(
199
- process.argv[0],
200
- [snowpack_bin, 'build', ...mount, `--out=${UNOPTIMIZED}/client`],
201
- { env }
202
- ),
203
- transform_server: execFile(
204
- process.argv[0],
205
- [snowpack_bin, 'build', ...mount, `--out=${UNOPTIMIZED}/server`, '--ssr'],
206
- { env }
207
- )
208
- };
209
-
210
- await promises.transform_client;
211
- console.log(` ${tick} client`);
212
-
213
- await promises.transform_server;
214
- console.log(` ${tick} server`);
215
-
216
- console.log(bold(cyan('Optimizing...')));
217
-
218
- const client = {
219
- entry: null,
220
- deps: {}
221
- };
222
-
223
- const entry = path.resolve(
224
- `${UNOPTIMIZED}/client/${config.appDir}/assets/runtime/internal/start.js`
225
- );
226
-
227
- const client_chunks = await rollup({
228
- input: {
229
- entry
230
- },
231
- plugins: [
232
- {
233
- name: 'deproxy-css',
234
- async resolveId(importee, importer) {
235
- if (/\.css\.proxy\.js$/.test(importee)) {
236
- const deproxied = importee.replace(/\.css\.proxy\.js$/, '.css');
237
- const resolved = await this.resolve(deproxied, importer);
238
- return resolved.id;
239
- }
240
- }
241
- },
242
- // TODO the .default suggests a bug in the css_chunks plugin
243
- css_chunks.default({
244
- entryFileNames: '[name]-[hash].css',
245
- sourcemap: true
246
- }),
247
- css_injection,
248
- {
249
- name: 'generate-client-manifest',
250
- generateBundle(_options, bundle) {
251
- const reverse_lookup = new Map();
252
-
253
- const routes = path.resolve(`${UNOPTIMIZED}/client/${config.appDir}/routes`);
254
-
255
- let inject_styles;
256
-
257
- for (const key in bundle) {
258
- const chunk = bundle[key];
259
-
260
- if (chunk.facadeModuleId === entry) {
261
- client.entry = key;
262
- } else if (chunk.facadeModuleId === 'inject_styles.js') {
263
- inject_styles = key;
264
- } else if (chunk.modules) {
265
- for (const id in chunk.modules) {
266
- if (id.startsWith(routes) && id.endsWith('.js')) {
267
- const file = id.slice(routes.length + 1);
268
- reverse_lookup.set(file, key);
269
- }
270
- }
271
- }
272
- }
273
-
274
- const find_deps = (key, js, css) => {
275
- if (js.has(key)) return;
276
-
277
- js.add(key);
278
-
279
- const chunk = bundle[key];
280
-
281
- if (chunk) {
282
- const imports = chunk.imports;
283
-
284
- if (imports) {
285
- imports.forEach((key) => {
286
- if (key.endsWith('.css')) {
287
- js.add(inject_styles);
288
- css.add(key);
289
- } else {
290
- find_deps(key, js, css);
291
- }
292
- });
293
- }
294
- } else {
295
- this.error(`'${key}' is imported but could not be bundled`);
296
- }
297
-
298
- return { js, css };
299
- };
300
-
301
- const get_deps = (key) => {
302
- const js = new Set();
303
- const css = new Set();
304
-
305
- find_deps(key, js, css);
306
-
307
- return {
308
- js: Array.from(js),
309
- css: Array.from(css)
310
- };
311
- };
312
-
313
- manifest.components.forEach((component) => {
314
- const file = path.normalize(component.file + '.js');
315
- const key = reverse_lookup.get(file);
316
-
317
- client.deps[component.name] = get_deps(key);
318
- });
319
- }
320
- },
321
- terser()
322
- ],
323
-
324
- onwarn,
325
-
326
- // TODO ensure this works with external node modules (on server)
327
- external: (id) => id[0] !== '.' && !path.isAbsolute(id)
328
- });
329
-
330
- await client_chunks.write({
331
- dir: `${OPTIMIZED}/client/${config.appDir}`,
332
- entryFileNames: '[name]-[hash].js',
333
- chunkFileNames: '[name]-[hash].js',
334
- assetFileNames: '[name]-[hash].js', // TODO CSS filenames aren't hashed?
335
- format: 'esm',
336
- sourcemap: true
337
- });
338
-
339
- console.log(` ${tick} client`);
340
-
341
- const setup_file = `${UNOPTIMIZED}/server/${config.appDir}/setup/index.js`;
342
- if (!fs.existsSync(setup_file)) {
343
- mkdirp(path.dirname(setup_file));
344
- fs.writeFileSync(setup_file, '');
345
- }
346
-
347
- const app_file = `${UNOPTIMIZED}/server/app.js`;
348
-
349
- const component_indexes = new Map();
350
- manifest.components.forEach((c, i) => {
351
- component_indexes.set(c.file, i);
352
- });
353
-
354
- const stringify_component = (c) => `() => import(${s(`.${c.url}`)})`;
355
-
356
- // TODO ideally we wouldn't embed the css_lookup, but this is the easiest
357
- // way to be able to inline CSS into AMP documents. if we come up with
358
- // something better, we could use it for non-AMP documents too, as
359
- // critical CSS below a certain threshold _should_ be inlined
360
- const css_lookup = {};
361
- manifest.pages.forEach((data) => {
362
- data.parts.forEach((c) => {
363
- const deps = client.deps[c.name];
364
- deps.css.forEach((dep) => {
365
- const url = `${config.paths.assets}/${config.appDir}/${dep}`.replace(/^\/\./, '');
366
- const file = `${OPTIMIZED}/client/${config.appDir}/${dep}`;
367
-
368
- css_lookup[url] = readFileSync(file, 'utf-8');
369
- });
370
- });
371
- });
372
-
373
- // TODO get_stack, below, just returns the stack as-is, without sourcemapping
374
-
375
- // prettier-ignore
376
- fs.writeFileSync(
377
- app_file,
378
- `
379
- import * as renderer from '@sveltejs/kit/renderer';
380
- import root from './${config.appDir}/assets/generated/root.svelte.js';
381
- import { set_paths } from './${config.appDir}/assets/runtime/internal/singletons.js';
382
- import * as setup from './${config.appDir}/setup/index.js';
383
-
384
- const template = ({ head, body }) => ${s(fs.readFileSync(config.files.template, 'utf-8'))
385
- .replace('%svelte.head%', '" + head + "')
386
- .replace('%svelte.body%', '" + body + "')};
387
-
388
- const entry = ${s(client.entry)};
389
-
390
- set_paths(${s(config.paths)});
391
-
392
- // allow paths to be overridden in svelte-kit start
393
- export function init({ paths }) {
394
- set_paths(paths);
395
- }
396
-
397
- init({ paths: ${s(config.paths)} });
398
-
399
- const d = decodeURIComponent;
400
- const empty = () => ({});
401
-
402
- const components = [
403
- ${manifest.components.map((c) => stringify_component(c)).join(',\n\t\t\t\t')}
404
- ];
405
-
406
- ${config.amp ? `
407
- const css_lookup = ${s(css_lookup)};` : ''}
408
-
409
- const manifest = {
410
- assets: ${s(manifest.assets)},
411
- layout: ${stringify_component(manifest.layout)},
412
- error: ${stringify_component(manifest.error)},
413
- pages: [
414
- ${manifest.pages
415
- .map((data) => {
416
- const params = get_params(data.params);
417
- const parts = data.parts.map(c => `components[${component_indexes.get(c.file)}]`);
418
-
419
- const path_to_dep = dep => `${config.paths.assets}/${config.appDir}/${dep}`.replace(/^\/\./, '');
420
-
421
- const js_deps = new Set();
422
- const css_deps = new Set();
423
- data.parts.forEach(c => {
424
- const deps = client.deps[c.name];
425
- deps.js.forEach(dep => js_deps.add(path_to_dep(dep)));
426
- deps.css.forEach(dep => css_deps.add(path_to_dep(dep)));
427
- });
428
-
429
- return `{
430
- pattern: ${data.pattern},
431
- params: ${params},
432
- parts: [${parts.join(', ')}],
433
- css: [${Array.from(css_deps).map(s).join(', ')}],
434
- js: [${Array.from(js_deps).map(s).join(', ')}]
435
- }`;
436
- })
437
- .join(',\n\t\t\t\t\t')}
438
- ],
439
- endpoints: [
440
- ${manifest.endpoints
441
- .map((data) => {
442
- const params = get_params(data.params);
443
- const load = `() => import(${s(`.${data.url.replace(/\.\w+$/, '.js')}`)})`;
444
-
445
- return `{ pattern: ${data.pattern}, params: ${params}, load: ${load} }`;
446
- })
447
- .join(',\n\t\t\t\t\t')}
448
- ]
449
- };
450
-
451
- export function render(request, {
452
- paths = ${s(config.paths)},
453
- local = false,
454
- only_prerender = false,
455
- get_static_file
456
- } = {}) {
457
- return renderer.render(request, {
458
- paths,
459
- local,
460
- template,
461
- manifest,
462
- target: ${s(config.target)},${
463
- config.startGlobal ? `\n\t\t\t\t\tstart_global: ${s(config.startGlobal)},` : ''
464
- }
465
- entry,
466
- root,
467
- setup,
468
- dev: false,
469
- amp: ${config.amp},
470
- only_prerender,
471
- app_dir: ${s(config.appDir)},
472
- host: ${s(config.host)},
473
- host_header: ${s(config.hostHeader)},
474
- get_stack: error => error.stack,
475
- get_static_file,
476
- get_amp_css: dep => css_lookup[dep]
477
- });
478
- }
479
- `
480
- .replace(/^\t{3}/gm, '')
481
- .trim()
482
- );
483
-
484
- const server_input = {
485
- app: app_file
486
- };
487
-
488
- const server_chunks = await rollup({
489
- input: server_input,
490
- plugins: [
491
- {
492
- name: 'remove-css',
493
- load(id) {
494
- if (/\.css\.proxy\.js$/.test(id)) return '';
495
- }
496
- },
497
- // TODO add server manifest generation so we can prune
498
- // imports before zipping for cloud functions
499
- terser()
500
- ],
501
-
502
- onwarn,
503
-
504
- // TODO ensure this works with external node modules (on server)
505
- external: (id) => id[0] !== '.' && !path.isAbsolute(id)
506
- });
507
-
508
- await server_chunks.write({
509
- dir: `${OPTIMIZED}/server`,
510
- format: 'esm',
511
- exports: 'named',
512
- entryFileNames: '[name].js',
513
- chunkFileNames: 'chunks/[name].js',
514
- assetFileNames: 'assets/[name].js',
515
- sourcemap: true
516
- });
517
-
518
- console.log(` ${tick} server\n`);
519
- }
520
-
521
- async function rimraf(path) {
522
- return new Promise((resolve) => {
523
- (fs.rm || fs.rmdir)(path, { recursive: true, force: true }, () => resolve());
524
- });
525
- }
526
-
527
- // given an array of params like `['x', 'y', 'z']` for
528
- // src/routes/[x]/[y]/[z]/svelte, create a function
529
- // that turns a RexExpMatchArray into ({ x, y, z })
530
- function get_params(array) {
531
- return array.length
532
- ? '(m) => ({ ' +
533
- array
534
- .map((param, i) => {
535
- return param.startsWith('...')
536
- ? `${param.slice(3)}: d(m[${i + 1}]).split('/')`
537
- : `${param}: d(m[${i + 1}])`;
538
- })
539
- .join(', ') +
540
- '})'
541
- : 'empty';
542
- }
543
-
544
- export { build };
545
- //# sourceMappingURL=index3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index3.js","sources":["../src/api/build/css_injection.js","../src/api/build/index.js"],"sourcesContent":["const inject_styles = `\nexport default function(files) {\n\treturn Promise.all(files.map(function(file) { return new Promise(function(fulfil, reject) {\n\t\tvar href = new URL(file, import.meta.url);\n\t\tvar baseURI = document.baseURI;\n\t\tif (!baseURI) {\n\t\t\tvar baseTags = document.getElementsByTagName('base');\n\t\t\tbaseURI = baseTags.length ? baseTags[0].href : document.URL;\n\t\t}\n\t\tvar relative = ('' + href).substring(baseURI.length);\n\t\tvar link = document.querySelector('link[rel=stylesheet][href=\"' + relative + '\"]')\n\t\t\t|| document.querySelector('link[rel=stylesheet][href=\"' + href + '\"]');\n\t\tif (!link) {\n\t\t\tlink = document.createElement('link');\n\t\t\tlink.rel = 'stylesheet';\n\t\t\tlink.href = href;\n\t\t\tdocument.head.appendChild(link);\n\t\t}\n\t\tif (link.sheet) {\n\t\t\tfulfil();\n\t\t} else {\n\t\t\tlink.addEventListener('load', function() { return fulfil() });\n\t\t\tlink.addEventListener('error', reject);\n\t\t}\n\t})}));\n};`.trim();\n\nconst INJECT_STYLES_NAME = 'inject_styles';\nconst INJECT_STYLES_ID = 'inject_styles.js';\n\nconst find_css = (chunk, bundle) => {\n\tconst css_files = new Set();\n\tconst visited = new Set();\n\n\tconst recurse = (c) => {\n\t\tif (visited.has(c)) return;\n\t\tvisited.add(c);\n\n\t\tif (c.imports) {\n\t\t\tc.imports.forEach((file) => {\n\t\t\t\tif (file.endsWith('.css')) {\n\t\t\t\t\tcss_files.add(file);\n\t\t\t\t} else {\n\t\t\t\t\tconst imported_chunk = bundle[file];\n\t\t\t\t\tif (imported_chunk) {\n\t\t\t\t\t\trecurse(imported_chunk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\trecurse(chunk);\n\treturn Array.from(css_files);\n};\n\nexport const css_injection = {\n\tname: 'svelte-css-injection',\n\tbuildStart() {\n\t\tthis.emitFile({\n\t\t\ttype: 'chunk',\n\t\t\tid: INJECT_STYLES_ID,\n\t\t\tname: INJECT_STYLES_NAME,\n\t\t\tpreserveSignature: 'allow-extension'\n\t\t});\n\t},\n\tload(id) {\n\t\treturn id === INJECT_STYLES_ID ? inject_styles : null;\n\t},\n\tresolveId(importee) {\n\t\treturn importee === INJECT_STYLES_ID ? INJECT_STYLES_ID : null;\n\t},\n\trenderDynamicImport({ targetModuleId }) {\n\t\tif (targetModuleId) {\n\t\t\tconst t = Buffer.from(targetModuleId).toString('hex');\n\t\t\treturn {\n\t\t\t\tleft: 'Promise.all([import(',\n\t\t\t\tright: `), ___SVELTE_CSS_INJECTION___${t}___]).then(function(x) { return x[0]; })`\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tleft: 'import(',\n\t\t\t\tright: ')'\n\t\t\t};\n\t\t}\n\t},\n\tasync generateBundle(_options, bundle) {\n\t\tconst inject_styles_file = Object.keys(bundle).find((f) => f.startsWith('inject_styles'));\n\n\t\tlet has_css = false;\n\t\tfor (const name in bundle) {\n\t\t\tconst chunk = bundle[name];\n\n\t\t\tlet chunk_has_css = false;\n\n\t\t\tif (chunk.code) {\n\t\t\t\tchunk.code = chunk.code.replace(/___SVELTE_CSS_INJECTION___([0-9a-f]+)___/g, (_m, id) => {\n\t\t\t\t\tid = Buffer.from(id, 'hex').toString();\n\t\t\t\t\tconst target = Object.values(bundle).find((c) => c.modules && c.modules[id]);\n\n\t\t\t\t\tif (target) {\n\t\t\t\t\t\tconst css_files = find_css(target, bundle);\n\t\t\t\t\t\tif (css_files.length > 0) {\n\t\t\t\t\t\t\tchunk_has_css = true;\n\t\t\t\t\t\t\treturn `__inject_styles(${JSON.stringify(css_files)})`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn '';\n\t\t\t\t});\n\n\t\t\t\tif (chunk_has_css) {\n\t\t\t\t\thas_css = true;\n\t\t\t\t\tchunk.code += `\\nimport __inject_styles from './${inject_styles_file}';`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!has_css) {\n\t\t\tdelete bundle[inject_styles_file];\n\t\t}\n\t}\n};\n","import fs, { existsSync, readFileSync, writeFileSync } from 'fs';\nimport { fileURLToPath } from 'url';\nimport path from 'path';\nimport child_process from 'child_process';\nimport { promisify } from 'util';\nimport { green, bold, cyan } from 'kleur/colors';\nimport { mkdirp } from '@sveltejs/app-utils/files';\nimport create_manifest_data from '../../core/create_manifest_data';\nimport { rollup } from 'rollup';\nimport { terser } from 'rollup-plugin-terser';\nimport css_chunks from 'rollup-plugin-css-chunks';\nimport { copy_assets } from '../utils';\nimport { create_app } from '../../core/create_app';\nimport { css_injection } from './css_injection';\n\nconst execFile = promisify(child_process.execFile);\n\nlet snowpack_pkg_file;\nlet dir = fileURLToPath(import.meta.url);\nwhile (dir !== (dir = path.join(dir, '..'))) {\n\tsnowpack_pkg_file = path.join(dir, 'node_modules/snowpack/package.json');\n\tif (existsSync(snowpack_pkg_file)) break;\n}\n\nconst snowpack_pkg = JSON.parse(readFileSync(snowpack_pkg_file, 'utf-8')); // eslint-disable-line\nconst snowpack_bin = path.resolve(path.dirname(snowpack_pkg_file), snowpack_pkg.bin.snowpack);\nconst ignorable_warnings = new Set(['EMPTY_BUNDLE', 'MISSING_EXPORT']);\nconst onwarn = (warning, handler) => {\n\t// TODO would be nice to just eliminate the circular dependencies instead of\n\t// squelching these warnings (it happens when e.g. the root layout imports\n\t// from $app/navigation)\n\tif (ignorable_warnings.has(warning.code)) return;\n\thandler(warning);\n};\n\nconst DIR = '.svelte';\nconst ASSETS = `${DIR}/assets`;\nconst UNOPTIMIZED = `${DIR}/build/unoptimized`;\nconst OPTIMIZED = `${DIR}/build/optimized`;\n\nconst s = JSON.stringify;\n\nexport async function build(config) {\n\tconst manifest = create_manifest_data(config);\n\n\tmkdirp(ASSETS);\n\tawait rimraf(UNOPTIMIZED);\n\tawait rimraf(OPTIMIZED);\n\n\tcreate_app({\n\t\tmanifest_data: manifest,\n\t\toutput: '.svelte/assets'\n\t});\n\n\tcopy_assets();\n\n\t// TODO use import.meta.env.SSR upon resolution of https://github.com/snowpackjs/snowpack/discussions/1889\n\t// prettier-ignore\n\twriteFileSync('.svelte/assets/runtime/app/env.js', [\n\t\t'export const browser = typeof window !== \"undefined\";',\n\t\t'export const dev = false;',\n\t\t`export const amp = ${config.amp};`\n\t].join('\\n'));\n\n\tconst tick = bold(green('✔'));\n\tconsole.log(bold(cyan('Transforming...')));\n\n\tconst mount = [\n\t\t`--mount.${config.files.routes}=/${config.appDir}/routes`,\n\t\t`--mount.${config.files.setup}=/${config.appDir}/setup`\n\t];\n\n\tconst env = { ...process.env, SVELTE_KIT_APP_DIR: config.appDir };\n\n\tconst promises = {\n\t\ttransform_client: execFile(\n\t\t\tprocess.argv[0],\n\t\t\t[snowpack_bin, 'build', ...mount, `--out=${UNOPTIMIZED}/client`],\n\t\t\t{ env }\n\t\t),\n\t\ttransform_server: execFile(\n\t\t\tprocess.argv[0],\n\t\t\t[snowpack_bin, 'build', ...mount, `--out=${UNOPTIMIZED}/server`, '--ssr'],\n\t\t\t{ env }\n\t\t)\n\t};\n\n\tawait promises.transform_client;\n\tconsole.log(` ${tick} client`);\n\n\tawait promises.transform_server;\n\tconsole.log(` ${tick} server`);\n\n\tconsole.log(bold(cyan('Optimizing...')));\n\n\tconst client = {\n\t\tentry: null,\n\t\tdeps: {}\n\t};\n\n\tconst entry = path.resolve(\n\t\t`${UNOPTIMIZED}/client/${config.appDir}/assets/runtime/internal/start.js`\n\t);\n\n\tconst client_chunks = await rollup({\n\t\tinput: {\n\t\t\tentry\n\t\t},\n\t\tplugins: [\n\t\t\t{\n\t\t\t\tname: 'deproxy-css',\n\t\t\t\tasync resolveId(importee, importer) {\n\t\t\t\t\tif (/\\.css\\.proxy\\.js$/.test(importee)) {\n\t\t\t\t\t\tconst deproxied = importee.replace(/\\.css\\.proxy\\.js$/, '.css');\n\t\t\t\t\t\tconst resolved = await this.resolve(deproxied, importer);\n\t\t\t\t\t\treturn resolved.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t// TODO the .default suggests a bug in the css_chunks plugin\n\t\t\tcss_chunks.default({\n\t\t\t\tentryFileNames: '[name]-[hash].css',\n\t\t\t\tsourcemap: true\n\t\t\t}),\n\t\t\tcss_injection,\n\t\t\t{\n\t\t\t\tname: 'generate-client-manifest',\n\t\t\t\tgenerateBundle(_options, bundle) {\n\t\t\t\t\tconst reverse_lookup = new Map();\n\n\t\t\t\t\tconst routes = path.resolve(`${UNOPTIMIZED}/client/${config.appDir}/routes`);\n\n\t\t\t\t\tlet inject_styles;\n\n\t\t\t\t\tfor (const key in bundle) {\n\t\t\t\t\t\tconst chunk = bundle[key];\n\n\t\t\t\t\t\tif (chunk.facadeModuleId === entry) {\n\t\t\t\t\t\t\tclient.entry = key;\n\t\t\t\t\t\t} else if (chunk.facadeModuleId === 'inject_styles.js') {\n\t\t\t\t\t\t\tinject_styles = key;\n\t\t\t\t\t\t} else if (chunk.modules) {\n\t\t\t\t\t\t\tfor (const id in chunk.modules) {\n\t\t\t\t\t\t\t\tif (id.startsWith(routes) && id.endsWith('.js')) {\n\t\t\t\t\t\t\t\t\tconst file = id.slice(routes.length + 1);\n\t\t\t\t\t\t\t\t\treverse_lookup.set(file, key);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst find_deps = (key, js, css) => {\n\t\t\t\t\t\tif (js.has(key)) return;\n\n\t\t\t\t\t\tjs.add(key);\n\n\t\t\t\t\t\tconst chunk = bundle[key];\n\n\t\t\t\t\t\tif (chunk) {\n\t\t\t\t\t\t\tconst imports = chunk.imports;\n\n\t\t\t\t\t\t\tif (imports) {\n\t\t\t\t\t\t\t\timports.forEach((key) => {\n\t\t\t\t\t\t\t\t\tif (key.endsWith('.css')) {\n\t\t\t\t\t\t\t\t\t\tjs.add(inject_styles);\n\t\t\t\t\t\t\t\t\t\tcss.add(key);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tfind_deps(key, js, css);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.error(`'${key}' is imported but could not be bundled`);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn { js, css };\n\t\t\t\t\t};\n\n\t\t\t\t\tconst get_deps = (key) => {\n\t\t\t\t\t\tconst js = new Set();\n\t\t\t\t\t\tconst css = new Set();\n\n\t\t\t\t\t\tfind_deps(key, js, css);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tjs: Array.from(js),\n\t\t\t\t\t\t\tcss: Array.from(css)\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\n\t\t\t\t\tmanifest.components.forEach((component) => {\n\t\t\t\t\t\tconst file = path.normalize(component.file + '.js');\n\t\t\t\t\t\tconst key = reverse_lookup.get(file);\n\n\t\t\t\t\t\tclient.deps[component.name] = get_deps(key);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tterser()\n\t\t],\n\n\t\tonwarn,\n\n\t\t// TODO ensure this works with external node modules (on server)\n\t\texternal: (id) => id[0] !== '.' && !path.isAbsolute(id)\n\t});\n\n\tawait client_chunks.write({\n\t\tdir: `${OPTIMIZED}/client/${config.appDir}`,\n\t\tentryFileNames: '[name]-[hash].js',\n\t\tchunkFileNames: '[name]-[hash].js',\n\t\tassetFileNames: '[name]-[hash].js', // TODO CSS filenames aren't hashed?\n\t\tformat: 'esm',\n\t\tsourcemap: true\n\t});\n\n\tconsole.log(` ${tick} client`);\n\n\tconst setup_file = `${UNOPTIMIZED}/server/${config.appDir}/setup/index.js`;\n\tif (!fs.existsSync(setup_file)) {\n\t\tmkdirp(path.dirname(setup_file));\n\t\tfs.writeFileSync(setup_file, '');\n\t}\n\n\tconst app_file = `${UNOPTIMIZED}/server/app.js`;\n\n\tconst component_indexes = new Map();\n\tmanifest.components.forEach((c, i) => {\n\t\tcomponent_indexes.set(c.file, i);\n\t});\n\n\tconst stringify_component = (c) => `() => import(${s(`.${c.url}`)})`;\n\n\t// TODO ideally we wouldn't embed the css_lookup, but this is the easiest\n\t// way to be able to inline CSS into AMP documents. if we come up with\n\t// something better, we could use it for non-AMP documents too, as\n\t// critical CSS below a certain threshold _should_ be inlined\n\tconst css_lookup = {};\n\tmanifest.pages.forEach((data) => {\n\t\tdata.parts.forEach((c) => {\n\t\t\tconst deps = client.deps[c.name];\n\t\t\tdeps.css.forEach((dep) => {\n\t\t\t\tconst url = `${config.paths.assets}/${config.appDir}/${dep}`.replace(/^\\/\\./, '');\n\t\t\t\tconst file = `${OPTIMIZED}/client/${config.appDir}/${dep}`;\n\n\t\t\t\tcss_lookup[url] = readFileSync(file, 'utf-8');\n\t\t\t});\n\t\t});\n\t});\n\n\t// TODO get_stack, below, just returns the stack as-is, without sourcemapping\n\n\t// prettier-ignore\n\tfs.writeFileSync(\n\t\tapp_file,\n\t\t`\n\t\t\timport * as renderer from '@sveltejs/kit/renderer';\n\t\t\timport root from './${config.appDir}/assets/generated/root.svelte.js';\n\t\t\timport { set_paths } from './${config.appDir}/assets/runtime/internal/singletons.js';\n\t\t\timport * as setup from './${config.appDir}/setup/index.js';\n\n\t\t\tconst template = ({ head, body }) => ${s(fs.readFileSync(config.files.template, 'utf-8'))\n\t\t\t\t.replace('%svelte.head%', '\" + head + \"')\n\t\t\t\t.replace('%svelte.body%', '\" + body + \"')};\n\n\t\t\tconst entry = ${s(client.entry)};\n\n\t\t\tset_paths(${s(config.paths)});\n\n\t\t\t// allow paths to be overridden in svelte-kit start\n\t\t\texport function init({ paths }) {\n\t\t\t\tset_paths(paths);\n\t\t\t}\n\n\t\t\tinit({ paths: ${s(config.paths)} });\n\n\t\t\tconst d = decodeURIComponent;\n\t\t\tconst empty = () => ({});\n\n\t\t\tconst components = [\n\t\t\t\t${manifest.components.map((c) => stringify_component(c)).join(',\\n\\t\\t\\t\\t')}\n\t\t\t];\n\n\t\t\t${config.amp ? `\n\t\t\tconst css_lookup = ${s(css_lookup)};` : ''}\n\n\t\t\tconst manifest = {\n\t\t\t\tassets: ${s(manifest.assets)},\n\t\t\t\tlayout: ${stringify_component(manifest.layout)},\n\t\t\t\terror: ${stringify_component(manifest.error)},\n\t\t\t\tpages: [\n\t\t\t\t\t${manifest.pages\n\t\t\t\t\t\t.map((data) => {\n\t\t\t\t\t\t\tconst params = get_params(data.params);\n\t\t\t\t\t\t\tconst parts = data.parts.map(c => `components[${component_indexes.get(c.file)}]`);\n\n\t\t\t\t\t\t\tconst path_to_dep = dep => `${config.paths.assets}/${config.appDir}/${dep}`.replace(/^\\/\\./, '');\n\n\t\t\t\t\t\t\tconst js_deps = new Set();\n\t\t\t\t\t\t\tconst css_deps = new Set();\n\t\t\t\t\t\t\tdata.parts.forEach(c => {\n\t\t\t\t\t\t\t\tconst deps = client.deps[c.name];\n\t\t\t\t\t\t\t\tdeps.js.forEach(dep => js_deps.add(path_to_dep(dep)));\n\t\t\t\t\t\t\t\tdeps.css.forEach(dep => css_deps.add(path_to_dep(dep)));\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn `{\n\t\t\t\t\t\t\t\tpattern: ${data.pattern},\n\t\t\t\t\t\t\t\tparams: ${params},\n\t\t\t\t\t\t\t\tparts: [${parts.join(', ')}],\n\t\t\t\t\t\t\t\tcss: [${Array.from(css_deps).map(s).join(', ')}],\n\t\t\t\t\t\t\t\tjs: [${Array.from(js_deps).map(s).join(', ')}]\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(',\\n\\t\\t\\t\\t\\t')}\n\t\t\t\t],\n\t\t\t\tendpoints: [\n\t\t\t\t\t${manifest.endpoints\n\t\t\t\t\t\t.map((data) => {\n\t\t\t\t\t\t\tconst params = get_params(data.params);\n\t\t\t\t\t\t\tconst load = `() => import(${s(`.${data.url.replace(/\\.\\w+$/, '.js')}`)})`;\n\n\t\t\t\t\t\t\treturn `{ pattern: ${data.pattern}, params: ${params}, load: ${load} }`;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(',\\n\\t\\t\\t\\t\\t')}\n\t\t\t\t]\n\t\t\t};\n\n\t\t\texport function render(request, {\n\t\t\t\tpaths = ${s(config.paths)},\n\t\t\t\tlocal = false,\n\t\t\t\tonly_prerender = false,\n\t\t\t\tget_static_file\n\t\t\t} = {}) {\n\t\t\t\treturn renderer.render(request, {\n\t\t\t\t\tpaths,\n\t\t\t\t\tlocal,\n\t\t\t\t\ttemplate,\n\t\t\t\t\tmanifest,\n\t\t\t\t\ttarget: ${s(config.target)},${\n\t\t\t\t\t\tconfig.startGlobal ? `\\n\\t\\t\\t\\t\\tstart_global: ${s(config.startGlobal)},` : ''\n\t\t\t\t\t}\n\t\t\t\t\tentry,\n\t\t\t\t\troot,\n\t\t\t\t\tsetup,\n\t\t\t\t\tdev: false,\n\t\t\t\t\tamp: ${config.amp},\n\t\t\t\t\tonly_prerender,\n\t\t\t\t\tapp_dir: ${s(config.appDir)},\n\t\t\t\t\thost: ${s(config.host)},\n\t\t\t\t\thost_header: ${s(config.hostHeader)},\n\t\t\t\t\tget_stack: error => error.stack,\n\t\t\t\t\tget_static_file,\n\t\t\t\t\tget_amp_css: dep => css_lookup[dep]\n\t\t\t\t});\n\t\t\t}\n\t\t`\n\t\t\t.replace(/^\\t{3}/gm, '')\n\t\t\t.trim()\n\t);\n\n\tconst server_input = {\n\t\tapp: app_file\n\t};\n\n\tconst server_chunks = await rollup({\n\t\tinput: server_input,\n\t\tplugins: [\n\t\t\t{\n\t\t\t\tname: 'remove-css',\n\t\t\t\tload(id) {\n\t\t\t\t\tif (/\\.css\\.proxy\\.js$/.test(id)) return '';\n\t\t\t\t}\n\t\t\t},\n\t\t\t// TODO add server manifest generation so we can prune\n\t\t\t// imports before zipping for cloud functions\n\t\t\tterser()\n\t\t],\n\n\t\tonwarn,\n\n\t\t// TODO ensure this works with external node modules (on server)\n\t\texternal: (id) => id[0] !== '.' && !path.isAbsolute(id)\n\t});\n\n\tawait server_chunks.write({\n\t\tdir: `${OPTIMIZED}/server`,\n\t\tformat: 'esm',\n\t\texports: 'named',\n\t\tentryFileNames: '[name].js',\n\t\tchunkFileNames: 'chunks/[name].js',\n\t\tassetFileNames: 'assets/[name].js',\n\t\tsourcemap: true\n\t});\n\n\tconsole.log(` ${tick} server\\n`);\n}\n\nasync function rimraf(path) {\n\treturn new Promise((resolve) => {\n\t\t(fs.rm || fs.rmdir)(path, { recursive: true, force: true }, () => resolve());\n\t});\n}\n\n// given an array of params like `['x', 'y', 'z']` for\n// src/routes/[x]/[y]/[z]/svelte, create a function\n// that turns a RexExpMatchArray into ({ x, y, z })\nfunction get_params(array) {\n\treturn array.length\n\t\t? '(m) => ({ ' +\n\t\t\t\tarray\n\t\t\t\t\t.map((param, i) => {\n\t\t\t\t\t\treturn param.startsWith('...')\n\t\t\t\t\t\t\t? `${param.slice(3)}: d(m[${i + 1}]).split('/')`\n\t\t\t\t\t\t\t: `${param}: d(m[${i + 1}])`;\n\t\t\t\t\t})\n\t\t\t\t\t.join(', ') +\n\t\t\t\t'})'\n\t\t: 'empty';\n}\n"],"names":["child_process"],"mappings":"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"}
package/dist/index4.js DELETED
@@ -1,71 +0,0 @@
1
- import { existsSync, readFileSync } from 'fs';
2
- import { createServer } from 'http';
3
- import { parse, URLSearchParams } from 'url';
4
- import { s as sirv, g as get_body } from './index5.js';
5
- import { resolve, join } from 'path';
6
- import './standard.js';
7
-
8
- const mutable = (dir) =>
9
- sirv(dir, {
10
- etag: true,
11
- maxAge: 0
12
- });
13
-
14
- async function start({ port, config }) {
15
- const app_file = resolve('.svelte/build/optimized/server/app.js');
16
- const app = await import(app_file);
17
-
18
- const static_handler = existsSync(config.files.assets)
19
- ? mutable(config.files.assets)
20
- : (_req, _res, next) => next();
21
-
22
- const assets_handler = sirv('.svelte/build/optimized/client', {
23
- maxAge: 31536000,
24
- immutable: true
25
- });
26
-
27
- return new Promise((fulfil) => {
28
- const server = createServer((req, res) => {
29
- const parsed = parse(req.url || '');
30
-
31
- assets_handler(req, res, () => {
32
- static_handler(req, res, async () => {
33
- const rendered = await app.render(
34
- {
35
- method: req.method,
36
- headers: req.headers,
37
- path: parsed.pathname,
38
- body: await get_body(req),
39
- query: new URLSearchParams(parsed.query || '')
40
- },
41
- {
42
- paths: {
43
- base: '',
44
- assets: '/.'
45
- },
46
- get_stack: (error) => error.stack, // TODO should this return a sourcemapped stacktrace?
47
- get_static_file: (file) => readFileSync(join(config.files.assets, file))
48
- }
49
- );
50
-
51
- if (rendered) {
52
- res.writeHead(rendered.status, rendered.headers);
53
- res.end(rendered.body);
54
- } else {
55
- res.statusCode = 404;
56
- res.end('Not found');
57
- }
58
- });
59
- });
60
- });
61
-
62
- server.listen(port, () => {
63
- fulfil(server);
64
- });
65
-
66
- return server;
67
- });
68
- }
69
-
70
- export { start };
71
- //# sourceMappingURL=index4.js.map