@sveltejs/kit 2.59.1 → 2.60.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.59.1",
3
+ "version": "2.60.1",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -23,7 +23,7 @@
23
23
  "@types/cookie": "^0.6.0",
24
24
  "acorn": "^8.14.1",
25
25
  "cookie": "^0.6.0",
26
- "devalue": "^5.6.4",
26
+ "devalue": "^5.8.1",
27
27
  "esm-env": "^1.2.2",
28
28
  "kleur": "^4.1.5",
29
29
  "magic-string": "^0.30.5",
@@ -40,7 +40,7 @@
40
40
  "@types/set-cookie-parser": "^2.4.7",
41
41
  "dts-buddy": "^0.7.0",
42
42
  "rollup": "^4.59.0",
43
- "svelte": "^5.53.12",
43
+ "svelte": "^5.55.7",
44
44
  "typescript": "^5.3.3",
45
45
  "vite": "^6.4.2",
46
46
  "vitest": "^4.0.0"
@@ -1905,8 +1905,8 @@ type InputTypeMap = {
1905
1905
  checkbox: boolean | string[];
1906
1906
  radio: string;
1907
1907
  file: File;
1908
- hidden: string;
1909
- submit: string;
1908
+ hidden: string | number | boolean;
1909
+ submit: string | number | boolean;
1910
1910
  button: string;
1911
1911
  reset: string;
1912
1912
  image: string;
@@ -1997,11 +1997,15 @@ type AsArgs<Type extends keyof InputTypeMap, Value> = Type extends 'checkbox'
1997
1997
  : Value extends boolean
1998
1998
  ? [type: Type] | [type: Type, value: boolean]
1999
1999
  : [type: Type] | [type: Type, value: Value | (string & {})]
2000
- : Type extends 'radio' | 'submit' | 'hidden'
2001
- ? [type: Type, value: Value | (string & {})]
2002
- : Type extends 'file' | 'file multiple'
2003
- ? [type: Type]
2004
- : [type: Type] | [type: Type, value: Value | (string & {})];
2000
+ : Type extends 'submit' | 'hidden'
2001
+ ? Value extends string
2002
+ ? [type: Type, value: Value | (string & {})]
2003
+ : [type: Type, value: Value]
2004
+ : Type extends 'radio'
2005
+ ? [type: Type, value: Value | (string & {})]
2006
+ : Type extends 'file' | 'file multiple'
2007
+ ? [type: Type]
2008
+ : [type: Type] | [type: Type, value: Value | (string & {})];
2005
2009
 
2006
2010
  /**
2007
2011
  * Form field accessor type that provides name(), value(), and issues() methods
@@ -250,9 +250,6 @@ function batch(validate_or_fn, maybe_fn) {
250
250
  /** @type {(arg?: any) => MaybePromise<Input>} */
251
251
  const validate = create_validator(validate_or_fn, maybe_fn);
252
252
 
253
- /** @type {Map<string, { get_validated: () => MaybePromise<any>, resolvers: Array<{resolve: (value: any) => void, reject: (error: any) => void}> }>} */
254
- let batching = new Map();
255
-
256
253
  /**
257
254
  * Enqueues a single call into the current batch (creating one if necessary)
258
255
  * and returns a promise that resolves with the result for this entry.
@@ -265,23 +262,29 @@ function batch(validate_or_fn, maybe_fn) {
265
262
  const { event, state } = get_request_store();
266
263
 
267
264
  return new Promise((resolve, reject) => {
268
- const entry = batching.get(payload);
265
+ const batches = (state.remote.batches ??=
266
+ /** @type {NonNullable<typeof state.remote.batches>} */ (new Map()));
267
+ let batched = batches.get(__.id);
268
+ if (!batched) {
269
+ batched = new Map();
270
+ batches.set(__.id, batched);
271
+ }
272
+ const entry = batched.get(payload);
269
273
 
270
274
  if (entry) {
271
275
  entry.resolvers.push({ resolve, reject });
272
276
  return;
273
277
  }
274
278
 
275
- batching.set(payload, {
279
+ batched.set(payload, {
276
280
  get_validated,
277
281
  resolvers: [{ resolve, reject }]
278
282
  });
279
283
 
280
- if (batching.size > 1) return;
284
+ if (batched.size > 1) return;
281
285
 
282
286
  setTimeout(async () => {
283
- const batched = batching;
284
- batching = new Map();
287
+ batches.delete(__.id);
285
288
  const entries = Array.from(batched.values());
286
289
 
287
290
  try {
@@ -434,6 +437,12 @@ function create_query_resource(__, payload, state, fn) {
434
437
  return false;
435
438
  },
436
439
  refresh() {
440
+ const { event } = get_request_store();
441
+ if (!event.isRemoteRequest) {
442
+ // If the form submission is not a remote request, refreshing the data is
443
+ // useless, because it can't be returned to the client.
444
+ return Promise.resolve();
445
+ }
437
446
  const refresh_context = get_refresh_context(__, 'refresh', payload);
438
447
  const is_immediate_refresh = !refresh_context.cache[refresh_context.payload];
439
448
  const value = is_immediate_refresh ? get_promise() : fn();
@@ -675,7 +675,7 @@ async function initialize(result, target, hydrate) {
675
675
  const style = document.querySelector('style[data-sveltekit]');
676
676
  if (style) style.remove();
677
677
 
678
- Object.assign(page, /** @type {import('@sveltejs/kit').Page} */ (result.props.page));
678
+ update(/** @type {import('@sveltejs/kit').Page} */ (result.props.page));
679
679
 
680
680
  root = new app.root({
681
681
  target,
@@ -1917,6 +1917,17 @@ async function navigate({
1917
1917
  await svelte.tick();
1918
1918
  await svelte.tick();
1919
1919
 
1920
+ if (token !== nav_token) {
1921
+ // a new navigation happened while we were waiting for the DOM to update, so abort
1922
+ nav.reject(new Error('navigation aborted'));
1923
+ return false;
1924
+ }
1925
+
1926
+ // Check for async rendering error
1927
+ if (navigation_result.props.page && rendering_error) {
1928
+ Object.assign(navigation_result.props.page, rendering_error);
1929
+ }
1930
+
1920
1931
  // we reset scroll before dealing with focus, to avoid a flash of unscrolled content
1921
1932
  /** @type {Element | null | ''} */
1922
1933
  let deep_linked = null;
@@ -1951,14 +1962,6 @@ async function navigate({
1951
1962
 
1952
1963
  autoscroll = true;
1953
1964
 
1954
- if (navigation_result.props.page) {
1955
- // Check for async rendering error
1956
- if (rendering_error) {
1957
- Object.assign(navigation_result.props.page, rendering_error);
1958
- }
1959
- Object.assign(page, navigation_result.props.page);
1960
- }
1961
-
1962
1965
  is_navigating = false;
1963
1966
 
1964
1967
  if (type === 'popstate') {
@@ -87,6 +87,38 @@ export function form(id) {
87
87
 
88
88
  let submitted = false;
89
89
 
90
+ /** @type {InternalRemoteFormIssue[] | null} */
91
+ let unread_issues = null;
92
+
93
+ /**
94
+ * In dev, warn if there are validation issues going unread
95
+ */
96
+ function warn_on_missing_issue_reads() {
97
+ unread_issues = raw_issues;
98
+
99
+ setTimeout(() => {
100
+ if (unread_issues === null) {
101
+ return;
102
+ }
103
+
104
+ if (unread_issues.length > 0) {
105
+ const message = `Form submission had invalid data, but the validation issues were ignored:`;
106
+ const summary = unread_issues
107
+ .map((issue) =>
108
+ issue.path.length === 0
109
+ ? ` - ${issue.message}`
110
+ : ` - ${issue.path.join('.')} (${issue.message})`
111
+ )
112
+ .join('\n');
113
+ const suggestion = `Make sure you provide actionable feedback to users, using e.g. \`myForm.fields.myField.issues()\` or \`myForm.fields.allIssues()\``;
114
+
115
+ console.warn(`${message}\n\n${summary}\n\n${suggestion}`);
116
+ }
117
+
118
+ unread_issues = null;
119
+ });
120
+ }
121
+
90
122
  /**
91
123
  * @param {FormData} form_data
92
124
  * @returns {Record<string, any>}
@@ -121,6 +153,11 @@ export function form(id) {
121
153
  raw_issues,
122
154
  validated.issues.map((issue) => normalize_issue(issue, false))
123
155
  );
156
+
157
+ if (DEV) {
158
+ warn_on_missing_issue_reads();
159
+ }
160
+
124
161
  pending_count--;
125
162
  return;
126
163
  }
@@ -244,6 +281,10 @@ export function form(id) {
244
281
  apply_reconnections(form_result.reconnects);
245
282
  }
246
283
  }
284
+ } else {
285
+ if (DEV) {
286
+ warn_on_missing_issue_reads();
287
+ }
247
288
  }
248
289
 
249
290
  return succeeded;
@@ -523,7 +564,18 @@ export function form(id) {
523
564
  touched[key] = true;
524
565
  }
525
566
  },
526
- () => issues
567
+ (path, all) => {
568
+ if (DEV && unread_issues !== null && path !== undefined) {
569
+ unread_issues = unread_issues.filter((issue) => {
570
+ return (
571
+ (all ? issue.path.slice(0, path.length) : issue.path).join('.') !==
572
+ path.join('.')
573
+ );
574
+ });
575
+ }
576
+
577
+ return issues;
578
+ }
527
579
  )
528
580
  },
529
581
  result: {
@@ -601,12 +601,29 @@ export function deep_get(object, path) {
601
601
  return current;
602
602
  }
603
603
 
604
+ /**
605
+ *
606
+ * @param {string} field_type
607
+ * @param {boolean} is_array
608
+ * @param {unknown} input_value
609
+ */
610
+ function get_type_prefix(field_type, is_array, input_value) {
611
+ if (field_type === 'number' || field_type === 'range') return 'n:';
612
+ if (field_type === 'checkbox' && !is_array) return 'b:';
613
+ if (field_type === 'hidden' || field_type === 'submit') {
614
+ const input_type = typeof input_value;
615
+ if (input_type === 'number') return 'n:';
616
+ if (input_type === 'boolean') return 'b:';
617
+ }
618
+ return '';
619
+ }
620
+
604
621
  /**
605
622
  * Creates a proxy-based field accessor for form data
606
623
  * @param {any} target - Function or empty POJO
607
624
  * @param {() => Record<string, any>} get_input - Function to get current input data
608
625
  * @param {(path: (string | number)[], value: any) => void} set_input - Function to set input data
609
- * @param {() => Record<string, InternalRemoteFormIssue[]>} get_issues - Function to get current issues
626
+ * @param {(path?: (string | number)[], all?: boolean) => Record<string, InternalRemoteFormIssue[]>} get_issues - Function to get current issues
610
627
  * @param {(string | number)[]} path - Current access path
611
628
  * @returns {any} Proxy object with name(), value(), and issues() methods
612
629
  */
@@ -643,7 +660,7 @@ export function create_field_proxy(target, get_input, set_input, get_issues, pat
643
660
 
644
661
  if (prop === 'issues' || prop === 'allIssues') {
645
662
  const issues_func = () => {
646
- const all_issues = get_issues()[key === '' ? '$' : key];
663
+ const all_issues = get_issues(path, prop === 'allIssues')[key === '' ? '$' : key];
647
664
 
648
665
  if (prop === 'allIssues') {
649
666
  return all_issues?.map((issue) => ({
@@ -674,12 +691,7 @@ export function create_field_proxy(target, get_input, set_input, get_issues, pat
674
691
  type === 'select multiple' ||
675
692
  (type === 'checkbox' && typeof input_value === 'string');
676
693
 
677
- const prefix =
678
- type === 'number' || type === 'range'
679
- ? 'n:'
680
- : type === 'checkbox' && !is_array
681
- ? 'b:'
682
- : '';
694
+ const prefix = get_type_prefix(type, is_array, input_value);
683
695
 
684
696
  // Base properties for all input types
685
697
  /** @type {Record<string, any>} */
@@ -699,7 +711,7 @@ export function create_field_proxy(target, get_input, set_input, get_issues, pat
699
711
  // Handle submit and hidden inputs
700
712
  if (type === 'submit' || type === 'hidden') {
701
713
  if (DEV) {
702
- if (!input_value) {
714
+ if (input_value === null || input_value === undefined) {
703
715
  throw new Error(`\`${type}\` inputs must have a value`);
704
716
  }
705
717
  }
@@ -150,11 +150,10 @@ export async function internal_respond(request, options, manifest, state) {
150
150
  remote: {
151
151
  data: null,
152
152
  forms: null,
153
- /** A map of remote function key to corresponding single-flight-mutation promise */
154
153
  refreshes: null,
154
+ requested: null,
155
155
  reconnects: null,
156
- /** A map of remote function ID to payloads requested for refreshing by the client */
157
- requested: null
156
+ batches: null
158
157
  },
159
158
  is_in_remote_function: false,
160
159
  is_in_render: false,
@@ -700,10 +700,24 @@ export interface RequestState {
700
700
  RemoteInternals,
701
701
  Record<string, { serialize: boolean; data: MaybePromise<any> }>
702
702
  >;
703
- forms: null | Map<any, any>;
703
+ /** Instances created via `myForm.for(...)` */
704
+ forms: null | Map<string, any>;
705
+ /** A map of remote function key to corresponding single-flight-mutation promise */
704
706
  refreshes: null | Map<string, Promise<any>>;
705
- reconnects: null | Map<string, Promise<any>>;
707
+ reconnects: null | Map<string, Promise<void>>;
708
+ /** A map of remote function ID to payloads requested for refreshing by the client */
706
709
  requested: null | Map<string, string[]>;
710
+ /** A map of query.batch ID to payloads requested for that batch within the same macrotask */
711
+ batches: null | Map<
712
+ string,
713
+ Map<
714
+ string,
715
+ {
716
+ get_validated: () => MaybePromise<any>;
717
+ resolvers: Array<{ resolve: (value: any) => void; reject: (error: any) => void }>;
718
+ }
719
+ >
720
+ >;
707
721
  };
708
722
  readonly is_in_remote_function: boolean;
709
723
  readonly is_in_render: boolean;
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.59.1';
4
+ export const VERSION = '2.60.1';
package/types/index.d.ts CHANGED
@@ -1879,8 +1879,8 @@ declare module '@sveltejs/kit' {
1879
1879
  checkbox: boolean | string[];
1880
1880
  radio: string;
1881
1881
  file: File;
1882
- hidden: string;
1883
- submit: string;
1882
+ hidden: string | number | boolean;
1883
+ submit: string | number | boolean;
1884
1884
  button: string;
1885
1885
  reset: string;
1886
1886
  image: string;
@@ -1971,11 +1971,15 @@ declare module '@sveltejs/kit' {
1971
1971
  : Value extends boolean
1972
1972
  ? [type: Type] | [type: Type, value: boolean]
1973
1973
  : [type: Type] | [type: Type, value: Value | (string & {})]
1974
- : Type extends 'radio' | 'submit' | 'hidden'
1975
- ? [type: Type, value: Value | (string & {})]
1976
- : Type extends 'file' | 'file multiple'
1977
- ? [type: Type]
1978
- : [type: Type] | [type: Type, value: Value | (string & {})];
1974
+ : Type extends 'submit' | 'hidden'
1975
+ ? Value extends string
1976
+ ? [type: Type, value: Value | (string & {})]
1977
+ : [type: Type, value: Value]
1978
+ : Type extends 'radio'
1979
+ ? [type: Type, value: Value | (string & {})]
1980
+ : Type extends 'file' | 'file multiple'
1981
+ ? [type: Type]
1982
+ : [type: Type] | [type: Type, value: Value | (string & {})];
1979
1983
 
1980
1984
  /**
1981
1985
  * Form field accessor type that provides name(), value(), and issues() methods
@@ -2923,7 +2927,7 @@ declare module '@sveltejs/kit' {
2923
2927
  class Redirect_1 {
2924
2928
 
2925
2929
  constructor(status: 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308, location: string);
2926
- status: 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308;
2930
+ status: 301 | 302 | 303 | 307 | 308 | 300 | 304 | 305 | 306;
2927
2931
  location: string;
2928
2932
  }
2929
2933
 
@@ -238,6 +238,6 @@
238
238
  null,
239
239
  null
240
240
  ],
241
- "mappings": ";;;;;;;;MAiCKA,IAAIA;;;;;kBAKQC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;MAQrBC,aAAaA;;;;;OAKJC,YAAYA;;kBAETC,aAAaA;;;;;;MAMzBC,qBAAqBA;;;;;;;;;;;kBAWTC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8IPC,MAAMA;;;;;;;;;;;kBAWNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4DPC,QAAQA;;;;;;;;kBAQRC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAklBdC,MAAMA;;;;;;;;;;;aAWNC,iBAAiBA;;;;;;;;;;;;aAYjBC,qBAAqBA;;;;;;;;;aASrBC,iBAAiBA;;;;;;;;;;aAUjBC,WAAWA;;;;;;;;;;aAUXC,UAAUA;;;;;;aAMVC,UAAUA;;;;;;aAMVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BPC,SAASA;;;;;kBAKJC,WAAWA;;;;;;;;;;;;aAYhBC,IAAIA;;;;;;;;;;;;kBAYCC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyHTC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BfC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6CrBC,cAAcA;;kBAETC,cAAcA;;;;;;;;;;;;;;;;;;;;kBAoBdC,eAAeA;;;;;;;;;;;;;;;;;;aAkBpBC,kBAAkBA;;kBAEbC,cAAcA;;;;;;;;;;;;;;;kBAedC,eAAeA;;;;;;;;;;;;;;;kBAefC,oBAAoBA;;;;;;;;;;;;;;;;;;;;kBAoBpBC,kBAAkBA;;;;;;;;;;;;;;;;;;kBAkBlBC,cAAcA;;;;;;;;;;;;;;;;;;;;aAoBnBC,UAAUA;;;;;;;;;aASVC,cAAcA;;;;;;;;;;aAUdC,UAAUA;;;;;;;;;;;aAWVC,aAAaA;;;;;;;;;;;kBAWRC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8CTC,YAAYA;;;;;;;;;aASZC,cAAcA;;;;;;;;;;;aAWdC,kBAAkBA;;;;;aAKlBC,oBAAoBA;;;;;;;;;;;;;;;;aAgBpBC,wBAAwBA;;;;;;;;;;;;;;;;;;aAkBxBC,eAAeA;;;;kBAIVC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA+GjBC,cAAcA;;;;;kBAKTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;kBAuBdC,eAAeA;;;;;;;;;;;;;;;cAenBC,MAAMA;;;;;;kBAMFC,iBAAiBA;;;;;;;kBAOjBC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;aAyBhBC,UAAUA;;;;;;;kBAOLC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAkFpBC,MAAMA;;;;;;;;;;aAUNC,OAAOA;;;;;;;;;;;;;;;;aAgBPC,YAAYA;;;;;;;;;;;;kBC5xDXC,SAASA;;;;;;;;;;kBAqBTC,QAAQA;;;;;;;aDoyDTC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA6BTC,QAAQA;;;;;;MAMpBC,uBAAuBA;;;MAGvBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BLC,mBAAmBA;;;;;MAK1BC,iBAAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAkDjBC,sBAAsBA;;;;;;;;;;;MAWtBC,WAAWA;MACXC,eAAeA;;;;;;aAMRC,oBAAoBA;;MAE3BC,MAAMA;;;;;;;;;;;;;;;aAeCC,eAAeA;;;;;;;;;;;;;;MActBC,wBAAwBA;;;;;MAKxBC,YAAYA;;;;;;;;;;;;;;;;;;MAkBZC,oBAAoBA;;;;;;;;;;;;;;;aAebC,gBAAgBA;;;;;;;;;;;;;;;;;;;;;MAqBvBC,mBAAmBA;;;;MAInBC,UAAUA;;kBAEEC,eAAeA;;;;kBAIfC,eAAeA;;;;;;;MAO3BC,SAASA;;;;;;;;;;;;;aAaFC,YAAYA;;;;;;;;;;;;;;;;;;kBAkBPC,eAAeA;;;;;;;;aAQpBC,UAAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuDVC,aAAaA;;;;;;;;aAQbC,iBAAiBA;;;;;;;aAOjBC,cAAcA;;;;;;;;;;;;;;;;;;aAkBdC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2CXC,eAAeA;;;;;;;;;;;;;;;aAefC,mBAAmBA;;;;;aAKnBC,uBAAuBA;;;;;;;;;;;;;;;;aAgBvBC,mBAAmBA;;;;;;;;;;;aAWnBC,uBAAuBA;;;WErwElBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAkDZC,GAAGA;;;;;;;;;;;;;;;;;;;;;WAqBHC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmElBC,UAAUA;;WAELC,MAAMA;;;;;;;;;MASXC,YAAYA;;WAEPC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmCXC,yBAAyBA;;;;;;;;;;WAUzBC,yBAAyBA;;;;WAIzBC,sCAAsCA;;;;WAItCC,4BAA4BA;;;;MAIjCC,8BAA8BA;MAC9BC,8BAA8BA;MAC9BC,iCAAiCA;;;;;MAKjCC,2CAA2CA;;;;;;aAM3CC,eAAeA;;WAIVC,cAAcA;;;;;WAKdC,YAAYA;;;;;;;MAOjBC,aAAaA;;MAEbC,WAAWA;;;;;;;;MAQXC,KAAKA;WCtMAC,KAAKA;;;;;;WAeLC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuHTC,YAAYA;;;;;;;;;;;;;WAkBZC,QAAQA;;;;;;;;;;;;;;;;MAkCbC,iBAAiBA;;;;;;;;;WAWZC,UAAUA;;;;;;;;;;;;;WAaVC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;WAqJTC,YAAYA;;;;;;;;;;;;;;;;;;;;MAoBjBC,kBAAkBA;;WAEbC,aAAaA;;;;;;;;;;;WAWbC,UAAUA;;;;;;;;;;;WAWVC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;MAyBZC,aAAaA;;WA+BRC,eAAeA;;;;;;MAMpBC,uBAAuBA;;MAGvBC,WAAWA;;;;;;;;WAQNC,QAAQA;;;;;;;;;WASRC,cAAcA;;;;;;;;;MA+CnBC,eAAeA;;;;;MAKfC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCvfdC,WAAWA;;;;;;;;;;;;;;;;;;;iBAsBXC,QAAQA;;;;;iBAiBRC,UAAUA;;;;;;iBASVC,IAAIA;;;;;;iBA4BJC,IAAIA;;;;;;;;;;;;;;;;iBAkDJC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BfC,OAAOA;;;;;;iBAYPC,iBAAiBA;;;;;;;;;;;;;;iBAmBjBC,YAAYA;;;;;;;MCpQ2BC,eAAeA;MACjBC,WAAWA;OAd1DC,wBAAwBA;cCDjBC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBC4EJC,QAAQA;;;;;;iBCyCFC,UAAUA;;;;;;iBAgDVC,WAAWA;;;;;iBAgFjBC,oBAAoBA;;;;;;;;;;;iBCtOpBC,gBAAgBA;;;;;;;;;;iBCuHVC,SAASA;;;;;;;;;cCtIlBC,OAAOA;;;;;cAKPC,GAAGA;;;;;cAKHC,QAAQA;;;;;cAKRC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;iBCaJC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;iBAgDXC,OAAOA;;;;;;;iBCm4EDC,WAAWA;;;;;;;;;;;iBA9UjBC,aAAaA;;;;;;;;;;;;iBAiBbC,cAAcA;;;;;;;;;;iBAedC,UAAUA;;;;;iBASVC,qBAAqBA;;;;;;;;;;iBA8BrBC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCJC,UAAUA;;;;iBA0BVC,aAAaA;;;;;iBAebC,UAAUA;;;;;;;;;;;;;;iBAqBJC,WAAWA;;;;;;;;;;;;;;;;;;iBAoCXC,WAAWA;;;;;iBAsCjBC,SAASA;;;;;iBA+CTC,YAAYA;MX7wEhBzE,YAAYA;;;;;;;;;;;;;;YY/Ib0E,IAAIA;;;;;;;;;YASJC,MAAMA;;;;;iBAKDC,YAAYA;;;MCnBvBC,iBAAiBA;;;;;;MAMVC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;iBCWPC,KAAKA;;;;;;;;;;;;;;;;;;;;;iBA6BLC,OAAOA;;;;;;;;;;;;;;;;;;;iBAmCDC,KAAKA;;;;;;;;;;;;;;;;;;;;;;;iBCrEXC,IAAIA;;;;;;;;iBCSJC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MfmTnBC,qCAAqCA;;;;;;;;MA0LrCC,8BAA8BA;MD9W9BrF,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ciB1GXsF,IAAIA;;;;;cAQJC,UAAUA;;;;;;;;;;;cAMVC,OAAOA;;;;;;;;;iBCrDPC,SAASA;;;;;;;;;;;;;;;cAyBTH,IAAIA;;;;;;;;;;cAiBJC,UAAUA;;;;;;;;cAeVC,OAAOA",
241
+ "mappings": "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",
242
242
  "ignoreList": []
243
243
  }