@sveltejs/kit 1.0.0-next.42 → 1.0.0-next.422

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 (126) hide show
  1. package/README.md +12 -9
  2. package/package.json +95 -63
  3. package/src/cli.js +112 -0
  4. package/src/core/adapt/builder.js +207 -0
  5. package/src/core/adapt/index.js +19 -0
  6. package/src/core/config/index.js +86 -0
  7. package/src/core/config/options.js +482 -0
  8. package/src/core/config/types.d.ts +1 -0
  9. package/src/core/constants.js +5 -0
  10. package/src/core/env.js +91 -0
  11. package/src/core/generate_manifest/index.js +99 -0
  12. package/src/core/prerender/crawl.js +194 -0
  13. package/src/core/prerender/prerender.js +378 -0
  14. package/src/core/prerender/queue.js +80 -0
  15. package/src/core/sync/create_manifest_data/index.js +506 -0
  16. package/src/core/sync/create_manifest_data/types.d.ts +40 -0
  17. package/src/core/sync/sync.js +59 -0
  18. package/src/core/sync/utils.js +44 -0
  19. package/src/core/sync/write_ambient.js +27 -0
  20. package/src/core/sync/write_client_manifest.js +82 -0
  21. package/src/core/sync/write_matchers.js +25 -0
  22. package/src/core/sync/write_root.js +88 -0
  23. package/src/core/sync/write_tsconfig.js +189 -0
  24. package/src/core/sync/write_types.js +769 -0
  25. package/src/core/utils.js +58 -0
  26. package/src/hooks.js +26 -0
  27. package/src/index/index.js +45 -0
  28. package/src/index/private.js +33 -0
  29. package/src/node/index.js +145 -0
  30. package/src/node/polyfills.js +40 -0
  31. package/src/runtime/app/env.js +11 -0
  32. package/src/runtime/app/navigation.js +22 -0
  33. package/src/runtime/app/paths.js +1 -0
  34. package/src/runtime/app/stores.js +91 -0
  35. package/src/runtime/client/ambient.d.ts +17 -0
  36. package/src/runtime/client/client.js +1258 -0
  37. package/src/runtime/client/fetcher.js +60 -0
  38. package/src/runtime/client/parse.js +36 -0
  39. package/src/runtime/client/singletons.js +11 -0
  40. package/src/runtime/client/start.js +46 -0
  41. package/src/runtime/client/types.d.ts +105 -0
  42. package/src/runtime/client/utils.js +113 -0
  43. package/src/runtime/components/error.svelte +16 -0
  44. package/{assets → src/runtime}/components/layout.svelte +0 -0
  45. package/src/runtime/env/dynamic/private.js +1 -0
  46. package/src/runtime/env/dynamic/public.js +1 -0
  47. package/src/runtime/env-private.js +7 -0
  48. package/src/runtime/env-public.js +7 -0
  49. package/src/runtime/env.js +6 -0
  50. package/src/runtime/hash.js +16 -0
  51. package/src/runtime/paths.js +11 -0
  52. package/src/runtime/server/endpoint.js +58 -0
  53. package/src/runtime/server/index.js +448 -0
  54. package/src/runtime/server/page/cookie.js +25 -0
  55. package/src/runtime/server/page/crypto.js +239 -0
  56. package/src/runtime/server/page/csp.js +249 -0
  57. package/src/runtime/server/page/fetch.js +266 -0
  58. package/src/runtime/server/page/index.js +416 -0
  59. package/src/runtime/server/page/load_data.js +127 -0
  60. package/src/runtime/server/page/render.js +359 -0
  61. package/src/runtime/server/page/respond_with_error.js +94 -0
  62. package/src/runtime/server/page/types.d.ts +44 -0
  63. package/src/runtime/server/utils.js +116 -0
  64. package/src/utils/error.js +22 -0
  65. package/src/utils/escape.js +104 -0
  66. package/src/utils/filesystem.js +108 -0
  67. package/src/utils/http.js +55 -0
  68. package/src/utils/misc.js +1 -0
  69. package/src/utils/routing.js +107 -0
  70. package/src/utils/url.js +97 -0
  71. package/src/vite/build/build_server.js +337 -0
  72. package/src/vite/build/build_service_worker.js +90 -0
  73. package/src/vite/build/utils.js +157 -0
  74. package/src/vite/dev/index.js +568 -0
  75. package/src/vite/index.js +566 -0
  76. package/src/vite/preview/index.js +186 -0
  77. package/src/vite/types.d.ts +3 -0
  78. package/src/vite/utils.js +334 -0
  79. package/svelte-kit.js +1 -1
  80. package/types/ambient.d.ts +355 -0
  81. package/types/index.d.ts +342 -0
  82. package/types/internal.d.ts +308 -0
  83. package/types/private.d.ts +209 -0
  84. package/CHANGELOG.md +0 -425
  85. package/assets/components/error.svelte +0 -13
  86. package/assets/runtime/app/env.js +0 -5
  87. package/assets/runtime/app/navigation.js +0 -41
  88. package/assets/runtime/app/paths.js +0 -1
  89. package/assets/runtime/app/stores.js +0 -93
  90. package/assets/runtime/chunks/utils.js +0 -19
  91. package/assets/runtime/internal/singletons.js +0 -23
  92. package/assets/runtime/internal/start.js +0 -770
  93. package/assets/runtime/paths.js +0 -12
  94. package/dist/api.js +0 -28
  95. package/dist/api.js.map +0 -1
  96. package/dist/chunks/index.js +0 -3521
  97. package/dist/chunks/index2.js +0 -587
  98. package/dist/chunks/index3.js +0 -246
  99. package/dist/chunks/index4.js +0 -530
  100. package/dist/chunks/index5.js +0 -761
  101. package/dist/chunks/index6.js +0 -322
  102. package/dist/chunks/standard.js +0 -99
  103. package/dist/chunks/utils.js +0 -83
  104. package/dist/cli.js +0 -546
  105. package/dist/cli.js.map +0 -1
  106. package/dist/create_app.js +0 -592
  107. package/dist/create_app.js.map +0 -1
  108. package/dist/index.js +0 -392
  109. package/dist/index.js.map +0 -1
  110. package/dist/index2.js +0 -3519
  111. package/dist/index2.js.map +0 -1
  112. package/dist/index3.js +0 -320
  113. package/dist/index3.js.map +0 -1
  114. package/dist/index4.js +0 -323
  115. package/dist/index4.js.map +0 -1
  116. package/dist/index5.js +0 -247
  117. package/dist/index5.js.map +0 -1
  118. package/dist/index6.js +0 -761
  119. package/dist/index6.js.map +0 -1
  120. package/dist/renderer.js +0 -2499
  121. package/dist/renderer.js.map +0 -1
  122. package/dist/ssr.js +0 -2581
  123. package/dist/standard.js +0 -100
  124. package/dist/standard.js.map +0 -1
  125. package/dist/utils.js +0 -84
  126. package/dist/utils.js.map +0 -1
@@ -1,246 +0,0 @@
1
- function read_only_form_data() {
2
- /** @type {Map<string, string[]>} */
3
- const map = new Map();
4
-
5
- return {
6
- /**
7
- * @param {string} key
8
- * @param {string} value
9
- */
10
- append(key, value) {
11
- if (map.has(key)) {
12
- map.get(key).push(value);
13
- } else {
14
- map.set(key, [value]);
15
- }
16
- },
17
-
18
- data: new ReadOnlyFormData(map)
19
- };
20
- }
21
-
22
- class ReadOnlyFormData {
23
- /** @type {Map<string, string[]>} */
24
- #map;
25
-
26
- /** @param {Map<string, string[]>} map */
27
- constructor(map) {
28
- this.#map = map;
29
- }
30
-
31
- /** @param {string} key */
32
- get(key) {
33
- const value = this.#map.get(key);
34
- return value && value[0];
35
- }
36
-
37
- /** @param {string} key */
38
- getAll(key) {
39
- return this.#map.get(key);
40
- }
41
-
42
- /** @param {string} key */
43
- has(key) {
44
- return this.#map.has(key);
45
- }
46
-
47
- *[Symbol.iterator]() {
48
- for (const [key, value] of this.#map) {
49
- for (let i = 0; i < value.length; i += 1) {
50
- yield [key, value[i]];
51
- }
52
- }
53
- }
54
-
55
- *entries() {
56
- for (const [key, value] of this.#map) {
57
- for (let i = 0; i < value.length; i += 1) {
58
- yield [key, value[i]];
59
- }
60
- }
61
- }
62
-
63
- *keys() {
64
- for (const [key, value] of this.#map) {
65
- for (let i = 0; i < value.length; i += 1) {
66
- yield key;
67
- }
68
- }
69
- }
70
-
71
- *values() {
72
- for (const [, value] of this.#map) {
73
- for (let i = 0; i < value.length; i += 1) {
74
- yield value;
75
- }
76
- }
77
- }
78
- }
79
-
80
- /** @param {import('http').IncomingMessage} req */
81
- function get_body(req) {
82
- const headers = req.headers;
83
- const has_body =
84
- headers['content-type'] !== undefined &&
85
- // https://github.com/jshttp/type-is/blob/c1f4388c71c8a01f79934e68f630ca4a15fffcd6/index.js#L81-L95
86
- (headers['transfer-encoding'] !== undefined || !isNaN(Number(headers['content-length'])));
87
-
88
- if (!has_body) return Promise.resolve(undefined);
89
-
90
- const [type, ...directives] = headers['content-type'].split(/;\s*/);
91
-
92
- switch (type) {
93
- case 'application/octet-stream':
94
- return get_buffer(req);
95
-
96
- case 'text/plain':
97
- return get_text(req);
98
-
99
- case 'application/json':
100
- return get_json(req);
101
-
102
- case 'application/x-www-form-urlencoded':
103
- return get_urlencoded(req);
104
-
105
- case 'multipart/form-data': {
106
- const boundary = directives.find((directive) => directive.startsWith('boundary='));
107
- if (!boundary) throw new Error('Missing boundary');
108
- return get_multipart(req, boundary.slice('boundary='.length));
109
- }
110
- default:
111
- throw new Error(`Invalid Content-Type ${type}`);
112
- }
113
- }
114
-
115
- /** @param {import('http').IncomingMessage} req */
116
- async function get_json(req) {
117
- return JSON.parse(await get_text(req));
118
- }
119
-
120
- /** @param {import('http').IncomingMessage} req */
121
- async function get_urlencoded(req) {
122
- const text = await get_text(req);
123
-
124
- const { data, append } = read_only_form_data();
125
-
126
- text
127
- .replace(/\+/g, ' ')
128
- .split('&')
129
- .forEach((str) => {
130
- const [key, value] = str.split('=');
131
- append(decodeURIComponent(key), decodeURIComponent(value));
132
- });
133
-
134
- return data;
135
- }
136
-
137
- /**
138
- * @param {import('http').IncomingMessage} req
139
- * @param {string} boundary
140
- */
141
- async function get_multipart(req, boundary) {
142
- const text = await get_text(req);
143
- const parts = text.split(`--${boundary}`);
144
-
145
- const nope = () => {
146
- throw new Error('Malformed form data');
147
- };
148
-
149
- if (parts[0] !== '' || parts[parts.length - 1].trim() !== '--') {
150
- nope();
151
- }
152
-
153
- const { data, append } = read_only_form_data();
154
-
155
- parts.slice(1, -1).forEach((part) => {
156
- const match = /\s*([\s\S]+?)\r\n\r\n([\s\S]*)\s*/.exec(part);
157
- const raw_headers = match[1];
158
- const body = match[2].trim();
159
-
160
- let key;
161
- raw_headers.split('\r\n').forEach((str) => {
162
- const [raw_header, ...raw_directives] = str.split('; ');
163
- let [name, value] = raw_header.split(': ');
164
-
165
- name = name.toLowerCase();
166
-
167
- /** @type {Record<string, string>} */
168
- const directives = {};
169
- raw_directives.forEach((raw_directive) => {
170
- const [name, value] = raw_directive.split('=');
171
- directives[name] = JSON.parse(value); // TODO is this right?
172
- });
173
-
174
- if (name === 'content-disposition') {
175
- if (value !== 'form-data') nope();
176
-
177
- if (directives.filename) {
178
- // TODO we probably don't want to do this automatically
179
- throw new Error('File upload is not yet implemented');
180
- }
181
-
182
- if (directives.name) {
183
- key = directives.name;
184
- }
185
- }
186
- });
187
-
188
- if (!key) nope();
189
-
190
- append(key, body);
191
- });
192
-
193
- return data;
194
- }
195
-
196
- /**
197
- * @param {import('http').IncomingMessage} req
198
- * @returns {Promise<string>}
199
- */
200
- function get_text(req) {
201
- return new Promise((fulfil, reject) => {
202
- let data = '';
203
-
204
- req.on('error', reject);
205
-
206
- req.on('data', (chunk) => {
207
- data += chunk;
208
- });
209
-
210
- req.on('end', () => {
211
- fulfil(data);
212
- });
213
- });
214
- }
215
-
216
- /**
217
- * @param {import('http').IncomingMessage} req
218
- * @returns {Promise<ArrayBuffer>}
219
- */
220
- function get_buffer(req) {
221
- return new Promise((fulfil, reject) => {
222
- let data = new Uint8Array(0);
223
-
224
- req.on('error', reject);
225
-
226
- req.on('data', (chunk) => {
227
- const new_data = new Uint8Array(data.length + chunk.length);
228
-
229
- for (let i = 0; i < data.length; i += 1) {
230
- new_data[i] = data[i];
231
- }
232
-
233
- for (let i = 0; i < chunk.length; i += 1) {
234
- new_data[i + data.length] = chunk[i];
235
- }
236
-
237
- data = new_data;
238
- });
239
-
240
- req.on('end', () => {
241
- fulfil(data.buffer);
242
- });
243
- });
244
- }
245
-
246
- export { get_body as g };