@sveltejs/kit 2.2.2 → 2.3.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.2.2",
3
+ "version": "2.3.1",
4
4
  "description": "The fastest way to build Svelte apps",
5
5
  "repository": {
6
6
  "type": "git",
@@ -93,6 +93,7 @@ function process_config(config, { cwd = process.cwd() } = {}) {
93
93
  if (key === 'hooks') {
94
94
  validated.kit.files.hooks.client = path.resolve(cwd, validated.kit.files.hooks.client);
95
95
  validated.kit.files.hooks.server = path.resolve(cwd, validated.kit.files.hooks.server);
96
+ validated.kit.files.hooks.universal = path.resolve(cwd, validated.kit.files.hooks.universal);
96
97
  } else {
97
98
  // @ts-expect-error
98
99
  validated.kit.files[key] = path.resolve(cwd, validated.kit.files[key]);
@@ -123,7 +123,8 @@ const options = object(
123
123
  assets: string('static'),
124
124
  hooks: object({
125
125
  client: string(join('src', 'hooks.client')),
126
- server: string(join('src', 'hooks.server'))
126
+ server: string(join('src', 'hooks.server')),
127
+ universal: string(join('src', 'hooks'))
127
128
  }),
128
129
  lib: string(join('src', 'lib')),
129
130
  params: string(join('src', 'params')),
@@ -108,7 +108,8 @@ export function write_client_manifest(kit, manifest_data, output, metadata) {
108
108
  }
109
109
  `;
110
110
 
111
- const hooks_file = resolve_entry(kit.files.hooks.client);
111
+ const client_hooks_file = resolve_entry(kit.files.hooks.client);
112
+ const universal_hooks_file = resolve_entry(kit.files.hooks.universal);
112
113
 
113
114
  const typo = resolve_entry('src/+hooks.client');
114
115
  if (typo) {
@@ -125,7 +126,16 @@ export function write_client_manifest(kit, manifest_data, output, metadata) {
125
126
  write_if_changed(
126
127
  `${output}/app.js`,
127
128
  dedent`
128
- ${hooks_file ? `import * as client_hooks from '${relative_path(output, hooks_file)}';` : ''}
129
+ ${
130
+ client_hooks_file
131
+ ? `import * as client_hooks from '${relative_path(output, client_hooks_file)}';`
132
+ : ''
133
+ }
134
+ ${
135
+ universal_hooks_file
136
+ ? `import * as universal_hooks from '${relative_path(output, universal_hooks_file)}';`
137
+ : ''
138
+ }
129
139
 
130
140
  export { matchers } from './matchers.js';
131
141
 
@@ -139,8 +149,10 @@ export function write_client_manifest(kit, manifest_data, output, metadata) {
139
149
 
140
150
  export const hooks = {
141
151
  handleError: ${
142
- hooks_file ? 'client_hooks.handleError || ' : ''
152
+ client_hooks_file ? 'client_hooks.handleError || ' : ''
143
153
  }(({ error }) => { console.error(error) }),
154
+
155
+ reroute: ${universal_hooks_file ? 'universal_hooks.reroute || ' : ''}(() => {})
144
156
  };
145
157
 
146
158
  export { default as root } from '../root.${isSvelte5Plus() ? 'js' : 'svelte'}';
@@ -9,7 +9,8 @@ import colors from 'kleur';
9
9
 
10
10
  /**
11
11
  * @param {{
12
- * hooks: string | null;
12
+ * server_hooks: string | null;
13
+ * universal_hooks: string | null;
13
14
  * config: import('types').ValidatedConfig;
14
15
  * has_service_worker: boolean;
15
16
  * runtime_directory: string;
@@ -19,7 +20,8 @@ import colors from 'kleur';
19
20
  */
20
21
  const server_template = ({
21
22
  config,
22
- hooks,
23
+ server_hooks,
24
+ universal_hooks,
23
25
  has_service_worker,
24
26
  runtime_directory,
25
27
  template,
@@ -59,8 +61,11 @@ export const options = {
59
61
  version_hash: ${s(hash(config.kit.version.name))}
60
62
  };
61
63
 
62
- export function get_hooks() {
63
- return ${hooks ? `import(${s(hooks)})` : '{}'};
64
+ export async function get_hooks() {
65
+ return {
66
+ ${server_hooks ? `...(await import(${s(server_hooks)})),` : ''}
67
+ ${universal_hooks ? `...(await import(${s(universal_hooks)})),` : ''}
68
+ };
64
69
  }
65
70
 
66
71
  export { set_assets, set_building, set_prerendering, set_private_env, set_public_env, set_safe_public_env };
@@ -76,7 +81,8 @@ export { set_assets, set_building, set_prerendering, set_private_env, set_public
76
81
  * @param {string} output
77
82
  */
78
83
  export function write_server(config, output) {
79
- const hooks_file = resolve_entry(config.kit.files.hooks.server);
84
+ const server_hooks_file = resolve_entry(config.kit.files.hooks.server);
85
+ const universal_hooks_file = resolve_entry(config.kit.files.hooks.universal);
80
86
 
81
87
  const typo = resolve_entry('src/+hooks.server');
82
88
  if (typo) {
@@ -99,7 +105,8 @@ export function write_server(config, output) {
99
105
  `${output}/server/internal.js`,
100
106
  server_template({
101
107
  config,
102
- hooks: hooks_file ? relative(hooks_file) : null,
108
+ server_hooks: server_hooks_file ? relative(server_hooks_file) : null,
109
+ universal_hooks: universal_hooks_file ? relative(universal_hooks_file) : null,
103
110
  has_service_worker:
104
111
  config.kit.serviceWorker.register && !!resolve_entry(config.kit.files.serviceWorker),
105
112
  runtime_directory: relative(runtime_directory),
@@ -34,11 +34,15 @@ function get_raw_body(req, body_size_limit) {
34
34
  return new ReadableStream({
35
35
  start(controller) {
36
36
  if (body_size_limit !== undefined && content_length > body_size_limit) {
37
- const error = new SvelteKitError(
38
- 413,
39
- 'Payload Too Large',
40
- `Content-length of ${content_length} exceeds limit of ${body_size_limit} bytes.`
41
- );
37
+ let message = `Content-length of ${content_length} exceeds limit of ${body_size_limit} bytes.`;
38
+
39
+ if (body_size_limit === 0) {
40
+ // https://github.com/sveltejs/kit/pull/11589
41
+ // TODO this exists to aid migration — remove in a future version
42
+ message += ' To disable body size limits, specify Infinity rather than 0.';
43
+ }
44
+
45
+ const error = new SvelteKitError(413, 'Payload Too Large', message);
42
46
 
43
47
  controller.error(error);
44
48
  return;
@@ -394,6 +394,12 @@ export interface KitConfig {
394
394
  * @default "src/hooks.server"
395
395
  */
396
396
  server?: string;
397
+ /**
398
+ * The location of your universal [hooks](https://kit.svelte.dev/docs/hooks).
399
+ * @default "src/hooks"
400
+ * @since 2.3.0
401
+ */
402
+ universal?: string;
397
403
  };
398
404
  /**
399
405
  * your app's internal library, accessible throughout the codebase as `$lib`
@@ -683,6 +689,12 @@ export type HandleFetch = (input: {
683
689
  fetch: typeof fetch;
684
690
  }) => MaybePromise<Response>;
685
691
 
692
+ /**
693
+ * The [`reroute`](https://kit.svelte.dev/docs/hooks#universal-hooks-reroute) hook allows you to modify the URL before it is used to determine which route to render.
694
+ * @since 2.3.0
695
+ */
696
+ export type Reroute = (event: { url: URL }) => void | string;
697
+
686
698
  /**
687
699
  * The generic form of `PageLoad` and `LayoutLoad`. You should import those from `./$types` (see [generated types](https://kit.svelte.dev/docs/types#generated-types))
688
700
  * rather than using `Load` directly.
@@ -128,9 +128,15 @@ const warning_preprocessor = {
128
128
  * @param {string} dependency
129
129
  */
130
130
  async function resolve_peer_dependency(dependency) {
131
- // @ts-expect-error the types are wrong
132
- const resolved = await imr.resolve(dependency, pathToFileURL(process.cwd() + '/dummy.js'));
133
- return import(resolved);
131
+ try {
132
+ // @ts-expect-error the types are wrong
133
+ const resolved = await imr.resolve(dependency, pathToFileURL(process.cwd() + '/dummy.js'));
134
+ return import(resolved);
135
+ } catch (e) {
136
+ throw new Error(
137
+ `Could not resolve peer dependency "${dependency}" relative to your project — please install it and try again.`
138
+ );
139
+ }
134
140
  }
135
141
 
136
142
  /**
@@ -1082,13 +1082,31 @@ async function load_root_error_page({ status, error, url, route }) {
1082
1082
  }
1083
1083
 
1084
1084
  /**
1085
- * @param {URL} url
1085
+ * @param {URL | undefined} url
1086
1086
  * @param {boolean} invalidating
1087
1087
  */
1088
1088
  function get_navigation_intent(url, invalidating) {
1089
+ if (!url) return undefined;
1089
1090
  if (is_external_url(url, base)) return;
1090
1091
 
1091
- const path = get_url_path(url.pathname);
1092
+ // reroute could alter the given URL, so we pass a copy
1093
+ let rerouted;
1094
+ try {
1095
+ rerouted = app.hooks.reroute({ url: new URL(url) }) ?? url.pathname;
1096
+ } catch (e) {
1097
+ if (DEV) {
1098
+ // in development, print the error...
1099
+ console.error(e);
1100
+
1101
+ // ...and pause execution, since otherwise we will immediately reload the page
1102
+ debugger; // eslint-disable-line
1103
+ }
1104
+
1105
+ // fall back to native navigation
1106
+ return undefined;
1107
+ }
1108
+
1109
+ const path = get_url_path(rerouted);
1092
1110
 
1093
1111
  for (const route of routes) {
1094
1112
  const params = route.exec(path);
@@ -1096,7 +1114,13 @@ function get_navigation_intent(url, invalidating) {
1096
1114
  if (params) {
1097
1115
  const id = url.pathname + url.search;
1098
1116
  /** @type {import('./types.js').NavigationIntent} */
1099
- const intent = { id, invalidating, route, params: decode_params(params), url };
1117
+ const intent = {
1118
+ id,
1119
+ invalidating,
1120
+ route,
1121
+ params: decode_params(params),
1122
+ url
1123
+ };
1100
1124
  return intent;
1101
1125
  }
1102
1126
  }
@@ -1462,7 +1486,7 @@ function setup_preload() {
1462
1486
 
1463
1487
  if (!options.reload) {
1464
1488
  if (priority <= options.preload_data) {
1465
- const intent = get_navigation_intent(/** @type {URL} */ (url), false);
1489
+ const intent = get_navigation_intent(url, false);
1466
1490
  if (intent) {
1467
1491
  if (DEV) {
1468
1492
  _preload_data(intent).then((result) => {
@@ -1584,7 +1608,7 @@ export function beforeNavigate(callback) {
1584
1608
  * If a function (or a `Promise` that resolves to a function) is returned from the callback, it will be called once the DOM has updated.
1585
1609
  *
1586
1610
  * `onNavigate` must be called during a component initialization. It remains active as long as the component is mounted.
1587
- * @param {(navigation: import('@sveltejs/kit').OnNavigate) => import('types').MaybePromise<void>} callback
1611
+ * @param {(navigation: import('@sveltejs/kit').OnNavigate) => import('types').MaybePromise<(() => void) | void>} callback
1588
1612
  * @returns {void}
1589
1613
  */
1590
1614
  export function onNavigate(callback) {
@@ -1,8 +1,4 @@
1
1
  declare module '__SERVER__/internal.js' {
2
2
  export const options: import('types').SSROptions;
3
- export const get_hooks: () => Promise<{
4
- handle?: import('@sveltejs/kit').Handle;
5
- handleError?: import('@sveltejs/kit').HandleServerError;
6
- handleFetch?: import('@sveltejs/kit').HandleFetch;
7
- }>;
3
+ export const get_hooks: () => Promise<Partial<import('types').ServerHooks>>;
8
4
  }
@@ -62,7 +62,8 @@ export class Server {
62
62
  this.#options.hooks = {
63
63
  handle: module.handle || (({ event, resolve }) => resolve(event)),
64
64
  handleError: module.handleError || (({ error }) => console.error(error)),
65
- handleFetch: module.handleFetch || (({ request, fetch }) => fetch(request))
65
+ handleFetch: module.handleFetch || (({ request, fetch }) => fetch(request)),
66
+ reroute: module.reroute || (() => {})
66
67
  };
67
68
  } catch (error) {
68
69
  if (DEV) {
@@ -71,7 +72,8 @@ export class Server {
71
72
  throw error;
72
73
  },
73
74
  handleError: ({ error }) => console.error(error),
74
- handleFetch: ({ request, fetch }) => fetch(request)
75
+ handleFetch: ({ request, fetch }) => fetch(request),
76
+ reroute: () => {}
75
77
  };
76
78
  } else {
77
79
  throw error;
@@ -79,9 +79,19 @@ export async function respond(request, options, manifest, state) {
79
79
  }
80
80
  }
81
81
 
82
+ // reroute could alter the given URL, so we pass a copy
83
+ let rerouted_path;
84
+ try {
85
+ rerouted_path = options.hooks.reroute({ url: new URL(url) }) ?? url.pathname;
86
+ } catch (e) {
87
+ return text('Internal Server Error', {
88
+ status: 500
89
+ });
90
+ }
91
+
82
92
  let decoded;
83
93
  try {
84
- decoded = decode_pathname(url.pathname);
94
+ decoded = decode_pathname(rerouted_path);
85
95
  } catch {
86
96
  return text('Malformed URI', { status: 400 });
87
97
  }
@@ -12,7 +12,8 @@ import {
12
12
  ServerInitOptions,
13
13
  HandleFetch,
14
14
  Actions,
15
- HandleClientError
15
+ HandleClientError,
16
+ Reroute
16
17
  } from '@sveltejs/kit';
17
18
  import {
18
19
  HttpMethod,
@@ -99,10 +100,12 @@ export interface ServerHooks {
99
100
  handleFetch: HandleFetch;
100
101
  handle: Handle;
101
102
  handleError: HandleServerError;
103
+ reroute: Reroute;
102
104
  }
103
105
 
104
106
  export interface ClientHooks {
105
107
  handleError: HandleClientError;
108
+ reroute: Reroute;
106
109
  }
107
110
 
108
111
  export interface Env {
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.2.2';
4
+ export const VERSION = '2.3.1';
package/types/index.d.ts CHANGED
@@ -376,6 +376,12 @@ declare module '@sveltejs/kit' {
376
376
  * @default "src/hooks.server"
377
377
  */
378
378
  server?: string;
379
+ /**
380
+ * The location of your universal [hooks](https://kit.svelte.dev/docs/hooks).
381
+ * @default "src/hooks"
382
+ * @since 2.3.0
383
+ */
384
+ universal?: string;
379
385
  };
380
386
  /**
381
387
  * your app's internal library, accessible throughout the codebase as `$lib`
@@ -665,6 +671,12 @@ declare module '@sveltejs/kit' {
665
671
  fetch: typeof fetch;
666
672
  }) => MaybePromise<Response>;
667
673
 
674
+ /**
675
+ * The [`reroute`](https://kit.svelte.dev/docs/hooks#universal-hooks-reroute) hook allows you to modify the URL before it is used to determine which route to render.
676
+ * @since 2.3.0
677
+ */
678
+ export type Reroute = (event: { url: URL }) => void | string;
679
+
668
680
  /**
669
681
  * The generic form of `PageLoad` and `LayoutLoad`. You should import those from `./$types` (see [generated types](https://kit.svelte.dev/docs/types#generated-types))
670
682
  * rather than using `Load` directly.
@@ -1969,7 +1981,7 @@ declare module '$app/navigation' {
1969
1981
  *
1970
1982
  * `onNavigate` must be called during a component initialization. It remains active as long as the component is mounted.
1971
1983
  * */
1972
- export function onNavigate(callback: (navigation: import('@sveltejs/kit').OnNavigate) => MaybePromise<void>): void;
1984
+ export function onNavigate(callback: (navigation: import('@sveltejs/kit').OnNavigate) => MaybePromise<(() => void) | void>): void;
1973
1985
  /**
1974
1986
  * If called when the page is being updated following a navigation (in `onMount` or `afterNavigate` or an action, for example), this disables SvelteKit's built-in scroll handling.
1975
1987
  * This is generally discouraged, since it breaks user expectations.
@@ -14,6 +14,7 @@
14
14
  "HandleServerError",
15
15
  "HandleClientError",
16
16
  "HandleFetch",
17
+ "Reroute",
17
18
  "Load",
18
19
  "LoadEvent",
19
20
  "NavigationEvent",
@@ -143,5 +144,5 @@
143
144
  null,
144
145
  null
145
146
  ],
146
- "mappings": ";;;;;;;;;kBA2BiBA,OAAOA;;;;;;;;;;;;aAYZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;;;;;;;;kBAeTC,aAAaA;;;;;;;;;;;;;;;;kBAgBbC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4FPC,MAAMA;;;;;;;;;;;;;;;;;;;;;kBAqBNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyDPC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA+YdC,MAAMA;;;;;;;;;;;aAWNC,iBAAiBA;;;;;;;;;;;;;aAajBC,iBAAiBA;;;;;;;;;;aAUjBC,WAAWA;;;;;;;;;;aAUXC,IAAIA;;;;;;;;;;;;kBAYCC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4GTC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BfC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;;;;aAwBrBC,cAAcA;;kBAETC,UAAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoCVC,cAAcA;;;;;;;;;;kBAUdC,UAAUA;;;;;;;;;;;;;;;;;;kBAkBVC,aAAaA;;;;;;;;;;;;;;;;;;;kBAmBbC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8CTC,YAAYA;;kBAEPC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA4FjBC,cAAcA;;;;;kBAKTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;kBAuBdC,eAAeA;;;;;;;;;;;;;;;cAenBC,MAAMA;;;;;;kBAMFC,iBAAiBA;;;;kBAIjBC,WAAWA;;;;;;;;;;;;;;;;;;;aAmBhBC,UAAUA;;;;;;;kBAOLC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAqEpBC,MAAMA;;;;;;;;;;aAUNC,OAAOA;;;;;;;;;;;;;;;;aAgBPC,YAAYA;;;;;;;;;;;;kBC1uCXC,SAASA;;;;;;;;;;kBAqBTC,QAAQA;;;;;;;aDkvCTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BTC,QAAQA;;;;WE9xCRC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkDZC,GAAGA;;;;;;;;;;;;;;;;;;;;;;WAsBHC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmElBC,UAAUA;;WAELC,MAAMA;;;;;;;;;MASXC,YAAYA;;WAEPC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCXC,yBAAyBA;;;;;;;;;;WAUzBC,yBAAyBA;;;;WAIzBC,sCAAsCA;;;;MAI3CC,8BAA8BA;MAC9BC,8BAA8BA;MAC9BC,2CAA2CA;;;;;;aAM3CC,eAAeA;;WAIVC,cAAcA;;;;;WAKdC,YAAYA;;;;;;MAMjBC,aAAaA;WCnMRC,KAAKA;;;;;;WAaLC,SAASA;;;;;;;;;;;;;;;;WAuETC,YAAYA;;;;;;;WAOZC,QAAQA;;;;;;;;;;;;;MAwBbC,iBAAiBA;;;;;;;;WAUZC,UAAUA;;;;;;;;;;;;;WAaVC,SAASA;;;;;;;;;;;;;;;;;;;;;;;WAsGTC,YAAYA;;;;;;;;;;;;;MAajBC,kBAAkBA;;WAEbC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsCZC,aAAaA;;WA2BRC,eAAeA;;;;;;MAMpBC,uBAAuBA;;MAEvBC,WAAWA;;;;;;;;WAQNC,QAAQA;;;;;;;;;MAyCbC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCtVXC,WAAWA;;;;;;;;;;;iBAcXC,QAAQA;;;;;iBAaRC,UAAUA;;;;;;iBASVC,IAAIA;;;;;;iBA8BJC,IAAIA;;;;;;;;;;;;aApI6CC,QAAQA;aAMVC,YAAYA;cCX9DC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCiEJC,QAAQA;;;;iBC+BFC,UAAUA;;;;;;iBAeVC,WAAWA;;;;;;;;;iBChGjBC,gBAAgBA;;;;;;;iBCyHVC,SAASA;;;;;;;;cCrIlBC,OAAOA;;;;cAKPC,GAAGA;;;;;;;;;;;;;;;;;;;;;;iBCkBAC,WAAWA;;;;;;;;;;;;;;;;;;;;;iBAyCXC,OAAOA;;;;;;;iBC2uDDC,WAAWA;;;;;;;;;iBA5RjBC,aAAaA;;;;;;;;;;;;iBAiBbC,cAAcA;;;;;;;;;;iBAedC,UAAUA;;;;;iBASVC,qBAAqBA;;;;;;;;iBA2BrBC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;iBAsCJC,UAAUA;;;;iBAmBVC,aAAaA;;;;;;;;;;;;iBAqBPC,WAAWA;;;;;;;;;;;;;;;;;;iBAoCjBC,WAAWA;;;;;iBA2BXC,SAASA;;;;;iBAuCTC,YAAYA;MVjnDhBxD,YAAYA;;;;;;;;;;;;;;;;;;iBWxIRyD,YAAYA;;;;iBCZfC,SAASA;;;;;;;;;;;;;;cAwBTC,IAAIA;;;;;;;;cAeJC,UAAUA;;;;;;cAaVC,OAAOA"
147
+ "mappings": "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"
147
148
  }