@claude-sessions/web 0.3.7 → 0.4.1-beta.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.
Files changed (177) hide show
  1. package/build/client/_app/immutable/assets/0.D2FnNtrO.css +1 -0
  2. package/build/client/_app/immutable/assets/0.D2FnNtrO.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.D2FnNtrO.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/Toast.CQSY_S6M.css.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{pOdkXMWy.js → B-Z9hXPk.js} +1 -1
  6. package/build/client/_app/immutable/chunks/B-Z9hXPk.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/B-Z9hXPk.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{Ck-YPZB6.js → BAHJNsIv.js} +1 -1
  9. package/build/client/_app/immutable/chunks/BAHJNsIv.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/BAHJNsIv.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/BUqdiQ8V.js +90 -0
  12. package/build/client/_app/immutable/chunks/BUqdiQ8V.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/BUqdiQ8V.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{Dbjp-HdT.js → Bt_HBaBk.js} +1 -1
  15. package/build/client/_app/immutable/chunks/Bt_HBaBk.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/Bt_HBaBk.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/Cr0eW1j3.js +1 -0
  18. package/build/client/_app/immutable/chunks/Cr0eW1j3.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/Cr0eW1j3.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/DOXVKi87.js +2 -0
  21. package/build/client/_app/immutable/chunks/DOXVKi87.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/DOXVKi87.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/YXuXYbOb.js +1 -0
  24. package/build/client/_app/immutable/chunks/YXuXYbOb.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/YXuXYbOb.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/app.B37sNVm4.js +2 -0
  27. package/build/client/_app/immutable/entry/app.B37sNVm4.js.br +0 -0
  28. package/build/client/_app/immutable/entry/app.B37sNVm4.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/start.CUKKnspj.js +1 -0
  30. package/build/client/_app/immutable/entry/start.CUKKnspj.js.br +2 -0
  31. package/build/client/_app/immutable/entry/start.CUKKnspj.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{0.D4LDvqQb.js → 0.DD0gH91e.js} +1 -1
  33. package/build/client/_app/immutable/nodes/0.DD0gH91e.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/0.DD0gH91e.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/1.j1rqa9HA.js +1 -0
  36. package/build/client/_app/immutable/nodes/1.j1rqa9HA.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/1.j1rqa9HA.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/2.5x79czX-.js +4 -0
  39. package/build/client/_app/immutable/nodes/2.5x79czX-.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/2.5x79czX-.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/3.CkQ0QnVZ.js +4 -0
  42. package/build/client/_app/immutable/nodes/3.CkQ0QnVZ.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/3.CkQ0QnVZ.js.gz +0 -0
  44. package/build/client/_app/version.json +1 -1
  45. package/build/client/_app/version.json.br +0 -0
  46. package/build/client/_app/version.json.gz +0 -0
  47. package/build/env.js +51 -2
  48. package/build/handler.js +46 -4
  49. package/build/index.js +25 -14
  50. package/build/server/chunks/0-BhPy9YZY.js +17 -0
  51. package/build/server/chunks/{0-DkD09WcK.js.map → 0-BhPy9YZY.js.map} +1 -1
  52. package/build/server/chunks/1-CTTD_wla.js +9 -0
  53. package/build/server/chunks/{1-CjtVgNYW.js.map → 1-CTTD_wla.js.map} +1 -1
  54. package/build/server/chunks/2-Bvyspg6i.js +9 -0
  55. package/build/server/chunks/{2-wstlfOP5.js.map → 2-Bvyspg6i.js.map} +1 -1
  56. package/build/server/chunks/3-BHD2c0Ph.js +9 -0
  57. package/build/server/chunks/{3-Cdn9_0OG.js.map → 3-BHD2c0Ph.js.map} +1 -1
  58. package/build/server/chunks/{InputModal-XaplAR5y.js → InputModal-CbpiMXy3.js} +3 -3
  59. package/build/server/chunks/InputModal-CbpiMXy3.js.map +1 -0
  60. package/build/server/chunks/{Toast-ihrVamsT.js → Toast-Dr8M-5Wk.js} +4 -4
  61. package/build/server/chunks/Toast-Dr8M-5Wk.js.map +1 -0
  62. package/build/server/chunks/{_layout.svelte-COfbk473.js → _layout.svelte-CkIsNl4s.js} +7 -6
  63. package/build/server/chunks/_layout.svelte-CkIsNl4s.js.map +1 -0
  64. package/build/server/chunks/{_page.svelte-CKSi7jlX.js → _page.svelte-BdKbLK1W.js} +8 -7
  65. package/build/server/chunks/_page.svelte-BdKbLK1W.js.map +1 -0
  66. package/build/server/chunks/{_page.svelte-C5Xngf9U.js → _page.svelte-DWKQDFXZ.js} +452 -240
  67. package/build/server/chunks/_page.svelte-DWKQDFXZ.js.map +1 -0
  68. package/build/server/chunks/{_server.ts-CFQ3_7g1.js → _server.ts-8OBR5eCA.js} +3 -2
  69. package/build/server/chunks/{_server.ts-CFQ3_7g1.js.map → _server.ts-8OBR5eCA.js.map} +1 -1
  70. package/build/server/chunks/_server.ts-B2LLvx6I.js +41 -0
  71. package/build/server/chunks/_server.ts-B2LLvx6I.js.map +1 -0
  72. package/build/server/chunks/{_server.ts-Bzg6xSYv.js → _server.ts-B4SnxrOX.js} +3 -2
  73. package/build/server/chunks/{_server.ts-Bzg6xSYv.js.map → _server.ts-B4SnxrOX.js.map} +1 -1
  74. package/build/server/chunks/{_server.ts-a85289si.js → _server.ts-B9gP-Tri.js} +7 -3
  75. package/build/server/chunks/_server.ts-B9gP-Tri.js.map +1 -0
  76. package/build/server/chunks/{_server.ts-IjEZJmtD.js → _server.ts-BQxGBeCg.js} +3 -2
  77. package/build/server/chunks/{_server.ts-IjEZJmtD.js.map → _server.ts-BQxGBeCg.js.map} +1 -1
  78. package/build/server/chunks/{_server.ts-CF7wNACi.js → _server.ts-Bcdjougg.js} +3 -2
  79. package/build/server/chunks/{_server.ts-CF7wNACi.js.map → _server.ts-Bcdjougg.js.map} +1 -1
  80. package/build/server/chunks/{_server.ts-CBabn3Le.js → _server.ts-BeWDhgJ_.js} +3 -2
  81. package/build/server/chunks/{_server.ts-CBabn3Le.js.map → _server.ts-BeWDhgJ_.js.map} +1 -1
  82. package/build/server/chunks/{_server.ts-bj28Awpj.js → _server.ts-CEGd9zNn.js} +3 -2
  83. package/build/server/chunks/_server.ts-CEGd9zNn.js.map +1 -0
  84. package/build/server/chunks/{_server.ts-QYg-pRKw.js → _server.ts-CMsFINkl.js} +3 -2
  85. package/build/server/chunks/{_server.ts-QYg-pRKw.js.map → _server.ts-CMsFINkl.js.map} +1 -1
  86. package/build/server/chunks/{_server.ts-BNGntgHD.js → _server.ts-CUginV8c.js} +7 -3
  87. package/build/server/chunks/_server.ts-CUginV8c.js.map +1 -0
  88. package/build/server/chunks/{_server.ts-DRy1BtKz.js → _server.ts-Crip_Csr.js} +3 -2
  89. package/build/server/chunks/{_server.ts-DRy1BtKz.js.map → _server.ts-Crip_Csr.js.map} +1 -1
  90. package/build/server/chunks/{_server.ts-C46vcb_V.js → _server.ts-CuAlKvWH.js} +3 -2
  91. package/build/server/chunks/{_server.ts-C46vcb_V.js.map → _server.ts-CuAlKvWH.js.map} +1 -1
  92. package/build/server/chunks/{_server.ts-msjVztXK.js → _server.ts-DfNIRtb5.js} +3 -2
  93. package/build/server/chunks/{_server.ts-msjVztXK.js.map → _server.ts-DfNIRtb5.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-CBCUnjeX.js → _server.ts-DnfpkUoI.js} +3 -2
  95. package/build/server/chunks/{_server.ts-CBCUnjeX.js.map → _server.ts-DnfpkUoI.js.map} +1 -1
  96. package/build/server/chunks/_server.ts-cVOhu8ub.js +26 -0
  97. package/build/server/chunks/_server.ts-cVOhu8ub.js.map +1 -0
  98. package/build/server/chunks/{_server.ts-Dtvv8PMc.js → _server.ts-dXxEqPlK.js} +3 -2
  99. package/build/server/chunks/{_server.ts-Dtvv8PMc.js.map → _server.ts-dXxEqPlK.js.map} +1 -1
  100. package/build/server/chunks/{error.svelte-C43AeaaJ.js → error.svelte-BNCG_dZH.js} +3 -3
  101. package/build/server/chunks/{error.svelte-C43AeaaJ.js.map → error.svelte-BNCG_dZH.js.map} +1 -1
  102. package/build/server/chunks/exports-BXvEiaiv.js.map +1 -1
  103. package/build/server/chunks/{index2-Da0doXJY.js → index-BEaiIYry.js} +388 -4
  104. package/build/server/chunks/index-BEaiIYry.js.map +1 -0
  105. package/build/server/chunks/index-CoD1IJuy.js.map +1 -1
  106. package/build/server/chunks/{index-DzYX9r1_.js → index2-ybZwlzIk.js} +110 -116
  107. package/build/server/chunks/index2-ybZwlzIk.js.map +1 -0
  108. package/build/server/chunks/{index3-DkgTDgY2.js → index3-D8wHvUHX.js} +781 -597
  109. package/build/server/chunks/index3-D8wHvUHX.js.map +1 -0
  110. package/build/server/chunks/{index4-BUZEWk-I.js → index4-B6vRxXfo.js} +2 -2
  111. package/build/server/chunks/index4-B6vRxXfo.js.map +1 -0
  112. package/build/server/chunks/shared-server-DaWdgxVh.js +11 -0
  113. package/build/server/chunks/shared-server-DaWdgxVh.js.map +1 -0
  114. package/build/server/index.js +115 -439
  115. package/build/server/index.js.map +1 -1
  116. package/build/server/manifest.js +21 -21
  117. package/build/server/manifest.js.map +1 -1
  118. package/dist/cli.js +26 -1
  119. package/package.json +19 -18
  120. package/build/client/_app/immutable/assets/0.DYXbBCWs.css +0 -1
  121. package/build/client/_app/immutable/assets/0.DYXbBCWs.css.br +0 -0
  122. package/build/client/_app/immutable/assets/0.DYXbBCWs.css.gz +0 -0
  123. package/build/client/_app/immutable/chunks/CT0aV1AN.js +0 -90
  124. package/build/client/_app/immutable/chunks/CT0aV1AN.js.br +0 -0
  125. package/build/client/_app/immutable/chunks/CT0aV1AN.js.gz +0 -0
  126. package/build/client/_app/immutable/chunks/Ck-YPZB6.js.br +0 -0
  127. package/build/client/_app/immutable/chunks/Ck-YPZB6.js.gz +0 -0
  128. package/build/client/_app/immutable/chunks/Dbjp-HdT.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/Dbjp-HdT.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/HaThayHP.js +0 -1
  131. package/build/client/_app/immutable/chunks/HaThayHP.js.br +0 -0
  132. package/build/client/_app/immutable/chunks/HaThayHP.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/fuY-CvTV.js +0 -1
  134. package/build/client/_app/immutable/chunks/fuY-CvTV.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/fuY-CvTV.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/nUq5tIUU.js +0 -2
  137. package/build/client/_app/immutable/chunks/nUq5tIUU.js.br +0 -0
  138. package/build/client/_app/immutable/chunks/nUq5tIUU.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/pOdkXMWy.js.br +0 -0
  140. package/build/client/_app/immutable/chunks/pOdkXMWy.js.gz +0 -0
  141. package/build/client/_app/immutable/entry/app.DMBaTVWt.js +0 -2
  142. package/build/client/_app/immutable/entry/app.DMBaTVWt.js.br +0 -0
  143. package/build/client/_app/immutable/entry/app.DMBaTVWt.js.gz +0 -0
  144. package/build/client/_app/immutable/entry/start.C3tcesOa.js +0 -1
  145. package/build/client/_app/immutable/entry/start.C3tcesOa.js.br +0 -2
  146. package/build/client/_app/immutable/entry/start.C3tcesOa.js.gz +0 -0
  147. package/build/client/_app/immutable/nodes/0.D4LDvqQb.js.br +0 -0
  148. package/build/client/_app/immutable/nodes/0.D4LDvqQb.js.gz +0 -0
  149. package/build/client/_app/immutable/nodes/1.5BEtqK67.js +0 -1
  150. package/build/client/_app/immutable/nodes/1.5BEtqK67.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/1.5BEtqK67.js.gz +0 -0
  152. package/build/client/_app/immutable/nodes/2.C-xl-nxy.js +0 -4
  153. package/build/client/_app/immutable/nodes/2.C-xl-nxy.js.br +0 -0
  154. package/build/client/_app/immutable/nodes/2.C-xl-nxy.js.gz +0 -0
  155. package/build/client/_app/immutable/nodes/3.BqDX5X09.js +0 -4
  156. package/build/client/_app/immutable/nodes/3.BqDX5X09.js.br +0 -0
  157. package/build/client/_app/immutable/nodes/3.BqDX5X09.js.gz +0 -0
  158. package/build/server/chunks/0-DkD09WcK.js +0 -17
  159. package/build/server/chunks/1-CjtVgNYW.js +0 -9
  160. package/build/server/chunks/2-wstlfOP5.js +0 -9
  161. package/build/server/chunks/3-Cdn9_0OG.js +0 -9
  162. package/build/server/chunks/InputModal-XaplAR5y.js.map +0 -1
  163. package/build/server/chunks/Toast-ihrVamsT.js.map +0 -1
  164. package/build/server/chunks/_layout.svelte-COfbk473.js.map +0 -1
  165. package/build/server/chunks/_page.svelte-C5Xngf9U.js.map +0 -1
  166. package/build/server/chunks/_page.svelte-CKSi7jlX.js.map +0 -1
  167. package/build/server/chunks/_server.ts-BNGntgHD.js.map +0 -1
  168. package/build/server/chunks/_server.ts-BbeQOMoJ.js +0 -19
  169. package/build/server/chunks/_server.ts-BbeQOMoJ.js.map +0 -1
  170. package/build/server/chunks/_server.ts-CHX8x48n.js +0 -27
  171. package/build/server/chunks/_server.ts-CHX8x48n.js.map +0 -1
  172. package/build/server/chunks/_server.ts-a85289si.js.map +0 -1
  173. package/build/server/chunks/_server.ts-bj28Awpj.js.map +0 -1
  174. package/build/server/chunks/index-DzYX9r1_.js.map +0 -1
  175. package/build/server/chunks/index2-Da0doXJY.js.map +0 -1
  176. package/build/server/chunks/index3-DkgTDgY2.js.map +0 -1
  177. package/build/server/chunks/index4-BUZEWk-I.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { s as set, L as LEGACY_PROPS, g as get, f as flushSync, d as define_property, m as mutable_source, i as init_operations, a as get_first_child, C as COMMENT_NODE, H as HYDRATION_START, b as get_next_sibling, c as HYDRATION_ERROR, h as hydration_failed, e as clear_text_content, j as array_from, k as component_root, l as set_active_reaction, n as set_active_effect, o as active_effect, p as active_reaction, q as create_text, r as setContext, t as block, u as branch, B as Batch, v as pause_effect, w as set_component_context, x as handle_error, y as component_context, z as move_effect, A as internal_set, D as destroy_effect, E as invoke_error_boundary, F as queue_micro_task, G as svelte_boundary_reset_onerror, I as effect_tracking, J as source, K as render_effect, M as HYDRATION_END, N as HYDRATION_START_ELSE, O as untrack, P as increment, Q as push$1, R as pop$1, S as EFFECT_TRANSPARENT, T as EFFECT_PRESERVED, U as BOUNDARY_EFFECT, V as BROWSER, W as readable, X as writable } from './chunks/index-DzYX9r1_.js';
2
- import { j as json, t as text, R as Redirect, S as SvelteKitError, H as HttpError, e as error, A as ActionFailure } from './chunks/index-CoD1IJuy.js';
1
+ import { s as set, L as LEGACY_PROPS, g as get, f as flushSync, d as define_property, m as mutable_source, i as init_operations, a as get_first_child, C as COMMENT_NODE, H as HYDRATION_START, b as get_next_sibling, c as HYDRATION_ERROR, h as hydration_failed, e as clear_text_content, j as array_from, k as component_root, l as set_active_reaction, n as set_active_effect, o as active_effect, p as active_reaction, q as create_text, r as setContext, t as block, u as branch, B as Batch, v as pause_effect, w as defer_effect, x as set_component_context, y as handle_error, z as component_context, A as move_effect, D as set_signal_status, E as DIRTY, F as schedule_effect, M as MAYBE_DIRTY, G as internal_set, I as destroy_effect, J as invoke_error_boundary, K as queue_micro_task, N as svelte_boundary_reset_onerror, O as effect_tracking, P as source, Q as render_effect, R as HYDRATION_END, S as HYDRATION_START_ELSE, T as untrack, U as increment, V as push$1, W as pop$1, X as EFFECT_TRANSPARENT, Y as EFFECT_PRESERVED, Z as BOUNDARY_EFFECT, _ as BROWSER, $ as readable, a0 as writable } from './chunks/index2-ybZwlzIk.js';
2
+ import { S as SvelteKitError, j as json, t as text, R as Redirect, H as HttpError, e as error, A as ActionFailure } from './chunks/index-CoD1IJuy.js';
3
3
  import { t as text_decoder, b as base64_decode, d as decode_pathname, a as decode_params, n as normalize_path, c as disable_search, w as with_request_store, v as validate_layout_server_exports, e as validate_layout_exports, f as validate_page_server_exports, g as validate_page_exports, h as text_encoder, r as resolve, m as make_trackable, i as get_relative_path, j as base64_encode } from './chunks/exports-BXvEiaiv.js';
4
- import { r as render, i as is_passive_event } from './chunks/index2-Da0doXJY.js';
4
+ import { D as DevalueError, i as is_primitive, g as get_type, a as is_plain_object, e as enumerable_symbols, s as stringify_key, b as stringify_string, r as render, c as is_passive_event, u as uneval } from './chunks/index-BEaiIYry.js';
5
+ import { s as set_private_env, a as set_public_env, p as public_env } from './chunks/shared-server-DaWdgxVh.js';
5
6
 
6
7
  /**
7
8
  * @template {{ tracing: { enabled: boolean, root: import('@opentelemetry/api').Span, current: import('@opentelemetry/api').Span } }} T
@@ -33,94 +34,6 @@ function reset() {
33
34
  assets = initial.assets;
34
35
  }
35
36
 
36
- const escaped = {
37
- "<": "\\u003C",
38
- "\\": "\\\\",
39
- "\b": "\\b",
40
- "\f": "\\f",
41
- "\n": "\\n",
42
- "\r": "\\r",
43
- " ": "\\t",
44
- "\u2028": "\\u2028",
45
- "\u2029": "\\u2029"
46
- };
47
- class DevalueError extends Error {
48
- /**
49
- * @param {string} message
50
- * @param {string[]} keys
51
- * @param {any} [value] - The value that failed to be serialized
52
- * @param {any} [root] - The root value being serialized
53
- */
54
- constructor(message, keys, value, root) {
55
- super(message);
56
- this.name = "DevalueError";
57
- this.path = keys.join("");
58
- this.value = value;
59
- this.root = root;
60
- }
61
- }
62
- function is_primitive(thing) {
63
- return Object(thing) !== thing;
64
- }
65
- const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(
66
- Object.prototype
67
- ).sort().join("\0");
68
- function is_plain_object(thing) {
69
- const proto = Object.getPrototypeOf(thing);
70
- return proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join("\0") === object_proto_names;
71
- }
72
- function get_type(thing) {
73
- return Object.prototype.toString.call(thing).slice(8, -1);
74
- }
75
- function get_escaped_char(char) {
76
- switch (char) {
77
- case '"':
78
- return '\\"';
79
- case "<":
80
- return "\\u003C";
81
- case "\\":
82
- return "\\\\";
83
- case "\n":
84
- return "\\n";
85
- case "\r":
86
- return "\\r";
87
- case " ":
88
- return "\\t";
89
- case "\b":
90
- return "\\b";
91
- case "\f":
92
- return "\\f";
93
- case "\u2028":
94
- return "\\u2028";
95
- case "\u2029":
96
- return "\\u2029";
97
- default:
98
- return char < " " ? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}` : "";
99
- }
100
- }
101
- function stringify_string(str) {
102
- let result = "";
103
- let last_pos = 0;
104
- const len = str.length;
105
- for (let i = 0; i < len; i += 1) {
106
- const char = str[i];
107
- const replacement = get_escaped_char(char);
108
- if (replacement) {
109
- result += str.slice(last_pos, i) + replacement;
110
- last_pos = i + 1;
111
- }
112
- }
113
- return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`;
114
- }
115
- function enumerable_symbols(object) {
116
- return Object.getOwnPropertySymbols(object).filter(
117
- (symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable
118
- );
119
- }
120
- const is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
121
- function stringify_key(key) {
122
- return is_identifier.test(key) ? "." + key : "[" + JSON.stringify(key) + "]";
123
- }
124
37
  function encode64(arraybuffer) {
125
38
  const dv = new DataView(arraybuffer);
126
39
  let binaryString = "";
@@ -210,6 +123,7 @@ function unflatten(parsed, revivers) {
210
123
  parsed
211
124
  );
212
125
  const hydrated = Array(values.length);
126
+ let hydrating = null;
213
127
  function hydrate(index, standalone = false) {
214
128
  if (index === UNDEFINED) return void 0;
215
129
  if (index === NAN) return NaN;
@@ -232,7 +146,14 @@ function unflatten(parsed, revivers) {
232
146
  if (typeof i !== "number") {
233
147
  i = values.push(value[1]) - 1;
234
148
  }
235
- return hydrated[index] = reviver(hydrate(i));
149
+ hydrating ??= /* @__PURE__ */ new Set();
150
+ if (hydrating.has(i)) {
151
+ throw new Error("Invalid circular reference");
152
+ }
153
+ hydrating.add(i);
154
+ hydrated[index] = reviver(hydrate(i));
155
+ hydrating.delete(i);
156
+ return hydrated[index];
236
157
  }
237
158
  switch (type) {
238
159
  case "Date":
@@ -279,13 +200,20 @@ function unflatten(parsed, revivers) {
279
200
  case "Float64Array":
280
201
  case "BigInt64Array":
281
202
  case "BigUint64Array": {
203
+ if (values[value[1]][0] !== "ArrayBuffer") {
204
+ throw new Error("Invalid data");
205
+ }
282
206
  const TypedArrayConstructor = globalThis[type];
283
- const typedArray = new TypedArrayConstructor(hydrate(value[1]));
207
+ const buffer = hydrate(value[1]);
208
+ const typedArray = new TypedArrayConstructor(buffer);
284
209
  hydrated[index] = value[2] !== void 0 ? typedArray.subarray(value[2], value[3]) : typedArray;
285
210
  break;
286
211
  }
287
212
  case "ArrayBuffer": {
288
213
  const base64 = value[1];
214
+ if (typeof base64 !== "string") {
215
+ throw new Error("Invalid ArrayBuffer encoding");
216
+ }
289
217
  const arraybuffer = decode64(base64);
290
218
  hydrated[index] = arraybuffer;
291
219
  break;
@@ -371,14 +299,14 @@ function stringify$1(value, reducers) {
371
299
  }
372
300
  let str = "";
373
301
  if (is_primitive(thing)) {
374
- str = stringify_primitive$1(thing);
302
+ str = stringify_primitive(thing);
375
303
  } else {
376
304
  const type = get_type(thing);
377
305
  switch (type) {
378
306
  case "Number":
379
307
  case "String":
380
308
  case "Boolean":
381
- str = `["Object",${stringify_primitive$1(thing)}]`;
309
+ str = `["Object",${stringify_primitive(thing)}]`;
382
310
  break;
383
311
  case "BigInt":
384
312
  str = `["BigInt",${thing}]`;
@@ -422,7 +350,7 @@ function stringify$1(value, reducers) {
422
350
  str = '["Map"';
423
351
  for (const [key, value2] of thing) {
424
352
  keys.push(
425
- `.get(${is_primitive(key) ? stringify_primitive$1(key) : "..."})`
353
+ `.get(${is_primitive(key) ? stringify_primitive(key) : "..."})`
426
354
  );
427
355
  str += `,${flatten(key)},${flatten(value2)}`;
428
356
  keys.pop();
@@ -513,7 +441,7 @@ function stringify$1(value, reducers) {
513
441
  if (index < 0) return `${index}`;
514
442
  return `[${stringified.join(",")}]`;
515
443
  }
516
- function stringify_primitive$1(thing) {
444
+ function stringify_primitive(thing) {
517
445
  const type = typeof thing;
518
446
  if (type === "string") return stringify_string(thing);
519
447
  if (thing instanceof String) return stringify_string(thing.toString());
@@ -560,17 +488,22 @@ function convert_formdata(data) {
560
488
  }
561
489
  const BINARY_FORM_CONTENT_TYPE = "application/x-sveltekit-formdata";
562
490
  const BINARY_FORM_VERSION = 0;
491
+ const HEADER_BYTES = 1 + 4 + 2;
563
492
  async function deserialize_binary_form(request) {
564
493
  if (request.headers.get("content-type") !== BINARY_FORM_CONTENT_TYPE) {
565
494
  const form_data = await request.formData();
566
495
  return { data: convert_formdata(form_data), meta: {}, form_data };
567
496
  }
568
497
  if (!request.body) {
569
- throw new Error("Could not deserialize binary form: no body");
498
+ throw deserialize_error("no body");
499
+ }
500
+ const content_length = parseInt(request.headers.get("content-length") ?? "");
501
+ if (Number.isNaN(content_length)) {
502
+ throw deserialize_error("invalid Content-Length header");
570
503
  }
571
504
  const reader = request.body.getReader();
572
505
  const chunks = [];
573
- async function get_chunk(index) {
506
+ function get_chunk(index) {
574
507
  if (index in chunks) return chunks[index];
575
508
  let i = chunks.length;
576
509
  while (i <= index) {
@@ -596,8 +529,7 @@ async function deserialize_binary_form(request) {
596
529
  if (offset + length <= chunk_start + start_chunk.byteLength) {
597
530
  return start_chunk.subarray(offset - chunk_start, offset + length - chunk_start);
598
531
  }
599
- const buffer = new Uint8Array(length);
600
- buffer.set(start_chunk.subarray(offset - chunk_start));
532
+ const chunks2 = [start_chunk.subarray(offset - chunk_start)];
601
533
  let cursor = start_chunk.byteLength - offset + chunk_start;
602
534
  while (cursor < length) {
603
535
  chunk_index++;
@@ -606,35 +538,47 @@ async function deserialize_binary_form(request) {
606
538
  if (chunk.byteLength > length - cursor) {
607
539
  chunk = chunk.subarray(0, length - cursor);
608
540
  }
541
+ chunks2.push(chunk);
542
+ cursor += chunk.byteLength;
543
+ }
544
+ const buffer = new Uint8Array(length);
545
+ cursor = 0;
546
+ for (const chunk of chunks2) {
609
547
  buffer.set(chunk, cursor);
610
548
  cursor += chunk.byteLength;
611
549
  }
612
550
  return buffer;
613
551
  }
614
- const header = await get_buffer(0, 1 + 4 + 2);
615
- if (!header) throw new Error("Could not deserialize binary form: too short");
552
+ const header = await get_buffer(0, HEADER_BYTES);
553
+ if (!header) throw deserialize_error("too short");
616
554
  if (header[0] !== BINARY_FORM_VERSION) {
617
- throw new Error(
618
- `Could not deserialize binary form: got version ${header[0]}, expected version ${BINARY_FORM_VERSION}`
619
- );
555
+ throw deserialize_error(`got version ${header[0]}, expected version ${BINARY_FORM_VERSION}`);
620
556
  }
621
557
  const header_view = new DataView(header.buffer, header.byteOffset, header.byteLength);
622
558
  const data_length = header_view.getUint32(1, true);
559
+ if (HEADER_BYTES + data_length > content_length) {
560
+ throw deserialize_error("data overflow");
561
+ }
623
562
  const file_offsets_length = header_view.getUint16(5, true);
624
- const data_buffer = await get_buffer(1 + 4 + 2, data_length);
625
- if (!data_buffer) throw new Error("Could not deserialize binary form: data too short");
563
+ if (HEADER_BYTES + data_length + file_offsets_length > content_length) {
564
+ throw deserialize_error("file offset table overflow");
565
+ }
566
+ const data_buffer = await get_buffer(HEADER_BYTES, data_length);
567
+ if (!data_buffer) throw deserialize_error("data too short");
626
568
  let file_offsets;
627
569
  let files_start_offset;
628
570
  if (file_offsets_length > 0) {
629
- const file_offsets_buffer = await get_buffer(1 + 4 + 2 + data_length, file_offsets_length);
630
- if (!file_offsets_buffer)
631
- throw new Error("Could not deserialize binary form: file offset table too short");
571
+ const file_offsets_buffer = await get_buffer(HEADER_BYTES + data_length, file_offsets_length);
572
+ if (!file_offsets_buffer) throw deserialize_error("file offset table too short");
632
573
  file_offsets = /** @type {Array<number>} */
633
574
  JSON.parse(text_decoder.decode(file_offsets_buffer));
634
- files_start_offset = 1 + 4 + 2 + data_length + file_offsets_length;
575
+ files_start_offset = HEADER_BYTES + data_length + file_offsets_length;
635
576
  }
636
577
  const [data, meta] = parse(text_decoder.decode(data_buffer), {
637
578
  File: ([name, type, size, last_modified, index]) => {
579
+ if (files_start_offset + file_offsets[index] + size > content_length) {
580
+ throw deserialize_error("file data overflow");
581
+ }
638
582
  return new Proxy(
639
583
  new LazyFile(
640
584
  name,
@@ -661,6 +605,9 @@ async function deserialize_binary_form(request) {
661
605
  })();
662
606
  return { data, meta, form_data: null };
663
607
  }
608
+ function deserialize_error(message) {
609
+ return new SvelteKitError(400, "Bad Request", `Could not deserialize binary form: ${message}`);
610
+ }
664
611
  class LazyFile {
665
612
  /** @type {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} */
666
613
  #get_chunk;
@@ -755,7 +702,7 @@ class LazyFile {
755
702
  chunk_index++;
756
703
  let chunk = await this.#get_chunk(chunk_index);
757
704
  if (!chunk) {
758
- controller.error("Could not deserialize binary form: incomplete file data");
705
+ controller.error("incomplete file data");
759
706
  controller.close();
760
707
  return;
761
708
  }
@@ -827,12 +774,6 @@ function create_remote_key(id, payload) {
827
774
  return id + "/" + payload;
828
775
  }
829
776
 
830
- let public_env = {};
831
- function set_private_env(environment) {
832
- }
833
- function set_public_env(environment) {
834
- public_env = environment;
835
- }
836
777
  function hydration_mismatch(location) {
837
778
  {
838
779
  console.warn(`https://svelte.dev/e/hydration_mismatch`);
@@ -926,7 +867,7 @@ function boundary(node, props, children) {
926
867
  class Boundary {
927
868
  /** @type {Boundary | null} */
928
869
  parent;
929
- #pending = false;
870
+ is_pending = false;
930
871
  /** @type {TemplateNode} */
931
872
  #anchor;
932
873
  /** @type {TemplateNode | null} */
@@ -950,6 +891,10 @@ class Boundary {
950
891
  #local_pending_count = 0;
951
892
  #pending_count = 0;
952
893
  #is_creating_fallback = false;
894
+ /** @type {Set<Effect>} */
895
+ #dirty_effects = /* @__PURE__ */ new Set();
896
+ /** @type {Set<Effect>} */
897
+ #maybe_dirty_effects = /* @__PURE__ */ new Set();
953
898
  /**
954
899
  * A source containing the number of pending async deriveds/expressions.
955
900
  * Only created if `$effect.pending()` is used inside the boundary,
@@ -975,7 +920,7 @@ class Boundary {
975
920
  this.#children = children;
976
921
  this.parent = /** @type {Effect} */
977
922
  active_effect.b;
978
- this.#pending = !!this.#props.pending;
923
+ this.is_pending = !!this.#props.pending;
979
924
  this.#effect = block(() => {
980
925
  active_effect.b = this;
981
926
  if (hydrating) {
@@ -990,6 +935,9 @@ class Boundary {
990
935
  this.#hydrate_pending_content();
991
936
  } else {
992
937
  this.#hydrate_resolved_content();
938
+ if (this.#pending_count === 0) {
939
+ this.is_pending = false;
940
+ }
993
941
  }
994
942
  } else {
995
943
  var anchor = this.#get_anchor();
@@ -1001,7 +949,7 @@ class Boundary {
1001
949
  if (this.#pending_count > 0) {
1002
950
  this.#show_pending_snippet();
1003
951
  } else {
1004
- this.#pending = false;
952
+ this.is_pending = false;
1005
953
  }
1006
954
  }
1007
955
  return () => {
@@ -1018,7 +966,6 @@ class Boundary {
1018
966
  } catch (error) {
1019
967
  this.error(error);
1020
968
  }
1021
- this.#pending = false;
1022
969
  }
1023
970
  #hydrate_pending_content() {
1024
971
  const pending = this.#props.pending;
@@ -1042,13 +989,13 @@ class Boundary {
1042
989
  this.#pending_effect = null;
1043
990
  }
1044
991
  );
1045
- this.#pending = false;
992
+ this.is_pending = false;
1046
993
  }
1047
994
  });
1048
995
  }
1049
996
  #get_anchor() {
1050
997
  var anchor = this.#anchor;
1051
- if (this.#pending) {
998
+ if (this.is_pending) {
1052
999
  this.#pending_anchor = create_text();
1053
1000
  this.#anchor.before(this.#pending_anchor);
1054
1001
  anchor = this.#pending_anchor;
@@ -1056,11 +1003,18 @@ class Boundary {
1056
1003
  return anchor;
1057
1004
  }
1058
1005
  /**
1059
- * Returns `true` if the effect exists inside a boundary whose pending snippet is shown
1006
+ * Defer an effect inside a pending boundary until the boundary resolves
1007
+ * @param {Effect} effect
1008
+ */
1009
+ defer_effect(effect) {
1010
+ defer_effect(effect, this.#dirty_effects, this.#maybe_dirty_effects);
1011
+ }
1012
+ /**
1013
+ * Returns `false` if the effect exists inside a boundary whose pending snippet is shown
1060
1014
  * @returns {boolean}
1061
1015
  */
1062
- is_pending() {
1063
- return this.#pending || !!this.parent && this.parent.is_pending();
1016
+ is_rendered() {
1017
+ return !this.is_pending && (!this.parent || this.parent.is_rendered());
1064
1018
  }
1065
1019
  has_pending_snippet() {
1066
1020
  return !!this.#props.pending;
@@ -1117,7 +1071,17 @@ class Boundary {
1117
1071
  }
1118
1072
  this.#pending_count += d;
1119
1073
  if (this.#pending_count === 0) {
1120
- this.#pending = false;
1074
+ this.is_pending = false;
1075
+ for (const e of this.#dirty_effects) {
1076
+ set_signal_status(e, DIRTY);
1077
+ schedule_effect(e);
1078
+ }
1079
+ for (const e of this.#maybe_dirty_effects) {
1080
+ set_signal_status(e, MAYBE_DIRTY);
1081
+ schedule_effect(e);
1082
+ }
1083
+ this.#dirty_effects.clear();
1084
+ this.#maybe_dirty_effects.clear();
1121
1085
  if (this.#pending_effect) {
1122
1086
  pause_effect(this.#pending_effect, () => {
1123
1087
  this.#pending_effect = null;
@@ -1194,7 +1158,7 @@ class Boundary {
1194
1158
  this.#failed_effect = null;
1195
1159
  });
1196
1160
  }
1197
- this.#pending = this.has_pending_snippet();
1161
+ this.is_pending = this.has_pending_snippet();
1198
1162
  this.#main_effect = this.#run(() => {
1199
1163
  this.#is_creating_fallback = false;
1200
1164
  return branch(() => this.#children(this.#anchor));
@@ -1202,7 +1166,7 @@ class Boundary {
1202
1166
  if (this.#pending_count > 0) {
1203
1167
  this.#show_pending_snippet();
1204
1168
  } else {
1205
- this.#pending = false;
1169
+ this.is_pending = false;
1206
1170
  }
1207
1171
  };
1208
1172
  var previous_reaction = active_reaction;
@@ -1782,7 +1746,7 @@ const options = {
1782
1746
  <div class="error">
1783
1747
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
1784
1748
  },
1785
- version_hash: "1ynyipk"
1749
+ version_hash: "13pr0l3"
1786
1750
  };
1787
1751
  async function get_hooks() {
1788
1752
  let handle;
@@ -1817,301 +1781,6 @@ const IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer;
1817
1781
  const SVELTE_KIT_ASSETS = "/_svelte_kit_assets";
1818
1782
  const ENDPOINT_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"];
1819
1783
  const PAGE_METHODS = ["GET", "POST", "HEAD"];
1820
- const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$";
1821
- const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
1822
- const reserved = /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
1823
- function uneval(value, replacer) {
1824
- const counts = /* @__PURE__ */ new Map();
1825
- const keys = [];
1826
- const custom = /* @__PURE__ */ new Map();
1827
- function walk(thing) {
1828
- if (!is_primitive(thing)) {
1829
- if (counts.has(thing)) {
1830
- counts.set(thing, counts.get(thing) + 1);
1831
- return;
1832
- }
1833
- counts.set(thing, 1);
1834
- if (replacer) {
1835
- const str2 = replacer(thing, (value2) => uneval(value2, replacer));
1836
- if (typeof str2 === "string") {
1837
- custom.set(thing, str2);
1838
- return;
1839
- }
1840
- }
1841
- if (typeof thing === "function") {
1842
- throw new DevalueError(`Cannot stringify a function`, keys, thing, value);
1843
- }
1844
- const type = get_type(thing);
1845
- switch (type) {
1846
- case "Number":
1847
- case "BigInt":
1848
- case "String":
1849
- case "Boolean":
1850
- case "Date":
1851
- case "RegExp":
1852
- case "URL":
1853
- case "URLSearchParams":
1854
- return;
1855
- case "Array":
1856
- thing.forEach((value2, i) => {
1857
- keys.push(`[${i}]`);
1858
- walk(value2);
1859
- keys.pop();
1860
- });
1861
- break;
1862
- case "Set":
1863
- Array.from(thing).forEach(walk);
1864
- break;
1865
- case "Map":
1866
- for (const [key2, value2] of thing) {
1867
- keys.push(
1868
- `.get(${is_primitive(key2) ? stringify_primitive(key2) : "..."})`
1869
- );
1870
- walk(value2);
1871
- keys.pop();
1872
- }
1873
- break;
1874
- case "Int8Array":
1875
- case "Uint8Array":
1876
- case "Uint8ClampedArray":
1877
- case "Int16Array":
1878
- case "Uint16Array":
1879
- case "Int32Array":
1880
- case "Uint32Array":
1881
- case "Float32Array":
1882
- case "Float64Array":
1883
- case "BigInt64Array":
1884
- case "BigUint64Array":
1885
- walk(thing.buffer);
1886
- return;
1887
- case "ArrayBuffer":
1888
- return;
1889
- case "Temporal.Duration":
1890
- case "Temporal.Instant":
1891
- case "Temporal.PlainDate":
1892
- case "Temporal.PlainTime":
1893
- case "Temporal.PlainDateTime":
1894
- case "Temporal.PlainMonthDay":
1895
- case "Temporal.PlainYearMonth":
1896
- case "Temporal.ZonedDateTime":
1897
- return;
1898
- default:
1899
- if (!is_plain_object(thing)) {
1900
- throw new DevalueError(
1901
- `Cannot stringify arbitrary non-POJOs`,
1902
- keys,
1903
- thing,
1904
- value
1905
- );
1906
- }
1907
- if (enumerable_symbols(thing).length > 0) {
1908
- throw new DevalueError(
1909
- `Cannot stringify POJOs with symbolic keys`,
1910
- keys,
1911
- thing,
1912
- value
1913
- );
1914
- }
1915
- for (const key2 in thing) {
1916
- keys.push(stringify_key(key2));
1917
- walk(thing[key2]);
1918
- keys.pop();
1919
- }
1920
- }
1921
- }
1922
- }
1923
- walk(value);
1924
- const names = /* @__PURE__ */ new Map();
1925
- Array.from(counts).filter((entry) => entry[1] > 1).sort((a, b) => b[1] - a[1]).forEach((entry, i) => {
1926
- names.set(entry[0], get_name(i));
1927
- });
1928
- function stringify2(thing) {
1929
- if (names.has(thing)) {
1930
- return names.get(thing);
1931
- }
1932
- if (is_primitive(thing)) {
1933
- return stringify_primitive(thing);
1934
- }
1935
- if (custom.has(thing)) {
1936
- return custom.get(thing);
1937
- }
1938
- const type = get_type(thing);
1939
- switch (type) {
1940
- case "Number":
1941
- case "String":
1942
- case "Boolean":
1943
- return `Object(${stringify2(thing.valueOf())})`;
1944
- case "RegExp":
1945
- return `new RegExp(${stringify_string(thing.source)}, "${thing.flags}")`;
1946
- case "Date":
1947
- return `new Date(${thing.getTime()})`;
1948
- case "URL":
1949
- return `new URL(${stringify_string(thing.toString())})`;
1950
- case "URLSearchParams":
1951
- return `new URLSearchParams(${stringify_string(thing.toString())})`;
1952
- case "Array":
1953
- const members = (
1954
- /** @type {any[]} */
1955
- thing.map(
1956
- (v, i) => i in thing ? stringify2(v) : ""
1957
- )
1958
- );
1959
- const tail = thing.length === 0 || thing.length - 1 in thing ? "" : ",";
1960
- return `[${members.join(",")}${tail}]`;
1961
- case "Set":
1962
- case "Map":
1963
- return `new ${type}([${Array.from(thing).map(stringify2).join(",")}])`;
1964
- case "Int8Array":
1965
- case "Uint8Array":
1966
- case "Uint8ClampedArray":
1967
- case "Int16Array":
1968
- case "Uint16Array":
1969
- case "Int32Array":
1970
- case "Uint32Array":
1971
- case "Float32Array":
1972
- case "Float64Array":
1973
- case "BigInt64Array":
1974
- case "BigUint64Array": {
1975
- let str2 = `new ${type}`;
1976
- if (counts.get(thing.buffer) === 1) {
1977
- const array2 = new thing.constructor(thing.buffer);
1978
- str2 += `([${array2}])`;
1979
- } else {
1980
- str2 += `([${stringify2(thing.buffer)}])`;
1981
- }
1982
- const a = thing.byteOffset;
1983
- const b = a + thing.byteLength;
1984
- if (a > 0 || b !== thing.buffer.byteLength) {
1985
- const m = +/(\d+)/.exec(type)[1] / 8;
1986
- str2 += `.subarray(${a / m},${b / m})`;
1987
- }
1988
- return str2;
1989
- }
1990
- case "ArrayBuffer": {
1991
- const ui8 = new Uint8Array(thing);
1992
- return `new Uint8Array([${ui8.toString()}]).buffer`;
1993
- }
1994
- case "Temporal.Duration":
1995
- case "Temporal.Instant":
1996
- case "Temporal.PlainDate":
1997
- case "Temporal.PlainTime":
1998
- case "Temporal.PlainDateTime":
1999
- case "Temporal.PlainMonthDay":
2000
- case "Temporal.PlainYearMonth":
2001
- case "Temporal.ZonedDateTime":
2002
- return `${type}.from(${stringify_string(thing.toString())})`;
2003
- default:
2004
- const keys2 = Object.keys(thing);
2005
- const obj = keys2.map((key2) => `${safe_key(key2)}:${stringify2(thing[key2])}`).join(",");
2006
- const proto = Object.getPrototypeOf(thing);
2007
- if (proto === null) {
2008
- return keys2.length > 0 ? `{${obj},__proto__:null}` : `{__proto__:null}`;
2009
- }
2010
- return `{${obj}}`;
2011
- }
2012
- }
2013
- const str = stringify2(value);
2014
- if (names.size) {
2015
- const params = [];
2016
- const statements = [];
2017
- const values = [];
2018
- names.forEach((name, thing) => {
2019
- params.push(name);
2020
- if (custom.has(thing)) {
2021
- values.push(
2022
- /** @type {string} */
2023
- custom.get(thing)
2024
- );
2025
- return;
2026
- }
2027
- if (is_primitive(thing)) {
2028
- values.push(stringify_primitive(thing));
2029
- return;
2030
- }
2031
- const type = get_type(thing);
2032
- switch (type) {
2033
- case "Number":
2034
- case "String":
2035
- case "Boolean":
2036
- values.push(`Object(${stringify2(thing.valueOf())})`);
2037
- break;
2038
- case "RegExp":
2039
- values.push(thing.toString());
2040
- break;
2041
- case "Date":
2042
- values.push(`new Date(${thing.getTime()})`);
2043
- break;
2044
- case "Array":
2045
- values.push(`Array(${thing.length})`);
2046
- thing.forEach((v, i) => {
2047
- statements.push(`${name}[${i}]=${stringify2(v)}`);
2048
- });
2049
- break;
2050
- case "Set":
2051
- values.push(`new Set`);
2052
- statements.push(
2053
- `${name}.${Array.from(thing).map((v) => `add(${stringify2(v)})`).join(".")}`
2054
- );
2055
- break;
2056
- case "Map":
2057
- values.push(`new Map`);
2058
- statements.push(
2059
- `${name}.${Array.from(thing).map(([k, v]) => `set(${stringify2(k)}, ${stringify2(v)})`).join(".")}`
2060
- );
2061
- break;
2062
- case "ArrayBuffer":
2063
- values.push(
2064
- `new Uint8Array([${new Uint8Array(thing).join(",")}]).buffer`
2065
- );
2066
- break;
2067
- default:
2068
- values.push(
2069
- Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}"
2070
- );
2071
- Object.keys(thing).forEach((key2) => {
2072
- statements.push(
2073
- `${name}${safe_prop(key2)}=${stringify2(thing[key2])}`
2074
- );
2075
- });
2076
- }
2077
- });
2078
- statements.push(`return ${str}`);
2079
- return `(function(${params.join(",")}){${statements.join(
2080
- ";"
2081
- )}}(${values.join(",")}))`;
2082
- } else {
2083
- return str;
2084
- }
2085
- }
2086
- function get_name(num) {
2087
- let name = "";
2088
- do {
2089
- name = chars[num % chars.length] + name;
2090
- num = ~~(num / chars.length) - 1;
2091
- } while (num >= 0);
2092
- return reserved.test(name) ? `${name}0` : name;
2093
- }
2094
- function escape_unsafe_char(c) {
2095
- return escaped[c] || c;
2096
- }
2097
- function escape_unsafe_chars(str) {
2098
- return str.replace(unsafe_chars, escape_unsafe_char);
2099
- }
2100
- function safe_key(key2) {
2101
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? key2 : escape_unsafe_chars(JSON.stringify(key2));
2102
- }
2103
- function safe_prop(key2) {
2104
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? `.${key2}` : `[${escape_unsafe_chars(JSON.stringify(key2))}]`;
2105
- }
2106
- function stringify_primitive(thing) {
2107
- if (typeof thing === "string") return stringify_string(thing);
2108
- if (thing === void 0) return "void 0";
2109
- if (thing === 0 && 1 / thing < 0) return "-0";
2110
- const str = String(thing);
2111
- if (typeof thing === "number") return str.replace(/^(-)?0\./, "$1.");
2112
- if (typeof thing === "bigint") return thing + "n";
2113
- return str;
2114
- }
2115
1784
  function negotiate(accept, types) {
2116
1785
  const parts = [];
2117
1786
  accept.split(",").forEach((str, i) => {
@@ -5773,20 +5442,27 @@ async function internal_respond(request, options2, manifest, state) {
5773
5442
  } catch {
5774
5443
  return text("Malformed URI", { status: 400 });
5775
5444
  }
5776
- if (resolved_path !== url.pathname && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)) {
5445
+ if (
5446
+ // the resolved path has been decoded so it should be compared to the decoded url pathname
5447
+ resolved_path !== decode_pathname(url.pathname) && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)
5448
+ ) {
5777
5449
  const url2 = new URL(request.url);
5778
5450
  url2.pathname = is_data_request ? add_data_suffix(resolved_path) : is_route_resolution_request ? add_resolution_suffix(resolved_path) : resolved_path;
5779
- const response = await fetch(url2, request);
5780
- const headers22 = new Headers(response.headers);
5781
- if (headers22.has("content-encoding")) {
5782
- headers22.delete("content-encoding");
5783
- headers22.delete("content-length");
5784
- }
5785
- return new Response(response.body, {
5786
- headers: headers22,
5787
- status: response.status,
5788
- statusText: response.statusText
5789
- });
5451
+ try {
5452
+ const response = await fetch(url2, request);
5453
+ const headers22 = new Headers(response.headers);
5454
+ if (headers22.has("content-encoding")) {
5455
+ headers22.delete("content-encoding");
5456
+ headers22.delete("content-length");
5457
+ }
5458
+ return new Response(response.body, {
5459
+ headers: headers22,
5460
+ status: response.status,
5461
+ statusText: response.statusText
5462
+ });
5463
+ } catch (error2) {
5464
+ return await handle_fatal_error(event, event_state, options2, error2);
5465
+ }
5790
5466
  }
5791
5467
  let route = null;
5792
5468
  if (base && !state.prerendering?.fallback) {