@sveltejs/kit 1.0.0-next.43 → 1.0.0-next.430

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 (104) 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 +488 -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 +97 -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 +91 -0
  23. package/src/core/sync/write_tsconfig.js +195 -0
  24. package/src/core/sync/write_types.js +775 -0
  25. package/src/core/utils.js +70 -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 +102 -0
  35. package/src/runtime/client/ambient.d.ts +17 -0
  36. package/src/runtime/client/client.js +1289 -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 +21 -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 +135 -0
  60. package/src/runtime/server/page/render.js +362 -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 +108 -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 +160 -0
  74. package/src/vite/dev/index.js +551 -0
  75. package/src/vite/index.js +574 -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 +345 -0
  79. package/svelte-kit.js +1 -1
  80. package/types/ambient.d.ts +357 -0
  81. package/types/index.d.ts +343 -0
  82. package/types/internal.d.ts +308 -0
  83. package/types/private.d.ts +209 -0
  84. package/CHANGELOG.md +0 -431
  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/.DS_Store +0 -0
  95. package/dist/chunks/index.js +0 -3521
  96. package/dist/chunks/index2.js +0 -587
  97. package/dist/chunks/index3.js +0 -246
  98. package/dist/chunks/index4.js +0 -538
  99. package/dist/chunks/index5.js +0 -761
  100. package/dist/chunks/index6.js +0 -322
  101. package/dist/chunks/standard.js +0 -99
  102. package/dist/chunks/utils.js +0 -83
  103. package/dist/cli.js +0 -546
  104. package/dist/ssr.js +0 -2581
@@ -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 };