@sveltejs/kit 2.10.1 → 2.11.0
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 +1 -1
- package/src/core/sync/write_client_manifest.js +6 -2
- package/src/core/sync/write_server.js +4 -2
- package/src/exports/public.d.ts +39 -0
- package/src/runtime/app/forms.js +4 -2
- package/src/runtime/client/client.js +2 -1
- package/src/runtime/client/types.d.ts +5 -1
- package/src/runtime/server/data/index.js +3 -0
- package/src/runtime/server/index.js +4 -2
- package/src/runtime/server/page/actions.js +30 -7
- package/src/runtime/server/page/render.js +23 -9
- package/src/types/internal.d.ts +4 -1
- package/src/utils/filesystem.js +3 -2
- package/src/version.js +1 -1
- package/types/index.d.ts +39 -0
- package/types/index.d.ts.map +3 -1
package/package.json
CHANGED
|
@@ -152,10 +152,14 @@ export function write_client_manifest(kit, manifest_data, output, metadata) {
|
|
|
152
152
|
client_hooks_file ? 'client_hooks.handleError || ' : ''
|
|
153
153
|
}(({ error }) => { console.error(error) }),
|
|
154
154
|
${client_hooks_file ? 'init: client_hooks.init,' : ''}
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
reroute: ${universal_hooks_file ? 'universal_hooks.reroute || ' : ''}(() => {}),
|
|
156
|
+
transport: ${universal_hooks_file ? 'universal_hooks.transport || ' : ''}{}
|
|
157
157
|
};
|
|
158
158
|
|
|
159
|
+
export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
|
|
160
|
+
|
|
161
|
+
export const decode = (type, value) => decoders[type](value);
|
|
162
|
+
|
|
159
163
|
export { default as root } from '../root.${isSvelte5Plus() ? 'js' : 'svelte'}';
|
|
160
164
|
`
|
|
161
165
|
);
|
|
@@ -71,14 +71,16 @@ export async function get_hooks() {
|
|
|
71
71
|
${server_hooks ? `({ handle, handleFetch, handleError, init } = await import(${s(server_hooks)}));` : ''}
|
|
72
72
|
|
|
73
73
|
let reroute;
|
|
74
|
-
|
|
74
|
+
let transport;
|
|
75
|
+
${universal_hooks ? `({ reroute, transport } = await import(${s(universal_hooks)}));` : ''}
|
|
75
76
|
|
|
76
77
|
return {
|
|
77
78
|
handle,
|
|
78
79
|
handleFetch,
|
|
79
80
|
handleError,
|
|
80
|
-
reroute,
|
|
81
81
|
init,
|
|
82
|
+
reroute,
|
|
83
|
+
transport
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
|
package/src/exports/public.d.ts
CHANGED
|
@@ -726,11 +726,13 @@ export type HandleFetch = (input: {
|
|
|
726
726
|
|
|
727
727
|
/**
|
|
728
728
|
* The [`init`](https://svelte.dev/docs/kit/hooks#Shared-hooks-init) will be invoked before the server responds to its first request
|
|
729
|
+
* @since 2.10.0
|
|
729
730
|
*/
|
|
730
731
|
export type ServerInit = () => MaybePromise<void>;
|
|
731
732
|
|
|
732
733
|
/**
|
|
733
734
|
* The [`init`](https://svelte.dev/docs/kit/hooks#Shared-hooks-init) will be invoked once the app starts in the browser
|
|
735
|
+
* @since 2.10.0
|
|
734
736
|
*/
|
|
735
737
|
export type ClientInit = () => MaybePromise<void>;
|
|
736
738
|
|
|
@@ -740,6 +742,43 @@ export type ClientInit = () => MaybePromise<void>;
|
|
|
740
742
|
*/
|
|
741
743
|
export type Reroute = (event: { url: URL }) => void | string;
|
|
742
744
|
|
|
745
|
+
/**
|
|
746
|
+
* The [`transport`](https://svelte.dev/docs/kit/hooks#Universal-hooks-transport) hook allows you to transport custom types across the server/client boundary.
|
|
747
|
+
*
|
|
748
|
+
* Each transporter has a pair of `encode` and `decode` functions. On the server, `encode` determines whether a value is an instance of the custom type and, if so, returns a non-falsy encoding of the value which can be an object or an array (or `false` otherwise).
|
|
749
|
+
*
|
|
750
|
+
* In the browser, `decode` turns the encoding back into an instance of the custom type.
|
|
751
|
+
*
|
|
752
|
+
* ```ts
|
|
753
|
+
* import type { Transport } from '@sveltejs/kit';
|
|
754
|
+
*
|
|
755
|
+
* declare class MyCustomType {
|
|
756
|
+
* data: any
|
|
757
|
+
* }
|
|
758
|
+
*
|
|
759
|
+
* // hooks.js
|
|
760
|
+
* export const transport: Transport = {
|
|
761
|
+
* MyCustomType: {
|
|
762
|
+
* encode: (value) => value instanceof MyCustomType && [value.data],
|
|
763
|
+
* decode: ([data]) => new MyCustomType(data)
|
|
764
|
+
* }
|
|
765
|
+
* };
|
|
766
|
+
* ```
|
|
767
|
+
* @since 2.11.0
|
|
768
|
+
*/
|
|
769
|
+
export type Transport = Record<string, Transporter>;
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* A member of the [`transport`](https://svelte.dev/docs/kit/hooks#Universal-hooks-transport) hook.
|
|
773
|
+
*/
|
|
774
|
+
export interface Transporter<
|
|
775
|
+
T = any,
|
|
776
|
+
U = Exclude<any, false | 0 | '' | null | undefined | typeof NaN>
|
|
777
|
+
> {
|
|
778
|
+
encode: (value: T) => false | U;
|
|
779
|
+
decode: (data: U) => T;
|
|
780
|
+
}
|
|
781
|
+
|
|
743
782
|
/**
|
|
744
783
|
* The generic form of `PageLoad` and `LayoutLoad`. You should import those from `./$types` (see [generated types](https://svelte.dev/docs/kit/types#Generated-types))
|
|
745
784
|
* rather than using `Load` directly.
|
package/src/runtime/app/forms.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as devalue from 'devalue';
|
|
2
2
|
import { DEV } from 'esm-env';
|
|
3
3
|
import { invalidateAll } from './navigation.js';
|
|
4
|
-
import { applyAction } from '../client/client.js';
|
|
4
|
+
import { app, applyAction } from '../client/client.js';
|
|
5
5
|
|
|
6
6
|
export { applyAction };
|
|
7
7
|
|
|
@@ -29,9 +29,11 @@ export { applyAction };
|
|
|
29
29
|
*/
|
|
30
30
|
export function deserialize(result) {
|
|
31
31
|
const parsed = JSON.parse(result);
|
|
32
|
+
|
|
32
33
|
if (parsed.data) {
|
|
33
|
-
parsed.data = devalue.parse(parsed.data);
|
|
34
|
+
parsed.data = devalue.parse(parsed.data, app.decoders);
|
|
34
35
|
}
|
|
36
|
+
|
|
35
37
|
return parsed;
|
|
36
38
|
}
|
|
37
39
|
|
|
@@ -174,7 +174,7 @@ let container;
|
|
|
174
174
|
/** @type {HTMLElement} */
|
|
175
175
|
let target;
|
|
176
176
|
/** @type {import('./types.js').SvelteKitApp} */
|
|
177
|
-
let app;
|
|
177
|
+
export let app;
|
|
178
178
|
|
|
179
179
|
/** @type {Array<((url: URL) => boolean)>} */
|
|
180
180
|
const invalidated = [];
|
|
@@ -2493,6 +2493,7 @@ async function load_data(url, invalid) {
|
|
|
2493
2493
|
*/
|
|
2494
2494
|
function deserialize(data) {
|
|
2495
2495
|
return devalue.unflatten(data, {
|
|
2496
|
+
...app.decoders,
|
|
2496
2497
|
Promise: (id) => {
|
|
2497
2498
|
return new Promise((fulfil, reject) => {
|
|
2498
2499
|
deferreds.set(id, { fulfil, reject });
|
|
@@ -26,6 +26,10 @@ export interface SvelteKitApp {
|
|
|
26
26
|
|
|
27
27
|
hooks: ClientHooks;
|
|
28
28
|
|
|
29
|
+
decode: (type: string, value: any) => any;
|
|
30
|
+
|
|
31
|
+
decoders: Record<string, (data: any) => any>;
|
|
32
|
+
|
|
29
33
|
root: typeof SvelteComponent;
|
|
30
34
|
}
|
|
31
35
|
|
|
@@ -54,7 +58,7 @@ export type NavigationFinished = {
|
|
|
54
58
|
state: NavigationState;
|
|
55
59
|
props: {
|
|
56
60
|
constructors: Array<typeof SvelteComponent>;
|
|
57
|
-
components?:
|
|
61
|
+
components?: SvelteComponent[];
|
|
58
62
|
page: Page;
|
|
59
63
|
form?: Record<string, any> | null;
|
|
60
64
|
[key: `data_${number}`]: Record<string, any>;
|
|
@@ -197,6 +197,9 @@ export function get_data_json(event, options, nodes) {
|
|
|
197
197
|
const { iterator, push, done } = create_async_iterator();
|
|
198
198
|
|
|
199
199
|
const reducers = {
|
|
200
|
+
...Object.fromEntries(
|
|
201
|
+
Object.entries(options.hooks.transport).map(([key, value]) => [key, value.encode])
|
|
202
|
+
),
|
|
200
203
|
/** @param {any} thing */
|
|
201
204
|
Promise: (thing) => {
|
|
202
205
|
if (typeof thing?.then === 'function') {
|
|
@@ -76,7 +76,8 @@ export class Server {
|
|
|
76
76
|
handle: module.handle || (({ event, resolve }) => resolve(event)),
|
|
77
77
|
handleError: module.handleError || (({ error }) => console.error(error)),
|
|
78
78
|
handleFetch: module.handleFetch || (({ request, fetch }) => fetch(request)),
|
|
79
|
-
reroute: module.reroute || (() => {})
|
|
79
|
+
reroute: module.reroute || (() => {}),
|
|
80
|
+
transport: module.transport || {}
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
if (module.init) {
|
|
@@ -90,7 +91,8 @@ export class Server {
|
|
|
90
91
|
},
|
|
91
92
|
handleError: ({ error }) => console.error(error),
|
|
92
93
|
handleFetch: ({ request, fetch }) => fetch(request),
|
|
93
|
-
reroute: () => {}
|
|
94
|
+
reroute: () => {},
|
|
95
|
+
transport: {}
|
|
94
96
|
};
|
|
95
97
|
} else {
|
|
96
98
|
throw error;
|
|
@@ -61,14 +61,22 @@ export async function handle_action_json_request(event, options, server) {
|
|
|
61
61
|
// @ts-expect-error we assign a string to what is supposed to be an object. That's ok
|
|
62
62
|
// because we don't use the object outside, and this way we have better code navigation
|
|
63
63
|
// through knowing where the related interface is used.
|
|
64
|
-
data: stringify_action_response(
|
|
64
|
+
data: stringify_action_response(
|
|
65
|
+
data.data,
|
|
66
|
+
/** @type {string} */ (event.route.id),
|
|
67
|
+
options.hooks.transport
|
|
68
|
+
)
|
|
65
69
|
});
|
|
66
70
|
} else {
|
|
67
71
|
return action_json({
|
|
68
72
|
type: 'success',
|
|
69
73
|
status: data ? 200 : 204,
|
|
70
74
|
// @ts-expect-error see comment above
|
|
71
|
-
data: stringify_action_response(
|
|
75
|
+
data: stringify_action_response(
|
|
76
|
+
data,
|
|
77
|
+
/** @type {string} */ (event.route.id),
|
|
78
|
+
options.hooks.transport
|
|
79
|
+
)
|
|
72
80
|
});
|
|
73
81
|
}
|
|
74
82
|
} catch (e) {
|
|
@@ -254,18 +262,33 @@ function validate_action_return(data) {
|
|
|
254
262
|
* Try to `devalue.uneval` the data object, and if it fails, return a proper Error with context
|
|
255
263
|
* @param {any} data
|
|
256
264
|
* @param {string} route_id
|
|
265
|
+
* @param {import('types').ServerHooks['transport']} transport
|
|
257
266
|
*/
|
|
258
|
-
export function uneval_action_response(data, route_id) {
|
|
259
|
-
|
|
267
|
+
export function uneval_action_response(data, route_id, transport) {
|
|
268
|
+
const replacer = (/** @type {any} */ thing) => {
|
|
269
|
+
for (const key in transport) {
|
|
270
|
+
const encoded = transport[key].encode(thing);
|
|
271
|
+
if (encoded) {
|
|
272
|
+
return `app.decode('${key}', ${devalue.uneval(encoded, replacer)})`;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
return try_serialize(data, (value) => devalue.uneval(value, replacer), route_id);
|
|
260
278
|
}
|
|
261
279
|
|
|
262
280
|
/**
|
|
263
281
|
* Try to `devalue.stringify` the data object, and if it fails, return a proper Error with context
|
|
264
282
|
* @param {any} data
|
|
265
283
|
* @param {string} route_id
|
|
284
|
+
* @param {import('types').ServerHooks['transport']} transport
|
|
266
285
|
*/
|
|
267
|
-
function stringify_action_response(data, route_id) {
|
|
268
|
-
|
|
286
|
+
function stringify_action_response(data, route_id, transport) {
|
|
287
|
+
const encoders = Object.fromEntries(
|
|
288
|
+
Object.entries(transport).map(([key, value]) => [key, value.encode])
|
|
289
|
+
);
|
|
290
|
+
|
|
291
|
+
return try_serialize(data, (value) => devalue.stringify(value, encoders), route_id);
|
|
269
292
|
}
|
|
270
293
|
|
|
271
294
|
/**
|
|
@@ -273,7 +296,7 @@ function stringify_action_response(data, route_id) {
|
|
|
273
296
|
* @param {(data: any) => string} fn
|
|
274
297
|
* @param {string} route_id
|
|
275
298
|
*/
|
|
276
|
-
function
|
|
299
|
+
function try_serialize(data, fn, route_id) {
|
|
277
300
|
try {
|
|
278
301
|
return fn(data);
|
|
279
302
|
} catch (e) {
|
|
@@ -321,12 +321,20 @@ export async function render_response({
|
|
|
321
321
|
deferred.set(id, { fulfil, reject });
|
|
322
322
|
})`);
|
|
323
323
|
|
|
324
|
+
// When resolving, the id might not yet be available due to the data
|
|
325
|
+
// be evaluated upon init of kit, so we use a timeout to retry
|
|
324
326
|
properties.push(`resolve: ({ id, data, error }) => {
|
|
325
|
-
const
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
327
|
+
const try_to_resolve = () => {
|
|
328
|
+
if (!deferred.has(id)) {
|
|
329
|
+
setTimeout(try_to_resolve, 0);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const { fulfil, reject } = deferred.get(id);
|
|
333
|
+
deferred.delete(id);
|
|
334
|
+
if (error) reject(error);
|
|
335
|
+
else fulfil(data);
|
|
336
|
+
}
|
|
337
|
+
try_to_resolve();
|
|
330
338
|
}`);
|
|
331
339
|
}
|
|
332
340
|
|
|
@@ -342,12 +350,11 @@ export async function render_response({
|
|
|
342
350
|
if (page_config.ssr) {
|
|
343
351
|
const serialized = { form: 'null', error: 'null' };
|
|
344
352
|
|
|
345
|
-
blocks.push(`const data = ${data};`);
|
|
346
|
-
|
|
347
353
|
if (form_value) {
|
|
348
354
|
serialized.form = uneval_action_response(
|
|
349
355
|
form_value,
|
|
350
|
-
/** @type {string} */ (event.route.id)
|
|
356
|
+
/** @type {string} */ (event.route.id),
|
|
357
|
+
options.hooks.transport
|
|
351
358
|
);
|
|
352
359
|
}
|
|
353
360
|
|
|
@@ -357,7 +364,7 @@ export async function render_response({
|
|
|
357
364
|
|
|
358
365
|
const hydrate = [
|
|
359
366
|
`node_ids: [${branch.map(({ node }) => node.index).join(', ')}]`,
|
|
360
|
-
|
|
367
|
+
`data: ${data}`,
|
|
361
368
|
`form: ${serialized.form}`,
|
|
362
369
|
`error: ${serialized.error}`
|
|
363
370
|
];
|
|
@@ -573,6 +580,13 @@ function get_data(event, options, nodes, csp, global) {
|
|
|
573
580
|
);
|
|
574
581
|
|
|
575
582
|
return `${global}.defer(${id})`;
|
|
583
|
+
} else {
|
|
584
|
+
for (const key in options.hooks.transport) {
|
|
585
|
+
const encoded = options.hooks.transport[key].encode(thing);
|
|
586
|
+
if (encoded) {
|
|
587
|
+
return `app.decode('${key}', ${devalue.uneval(encoded, replacer)})`;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
576
590
|
}
|
|
577
591
|
}
|
|
578
592
|
|
package/src/types/internal.d.ts
CHANGED
|
@@ -19,7 +19,8 @@ import {
|
|
|
19
19
|
Emulator,
|
|
20
20
|
Adapter,
|
|
21
21
|
ServerInit,
|
|
22
|
-
ClientInit
|
|
22
|
+
ClientInit,
|
|
23
|
+
Transporter
|
|
23
24
|
} from '@sveltejs/kit';
|
|
24
25
|
import {
|
|
25
26
|
HttpMethod,
|
|
@@ -111,12 +112,14 @@ export interface ServerHooks {
|
|
|
111
112
|
handle: Handle;
|
|
112
113
|
handleError: HandleServerError;
|
|
113
114
|
reroute: Reroute;
|
|
115
|
+
transport: Record<string, Transporter>;
|
|
114
116
|
init?: ServerInit;
|
|
115
117
|
}
|
|
116
118
|
|
|
117
119
|
export interface ClientHooks {
|
|
118
120
|
handleError: HandleClientError;
|
|
119
121
|
reroute: Reroute;
|
|
122
|
+
transport: Record<string, Transporter>;
|
|
120
123
|
init?: ClientInit;
|
|
121
124
|
}
|
|
122
125
|
|
package/src/utils/filesystem.js
CHANGED
|
@@ -169,8 +169,9 @@ export function from_fs(str) {
|
|
|
169
169
|
export function resolve_entry(entry) {
|
|
170
170
|
if (fs.existsSync(entry)) {
|
|
171
171
|
const stats = fs.statSync(entry);
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
const index = path.join(entry, 'index');
|
|
173
|
+
if (stats.isDirectory() && fs.existsSync(index)) {
|
|
174
|
+
return resolve_entry(index);
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
return entry;
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -708,11 +708,13 @@ declare module '@sveltejs/kit' {
|
|
|
708
708
|
|
|
709
709
|
/**
|
|
710
710
|
* The [`init`](https://svelte.dev/docs/kit/hooks#Shared-hooks-init) will be invoked before the server responds to its first request
|
|
711
|
+
* @since 2.10.0
|
|
711
712
|
*/
|
|
712
713
|
export type ServerInit = () => MaybePromise<void>;
|
|
713
714
|
|
|
714
715
|
/**
|
|
715
716
|
* The [`init`](https://svelte.dev/docs/kit/hooks#Shared-hooks-init) will be invoked once the app starts in the browser
|
|
717
|
+
* @since 2.10.0
|
|
716
718
|
*/
|
|
717
719
|
export type ClientInit = () => MaybePromise<void>;
|
|
718
720
|
|
|
@@ -722,6 +724,43 @@ declare module '@sveltejs/kit' {
|
|
|
722
724
|
*/
|
|
723
725
|
export type Reroute = (event: { url: URL }) => void | string;
|
|
724
726
|
|
|
727
|
+
/**
|
|
728
|
+
* The [`transport`](https://svelte.dev/docs/kit/hooks#Universal-hooks-transport) hook allows you to transport custom types across the server/client boundary.
|
|
729
|
+
*
|
|
730
|
+
* Each transporter has a pair of `encode` and `decode` functions. On the server, `encode` determines whether a value is an instance of the custom type and, if so, returns a non-falsy encoding of the value which can be an object or an array (or `false` otherwise).
|
|
731
|
+
*
|
|
732
|
+
* In the browser, `decode` turns the encoding back into an instance of the custom type.
|
|
733
|
+
*
|
|
734
|
+
* ```ts
|
|
735
|
+
* import type { Transport } from '@sveltejs/kit';
|
|
736
|
+
*
|
|
737
|
+
* declare class MyCustomType {
|
|
738
|
+
* data: any
|
|
739
|
+
* }
|
|
740
|
+
*
|
|
741
|
+
* // hooks.js
|
|
742
|
+
* export const transport: Transport = {
|
|
743
|
+
* MyCustomType: {
|
|
744
|
+
* encode: (value) => value instanceof MyCustomType && [value.data],
|
|
745
|
+
* decode: ([data]) => new MyCustomType(data)
|
|
746
|
+
* }
|
|
747
|
+
* };
|
|
748
|
+
* ```
|
|
749
|
+
* @since 2.11.0
|
|
750
|
+
*/
|
|
751
|
+
export type Transport = Record<string, Transporter>;
|
|
752
|
+
|
|
753
|
+
/**
|
|
754
|
+
* A member of the [`transport`](https://svelte.dev/docs/kit/hooks#Universal-hooks-transport) hook.
|
|
755
|
+
*/
|
|
756
|
+
export interface Transporter<
|
|
757
|
+
T = any,
|
|
758
|
+
U = Exclude<any, false | 0 | '' | null | undefined | typeof NaN>
|
|
759
|
+
> {
|
|
760
|
+
encode: (value: T) => false | U;
|
|
761
|
+
decode: (data: U) => T;
|
|
762
|
+
}
|
|
763
|
+
|
|
725
764
|
/**
|
|
726
765
|
* The generic form of `PageLoad` and `LayoutLoad`. You should import those from `./$types` (see [generated types](https://svelte.dev/docs/kit/types#Generated-types))
|
|
727
766
|
* rather than using `Load` directly.
|
package/types/index.d.ts.map
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"ServerInit",
|
|
19
19
|
"ClientInit",
|
|
20
20
|
"Reroute",
|
|
21
|
+
"Transport",
|
|
22
|
+
"Transporter",
|
|
21
23
|
"Load",
|
|
22
24
|
"LoadEvent",
|
|
23
25
|
"NavigationEvent",
|
|
@@ -155,6 +157,6 @@
|
|
|
155
157
|
null,
|
|
156
158
|
null
|
|
157
159
|
],
|
|
158
|
-
"mappings": ";;;;;;;;;kBA2BiBA,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2BZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;;;;;;;;kBAeTC,aAAaA;;;;;;;;;;;;;;;;;kBAiBbC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkGPC,MAAMA;;;;;;;;;;;;;;;;;;;;;kBAqBNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DPC,QAAQA;;;;;;;;kBAQRC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuZdC,MAAMA;;;;;;;;;;;aAWNC,iBAAiBA;;;;;;;;;;;;;aAajBC,iBAAiBA;;;;;;;;;;aAUjBC,WAAWA
|
|
160
|
+
"mappings": "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",
|
|
159
161
|
"ignoreList": []
|
|
160
162
|
}
|