@sveltejs/kit 1.0.0-next.5 → 1.0.0-next.500

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 (138) hide show
  1. package/README.md +12 -9
  2. package/package.json +94 -52
  3. package/postinstall.js +38 -0
  4. package/scripts/special-types/$env+dynamic+private.md +10 -0
  5. package/scripts/special-types/$env+dynamic+public.md +8 -0
  6. package/scripts/special-types/$env+static+private.md +19 -0
  7. package/scripts/special-types/$env+static+public.md +7 -0
  8. package/scripts/special-types/$lib.md +5 -0
  9. package/src/cli.js +108 -0
  10. package/src/constants.js +7 -0
  11. package/src/core/adapt/builder.js +206 -0
  12. package/src/core/adapt/index.js +31 -0
  13. package/src/core/config/default-error.html +56 -0
  14. package/src/core/config/index.js +110 -0
  15. package/src/core/config/options.js +504 -0
  16. package/src/core/config/types.d.ts +1 -0
  17. package/src/core/env.js +121 -0
  18. package/src/core/generate_manifest/index.js +93 -0
  19. package/src/core/prerender/crawl.js +198 -0
  20. package/src/core/prerender/entities.js +2252 -0
  21. package/src/core/prerender/prerender.js +431 -0
  22. package/src/core/prerender/queue.js +80 -0
  23. package/src/core/sync/create_manifest_data/index.js +488 -0
  24. package/src/core/sync/create_manifest_data/types.d.ts +37 -0
  25. package/src/core/sync/sync.js +70 -0
  26. package/src/core/sync/utils.js +33 -0
  27. package/src/core/sync/write_ambient.js +53 -0
  28. package/src/core/sync/write_client_manifest.js +106 -0
  29. package/src/core/sync/write_matchers.js +25 -0
  30. package/src/core/sync/write_root.js +91 -0
  31. package/src/core/sync/write_tsconfig.js +195 -0
  32. package/src/core/sync/write_types/index.js +678 -0
  33. package/src/core/utils.js +70 -0
  34. package/src/exports/hooks/index.js +1 -0
  35. package/src/exports/hooks/sequence.js +44 -0
  36. package/src/exports/index.js +45 -0
  37. package/src/exports/node/index.js +173 -0
  38. package/src/exports/node/polyfills.js +41 -0
  39. package/src/exports/vite/build/build_server.js +378 -0
  40. package/src/exports/vite/build/build_service_worker.js +90 -0
  41. package/src/exports/vite/build/utils.js +180 -0
  42. package/src/exports/vite/dev/index.js +577 -0
  43. package/src/exports/vite/graph_analysis/index.js +277 -0
  44. package/src/exports/vite/graph_analysis/types.d.ts +5 -0
  45. package/src/exports/vite/graph_analysis/utils.js +30 -0
  46. package/src/exports/vite/index.js +598 -0
  47. package/src/exports/vite/preview/index.js +189 -0
  48. package/src/exports/vite/types.d.ts +3 -0
  49. package/src/exports/vite/utils.js +157 -0
  50. package/src/runtime/app/env.js +1 -0
  51. package/src/runtime/app/environment.js +11 -0
  52. package/src/runtime/app/forms.js +114 -0
  53. package/src/runtime/app/navigation.js +23 -0
  54. package/src/runtime/app/paths.js +1 -0
  55. package/src/runtime/app/stores.js +102 -0
  56. package/src/runtime/client/ambient.d.ts +26 -0
  57. package/src/runtime/client/client.js +1583 -0
  58. package/src/runtime/client/fetcher.js +107 -0
  59. package/src/runtime/client/parse.js +60 -0
  60. package/src/runtime/client/singletons.js +21 -0
  61. package/src/runtime/client/start.js +37 -0
  62. package/src/runtime/client/types.d.ts +84 -0
  63. package/src/runtime/client/utils.js +159 -0
  64. package/src/runtime/components/error.svelte +16 -0
  65. package/{assets → src/runtime}/components/layout.svelte +0 -0
  66. package/src/runtime/control.js +98 -0
  67. package/src/runtime/env/dynamic/private.js +1 -0
  68. package/src/runtime/env/dynamic/public.js +1 -0
  69. package/src/runtime/env-private.js +6 -0
  70. package/src/runtime/env-public.js +6 -0
  71. package/src/runtime/env.js +6 -0
  72. package/src/runtime/hash.js +16 -0
  73. package/src/runtime/paths.js +11 -0
  74. package/src/runtime/server/cookie.js +127 -0
  75. package/src/runtime/server/data/index.js +136 -0
  76. package/src/runtime/server/endpoint.js +90 -0
  77. package/src/runtime/server/index.js +340 -0
  78. package/src/runtime/server/page/actions.js +243 -0
  79. package/src/runtime/server/page/crypto.js +239 -0
  80. package/src/runtime/server/page/csp.js +250 -0
  81. package/src/runtime/server/page/fetch.js +301 -0
  82. package/src/runtime/server/page/index.js +304 -0
  83. package/src/runtime/server/page/load_data.js +124 -0
  84. package/src/runtime/server/page/render.js +342 -0
  85. package/src/runtime/server/page/respond_with_error.js +104 -0
  86. package/src/runtime/server/page/serialize_data.js +87 -0
  87. package/src/runtime/server/page/types.d.ts +41 -0
  88. package/src/runtime/server/utils.js +179 -0
  89. package/src/utils/array.js +9 -0
  90. package/src/utils/error.js +22 -0
  91. package/src/utils/escape.js +46 -0
  92. package/src/utils/filesystem.js +137 -0
  93. package/src/utils/functions.js +16 -0
  94. package/src/utils/http.js +55 -0
  95. package/src/utils/misc.js +1 -0
  96. package/src/utils/routing.js +117 -0
  97. package/src/utils/unit_test.js +11 -0
  98. package/src/utils/url.js +142 -0
  99. package/svelte-kit.js +2 -0
  100. package/types/ambient.d.ts +426 -0
  101. package/types/index.d.ts +444 -0
  102. package/types/internal.d.ts +378 -0
  103. package/types/private.d.ts +224 -0
  104. package/CHANGELOG.md +0 -177
  105. package/assets/components/error.svelte +0 -13
  106. package/assets/runtime/app/navigation.js +0 -47
  107. package/assets/runtime/app/navigation.js.map +0 -1
  108. package/assets/runtime/app/stores.js +0 -78
  109. package/assets/runtime/app/stores.js.map +0 -1
  110. package/assets/runtime/internal/singletons.js +0 -10
  111. package/assets/runtime/internal/singletons.js.map +0 -1
  112. package/assets/runtime/internal/start.js +0 -517
  113. package/assets/runtime/internal/start.js.map +0 -1
  114. package/dist/api.js +0 -40
  115. package/dist/api.js.map +0 -1
  116. package/dist/cli.js +0 -128
  117. package/dist/cli.js.map +0 -1
  118. package/dist/create_app.js +0 -550
  119. package/dist/create_app.js.map +0 -1
  120. package/dist/index.js +0 -8331
  121. package/dist/index.js.map +0 -1
  122. package/dist/index2.js +0 -509
  123. package/dist/index2.js.map +0 -1
  124. package/dist/index3.js +0 -63
  125. package/dist/index3.js.map +0 -1
  126. package/dist/index4.js +0 -466
  127. package/dist/index4.js.map +0 -1
  128. package/dist/index5.js +0 -276
  129. package/dist/index5.js.map +0 -1
  130. package/dist/package.js +0 -235
  131. package/dist/package.js.map +0 -1
  132. package/dist/renderer.js +0 -2398
  133. package/dist/renderer.js.map +0 -1
  134. package/dist/standard.js +0 -101
  135. package/dist/standard.js.map +0 -1
  136. package/dist/utils.js +0 -58
  137. package/dist/utils.js.map +0 -1
  138. package/svelte-kit +0 -3
@@ -1 +0,0 @@
1
- {"version":3,"file":"create_app.js","sources":["../src/utils.js","../src/core/create_manifest_data.js","../src/core/create_app.js"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { mkdirp } from '@sveltejs/app-utils/files';\n\nexport function left_pad(str, len) {\n\twhile (str.length < len) str = ` ${str}`;\n\treturn str;\n}\n\nexport function repeat(str, i) {\n\tlet result = '';\n\twhile (i--) result += str;\n\treturn result;\n}\n\nexport function format_milliseconds(ms) {\n\tif (ms < 1000) return `${ms}ms`;\n\tif (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n\n\tconst minutes = ~~(ms / 60000);\n\tconst seconds = Math.round((ms % 60000) / 1000);\n\treturn `${minutes}m${seconds < 10 ? '0' : ''}${seconds}s`;\n}\n\nexport function elapsed(start) {\n\treturn format_milliseconds(Date.now() - start);\n}\n\nexport function walk(cwd, dir = cwd, files = []) {\n\tfs.readdirSync(dir).forEach((file) => {\n\t\tconst resolved = path.resolve(dir, file);\n\t\tif (fs.statSync(resolved).isDirectory()) {\n\t\t\twalk(cwd, resolved, files);\n\t\t} else {\n\t\t\tfiles.push(posixify(path.relative(cwd, resolved)));\n\t\t}\n\t});\n\n\treturn files;\n}\n\nexport function posixify(str) {\n\treturn str.replace(/\\\\/g, '/');\n}\n\nconst previous_contents = new Map();\n\nexport function write_if_changed(file, code) {\n\tif (code !== previous_contents.get(file)) {\n\t\tprevious_contents.set(file, code);\n\t\tmkdirp(path.dirname(file));\n\t\tfs.writeFileSync(file, code);\n\t\tfudge_mtime(file);\n\t}\n}\n\nexport function stringify(string, includeQuotes = true) {\n\tconst quoted = JSON.stringify(string);\n\treturn includeQuotes ? quoted : quoted.slice(1, -1);\n}\n\nexport function fudge_mtime(file) {\n\t// need to fudge the mtime so that webpack doesn't go doolally\n\tconst { atime, mtime } = fs.statSync(file);\n\tfs.utimesSync(file, new Date(atime.getTime() - 999999), new Date(mtime.getTime() - 999999));\n}\n\nexport const reserved_words = new Set([\n\t'arguments',\n\t'await',\n\t'break',\n\t'case',\n\t'catch',\n\t'class',\n\t'const',\n\t'continue',\n\t'debugger',\n\t'default',\n\t'delete',\n\t'do',\n\t'else',\n\t'enum',\n\t'eval',\n\t'export',\n\t'extends',\n\t'false',\n\t'finally',\n\t'for',\n\t'function',\n\t'if',\n\t'implements',\n\t'import',\n\t'in',\n\t'instanceof',\n\t'interface',\n\t'let',\n\t'new',\n\t'null',\n\t'package',\n\t'private',\n\t'protected',\n\t'public',\n\t'return',\n\t'static',\n\t'super',\n\t'switch',\n\t'this',\n\t'throw',\n\t'true',\n\t'try',\n\t'typeof',\n\t'var',\n\t'void',\n\t'while',\n\t'with',\n\t'yield'\n]);\n\nexport function normalize_path(user_path) {\n\tconst p = path.normalize(user_path);\n\t// normalize drive letter on Windows\n\treturn p.length ? p.charAt(0).toLowerCase() + p.slice(1) : '';\n}\n","import * as fs from 'fs';\nimport * as path from 'path';\nimport { posixify, reserved_words } from '../utils';\n\nexport default function create_manifest_data(\n\tcwd,\n\textensions = '.svelte .html'\n) {\n\tconst component_extensions = extensions.split(' ');\n\n\tfunction find_layout(file_name, component_name, dir = '') {\n\t\tconst ext = component_extensions.find((ext) =>\n\t\t\tfs.existsSync(path.join(cwd, dir, `${file_name}${ext}`))\n\t\t);\n\t\tconst file = posixify(path.join(dir, `${file_name}${ext}`));\n\t\tconst url = `/_app/routes/${file}`;\n\n\t\treturn ext\n\t\t\t? {\n\t\t\t\t\tname: component_name,\n\t\t\t\t\tfile,\n\t\t\t\t\turl\n\t\t\t }\n\t\t\t: null;\n\t}\n\n\tconst components = [];\n\tconst pages = [];\n\tconst endpoints = [];\n\n\tconst default_layout = {\n\t\tname: '$default_layout',\n\t\turl: '/_app/assets/components/layout.svelte'\n\t};\n\n\tconst default_error = {\n\t\tname: '$default_error',\n\t\turl: '/_app/assets/components/error.svelte'\n\t};\n\n\tfunction walk(\n\t\tdir,\n\t\tparent_segments,\n\t\tparent_params,\n\t\tstack\n\t) {\n\t\tconst items = fs\n\t\t\t.readdirSync(dir)\n\t\t\t.map((basename) => {\n\t\t\t\tconst resolved = path.join(dir, basename);\n\t\t\t\tconst file = path.relative(cwd, resolved);\n\t\t\t\tconst is_dir = fs.statSync(resolved).isDirectory();\n\n\t\t\t\tconst ext = path.extname(basename);\n\n\t\t\t\tif (basename[0] === '$') return null; // $layout, $error\n\t\t\t\tif (basename[0] === '_') return null; // private files\n\t\t\t\tif (basename[0] === '.' && basename !== '.well-known') return null;\n\t\t\t\tif (!is_dir && !/^\\.[a-z]+$/i.test(ext)) return null; // filter out tmp files etc\n\n\t\t\t\tconst segment = is_dir ? basename : basename.slice(0, -ext.length);\n\n\t\t\t\tif (/\\]\\[/.test(segment)) {\n\t\t\t\t\tthrow new Error(`Invalid route ${file} — parameters must be separated`);\n\t\t\t\t}\n\n\t\t\t\tconst parts = get_parts(segment);\n\t\t\t\tconst is_index = is_dir ? false : basename.startsWith('index.');\n\t\t\t\tconst is_page = component_extensions.indexOf(ext) !== -1;\n\t\t\t\tconst route_suffix = basename.slice(basename.indexOf('.'), -ext.length);\n\n\t\t\t\tparts.forEach((part) => {\n\t\t\t\t\tif (part.qualifier && /[()?:]/.test(part.qualifier.slice(1, -1))) {\n\t\t\t\t\t\tthrow new Error(`Invalid route ${file} — cannot use (, ), ? or : in route qualifiers`);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tbasename,\n\t\t\t\t\text,\n\t\t\t\t\tparts,\n\t\t\t\t\tfile: posixify(file),\n\t\t\t\t\tis_dir,\n\t\t\t\t\tis_index,\n\t\t\t\t\tis_page,\n\t\t\t\t\troute_suffix\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter(Boolean)\n\t\t\t.sort(comparator);\n\n\t\titems.forEach((item) => {\n\t\t\tconst segments = parent_segments.slice();\n\n\t\t\tif (item.is_index) {\n\t\t\t\tif (item.route_suffix) {\n\t\t\t\t\tif (segments.length > 0) {\n\t\t\t\t\t\tconst last_segment = segments[segments.length - 1].slice();\n\t\t\t\t\t\tconst last_part = last_segment[last_segment.length - 1];\n\n\t\t\t\t\t\tif (last_part.dynamic) {\n\t\t\t\t\t\t\tlast_segment.push({ dynamic: false, content: item.route_suffix });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlast_segment[last_segment.length - 1] = {\n\t\t\t\t\t\t\t\tdynamic: false,\n\t\t\t\t\t\t\t\tcontent: `${last_part.content}${item.route_suffix}`\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsegments[segments.length - 1] = last_segment;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsegments.push(item.parts);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsegments.push(item.parts);\n\t\t\t}\n\n\t\t\tconst params = parent_params.slice();\n\t\t\tparams.push(...item.parts.filter((p) => p.dynamic).map((p) => p.content));\n\n\t\t\tif (item.is_dir) {\n\t\t\t\tconst component = find_layout('$layout', `${get_slug(item.file)}__layout`, item.file);\n\n\t\t\t\tif (component) components.push(component);\n\n\t\t\t\twalk(\n\t\t\t\t\tpath.join(dir, item.basename),\n\t\t\t\t\tsegments,\n\t\t\t\t\tparams,\n\t\t\t\t\tcomponent ? stack.concat({ component, params }) : stack\n\t\t\t\t);\n\t\t\t} else if (item.is_page) {\n\t\t\t\tconst component = {\n\t\t\t\t\tname: get_slug(item.file),\n\t\t\t\t\tfile: item.file,\n\t\t\t\t\turl: `/_app/routes/${item.file}`\n\t\t\t\t};\n\n\t\t\t\tcomponents.push(component);\n\n\t\t\t\tconst parts =\n\t\t\t\t\titem.is_index && stack[stack.length - 1] === null\n\t\t\t\t\t\t? stack.slice(0, -1).concat({ component, params })\n\t\t\t\t\t\t: stack.concat({ component, params });\n\n\t\t\t\tconst is_static = segments.every((segment) => segment.length === 1 && !segment[0].dynamic);\n\t\t\t\tconst path = is_static\n\t\t\t\t\t? `/${segments.map((segment) => segment[0].content).join('/')}`\n\t\t\t\t\t: null;\n\n\t\t\t\tpages.push({\n\t\t\t\t\tpath,\n\t\t\t\t\tpattern: get_pattern(segments, true),\n\t\t\t\t\tparts\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tendpoints.push({\n\t\t\t\t\tname: `route_${get_slug(item.file)}`,\n\t\t\t\t\tpattern: get_pattern(segments, !item.route_suffix),\n\t\t\t\t\tfile: item.file,\n\t\t\t\t\turl: `/_app/routes/${item.file}`,\n\t\t\t\t\tparams\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tconst layout = find_layout('$layout', 'main') || default_layout;\n\tconst error = find_layout('$error', 'error') || default_error;\n\n\twalk(cwd, [], [], []);\n\n\t// check for clashes\n\tconst seen_pages = new Map();\n\tpages.forEach((page) => {\n\t\tconst pattern = page.pattern.toString();\n\t\tif (seen_pages.has(pattern)) {\n\t\t\tconst file = page.parts.pop().component.file;\n\t\t\tconst other_page = seen_pages.get(pattern);\n\t\t\tconst other_file = other_page.parts.pop().component.file;\n\n\t\t\tthrow new Error(`The ${other_file} and ${file} pages clash`);\n\t\t}\n\n\t\tseen_pages.set(pattern, page);\n\t});\n\n\tconst seen_routes = new Map();\n\tendpoints.forEach((route) => {\n\t\tconst pattern = route.pattern.toString();\n\t\tif (seen_routes.has(pattern)) {\n\t\t\tconst other_route = seen_routes.get(pattern);\n\t\t\tthrow new Error(`The ${other_route.file} and ${route.file} routes clash`);\n\t\t}\n\n\t\tseen_routes.set(pattern, route);\n\t});\n\n\treturn {\n\t\tlayout,\n\t\terror,\n\t\tcomponents,\n\t\tpages,\n\t\tendpoints\n\t};\n}\n\nfunction is_spread(path) {\n\tconst spread_pattern = /\\[\\.{3}/g;\n\treturn spread_pattern.test(path);\n}\n\nfunction comparator(a, b) {\n\tif (a.is_index !== b.is_index) {\n\t\tif (a.is_index) return is_spread(a.file) ? 1 : -1;\n\n\t\treturn is_spread(b.file) ? -1 : 1;\n\t}\n\n\tconst max = Math.max(a.parts.length, b.parts.length);\n\n\tfor (let i = 0; i < max; i += 1) {\n\t\tconst a_sub_part = a.parts[i];\n\t\tconst b_sub_part = b.parts[i];\n\n\t\tif (!a_sub_part) return 1; // b is more specific, so goes first\n\t\tif (!b_sub_part) return -1;\n\n\t\t// if spread && index, order later\n\t\tif (a_sub_part.spread && b_sub_part.spread) {\n\t\t\treturn a.is_index ? 1 : -1;\n\t\t}\n\n\t\t// If one is ...spread order it later\n\t\tif (a_sub_part.spread !== b_sub_part.spread) return a_sub_part.spread ? 1 : -1;\n\n\t\tif (a_sub_part.dynamic !== b_sub_part.dynamic) {\n\t\t\treturn a_sub_part.dynamic ? 1 : -1;\n\t\t}\n\n\t\tif (!a_sub_part.dynamic && a_sub_part.content !== b_sub_part.content) {\n\t\t\treturn (\n\t\t\t\tb_sub_part.content.length - a_sub_part.content.length ||\n\t\t\t\t(a_sub_part.content < b_sub_part.content ? -1 : 1)\n\t\t\t);\n\t\t}\n\n\t\t// If both parts dynamic, check for regexp patterns\n\t\tif (a_sub_part.dynamic && b_sub_part.dynamic) {\n\t\t\tconst regexp_pattern = /\\((.*?)\\)/;\n\t\t\tconst a_match = regexp_pattern.exec(a_sub_part.content);\n\t\t\tconst b_match = regexp_pattern.exec(b_sub_part.content);\n\n\t\t\tif (!a_match && b_match) {\n\t\t\t\treturn 1; // No regexp, so less specific than b\n\t\t\t}\n\t\t\tif (!b_match && a_match) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (a_match && b_match && a_match[1] !== b_match[1]) {\n\t\t\t\treturn b_match[1].length - a_match[1].length;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction get_parts(part) {\n\treturn part\n\t\t.split(/\\[(.+?\\(.+?\\)|.+?)\\]/)\n\t\t.map((str, i) => {\n\t\t\tif (!str) return null;\n\t\t\tconst dynamic = i % 2 === 1;\n\n\t\t\tconst [, content, qualifier] = dynamic ? /([^(]+)(\\(.+\\))?$/.exec(str) : [null, str, null];\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tdynamic,\n\t\t\t\tspread: dynamic && /^\\.{3}.+$/.test(content),\n\t\t\t\tqualifier\n\t\t\t};\n\t\t})\n\t\t.filter(Boolean);\n}\n\nfunction get_slug(file) {\n\tlet name = file\n\t\t.replace(/[\\\\/]index/, '')\n\t\t.replace(/[/\\\\]/g, '_')\n\t\t.replace(/\\.\\w+$/, '')\n\t\t.replace(/\\[([^(]+)(?:\\([^(]+\\))?\\]/, '$$$1')\n\t\t.replace(/[^a-zA-Z0-9_$]/g, (c) => {\n\t\t\treturn c === '.' ? '_' : `$${c.charCodeAt(0)}`;\n\t\t});\n\n\tif (reserved_words.has(name)) name += '_';\n\treturn name;\n}\n\nfunction get_pattern(segments, add_trailing_slash) {\n\tconst path = segments\n\t\t.map((segment) => {\n\t\t\treturn segment\n\t\t\t\t.map((part) => {\n\t\t\t\t\treturn part.dynamic\n\t\t\t\t\t\t? part.qualifier || (part.spread ? '(.+)' : '([^/]+?)')\n\t\t\t\t\t\t: encodeURI(part.content.normalize())\n\t\t\t\t\t\t\t\t.replace(/\\?/g, '%3F')\n\t\t\t\t\t\t\t\t.replace(/#/g, '%23')\n\t\t\t\t\t\t\t\t.replace(/%5B/g, '[')\n\t\t\t\t\t\t\t\t.replace(/%5D/g, ']')\n\t\t\t\t\t\t\t\t.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\t\t\t})\n\t\t\t\t.join('');\n\t\t})\n\t\t.join('\\\\/');\n\n\tconst trailing = add_trailing_slash && segments.length ? '\\\\/?$' : '$';\n\n\treturn new RegExp(`^\\\\/${path}${trailing}`);\n}\n","import * as fs from 'fs';\nimport { mkdirp } from '@sveltejs/app-utils/files';\nimport { stringify, walk, write_if_changed } from '../utils';\n\nexport function create_app({\n\tmanifest_data,\n\toutput\n}) {\n\tif (!fs.existsSync(output)) mkdirp(output);\n\n\tconst client_manifest = generate_client_manifest(manifest_data);\n\n\tconst app = generate_app(manifest_data);\n\n\twrite_if_changed(`${output}/generated/manifest.js`, client_manifest);\n\twrite_if_changed(`${output}/generated/root.svelte`, app);\n}\n\nexport function create_serviceworker_manifest({\n\tmanifest_data,\n\toutput,\n\tclient_files,\n\tstatic_files\n}) {\n\tlet files = ['service-worker-index.html'];\n\n\tif (fs.existsSync(static_files)) {\n\t\tfiles = files.concat(walk(static_files));\n\t}\n\n\tconst code = `\n\t\t// This file is generated by @sveltejs/kit — do not edit it!\n\t\texport const timestamp = ${Date.now()};\n\n\t\texport const files = [\\n\\t${files.map((x) => stringify('/' + x)).join(',\\n\\t')}\\n];\n\t\texport { files as assets }; // legacy\n\n\t\texport const shell = [\\n\\t${client_files.map((x) => stringify('/' + x)).join(',\\n\\t')}\\n];\n\n\t\texport const routes = [\\n\\t${manifest_data.pages\n\t\t\t.map((r) => `{ pattern: ${r.pattern} }`)\n\t\t\t.join(',\\n\\t')}\\n];\n\t`\n\t\t.replace(/^\\t\\t/gm, '')\n\t\t.trim();\n\n\twrite_if_changed(`${output}/service-worker.js`, code);\n}\n\nfunction generate_client_manifest(manifest_data) {\n\tconst page_ids = new Set(manifest_data.pages.map(page =>\n\t\tpage.pattern.toString()));\n\n\tconst endpoints_to_ignore = manifest_data.endpoints.filter(route =>\n\t\t!page_ids.has(route.pattern.toString()));\n\n\tconst component_indexes = {};\n\n\tconst components = `[\n\t\t${manifest_data.components\n\t\t\t.map((component, i) => {\n\t\t\t\tcomponent_indexes[component.name] = i;\n\n\t\t\t\treturn `() => import(${JSON.stringify(component.url)})`;\n\t\t\t})\n\t\t\t.join(',\\n\\t\\t\\t\\t')}\n\t]`.replace(/^\\t/gm, '');\n\n\tlet needs_decode = false;\n\n\tlet pages = `[\n\t\t${manifest_data.pages\n\t\t\t.map(\n\t\t\t\t(page) => `{\n\t\t\t\t\t// ${page.parts[page.parts.length - 1].component.file}\n\t\t\t\t\tpattern: ${page.pattern},\n\t\t\t\t\tparts: [\n\t\t\t\t\t\t${page.parts\n\t\t\t\t\t\t\t.map((part) => {\n\t\t\t\t\t\t\t\tconst missing_layout = !part;\n\t\t\t\t\t\t\t\tif (missing_layout) return null;\n\n\t\t\t\t\t\t\t\tif (part.params.length > 0) {\n\t\t\t\t\t\t\t\t\tneeds_decode = true;\n\t\t\t\t\t\t\t\t\tconst props = part.params.map((param, i) => {\n\t\t\t\t\t\t\t\t\t\treturn param.startsWith('...')\n\t\t\t\t\t\t\t\t\t\t\t? `${param.slice(3)}: d(m[${i + 1}]).split('/')`\n\t\t\t\t\t\t\t\t\t\t\t: `${param}: d(m[${i + 1}])`;\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\treturn `[components[${component_indexes[part.component.name]}], m => ({ ${props.join(', ')} })]`;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn `[components[${component_indexes[part.component.name]}]]`;\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t.join(',\\n\\t\\t\\t\\t')}\n\t\t\t\t\t]\n\t\t}`).join(',\\n\\n\\t\\t')}\n\t]`.replace(/^\\t/gm, '');\n\n\tif (needs_decode) {\n\t\tpages = `(d => ${pages})(decodeURIComponent)`;\n\t}\n\n\treturn `\n\t\timport * as layout from ${JSON.stringify(manifest_data.layout.url)};\n\n\t\tconst components = ${components};\n\n\t\texport const pages = ${pages};\n\n\t\texport const ignore = [\n\t\t\t${endpoints_to_ignore.map(route => route.pattern).join(',\\n\\t\\t\\t')}\n\t\t];\n\n\t\texport { layout };\n\t`\n\t\t.replace(/^\\t{2}/gm, '')\n\t\t.trim();\n}\n\nfunction generate_app(manifest_data) {\n\t// TODO remove default layout altogether\n\n\tconst max_depth = Math.max(\n\t\t...manifest_data.pages.map((page) => page.parts.filter(Boolean).length)\n\t);\n\n\tconst levels = [];\n\tfor (let i = 0; i <= max_depth; i += 1) {\n\t\tlevels.push(i);\n\t}\n\n\tlet l = max_depth;\n\n\tlet pyramid = `<svelte:component this={components[${l}]} {...(props_${l} || {})}/>`;\n\n\twhile (l-- > 1) {\n\t\tpyramid = `\n\t\t\t<svelte:component this={components[${l}]} {...(props_${l} || {})}>\n\t\t\t\t{#if components[${l + 1}]}\n\t\t\t\t\t${pyramid.replace(/\\n/g, '\\n\\t\\t\\t\\t\\t')}\n\t\t\t\t{/if}\n\t\t\t</svelte:component>\n\t\t`\n\t\t\t.replace(/^\\t\\t\\t/gm, '')\n\t\t\t.trim();\n\t}\n\n\treturn `\n\t\t<!-- This file is generated by @sveltejs/kit — do not edit it! -->\n\t\t<script>\n\t\t\timport { setContext, afterUpdate } from 'svelte';\n\t\t\timport ErrorComponent from ${JSON.stringify(manifest_data.error.url)};\n\n\t\t\t// error handling\n\t\t\texport let status = undefined;\n\t\t\texport let error = undefined;\n\n\t\t\t// stores\n\t\t\texport let stores;\n\t\t\texport let page;\n\n\t\t\texport let components;\n\t\t\t${levels.map((l) => `export let props_${l} = null;`).join('\\n\\t\\t\\t')}\n\n\t\t\tconst Layout = components[0];\n\n\t\t\tsetContext('__svelte__', stores);\n\n\t\t\t$: stores.page.set(page);\n\t\t\tafterUpdate(stores.page.notify);\n\t\t</script>\n\n\t\t<Layout {...(props_0 || {})}>\n\t\t\t{#if error}\n\t\t\t\t<ErrorComponent {status} {error}/>\n\t\t\t{:else}\n\t\t\t\t${pyramid.replace(/\\n/g, '\\n\\t\\t\\t\\t')}\n\t\t\t{/if}\n\t\t</Layout>\n\t`\n\t\t.replace(/^\\t\\t/gm, '')\n\t\t.trim();\n}\n"],"names":["mkdirp","path.dirname","fs.writeFileSync","fs.statSync","fs.utimesSync","fs.existsSync","path.join","fs\n\t\t\t.readdirSync","path.relative","path.extname"],"mappings":"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"}