@absolutejs/absolute 0.19.0-beta.783 → 0.19.0-beta.784

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 (252) hide show
  1. package/dist/angular/browser.js +57 -9801
  2. package/dist/angular/browser.js.map +4 -246
  3. package/dist/angular/index.js +61 -14967
  4. package/dist/angular/index.js.map +4 -282
  5. package/dist/angular/server.js +45 -5699
  6. package/dist/angular/server.js.map +3 -52
  7. package/dist/build.js +45 -18021
  8. package/dist/build.js.map +3 -100
  9. package/dist/chunk-102fp7xe.js +63 -0
  10. package/dist/chunk-102fp7xe.js.map +10 -0
  11. package/dist/chunk-11zpfqz6.js +19 -0
  12. package/dist/chunk-11zpfqz6.js.map +10 -0
  13. package/dist/chunk-1e9vsfyh.js +100 -0
  14. package/dist/chunk-1e9vsfyh.js.map +10 -0
  15. package/dist/chunk-25v9t56f.js +29 -0
  16. package/dist/chunk-25v9t56f.js.map +11 -0
  17. package/dist/chunk-2f21eenc.js +21 -0
  18. package/dist/chunk-2f21eenc.js.map +10 -0
  19. package/dist/chunk-2ga2znex.js +13 -0
  20. package/dist/chunk-2ga2znex.js.map +9 -0
  21. package/dist/chunk-30yrw0f6.js +33 -0
  22. package/dist/chunk-30yrw0f6.js.map +10 -0
  23. package/dist/chunk-3c7mpj3m.js +784 -0
  24. package/dist/chunk-3c7mpj3m.js.map +10 -0
  25. package/dist/chunk-3g91wb4f.js +358 -0
  26. package/dist/chunk-3g91wb4f.js.map +10 -0
  27. package/dist/chunk-3yjzpcne.js +34 -0
  28. package/dist/chunk-3yjzpcne.js.map +10 -0
  29. package/dist/chunk-4bq79t8v.js +136 -0
  30. package/dist/chunk-4bq79t8v.js.map +10 -0
  31. package/dist/chunk-4d39r92n.js +81 -0
  32. package/dist/chunk-4d39r92n.js.map +10 -0
  33. package/dist/chunk-4m75s5xf.js +184 -0
  34. package/dist/chunk-4m75s5xf.js.map +11 -0
  35. package/dist/chunk-5003emhv.js +17 -0
  36. package/dist/chunk-5003emhv.js.map +10 -0
  37. package/dist/chunk-5fhp1jap.js +9169 -0
  38. package/dist/chunk-5fhp1jap.js.map +236 -0
  39. package/dist/chunk-6fkgm9s5.js +569 -0
  40. package/dist/chunk-6fkgm9s5.js.map +10 -0
  41. package/dist/chunk-6pdj08z3.js +73 -0
  42. package/dist/chunk-6pdj08z3.js.map +12 -0
  43. package/dist/chunk-6qjbrt0k.js +13 -0
  44. package/dist/chunk-6qjbrt0k.js.map +9 -0
  45. package/dist/chunk-6sccb4jr.js +14 -0
  46. package/dist/chunk-6sccb4jr.js.map +9 -0
  47. package/dist/chunk-73brtyw5.js +16 -0
  48. package/dist/chunk-73brtyw5.js.map +9 -0
  49. package/dist/chunk-77cqkarb.js +25 -0
  50. package/dist/chunk-77cqkarb.js.map +9 -0
  51. package/dist/chunk-798spvzv.js +50 -0
  52. package/dist/chunk-798spvzv.js.map +10 -0
  53. package/dist/chunk-7fw6x3js.js +131 -0
  54. package/dist/chunk-7fw6x3js.js.map +11 -0
  55. package/dist/chunk-7kjj42xm.js +11 -0
  56. package/dist/chunk-7kjj42xm.js.map +10 -0
  57. package/dist/chunk-851whwc7.js +17 -0
  58. package/dist/chunk-851whwc7.js.map +10 -0
  59. package/dist/chunk-85n68sy6.js +103 -0
  60. package/dist/chunk-85n68sy6.js.map +10 -0
  61. package/dist/chunk-8feq2qek.js +17 -0
  62. package/dist/chunk-8feq2qek.js.map +9 -0
  63. package/dist/chunk-8kcfffry.js +35 -0
  64. package/dist/chunk-8kcfffry.js.map +10 -0
  65. package/dist/chunk-93sqk7be.js +139 -0
  66. package/dist/chunk-93sqk7be.js.map +12 -0
  67. package/dist/chunk-97572s32.js +262 -0
  68. package/dist/chunk-97572s32.js.map +12 -0
  69. package/dist/chunk-9a307ca6.js +1742 -0
  70. package/dist/chunk-9a307ca6.js.map +11 -0
  71. package/dist/chunk-9c5tj4k3.js +130 -0
  72. package/dist/chunk-9c5tj4k3.js.map +10 -0
  73. package/dist/chunk-9xrsjeem.js +12 -0
  74. package/dist/chunk-9xrsjeem.js.map +9 -0
  75. package/dist/chunk-a9mvyp04.js +87 -0
  76. package/dist/chunk-a9mvyp04.js.map +10 -0
  77. package/dist/chunk-b3gbnrwe.js +21 -0
  78. package/dist/chunk-b3gbnrwe.js.map +10 -0
  79. package/dist/chunk-bmgqm774.js +65 -0
  80. package/dist/chunk-bmgqm774.js.map +9 -0
  81. package/dist/chunk-bxfghpma.js +69 -0
  82. package/dist/chunk-bxfghpma.js.map +10 -0
  83. package/dist/chunk-c1jfjnka.js +74 -0
  84. package/dist/chunk-c1jfjnka.js.map +10 -0
  85. package/dist/chunk-cbkrwmvh.js +80 -0
  86. package/dist/chunk-cbkrwmvh.js.map +10 -0
  87. package/dist/chunk-cdxd7sy2.js +71 -0
  88. package/dist/chunk-cdxd7sy2.js.map +10 -0
  89. package/dist/chunk-cg95827x.js +21 -0
  90. package/dist/chunk-cg95827x.js.map +10 -0
  91. package/dist/chunk-d9c0am65.js +12 -0
  92. package/dist/chunk-d9c0am65.js.map +10 -0
  93. package/dist/chunk-daqghmg8.js +12 -0
  94. package/dist/chunk-daqghmg8.js.map +9 -0
  95. package/dist/chunk-dr9yqsdb.js +203 -0
  96. package/dist/chunk-dr9yqsdb.js.map +10 -0
  97. package/dist/chunk-e8eecyrq.js +244 -0
  98. package/dist/chunk-e8eecyrq.js.map +10 -0
  99. package/dist/chunk-ex2hxe0v.js +160 -0
  100. package/dist/chunk-ex2hxe0v.js.map +11 -0
  101. package/dist/chunk-ey5hs6x6.js +253 -0
  102. package/dist/chunk-ey5hs6x6.js.map +11 -0
  103. package/dist/chunk-fak944et.js +91 -0
  104. package/dist/chunk-fak944et.js.map +10 -0
  105. package/dist/chunk-fygx2ymm.js +118 -0
  106. package/dist/chunk-fygx2ymm.js.map +12 -0
  107. package/dist/chunk-g15qj669.js +271 -0
  108. package/dist/chunk-g15qj669.js.map +11 -0
  109. package/dist/chunk-g3j22qf6.js +51 -0
  110. package/dist/chunk-g3j22qf6.js.map +9 -0
  111. package/dist/chunk-gd6wmknh.js +121 -0
  112. package/dist/chunk-gd6wmknh.js.map +11 -0
  113. package/dist/chunk-gf0ygptk.js +85 -0
  114. package/dist/chunk-gf0ygptk.js.map +11 -0
  115. package/dist/chunk-gq0zxpm0.js +90 -0
  116. package/dist/chunk-gq0zxpm0.js.map +10 -0
  117. package/dist/chunk-gytkmthr.js +220 -0
  118. package/dist/chunk-gytkmthr.js.map +10 -0
  119. package/dist/chunk-h5bbfn3n.js +28 -0
  120. package/dist/chunk-h5bbfn3n.js.map +11 -0
  121. package/dist/chunk-h6mye9r3.js +93 -0
  122. package/dist/chunk-h6mye9r3.js.map +10 -0
  123. package/dist/chunk-hcsmxw1v.js +85 -0
  124. package/dist/chunk-hcsmxw1v.js.map +10 -0
  125. package/dist/chunk-hep68ja7.js +4444 -0
  126. package/dist/chunk-hep68ja7.js.map +29 -0
  127. package/dist/chunk-hhqh49fz.js +149 -0
  128. package/dist/chunk-hhqh49fz.js.map +10 -0
  129. package/dist/chunk-hyjs4bqs.js +8 -0
  130. package/dist/chunk-hyjs4bqs.js.map +10 -0
  131. package/dist/chunk-hza0n8qm.js +20 -0
  132. package/dist/chunk-hza0n8qm.js.map +9 -0
  133. package/dist/chunk-jn91vzkh.js +66 -0
  134. package/dist/chunk-jn91vzkh.js.map +10 -0
  135. package/dist/chunk-jwxt8gnp.js +13 -0
  136. package/dist/chunk-jwxt8gnp.js.map +9 -0
  137. package/dist/chunk-kk8w9rh5.js +195 -0
  138. package/dist/chunk-kk8w9rh5.js.map +10 -0
  139. package/dist/chunk-kndkjsya.js +261 -0
  140. package/dist/chunk-kndkjsya.js.map +10 -0
  141. package/dist/chunk-kvq01j35.js +36 -0
  142. package/dist/chunk-kvq01j35.js.map +10 -0
  143. package/dist/chunk-mbazhahf.js +60 -0
  144. package/dist/chunk-mbazhahf.js.map +10 -0
  145. package/dist/chunk-mgfwq18r.js +15 -0
  146. package/dist/chunk-mgfwq18r.js.map +9 -0
  147. package/dist/chunk-mtgf69xn.js +88 -0
  148. package/dist/chunk-mtgf69xn.js.map +10 -0
  149. package/dist/chunk-nehhtthw.js +225 -0
  150. package/dist/chunk-nehhtthw.js.map +10 -0
  151. package/dist/chunk-nhzf4az4.js +149 -0
  152. package/dist/chunk-nhzf4az4.js.map +10 -0
  153. package/dist/chunk-p5504p14.js +16 -0
  154. package/dist/chunk-p5504p14.js.map +10 -0
  155. package/dist/chunk-pnscgw95.js +90 -0
  156. package/dist/chunk-pnscgw95.js.map +10 -0
  157. package/dist/chunk-pvpp4pvs.js +17 -0
  158. package/dist/chunk-pvpp4pvs.js.map +10 -0
  159. package/dist/chunk-qh75agse.js +95 -0
  160. package/dist/chunk-qh75agse.js.map +10 -0
  161. package/dist/chunk-qk8kd3hr.js +526 -0
  162. package/dist/chunk-qk8kd3hr.js.map +12 -0
  163. package/dist/chunk-qxq2zcty.js +52 -0
  164. package/dist/chunk-qxq2zcty.js.map +10 -0
  165. package/dist/chunk-r7jmgqnw.js +114 -0
  166. package/dist/chunk-r7jmgqnw.js.map +10 -0
  167. package/dist/chunk-s6defjk2.js +116 -0
  168. package/dist/chunk-s6defjk2.js.map +10 -0
  169. package/dist/chunk-sd39p726.js +619 -0
  170. package/dist/chunk-sd39p726.js.map +10 -0
  171. package/dist/chunk-smgj0epn.js +18 -0
  172. package/dist/chunk-smgj0epn.js.map +9 -0
  173. package/dist/chunk-swrnzs4c.js +63 -0
  174. package/dist/chunk-swrnzs4c.js.map +10 -0
  175. package/dist/chunk-t81a331y.js +27 -0
  176. package/dist/chunk-t81a331y.js.map +10 -0
  177. package/dist/chunk-tfe3sb44.js +33 -0
  178. package/dist/chunk-tfe3sb44.js.map +10 -0
  179. package/dist/chunk-tx9edm1x.js +34 -0
  180. package/dist/chunk-tx9edm1x.js.map +10 -0
  181. package/dist/chunk-vkrpm7kc.js +247 -0
  182. package/dist/chunk-vkrpm7kc.js.map +12 -0
  183. package/dist/chunk-vvz7dcvq.js +434 -0
  184. package/dist/chunk-vvz7dcvq.js.map +13 -0
  185. package/dist/chunk-w3m4m5we.js +4925 -0
  186. package/dist/chunk-w3m4m5we.js.map +12 -0
  187. package/dist/chunk-wrxtn9ve.js +18 -0
  188. package/dist/chunk-wrxtn9ve.js.map +10 -0
  189. package/dist/chunk-xpkjbmd3.js +428 -0
  190. package/dist/chunk-xpkjbmd3.js.map +14 -0
  191. package/dist/chunk-xrmjy8kk.js +454 -0
  192. package/dist/chunk-xrmjy8kk.js.map +10 -0
  193. package/dist/chunk-xw0tx842.js +13 -0
  194. package/dist/chunk-xw0tx842.js.map +9 -0
  195. package/dist/chunk-xx5b6b9m.js +69 -0
  196. package/dist/chunk-xx5b6b9m.js.map +10 -0
  197. package/dist/chunk-xz1kdswj.js +21 -0
  198. package/dist/chunk-xz1kdswj.js.map +9 -0
  199. package/dist/chunk-xzvy9hr4.js +377 -0
  200. package/dist/chunk-xzvy9hr4.js.map +10 -0
  201. package/dist/chunk-yfqhr31t.js +39 -0
  202. package/dist/chunk-yfqhr31t.js.map +9 -0
  203. package/dist/chunk-ygzd5s4z.js +184 -0
  204. package/dist/chunk-ygzd5s4z.js.map +10 -0
  205. package/dist/chunk-ywjn0rad.js +14 -0
  206. package/dist/chunk-ywjn0rad.js.map +9 -0
  207. package/dist/chunk-z9nvhm6r.js +13 -0
  208. package/dist/chunk-z9nvhm6r.js.map +9 -0
  209. package/dist/chunk-zhmvdpk6.js +15 -0
  210. package/dist/chunk-zhmvdpk6.js.map +9 -0
  211. package/dist/client/index.js +32 -1112
  212. package/dist/client/index.js.map +4 -22
  213. package/dist/core/streamingSlotRegistrar.js +11 -108
  214. package/dist/core/streamingSlotRegistrar.js.map +3 -4
  215. package/dist/core/streamingSlotRegistry.js +7 -169
  216. package/dist/core/streamingSlotRegistry.js.map +3 -5
  217. package/dist/index.js +536 -19835
  218. package/dist/index.js.map +3 -117
  219. package/dist/islands/browser.js +9 -228
  220. package/dist/islands/browser.js.map +4 -9
  221. package/dist/islands/index.js +17 -1986
  222. package/dist/islands/index.js.map +3 -28
  223. package/dist/react/browser.js +12 -328
  224. package/dist/react/browser.js.map +4 -12
  225. package/dist/react/components/index.js +16 -167
  226. package/dist/react/components/index.js.map +3 -6
  227. package/dist/react/hooks/index.js +8 -183
  228. package/dist/react/hooks/index.js.map +3 -7
  229. package/dist/react/index.js +36 -3705
  230. package/dist/react/index.js.map +4 -46
  231. package/dist/react/jsxDevRuntimeCompat.js +2 -61
  232. package/dist/react/jsxDevRuntimeCompat.js.map +2 -2
  233. package/dist/react/server.js +18 -1789
  234. package/dist/react/server.js.map +3 -21
  235. package/dist/src/core/index.d.ts +0 -2
  236. package/dist/svelte/browser.js +12 -247
  237. package/dist/svelte/browser.js.map +3 -10
  238. package/dist/svelte/index.js +37 -3810
  239. package/dist/svelte/index.js.map +4 -48
  240. package/dist/svelte/server.js +21 -2787
  241. package/dist/svelte/server.js.map +3 -27
  242. package/dist/vue/browser.js +12 -348
  243. package/dist/vue/browser.js.map +4 -12
  244. package/dist/vue/components/Image.js +7 -240
  245. package/dist/vue/components/Image.js.map +3 -6
  246. package/dist/vue/components/index.js +11 -544
  247. package/dist/vue/components/index.js.map +3 -9
  248. package/dist/vue/index.js +52 -4290
  249. package/dist/vue/index.js.map +4 -51
  250. package/dist/vue/server.js +18 -1849
  251. package/dist/vue/server.js.map +3 -21
  252. package/package.json +7 -7
@@ -0,0 +1,95 @@
1
+ // @bun
2
+ // src/constants.ts
3
+ var ANGULAR_INIT_TIMEOUT_MS = 500;
4
+ var ANSI_ESCAPE_CODE = 27;
5
+ var ANSI_ESCAPE_LENGTH = 3;
6
+ var ASCII_SPACE = 32;
7
+ var BASE_36_RADIX = 36;
8
+ var BUN_BUILD_WARNING_SUPPRESSION = "wildcard sideEffects are not supported yet";
9
+ var BODY_SLICE_LENGTH = 2000;
10
+ var BYTES_PER_KILOBYTE = 1024;
11
+ var CLI_ARGS_OFFSET = 3;
12
+ var CSS_ERROR_RESOLVE_DELAY_MS = 50;
13
+ var CSS_MAX_CHECK_ATTEMPTS = 10;
14
+ var CSS_MAX_PARSE_TIMEOUT_MS = 500;
15
+ var CSS_SHEET_READY_TIMEOUT_MS = 100;
16
+ var DEFAULT_CHUNK_SIZE = 16384;
17
+ var DEFAULT_DEBOUNCE_MS = 15;
18
+ var DEFAULT_PORT = 3000;
19
+ var DEV_SERVER_RESTART_DEBOUNCE_MS = 100;
20
+ var DOM_UPDATE_DELAY_MS = 50;
21
+ var FILE_PROTOCOL_PREFIX_LENGTH = 7;
22
+ var FOCUS_ID_PREFIX_LENGTH = 3;
23
+ var FOCUS_IDX_PREFIX_LENGTH = 4;
24
+ var FOCUS_NAME_PREFIX_LENGTH = 5;
25
+ var HMR_UPDATE_TIMEOUT_MS = 2000;
26
+ var HOOK_SIGNATURE_LENGTH = 12;
27
+ var EXCLUDE_LAST_OFFSET = -1;
28
+ var HTTP_STATUS_OK = 200;
29
+ var HTTP_STATUS_BAD_REQUEST = 400;
30
+ var HTTP_STATUS_NOT_FOUND = 404;
31
+ var HOURS_IN_DAY = 24;
32
+ var HOURS_IN_HALF_DAY = 12;
33
+ var IMAGE_DEFAULT_DEVICE_SIZES = [
34
+ 640,
35
+ 750,
36
+ 828,
37
+ 1080,
38
+ 1200,
39
+ 1920,
40
+ 2048,
41
+ 3840
42
+ ];
43
+ var IMAGE_DEFAULT_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];
44
+ var IMAGE_DEFAULT_QUALITY = 75;
45
+ var IMAGE_GLOB_SUFFIX_LENGTH = 2;
46
+ var MAX_ERROR_LENGTH = 200;
47
+ var MAX_RECONNECT_ATTEMPTS = 60;
48
+ var MILLISECONDS_IN_A_SECOND = 1000;
49
+ var MINUTES_IN_AN_HOUR = 60;
50
+ var SECONDS_IN_A_MINUTE = 60;
51
+ var MILLISECONDS_IN_A_MINUTE = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;
52
+ var MILLISECONDS_IN_A_DAY = MILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE * MINUTES_IN_AN_HOUR * HOURS_IN_DAY;
53
+ var OVERLAY_FADE_DURATION_MS = 150;
54
+ var PING_INTERVAL_MS = 30000;
55
+ var RAF_BATCH_COUNT = 3;
56
+ var RANDOM_ID_END_INDEX = 11;
57
+ var REBUILD_BATCH_DELAY_MS = 10;
58
+ var REBUILD_RELOAD_DELAY_MS = 200;
59
+ var RECONNECT_INITIAL_DELAY_MS = 500;
60
+ var RECONNECT_POLL_INTERVAL_MS = 300;
61
+ var REACT_STREAM_SLOT_FAST_DELAY_MS = 5;
62
+ var REACT_STREAM_SLOT_SLOW_DELAY_MS = 20;
63
+ var SIGINT_EXIT_CODE = 130;
64
+ var SIGTERM_EXIT_CODE = 143;
65
+ var SVELTE_CSS_LOAD_TIMEOUT_MS = 500;
66
+ var TIME_PRECISION = 2;
67
+ var TWO_THIRDS = 2 / 3;
68
+ var UNFOUND_INDEX = -1;
69
+ var WEBSOCKET_NORMAL_CLOSURE = 1000;
70
+ var WORKSPACE_COMMAND_ARGS_OFFSET = 3;
71
+ var WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30;
72
+ var WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60;
73
+ var WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5000;
74
+ var WORKSPACE_READY_PROBE_INTERVAL_MS = 250;
75
+ var WORKSPACE_READY_TIMEOUT_MS = 30000;
76
+ var WORKSPACE_SHUTDOWN_TIMEOUT_MS = 1e4;
77
+ var WORKSPACE_TUI_DEFAULT_HEIGHT = 28;
78
+ var WORKSPACE_TUI_DEFAULT_WIDTH = 100;
79
+ var WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;
80
+ var WORKSPACE_TUI_FOOTER_LINE_COUNT = 3;
81
+ var WORKSPACE_TUI_MIN_LOG_HEIGHT = 3;
82
+ var WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7;
83
+ var WORKSPACE_TUI_MIN_TARGET_WIDTH = 8;
84
+ var WORKSPACE_TUI_MIN_WRAP_WIDTH = 12;
85
+ var WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3;
86
+ var WORKSPACE_TUI_RECENT_LOG_LIMIT = 40;
87
+ var WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16;
88
+ var WORKSPACE_TUI_STATUS_WIDTH = 10;
89
+ var WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6;
90
+ var WORKSPACE_TUI_VISIBILITY_WIDTH = 8;
91
+
92
+ export { ANGULAR_INIT_TIMEOUT_MS, ANSI_ESCAPE_CODE, ANSI_ESCAPE_LENGTH, ASCII_SPACE, BASE_36_RADIX, BUN_BUILD_WARNING_SUPPRESSION, BODY_SLICE_LENGTH, BYTES_PER_KILOBYTE, CLI_ARGS_OFFSET, CSS_ERROR_RESOLVE_DELAY_MS, CSS_MAX_CHECK_ATTEMPTS, CSS_MAX_PARSE_TIMEOUT_MS, CSS_SHEET_READY_TIMEOUT_MS, DEFAULT_CHUNK_SIZE, DEFAULT_DEBOUNCE_MS, DEFAULT_PORT, DEV_SERVER_RESTART_DEBOUNCE_MS, DOM_UPDATE_DELAY_MS, FILE_PROTOCOL_PREFIX_LENGTH, FOCUS_ID_PREFIX_LENGTH, FOCUS_IDX_PREFIX_LENGTH, FOCUS_NAME_PREFIX_LENGTH, HMR_UPDATE_TIMEOUT_MS, HOOK_SIGNATURE_LENGTH, EXCLUDE_LAST_OFFSET, HTTP_STATUS_OK, HTTP_STATUS_BAD_REQUEST, HTTP_STATUS_NOT_FOUND, HOURS_IN_DAY, HOURS_IN_HALF_DAY, IMAGE_DEFAULT_DEVICE_SIZES, IMAGE_DEFAULT_IMAGE_SIZES, IMAGE_DEFAULT_QUALITY, IMAGE_GLOB_SUFFIX_LENGTH, MAX_ERROR_LENGTH, MAX_RECONNECT_ATTEMPTS, MILLISECONDS_IN_A_SECOND, MINUTES_IN_AN_HOUR, SECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_MINUTE, MILLISECONDS_IN_A_DAY, OVERLAY_FADE_DURATION_MS, PING_INTERVAL_MS, RAF_BATCH_COUNT, RANDOM_ID_END_INDEX, REBUILD_BATCH_DELAY_MS, REBUILD_RELOAD_DELAY_MS, RECONNECT_INITIAL_DELAY_MS, RECONNECT_POLL_INTERVAL_MS, REACT_STREAM_SLOT_FAST_DELAY_MS, REACT_STREAM_SLOT_SLOW_DELAY_MS, SIGINT_EXIT_CODE, SIGTERM_EXIT_CODE, SVELTE_CSS_LOAD_TIMEOUT_MS, TIME_PRECISION, TWO_THIRDS, UNFOUND_INDEX, WEBSOCKET_NORMAL_CLOSURE, WORKSPACE_COMMAND_ARGS_OFFSET, WORKSPACE_FAILURE_LOG_PRINT_LIMIT, WORKSPACE_FAILURE_RECENT_LOG_LIMIT, WORKSPACE_READY_ATTEMPT_TIMEOUT_MS, WORKSPACE_READY_PROBE_INTERVAL_MS, WORKSPACE_READY_TIMEOUT_MS, WORKSPACE_SHUTDOWN_TIMEOUT_MS, WORKSPACE_TUI_DEFAULT_HEIGHT, WORKSPACE_TUI_DEFAULT_WIDTH, WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS, WORKSPACE_TUI_FOOTER_LINE_COUNT, WORKSPACE_TUI_MIN_LOG_HEIGHT, WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH, WORKSPACE_TUI_MIN_TARGET_WIDTH, WORKSPACE_TUI_MIN_WRAP_WIDTH, WORKSPACE_TUI_PROMPT_CURSOR_OFFSET, WORKSPACE_TUI_RECENT_LOG_LIMIT, WORKSPACE_TUI_RENDER_DEBOUNCE_MS, WORKSPACE_TUI_STATUS_WIDTH, WORKSPACE_TUI_TARGET_PADDING_WIDTH, WORKSPACE_TUI_VISIBILITY_WIDTH };
93
+
94
+ //# debugId=184C612842E6A07D64756E2164756E21
95
+ //# sourceMappingURL=chunk-qh75agse.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts"],
4
+ "sourcesContent": [
5
+ "export const ANGULAR_INIT_TIMEOUT_MS = 500;\nexport const ANSI_ESCAPE_CODE = 27;\nexport const ANSI_ESCAPE_LENGTH = 3;\nexport const ASCII_SPACE = 32;\nexport const BASE_36_RADIX = 36;\nexport const BUN_BUILD_WARNING_SUPPRESSION =\n\t'wildcard sideEffects are not supported yet';\nexport const BODY_SLICE_LENGTH = 2000;\nexport const BYTES_PER_KILOBYTE = 1024;\nexport const CLI_ARGS_OFFSET = 3;\nexport const CSS_ERROR_RESOLVE_DELAY_MS = 50;\nexport const CSS_MAX_CHECK_ATTEMPTS = 10;\nexport const CSS_MAX_PARSE_TIMEOUT_MS = 500;\nexport const CSS_SHEET_READY_TIMEOUT_MS = 100;\nexport const DEFAULT_CHUNK_SIZE = 16_384;\nexport const DEFAULT_DEBOUNCE_MS = 15;\nexport const DEFAULT_PORT = 3000;\nexport const DEV_SERVER_RESTART_DEBOUNCE_MS = 100;\nexport const DOM_UPDATE_DELAY_MS = 50;\nexport const FILE_PROTOCOL_PREFIX_LENGTH = 7;\nexport const FOCUS_ID_PREFIX_LENGTH = 3;\nexport const FOCUS_IDX_PREFIX_LENGTH = 4;\nexport const FOCUS_NAME_PREFIX_LENGTH = 5;\nexport const HMR_UPDATE_TIMEOUT_MS = 2000;\nexport const HOOK_SIGNATURE_LENGTH = 12;\nexport const EXCLUDE_LAST_OFFSET = -1;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HOURS_IN_DAY = 24;\nexport const HOURS_IN_HALF_DAY = 12;\nexport const IMAGE_DEFAULT_DEVICE_SIZES = [\n\t640, 750, 828, 1080, 1200, 1920, 2048, 3840\n];\nexport const IMAGE_DEFAULT_IMAGE_SIZES = [16, 32, 48, 64, 96, 128, 256, 384];\nexport const IMAGE_DEFAULT_QUALITY = 75;\nexport const IMAGE_GLOB_SUFFIX_LENGTH = 2;\nexport const MAX_ERROR_LENGTH = 200;\nexport const MAX_RECONNECT_ATTEMPTS = 60;\nexport const MILLISECONDS_IN_A_SECOND = 1000;\nexport const MINUTES_IN_AN_HOUR = 60;\nexport const SECONDS_IN_A_MINUTE = 60;\nexport const MILLISECONDS_IN_A_MINUTE =\n\tMILLISECONDS_IN_A_SECOND * SECONDS_IN_A_MINUTE;\nexport const MILLISECONDS_IN_A_DAY =\n\tMILLISECONDS_IN_A_SECOND *\n\tSECONDS_IN_A_MINUTE *\n\tMINUTES_IN_AN_HOUR *\n\tHOURS_IN_DAY;\nexport const OVERLAY_FADE_DURATION_MS = 150;\nexport const PING_INTERVAL_MS = 30_000;\nexport const RAF_BATCH_COUNT = 3;\nexport const RANDOM_ID_END_INDEX = 11;\nexport const REBUILD_BATCH_DELAY_MS = 10;\nexport const REBUILD_RELOAD_DELAY_MS = 200;\nexport const RECONNECT_INITIAL_DELAY_MS = 500;\nexport const RECONNECT_POLL_INTERVAL_MS = 300;\nexport const REACT_STREAM_SLOT_FAST_DELAY_MS = 5;\nexport const REACT_STREAM_SLOT_SLOW_DELAY_MS = 20;\nexport const SIGINT_EXIT_CODE = 130;\nexport const SIGTERM_EXIT_CODE = 143;\nexport const SVELTE_CSS_LOAD_TIMEOUT_MS = 500;\nexport const TIME_PRECISION = 2;\nexport const TWO_THIRDS = 2 / 3;\nexport const UNFOUND_INDEX = -1;\nexport const WEBSOCKET_NORMAL_CLOSURE = 1000;\nexport const WORKSPACE_COMMAND_ARGS_OFFSET = 3;\nexport const WORKSPACE_FAILURE_LOG_PRINT_LIMIT = 30;\nexport const WORKSPACE_FAILURE_RECENT_LOG_LIMIT = 60;\nexport const WORKSPACE_READY_ATTEMPT_TIMEOUT_MS = 5_000;\nexport const WORKSPACE_READY_PROBE_INTERVAL_MS = 250;\nexport const WORKSPACE_READY_TIMEOUT_MS = 30_000;\nexport const WORKSPACE_SHUTDOWN_TIMEOUT_MS = 10_000;\nexport const WORKSPACE_TUI_DEFAULT_HEIGHT = 28;\nexport const WORKSPACE_TUI_DEFAULT_WIDTH = 100;\nexport const WORKSPACE_TUI_ESCAPE_SEQUENCE_TIMEOUT_MS = 30;\nexport const WORKSPACE_TUI_FOOTER_LINE_COUNT = 3;\nexport const WORKSPACE_TUI_MIN_LOG_HEIGHT = 3;\nexport const WORKSPACE_TUI_MIN_SERVICE_NAME_WIDTH = 7;\nexport const WORKSPACE_TUI_MIN_TARGET_WIDTH = 8;\nexport const WORKSPACE_TUI_MIN_WRAP_WIDTH = 12;\nexport const WORKSPACE_TUI_PROMPT_CURSOR_OFFSET = 3;\nexport const WORKSPACE_TUI_RECENT_LOG_LIMIT = 40;\nexport const WORKSPACE_TUI_RENDER_DEBOUNCE_MS = 16;\nexport const WORKSPACE_TUI_STATUS_WIDTH = 10;\nexport const WORKSPACE_TUI_TARGET_PADDING_WIDTH = 6;\nexport const WORKSPACE_TUI_VISIBILITY_WIDTH = 8;\n"
6
+ ],
7
+ "mappings": ";;AAAO,IAAM,0BAA0B;AAChC,IAAM,mBAAmB;AACzB,IAAM,qBAAqB;AAC3B,IAAM,cAAc;AACpB,IAAM,gBAAgB;AACtB,IAAM,gCACZ;AACM,IAAM,oBAAoB;AAC1B,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AACxB,IAAM,6BAA6B;AACnC,IAAM,yBAAyB;AAC/B,IAAM,2BAA2B;AACjC,IAAM,6BAA6B;AACnC,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAC5B,IAAM,eAAe;AACrB,IAAM,iCAAiC;AACvC,IAAM,sBAAsB;AAC5B,IAAM,8BAA8B;AACpC,IAAM,yBAAyB;AAC/B,IAAM,0BAA0B;AAChC,IAAM,2BAA2B;AACjC,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,sBAAsB;AAC5B,IAAM,iBAAiB;AACvB,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;AAC9B,IAAM,eAAe;AACrB,IAAM,oBAAoB;AAC1B,IAAM,6BAA6B;AAAA,EACzC;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AACxC;AACO,IAAM,4BAA4B,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,GAAG;AACpE,IAAM,wBAAwB;AAC9B,IAAM,2BAA2B;AACjC,IAAM,mBAAmB;AACzB,IAAM,yBAAyB;AAC/B,IAAM,2BAA2B;AACjC,IAAM,qBAAqB;AAC3B,IAAM,sBAAsB;AAC5B,IAAM,2BACZ,2BAA2B;AACrB,IAAM,wBACZ,2BACA,sBACA,qBACA;AACM,IAAM,2BAA2B;AACjC,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AACxB,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAC/B,IAAM,0BAA0B;AAChC,IAAM,6BAA6B;AACnC,IAAM,6BAA6B;AACnC,IAAM,kCAAkC;AACxC,IAAM,kCAAkC;AACxC,IAAM,mBAAmB;AACzB,IAAM,oBAAoB;AAC1B,IAAM,6BAA6B;AACnC,IAAM,iBAAiB;AACvB,IAAM,aAAa,IAAI;AACvB,IAAM,gBAAgB;AACtB,IAAM,2BAA2B;AACjC,IAAM,gCAAgC;AACtC,IAAM,oCAAoC;AAC1C,IAAM,qCAAqC;AAC3C,IAAM,qCAAqC;AAC3C,IAAM,oCAAoC;AAC1C,IAAM,6BAA6B;AACnC,IAAM,gCAAgC;AACtC,IAAM,+BAA+B;AACrC,IAAM,8BAA8B;AACpC,IAAM,2CAA2C;AACjD,IAAM,kCAAkC;AACxC,IAAM,+BAA+B;AACrC,IAAM,uCAAuC;AAC7C,IAAM,iCAAiC;AACvC,IAAM,+BAA+B;AACrC,IAAM,qCAAqC;AAC3C,IAAM,iCAAiC;AACvC,IAAM,mCAAmC;AACzC,IAAM,6BAA6B;AACnC,IAAM,qCAAqC;AAC3C,IAAM,iCAAiC;",
8
+ "debugId": "184C612842E6A07D64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,526 @@
1
+ // @bun
2
+ import {
3
+ runWithStreamingSlotRegistry
4
+ } from "./chunk-c1jfjnka.js";
5
+ import {
6
+ appendStreamingSlotPatchesToStream
7
+ } from "./chunk-sd39p726.js";
8
+ import {
9
+ toPascal
10
+ } from "./chunk-p5504p14.js";
11
+ import {
12
+ BYTES_PER_KILOBYTE
13
+ } from "./chunk-qh75agse.js";
14
+ import {
15
+ __require
16
+ } from "./chunk-bmgqm774.js";
17
+
18
+ // src/core/responseEnhancers.ts
19
+ var toResponse = async (responseLike) => responseLike;
20
+ var cloneHeaders = (response) => {
21
+ const headers = new Headers(response.headers);
22
+ return headers;
23
+ };
24
+ var enhanceHtmlResponseWithStreamingSlots = (response, {
25
+ nonce,
26
+ onError,
27
+ runtimePlacement,
28
+ runtimePreludeScript,
29
+ streamingSlots = [],
30
+ policy
31
+ } = {}) => {
32
+ if (!response.body || streamingSlots.length === 0) {
33
+ return response;
34
+ }
35
+ const body = appendStreamingSlotPatchesToStream(response.body, streamingSlots, {
36
+ nonce,
37
+ onError,
38
+ policy,
39
+ runtimePlacement,
40
+ runtimePreludeScript
41
+ });
42
+ return new Response(body, {
43
+ headers: cloneHeaders(response),
44
+ status: response.status,
45
+ statusText: response.statusText
46
+ });
47
+ };
48
+ var withStreamingSlots = async (responseLike, options = {}) => enhanceHtmlResponseWithStreamingSlots(await toResponse(responseLike), options);
49
+ var mergeStreamingSlots = (registered, explicit) => {
50
+ const merged = new Map;
51
+ for (const slot of registered)
52
+ merged.set(slot.id, slot);
53
+ for (const slot of explicit)
54
+ merged.set(slot.id, slot);
55
+ return [...merged.values()];
56
+ };
57
+ var withRegisteredStreamingSlots = async (renderResponse, options = {}) => {
58
+ const { result, slots } = await runWithStreamingSlotRegistry(renderResponse);
59
+ const explicit = options.streamingSlots ?? [];
60
+ return withStreamingSlots(result, {
61
+ ...options,
62
+ streamingSlots: mergeStreamingSlots(slots, explicit)
63
+ });
64
+ };
65
+
66
+ // src/core/islandPageContext.ts
67
+ var BOOTSTRAP_MANIFEST_KEY = "BootstrapClient";
68
+ var ISLAND_MARKER = 'data-island="true"';
69
+ var MANIFEST_MARKER = "__ABSOLUTE_MANIFEST__";
70
+ var ISLAND_STATE_MARKER = "__ABS_ISLAND_STATE__";
71
+ var CLOSING_HEAD_TAG = "</head>";
72
+ var buildIslandsHeadMarkup = (manifest) => {
73
+ const manifestScript = `<script>window.__ABSOLUTE_MANIFEST__ = ${JSON.stringify(manifest)}</script>`;
74
+ const islandStateScript = `<script>window.__ABS_ISLAND_STATE__ = ${JSON.stringify(globalThis.__ABS_ISLAND_STATE__ ?? {})}</script>`;
75
+ const bootstrapPath = manifest[BOOTSTRAP_MANIFEST_KEY];
76
+ const bootstrapScript = bootstrapPath ? `<script type="module" src="${bootstrapPath}"></script>` : "";
77
+ return `${manifestScript}${islandStateScript}${bootstrapScript}`;
78
+ };
79
+ var injectHeadMarkup = (html, markup) => {
80
+ const closingHeadIndex = html.indexOf("</head>");
81
+ if (closingHeadIndex >= 0) {
82
+ return `${html.slice(0, closingHeadIndex)}${markup}${html.slice(closingHeadIndex)}`;
83
+ }
84
+ const openingBodyIndex = html.indexOf("<body");
85
+ if (openingBodyIndex >= 0) {
86
+ const bodyStart = html.indexOf(">", openingBodyIndex);
87
+ if (bodyStart >= 0) {
88
+ return `${html.slice(0, openingBodyIndex)}<head>${markup}</head>${html.slice(openingBodyIndex)}`;
89
+ }
90
+ }
91
+ return `<!DOCTYPE html><html><head>${markup}</head><body>${html}</body></html>`;
92
+ };
93
+ var streamChunkToString = (value, decoder) => typeof value === "string" ? value : decoder.decode(value, { stream: true });
94
+ var flushSafePendingText = (controller, encoder, pending, lookbehind) => {
95
+ if (pending.length <= lookbehind) {
96
+ return pending;
97
+ }
98
+ const safeText = pending.slice(0, pending.length - lookbehind);
99
+ controller.enqueue(encoder.encode(safeText));
100
+ return pending.slice(-lookbehind);
101
+ };
102
+ var updateInjectedState = (consumed, injected, pending) => {
103
+ if (consumed.done) {
104
+ return { done: true, injected, pending };
105
+ }
106
+ return {
107
+ done: false,
108
+ injected: consumed.injected,
109
+ pending: consumed.pending
110
+ };
111
+ };
112
+ var readStreamChunk = async (reader) => {
113
+ const { done, value } = await reader.read();
114
+ if (done || !value) {
115
+ return { done, value: undefined };
116
+ }
117
+ return { done, value };
118
+ };
119
+ var pipeStreamWithHeadInjection = (stream, markup) => {
120
+ const encoder = new TextEncoder;
121
+ const decoder = new TextDecoder;
122
+ const lookbehind = CLOSING_HEAD_TAG.length - 1;
123
+ const processPending = (controller, pending, injected) => {
124
+ if (injected) {
125
+ controller.enqueue(encoder.encode(pending));
126
+ return { injected, pending: "" };
127
+ }
128
+ const headIndex = pending.indexOf(CLOSING_HEAD_TAG);
129
+ if (headIndex >= 0) {
130
+ const next = `${pending.slice(0, headIndex)}${markup}${pending.slice(headIndex)}`;
131
+ controller.enqueue(encoder.encode(next));
132
+ return { injected: true, pending: "" };
133
+ }
134
+ return {
135
+ injected,
136
+ pending: flushSafePendingText(controller, encoder, pending, lookbehind)
137
+ };
138
+ };
139
+ const finishHeadInjectionStream = (controller, pending, injected) => {
140
+ let finalPending = pending + decoder.decode();
141
+ if (!injected) {
142
+ finalPending = injectHeadMarkup(finalPending, markup);
143
+ }
144
+ if (finalPending.length > 0) {
145
+ controller.enqueue(encoder.encode(finalPending));
146
+ }
147
+ controller.close();
148
+ };
149
+ const consumeHeadChunk = async (controller, reader, pending, injected) => {
150
+ const { done, value } = await readStreamChunk(reader);
151
+ if (done || !value) {
152
+ return { done, injected, pending };
153
+ }
154
+ const processed = processPending(controller, pending + streamChunkToString(value, decoder), injected);
155
+ return {
156
+ done,
157
+ injected: processed.injected,
158
+ pending: processed.pending
159
+ };
160
+ };
161
+ const runHeadInjectionLoop = async (controller, reader) => {
162
+ const consumeNextHeadChunk = async (injected, pending) => {
163
+ const consumed = await consumeHeadChunk(controller, reader, pending, injected);
164
+ const nextState = updateInjectedState(consumed, injected, pending);
165
+ if (nextState.done) {
166
+ return { injected, pending };
167
+ }
168
+ return consumeNextHeadChunk(nextState.injected, nextState.pending);
169
+ };
170
+ return consumeNextHeadChunk(false, "");
171
+ };
172
+ return new ReadableStream({
173
+ async start(controller) {
174
+ const reader = stream.getReader();
175
+ try {
176
+ const { injected, pending } = await runHeadInjectionLoop(controller, reader);
177
+ finishHeadInjectionStream(controller, pending, injected);
178
+ } catch (error) {
179
+ controller.error(error);
180
+ }
181
+ }
182
+ });
183
+ };
184
+ var pipeStreamWithIslandMarkerDetection = (stream, markup) => {
185
+ const encoder = new TextEncoder;
186
+ const decoder = new TextDecoder;
187
+ const lookbehind = Math.max(ISLAND_MARKER.length, BYTES_PER_KILOBYTE);
188
+ const processPending = (controller, pending, injected) => {
189
+ if (injected) {
190
+ controller.enqueue(encoder.encode(pending));
191
+ return { injected, pending: "" };
192
+ }
193
+ const markerIndex = pending.indexOf(ISLAND_MARKER);
194
+ if (markerIndex >= 0) {
195
+ const tagStart = pending.lastIndexOf("<", markerIndex);
196
+ const injectAt = tagStart >= 0 ? tagStart : markerIndex;
197
+ const next = `${pending.slice(0, injectAt)}${markup}${pending.slice(injectAt)}`;
198
+ controller.enqueue(encoder.encode(next));
199
+ return { injected: true, pending: "" };
200
+ }
201
+ return {
202
+ injected,
203
+ pending: flushSafePendingText(controller, encoder, pending, lookbehind)
204
+ };
205
+ };
206
+ const finishIslandMarkerStream = (controller, pending) => {
207
+ const finalPending = pending + decoder.decode();
208
+ if (finalPending.length > 0) {
209
+ controller.enqueue(encoder.encode(finalPending));
210
+ }
211
+ controller.close();
212
+ };
213
+ const consumeIslandChunk = async (controller, reader, pending, injected) => {
214
+ const { done, value } = await readStreamChunk(reader);
215
+ if (done || !value) {
216
+ return { done, injected, pending };
217
+ }
218
+ const processed = processPending(controller, pending + streamChunkToString(value, decoder), injected);
219
+ return {
220
+ done,
221
+ injected: processed.injected,
222
+ pending: processed.pending
223
+ };
224
+ };
225
+ const runIslandMarkerLoop = async (controller, reader) => {
226
+ const consumeNextIslandChunk = async (injected, pending) => {
227
+ const consumed = await consumeIslandChunk(controller, reader, pending, injected);
228
+ const nextState = updateInjectedState(consumed, injected, pending);
229
+ if (nextState.done) {
230
+ return { injected, pending };
231
+ }
232
+ return consumeNextIslandChunk(nextState.injected, nextState.pending);
233
+ };
234
+ return consumeNextIslandChunk(false, "");
235
+ };
236
+ return new ReadableStream({
237
+ async start(controller) {
238
+ const reader = stream.getReader();
239
+ try {
240
+ const { pending } = await runIslandMarkerLoop(controller, reader);
241
+ finishIslandMarkerStream(controller, pending);
242
+ } catch (error) {
243
+ controller.error(error);
244
+ }
245
+ }
246
+ });
247
+ };
248
+ var htmlContainsIslands = (html) => html.includes(ISLAND_MARKER);
249
+ var injectIslandPageContext = (html, options) => {
250
+ const manifest = globalThis.__absoluteManifest;
251
+ const hasIslands = options?.hasIslands ?? htmlContainsIslands(html);
252
+ if (!manifest || !hasIslands) {
253
+ return html;
254
+ }
255
+ if (html.includes(MANIFEST_MARKER) || html.includes(ISLAND_STATE_MARKER)) {
256
+ return html;
257
+ }
258
+ return injectHeadMarkup(html, buildIslandsHeadMarkup(manifest));
259
+ };
260
+ var injectIslandPageContextStream = (stream, options) => {
261
+ const manifest = globalThis.__absoluteManifest;
262
+ if (!manifest)
263
+ return stream;
264
+ const markup = buildIslandsHeadMarkup(manifest);
265
+ if (options?.hasIslands === true) {
266
+ return pipeStreamWithHeadInjection(stream, markup);
267
+ }
268
+ if (options?.hasIslands === false) {
269
+ return stream;
270
+ }
271
+ return pipeStreamWithIslandMarkerDetection(stream, markup);
272
+ };
273
+ var setCurrentIslandManifest = (manifest) => {
274
+ globalThis.__absoluteManifest = manifest;
275
+ };
276
+
277
+ // src/utils/resolveConvention.ts
278
+ import { basename } from "path";
279
+ var CONVENTIONS_KEY = "__absoluteConventions";
280
+ var isConventionsMap = (value) => Boolean(value) && typeof value === "object";
281
+ var getMap = () => {
282
+ const value = Reflect.get(globalThis, CONVENTIONS_KEY);
283
+ if (isConventionsMap(value))
284
+ return value;
285
+ const empty = {};
286
+ return empty;
287
+ };
288
+ var derivePageName = (pagePath) => {
289
+ const base = basename(pagePath);
290
+ const dotIndex = base.indexOf(".");
291
+ const name = dotIndex > 0 ? base.slice(0, dotIndex) : base;
292
+ return toPascal(name);
293
+ };
294
+ var normalizeConventionPageName = (name) => toPascal(name).replace(/\d+$/, "");
295
+ var resolveErrorConventionPath = (framework, pageName) => {
296
+ const conventions = getMap()[framework];
297
+ if (!conventions)
298
+ return;
299
+ const exact = conventions.pages?.[pageName]?.error;
300
+ if (exact)
301
+ return exact;
302
+ const normalizedPageName = normalizeConventionPageName(pageName);
303
+ for (const [candidate, page] of Object.entries(conventions.pages ?? {})) {
304
+ if (normalizeConventionPageName(candidate) === normalizedPageName) {
305
+ return page.error ?? conventions.defaults?.error;
306
+ }
307
+ }
308
+ return conventions.defaults?.error;
309
+ };
310
+ var resolveNotFoundConventionPath = (framework) => getMap()[framework]?.defaults?.notFound;
311
+ var hasErrorConvention = (framework) => {
312
+ const conventions = getMap()[framework];
313
+ if (!conventions)
314
+ return false;
315
+ if (conventions.defaults?.error)
316
+ return true;
317
+ return Object.values(conventions.pages ?? {}).some((page) => Boolean(page.error));
318
+ };
319
+ var setConventions = (map) => {
320
+ Reflect.set(globalThis, CONVENTIONS_KEY, map);
321
+ };
322
+ var isDev = () => true;
323
+ var buildErrorProps = (error) => {
324
+ const message = error instanceof Error ? error.message : String(error);
325
+ const stack = isDev() && error instanceof Error ? error.stack : undefined;
326
+ return { error: { message, stack } };
327
+ };
328
+ var renderReactError = async (conventionPath, errorProps) => {
329
+ const { createElement } = await import("react");
330
+ const { renderToReadableStream } = await import("react-dom/server");
331
+ const mod = await import(conventionPath);
332
+ const [firstKey] = Object.keys(mod);
333
+ const ErrorComponent = mod.default ?? (firstKey ? mod[firstKey] : undefined);
334
+ const element = createElement(ErrorComponent, errorProps);
335
+ const stream = await renderToReadableStream(element);
336
+ return new Response(stream, {
337
+ headers: { "Content-Type": "text/html" },
338
+ status: 500
339
+ });
340
+ };
341
+ var renderSvelteError = async (conventionPath, errorProps) => {
342
+ const { render } = await import("svelte/server");
343
+ const mod = await import(conventionPath);
344
+ const ErrorComponent = mod.default;
345
+ const { head, body } = render(ErrorComponent, {
346
+ props: errorProps
347
+ });
348
+ const html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;
349
+ return new Response(html, {
350
+ headers: { "Content-Type": "text/html" },
351
+ status: 500
352
+ });
353
+ };
354
+ var unescapeVueStyles = (ssrBody) => {
355
+ let styles = "";
356
+ const body = ssrBody.replace(/<style>([\s\S]*?)<\/style>/g, (_, css) => {
357
+ styles += `<style>${css.replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">")}</style>`;
358
+ return "";
359
+ });
360
+ return { body, styles };
361
+ };
362
+ var renderVueError = async (conventionPath, errorProps) => {
363
+ const { createSSRApp, h } = await import("vue");
364
+ const { renderToString } = await import("vue/server-renderer");
365
+ const mod = await import(conventionPath);
366
+ const ErrorComponent = mod.default;
367
+ const app = createSSRApp({
368
+ render: () => h(ErrorComponent, errorProps)
369
+ });
370
+ const rawBody = await renderToString(app);
371
+ const { styles, body } = unescapeVueStyles(rawBody);
372
+ const html = `<!DOCTYPE html><html><head>${styles}</head><body><div id="root">${body}</div></body></html>`;
373
+ return new Response(html, {
374
+ headers: { "Content-Type": "text/html" },
375
+ status: 500
376
+ });
377
+ };
378
+ var renderAngularError = async (conventionPath, errorProps) => {
379
+ const mod = await import(conventionPath);
380
+ const renderError = mod.default ?? mod.renderError;
381
+ if (typeof renderError !== "function")
382
+ return null;
383
+ const html = renderError(errorProps);
384
+ return new Response(html, {
385
+ headers: { "Content-Type": "text/html" },
386
+ status: 500
387
+ });
388
+ };
389
+ var logConventionRenderError = (framework, label, renderError) => {
390
+ const message = renderError instanceof Error ? renderError.message : "";
391
+ if (message.includes("Cannot find module") || message.includes("Cannot find package") || message.includes("not found in module")) {
392
+ console.error(`[SSR] Convention ${label} page for ${framework} failed: missing framework package. Ensure the ${framework} runtime is installed (e.g. bun add ${framework === "react" ? "react react-dom" : framework}).`);
393
+ return;
394
+ }
395
+ console.error(`[SSR] Failed to render ${framework} convention ${label} page:`, renderError);
396
+ };
397
+ var ERROR_RENDERERS = {
398
+ angular: renderAngularError,
399
+ react: renderReactError,
400
+ svelte: renderSvelteError,
401
+ vue: renderVueError
402
+ };
403
+ var renderConventionError = async (framework, pageName, error) => {
404
+ let conventionPath = resolveErrorConventionPath(framework, pageName);
405
+ if (!conventionPath && error instanceof Error && error.stack) {
406
+ for (const match of error.stack.matchAll(/^\s*at\s+([A-Za-z_$][\w$]*)/gm)) {
407
+ const candidate = match[1];
408
+ if (!candidate)
409
+ continue;
410
+ conventionPath = resolveErrorConventionPath(framework, candidate);
411
+ if (conventionPath)
412
+ break;
413
+ }
414
+ }
415
+ if (!conventionPath)
416
+ return null;
417
+ const errorProps = buildErrorProps(error);
418
+ const renderer = ERROR_RENDERERS[framework];
419
+ if (!renderer)
420
+ return null;
421
+ try {
422
+ return await renderer(conventionPath, errorProps);
423
+ } catch (renderError) {
424
+ logConventionRenderError(framework, "error", renderError);
425
+ }
426
+ return null;
427
+ };
428
+ var renderReactNotFound = async (conventionPath) => {
429
+ const { createElement } = await import("react");
430
+ const { renderToReadableStream } = await import("react-dom/server");
431
+ const mod = await import(conventionPath);
432
+ const [nfKey] = Object.keys(mod);
433
+ const NotFoundComponent = mod.default ?? (nfKey ? mod[nfKey] : undefined);
434
+ const element = createElement(NotFoundComponent);
435
+ const stream = await renderToReadableStream(element);
436
+ return new Response(stream, {
437
+ headers: { "Content-Type": "text/html" },
438
+ status: 404
439
+ });
440
+ };
441
+ var renderSvelteNotFound = async (conventionPath) => {
442
+ const { render } = await import("svelte/server");
443
+ const mod = await import(conventionPath);
444
+ const NotFoundComponent = mod.default;
445
+ const { head, body } = render(NotFoundComponent);
446
+ const html = `<!DOCTYPE html><html><head>${head}</head><body>${body}</body></html>`;
447
+ return new Response(html, {
448
+ headers: { "Content-Type": "text/html" },
449
+ status: 404
450
+ });
451
+ };
452
+ var renderVueNotFound = async (conventionPath) => {
453
+ const { createSSRApp, h } = await import("vue");
454
+ const { renderToString } = await import("vue/server-renderer");
455
+ const mod = await import(conventionPath);
456
+ const NotFoundComponent = mod.default;
457
+ const app = createSSRApp({
458
+ render: () => h(NotFoundComponent)
459
+ });
460
+ const rawBody = await renderToString(app);
461
+ const { styles, body } = unescapeVueStyles(rawBody);
462
+ const html = `<!DOCTYPE html><html><head>${styles}</head><body><div id="root">${body}</div></body></html>`;
463
+ return new Response(html, {
464
+ headers: { "Content-Type": "text/html" },
465
+ status: 404
466
+ });
467
+ };
468
+ var renderAngularNotFound = async (conventionPath) => {
469
+ const mod = await import(conventionPath);
470
+ const renderNotFound = mod.default ?? mod.renderNotFound;
471
+ if (typeof renderNotFound !== "function")
472
+ return null;
473
+ const html = renderNotFound();
474
+ return new Response(html, {
475
+ headers: { "Content-Type": "text/html" },
476
+ status: 404
477
+ });
478
+ };
479
+ var NOT_FOUND_RENDERERS = {
480
+ angular: renderAngularNotFound,
481
+ react: renderReactNotFound,
482
+ svelte: renderSvelteNotFound,
483
+ vue: renderVueNotFound
484
+ };
485
+ var renderConventionNotFound = async (framework) => {
486
+ const conventionPath = resolveNotFoundConventionPath(framework);
487
+ if (!conventionPath)
488
+ return null;
489
+ const renderer = NOT_FOUND_RENDERERS[framework];
490
+ if (!renderer)
491
+ return null;
492
+ try {
493
+ return await renderer(conventionPath);
494
+ } catch (renderError) {
495
+ logConventionRenderError(framework, "not-found", renderError);
496
+ }
497
+ return null;
498
+ };
499
+ var NOT_FOUND_PRIORITY = [
500
+ "react",
501
+ "svelte",
502
+ "vue",
503
+ "angular"
504
+ ];
505
+ var renderFirstNotFound = async () => {
506
+ const renderNext = async (frameworks) => {
507
+ const [framework, ...remaining] = frameworks;
508
+ if (!framework) {
509
+ return null;
510
+ }
511
+ if (!getMap()[framework]?.defaults?.notFound) {
512
+ return renderNext(remaining);
513
+ }
514
+ const response = await renderConventionNotFound(framework);
515
+ if (response) {
516
+ return response;
517
+ }
518
+ return renderNext(remaining);
519
+ };
520
+ return renderNext(NOT_FOUND_PRIORITY);
521
+ };
522
+
523
+ export { injectIslandPageContext, injectIslandPageContextStream, setCurrentIslandManifest, derivePageName, resolveErrorConventionPath, hasErrorConvention, setConventions, renderConventionError, renderFirstNotFound, enhanceHtmlResponseWithStreamingSlots, withStreamingSlots, withRegisteredStreamingSlots };
524
+
525
+ //# debugId=C9D132C4A53F65BB64756E2164756E21
526
+ //# sourceMappingURL=chunk-qk8kd3hr.js.map