gemi 0.167.0 → 0.169.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 (215) hide show
  1. package/dist/ai/Agent.d.ts +3 -5
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +16 -2
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/Prompt.d.ts +15 -1
  6. package/dist/ai/Prompt.d.ts.map +1 -1
  7. package/dist/ai/index.d.ts +1 -1
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js +32 -32
  10. package/dist/ai/index.js.map +4 -4
  11. package/dist/app/App.d.ts +3 -3
  12. package/dist/app/index.js +1 -1
  13. package/dist/bin/gemi.js +405 -376
  14. package/dist/bin/gemi.js.map +6 -5
  15. package/dist/bun/plugin.js +1 -1
  16. package/dist/bun/preload.js +1 -1
  17. package/dist/{chunk-eyv6hss6.js → chunk-0q65jzhv.js} +2 -2
  18. package/dist/{chunk-eyv6hss6.js.map → chunk-0q65jzhv.js.map} +1 -1
  19. package/dist/{chunk-p3qbym3v.js → chunk-0wet87jm.js} +2 -2
  20. package/dist/{chunk-p3qbym3v.js.map → chunk-0wet87jm.js.map} +1 -1
  21. package/dist/{chunk-4fzevafk.js → chunk-0wk992a5.js} +2 -2
  22. package/dist/{chunk-4fzevafk.js.map → chunk-0wk992a5.js.map} +1 -1
  23. package/dist/{chunk-q4vtjdea.js → chunk-17272ccy.js} +3 -3
  24. package/dist/{chunk-q4vtjdea.js.map → chunk-17272ccy.js.map} +1 -1
  25. package/dist/{chunk-w4at2d5d.js → chunk-1h6g1hkg.js} +2 -2
  26. package/dist/{chunk-w4at2d5d.js.map → chunk-1h6g1hkg.js.map} +1 -1
  27. package/dist/{chunk-hdt8cwsv.js → chunk-21hppqtb.js} +2 -2
  28. package/dist/{chunk-hdt8cwsv.js.map → chunk-21hppqtb.js.map} +1 -1
  29. package/dist/{chunk-qec3g4w3.js → chunk-2v7wq01w.js} +2 -2
  30. package/dist/{chunk-qec3g4w3.js.map → chunk-2v7wq01w.js.map} +1 -1
  31. package/dist/{chunk-z316fasf.js → chunk-2xtkh8bh.js} +19 -19
  32. package/dist/{chunk-z316fasf.js.map → chunk-2xtkh8bh.js.map} +3 -3
  33. package/dist/{chunk-0hfvwzd1.js → chunk-31np60bx.js} +2 -2
  34. package/dist/{chunk-0hfvwzd1.js.map → chunk-31np60bx.js.map} +1 -1
  35. package/dist/{chunk-mbkje42z.js → chunk-3682hkq0.js} +2 -2
  36. package/dist/{chunk-mbkje42z.js.map → chunk-3682hkq0.js.map} +1 -1
  37. package/dist/{chunk-fnj2hc5v.js → chunk-3rp908gn.js} +1 -1
  38. package/dist/{chunk-3xj1e3ns.js → chunk-44y62yav.js} +3 -3
  39. package/dist/{chunk-3xj1e3ns.js.map → chunk-44y62yav.js.map} +1 -1
  40. package/dist/{chunk-c3cdj9y7.js → chunk-4mtqbcc5.js} +2 -2
  41. package/dist/{chunk-c3cdj9y7.js.map → chunk-4mtqbcc5.js.map} +1 -1
  42. package/dist/{chunk-80703vks.js → chunk-4qpyz627.js} +2 -2
  43. package/dist/{chunk-80703vks.js.map → chunk-4qpyz627.js.map} +1 -1
  44. package/dist/{chunk-4rnpvajg.js → chunk-4tt14jnx.js} +2 -2
  45. package/dist/{chunk-4rnpvajg.js.map → chunk-4tt14jnx.js.map} +1 -1
  46. package/dist/{chunk-mcavkjh4.js → chunk-5aexecst.js} +2 -2
  47. package/dist/{chunk-mcavkjh4.js.map → chunk-5aexecst.js.map} +1 -1
  48. package/dist/{chunk-efjk5aq7.js → chunk-5n21z4n8.js} +2 -2
  49. package/dist/{chunk-efjk5aq7.js.map → chunk-5n21z4n8.js.map} +1 -1
  50. package/dist/{chunk-pk4drzc9.js → chunk-5nz46dyw.js} +2 -2
  51. package/dist/{chunk-pk4drzc9.js.map → chunk-5nz46dyw.js.map} +1 -1
  52. package/dist/{chunk-6tbs7yc1.js → chunk-6t1t7h05.js} +2 -2
  53. package/dist/{chunk-6tbs7yc1.js.map → chunk-6t1t7h05.js.map} +1 -1
  54. package/dist/{chunk-tms2g9at.js → chunk-777v6242.js} +1 -1
  55. package/dist/{chunk-kcgnjzqr.js → chunk-8b9ks729.js} +3 -3
  56. package/dist/{chunk-kcgnjzqr.js.map → chunk-8b9ks729.js.map} +1 -1
  57. package/dist/{chunk-8f4jkpv7.js → chunk-8hfyscnn.js} +1 -1
  58. package/dist/{chunk-4587ab6m.js → chunk-978pc27j.js} +2 -2
  59. package/dist/{chunk-4587ab6m.js.map → chunk-978pc27j.js.map} +1 -1
  60. package/dist/{chunk-y1ks8ahw.js → chunk-9aj6eavs.js} +2 -2
  61. package/dist/{chunk-y1ks8ahw.js.map → chunk-9aj6eavs.js.map} +1 -1
  62. package/dist/{chunk-xw5d66ec.js → chunk-9akefv1y.js} +2 -2
  63. package/dist/{chunk-xw5d66ec.js.map → chunk-9akefv1y.js.map} +1 -1
  64. package/dist/{chunk-y6x52vkb.js → chunk-9ft0ayhf.js} +2 -2
  65. package/dist/{chunk-y6x52vkb.js.map → chunk-9ft0ayhf.js.map} +1 -1
  66. package/dist/{chunk-m5hd632w.js → chunk-9wcv7e1a.js} +2 -2
  67. package/dist/{chunk-h5whhrds.js.map → chunk-9wcv7e1a.js.map} +1 -1
  68. package/dist/{chunk-c0dvdfm0.js → chunk-a9frf7ym.js} +2 -2
  69. package/dist/{chunk-c0dvdfm0.js.map → chunk-a9frf7ym.js.map} +1 -1
  70. package/dist/{chunk-ndj94vde.js → chunk-acmf790v.js} +2 -2
  71. package/dist/{chunk-ndj94vde.js.map → chunk-acmf790v.js.map} +1 -1
  72. package/dist/{chunk-2jk0f4sj.js → chunk-aj1jrwwh.js} +2 -2
  73. package/dist/{chunk-2jk0f4sj.js.map → chunk-aj1jrwwh.js.map} +1 -1
  74. package/dist/{chunk-36yp8364.js → chunk-c46vhvk4.js} +2 -2
  75. package/dist/{chunk-36yp8364.js.map → chunk-c46vhvk4.js.map} +1 -1
  76. package/dist/{chunk-tqgpahmn.js → chunk-d849rktz.js} +25 -25
  77. package/dist/{chunk-tqgpahmn.js.map → chunk-d849rktz.js.map} +6 -6
  78. package/dist/{chunk-5x9b1ema.js → chunk-df2zeevj.js} +2 -2
  79. package/dist/{chunk-5x9b1ema.js.map → chunk-df2zeevj.js.map} +1 -1
  80. package/dist/{chunk-ndyafsv6.js → chunk-drwjwtmj.js} +2 -2
  81. package/dist/{chunk-ndyafsv6.js.map → chunk-drwjwtmj.js.map} +1 -1
  82. package/dist/{chunk-wypncj52.js → chunk-ecdjbd2w.js} +3 -3
  83. package/dist/{chunk-wypncj52.js.map → chunk-ecdjbd2w.js.map} +1 -1
  84. package/dist/{chunk-6cw6tn57.js → chunk-embwksec.js} +2 -2
  85. package/dist/{chunk-6cw6tn57.js.map → chunk-embwksec.js.map} +1 -1
  86. package/dist/chunk-f4nanvkm.js +5 -0
  87. package/dist/{chunk-8v6y52et.js.map → chunk-f4nanvkm.js.map} +1 -1
  88. package/dist/{chunk-b8qfypzq.js → chunk-fb77hwk0.js} +3 -3
  89. package/dist/{chunk-b8qfypzq.js.map → chunk-fb77hwk0.js.map} +1 -1
  90. package/dist/{chunk-fva651jp.js → chunk-fcbgshf5.js} +2 -2
  91. package/dist/{chunk-fva651jp.js.map → chunk-fcbgshf5.js.map} +1 -1
  92. package/dist/{chunk-f6mwnw81.js → chunk-g1jfc50d.js} +3 -3
  93. package/dist/{chunk-f6mwnw81.js.map → chunk-g1jfc50d.js.map} +1 -1
  94. package/dist/{chunk-0psf0chk.js → chunk-g548q257.js} +2 -2
  95. package/dist/{chunk-0psf0chk.js.map → chunk-g548q257.js.map} +2 -2
  96. package/dist/{chunk-wjff0d08.js → chunk-gjwf07hy.js} +3 -3
  97. package/dist/{chunk-wjff0d08.js.map → chunk-gjwf07hy.js.map} +1 -1
  98. package/dist/{chunk-matvbghh.js → chunk-gv5r1rd7.js} +2 -2
  99. package/dist/{chunk-matvbghh.js.map → chunk-gv5r1rd7.js.map} +1 -1
  100. package/dist/{chunk-2ewe42dq.js → chunk-gwphn604.js} +3 -3
  101. package/dist/{chunk-2ewe42dq.js.map → chunk-gwphn604.js.map} +1 -1
  102. package/dist/{chunk-xed7yf6h.js → chunk-hgpvfhtp.js} +1 -1
  103. package/dist/{chunk-h5whhrds.js → chunk-hwpp9b7f.js} +2 -2
  104. package/dist/{chunk-m5hd632w.js.map → chunk-hwpp9b7f.js.map} +1 -1
  105. package/dist/{chunk-vqf4s99d.js → chunk-jd079awh.js} +2 -2
  106. package/dist/{chunk-vqf4s99d.js.map → chunk-jd079awh.js.map} +1 -1
  107. package/dist/{chunk-1ap3vcrr.js → chunk-jxx9mctk.js} +2 -2
  108. package/dist/{chunk-1ap3vcrr.js.map → chunk-jxx9mctk.js.map} +1 -1
  109. package/dist/{chunk-mj429x94.js → chunk-k87tqe29.js} +2 -2
  110. package/dist/{chunk-mj429x94.js.map → chunk-k87tqe29.js.map} +1 -1
  111. package/dist/{chunk-1k4rvfza.js → chunk-kbw6y0ag.js} +2 -2
  112. package/dist/{chunk-1k4rvfza.js.map → chunk-kbw6y0ag.js.map} +1 -1
  113. package/dist/{chunk-pr2enaz5.js → chunk-krdq5s4y.js} +2 -2
  114. package/dist/{chunk-pr2enaz5.js.map → chunk-krdq5s4y.js.map} +1 -1
  115. package/dist/{chunk-7ysw97gp.js → chunk-m6sj1q1q.js} +2 -2
  116. package/dist/{chunk-7ysw97gp.js.map → chunk-m6sj1q1q.js.map} +1 -1
  117. package/dist/{chunk-hgvt5084.js → chunk-m950vw4c.js} +2 -2
  118. package/dist/{chunk-hgvt5084.js.map → chunk-m950vw4c.js.map} +1 -1
  119. package/dist/{chunk-873k84dt.js → chunk-mm45shzv.js} +2 -2
  120. package/dist/{chunk-873k84dt.js.map → chunk-mm45shzv.js.map} +1 -1
  121. package/dist/{chunk-6q15sx3h.js → chunk-p56zntmt.js} +3 -3
  122. package/dist/{chunk-6q15sx3h.js.map → chunk-p56zntmt.js.map} +1 -1
  123. package/dist/{chunk-p97w2388.js → chunk-q3511sb5.js} +2 -2
  124. package/dist/{chunk-p97w2388.js.map → chunk-q3511sb5.js.map} +1 -1
  125. package/dist/{chunk-kfdy4vv1.js → chunk-q788x8pm.js} +2 -2
  126. package/dist/{chunk-kfdy4vv1.js.map → chunk-q788x8pm.js.map} +1 -1
  127. package/dist/{chunk-23670kw5.js → chunk-rpdekb8t.js} +2 -2
  128. package/dist/{chunk-23670kw5.js.map → chunk-rpdekb8t.js.map} +1 -1
  129. package/dist/{chunk-j7k0nzqz.js → chunk-s4fb4njt.js} +2 -2
  130. package/dist/{chunk-j7k0nzqz.js.map → chunk-s4fb4njt.js.map} +1 -1
  131. package/dist/{chunk-7yh908jj.js → chunk-s71e6k9m.js} +3 -3
  132. package/dist/{chunk-7yh908jj.js.map → chunk-s71e6k9m.js.map} +1 -1
  133. package/dist/{chunk-6eb6jgdv.js → chunk-sdn3dmpp.js} +4 -4
  134. package/dist/{chunk-6eb6jgdv.js.map → chunk-sdn3dmpp.js.map} +1 -1
  135. package/dist/{chunk-qnv9w5g5.js → chunk-skv12k0x.js} +2 -2
  136. package/dist/{chunk-qnv9w5g5.js.map → chunk-skv12k0x.js.map} +1 -1
  137. package/dist/{chunk-fxd7pqk3.js → chunk-sp77zwpn.js} +2 -2
  138. package/dist/{chunk-fxd7pqk3.js.map → chunk-sp77zwpn.js.map} +1 -1
  139. package/dist/{chunk-82jhqxx7.js → chunk-sv86v56c.js} +3 -3
  140. package/dist/{chunk-82jhqxx7.js.map → chunk-sv86v56c.js.map} +1 -1
  141. package/dist/{chunk-bym06a64.js → chunk-sxf94q13.js} +2 -2
  142. package/dist/{chunk-bym06a64.js.map → chunk-sxf94q13.js.map} +1 -1
  143. package/dist/{chunk-pd3qbf8r.js → chunk-ta2wsjz6.js} +2 -2
  144. package/dist/{chunk-pd3qbf8r.js.map → chunk-ta2wsjz6.js.map} +1 -1
  145. package/dist/{chunk-58k1zstz.js → chunk-thbs63gy.js} +1 -1
  146. package/dist/{chunk-71prz4rp.js → chunk-vfvjfw5k.js} +2 -2
  147. package/dist/{chunk-71prz4rp.js.map → chunk-vfvjfw5k.js.map} +1 -1
  148. package/dist/{chunk-sca3tpce.js → chunk-vnk4vaer.js} +3 -3
  149. package/dist/{chunk-sca3tpce.js.map → chunk-vnk4vaer.js.map} +1 -1
  150. package/dist/{chunk-rzqxkm9r.js → chunk-wp9hw3we.js} +2 -2
  151. package/dist/{chunk-rzqxkm9r.js.map → chunk-wp9hw3we.js.map} +1 -1
  152. package/dist/{chunk-4w9gbe11.js → chunk-wt1yzzbw.js} +1 -1
  153. package/dist/{chunk-d29dcs3e.js → chunk-xkas0yp8.js} +3 -3
  154. package/dist/{chunk-d29dcs3e.js.map → chunk-xkas0yp8.js.map} +1 -1
  155. package/dist/{chunk-j1yhtwsk.js → chunk-y3s05q6b.js} +2 -2
  156. package/dist/{chunk-j1yhtwsk.js.map → chunk-y3s05q6b.js.map} +1 -1
  157. package/dist/{chunk-ndawdgtt.js → chunk-ys8nk9ga.js} +3 -3
  158. package/dist/{chunk-ndawdgtt.js.map → chunk-ys8nk9ga.js.map} +3 -3
  159. package/dist/{chunk-0gzqhjyg.js → chunk-z4dhd5pk.js} +2 -2
  160. package/dist/{chunk-0gzqhjyg.js.map → chunk-z4dhd5pk.js.map} +1 -1
  161. package/dist/{chunk-xxbkp90v.js → chunk-z5g56ds0.js} +3 -3
  162. package/dist/{chunk-xxbkp90v.js.map → chunk-z5g56ds0.js.map} +1 -1
  163. package/dist/{chunk-bzrhc7q3.js → chunk-zqptpk90.js} +2 -2
  164. package/dist/{chunk-bzrhc7q3.js.map → chunk-zqptpk90.js.map} +1 -1
  165. package/dist/config/index.js +1 -1
  166. package/dist/console/run.js +2 -2
  167. package/dist/console/run.js.map +1 -1
  168. package/dist/container/index.js +2 -2
  169. package/dist/container/index.js.map +1 -1
  170. package/dist/database/index.js +2 -2
  171. package/dist/database/index.js.map +1 -1
  172. package/dist/email/index.js +2 -2
  173. package/dist/email/index.js.map +1 -1
  174. package/dist/facades/index.js +2 -2
  175. package/dist/facades/index.js.map +1 -1
  176. package/dist/foundation/index.js +2 -2
  177. package/dist/foundation/index.js.map +1 -1
  178. package/dist/http/index.js +2 -2
  179. package/dist/http/index.js.map +1 -1
  180. package/dist/http/requestDomain.d.ts.map +1 -1
  181. package/dist/i18n/dictionaryRuntime.js +2 -2
  182. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  183. package/dist/i18n/index.js +2 -2
  184. package/dist/i18n/index.js.map +1 -1
  185. package/dist/kernel/index.js +2 -2
  186. package/dist/kernel/index.js.map +1 -1
  187. package/dist/orm/index.js +2 -2
  188. package/dist/orm/index.js.map +1 -1
  189. package/dist/probe/index.js +2 -2
  190. package/dist/probe/index.js.map +1 -1
  191. package/dist/server/forwardedFor.d.ts +3 -3
  192. package/dist/server/index.js +2 -2
  193. package/dist/server/index.js.map +1 -1
  194. package/dist/services/index.js +2 -2
  195. package/dist/services/index.js.map +1 -1
  196. package/dist/services/queue/work.js +2 -2
  197. package/dist/services/queue/work.js.map +1 -1
  198. package/dist/services/router/DomainResolver.d.ts +20 -9
  199. package/dist/services/router/DomainResolver.d.ts.map +1 -1
  200. package/dist/services/router/DomainRouter.d.ts +2 -1
  201. package/dist/services/router/DomainRouter.d.ts.map +1 -1
  202. package/dist/services/router/config.d.ts +30 -1
  203. package/dist/services/router/config.d.ts.map +1 -1
  204. package/dist/stats/route-table.js +1 -1
  205. package/dist/support/index.js +2 -2
  206. package/dist/support/index.js.map +1 -1
  207. package/dist/vitest/index.js +1 -1
  208. package/package.json +1 -1
  209. package/dist/chunk-8v6y52et.js +0 -5
  210. /package/dist/{chunk-fnj2hc5v.js.map → chunk-3rp908gn.js.map} +0 -0
  211. /package/dist/{chunk-tms2g9at.js.map → chunk-777v6242.js.map} +0 -0
  212. /package/dist/{chunk-8f4jkpv7.js.map → chunk-8hfyscnn.js.map} +0 -0
  213. /package/dist/{chunk-xed7yf6h.js.map → chunk-hgpvfhtp.js.map} +0 -0
  214. /package/dist/{chunk-58k1zstz.js.map → chunk-thbs63gy.js.map} +0 -0
  215. /package/dist/{chunk-4w9gbe11.js.map → chunk-wt1yzzbw.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{X as k,Y as FJ,Z as LJ,_ as _J}from"./chunk-matvbghh.js";import{pa as N,ta as _,ua as CJ}from"./chunk-bwg7genv.js";import"./chunk-s0z61m9j.js";import{Fg as zJ,Gg as xJ,Hg as KJ,ke as e,wg as YJ,xg as R}from"./chunk-tqgpahmn.js";import"./chunk-sca3tpce.js";import"./chunk-d29dcs3e.js";import{Mh as t,Nh as r,Qh as s}from"./chunk-ndawdgtt.js";import{Si as VJ}from"./chunk-efjk5aq7.js";import"./chunk-w4at2d5d.js";import"./chunk-7yh908jj.js";import"./chunk-b8qfypzq.js";import"./chunk-1ap3vcrr.js";import"./chunk-j7k0nzqz.js";import"./chunk-6tbs7yc1.js";import"./chunk-c0dvdfm0.js";import"./chunk-2ewe42dq.js";import"./chunk-hgvt5084.js";import"./chunk-4587ab6m.js";import"./chunk-71prz4rp.js";import"./chunk-kcgnjzqr.js";import"./chunk-eyv6hss6.js";import{il as XJ}from"./chunk-fxd7pqk3.js";import"./chunk-xw5d66ec.js";import{wl as UJ}from"./chunk-23670kw5.js";import{yl as T}from"./chunk-vqf4s99d.js";import"./chunk-m5hd632w.js";import{createHash as O2}from"crypto";import{join as v,resolve as MJ,sep as IJ}from"path";import{Duplex as EJ}from"stream";import{constants as P,createBrotliCompress as yJ,createGzip as gJ}from"zlib";var fJ=["br","gzip"],mJ=1024,uJ=5,hJ=19,cJ=6;function pJ(J){if(J===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test(J.trim()))return 1;let $=Number(J.trim());return Number.isFinite($)?Math.min($,1):1}function dJ(J){if(J===null||J===void 0)return null;let $=new Map;for(let Z of J.split(",")){let[X,...W]=Z.split(";"),j=X.trim().toLowerCase();if(j==="")continue;let G=1;for(let Y of W){let O=Y.indexOf("=");if(O===-1)continue;if(Y.slice(0,O).trim().toLowerCase()==="q"){G=pJ(Y.slice(O+1));break}}$.set(j,G)}return $}function S(J,$=fJ){let Z=dJ(J);if(!Z)return null;let X=Z.get("*"),W=null,j=0;for(let G of $){let Y=Z.get(G)??X??0;if(Y>j)W=G,j=Y}return W}function lJ(J,$){if(!J)return!1;return J.split(",").some((Z)=>Z.trim().toLowerCase().split("=")[0].trim()===$)}function oJ(J,$){if(J==="HEAD")return!1;if($.status<200||$.status===204||$.status===206||$.status===304)return!1;if($.headers.has("Content-Range"))return!1;let Z=$.headers.get("Content-Type");if(!Z||!/^\s*text\/html\s*(;|$)/i.test(Z))return!1;if(!$.body)return!1;let X=$.headers.get("Content-Encoding");if(X&&X.trim().toLowerCase()!=="identity")return!1;if(lJ($.headers.get("Cache-Control"),"no-transform"))return!1;let W=$.headers.get("Content-Length");if(W!==null&&Number(W)<mJ)return!1;return!0}function nJ(J){let $=J==="br"?yJ({params:{[P.BROTLI_PARAM_QUALITY]:uJ,[P.BROTLI_PARAM_LGWIN]:hJ},flush:P.BROTLI_OPERATION_FLUSH}):gJ({level:cJ,flush:P.Z_SYNC_FLUSH});return EJ.toWeb($)}function iJ(J){let $=J.get("Vary");if(!$){J.set("Vary","Accept-Encoding");return}let Z=$.split(",").map((X)=>X.trim().toLowerCase());if(Z.includes("*")||Z.includes("accept-encoding"))return;J.append("Vary","Accept-Encoding")}function o(J,$){if(!oJ(J.method,$))return $;let Z=new Headers($.headers);iJ(Z);let X=S(J.headers.get("Accept-Encoding"));if(!X)return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z});let W;try{W=nJ(X)}catch{return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}return Z.set("Content-Encoding",X),Z.delete("Content-Length"),new Response($.body.pipeThrough(W),{status:$.status,statusText:$.statusText,headers:Z})}import{readdir as $2,stat as JJ}from"fs/promises";import{join as Z2}from"path";import{mkdir as _2,readFile as aJ,stat as M2,writeFile as I2}from"fs/promises";import{dirname as P2,join as tJ}from"path";import{promisify as n}from"util";import{brotliCompress as rJ,constants as T2,gzip as sJ}from"zlib";var eJ=".vite/static-assets.json";var i={br:".br",gzip:".gz"},J2=["br","gzip"],D2=n(rJ),q2=n(sJ);async function a(J){let $;try{$=await aJ(tJ(J,eJ),"utf8")}catch{return null}let Z;try{Z=JSON.parse($)?.files}catch{return null}if(!Z||typeof Z!=="object")return null;let X={files:{}};for(let[W,j]of Object.entries(Z)){if(!Array.isArray(j))continue;X.files[W]=J2.filter((G)=>j.includes(G))}return X}function b(J){let $=J.toString(),Z=new Bun.CryptoHasher("sha1");return Z.update($),Z.digest("hex")}async function $J(J){let $=new Set;async function Z(X,W){let j;try{j=await $2(X,{withFileTypes:!0})}catch{return}for(let G of j){if(G.name.startsWith("."))continue;if(W&&G.name==="assets")continue;let Y=Z2(X,G.name),O=G.isDirectory(),V=G.isFile();if(G.isSymbolicLink())try{let K=await JJ(Y);O=K.isDirectory(),V=K.isFile()}catch{continue}if(V)$.add(Y);else if(O&&!G.isSymbolicLink())await Z(Y,!1)}}return await Z(J,!0),$}var X2="public, max-age=31536000, must-revalidate",Q2="public, max-age=31536000, immutable";async function W2(J,$,Z){if(Z.length===0||J.headers.has("Range"))return null;let X=S(J.headers.get("Accept-Encoding"),Z);if(!X)return null;let W=$+i[X];try{let j=await JJ(W);return j.isFile()?{encoding:X,path:W,size:j.size}:null}catch{return null}}async function ZJ(J,$,Z={}){let X=Bun.file($),W=Z.encodings??[],j={"Content-Type":X.type||"application/octet-stream","Cache-Control":Z.immutable?Q2:X2,"Accept-Ranges":"bytes"};if(W.length>0)j.Vary="Accept-Encoding";let G=await W2(J,$,W);if(G){let V=Bun.file(G.path);return new Response(V.stream(),{headers:{...j,"Content-Encoding":G.encoding,"Content-Length":String(G.size),ETag:`${b(V.lastModified)}-${G.encoding}`}})}let Y=X.size;j.ETag=b(X.lastModified);let O=t(J.headers.get("Range"));if(O){let V=r(O,Y);if(!V)return e(Y);return new Response(X.slice(V.start,V.end+1).stream(),{status:206,headers:{...j,"Content-Range":s(V.start,V.end,Y),"Content-Length":String(V.length)}})}return new Response(X.stream(),{headers:{...j,"Content-Length":String(Y)}})}import{stat as V2}from"fs/promises";var A="app/client.tsx";function QJ(J,$=N){let Z=J[A]?.file;if(!Z)return;return{module:_(Z,$),preload:L(J,A,$)}}function L(J,$,Z=N){let X=[],W=new Set,j=(G)=>{if(W.has(G))return;W.add(G);let Y=J[G];if(!Y?.file)return;X.push(_(Y.file,Z));for(let O of Y.imports??[])j(O)};return j($),X}function j2(J,$,Z=N){let X=new Set(L(J,$,Z)),W=[],j=new Set,G=(O)=>{if(j.has(O))return;j.add(O);let V=J[O];if(!V)return;for(let K of V.dynamicImports??[])if(!/(^|\/)node_modules\//.test(K)&&!W.includes(K))W.push(K);for(let K of V.imports??[])G(K)};G($);let Y=[];for(let O of W)for(let V of L(J,O,Z))if(!X.has(V))X.add(V),Y.push(V);return Y}function WJ(J,$){let Z=[],X=new Set,W=new Set,j=(G)=>{if(W.has(G))return;W.add(G);let Y=J[G];if(!Y)return;for(let O of Y.imports??[])j(O);for(let O of Y.css??[])if(!X.has(O))X.add(O),Z.push(O)};return j($),Z}function jJ(J,$=N){let Z=new Map;return(X)=>{if(!Z.has(X)){let W=`${X}${XJ}`,j=J[W]?.file;Z.set(X,j?{src:_(j,$),preload:L(J,W,$),dynamicPreload:j2(J,W,$)}:void 0)}return Z.get(X)}}var GJ="x-gemi-build";function HJ(J,$=30000){let Z=JSON.stringify("gemi:chunk-reload"),X=JSON.stringify(`Failed to fetch dynamically imported module: ${J}`);return`var r=!1;try{var s=window.sessionStorage,u=window.location.href,m=JSON.parse(s.getItem(${Z})||"{}");if(!m||typeof m!=="object")m={};var d=Date.now()-m[u];if(navigator.onLine!==!1&&!(d>=0&&d<${$})){m[u]=Date.now();s.setItem(${Z},JSON.stringify(m));r=!0}}catch(e){}if(r)window.location.reload();else throw new Error(${X});export {}`}var G2=new RegExp(`^${YJ}/.+\\.m?js$`);function H2(J){return G2.test(J)}function OJ(J){if(H2(J))return new Response(HJ(J),{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store"}});if(R(J))return new Response("Not found",{status:404});return}var Y2=`<!DOCTYPE html>
2
+ import{X as k,Y as FJ,Z as LJ,_ as _J}from"./chunk-gv5r1rd7.js";import{pa as N,ta as _,ua as CJ}from"./chunk-bwg7genv.js";import"./chunk-s0z61m9j.js";import{Gg as zJ,Hg as xJ,Ig as KJ,le as e,xg as YJ,yg as R}from"./chunk-d849rktz.js";import"./chunk-vnk4vaer.js";import"./chunk-xkas0yp8.js";import{Nh as t,Oh as r,Rh as s}from"./chunk-ys8nk9ga.js";import{Ti as VJ}from"./chunk-5n21z4n8.js";import"./chunk-1h6g1hkg.js";import"./chunk-s71e6k9m.js";import"./chunk-fb77hwk0.js";import"./chunk-jxx9mctk.js";import"./chunk-s4fb4njt.js";import"./chunk-6t1t7h05.js";import"./chunk-a9frf7ym.js";import"./chunk-gwphn604.js";import"./chunk-m950vw4c.js";import"./chunk-978pc27j.js";import"./chunk-vfvjfw5k.js";import"./chunk-8b9ks729.js";import"./chunk-0q65jzhv.js";import{jl as XJ}from"./chunk-sp77zwpn.js";import"./chunk-9akefv1y.js";import{xl as UJ}from"./chunk-rpdekb8t.js";import{zl as T}from"./chunk-jd079awh.js";import"./chunk-9wcv7e1a.js";import{createHash as O2}from"crypto";import{join as v,resolve as MJ,sep as IJ}from"path";import{Duplex as EJ}from"stream";import{constants as P,createBrotliCompress as yJ,createGzip as gJ}from"zlib";var fJ=["br","gzip"],mJ=1024,uJ=5,hJ=19,cJ=6;function pJ(J){if(J===void 0)return 1;if(!/^\d+(\.\d{0,3})?$/.test(J.trim()))return 1;let $=Number(J.trim());return Number.isFinite($)?Math.min($,1):1}function dJ(J){if(J===null||J===void 0)return null;let $=new Map;for(let Z of J.split(",")){let[X,...W]=Z.split(";"),j=X.trim().toLowerCase();if(j==="")continue;let G=1;for(let Y of W){let O=Y.indexOf("=");if(O===-1)continue;if(Y.slice(0,O).trim().toLowerCase()==="q"){G=pJ(Y.slice(O+1));break}}$.set(j,G)}return $}function S(J,$=fJ){let Z=dJ(J);if(!Z)return null;let X=Z.get("*"),W=null,j=0;for(let G of $){let Y=Z.get(G)??X??0;if(Y>j)W=G,j=Y}return W}function lJ(J,$){if(!J)return!1;return J.split(",").some((Z)=>Z.trim().toLowerCase().split("=")[0].trim()===$)}function oJ(J,$){if(J==="HEAD")return!1;if($.status<200||$.status===204||$.status===206||$.status===304)return!1;if($.headers.has("Content-Range"))return!1;let Z=$.headers.get("Content-Type");if(!Z||!/^\s*text\/html\s*(;|$)/i.test(Z))return!1;if(!$.body)return!1;let X=$.headers.get("Content-Encoding");if(X&&X.trim().toLowerCase()!=="identity")return!1;if(lJ($.headers.get("Cache-Control"),"no-transform"))return!1;let W=$.headers.get("Content-Length");if(W!==null&&Number(W)<mJ)return!1;return!0}function nJ(J){let $=J==="br"?yJ({params:{[P.BROTLI_PARAM_QUALITY]:uJ,[P.BROTLI_PARAM_LGWIN]:hJ},flush:P.BROTLI_OPERATION_FLUSH}):gJ({level:cJ,flush:P.Z_SYNC_FLUSH});return EJ.toWeb($)}function iJ(J){let $=J.get("Vary");if(!$){J.set("Vary","Accept-Encoding");return}let Z=$.split(",").map((X)=>X.trim().toLowerCase());if(Z.includes("*")||Z.includes("accept-encoding"))return;J.append("Vary","Accept-Encoding")}function o(J,$){if(!oJ(J.method,$))return $;let Z=new Headers($.headers);iJ(Z);let X=S(J.headers.get("Accept-Encoding"));if(!X)return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z});let W;try{W=nJ(X)}catch{return new Response($.body,{status:$.status,statusText:$.statusText,headers:Z})}return Z.set("Content-Encoding",X),Z.delete("Content-Length"),new Response($.body.pipeThrough(W),{status:$.status,statusText:$.statusText,headers:Z})}import{readdir as $2,stat as JJ}from"fs/promises";import{join as Z2}from"path";import{mkdir as _2,readFile as aJ,stat as M2,writeFile as I2}from"fs/promises";import{dirname as P2,join as tJ}from"path";import{promisify as n}from"util";import{brotliCompress as rJ,constants as T2,gzip as sJ}from"zlib";var eJ=".vite/static-assets.json";var i={br:".br",gzip:".gz"},J2=["br","gzip"],D2=n(rJ),q2=n(sJ);async function a(J){let $;try{$=await aJ(tJ(J,eJ),"utf8")}catch{return null}let Z;try{Z=JSON.parse($)?.files}catch{return null}if(!Z||typeof Z!=="object")return null;let X={files:{}};for(let[W,j]of Object.entries(Z)){if(!Array.isArray(j))continue;X.files[W]=J2.filter((G)=>j.includes(G))}return X}function b(J){let $=J.toString(),Z=new Bun.CryptoHasher("sha1");return Z.update($),Z.digest("hex")}async function $J(J){let $=new Set;async function Z(X,W){let j;try{j=await $2(X,{withFileTypes:!0})}catch{return}for(let G of j){if(G.name.startsWith("."))continue;if(W&&G.name==="assets")continue;let Y=Z2(X,G.name),O=G.isDirectory(),V=G.isFile();if(G.isSymbolicLink())try{let K=await JJ(Y);O=K.isDirectory(),V=K.isFile()}catch{continue}if(V)$.add(Y);else if(O&&!G.isSymbolicLink())await Z(Y,!1)}}return await Z(J,!0),$}var X2="public, max-age=31536000, must-revalidate",Q2="public, max-age=31536000, immutable";async function W2(J,$,Z){if(Z.length===0||J.headers.has("Range"))return null;let X=S(J.headers.get("Accept-Encoding"),Z);if(!X)return null;let W=$+i[X];try{let j=await JJ(W);return j.isFile()?{encoding:X,path:W,size:j.size}:null}catch{return null}}async function ZJ(J,$,Z={}){let X=Bun.file($),W=Z.encodings??[],j={"Content-Type":X.type||"application/octet-stream","Cache-Control":Z.immutable?Q2:X2,"Accept-Ranges":"bytes"};if(W.length>0)j.Vary="Accept-Encoding";let G=await W2(J,$,W);if(G){let V=Bun.file(G.path);return new Response(V.stream(),{headers:{...j,"Content-Encoding":G.encoding,"Content-Length":String(G.size),ETag:`${b(V.lastModified)}-${G.encoding}`}})}let Y=X.size;j.ETag=b(X.lastModified);let O=t(J.headers.get("Range"));if(O){let V=r(O,Y);if(!V)return e(Y);return new Response(X.slice(V.start,V.end+1).stream(),{status:206,headers:{...j,"Content-Range":s(V.start,V.end,Y),"Content-Length":String(V.length)}})}return new Response(X.stream(),{headers:{...j,"Content-Length":String(Y)}})}import{stat as V2}from"fs/promises";var A="app/client.tsx";function QJ(J,$=N){let Z=J[A]?.file;if(!Z)return;return{module:_(Z,$),preload:L(J,A,$)}}function L(J,$,Z=N){let X=[],W=new Set,j=(G)=>{if(W.has(G))return;W.add(G);let Y=J[G];if(!Y?.file)return;X.push(_(Y.file,Z));for(let O of Y.imports??[])j(O)};return j($),X}function j2(J,$,Z=N){let X=new Set(L(J,$,Z)),W=[],j=new Set,G=(O)=>{if(j.has(O))return;j.add(O);let V=J[O];if(!V)return;for(let K of V.dynamicImports??[])if(!/(^|\/)node_modules\//.test(K)&&!W.includes(K))W.push(K);for(let K of V.imports??[])G(K)};G($);let Y=[];for(let O of W)for(let V of L(J,O,Z))if(!X.has(V))X.add(V),Y.push(V);return Y}function WJ(J,$){let Z=[],X=new Set,W=new Set,j=(G)=>{if(W.has(G))return;W.add(G);let Y=J[G];if(!Y)return;for(let O of Y.imports??[])j(O);for(let O of Y.css??[])if(!X.has(O))X.add(O),Z.push(O)};return j($),Z}function jJ(J,$=N){let Z=new Map;return(X)=>{if(!Z.has(X)){let W=`${X}${XJ}`,j=J[W]?.file;Z.set(X,j?{src:_(j,$),preload:L(J,W,$),dynamicPreload:j2(J,W,$)}:void 0)}return Z.get(X)}}var GJ="x-gemi-build";function HJ(J,$=30000){let Z=JSON.stringify("gemi:chunk-reload"),X=JSON.stringify(`Failed to fetch dynamically imported module: ${J}`);return`var r=!1;try{var s=window.sessionStorage,u=window.location.href,m=JSON.parse(s.getItem(${Z})||"{}");if(!m||typeof m!=="object")m={};var d=Date.now()-m[u];if(navigator.onLine!==!1&&!(d>=0&&d<${$})){m[u]=Date.now();s.setItem(${Z},JSON.stringify(m));r=!0}}catch(e){}if(r)window.location.reload();else throw new Error(${X});export {}`}var G2=new RegExp(`^${YJ}/.+\\.m?js$`);function H2(J){return G2.test(J)}function OJ(J){if(H2(J))return new Response(HJ(J),{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store"}});if(R(J))return new Response("Not found",{status:404});return}var Y2=`<!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <head>
5
5
  <meta charset="UTF-8" />
@@ -21,4 +21,4 @@ import{X as k,Y as FJ,Z as LJ,_ as _J}from"./chunk-matvbghh.js";import{pa as N,t
21
21
  </html>`;function w(J,$,Z){if(!Z)console.error(J);else try{Z(J instanceof Error?J:Error(String(J),{cause:J}))}catch(X){console.error(J),console.error(X)}if(T($))return new Response(JSON.stringify({error:VJ("server_error","Internal Server Error",500)}),{status:500,headers:{"Content-Type":"application/json"}});return new Response(Y2,{status:500,headers:{"Content-Type":"text/html; charset=utf-8"}})}var D=UJ(),U2=v(D,"app"),C=v(D,"dist"),M=v(C,"client");function z2(J){let $;try{$=decodeURIComponent(J)}catch{return null}let Z=MJ(M,"."+$.replace("/assets/assets","/assets"));return Z.startsWith(M+IJ)?Z:null}async function x2(J){try{return(await V2(J)).isFile()}catch{return!1}}async function z3(J,$){let Z=await import(`${C}/client/.vite/manifest.json`),X=await import(`${C}/server/.vite/manifest.json`),W=await CJ(`${C}/client`);process.env.ROOT_DIR=D,process.env.APP_DIR=U2,process.env.DIST_DIR=C;let j={},G={},Y={},O={},V={},K=(Q,H)=>`"${Q}": () => import("${H}")`,E=[],y=J.getRequiredViews.call(J);for(let Q of["404",...J.getFlatComponentTree.call(J)]){let H=X[`app/views/${Q}.tsx`];if(!H?.file&&y[Q])throw LJ(Q,y[Q]);if(!H?.file){console.log(`Server file not found for ${Q}`),console.log(H);let x=Object.keys(X),F=`app/views/${Q}.tsx`;console.log(`${F} not found in server manifest`),console.log(x)}let U=await import(`${process.env.DIST_DIR}/server/${H?.file}`);j[Q]=U.default,G[Q]=U.OpenGraph,Y[Q]=U;let z=Z[`app/views/${Q}.tsx`];if(z?.css&&z?.css.length>0)O[Q]=z?.css;if(z)E.push(K(Q,_(z?.file,W))),V[Q]=L(Z,`app/views/${Q}.tsx`,W)}let NJ=`{${E.join(",")}}`,g=QJ(Z,W);if(!g)console.error(`Client manifest has no "${A}" entry \u2014 dist/client is incomplete, so documents will render but never hydrate.`);let PJ=Z["app/client.tsx"]?.css??[],f=(await Promise.all(PJ.map((Q)=>Bun.file(`${C}/client/${Q}`).text()))).join(`
22
22
  `),AJ=jJ(Z,W),m=O2("sha256").update(await Bun.file(`${C}/client/.vite/manifest.json`).text()).digest("base64url").slice(0,12),u=new Map,RJ=(Q)=>{let H=u.get(Q);if(!H)H=Bun.file(`${C}/client/${Q}`).text(),u.set(Q,H);return H},TJ=async(Q,H)=>{let U=new Set;for(let x of H?[H,...Q]:Q)for(let F of WJ(Z,`app/views/${x}.tsx`))U.add(F);let z=await Promise.all([...U].map(async(x)=>({id:x,content:await RJ(x)})));return k(H?z:[{content:f},...z])},DJ=await $J(M),h=new Map;for(let[Q,H]of Object.entries((await a(M))?.files??{})){let U=MJ(M,Q);if(U.startsWith(M+IJ))h.set(U,{immutable:!0,encodings:H})}async function qJ(Q){let{pathname:H}=new URL(Q.url);if(T(H))return await q(Q,H);let U=z2(H);if(R(H)||H.startsWith("/.well-known")||U!==null&&DJ.has(U)){if(!U||!await x2(U))return OJ(H)??await q(Q,H);try{return await ZJ(Q,U,h.get(U))}catch(F){return J.onException?.(F),new Response("Not found",{status:404})}}let x=await q(Q,H);if(H.endsWith(".json"))try{x.headers.set(GJ,m)}catch{}return x}async function q(Q,H){let U=J.fetch.bind(J);try{let z=await U(Q);if(z instanceof Response)return z;else{let x=[];return x.push({content:f}),await z({getStyles:async(bJ,p)=>{let d=bJ??["404"];if(p?.static)return TJ(d,p.layout);for(let wJ of d){let kJ=Z[`app/views/${wJ}.tsx`];for(let l of kJ?.css??[]){let vJ=Bun.file(`${process.env.DIST_DIR}/client/${l}`);x.push({id:l,content:await vJ.text()})}}return k(x)},clientEntry:g,modulePreloadManifest:V,loaders:NJ,viewImportMap:j,viewModules:Y,ogMap:G,cssManifest:O,assetBase:W,resolveIsland:AJ,buildId:m})}}catch(z){return w(z,H,J.onException)}}let BJ=(process.env.GEMI_COMPRESSION??"auto").toLowerCase()!=="off",c=zJ(process.env.GEMI_TRUST_PROXY),SJ=KJ(process.env),I=J.sockets();if(I&&c.kind==="none"&&!SJ)console.warn("[gemi] Broadcast sockets: GEMI_TRUST_PROXY is not set, so a socket's address is its TCP peer. Behind a proxy or load balancer every client shares the proxy's address, and broadcast.maxConnectionsPerIp caps the whole app per process. Set GEMI_TRUST_PROXY (see forwardedFor) or raise that limit.");let B=Bun.serve({maxRequestBodySize:10737418240,fetch:async(Q,H)=>{if(xJ(Q.headers,H.requestIP(Q)?.address??null,c),J.applyTrustedClientIp(Q),I?.matches(Q))return I.upgrade(Q,H);let U=await $(Q,(z)=>J.withGlobalMiddleware(z,qJ,(x)=>w(x,new URL(z.url).pathname,J.onException)));return BJ?o(Q,U):U},idleTimeout:_J(),port:process.env.PORT||5173,websocket:I?.websocket});return await I?.start(B),FJ({port:B.port,rootDir:D}),B}export{z3 as httpProd};
23
23
 
24
- //# debugId=F9EA5D5856AB34CF64756E2164756E21
24
+ //# debugId=BE2043B42E2A5DFC64756E2164756E21
@@ -13,6 +13,6 @@
13
13
  "import { stringEraRefusal } from \"../http/Error\";\nimport { isApiPath } from \"../services/router/apiPath\";\n\n// The production server's last resort: an error nothing on the way here turned\n// into a response. Request breakers (auth, 404s, 416s) are answered by the\n// dispatchers before this, so what arrives is a genuine failure — and its\n// message and stack are for the developer, not for whoever triggered it. They\n// can carry absolute paths, dependency versions, SQL fragments and column\n// names. The dev server renders them on purpose (`httpDev.ts`); this does not.\n\nconst GENERIC_500_HTML = `<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Internal Server Error</title>\n <style>\n body { font-family: system-ui, sans-serif; margin: 0; min-height: 100vh; display: grid; place-items: center; }\n main { text-align: center; padding: 16px; }\n h1 { font-size: 1.5rem; margin: 0 0 0.5rem; }\n p { margin: 0; opacity: 0.7; }\n </style>\n </head>\n <body>\n <main>\n <h1>Something went wrong</h1>\n <p>Please try again later.</p>\n </main>\n </body>\n</html>`;\n\nexport function unhandledErrorResponse(\n err: unknown,\n pathname: string,\n onException?: (error: Error) => void,\n): Response {\n // `onException` is the report, and the default one `App` installs is a\n // `console.error`, so logging here as well printed every failure twice\n // (three times for `/api`, whose dispatcher logs before rethrowing). Only\n // without a reporter does this log itself.\n //\n // Reported for `/api` too: an app's error tracking should see an API failure\n // that got this far, not only a page one. `onRequestFail` is a different\n // hook (route config, called by the dispatchers), so this is not a second\n // report through the same channel.\n if (!onException) {\n console.error(err);\n } else {\n try {\n // The hook is typed to receive an `Error`; a thrown string or object is\n // wrapped so a reporter reading `.stack` or `.name` gets one.\n onException(err instanceof Error ? err : new Error(String(err), { cause: err }));\n } catch (reportError) {\n // A broken reporter must not turn a 500 into a leaked stack either.\n console.error(err);\n console.error(reportError);\n }\n }\n\n if (isApiPath(pathname)) {\n return new Response(\n JSON.stringify({ error: stringEraRefusal(\"server_error\", \"Internal Server Error\", 500) }),\n {\n status: 500,\n headers: { \"Content-Type\": \"application/json\" },\n },\n );\n }\n\n return new Response(GENERIC_500_HTML, {\n status: 500,\n headers: { \"Content-Type\": \"text/html; charset=utf-8\" },\n });\n}\n"
14
14
  ],
15
15
  "mappings": "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",
16
- "debugId": "F9EA5D5856AB34CF64756E2164756E21",
16
+ "debugId": "BE2043B42E2A5DFC64756E2164756E21",
17
17
  "names": []
18
18
  }
@@ -29,6 +29,6 @@ export { h } from ${JSON.stringify("virtual:gemi-island-runtime")};
29
29
  import { hydrateRoot } from "react-dom/client";
30
30
  export ${z}
31
31
  `,Q='const d=document,c=JSON.parse(d.getElementById("gemi-islands").textContent),w=f=>(window.requestIdleCallback||setTimeout)(f),m=(e,o)=>{if(!e.g){e.g=1;import(o.s).then(x=>x.h(e,x.m[o.e])).catch(r=>console.error(r))}};for(const e of d.querySelectorAll("gemi-island")){const o=c.i[e.dataset.island];if(!o)continue;if(o.l=="eager")m(e,o);else if(o.l=="idle"||!window.IntersectionObserver||!e.children.length)w(()=>m(e,o));else{const v=new IntersectionObserver(n=>{if(n.some(x=>x.isIntersecting)){v.disconnect();m(e,o)}});for(const k of e.children)v.observe(k)}}';
32
- export{B as gl,F as hl,G as il,J as jl,M as kl,Q as ll};
32
+ export{B as hl,F as il,G as jl,J as kl,M as ll,Q as ml};
33
33
 
34
- //# debugId=BEE41570B4B6D2B464756E2164756E21
34
+ //# debugId=21D792DB7612EAAA64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "/**\n * The browser side of islands, shared by the Vite plugin (which builds it), the\n * servers (which point the loader at it) and the tests.\n *\n * No imports: the Vite plugin is built on its own and the servers load it at\n * boot, so this file stays plain strings.\n */\n\n/**\n * The module that hydrates islands: React, `react-dom/client` and the small\n * `h(marker, Component)` below. A virtual module of gemi's Vite plugin that\n * every island entry imports, so the islands on a page share one copy of\n * React, in one chunk.\n */\nexport const ISLAND_RUNTIME_ID = \"virtual:gemi-island-runtime\";\n\n/** What `resolveId` turns `ISLAND_RUNTIME_ID` into (Vite's virtual-module convention). */\nexport const RESOLVED_ISLAND_RUNTIME_ID = `\\0${ISLAND_RUNTIME_ID}`;\n\n/**\n * The query that turns a module into its island entry: `Counter.tsx?gemi-island`\n * is a module of the plugin's that re-exports `Counter.tsx` as `m` next to the\n * runtime's `h`. It is what a static page imports for an island, and so it\n * is what the client manifest lists, keyed `app/…/Counter.tsx?gemi-island`,\n * with React and `react-dom/client` among its imports.\n */\nexport const ISLAND_ENTRY_QUERY = \"?gemi-island\";\n\n/** The island entry module for `file` (an absolute path or a root-relative URL). */\nexport function islandEntrySource(file: string) {\n return `import * as m from ${JSON.stringify(file)};\nexport { m };\nexport { h } from ${JSON.stringify(ISLAND_RUNTIME_ID)};\n`;\n}\n\n/**\n * `h(marker, Component)`: hydrates one `<gemi-island>` marker with the island's\n * component and the props the server serialised into `data-props`.\n *\n * The island's static children were rendered on the server into a\n * `<gemi-slot>` (the first one that belongs to this marker, not to an island\n * nested in it). They are handed back to the component as that same element\n * with the server's HTML, so hydration matches and React leaves them alone.\n *\n * `data-uid` is the `identifierPrefix` the server rendered the island with, so\n * `useId` agrees on both sides and two islands never share an id.\n *\n * Written as a function body with `createElement` and `hydrateRoot` free, so a\n * test can run it against real React without a bundler.\n */\nexport const ISLAND_HYDRATE_SOURCE = `function h(marker, Component) {\n if (typeof Component !== \"function\" && (typeof Component !== \"object\" || Component === null)) {\n throw new Error(\"gemi: island module has no component export for \" + marker.outerHTML.slice(0, 80));\n }\n const json = marker.getAttribute(\"data-props\");\n const props = json ? JSON.parse(json) : {};\n let slot = null;\n for (const candidate of marker.querySelectorAll(\"gemi-slot\")) {\n if (candidate.closest(\"gemi-island\") === marker) {\n slot = candidate;\n break;\n }\n }\n const children = slot\n ? [createElement(\"gemi-slot\", {\n style: { display: \"contents\" },\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: { __html: slot.innerHTML },\n })]\n : [];\n return hydrateRoot(marker, createElement(Component, props, ...children), {\n identifierPrefix: marker.getAttribute(\"data-uid\") || undefined,\n });\n}`;\n\n/** The runtime module's source, as the plugin serves and builds it. */\nexport const ISLAND_RUNTIME_SOURCE = `import { createElement } from \"react\";\nimport { hydrateRoot } from \"react-dom/client\";\nexport ${ISLAND_HYDRATE_SOURCE}\n`;\n\n/**\n * The island loader, inlined into a static document that uses islands.\n *\n * Kept byte-for-byte constant (the per-page island table travels in a\n * separate `<script type=\"application/json\">`, which a Content Security Policy\n * does not treat as script), so a strict policy can allow it by hash:\n * `script-src 'sha256-…'` with `ISLAND_LOADER_CSP_HASH`. Everything it loads\n * is a plain `import()` of a same-origin (or asset-base) file.\n *\n * The table is `{ i: [{ s: entry URL, e: export, l: load }] }` and each\n * marker's `data-island` indexes `i`. Per marker, on its schedule: import the\n * island's entry (the module as `m`, the runtime's `h`), then\n * `h(marker, m[export])`, which calls `hydrateRoot`. A failure is logged and\n * leaves the server-rendered markup in place.\n */\nexport const ISLAND_LOADER_SOURCE =\n 'const d=document,c=JSON.parse(d.getElementById(\"gemi-islands\").textContent),' +\n \"w=f=>(window.requestIdleCallback||setTimeout)(f),\" +\n \"m=(e,o)=>{if(!e.g){e.g=1;import(o.s).then(x=>x.h(e,x.m[o.e])).catch(r=>console.error(r))}};\" +\n 'for(const e of d.querySelectorAll(\"gemi-island\")){const o=c.i[e.dataset.island];if(!o)continue;' +\n 'if(o.l==\"eager\")m(e,o);else if(o.l==\"idle\"||!window.IntersectionObserver||!e.children.length)w(()=>m(e,o));' +\n \"else{const v=new IntersectionObserver(n=>{if(n.some(x=>x.isIntersecting)){v.disconnect();m(e,o)}});for(const k of e.children)v.observe(k)}}\";\n"
6
6
  ],
7
7
  "mappings": ";AAcO,IAAM,EAAoB,8BAGpB,EAA6B,kCAS7B,EAAqB,eAG3B,SAAS,CAAiB,CAAC,EAAc,CAC9C,MAAO,sBAAsB,KAAK,UAAU,CAAI;AAAA;AAAA,oBAE9B,KAAK,UAlBQ,6BAkBmB;AAAA,EAmB7C,IAAM,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0BxB,EAAwB;AAAA;AAAA,SAE5B;AAAA,EAkBI,EACX",
8
- "debugId": "BEE41570B4B6D2B464756E2164756E21",
8
+ "debugId": "21D792DB7612EAAA64756E2164756E21",
9
9
  "names": []
10
10
  }