gemi 0.53.0 → 0.54.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 (237) hide show
  1. package/dist/app/index.js +2 -2
  2. package/dist/app/index.js.map +1 -1
  3. package/dist/bin/gemi.js +1456 -5
  4. package/dist/bin/gemi.js.map +9 -5
  5. package/dist/broadcasting/index.js +1 -1
  6. package/dist/bun/plugin.js +2 -2
  7. package/dist/bun/plugin.js.map +1 -1
  8. package/dist/bun/preload.js +2 -2
  9. package/dist/bun/preload.js.map +1 -1
  10. package/dist/{chunk-msz8rngs.js → chunk-004bcmsa.js} +2 -2
  11. package/dist/chunk-004bcmsa.js.map +10 -0
  12. package/dist/chunk-07t0dmdg.js +4 -0
  13. package/dist/{chunk-faa987e4.js.map → chunk-07t0dmdg.js.map} +2 -2
  14. package/dist/{chunk-cg53h5ht.js → chunk-0weeq0ke.js} +2 -2
  15. package/dist/{chunk-cg53h5ht.js.map → chunk-0weeq0ke.js.map} +1 -1
  16. package/dist/chunk-113khwbw.js +5 -0
  17. package/dist/{chunk-2qn472j4.js.map → chunk-113khwbw.js.map} +1 -1
  18. package/dist/{chunk-tmk4zfz9.js → chunk-1sh6kqjn.js} +3 -3
  19. package/dist/{chunk-tmk4zfz9.js.map → chunk-1sh6kqjn.js.map} +1 -1
  20. package/dist/{chunk-2gw6cyyj.js → chunk-1snh7yc4.js} +2 -2
  21. package/dist/{chunk-2gw6cyyj.js.map → chunk-1snh7yc4.js.map} +1 -1
  22. package/dist/chunk-26r8dcxd.js +6 -0
  23. package/dist/{chunk-ffre1z8s.js.map → chunk-26r8dcxd.js.map} +2 -2
  24. package/dist/{chunk-ebcgdv00.js → chunk-2pt6kyn9.js} +3 -3
  25. package/dist/{chunk-ebcgdv00.js.map → chunk-2pt6kyn9.js.map} +1 -1
  26. package/dist/{chunk-1pqfmw5h.js → chunk-2zmz3pjk.js} +3 -3
  27. package/dist/{chunk-1pqfmw5h.js.map → chunk-2zmz3pjk.js.map} +1 -1
  28. package/dist/{chunk-zhsaz9cr.js → chunk-3bw1jk21.js} +1 -1
  29. package/dist/chunk-4qkzdyj7.js +4 -0
  30. package/dist/{chunk-0h3jr9d9.js.map → chunk-4qkzdyj7.js.map} +1 -1
  31. package/dist/{chunk-d1ahbza9.js → chunk-50vm7x98.js} +3 -3
  32. package/dist/{chunk-d1ahbza9.js.map → chunk-50vm7x98.js.map} +1 -1
  33. package/dist/{chunk-qyaqg07q.js → chunk-6j1z2cqt.js} +2 -2
  34. package/dist/{chunk-qyaqg07q.js.map → chunk-6j1z2cqt.js.map} +1 -1
  35. package/dist/chunk-6rhebm18.js +5 -0
  36. package/dist/chunk-6rhebm18.js.map +10 -0
  37. package/dist/{chunk-rq770c71.js → chunk-71m47kad.js} +2 -2
  38. package/dist/{chunk-rq770c71.js.map → chunk-71m47kad.js.map} +1 -1
  39. package/dist/{chunk-0h3jr9d9.js → chunk-7f5ad759.js} +2 -2
  40. package/dist/{chunk-4e61qbp4.js.map → chunk-7f5ad759.js.map} +1 -1
  41. package/dist/chunk-85av4ncy.js +4 -0
  42. package/dist/{chunk-3d3nmr5g.js.map → chunk-85av4ncy.js.map} +2 -2
  43. package/dist/{chunk-23g7qdpg.js → chunk-9taz1h3t.js} +3 -3
  44. package/dist/{chunk-23g7qdpg.js.map → chunk-9taz1h3t.js.map} +1 -1
  45. package/dist/{chunk-ppt296ye.js → chunk-agabw2w1.js} +2 -2
  46. package/dist/{chunk-ppt296ye.js.map → chunk-agabw2w1.js.map} +1 -1
  47. package/dist/{chunk-092pj2j2.js → chunk-bb3zvxsf.js} +3 -3
  48. package/dist/{chunk-092pj2j2.js.map → chunk-bb3zvxsf.js.map} +1 -1
  49. package/dist/{chunk-h7jv3ame.js → chunk-br8ten26.js} +2 -2
  50. package/dist/{chunk-h7jv3ame.js.map → chunk-br8ten26.js.map} +1 -1
  51. package/dist/{chunk-4e61qbp4.js → chunk-bzhtymvv.js} +2 -2
  52. package/dist/{chunk-8p6rqegw.js.map → chunk-bzhtymvv.js.map} +1 -1
  53. package/dist/{chunk-68w225rv.js → chunk-c0wcsmpj.js} +2 -2
  54. package/dist/{chunk-68w225rv.js.map → chunk-c0wcsmpj.js.map} +1 -1
  55. package/dist/{chunk-xsmt86n3.js → chunk-c22vcxty.js} +2 -2
  56. package/dist/{chunk-xsmt86n3.js.map → chunk-c22vcxty.js.map} +1 -1
  57. package/dist/{chunk-07jtzbf0.js → chunk-c2pv3ah8.js} +2 -2
  58. package/dist/{chunk-07jtzbf0.js.map → chunk-c2pv3ah8.js.map} +2 -2
  59. package/dist/{chunk-q09mmr05.js → chunk-cz3szqhq.js} +2 -2
  60. package/dist/{chunk-q09mmr05.js.map → chunk-cz3szqhq.js.map} +1 -1
  61. package/dist/{chunk-69w4egkg.js → chunk-dwx2y7br.js} +4 -4
  62. package/dist/{chunk-69w4egkg.js.map → chunk-dwx2y7br.js.map} +1 -1
  63. package/dist/{chunk-2sfz64xh.js → chunk-dxw8k6f1.js} +2 -2
  64. package/dist/{chunk-2sfz64xh.js.map → chunk-dxw8k6f1.js.map} +1 -1
  65. package/dist/chunk-e3mggavt.js +5 -0
  66. package/dist/chunk-e3mggavt.js.map +11 -0
  67. package/dist/{chunk-j1knf8gv.js → chunk-efsk1wy0.js} +3 -3
  68. package/dist/{chunk-j1knf8gv.js.map → chunk-efsk1wy0.js.map} +1 -1
  69. package/dist/{chunk-t4n25km9.js → chunk-f13f68c0.js} +2 -2
  70. package/dist/{chunk-t4n25km9.js.map → chunk-f13f68c0.js.map} +1 -1
  71. package/dist/{chunk-vv72kw74.js → chunk-f418jh9k.js} +2 -2
  72. package/dist/{chunk-vv72kw74.js.map → chunk-f418jh9k.js.map} +1 -1
  73. package/dist/chunk-f4e7fh95.js +17 -0
  74. package/dist/chunk-f4e7fh95.js.map +14 -0
  75. package/dist/{chunk-ewgv1j8q.js → chunk-fcqc3e3r.js} +2 -2
  76. package/dist/{chunk-ewgv1j8q.js.map → chunk-fcqc3e3r.js.map} +1 -1
  77. package/dist/{chunk-3y9nf09k.js → chunk-g5tj10p8.js} +2 -2
  78. package/dist/{chunk-3y9nf09k.js.map → chunk-g5tj10p8.js.map} +1 -1
  79. package/dist/chunk-gn9zjgep.js +5 -0
  80. package/dist/chunk-gn9zjgep.js.map +10 -0
  81. package/dist/{chunk-5s45prj5.js → chunk-h7mcwfg5.js} +4 -4
  82. package/dist/{chunk-5s45prj5.js.map → chunk-h7mcwfg5.js.map} +1 -1
  83. package/dist/chunk-hk067634.js +4 -0
  84. package/dist/{chunk-vnjvd82s.js.map → chunk-hk067634.js.map} +2 -2
  85. package/dist/{chunk-qx6sahe0.js → chunk-hrrmxreg.js} +2 -2
  86. package/dist/{chunk-qx6sahe0.js.map → chunk-hrrmxreg.js.map} +1 -1
  87. package/dist/{chunk-p22rkf1g.js → chunk-jb022m7n.js} +2 -2
  88. package/dist/{chunk-p22rkf1g.js.map → chunk-jb022m7n.js.map} +1 -1
  89. package/dist/chunk-jb2nst6v.js +4 -0
  90. package/dist/{chunk-6scjrbw7.js.map → chunk-jb2nst6v.js.map} +2 -2
  91. package/dist/{chunk-kxzwem3g.js → chunk-jdgvdddd.js} +2 -2
  92. package/dist/{chunk-kxzwem3g.js.map → chunk-jdgvdddd.js.map} +1 -1
  93. package/dist/{chunk-2yth3kk2.js → chunk-jp4pf3yt.js} +4 -4
  94. package/dist/{chunk-2yth3kk2.js.map → chunk-jp4pf3yt.js.map} +1 -1
  95. package/dist/chunk-k14dmqwh.js +5 -0
  96. package/dist/{chunk-92793zh4.js.map → chunk-k14dmqwh.js.map} +4 -3
  97. package/dist/{chunk-tkv6cw94.js → chunk-k8endm5j.js} +3 -3
  98. package/dist/{chunk-tkv6cw94.js.map → chunk-k8endm5j.js.map} +1 -1
  99. package/dist/chunk-kkkqyvwv.js +81 -0
  100. package/dist/{chunk-ear03axe.js.map → chunk-kkkqyvwv.js.map} +7 -5
  101. package/dist/{chunk-cmq5t8p9.js → chunk-kv2ep453.js} +3 -3
  102. package/dist/{chunk-cmq5t8p9.js.map → chunk-kv2ep453.js.map} +1 -1
  103. package/dist/{chunk-z4q1ty6w.js → chunk-kz39hphm.js} +3 -3
  104. package/dist/{chunk-z4q1ty6w.js.map → chunk-kz39hphm.js.map} +1 -1
  105. package/dist/{chunk-kaxvw75w.js → chunk-ms8qd7da.js} +3 -3
  106. package/dist/{chunk-kaxvw75w.js.map → chunk-ms8qd7da.js.map} +1 -1
  107. package/dist/{chunk-ttzkn1qd.js → chunk-n1tkn8gv.js} +2 -2
  108. package/dist/{chunk-ttzkn1qd.js.map → chunk-n1tkn8gv.js.map} +1 -1
  109. package/dist/chunk-nncwsdzz.js +5 -0
  110. package/dist/chunk-nncwsdzz.js.map +10 -0
  111. package/dist/{chunk-7s1g3v1y.js → chunk-pgjk5ft3.js} +3 -3
  112. package/dist/{chunk-7s1g3v1y.js.map → chunk-pgjk5ft3.js.map} +1 -1
  113. package/dist/{chunk-tztqkat2.js → chunk-r06rxn19.js} +2 -2
  114. package/dist/{chunk-tztqkat2.js.map → chunk-r06rxn19.js.map} +1 -1
  115. package/dist/chunk-r9z5rrk0.js +4 -0
  116. package/dist/{chunk-1ab1ptq5.js.map → chunk-r9z5rrk0.js.map} +2 -2
  117. package/dist/{chunk-h5g05qwb.js → chunk-s6e7cvek.js} +2 -2
  118. package/dist/{chunk-h5g05qwb.js.map → chunk-s6e7cvek.js.map} +1 -1
  119. package/dist/{chunk-qjnv2rkh.js → chunk-sqp7kn7h.js} +3 -3
  120. package/dist/{chunk-qjnv2rkh.js.map → chunk-sqp7kn7h.js.map} +1 -1
  121. package/dist/{chunk-mt2755rs.js → chunk-w6gb9gc5.js} +3 -3
  122. package/dist/{chunk-mt2755rs.js.map → chunk-w6gb9gc5.js.map} +1 -1
  123. package/dist/{chunk-ha7n1c94.js → chunk-xxw0gz4q.js} +2 -2
  124. package/dist/{chunk-ha7n1c94.js.map → chunk-xxw0gz4q.js.map} +1 -1
  125. package/dist/chunk-ywr2vd5r.js +5 -0
  126. package/dist/{chunk-9279y4af.js.map → chunk-ywr2vd5r.js.map} +2 -2
  127. package/dist/{chunk-fbp5vapa.js → chunk-zckj6bs6.js} +3 -3
  128. package/dist/{chunk-fbp5vapa.js.map → chunk-zckj6bs6.js.map} +2 -2
  129. package/dist/chunks/{ThemeProvider-CTX9LOFC.js → ThemeProvider-Bk1eZymb.js} +186 -3
  130. package/dist/chunks/ThemeProvider-Bk1eZymb.js.map +1 -0
  131. package/dist/client/ComponentContext.d.ts.map +1 -1
  132. package/dist/client/DictionarySinkContext.d.ts +10 -0
  133. package/dist/client/DictionarySinkContext.d.ts.map +1 -0
  134. package/dist/client/createRoot.d.ts.map +1 -1
  135. package/dist/client/index.d.ts +2 -0
  136. package/dist/client/index.d.ts.map +1 -1
  137. package/dist/client/index.js +187 -8
  138. package/dist/client/index.js.map +1 -1
  139. package/dist/client/useDictionary.d.ts +34 -0
  140. package/dist/client/useDictionary.d.ts.map +1 -0
  141. package/dist/client/useDictionary.test-d.d.ts +2 -0
  142. package/dist/client/useDictionary.test-d.d.ts.map +1 -0
  143. package/dist/client/useTranslator.d.ts +8 -0
  144. package/dist/client/useTranslator.d.ts.map +1 -1
  145. package/dist/config/index.js +1 -1
  146. package/dist/console/run.js +2 -2
  147. package/dist/console/run.js.map +1 -1
  148. package/dist/container/index.js +2 -2
  149. package/dist/container/index.js.map +1 -1
  150. package/dist/database/index.js +2 -2
  151. package/dist/database/index.js.map +1 -1
  152. package/dist/email/index.js +2 -2
  153. package/dist/email/index.js.map +1 -1
  154. package/dist/facades/Lang.d.ts.map +1 -1
  155. package/dist/facades/index.js +2 -2
  156. package/dist/facades/index.js.map +1 -1
  157. package/dist/foundation/index.js +2 -2
  158. package/dist/foundation/index.js.map +1 -1
  159. package/dist/http/index.js +2 -2
  160. package/dist/http/index.js.map +1 -1
  161. package/dist/i18n/Dictionary.d.ts +7 -0
  162. package/dist/i18n/Dictionary.d.ts.map +1 -1
  163. package/dist/i18n/Translator.d.ts +12 -0
  164. package/dist/i18n/Translator.d.ts.map +1 -1
  165. package/dist/i18n/config.d.ts +6 -0
  166. package/dist/i18n/config.d.ts.map +1 -1
  167. package/dist/i18n/defineDictionary.d.ts +65 -0
  168. package/dist/i18n/defineDictionary.d.ts.map +1 -0
  169. package/dist/i18n/dictionaryRegistry.d.ts +85 -0
  170. package/dist/i18n/dictionaryRegistry.d.ts.map +1 -0
  171. package/dist/i18n/dictionaryRuntime.d.ts +16 -0
  172. package/dist/i18n/dictionaryRuntime.d.ts.map +1 -0
  173. package/dist/i18n/dictionaryRuntime.js +4 -0
  174. package/dist/i18n/dictionaryRuntime.js.map +9 -0
  175. package/dist/i18n/dictionaryShape.d.ts +66 -0
  176. package/dist/i18n/dictionaryShape.d.ts.map +1 -0
  177. package/dist/i18n/dictionarySink.d.ts +31 -0
  178. package/dist/i18n/dictionarySink.d.ts.map +1 -0
  179. package/dist/i18n/index.d.ts +3 -0
  180. package/dist/i18n/index.d.ts.map +1 -1
  181. package/dist/i18n/index.js +2 -2
  182. package/dist/i18n/index.js.map +5 -4
  183. package/dist/i18n/translate.d.ts +21 -0
  184. package/dist/i18n/translate.d.ts.map +1 -0
  185. package/dist/internal/gemiExternals.d.ts +1 -1
  186. package/dist/internal/gemiExternals.d.ts.map +1 -1
  187. package/dist/kernel/index.js +2 -2
  188. package/dist/kernel/index.js.map +2 -2
  189. package/dist/orm/index.js +2 -2
  190. package/dist/orm/index.js.map +2 -2
  191. package/dist/server/index.js +2 -2
  192. package/dist/server/index.js.map +1 -1
  193. package/dist/services/index.js +4 -4
  194. package/dist/services/index.js.map +2 -2
  195. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  196. package/dist/services/router/streamQueryInjection.d.ts +9 -1
  197. package/dist/services/router/streamQueryInjection.d.ts.map +1 -1
  198. package/dist/support/index.js +2 -2
  199. package/dist/support/index.js.map +1 -1
  200. package/dist/testing/index.js +1 -1
  201. package/dist/vite/__vite-browser-external-S5EYS4bz.mjs +7 -0
  202. package/dist/vite/api_vite-DSBC5Nzy.mjs +5 -0
  203. package/dist/vite/browser-DFEUWTkA.mjs +6086 -0
  204. package/dist/vite/build-C0lmnz6d.mjs +5326 -0
  205. package/dist/vite/index.mjs +1349 -1
  206. package/dist/vite/lib-TT6NqN6b.mjs +363 -0
  207. package/dist/vite/lib-U4DF62jt.mjs +48846 -0
  208. package/dist/vite/main-Drp2rSLR.mjs +2123 -0
  209. package/dist/vite/node-BgyIm-M7.mjs +17799 -0
  210. package/dist/vite/node-yGkKTK1d.mjs +789 -0
  211. package/dist/vite/postcss-hCXrlC4m.mjs +3515 -0
  212. package/dist/vite/postcss-import-rYEe0OKc.mjs +448 -0
  213. package/dist/vite/prompt--dNycKSZ-BmZ8jzP_.mjs +889 -0
  214. package/dist/vite/rolldown-runtime-B4lejLz5.mjs +37 -0
  215. package/package.json +3 -1
  216. package/dist/chunk-1ab1ptq5.js +0 -4
  217. package/dist/chunk-2qn472j4.js +0 -5
  218. package/dist/chunk-3d3nmr5g.js +0 -4
  219. package/dist/chunk-6scjrbw7.js +0 -4
  220. package/dist/chunk-88pq4gmf.js +0 -5
  221. package/dist/chunk-88pq4gmf.js.map +0 -10
  222. package/dist/chunk-8p6rqegw.js +0 -4
  223. package/dist/chunk-92793zh4.js +0 -5
  224. package/dist/chunk-9279y4af.js +0 -5
  225. package/dist/chunk-bq4w14a6.js +0 -5
  226. package/dist/chunk-bq4w14a6.js.map +0 -10
  227. package/dist/chunk-ear03axe.js +0 -81
  228. package/dist/chunk-faa987e4.js +0 -4
  229. package/dist/chunk-ffre1z8s.js +0 -6
  230. package/dist/chunk-msz8rngs.js.map +0 -10
  231. package/dist/chunk-vnjvd82s.js +0 -4
  232. package/dist/chunk-xw44bwnh.js +0 -5
  233. package/dist/chunk-xw44bwnh.js.map +0 -11
  234. package/dist/chunk-y4djde42.js +0 -5
  235. package/dist/chunk-y4djde42.js.map +0 -11
  236. package/dist/chunks/ThemeProvider-CTX9LOFC.js.map +0 -1
  237. /package/dist/{chunk-zhsaz9cr.js.map → chunk-3bw1jk21.js.map} +0 -0
@@ -0,0 +1,34 @@
1
+ import { type JSX } from "react";
2
+ import type { DictionaryHandle } from "../i18n/defineDictionary";
3
+ import type { DictionaryTranslations } from "../i18n/dictionaryShape";
4
+ import type { ParseTranslationParams, Prettify } from "../utils/type";
5
+ type Parser<T extends Record<string, string>> = Prettify<{
6
+ [K in keyof T]: ParseTranslationParams<T[K]>;
7
+ }[keyof T]>;
8
+ type ParamsOrNever<T> = T extends Record<string, never> ? [params?: never] : [params: T];
9
+ /**
10
+ * Read a dictionary declared with `defineDictionary`, next to the component
11
+ * that uses it.
12
+ *
13
+ * ```tsx
14
+ * const t = useDictionary(homeDict);
15
+ * t("title", { name });
16
+ * ```
17
+ *
18
+ * Keys and interpolation params come straight from the literal — there is no
19
+ * name string to keep in sync and no `gemi.d.ts` augmentation.
20
+ *
21
+ * Normally this resolves without suspending: the server seeds the strings it
22
+ * rendered with into the hydration payload, and the router warms a view's
23
+ * dictionaries while it is already loading that view's chunks. It falls back to
24
+ * suspending on the locale's chunk when neither happened — a dictionary inside
25
+ * a `lazy()` subtree, or the first render after a locale switch.
26
+ *
27
+ * Replaces `useTranslator`, which is deprecated.
28
+ */
29
+ export declare function useDictionary<const T extends DictionaryTranslations>(dictionary: DictionaryHandle<T>): {
30
+ <K extends keyof T & string, U extends T[K] = T[K]>(key: K, ...args: ParamsOrNever<Parser<U extends Record<string, string> ? U : never>>): string;
31
+ jsx<K extends keyof T & string, U extends T[K] = T[K]>(key: K, ...args: ParamsOrNever<Parser<U extends Record<string, string> ? U : never>>): JSX.Element;
32
+ };
33
+ export {};
34
+ //# sourceMappingURL=useDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionary.d.ts","sourceRoot":"","sources":["../../client/useDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAItE,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,CACtD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC,MAAM,CAAC,CAAC,CACX,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnD,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAChB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,sBAAsB,EAClE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;KA6BhB,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAClD,CAAC,WACG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAC3E,MAAM;QAYI,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAChD,CAAC,WACG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAE1B,GAAG,CAAC,OAAO;EAIhE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useDictionary.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDictionary.test-d.d.ts","sourceRoot":"","sources":["../../client/useDictionary.test-d.ts"],"names":[],"mappings":""}
@@ -5,6 +5,14 @@ type Parser<T extends Record<string, string>> = Prettify<{
5
5
  [K in keyof T]: ParseTranslationParams<T[K]>;
6
6
  }[keyof T]>;
7
7
  type ParamsOrNever<T> = T extends Record<string, never> ? [params?: never] : [params: T];
8
+ /**
9
+ * @deprecated Use `useDictionary(dict)` with a `defineDictionary` dictionary
10
+ * declared next to the component. This resolves a dictionary by name through
11
+ * the global `I18nDictionary` interface, which needs a `gemi.d.ts`
12
+ * declaration, a central `app/i18n/index.ts`, and a hand-maintained `prefetch`
13
+ * map naming every route's dictionaries — and it ships whatever that map says
14
+ * whether the page reads it or not. Still supported; see `docs/i18n.md`.
15
+ */
8
16
  export declare function useTranslator<T extends keyof I18nDictionary>(component: T): {
9
17
  <K extends keyof I18nDictionary[T]["dictionary"], U extends Record<string, string> = I18nDictionary[T]["dictionary"][K]>(key: K, ...args: ParamsOrNever<Parser<U>>): any;
10
18
  jsx<K extends keyof I18nDictionary[T]["dictionary"], U extends Record<string, string> = I18nDictionary[T]["dictionary"][K]>(key: K, ...args: ParamsOrNever<Parser<U>>): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"useTranslator.d.ts","sourceRoot":"","sources":["../../client/useTranslator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,CACtD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC,MAAM,CAAC,CAAC,CACX,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnD,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAChB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhB,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,SAAS,EAAE,CAAC;KAItE,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,4CAC3B,CAAC,WAAW,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAczC,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,4CAE3B,CAAC,WACG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAEiB,GAAG,CAAC,OAAO;EAIhE"}
1
+ {"version":3,"file":"useTranslator.d.ts","sourceRoot":"","sources":["../../client/useTranslator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjC,KAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,QAAQ,CACtD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC,MAAM,CAAC,CAAC,CACX,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnD,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAChB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhB;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,SAAS,EAAE,CAAC;KAItE,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,4CAC3B,CAAC,WAAW,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAczC,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,4CAE3B,CAAC,WACG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAEiB,GAAG,CAAC,OAAO;EAIhE"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import"../chunk-0h3jr9d9.js";function j(h){return h}export{j as defineConfig};
2
+ import"../chunk-7f5ad759.js";function j(h){return h}export{j as defineConfig};
3
3
 
4
4
  //# debugId=FB1D7FB1C6C96D0964756E2164756E21
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Ba as A,Ca as l}from"../chunk-p22rkf1g.js";import{nb as q,qb as m,yb as p}from"../chunk-tmk4zfz9.js";import{Cb as c}from"../chunk-ha7n1c94.js";import{Ce as u}from"../chunk-3y9nf09k.js";import"../chunk-mt2755rs.js";import"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";function F(){let z=Promise.resolve(),M=Promise.resolve(),X=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=X(process.stdout,Q)},stderr:(Q)=>{M=X(process.stderr,Q)},flush:async()=>{await Promise.all([z,M])}}}function b(z){let M=z.writers??F();return{args:z.args,options:z.options,argv:z.argv,line:(X="")=>M.stdout(`${X}
2
+ import{Ma as A,Na as l}from"../chunk-jb022m7n.js";import{Eb as p,tb as q,wb as m}from"../chunk-1sh6kqjn.js";import{Gb as c}from"../chunk-xxw0gz4q.js";import{Se as u}from"../chunk-g5tj10p8.js";import"../chunk-w6gb9gc5.js";import"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";function F(){let z=Promise.resolve(),M=Promise.resolve(),X=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=X(process.stdout,Q)},stderr:(Q)=>{M=X(process.stderr,Q)},flush:async()=>{await Promise.all([z,M])}}}function b(z){let M=z.writers??F();return{args:z.args,options:z.options,argv:z.argv,line:(X="")=>M.stdout(`${X}
3
3
  `),error:(X)=>M.stderr(`${X}
4
4
  `),fail:(X,Q=1)=>{throw new q(X,Q)}}}import w from"path";function V(z){return z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}function t(z){let M=new Map,X=new Map;for(let Q of z){M.set(V(Q.name),Q),M.set(Q.name,Q);let G="alias"in Q?Q.alias:void 0;if(G)X.set(G,Q)}return{byName:M,byAlias:X}}function x(z){if(z==="--")return!0;if(!z.startsWith("-"))return!1;if(z==="-")return!1;if(/^-(\d|\.\d)/.test(z))return!1;return!0}function k(z,M){let{byName:X,byAlias:Q}=t(z.options),G=[],$=[],Z=new Map,S=!X.has("help"),C=!Q.has("h"),P=!1,D=!1,I=(J)=>G.push(`Unknown option ${J} for command "${z.commandName}".`),T=(J,Y)=>{if(Y==="--help"||Y==="-h")D=!0;G.push(Y===void 0?`Option ${J} needs a value.`:`Option ${J} needs a value, but the next token is ${JSON.stringify(Y)}, which is another option. If that really is the value, write ${J}=${Y}.`)},_=0;while(_<M.length){let J=M[_];if(J==="--"){$.push(...M.slice(_+1));break}if(J.startsWith("--")){let Y=J.slice(2),j=Y.indexOf("="),B=j===-1?Y:Y.slice(0,j),K=j===-1?void 0:Y.slice(j+1),H=X.get(B),E=!1;if(!H&&B.startsWith("no-")){let W=X.get(B.slice(3));if(W&&W.type==="boolean")H=W,E=!0}if(!H&&B==="help"&&S){P=!0,_+=1;continue}if(!H){I(`--${B}`),_+=1;continue}if(H.type==="boolean"){if(K!==void 0&&K!=="true"&&K!=="false")G.push(`Option --${V(H.name)} is a flag and takes no value, but got ${JSON.stringify(K)}.`);else{let W=K===void 0?!0:K==="true";Z.set(H.name,E?!W:W)}_+=1;continue}if(K!==void 0){Z.set(H.name,K),_+=1;continue}let U=M[_+1];if(U===void 0||x(U)){T(`--${V(H.name)}`,U),_+=1;continue}Z.set(H.name,U),_+=2;continue}if(J.startsWith("-")&&J.length>1){let Y=J.slice(1),j=!1;for(let B=0;B<Y.length;B+=1){let K=Q.get(Y[B]);if(!K){if(Y[B]==="h"&&C){P=!0;continue}I(`-${Y[B]}`);break}if(K.type==="boolean"){Z.set(K.name,!0);continue}let H=Y.slice(B+1),E=H.startsWith("=")?H.slice(1):H;if(E!==""){Z.set(K.name,E);break}let U=M[_+1];if(U===void 0||x(U)){T(`-${K.alias}`,U);break}Z.set(K.name,U),j=!0;break}_+=j?2:1;continue}$.push(J),_+=1}let L={},O=0;for(let J of z.args){if(J.variadic){let j=$.slice(O);if(O=$.length,L[J.name]=j,J.required&&j.length===0)G.push(`Missing required argument <${J.name}...>. Command "${z.commandName}" needs at least one.`);continue}let Y=$[O];if(O+=1,Y!==void 0){L[J.name]=Y;continue}if(J.default!==void 0){L[J.name]=J.default;continue}if(J.required)G.push(`Missing required argument <${J.name}>.`);L[J.name]=void 0}if(O<$.length){let J=$.slice(O);G.push(`Unexpected argument${J.length===1?"":"s"} ${J.map((Y)=>JSON.stringify(Y)).join(", ")}. Command "${z.commandName}" takes ${z.args.length} argument${z.args.length===1?"":"s"}.`)}let R={};for(let J of z.options){let Y=Z.get(J.name);if(J.type==="boolean"){R[J.name]=Y===void 0?J.default??!1:Boolean(Y);continue}if(Y===void 0){if(J.default!==void 0)R[J.name]=J.default;else if(J.required)G.push(`Missing required option --${V(J.name)}.`),R[J.name]=void 0;else R[J.name]=void 0;continue}let j=String(Y);if(J.type==="number"){let B=Number(j);if(j.trim()===""||!Number.isFinite(B))G.push(`Option --${V(J.name)} expects a number, but got ${JSON.stringify(j)}.`),R[J.name]=void 0;else R[J.name]=B;continue}R[J.name]=j}let N=P&&!D;if(G.length>0)return{ok:!1,help:N,errors:G};return{ok:!0,help:N,args:L,options:R}}function f(z,M=" "){let X=z.reduce((Q,[G])=>Math.max(Q,G.length),0);return z.map(([Q,G])=>G===""?`${M}${Q}`:`${M}${Q.padEnd(X)} ${G}`)}function g(z){let M=z.variadic?`${z.name}...`:z.name;return z.required?`<${M}>`:`[${M}]`}function s(z){let M=(G)=>z.options.some(G),X=M((G)=>G.name==="help"||V(G.name)==="help"),Q=M((G)=>("alias"in G)&&G.alias==="h");if(X&&Q)return[];if(X)return[["-h","Show this message"]];return[[`${Q?"":"-h, "}--help`,"Show this message"]]}function v(z){let M=[],X=z.args.map(g).join(" "),Q=["gemi run",z.commandName,z.options.length>0?"[options]":"",X].filter(Boolean).join(" ");if(M.push(`Usage: ${Q}`),z.description)M.push("",z.description);if(z.args.length>0)M.push("","Arguments:"),M.push(...f(z.args.map((G)=>{let $=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:""].filter(Boolean).join(" ");return[g(G),$]})));return M.push("","Options:"),M.push(...f([...z.options.map((G)=>{let $="alias"in G&&G.alias?`-${G.alias}, `:"",Z=G.type==="boolean"?"":` <${G.type}>`,S=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:"","required"in G&&G.required?"(required)":""].filter(Boolean).join(" ");return[`${$}--${V(G.name)}${Z}`,S]}),...s(z)])),M.join(`
5
5
  `)}function y(z,M){let X=M.declared?`${z.length} command${z.length===1?"":"s"} declared in app/config/command.ts:`:`Commands in ${M.dir}:`;if(z.length===0)return M.declared?`app/config/command.ts declares no commands.
@@ -13,4 +13,4 @@ A command is registered by existing: write a file there that exports a \`defineC
13
13
  ${Q.message}
14
14
  \`gemi run\` boots your application the way the server does, so it needs the Kernel. Run it from the root of a gemi project.`,{cause:Q})}if(typeof X.default!=="function")throw new A(`${M} has no default export. gemi expects the Kernel subclass to be the default export of that file.`);return new X.default}function h(z,M,X,Q="returned"){if(z===void 0||z===null)return 0;if(typeof z==="number"&&Number.isInteger(z)&&z>=0&&z<=255)return z;let G=M?`Command "${M.commandName}"`:"The command";return X(`${G} ${Q} ${JSON.stringify(z)}, which is not an exit `+"code \u2014 an exit code is an integer from 0 to 255. Treating this as a "+"failure."),1}var[a,...o]=process.argv.slice(2),i=F();d({rootDir:process.cwd(),name:a,argv:o,writers:i}).then(async(z)=>{await i.flush(),process.exit(z)});
15
15
 
16
- //# debugId=3A559D4973E0E24564756E2164756E21
16
+ //# debugId=9EEAF63593B82A7864756E2164756E21
@@ -9,6 +9,6 @@
9
9
  "/**\n * The entry point `gemi run` spawns.\n *\n * Exposed through the exports map as `gemi/console/run` and resolved by the CLI\n * out of the *application's* `node_modules`, the same way `dev` and `start`\n * resolve `gemi/bun/preload`. That indirection is the point: the runner has to\n * be the application's copy of gemi, not the one bundled into `dist/bin/gemi.js`\n * — see the note at the top of `runner.ts`.\n *\n * Nothing but argv handling lives here, so that everything worth testing lives\n * in `runConsole`, which returns an exit code instead of taking one.\n */\nimport { processWriters } from \"./context\";\nimport { runConsole } from \"./runner\";\n\n// The tail is forwarded exactly as commander handed it over, `--` and all.\n// commander passes a `--` through as a literal operand (verified: `gemi run x --\n// --weird` arrives as `[\"--\", \"--weird\"]`), and `parse.ts` already treats a `--`\n// as \"everything after this is positional\". Stripping it here — which an earlier\n// draft did — consumed the escape hatch before the only thing that reads it,\n// leaving `-- --weird` reported as an unknown option and `-- --` the only way to\n// pass a flag-shaped value.\nconst [name, ...argv] = process.argv.slice(2);\n\nconst writers = processWriters();\n\n// `.then` rather than a top-level `await`, so this file typechecks under the\n// package's inherited `module: NodeNext` — the same TS1309 that keeps `bun/` out\n// of tsconfig.json's `include`. Bun runs it as ESM either way; this just avoids\n// buying a nested tsconfig for two lines.\nrunConsole({ rootDir: process.cwd(), name, argv, writers }).then(\n async (code) => {\n // Everything written has to reach the OS before the exit below discards it —\n // see `processWriters` for what that costs when it is skipped.\n await writers.flush();\n\n // Explicit, and not belt-and-braces. `kernel.destroy()` stops the scheduler,\n // but an open database pool, a Redis client or an unref'd timer will happily\n // hold the loop open after the work is done — a command that finishes and then\n // sits there, which is the failure `kernel/exit.test.ts` exists for and the\n // one `orm/context.test.ts` names by example.\n process.exit(code);\n },\n);\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "3A559D4973E0E24564756E2164756E21",
12
+ "debugId": "9EEAF63593B82A7864756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ne as e,Oe as o}from"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";export{o as Container,e as BindingResolutionError};
2
+ import{bf as e,cf as o}from"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";export{o as Container,e as BindingResolutionError};
3
3
 
4
- //# debugId=60644B238DFF089964756E2164756E21
4
+ //# debugId=8E38428FBED1D70564756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "60644B238DFF089964756E2164756E21",
7
+ "debugId": "8E38428FBED1D70564756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{p as b}from"../chunk-qjnv2rkh.js";import"../chunk-ttzkn1qd.js";import{Cc as e,Dc as o,Ec as r,Fc as n,Gc as a,Hc as t,Ic as i,Jc as s,Kc as C,Lc as f,Mc as D,Nc as c,Oc as p}from"../chunk-tkv6cw94.js";import"../chunk-cg53h5ht.js";import"../chunk-3y9nf09k.js";import"../chunk-0h3jr9d9.js";export{n as isSqlite,a as isMysqlFamily,r as inferDialect,c as defineDatabaseConfig,p as databaseConfigDefaults,e as UnknownDatabaseUrlError,i as UnknownConnectionError,s as ReservedConnectionNameError,o as MissingDatabaseUrlError,b as DatabaseServiceProvider,D as DatabaseManager,t as DEFAULT_CONNECTION,C as CrossConnectionTransactionError,f as Connection};
2
+ import{v as b}from"../chunk-sqp7kn7h.js";import"../chunk-n1tkn8gv.js";import{Kc as e,Lc as o,Mc as r,Nc as n,Oc as a,Pc as t,Qc as i,Rc as s,Sc as C,Tc as f,Uc as D,Vc as c,Wc as p}from"../chunk-k8endm5j.js";import"../chunk-0weeq0ke.js";import"../chunk-g5tj10p8.js";import"../chunk-7f5ad759.js";export{n as isSqlite,a as isMysqlFamily,r as inferDialect,c as defineDatabaseConfig,p as databaseConfigDefaults,e as UnknownDatabaseUrlError,i as UnknownConnectionError,s as ReservedConnectionNameError,o as MissingDatabaseUrlError,b as DatabaseServiceProvider,D as DatabaseManager,t as DEFAULT_CONNECTION,C as CrossConnectionTransactionError,f as Connection};
3
3
 
4
- //# debugId=FF7E217A7DC0FB5D64756E2164756E21
4
+ //# debugId=97CDC07EEC2FE5AB64756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "FF7E217A7DC0FB5D64756E2164756E21",
7
+ "debugId": "97CDC07EEC2FE5AB64756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{He as o}from"../chunk-cmq5t8p9.js";import{Ie as p}from"../chunk-88pq4gmf.js";import{Me as f}from"../chunk-mt2755rs.js";import"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";import{render as i}from"jsx-email";import I from"process";import{Buffer as a}from"buffer";import d from"path";import{fileURLToPath as kT}from"url";import{promisify as FT}from"util";import r from"child_process";import WT,{constants as IT}from"fs/promises";import u from"process";import c,{constants as JT}from"fs/promises";import b from"process";import GT from"os";import _ from"fs";import RT from"fs";import y from"fs";var j;function ET(){try{return y.statSync("/.dockerenv"),!0}catch{return!1}}function $T(){try{return y.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(j===void 0)j=ET()||$T();return j}var O,qT=()=>{try{return RT.statSync("/run/.containerenv"),!0}catch{return!1}};function Y(){if(O===void 0)O=qT()||L();return O}var B=()=>{if(b.platform!=="linux")return!1;if(GT.release().toLowerCase().includes("microsoft")){if(Y())return!1;return!0}try{if(_.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!Y()}catch{}if(_.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||_.existsSync("/run/WSL"))return!Y();return!1},Q=b.env.__IS_WSL_TEST__?B:B();var KT=(()=>{let S;return async function(){if(S)return S;let v="/etc/wsl.conf",$=!1;try{await c.access(v,JT.F_OK),$=!0}catch{}if(!$)return"/mnt/";let E=await c.readFile(v,{encoding:"utf8"}),q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(E);if(!q)return"/mnt/";return S=q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),QT=async()=>{return`${await KT()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},x=async()=>{if(Q)return QT();return`${u.env.SYSTEMROOT||u.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function V(T,S,v){let $=(E)=>Object.defineProperty(T,S,{value:E,enumerable:!0,writable:!0});return Object.defineProperty(T,S,{configurable:!0,enumerable:!0,get(){let E=v();return $(E),E},set(E){$(E)}}),T}import{promisify as _T}from"util";import F from"process";import{execFile as xT}from"child_process";import{promisify as VT}from"util";import YT from"process";import{execFile as ZT}from"child_process";var HT=VT(ZT);async function D(){if(YT.platform!=="darwin")throw Error("macOS only");let{stdout:T}=await HT("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),v=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(T)?.groups.id??"com.apple.Safari";if(v==="com.apple.safari")return"com.apple.Safari";return v}import MT from"process";import{promisify as NT}from"util";import{execFile as UT,execFileSync as ES}from"child_process";var XT=NT(UT);async function A(T,{humanReadableOutput:S=!0,signal:v}={}){if(MT.platform!=="darwin")throw Error("macOS only");let $=S?[]:["-ss"],E={};if(v)E.signal=v;let{stdout:q}=await XT("osascript",["-e",T,$],E);return q.trim()}async function z(T){return A(`tell application "Finder" to set app_path to application file id "${T}" as string
2
+ import{Xe as o}from"../chunk-kv2ep453.js";import{Ye as p}from"../chunk-nncwsdzz.js";import{af as f}from"../chunk-w6gb9gc5.js";import"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";import{render as i}from"jsx-email";import I from"process";import{Buffer as a}from"buffer";import d from"path";import{fileURLToPath as kT}from"url";import{promisify as FT}from"util";import r from"child_process";import WT,{constants as IT}from"fs/promises";import u from"process";import c,{constants as JT}from"fs/promises";import b from"process";import GT from"os";import _ from"fs";import RT from"fs";import y from"fs";var j;function ET(){try{return y.statSync("/.dockerenv"),!0}catch{return!1}}function $T(){try{return y.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function L(){if(j===void 0)j=ET()||$T();return j}var O,qT=()=>{try{return RT.statSync("/run/.containerenv"),!0}catch{return!1}};function Y(){if(O===void 0)O=qT()||L();return O}var B=()=>{if(b.platform!=="linux")return!1;if(GT.release().toLowerCase().includes("microsoft")){if(Y())return!1;return!0}try{if(_.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!Y()}catch{}if(_.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||_.existsSync("/run/WSL"))return!Y();return!1},Q=b.env.__IS_WSL_TEST__?B:B();var KT=(()=>{let S;return async function(){if(S)return S;let v="/etc/wsl.conf",$=!1;try{await c.access(v,JT.F_OK),$=!0}catch{}if(!$)return"/mnt/";let E=await c.readFile(v,{encoding:"utf8"}),q=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(E);if(!q)return"/mnt/";return S=q.groups.mountPoint.trim(),S=S.endsWith("/")?S:`${S}/`,S}})(),QT=async()=>{return`${await KT()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},x=async()=>{if(Q)return QT();return`${u.env.SYSTEMROOT||u.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`};function V(T,S,v){let $=(E)=>Object.defineProperty(T,S,{value:E,enumerable:!0,writable:!0});return Object.defineProperty(T,S,{configurable:!0,enumerable:!0,get(){let E=v();return $(E),E},set(E){$(E)}}),T}import{promisify as _T}from"util";import F from"process";import{execFile as xT}from"child_process";import{promisify as VT}from"util";import YT from"process";import{execFile as ZT}from"child_process";var HT=VT(ZT);async function D(){if(YT.platform!=="darwin")throw Error("macOS only");let{stdout:T}=await HT("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),v=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(T)?.groups.id??"com.apple.Safari";if(v==="com.apple.safari")return"com.apple.Safari";return v}import MT from"process";import{promisify as NT}from"util";import{execFile as UT,execFileSync as ES}from"child_process";var XT=NT(UT);async function A(T,{humanReadableOutput:S=!0,signal:v}={}){if(MT.platform!=="darwin")throw Error("macOS only");let $=S?[]:["-ss"],E={};if(v)E.signal=v;let{stdout:q}=await XT("osascript",["-e",T,$],E);return q.trim()}async function z(T){return A(`tell application "Finder" to set app_path to application file id "${T}" as string
3
3
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as jT}from"util";import{execFile as LT}from"child_process";var OT=jT(LT),N={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},KS=new Map(Object.entries(N));class P extends Error{}async function k(T=OT){let{stdout:S}=await T("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),v=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(S);if(!v)throw new P(`Cannot find Windows browser in stdout: ${JSON.stringify(S)}`);let{id:$}=v.groups,E=$.lastIndexOf("."),q=$.lastIndexOf("-"),J=E===-1?void 0:$.slice(0,E),R=q===-1?void 0:$.slice(0,q);return N[$]??N[J]??N[R]??{name:$,id:$}}var DT=_T(xT),zT=(T)=>T.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,(S)=>S.toUpperCase());async function W(){if(F.platform==="darwin"){let T=await D();return{name:await z(T),id:T}}if(F.platform==="linux"){let{stdout:T}=await DT("xdg-mime",["query","default","x-scheme-handler/http"]),S=T.trim();return{name:zT(S.replace(/.desktop$/,"").replace("-"," ")),id:S}}if(F.platform==="win32")return k();throw Error("Only macOS, Linux, and Windows are supported")}var CT=FT(r.execFile),C=d.dirname(kT(import.meta.url)),w=d.join(C,"xdg-open"),{platform:H,arch:m}=I;async function fT(){let T=await x(),S=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,v=a.from(S,"utf16le").toString("base64"),{stdout:$}=await CT(T,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",v],{encoding:"utf8"}),E=$.trim(),q={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return q[E]?{id:q[E]}:{}}var h=async(T,S)=>{let v;for(let $ of T)try{return await S($)}catch(E){v=E}throw v},U=async(T)=>{if(T={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...T},Array.isArray(T.app))return h(T.app,(R)=>U({...T,app:R}));let{name:S,arguments:v=[]}=T.app??{};if(v=[...v],Array.isArray(S))return h(S,(R)=>U({...T,app:{name:R,arguments:v}}));if(S==="browser"||S==="browserPrivate"){let R={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},G={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},K=Q?await fT():await W();if(K.id in R){let M=R[K.id];if(S==="browserPrivate")v.push(G[M]);return U({...T,app:{name:Z[M],arguments:v}})}throw Error(`${K.name} is not supported as a default browser`)}let $,E=[],q={};if(H==="darwin"){if($="open",T.wait)E.push("--wait-apps");if(T.background)E.push("--background");if(T.newInstance)E.push("--new");if(S)E.push("-a",S)}else if(H==="win32"||Q&&!Y()&&!S){if($=await x(),E.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),!Q)q.windowsVerbatimArguments=!0;let R=["Start"];if(T.wait)R.push("-Wait");if(S){if(R.push(`"\`"${S}\`""`),T.target)v.push(T.target)}else if(T.target)R.push(`"${T.target}"`);if(v.length>0)v=v.map((G)=>`"\`"${G}\`""`),R.push("-ArgumentList",v.join(","));T.target=a.from(R.join(" "),"utf16le").toString("base64")}else{if(S)$=S;else{let R=!C||C==="/",G=!1;try{await WT.access(w,IT.X_OK),G=!0}catch{}$=I.versions.electron??(H==="android"||R||!G)?"xdg-open":w}if(v.length>0)E.push(...v);if(!T.wait)q.stdio="ignore",q.detached=!0}if(H==="darwin"&&v.length>0)E.push("--args",...v);if(T.target)E.push(T.target);let J=r.spawn($,E,q);if(T.wait)return new Promise((R,G)=>{J.once("error",G),J.once("close",(K)=>{if(!T.allowNonzeroExitCode&&K>0){G(Error(`Exited with code ${K}`));return}R(J)})});return J.unref(),J},lT=(T,S)=>{if(typeof T!=="string")throw TypeError("Expected a `target`");return U({...S,target:T})};function g(T){if(typeof T==="string"||Array.isArray(T))return T;let{[m]:S}=T;if(!S)throw Error(`${m} is not supported`);return S}function X({[H]:T},{wsl:S}){if(S&&Q)return g(S);if(!T)throw Error(`${H} is not supported`);return g(T)}var Z={};V(Z,"chrome",()=>X({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));V(Z,"brave",()=>X({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));V(Z,"firefox",()=>X({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));V(Z,"edge",()=>X({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));V(Z,"browser",()=>"browser");V(Z,"browserPrivate",()=>"browserPrivate");var e=lT;import{jsx as n}from"react/jsx-runtime";class s{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send(T){let S=new this,v=f(p).defaultLocale,$=f(o),{to:E=S.to,from:q=S.from,subject:J=typeof S.subject==="string"?S.subject:S.subject[T.locale||v],cc:R=S.cc,bcc:G=S.bcc,attachments:K=S.attachments,data:M,headers:TT={}}=T,ST={...$.headers??{},...S.headers??{},...TT??{}};if(!(await $.filterRecipients(E)).length)return;let[l,vT]=await Promise.all([S.render({...M,locale:T.locale}),S.renderText({...M,locale:T.locale})]);if(process.env.EMAIL_DEBUG==="true"){let t=`${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${J}.html`;if(await Bun.write(t,l),process.env.CI!=="true")await e(t);return}await $.send({bcc:G,cc:R,from:q,subject:J,to:E,attachments:K,html:l,headers:ST,text:vT,scheduledAt:T.scheduledAt})}static async preview(T){return await new this().render({...T.data,locale:T.locale})}async render(T){let S=this.template;return await i(n(S,{...T}))}async renderText(T){let S=this.template;return await i(n(S,{...T}),{plainText:!0})}}export{s as Email};
4
4
 
5
- //# debugId=72F3169ABE92AE5D64756E2164756E21
5
+ //# debugId=D2ED8A45FD1B18ED64756E2164756E21
@@ -16,6 +16,6 @@
16
16
  "import {promisify} from 'node:util';\nimport {execFile} from 'node:child_process';\n\nconst execFileAsync = promisify(execFile);\n\n// TODO: Fix the casing of bundle identifiers in the next major version.\n\n// Windows doesn't have browser IDs in the same way macOS/Linux does so we give fake\n// ones that look real and match the macOS/Linux versions for cross-platform apps.\nconst windowsBrowserProgIds = {\n\tMSEdgeHTM: {name: 'Edge', id: 'com.microsoft.edge'}, // The missing `L` is correct.\n\tMSEdgeBHTML: {name: 'Edge Beta', id: 'com.microsoft.edge.beta'},\n\tMSEdgeDHTML: {name: 'Edge Dev', id: 'com.microsoft.edge.dev'},\n\tAppXq0fevzme2pys62n3e0fbqa7peapykr8v: {name: 'Edge', id: 'com.microsoft.edge.old'},\n\tChromeHTML: {name: 'Chrome', id: 'com.google.chrome'},\n\tChromeBHTML: {name: 'Chrome Beta', id: 'com.google.chrome.beta'},\n\tChromeDHTML: {name: 'Chrome Dev', id: 'com.google.chrome.dev'},\n\tChromiumHTM: {name: 'Chromium', id: 'org.chromium.Chromium'},\n\tBraveHTML: {name: 'Brave', id: 'com.brave.Browser'},\n\tBraveBHTML: {name: 'Brave Beta', id: 'com.brave.Browser.beta'},\n\tBraveDHTML: {name: 'Brave Dev', id: 'com.brave.Browser.dev'},\n\tBraveSSHTM: {name: 'Brave Nightly', id: 'com.brave.Browser.nightly'},\n\tFirefoxURL: {name: 'Firefox', id: 'org.mozilla.firefox'},\n\tOperaStable: {name: 'Opera', id: 'com.operasoftware.Opera'},\n\tVivaldiHTM: {name: 'Vivaldi', id: 'com.vivaldi.Vivaldi'},\n\t'IE.HTTP': {name: 'Internet Explorer', id: 'com.microsoft.ie'},\n};\n\nexport const _windowsBrowserProgIdMap = new Map(Object.entries(windowsBrowserProgIds));\n\nexport class UnknownBrowserError extends Error {}\n\nexport default async function defaultBrowser(_execFileAsync = execFileAsync) {\n\tconst {stdout} = await _execFileAsync('reg', [\n\t\t'QUERY',\n\t\t' HKEY_CURRENT_USER\\\\Software\\\\Microsoft\\\\Windows\\\\Shell\\\\Associations\\\\UrlAssociations\\\\http\\\\UserChoice',\n\t\t'/v',\n\t\t'ProgId',\n\t]);\n\n\tconst match = /ProgId\\s*REG_SZ\\s*(?<id>\\S+)/.exec(stdout);\n\tif (!match) {\n\t\tthrow new UnknownBrowserError(`Cannot find Windows browser in stdout: ${JSON.stringify(stdout)}`);\n\t}\n\n\tconst {id} = match.groups;\n\n\t// Windows can append a hash suffix to ProgIds using a dot or hyphen\n\t// (e.g., `ChromeHTML.ABC123`, `FirefoxURL-6F193CCC56814779`).\n\t// Try exact match first, then try without the suffix.\n\tconst dotIndex = id.lastIndexOf('.');\n\tconst hyphenIndex = id.lastIndexOf('-');\n\tconst baseIdByDot = dotIndex === -1 ? undefined : id.slice(0, dotIndex);\n\tconst baseIdByHyphen = hyphenIndex === -1 ? undefined : id.slice(0, hyphenIndex);\n\n\treturn windowsBrowserProgIds[id] ?? windowsBrowserProgIds[baseIdByDot] ?? windowsBrowserProgIds[baseIdByHyphen] ?? {name: id, id};\n}\n"
17
17
  ],
18
18
  "mappings": "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",
19
- "debugId": "72F3169ABE92AE5D64756E2164756E21",
19
+ "debugId": "D2ED8A45FD1B18ED64756E2164756E21",
20
20
  "names": []
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Lang.d.ts","sourceRoot":"","sources":["../../facades/Lang.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,IAAK,SAAQ,MAAM;IAC9B,MAAM,CAAC,iBAAiB;IAIxB,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,gBAAgB;IAIvB,MAAM,CAAC,MAAM;IAUb,MAAM,CAAC,SAAS,CAAC,MAAM,SAAgB;CAexC"}
1
+ {"version":3,"file":"Lang.d.ts","sourceRoot":"","sources":["../../facades/Lang.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,IAAK,SAAQ,MAAM;IAC9B,MAAM,CAAC,iBAAiB;IAIxB,MAAM,CAAC,mBAAmB;IAI1B,MAAM,CAAC,gBAAgB;IAIvB,MAAM,CAAC,MAAM;IAkBb,MAAM,CAAC,SAAS,CAAC,MAAM,SAAgB;CAuBxC"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Hb as c,Ib as d,Ob as f,_b as g,dc as h,ec as i,fc as j,gc as k,ic as l,jc as m,kc as n,lc as o}from"../chunk-ear03axe.js";import"../chunk-7s1g3v1y.js";import"../chunk-tkv6cw94.js";import{id as b,jd as e}from"../chunk-y4djde42.js";import{Gd as a}from"../chunk-3d3nmr5g.js";import"../chunk-bq4w14a6.js";import"../chunk-cg53h5ht.js";import"../chunk-92793zh4.js";import"../chunk-3y9nf09k.js";import"../chunk-88pq4gmf.js";import"../chunk-mt2755rs.js";import"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";export{i as Url,f as Storage,l as Redis,a as Redirect,m as RateLimiter,h as Query,j as Meta,g as Log,e as Lang,b as Facade,o as DB,k as Cookie,n as ConnectionQueries,c as Broadcast,d as Auth};
2
+ import{Mb as b,Ob as c,Pb as d,Qb as e,Wb as f,gc as g,lc as h,mc as i,nc as j,oc as k,qc as l,rc as m,sc as n,tc as o}from"../chunk-kkkqyvwv.js";import"../chunk-pgjk5ft3.js";import"../chunk-k8endm5j.js";import"../chunk-e3mggavt.js";import{Wd as a}from"../chunk-85av4ncy.js";import"../chunk-k14dmqwh.js";import"../chunk-0weeq0ke.js";import"../chunk-g5tj10p8.js";import"../chunk-nncwsdzz.js";import"../chunk-w6gb9gc5.js";import"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";export{i as Url,f as Storage,l as Redis,a as Redirect,m as RateLimiter,h as Query,j as Meta,g as Log,e as Lang,b as Facade,o as DB,k as Cookie,n as ConnectionQueries,c as Broadcast,d as Auth};
3
3
 
4
- //# debugId=25F5EC18D86D946C64756E2164756E21
4
+ //# debugId=98D6634FFCD4FE7C64756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "25F5EC18D86D946C64756E2164756E21",
7
+ "debugId": "98D6634FFCD4FE7C64756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Le as r,Me as o}from"../chunk-mt2755rs.js";import"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";export{o as app,r as Application};
2
+ import{$e as r,af as o}from"../chunk-w6gb9gc5.js";import"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";export{o as app,r as Application};
3
3
 
4
- //# debugId=FD3D2610C3B9403064756E2164756E21
4
+ //# debugId=9FEE960C6CC3D37164756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "FD3D2610C3B9403064756E2164756E21",
7
+ "debugId": "9FEE960C6CC3D37164756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{$d as H,Ad as o,Bd as p,Cd as q,Dd as r,Ed as s,Hd as t,Id as u,Jd as v,Kd as w,Ld as x,Md as y,Sd as z,Td as A,Ud as B,Wd as C,Xd as D,Yd as E,Zd as F,_d as G,kd as a,ld as b,nd as c,od as d,pd as e,qd as f,rd as g,sd as h,ud as i,vd as j,wd as k,xd as l,yd as m,zd as n}from"../chunk-3d3nmr5g.js";import"../chunk-bq4w14a6.js";import"../chunk-cg53h5ht.js";import"../chunk-92793zh4.js";import"../chunk-3y9nf09k.js";import"../chunk-mt2755rs.js";import"../chunk-qyaqg07q.js";import"../chunk-0h3jr9d9.js";export{e as toRangeHeaderValue,d as resolveRange,c as parseRangeHeader,f as parseContentRange,y as middlewareConfigDefaults,w as getCookies,h as formatUnsatisfiedContentRange,g as formatContentRange,x as defineMiddlewareConfig,l as createUnsatisfiableResponse,m as createStreamResponse,t as createFileResponse,E as clientIp,u as ViewRouter,j as ValidationError,b as ResourceController,i as RequestBreakerError,D as RateLimitMiddleware,C as RateLimitExceededError,p as RangeNotSatisfiableError,G as PoliciesServiceProvider,H as Policies,v as Middleware,o as InsufficientPermissionsError,k as HttpRequest,q as FileNotFoundError,B as CorsMiddleware,a as Controller,A as CacheMiddleware,F as CSRFMiddleware,n as AuthorizationError,z as AuthenticationMiddleware,r as AuthenticationError,s as ApiRouter};
2
+ import{$d as x,Ad as a,Bd as b,Dd as c,Ed as d,Fd as e,Gd as f,Hd as g,Id as h,Kd as i,Ld as j,Md as k,Nd as l,Od as m,Pd as n,Qd as o,Rd as p,Sd as q,Td as r,Ud as s,Xd as t,Yd as u,Zd as v,_d as w,ae as y,ge as z,he as A,ie as B,ke as C,le as D,me as E,ne as F,oe as G,pe as H}from"../chunk-85av4ncy.js";import"../chunk-k14dmqwh.js";import"../chunk-0weeq0ke.js";import"../chunk-g5tj10p8.js";import"../chunk-w6gb9gc5.js";import"../chunk-6j1z2cqt.js";import"../chunk-7f5ad759.js";export{e as toRangeHeaderValue,d as resolveRange,c as parseRangeHeader,f as parseContentRange,y as middlewareConfigDefaults,w as getCookies,h as formatUnsatisfiedContentRange,g as formatContentRange,x as defineMiddlewareConfig,l as createUnsatisfiableResponse,m as createStreamResponse,t as createFileResponse,E as clientIp,u as ViewRouter,j as ValidationError,b as ResourceController,i as RequestBreakerError,D as RateLimitMiddleware,C as RateLimitExceededError,p as RangeNotSatisfiableError,G as PoliciesServiceProvider,H as Policies,v as Middleware,o as InsufficientPermissionsError,k as HttpRequest,q as FileNotFoundError,B as CorsMiddleware,a as Controller,A as CacheMiddleware,F as CSRFMiddleware,n as AuthorizationError,z as AuthenticationMiddleware,r as AuthenticationError,s as ApiRouter};
3
3
 
4
- //# debugId=7519E40AFFF1950164756E2164756E21
4
+ //# debugId=E2F0626BD96DCC8564756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "7519E40AFFF1950164756E2164756E21",
7
+ "debugId": "E2F0626BD96DCC8564756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -11,6 +11,13 @@ export declare class Dictionary<T extends Translations> {
11
11
  locale?: U | (string & {});
12
12
  params: R;
13
13
  }]): any;
14
+ /**
15
+ * @deprecated Use `defineDictionary` from `gemi/client`, declared next to the
16
+ * component that reads it. A dictionary made here has to be re-exported from
17
+ * `app/i18n/index.ts` and listed against a route in the `prefetch` config,
18
+ * and every locale of it stays resident whether a page uses it or not. Still
19
+ * supported; see `docs/i18n.md`.
20
+ */
14
21
  static create<const T extends Translations>(name: string, translations: T): Dictionary<T>;
15
22
  static text<const T extends Record<string, string>, U extends keyof T>(content: T, ...args: Prettify<ParseTranslationParamsServer<T[U]>> extends Record<string, never> ? [args?: {
16
23
  locale?: U | (string & {});
@@ -1 +1 @@
1
- {"version":3,"file":"Dictionary.d.ts","sourceRoot":"","sources":["../../i18n/Dictionary.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,QAAQ,EACT,MAAM,eAAe,CAAC;AAEvB,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,qBAAa,UAAU,CAAC,CAAC,SAAS,YAAY;IAEnC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,CAAC;gBADb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC;IAGtB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAUtB,MAAM,CACJ,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,EACpB,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAE7C,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACpC,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC,GACvC,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IAmBvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAIzE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAClE,MAAM,EACN,KAAK,CACN,GACG,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC,GACvC;QACE,IAAI,EAAE;YACJ,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC3B,MAAM,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD;KACF,GACJ,MAAM;CASV"}
1
+ {"version":3,"file":"Dictionary.d.ts","sourceRoot":"","sources":["../../i18n/Dictionary.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,QAAQ,EACT,MAAM,eAAe,CAAC;AAEvB,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3D,qBAAa,UAAU,CAAC,CAAC,SAAS,YAAY;IAEnC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,CAAC;gBADb,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,CAAC;IAGtB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAUtB,MAAM,CACJ,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,EACpB,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAE7C,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACpC,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC,GACvC,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IAmBvD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAIzE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAClE,MAAM,EACN,KAAK,CACN,GACG,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;KAAE,CAAC,GACvC;QACE,IAAI,EAAE;YACJ,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC3B,MAAM,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD;KACF,GACJ,MAAM;CASV"}
@@ -7,6 +7,18 @@ export declare class Translator {
7
7
  translations: {};
8
8
  isEnabled: boolean;
9
9
  constructor(config: Required<TranslationConfig>);
10
+ /**
11
+ * Whether the app does locale-aware routing and rendering at all.
12
+ *
13
+ * `isEnabled` only means the legacy `prefetch` config has dictionaries to
14
+ * serve. An app on `defineDictionary` has an empty `prefetch` and declares
15
+ * its locales through `supportedLocales` alone, so gating on `isEnabled`
16
+ * leaves it without locale detection or a locale URL prefix. Both the render
17
+ * path and the redirect read this, because when they disagreed a migrated app
18
+ * rendered a non-default locale at `/` with no redirect and no `Vary` — one
19
+ * cache fill away from serving that document to everyone.
20
+ */
21
+ get isLocaleAware(): boolean;
10
22
  get supportedLocales(): string[];
11
23
  get defaultLocale(): string;
12
24
  get components(): Record<string, Dictionary<any>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Translator.d.ts","sourceRoot":"","sources":["../../i18n/Translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,qBAAa,UAAU;IAMF,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IALtD,MAAM,CAAC,KAAK,SAAgB;IAE5B,YAAY,KAAM;IAClB,SAAS,UAAS;gBAEC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IAqBtD,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAEhD;IAED,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpD,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IA6BvC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAMlD"}
1
+ {"version":3,"file":"Translator.d.ts","sourceRoot":"","sources":["../../i18n/Translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,qBAAa,UAAU;IAMF,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IALtD,MAAM,CAAC,KAAK,SAAgB;IAE5B,YAAY,KAAM;IAClB,SAAS,UAAS;gBAEC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IAqBtD;;;;;;;;;;OAUG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAE/B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAEhD;IAED,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpD,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IA6BvC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAMlD"}
@@ -3,7 +3,13 @@ import type { HttpRequest } from "../http/HttpRequest";
3
3
  export interface TranslationConfig {
4
4
  supportedLocales?: string[];
5
5
  defaultLocale?: string;
6
+ /**
7
+ * @deprecated Only for `Dictionary.create` dictionaries. A `defineDictionary`
8
+ * dictionary needs no entry here — the component that reads it pulls it in,
9
+ * and the bundler ships only the active locale.
10
+ */
6
11
  prefetch?: Record<string, Array<Dictionary<any>>>;
12
+ /** @deprecated Only for `Dictionary.create` dictionaries. See `prefetch`. */
7
13
  components?: Record<string, Dictionary<any>>;
8
14
  detectLocale?: (req: HttpRequest) => string | null;
9
15
  onLocaleChange?: (locale: string) => Promise<void> | void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../i18n/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAG7C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3D;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAEnB;AAED,wBAAgB,yBAAyB,IAAI,QAAQ,CAAC,iBAAiB,CAAC,CAWvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../i18n/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAG7C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,GAAG,IAAI,CAAC;IACnD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3D;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,iBAAiB,GACxB,iBAAiB,CAEnB;AAED,wBAAgB,yBAAyB,IAAI,QAAQ,CAAC,iBAAiB,CAAC,CAWvE"}
@@ -0,0 +1,65 @@
1
+ import { type DictionaryTranslations, type LocaleStrings } from "./dictionaryShape";
2
+ declare const brand: unique symbol;
3
+ export interface DictionaryHandle<T extends DictionaryTranslations = DictionaryTranslations> {
4
+ readonly id: string;
5
+ /** Locales this dictionary declares, source language first. */
6
+ readonly locales: readonly string[];
7
+ /**
8
+ * Strings for `locale`. Synchronous when they are already in memory —
9
+ * always, for an unbundled dictionary; after a preload or the SSR seed, for a
10
+ * bundled one.
11
+ */
12
+ load(locale: string): LocaleStrings | Promise<LocaleStrings>;
13
+ /**
14
+ * `load`, but never rejecting — safe to hand React's `use()`. A failed locale
15
+ * chunk resolves to no strings so the component degrades to rendering keys
16
+ * instead of unmounting into an error boundary.
17
+ */
18
+ loadForRender(locale: string): LocaleStrings | Promise<LocaleStrings>;
19
+ get(locale: string): LocaleStrings | undefined;
20
+ /** Type-only: carries the literal's shape through to `useDictionary`. */
21
+ readonly [brand]?: T;
22
+ }
23
+ /**
24
+ * Declare the strings a component needs, next to the component.
25
+ *
26
+ * ```ts
27
+ * export const homeDict = defineDictionary({
28
+ * title: { "en-US": "Welcome {{name}}", "tr-TR": "Hoş geldin {{name}}" },
29
+ * });
30
+ * ```
31
+ *
32
+ * As written this holds every locale. Under gemi's Vite plugin the call is
33
+ * rewritten so each locale becomes its own chunk and a page downloads only the
34
+ * one it renders in — but the plugin is strictly an optimization, and the
35
+ * behaviour is identical without it (in `bun test`, and in server code that
36
+ * does not go through the bundler).
37
+ *
38
+ * The first locale in the literal is the source language: a key missing from
39
+ * another locale falls back to it rather than rendering as its own key.
40
+ */
41
+ export interface DefineDictionaryOptions {
42
+ /**
43
+ * The locale this dictionary is authored in. Keys missing from another locale
44
+ * fall back to it, and it is what renders when the app has no locale
45
+ * configured.
46
+ *
47
+ * Optional, but worth setting on any dictionary that is not uniformly
48
+ * translated: without it the source language is whichever locale appears
49
+ * first in the literal, so adding a key at the top can re-point every
50
+ * fallback in the dictionary.
51
+ */
52
+ sourceLocale?: string;
53
+ }
54
+ export declare function defineDictionary<const T extends DictionaryTranslations>(translations: T, options?: DefineDictionaryOptions): DictionaryHandle<T>;
55
+ /**
56
+ * The rewritten form of a `defineDictionary` call — emitted by
57
+ * `packages/gemi/vite/dictionaryPlugin.ts`, never written by hand. `loaders`
58
+ * holds one dynamic import per locale so the bundler emits one chunk per
59
+ * locale and the untaken ones never reach the browser.
60
+ */
61
+ export declare function __gemi_dict__<const T extends DictionaryTranslations = DictionaryTranslations>(id: string, loaders: Record<string, () => Promise<{
62
+ default: LocaleStrings;
63
+ }>>): DictionaryHandle<T>;
64
+ export {};
65
+ //# sourceMappingURL=defineDictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineDictionary.d.ts","sourceRoot":"","sources":["../../i18n/defineDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,gBAAgB,CAC/B,CAAC,SAAS,sBAAsB,GAAG,sBAAsB;IAEzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAC/C,yEAAyE;IACzE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,sBAAsB,EACrE,YAAY,EAAE,CAAC,EACf,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAAC,CAAC,CAAC,CAKrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,CAAC,CAAC,SAAS,sBAAsB,GAAG,sBAAsB,EAE/D,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC,GACjE,gBAAgB,CAAC,CAAC,CAAC,CAWrB"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * The process-wide store behind `defineDictionary`.
3
+ *
4
+ * Every handle registers itself here when its module is *evaluated*, not when
5
+ * it is first rendered. That ordering is the whole point: the view router
6
+ * already awaits a view's module import before rendering it, so by the time it
7
+ * calls `preloadDictionaries()` every dictionary reachable from that view has
8
+ * announced itself and can be warmed in one pass. `useDictionary` then reads
9
+ * resolved strings synchronously and the render never suspends — on the server
10
+ * that keeps the SSR stream from fragmenting into a reveal chunk per
11
+ * dictionary, and on the client it keeps navigations flash-free.
12
+ *
13
+ * `use()` in the hook is the correctness net for what a preload pass cannot
14
+ * see: a dictionary inside a `lazy()` subtree, or a locale switch.
15
+ */
16
+ import type { LocaleStrings } from "./dictionaryShape";
17
+ export type { LocaleStrings };
18
+ export interface RegisteredDictionary {
19
+ id: string;
20
+ /** Locales this dictionary declares. Empty when it is not known up front. */
21
+ locales: string[];
22
+ load: (locale: string) => Promise<LocaleStrings> | LocaleStrings;
23
+ }
24
+ export declare function registerDictionary(entry: RegisteredDictionary): void;
25
+ /** A marker for "everything registered so far", for `preloadDictionaries`. */
26
+ export declare function dictionaryRegistrationMark(): number;
27
+ export declare function getResolved(id: string, locale: string): LocaleStrings | undefined;
28
+ /**
29
+ * Load one dictionary's locale, de-duplicating concurrent callers. Returns the
30
+ * strings directly (not a promise) when they are already resolved, so the hook
31
+ * can take a synchronous path without a microtask hop.
32
+ */
33
+ export declare function loadDictionary(id: string, locale: string): LocaleStrings | Promise<LocaleStrings>;
34
+ /**
35
+ * The same load, but as something safe to hand React's `use()`.
36
+ *
37
+ * A rejecting promise passed to `use()` rethrows during render, which unmounts
38
+ * the whole route into its error boundary — or, before the shell is ready,
39
+ * fails the server render outright. A missing locale chunk is a routine event
40
+ * (a browser holding stale HTML after a rolling deploy requests a hashed
41
+ * filename that no longer exists), and the deprecated `useTranslator` degraded
42
+ * every i18n failure to rendering the raw key. This keeps that behaviour: the
43
+ * returned promise resolves to no strings, and the per-key lookup in
44
+ * `useDictionary` then logs and falls back to the key.
45
+ *
46
+ * The degraded promise is cached because `use()` requires a stable reference —
47
+ * a fresh `.then()` per render would suspend forever. It is only consulted
48
+ * after `getResolved` misses, so a later successful load supersedes it without
49
+ * needing to be evicted.
50
+ */
51
+ export declare function loadDictionaryForRender(id: string, locale: string): LocaleStrings | Promise<LocaleStrings>;
52
+ /**
53
+ * Warm dictionaries for `locale`, so a subsequent render reads them
54
+ * synchronously instead of suspending.
55
+ *
56
+ * With a `mark` — the value taken *before* importing a view module — only that
57
+ * view's newly announced dictionaries are loaded. That is the client's use: it
58
+ * knows exactly which chunk just arrived.
59
+ *
60
+ * Without one, it resumes from where this locale last got to. The server calls
61
+ * it per request and has no mark to give (view modules were imported long
62
+ * before the request arrived), so a plain scan from zero would walk every
63
+ * dictionary in the app on every request — re-deriving the per-request cost this
64
+ * whole change exists to remove, just with a smaller constant.
65
+ *
66
+ * An empty `locale` means the app configured none, and each dictionary is warmed
67
+ * under its own source language — the same key `useDictionary` will ask for, so
68
+ * the warmed entry is the one the render actually reads.
69
+ *
70
+ * Failures are swallowed: a dictionary that cannot load should surface at the
71
+ * component that actually reads it, where the error names the key, rather than
72
+ * take down an unrelated navigation.
73
+ */
74
+ export declare function preloadDictionaries(locale: string, mark?: number): Promise<void>;
75
+ /**
76
+ * Seed already-known strings, skipping the loader entirely. The client calls
77
+ * this with the SSR payload before hydration so the first render matches the
78
+ * server without a single dictionary request.
79
+ */
80
+ export declare function seedDictionaries(dictionaries: Record<string, LocaleStrings> | undefined, locale: string): void;
81
+ export declare function setActiveLocale(locale: string | undefined | null): void;
82
+ export declare function getActiveLocale(): string | null;
83
+ /** Test-only: drop all state so cases do not leak into one another. */
84
+ export declare function __resetDictionaryRegistry(): void;
85
+ //# sourceMappingURL=dictionaryRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dictionaryRegistry.d.ts","sourceRoot":"","sources":["../../i18n/dictionaryRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;CAClE;AAmED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,QAW7D;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,SAAS,CAE3B;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAyCxC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GACb,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA6BxC;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,iBAgCtE;AAiBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,EACvD,MAAM,EAAE,MAAM,QAQf;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,QAIhE;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AA8BD,uEAAuE;AACvE,wBAAgB,yBAAyB,SAQxC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `gemi/dictionary` — the runtime behind `defineDictionary`, and nothing else.
3
+ *
4
+ * Deliberately tiny and dependency-free: no React, no facades, no service
5
+ * container. Dictionaries are authored next to components but also read from
6
+ * controllers, jobs and email templates, so this has to be importable from
7
+ * either side, and the Vite plugin's rewritten call sites import `__gemi_dict__`
8
+ * from here. It is in `GEMI_EXTERNAL_SPECIFIERS`, so an SSR-built view resolves
9
+ * it to the server's own instance — one registry, shared with the view router
10
+ * that preloads through it.
11
+ */
12
+ export { defineDictionary, __gemi_dict__, type DictionaryHandle, } from "./defineDictionary";
13
+ export { preloadDictionaries, seedDictionaries, loadDictionary, dictionaryRegistrationMark, getActiveLocale, setActiveLocale, __resetDictionaryRegistry, type LocaleStrings, } from "./dictionaryRegistry";
14
+ export { createDictionarySink, type DictionarySink, type DictionaryUse, } from "./dictionarySink";
15
+ export { dictionaryId, dictionaryLocales, localeStrings, type DictionaryTranslations, } from "./dictionaryShape";
16
+ //# sourceMappingURL=dictionaryRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dictionaryRuntime.d.ts","sourceRoot":"","sources":["../../i18n/dictionaryRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // @bun
2
+ import{e as y,f as p}from"../chunk-6rhebm18.js";import{n as c,o as d,q as l}from"../chunk-gn9zjgep.js";import{rd as e,sd as i,ud as t,vd as r,wd as o,xd as n,yd as a,zd as s}from"../chunk-e3mggavt.js";import"../chunk-7f5ad759.js";export{o as setActiveLocale,r as seedDictionaries,t as preloadDictionaries,d as localeStrings,i as loadDictionary,n as getActiveLocale,e as dictionaryRegistrationMark,c as dictionaryLocales,l as dictionaryId,y as defineDictionary,s as createDictionarySink,a as __resetDictionaryRegistry,p as __gemi_dict__};
3
+
4
+ //# debugId=1D3A8957C964E4AC64756E2164756E21