gemi 0.186.1 → 0.188.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 (239) hide show
  1. package/dist/ai/index.js +2 -2
  2. package/dist/ai/index.js.map +1 -1
  3. package/dist/app/index.js +1 -1
  4. package/dist/bin/gemi.js +7 -1
  5. package/dist/bin/gemi.js.map +3 -3
  6. package/dist/bun/plugin.js +1 -1
  7. package/dist/bun/preload.js +1 -1
  8. package/dist/{chunk-hq710s2a.js → chunk-07mvnzgx.js} +3 -3
  9. package/dist/{chunk-hq710s2a.js.map → chunk-07mvnzgx.js.map} +1 -1
  10. package/dist/{chunk-87pn20z5.js → chunk-0sjz2g5b.js} +2 -2
  11. package/dist/{chunk-87pn20z5.js.map → chunk-0sjz2g5b.js.map} +1 -1
  12. package/dist/{chunk-7tm669mw.js → chunk-0t5mex63.js} +2 -2
  13. package/dist/{chunk-7tm669mw.js.map → chunk-0t5mex63.js.map} +1 -1
  14. package/dist/{chunk-beqhakdf.js → chunk-1mg3x0j0.js} +2 -2
  15. package/dist/{chunk-beqhakdf.js.map → chunk-1mg3x0j0.js.map} +1 -1
  16. package/dist/{chunk-2qac05gb.js → chunk-1p7p76er.js} +2 -2
  17. package/dist/{chunk-2qac05gb.js.map → chunk-1p7p76er.js.map} +1 -1
  18. package/dist/{chunk-wtdmwmm7.js → chunk-24vv42t6.js} +3 -3
  19. package/dist/{chunk-wtdmwmm7.js.map → chunk-24vv42t6.js.map} +1 -1
  20. package/dist/{chunk-spmxhsze.js → chunk-2tfafjmk.js} +2 -2
  21. package/dist/{chunk-spmxhsze.js.map → chunk-2tfafjmk.js.map} +1 -1
  22. package/dist/{chunk-xmjzyzn6.js → chunk-3kd3w33a.js} +2 -2
  23. package/dist/{chunk-xmjzyzn6.js.map → chunk-3kd3w33a.js.map} +1 -1
  24. package/dist/{chunk-dh4ax9cj.js → chunk-4x22y92r.js} +2 -2
  25. package/dist/{chunk-dh4ax9cj.js.map → chunk-4x22y92r.js.map} +1 -1
  26. package/dist/chunk-4xpcx3ws.js +15 -0
  27. package/dist/{chunk-zenfs4e2.js.map → chunk-4xpcx3ws.js.map} +7 -6
  28. package/dist/{chunk-dezd1fn5.js → chunk-4xtefwwa.js} +2 -2
  29. package/dist/{chunk-dezd1fn5.js.map → chunk-4xtefwwa.js.map} +1 -1
  30. package/dist/{chunk-cf5a958j.js → chunk-4zwnmk3c.js} +2 -2
  31. package/dist/{chunk-cf5a958j.js.map → chunk-4zwnmk3c.js.map} +1 -1
  32. package/dist/{chunk-przahq2e.js → chunk-5zgkh1xp.js} +2 -2
  33. package/dist/{chunk-przahq2e.js.map → chunk-5zgkh1xp.js.map} +1 -1
  34. package/dist/{chunk-ye72q3kx.js → chunk-6dtq4h9p.js} +2 -2
  35. package/dist/{chunk-ye72q3kx.js.map → chunk-6dtq4h9p.js.map} +1 -1
  36. package/dist/{chunk-q6rse2fh.js → chunk-6s6cek6k.js} +2 -2
  37. package/dist/{chunk-q6rse2fh.js.map → chunk-6s6cek6k.js.map} +1 -1
  38. package/dist/{chunk-zyzhqnbm.js → chunk-74n9paen.js} +2 -2
  39. package/dist/{chunk-zyzhqnbm.js.map → chunk-74n9paen.js.map} +1 -1
  40. package/dist/{chunk-7dhvb6nn.js → chunk-7s6gdgwx.js} +2 -2
  41. package/dist/{chunk-7dhvb6nn.js.map → chunk-7s6gdgwx.js.map} +1 -1
  42. package/dist/{chunk-a1414jdv.js → chunk-80cwastb.js} +3 -3
  43. package/dist/{chunk-a1414jdv.js.map → chunk-80cwastb.js.map} +1 -1
  44. package/dist/{chunk-vhyabcw9.js → chunk-88508q02.js} +2 -2
  45. package/dist/{chunk-vhyabcw9.js.map → chunk-88508q02.js.map} +1 -1
  46. package/dist/{chunk-kzv3v0tm.js → chunk-8a72czrb.js} +3 -3
  47. package/dist/{chunk-kzv3v0tm.js.map → chunk-8a72czrb.js.map} +1 -1
  48. package/dist/chunk-8bp5s118.js +117 -0
  49. package/dist/{chunk-5y6e8kpe.js.map → chunk-8bp5s118.js.map} +14 -7
  50. package/dist/{chunk-bg2e7stx.js → chunk-9ep490s9.js} +2 -2
  51. package/dist/{chunk-bg2e7stx.js.map → chunk-9ep490s9.js.map} +1 -1
  52. package/dist/{chunk-87nekrjj.js → chunk-attv9byj.js} +2 -2
  53. package/dist/{chunk-87nekrjj.js.map → chunk-attv9byj.js.map} +1 -1
  54. package/dist/{chunk-a1r1r1z7.js → chunk-babcg0fq.js} +2 -2
  55. package/dist/{chunk-a1r1r1z7.js.map → chunk-babcg0fq.js.map} +1 -1
  56. package/dist/{chunk-c07s6w45.js → chunk-bmckdsec.js} +1 -1
  57. package/dist/{chunk-d5ftst76.js → chunk-bwh1n2cj.js} +2 -2
  58. package/dist/{chunk-d5ftst76.js.map → chunk-bwh1n2cj.js.map} +1 -1
  59. package/dist/{chunk-3jpj6hjh.js → chunk-cbjjg80m.js} +1 -1
  60. package/dist/{chunk-2c2n3v4k.js → chunk-cbp8xrsn.js} +2 -2
  61. package/dist/{chunk-2c2n3v4k.js.map → chunk-cbp8xrsn.js.map} +1 -1
  62. package/dist/{chunk-vvwhk2sb.js → chunk-cr37wx3s.js} +2 -2
  63. package/dist/{chunk-vvwhk2sb.js.map → chunk-cr37wx3s.js.map} +1 -1
  64. package/dist/{chunk-srsmhbpt.js → chunk-cr9rd0v4.js} +2 -2
  65. package/dist/{chunk-srsmhbpt.js.map → chunk-cr9rd0v4.js.map} +1 -1
  66. package/dist/{chunk-kcvzs31p.js → chunk-czw7kqtp.js} +2 -2
  67. package/dist/{chunk-kcvzs31p.js.map → chunk-czw7kqtp.js.map} +1 -1
  68. package/dist/{chunk-f2tjtwm0.js → chunk-dm61gz7e.js} +2 -2
  69. package/dist/{chunk-f2tjtwm0.js.map → chunk-dm61gz7e.js.map} +1 -1
  70. package/dist/{chunk-2rpz1p8g.js → chunk-e6k0024c.js} +1 -1
  71. package/dist/{chunk-nadkwh8a.js → chunk-edj701p0.js} +3 -3
  72. package/dist/{chunk-nadkwh8a.js.map → chunk-edj701p0.js.map} +1 -1
  73. package/dist/{chunk-3derdn99.js → chunk-fg1mpyp9.js} +2 -2
  74. package/dist/{chunk-3derdn99.js.map → chunk-fg1mpyp9.js.map} +1 -1
  75. package/dist/{chunk-z65e3vdy.js → chunk-gcjjwgnt.js} +2 -2
  76. package/dist/{chunk-z65e3vdy.js.map → chunk-gcjjwgnt.js.map} +1 -1
  77. package/dist/{chunk-mpt1zsfv.js → chunk-gtbjdx8d.js} +2 -2
  78. package/dist/{chunk-mpt1zsfv.js.map → chunk-gtbjdx8d.js.map} +1 -1
  79. package/dist/chunk-h3jxnd65.js +5 -0
  80. package/dist/{chunk-f25x1sn1.js.map → chunk-h3jxnd65.js.map} +1 -1
  81. package/dist/{chunk-mpreff3t.js → chunk-jmgjhfya.js} +2 -2
  82. package/dist/{chunk-mpreff3t.js.map → chunk-jmgjhfya.js.map} +1 -1
  83. package/dist/{chunk-96r16t57.js → chunk-jsbq8qq0.js} +3 -3
  84. package/dist/{chunk-96r16t57.js.map → chunk-jsbq8qq0.js.map} +1 -1
  85. package/dist/{chunk-gtdf51jz.js → chunk-k4c0q1za.js} +1 -1
  86. package/dist/{chunk-6daabbfj.js → chunk-kcgbb7cd.js} +2 -2
  87. package/dist/{chunk-6daabbfj.js.map → chunk-kcgbb7cd.js.map} +1 -1
  88. package/dist/{chunk-84j5b07n.js → chunk-kjtq7vk3.js} +1 -1
  89. package/dist/{chunk-ty3kycy4.js → chunk-kkymwxt2.js} +2 -2
  90. package/dist/{chunk-ty3kycy4.js.map → chunk-kkymwxt2.js.map} +1 -1
  91. package/dist/{chunk-vv8vjjez.js → chunk-ktgmrjj3.js} +2 -2
  92. package/dist/{chunk-vv8vjjez.js.map → chunk-ktgmrjj3.js.map} +1 -1
  93. package/dist/{chunk-7gnspwra.js → chunk-kzny5cj2.js} +2 -2
  94. package/dist/{chunk-7gnspwra.js.map → chunk-kzny5cj2.js.map} +1 -1
  95. package/dist/{chunk-yx03gndz.js → chunk-m8y3y6sw.js} +2 -2
  96. package/dist/{chunk-yx03gndz.js.map → chunk-m8y3y6sw.js.map} +1 -1
  97. package/dist/{chunk-g32mpf79.js → chunk-ma2sders.js} +2 -2
  98. package/dist/{chunk-g32mpf79.js.map → chunk-ma2sders.js.map} +1 -1
  99. package/dist/{chunk-rdnxkecg.js → chunk-mx4z8c6r.js} +2 -2
  100. package/dist/{chunk-rdnxkecg.js.map → chunk-mx4z8c6r.js.map} +1 -1
  101. package/dist/{chunk-vvg3yxrc.js → chunk-n0mjy9ep.js} +2 -2
  102. package/dist/{chunk-vvg3yxrc.js.map → chunk-n0mjy9ep.js.map} +1 -1
  103. package/dist/{chunk-ecv4mtgh.js → chunk-n1b6r6s9.js} +2 -2
  104. package/dist/{chunk-ecv4mtgh.js.map → chunk-n1b6r6s9.js.map} +1 -1
  105. package/dist/{chunk-fdpvgeey.js → chunk-n28c9xjp.js} +2 -2
  106. package/dist/{chunk-fdpvgeey.js.map → chunk-n28c9xjp.js.map} +1 -1
  107. package/dist/{chunk-d9pnjkxr.js → chunk-nbfzyvav.js} +2 -2
  108. package/dist/{chunk-d9pnjkxr.js.map → chunk-nbfzyvav.js.map} +1 -1
  109. package/dist/{chunk-tckf3g8x.js → chunk-p9rf0e8r.js} +2 -2
  110. package/dist/{chunk-tckf3g8x.js.map → chunk-p9rf0e8r.js.map} +1 -1
  111. package/dist/{chunk-00sj67nx.js → chunk-pchb1awj.js} +2 -2
  112. package/dist/{chunk-00sj67nx.js.map → chunk-pchb1awj.js.map} +1 -1
  113. package/dist/{chunk-9mf6qzxy.js → chunk-ph793v5g.js} +2 -2
  114. package/dist/{chunk-9mf6qzxy.js.map → chunk-ph793v5g.js.map} +1 -1
  115. package/dist/{chunk-p4bbsa4x.js → chunk-q8zhfe2s.js} +2 -2
  116. package/dist/{chunk-p4bbsa4x.js.map → chunk-q8zhfe2s.js.map} +1 -1
  117. package/dist/{chunk-7bz43qbt.js → chunk-q9b0ndf0.js} +3 -3
  118. package/dist/{chunk-7bz43qbt.js.map → chunk-q9b0ndf0.js.map} +1 -1
  119. package/dist/{chunk-6d3527qt.js → chunk-r5cddkyc.js} +2 -2
  120. package/dist/{chunk-6d3527qt.js.map → chunk-r5cddkyc.js.map} +1 -1
  121. package/dist/{chunk-krgwft9w.js → chunk-sbhpdhwc.js} +2 -2
  122. package/dist/{chunk-krgwft9w.js.map → chunk-sbhpdhwc.js.map} +1 -1
  123. package/dist/{chunk-0ahecas6.js → chunk-scscdtd6.js} +2 -2
  124. package/dist/{chunk-0ahecas6.js.map → chunk-scscdtd6.js.map} +1 -1
  125. package/dist/{chunk-6tferehw.js → chunk-t201nja2.js} +2 -2
  126. package/dist/{chunk-6tferehw.js.map → chunk-t201nja2.js.map} +1 -1
  127. package/dist/{chunk-skq4g7qa.js → chunk-tfvdrvbn.js} +2 -2
  128. package/dist/{chunk-skq4g7qa.js.map → chunk-tfvdrvbn.js.map} +1 -1
  129. package/dist/{chunk-810nrvt4.js → chunk-v6ewt7tc.js} +2 -2
  130. package/dist/{chunk-810nrvt4.js.map → chunk-v6ewt7tc.js.map} +1 -1
  131. package/dist/{chunk-xgg9w7ep.js → chunk-vmax8gjr.js} +2 -2
  132. package/dist/{chunk-xgg9w7ep.js.map → chunk-vmax8gjr.js.map} +1 -1
  133. package/dist/{chunk-h2t135y3.js → chunk-vpms0v5m.js} +3 -3
  134. package/dist/{chunk-h2t135y3.js.map → chunk-vpms0v5m.js.map} +1 -1
  135. package/dist/{chunk-z2k8m02z.js → chunk-vqrqzfyw.js} +8 -2
  136. package/dist/chunk-vqrqzfyw.js.map +10 -0
  137. package/dist/{chunk-64r5cs5g.js → chunk-vyqk7de0.js} +1 -1
  138. package/dist/{chunk-b55zt46z.js → chunk-wk84z25h.js} +2 -2
  139. package/dist/{chunk-b55zt46z.js.map → chunk-wk84z25h.js.map} +1 -1
  140. package/dist/{chunk-m906xc76.js → chunk-yp4rbknt.js} +2 -2
  141. package/dist/{chunk-m906xc76.js.map → chunk-yp4rbknt.js.map} +1 -1
  142. package/dist/{chunk-tvkdqnhv.js → chunk-yqf1k3kb.js} +3 -3
  143. package/dist/{chunk-tvkdqnhv.js.map → chunk-yqf1k3kb.js.map} +1 -1
  144. package/dist/{chunk-xjb2kzkj.js → chunk-zck41hz4.js} +4 -4
  145. package/dist/{chunk-xjb2kzkj.js.map → chunk-zck41hz4.js.map} +1 -1
  146. package/dist/{chunk-3fm7gmp5.js → chunk-zjr8kgbg.js} +2 -2
  147. package/dist/{chunk-3fm7gmp5.js.map → chunk-zjr8kgbg.js.map} +1 -1
  148. package/dist/{chunk-7b10n8m8.js → chunk-zqcaqwey.js} +2 -2
  149. package/dist/{chunk-7b10n8m8.js.map → chunk-zqcaqwey.js.map} +1 -1
  150. package/dist/{chunk-yaacfbky.js → chunk-zrndnz4n.js} +2 -2
  151. package/dist/{chunk-yaacfbky.js.map → chunk-zrndnz4n.js.map} +1 -1
  152. package/dist/chunks/{RealtimeClient-C7VTiRUv.js → RealtimeClient-CyGWZr6p.js} +2 -2
  153. package/dist/chunks/{RealtimeClient-C7VTiRUv.js.map → RealtimeClient-CyGWZr6p.js.map} +1 -1
  154. package/dist/chunks/{ThemeProvider-Ddumzd7S.js → ThemeProvider-BnmnRvEc.js} +53 -34
  155. package/dist/chunks/ThemeProvider-BnmnRvEc.js.map +1 -0
  156. package/dist/chunks/{fetchFileRequest-ClV8HU3g.js → fetchFileRequest-D4fAcY7D.js} +2 -2
  157. package/dist/chunks/{fetchFileRequest-ClV8HU3g.js.map → fetchFileRequest-D4fAcY7D.js.map} +1 -1
  158. package/dist/chunks/{live-BAFgp_WN.js → live-B4RW02g2.js} +3 -3
  159. package/dist/chunks/{live-BAFgp_WN.js.map → live-B4RW02g2.js.map} +1 -1
  160. package/dist/chunks/{mutationExtras-ozY1Rd1R.js → mutationExtras-DgdYjcaa.js} +2 -2
  161. package/dist/chunks/{mutationExtras-ozY1Rd1R.js.map → mutationExtras-DgdYjcaa.js.map} +1 -1
  162. package/dist/chunks/{subscriptionStream-CTiRok5u.js → subscriptionStream-Ca5V54ee.js} +2 -2
  163. package/dist/chunks/{subscriptionStream-CTiRok5u.js.map → subscriptionStream-Ca5V54ee.js.map} +1 -1
  164. package/dist/client/QueryManagerContext.d.ts +17 -1
  165. package/dist/client/QueryManagerContext.d.ts.map +1 -1
  166. package/dist/client/ServerQueryContext.d.ts +10 -4
  167. package/dist/client/ServerQueryContext.d.ts.map +1 -1
  168. package/dist/client/index.js +27 -25
  169. package/dist/client/index.js.map +1 -1
  170. package/dist/client/islands.d.ts +47 -2
  171. package/dist/client/islands.d.ts.map +1 -1
  172. package/dist/client/useQuery.d.ts.map +1 -1
  173. package/dist/config/index.js +1 -1
  174. package/dist/console/run.js +2 -2
  175. package/dist/console/run.js.map +1 -1
  176. package/dist/container/index.js +2 -2
  177. package/dist/container/index.js.map +1 -1
  178. package/dist/database/index.js +2 -2
  179. package/dist/database/index.js.map +1 -1
  180. package/dist/email/index.js +2 -2
  181. package/dist/email/index.js.map +1 -1
  182. package/dist/facades/Storage.d.ts +6 -0
  183. package/dist/facades/Storage.d.ts.map +1 -1
  184. package/dist/facades/index.js +2 -2
  185. package/dist/facades/index.js.map +1 -1
  186. package/dist/foundation/index.js +2 -2
  187. package/dist/foundation/index.js.map +1 -1
  188. package/dist/http/index.js +2 -2
  189. package/dist/http/index.js.map +1 -1
  190. package/dist/i18n/dictionaryRuntime.js +2 -2
  191. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  192. package/dist/i18n/index.js +2 -2
  193. package/dist/i18n/index.js.map +1 -1
  194. package/dist/internal/islandRuntime.d.ts +9 -2
  195. package/dist/internal/islandRuntime.d.ts.map +1 -1
  196. package/dist/kernel/index.js +2 -2
  197. package/dist/kernel/index.js.map +1 -1
  198. package/dist/orm/index.js +2 -2
  199. package/dist/orm/index.js.map +1 -1
  200. package/dist/probe/index.js +2 -2
  201. package/dist/probe/index.js.map +1 -1
  202. package/dist/server/index.js +2 -2
  203. package/dist/server/index.js.map +1 -1
  204. package/dist/services/file-storage/FilesystemManager.d.ts +4 -0
  205. package/dist/services/file-storage/FilesystemManager.d.ts.map +1 -1
  206. package/dist/services/file-storage/config.d.ts +16 -0
  207. package/dist/services/file-storage/config.d.ts.map +1 -1
  208. package/dist/services/file-storage/fetchTimeouts.d.ts +41 -0
  209. package/dist/services/file-storage/fetchTimeouts.d.ts.map +1 -0
  210. package/dist/services/index.d.ts +1 -0
  211. package/dist/services/index.d.ts.map +1 -1
  212. package/dist/services/index.js +3 -3
  213. package/dist/services/index.js.map +2 -2
  214. package/dist/services/queue/work.js +2 -2
  215. package/dist/services/queue/work.js.map +1 -1
  216. package/dist/services/router/ServerQueryStore.d.ts +10 -0
  217. package/dist/services/router/ServerQueryStore.d.ts.map +1 -1
  218. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  219. package/dist/services/router/staticDocument.d.ts +8 -0
  220. package/dist/services/router/staticDocument.d.ts.map +1 -1
  221. package/dist/stats/route-table.js +1 -1
  222. package/dist/support/index.js +2 -2
  223. package/dist/support/index.js.map +1 -1
  224. package/dist/testing/index.js +15 -2
  225. package/dist/testing/index.js.map +1 -1
  226. package/dist/vite/index.mjs +6 -0
  227. package/dist/vitest/index.js +1 -1
  228. package/package.json +1 -1
  229. package/dist/chunk-5y6e8kpe.js +0 -117
  230. package/dist/chunk-f25x1sn1.js +0 -5
  231. package/dist/chunk-z2k8m02z.js.map +0 -10
  232. package/dist/chunk-zenfs4e2.js +0 -15
  233. package/dist/chunks/ThemeProvider-Ddumzd7S.js.map +0 -1
  234. /package/dist/{chunk-c07s6w45.js.map → chunk-bmckdsec.js.map} +0 -0
  235. /package/dist/{chunk-3jpj6hjh.js.map → chunk-cbjjg80m.js.map} +0 -0
  236. /package/dist/{chunk-2rpz1p8g.js.map → chunk-e6k0024c.js.map} +0 -0
  237. /package/dist/{chunk-gtdf51jz.js.map → chunk-k4c0q1za.js.map} +0 -0
  238. /package/dist/{chunk-84j5b07n.js.map → chunk-kjtq7vk3.js.map} +0 -0
  239. /package/dist/{chunk-64r5cs5g.js.map → chunk-vyqk7de0.js.map} +0 -0
@@ -33,6 +33,12 @@ export { h } from ${JSON.stringify("virtual:gemi-island-runtime")};
33
33
  value: { currentLocale: payload.currentLocale, defaultLocale: payload.defaultLocale, timeZone: payload.timeZone },
34
34
  }, element);
35
35
  }
36
+ const cache = globalThis[Symbol.for("gemi.islandQueries")];
37
+ if (cache) {
38
+ const queries = document.getElementById("gemi-island-queries");
39
+ if (queries) cache.seed((queries.p = queries.p || JSON.parse(queries.textContent)));
40
+ element = createElement(cache.Provider, null, element);
41
+ }
36
42
  return hydrateRoot(marker, element, {
37
43
  identifierPrefix: marker.getAttribute("data-uid") || undefined,
38
44
  });
@@ -40,6 +46,6 @@ export { h } from ${JSON.stringify("virtual:gemi-island-runtime")};
40
46
  import { hydrateRoot } from "react-dom/client";
41
47
  export ${z}
42
48
  `,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)}}';
43
- export{B as nl,F as ol,G as pl,J as ql,M as rl,Q as sl};
49
+ export{B as pl,F as ql,G as rl,J as sl,M as tl,Q as ul};
44
50
 
45
- //# debugId=083CEEFCFD58156F64756E2164756E21
51
+ //# debugId=7F6E2418B01F75FA64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../internal/islandRuntime.ts"],
4
+ "sourcesContent": [
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 * When the page carries `#gemi-island-i18n` (its islands read the page's\n * locale or dictionaries, #1095), the dictionaries in it are seeded into the\n * dictionary registry through `__GEMI_DICT__` and the island's root gets the\n * locale and zone in `IslandI18nContext` (found on `globalThis`, where\n * `gemi/client` puts it), so `useDictionary` resolves synchronously, with the\n * strings the server rendered, and fetches nothing. An island that does not\n * import `gemi/client` has no such context to read, and is left as it was.\n *\n * The island's root reads queries through the cache the page's islands\n * share (found on `globalThis` under `gemi.islandQueries`, where `gemi/client`\n * puts it, #1155). When the page carries `#gemi-island-queries` (its islands\n * read queries the request prefetched), that `{ path: { variantKey: data } }`\n * payload seeds the cache first, so `useQuery` hydrates with the server's\n * data and does not refetch it.\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 let element = createElement(Component, props, ...children);\n const i18n = document.getElementById(\"gemi-island-i18n\");\n const context = globalThis[Symbol.for(\"gemi.islandI18n\")];\n if (i18n && context) {\n const payload = (i18n.p = i18n.p || JSON.parse(i18n.textContent));\n const dictionaries = (self.__GEMI_DICT__ = self.__GEMI_DICT__ || []);\n for (const entry of payload.dictionaries || []) dictionaries.push(entry);\n element = createElement(context.Provider, {\n value: { currentLocale: payload.currentLocale, defaultLocale: payload.defaultLocale, timeZone: payload.timeZone },\n }, element);\n }\n const cache = globalThis[Symbol.for(\"gemi.islandQueries\")];\n if (cache) {\n const queries = document.getElementById(\"gemi-island-queries\");\n if (queries) cache.seed((queries.p = queries.p || JSON.parse(queries.textContent)));\n element = createElement(cache.Provider, null, element);\n }\n return hydrateRoot(marker, element, {\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
+ ],
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,EAkC7C,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA2CxB,EAAwB;AAAA;AAAA,SAE5B;AAAA,EAkBI,EACX",
8
+ "debugId": "7F6E2418B01F75FA64756E2164756E21",
9
+ "names": []
10
+ }