gemi 0.57.0 → 0.58.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 (223) hide show
  1. package/dist/app/index.js +1 -1
  2. package/dist/broadcasting/index.js +1 -1
  3. package/dist/bun/plugin.js +1 -1
  4. package/dist/bun/preload.js +1 -1
  5. package/dist/{chunk-msyqr4y7.js → chunk-0a2xgcj3.js} +2 -2
  6. package/dist/{chunk-msyqr4y7.js.map → chunk-0a2xgcj3.js.map} +1 -1
  7. package/dist/{chunk-64bq12j3.js → chunk-3337e5g0.js} +2 -2
  8. package/dist/{chunk-64bq12j3.js.map → chunk-3337e5g0.js.map} +1 -1
  9. package/dist/{chunk-5fmbsy4q.js → chunk-3aa287k7.js} +2 -2
  10. package/dist/{chunk-5fmbsy4q.js.map → chunk-3aa287k7.js.map} +1 -1
  11. package/dist/{chunk-f233yzxf.js → chunk-3g5bjvdf.js} +2 -2
  12. package/dist/{chunk-f233yzxf.js.map → chunk-3g5bjvdf.js.map} +1 -1
  13. package/dist/{chunk-rc2asvyf.js → chunk-3xadx444.js} +2 -2
  14. package/dist/{chunk-rc2asvyf.js.map → chunk-3xadx444.js.map} +1 -1
  15. package/dist/{chunk-7pn0bnsc.js → chunk-3zxwscmf.js} +2 -2
  16. package/dist/{chunk-4f69ygc8.js.map → chunk-3zxwscmf.js.map} +1 -1
  17. package/dist/{chunk-jzatvtjd.js → chunk-437085pe.js} +2 -2
  18. package/dist/{chunk-jzatvtjd.js.map → chunk-437085pe.js.map} +1 -1
  19. package/dist/{chunk-17m5wxv0.js → chunk-4yt5x8s2.js} +2 -2
  20. package/dist/{chunk-17m5wxv0.js.map → chunk-4yt5x8s2.js.map} +1 -1
  21. package/dist/{chunk-dxxak51x.js → chunk-5athahgr.js} +2 -2
  22. package/dist/{chunk-dxxak51x.js.map → chunk-5athahgr.js.map} +1 -1
  23. package/dist/{chunk-dcwjwfjc.js → chunk-5n2rvfh3.js} +2 -2
  24. package/dist/{chunk-dcwjwfjc.js.map → chunk-5n2rvfh3.js.map} +1 -1
  25. package/dist/{chunk-r8637cqv.js → chunk-6235kb30.js} +3 -3
  26. package/dist/{chunk-r8637cqv.js.map → chunk-6235kb30.js.map} +1 -1
  27. package/dist/{chunk-67zyjx0c.js → chunk-7b0x860b.js} +2 -2
  28. package/dist/{chunk-67zyjx0c.js.map → chunk-7b0x860b.js.map} +1 -1
  29. package/dist/{chunk-q8k3gh8k.js → chunk-7ef5n8k2.js} +2 -2
  30. package/dist/{chunk-q8k3gh8k.js.map → chunk-7ef5n8k2.js.map} +1 -1
  31. package/dist/{chunk-n2zmg475.js → chunk-7j6wbv12.js} +2 -2
  32. package/dist/{chunk-n2zmg475.js.map → chunk-7j6wbv12.js.map} +1 -1
  33. package/dist/{chunk-g5pj95dz.js → chunk-86jebsm4.js} +3 -3
  34. package/dist/{chunk-g5pj95dz.js.map → chunk-86jebsm4.js.map} +1 -1
  35. package/dist/chunk-87qab82w.js +5 -0
  36. package/dist/{chunk-9j9wqrb2.js.map → chunk-87qab82w.js.map} +7 -3
  37. package/dist/{chunk-dwz0wbhj.js → chunk-8gew8b9a.js} +2 -2
  38. package/dist/{chunk-dwz0wbhj.js.map → chunk-8gew8b9a.js.map} +1 -1
  39. package/dist/{chunk-74aj8ms2.js → chunk-9m2tbf3n.js} +2 -2
  40. package/dist/{chunk-74aj8ms2.js.map → chunk-9m2tbf3n.js.map} +1 -1
  41. package/dist/{chunk-bw8kt7ps.js → chunk-a2sgjpvq.js} +2 -2
  42. package/dist/{chunk-bw8kt7ps.js.map → chunk-a2sgjpvq.js.map} +1 -1
  43. package/dist/chunk-b35e128b.js +5 -0
  44. package/dist/{chunk-r9as9htn.js.map → chunk-b35e128b.js.map} +1 -1
  45. package/dist/{chunk-1esnvq2z.js → chunk-cyaz97p5.js} +2 -2
  46. package/dist/{chunk-1esnvq2z.js.map → chunk-cyaz97p5.js.map} +1 -1
  47. package/dist/{chunk-mqwrmbh4.js → chunk-d125j8t0.js} +3 -3
  48. package/dist/{chunk-mqwrmbh4.js.map → chunk-d125j8t0.js.map} +1 -1
  49. package/dist/{chunk-yhzb9qpk.js → chunk-dgsgjg53.js} +2 -2
  50. package/dist/{chunk-yhzb9qpk.js.map → chunk-dgsgjg53.js.map} +1 -1
  51. package/dist/{chunk-6c14bexh.js → chunk-eejmhtnc.js} +2 -2
  52. package/dist/{chunk-6c14bexh.js.map → chunk-eejmhtnc.js.map} +1 -1
  53. package/dist/{chunk-vdzb29p5.js → chunk-fjm4y8bn.js} +2 -2
  54. package/dist/{chunk-vdzb29p5.js.map → chunk-fjm4y8bn.js.map} +1 -1
  55. package/dist/{chunk-ma5rj4st.js → chunk-grdahng8.js} +2 -2
  56. package/dist/{chunk-ma5rj4st.js.map → chunk-grdahng8.js.map} +1 -1
  57. package/dist/{chunk-5txddtaa.js → chunk-gw6agevz.js} +3 -3
  58. package/dist/{chunk-5txddtaa.js.map → chunk-gw6agevz.js.map} +1 -1
  59. package/dist/{chunk-ba0rkpk5.js → chunk-hppagzz4.js} +4 -4
  60. package/dist/{chunk-ba0rkpk5.js.map → chunk-hppagzz4.js.map} +1 -1
  61. package/dist/chunk-hwa5sqw5.js +19 -0
  62. package/dist/{chunk-r9h6aj7g.js.map → chunk-hwa5sqw5.js.map} +12 -6
  63. package/dist/chunk-hxf1re93.js +4 -0
  64. package/dist/{chunk-6fc909z5.js.map → chunk-hxf1re93.js.map} +6 -5
  65. package/dist/{chunk-d6kgxmp7.js → chunk-j0c6ytkj.js} +3 -3
  66. package/dist/{chunk-d6kgxmp7.js.map → chunk-j0c6ytkj.js.map} +1 -1
  67. package/dist/{chunk-4f69ygc8.js → chunk-jhkjz9jr.js} +2 -2
  68. package/dist/{chunk-7pn0bnsc.js.map → chunk-jhkjz9jr.js.map} +1 -1
  69. package/dist/{chunk-e9zz0zfv.js → chunk-k0fvsyeh.js} +1 -1
  70. package/dist/{chunk-j21tm6jf.js → chunk-keehyx51.js} +2 -2
  71. package/dist/{chunk-j21tm6jf.js.map → chunk-keehyx51.js.map} +1 -1
  72. package/dist/{chunk-a70s8pz4.js → chunk-m3xy5xyf.js} +2 -2
  73. package/dist/{chunk-a70s8pz4.js.map → chunk-m3xy5xyf.js.map} +1 -1
  74. package/dist/{chunk-swe2b6rv.js → chunk-mkfpnymy.js} +1 -1
  75. package/dist/{chunk-qkrba9c2.js → chunk-mwpdp09e.js} +2 -2
  76. package/dist/{chunk-qkrba9c2.js.map → chunk-mwpdp09e.js.map} +1 -1
  77. package/dist/{chunk-tzsnadg1.js → chunk-pmhd6zfc.js} +3 -3
  78. package/dist/{chunk-tzsnadg1.js.map → chunk-pmhd6zfc.js.map} +1 -1
  79. package/dist/chunk-qb5mv6pj.js +5 -0
  80. package/dist/chunk-qb5mv6pj.js.map +12 -0
  81. package/dist/{chunk-nqk3cx97.js → chunk-qgxr0g36.js} +2 -2
  82. package/dist/{chunk-nqk3cx97.js.map → chunk-qgxr0g36.js.map} +1 -1
  83. package/dist/{chunk-btr9kyqh.js → chunk-sy7jbdeb.js} +2 -2
  84. package/dist/{chunk-btr9kyqh.js.map → chunk-sy7jbdeb.js.map} +1 -1
  85. package/dist/{chunk-5z5xskg1.js → chunk-szss069z.js} +2 -2
  86. package/dist/{chunk-5z5xskg1.js.map → chunk-szss069z.js.map} +1 -1
  87. package/dist/{chunk-rxsmwbxv.js → chunk-tss5svjr.js} +2 -2
  88. package/dist/{chunk-rxsmwbxv.js.map → chunk-tss5svjr.js.map} +1 -1
  89. package/dist/{chunk-32d510cd.js → chunk-vr90r27j.js} +2 -2
  90. package/dist/{chunk-32d510cd.js.map → chunk-vr90r27j.js.map} +1 -1
  91. package/dist/{chunk-jny4f23c.js → chunk-w62m5f0n.js} +3 -3
  92. package/dist/{chunk-jny4f23c.js.map → chunk-w62m5f0n.js.map} +1 -1
  93. package/dist/{chunk-k5bjfhz8.js → chunk-w7rf99w6.js} +2 -2
  94. package/dist/{chunk-k5bjfhz8.js.map → chunk-w7rf99w6.js.map} +1 -1
  95. package/dist/{chunk-fck5yw2s.js → chunk-wbrj0gya.js} +2 -2
  96. package/dist/{chunk-fck5yw2s.js.map → chunk-wbrj0gya.js.map} +1 -1
  97. package/dist/{chunk-11dkjm1r.js → chunk-xdv1b8mr.js} +2 -2
  98. package/dist/{chunk-11dkjm1r.js.map → chunk-xdv1b8mr.js.map} +1 -1
  99. package/dist/{chunk-katt90qz.js → chunk-xey9cbap.js} +2 -2
  100. package/dist/{chunk-katt90qz.js.map → chunk-xey9cbap.js.map} +1 -1
  101. package/dist/{chunk-ae6xz52s.js → chunk-xzk827r3.js} +2 -2
  102. package/dist/{chunk-ae6xz52s.js.map → chunk-xzk827r3.js.map} +1 -1
  103. package/dist/{chunk-8v81dvje.js → chunk-y6a8r2bn.js} +3 -3
  104. package/dist/{chunk-8v81dvje.js.map → chunk-y6a8r2bn.js.map} +1 -1
  105. package/dist/{chunk-nkbreczg.js → chunk-yed5whgs.js} +3 -3
  106. package/dist/{chunk-nkbreczg.js.map → chunk-yed5whgs.js.map} +1 -1
  107. package/dist/{chunk-cecq6q1b.js → chunk-yf7vz71n.js} +1 -1
  108. package/dist/{chunk-knvxwrwh.js → chunk-yjzs247s.js} +2 -2
  109. package/dist/{chunk-knvxwrwh.js.map → chunk-yjzs247s.js.map} +1 -1
  110. package/dist/{chunk-ka4tdhm8.js → chunk-yy0eb9wn.js} +2 -2
  111. package/dist/{chunk-ka4tdhm8.js.map → chunk-yy0eb9wn.js.map} +1 -1
  112. package/dist/{chunk-1nqdzmvm.js → chunk-zbxgbr12.js} +2 -2
  113. package/dist/{chunk-1nqdzmvm.js.map → chunk-zbxgbr12.js.map} +1 -1
  114. package/dist/{chunk-wrypq618.js → chunk-zh2egcyb.js} +2 -2
  115. package/dist/{chunk-wrypq618.js.map → chunk-zh2egcyb.js.map} +1 -1
  116. package/dist/chunks/ThemeProvider-li1J_igh.js.map +1 -1
  117. package/dist/client/ClientRouter.d.ts.map +1 -1
  118. package/dist/client/ProgressManager.d.ts +1 -1
  119. package/dist/client/RouteStateContext.d.ts +9 -0
  120. package/dist/client/RouteStateContext.d.ts.map +1 -1
  121. package/dist/client/ServerDataProvider.d.ts +7 -0
  122. package/dist/client/ServerDataProvider.d.ts.map +1 -1
  123. package/dist/client/index.d.ts +2 -1
  124. package/dist/client/index.d.ts.map +1 -1
  125. package/dist/client/index.js +68 -10
  126. package/dist/client/index.js.map +1 -1
  127. package/dist/client/rpc.d.ts +42 -0
  128. package/dist/client/rpc.d.ts.map +1 -1
  129. package/dist/client/useFeature.d.ts +40 -0
  130. package/dist/client/useFeature.d.ts.map +1 -0
  131. package/dist/config/index.js +1 -1
  132. package/dist/console/run.js +2 -2
  133. package/dist/console/run.js.map +1 -1
  134. package/dist/container/index.js +2 -2
  135. package/dist/container/index.js.map +1 -1
  136. package/dist/database/index.js +2 -2
  137. package/dist/database/index.js.map +1 -1
  138. package/dist/email/index.js +2 -2
  139. package/dist/email/index.js.map +1 -1
  140. package/dist/facades/Features.d.ts +57 -0
  141. package/dist/facades/Features.d.ts.map +1 -0
  142. package/dist/facades/index.d.ts +1 -0
  143. package/dist/facades/index.d.ts.map +1 -1
  144. package/dist/facades/index.js +2 -2
  145. package/dist/facades/index.js.map +1 -1
  146. package/dist/foundation/index.js +2 -2
  147. package/dist/foundation/index.js.map +1 -1
  148. package/dist/gemi.d.ts +13 -5
  149. package/dist/http/ApiRouter.d.ts +3 -2
  150. package/dist/http/ApiRouter.d.ts.map +1 -1
  151. package/dist/http/HttpRequest.d.ts +4 -0
  152. package/dist/http/HttpRequest.d.ts.map +1 -1
  153. package/dist/http/ViewRouter.d.ts +127 -4
  154. package/dist/http/ViewRouter.d.ts.map +1 -1
  155. package/dist/http/index.d.ts +1 -0
  156. package/dist/http/index.d.ts.map +1 -1
  157. package/dist/http/index.js +2 -2
  158. package/dist/http/index.js.map +1 -1
  159. package/dist/http/middlewareList.d.ts +25 -0
  160. package/dist/http/middlewareList.d.ts.map +1 -0
  161. package/dist/http/requestContext.d.ts +57 -0
  162. package/dist/http/requestContext.d.ts.map +1 -1
  163. package/dist/i18n/dictionaryRuntime.js +2 -2
  164. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  165. package/dist/i18n/index.js +2 -2
  166. package/dist/i18n/index.js.map +1 -1
  167. package/dist/kernel/index.js +3 -3
  168. package/dist/kernel/index.js.map +3 -3
  169. package/dist/kernel/providers.d.ts +2 -2
  170. package/dist/kernel/providers.d.ts.map +1 -1
  171. package/dist/orm/index.js +2 -2
  172. package/dist/orm/index.js.map +1 -1
  173. package/dist/server/index.js +2 -2
  174. package/dist/server/index.js.map +1 -1
  175. package/dist/services/features/FeatureFlagStore.d.ts +60 -0
  176. package/dist/services/features/FeatureFlagStore.d.ts.map +1 -0
  177. package/dist/services/features/FeatureManager.d.ts +82 -0
  178. package/dist/services/features/FeatureManager.d.ts.map +1 -0
  179. package/dist/services/features/FeaturesServiceProvider.d.ts +6 -0
  180. package/dist/services/features/FeaturesServiceProvider.d.ts.map +1 -0
  181. package/dist/services/features/bucket.d.ts +57 -0
  182. package/dist/services/features/bucket.d.ts.map +1 -0
  183. package/dist/services/features/config.d.ts +57 -0
  184. package/dist/services/features/config.d.ts.map +1 -0
  185. package/dist/services/features/context.d.ts +31 -0
  186. package/dist/services/features/context.d.ts.map +1 -0
  187. package/dist/services/features/defineFeature.d.ts +145 -0
  188. package/dist/services/features/defineFeature.d.ts.map +1 -0
  189. package/dist/services/features/evaluate.d.ts +74 -0
  190. package/dist/services/features/evaluate.d.ts.map +1 -0
  191. package/dist/services/features/sources/DatabaseFeatureFlagSource.d.ts +19 -0
  192. package/dist/services/features/sources/DatabaseFeatureFlagSource.d.ts.map +1 -0
  193. package/dist/services/features/sources/FeatureFlagSource.d.ts +30 -0
  194. package/dist/services/features/sources/FeatureFlagSource.d.ts.map +1 -0
  195. package/dist/services/features/sources/StaticFeatureFlagSource.d.ts +24 -0
  196. package/dist/services/features/sources/StaticFeatureFlagSource.d.ts.map +1 -0
  197. package/dist/services/features/types.d.ts +63 -0
  198. package/dist/services/features/types.d.ts.map +1 -0
  199. package/dist/services/index.d.ts +12 -0
  200. package/dist/services/index.d.ts.map +1 -1
  201. package/dist/services/index.js +8 -8
  202. package/dist/services/index.js.map +6 -4
  203. package/dist/services/router/ViewRouteDispatcher.d.ts +8 -0
  204. package/dist/services/router/ViewRouteDispatcher.d.ts.map +1 -1
  205. package/dist/services/router/createFlatViewRoutes.d.ts +14 -0
  206. package/dist/services/router/createFlatViewRoutes.d.ts.map +1 -1
  207. package/dist/services/router/streamQueryInjection.d.ts.map +1 -1
  208. package/dist/support/index.js +2 -2
  209. package/dist/support/index.js.map +1 -1
  210. package/dist/testing/Page.d.ts +12 -0
  211. package/dist/testing/Page.d.ts.map +1 -1
  212. package/dist/testing/index.js +7 -3
  213. package/dist/testing/index.js.map +1 -1
  214. package/package.json +1 -1
  215. package/dist/chunk-6fc909z5.js +0 -4
  216. package/dist/chunk-9j9wqrb2.js +0 -5
  217. package/dist/chunk-qfzyym5h.js +0 -5
  218. package/dist/chunk-qfzyym5h.js.map +0 -12
  219. package/dist/chunk-r9as9htn.js +0 -5
  220. package/dist/chunk-r9h6aj7g.js +0 -19
  221. /package/dist/{chunk-e9zz0zfv.js.map → chunk-k0fvsyeh.js.map} +0 -0
  222. /package/dist/{chunk-swe2b6rv.js.map → chunk-mkfpnymy.js.map} +0 -0
  223. /package/dist/{chunk-cecq6q1b.js.map → chunk-yf7vz71n.js.map} +0 -0
@@ -6,4 +6,46 @@ export interface ViewRPC {
6
6
  }
7
7
  export interface I18nDictionary {
8
8
  }
9
+ /**
10
+ * The application's features: `{ "feature-key": boolean }`.
11
+ *
12
+ * Augmented from the app's `app/features/index.ts` by the framework's own
13
+ * `gemi.d.ts`, the same way `RPC` and `I18nDictionary` are — so an application
14
+ * never edits a declaration file to get `useFeature("...")` typed.
15
+ *
16
+ * Every feature is a boolean, so mostly only the *keys* carry information. The
17
+ * one exception is a `serverOnly: true` declaration, whose value type is a
18
+ * marker rather than `boolean` — see `ClientFeatureKey`.
19
+ *
20
+ * Empty here, which is what makes an app with no `app/features` still compile:
21
+ * `FeatureKey` below falls back to `string` when nothing has been declared.
22
+ */
23
+ export interface Features {
24
+ }
25
+ /**
26
+ * The keys the `Features` facade accepts — every declared feature, server-only
27
+ * ones included, since evaluating those on the server is what they are for.
28
+ *
29
+ * Falls back to `string` while `Features` is unaugmented. Without the fallback
30
+ * `keyof Features` is `never`, and every call — including a correct one — would
31
+ * fail to compile for an app that has not declared any features yet, or for one
32
+ * whose `gemi.d.ts` did not resolve. Degrading to loose strings is the right
33
+ * failure: it is the pre-feature status quo, not a broken build.
34
+ */
35
+ export type FeatureKey = [keyof Features] extends [never] ? string : keyof Features;
36
+ /**
37
+ * The subset of those keys `useFeature` accepts: the ones that actually reach
38
+ * the browser.
39
+ *
40
+ * A `serverOnly: true` feature is deliberately withheld from the SSR payload, so
41
+ * reading it on the client is `false` forever no matter what the database says —
42
+ * a silent wrong answer, and the failure mode `serverOnly` exists to create.
43
+ * Filtering it out here turns that into a compile error at the call site, which
44
+ * is where somebody can still act on it.
45
+ *
46
+ * Same `string` fallback as above, for the same reason.
47
+ */
48
+ export type ClientFeatureKey = [keyof Features] extends [never] ? string : {
49
+ [K in keyof Features]-?: Features[K] extends boolean ? K : never;
50
+ }[keyof Features];
9
51
  //# sourceMappingURL=rpc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../client/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,GAAI,SAAQ,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;CAAG;AAEjE,MAAM,WAAW,OAAO;CAAG;AAE3B,MAAM,WAAW,cAAc;CAAG"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../client/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,GAAI,SAAQ,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;CAAG;AAEjE,MAAM,WAAW,OAAO;CAAG;AAE3B,MAAM,WAAW,cAAc;CAAG;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;CAAG;AAE5B;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,QAAQ,CAAC;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3D,MAAM,GACN;KACG,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ClientFeatureKey } from "./rpc";
2
+ /**
3
+ * Reads a feature evaluated by the server for this request.
4
+ *
5
+ * ```tsx
6
+ * if (useFeature("new-checkout")) {
7
+ * return <NewCheckout />;
8
+ * }
9
+ * ```
10
+ *
11
+ * Keys are typed against `app/features`, so a typo is a compile error rather
12
+ * than a feature that silently reads as off. Features declared
13
+ * `serverOnly: true` are excluded from that set: they are withheld from the
14
+ * payload on purpose, so reading one here could only ever answer `false`. Use
15
+ * the `Features` facade for those.
16
+ *
17
+ * ## It never fetches
18
+ *
19
+ * The value comes from the payload the server already sent — embedded in the
20
+ * document on first load, and replaced by each navigation's envelope after
21
+ * that. So this is a context read: no request, no suspense, no loading state,
22
+ * and no flash of the wrong branch, which is the failure mode that makes
23
+ * client-evaluated features unusable for anything above the fold.
24
+ *
25
+ * The corollary is that switching a feature on reaches an open page on its next
26
+ * navigation, not instantly.
27
+ *
28
+ * ## Reads route state, not server data
29
+ *
30
+ * `RouteStateContext` is what each navigation replaces — the same reason
31
+ * `useLocale` reads it. Reading `ServerDataContext` instead would pin every
32
+ * feature to the values from the initial document for the life of the session.
33
+ */
34
+ export declare function useFeature(key: ClientFeatureKey): boolean;
35
+ /**
36
+ * Every feature the server sent, for a component that needs to branch on
37
+ * several at once or forward them somewhere.
38
+ */
39
+ export declare function useFeatures(): Record<string, boolean>;
40
+ //# sourceMappingURL=useFeature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeature.d.ts","sourceRoot":"","sources":["../../client/useFeature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAkBzD;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGrD"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import"../chunk-4f69ygc8.js";function j(h){return h}export{j as defineConfig};
2
+ import"../chunk-jhkjz9jr.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{Ra as A,Sa as l}from"../chunk-yf8kxjr2.js";import{Kb as p,wb as q,zb as m}from"../chunk-tzsnadg1.js";import{Nb as c}from"../chunk-vdzb29p5.js";import{_e as u}from"../chunk-btr9kyqh.js";import"../chunk-mqwrmbh4.js";import"../chunk-yhzb9qpk.js";import"../chunk-4f69ygc8.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{Ra as A,Sa as l}from"../chunk-yf8kxjr2.js";import{Cb as q,Fb as m,Qb as p}from"../chunk-pmhd6zfc.js";import{Tb as c}from"../chunk-fjm4y8bn.js";import{qf as u}from"../chunk-sy7jbdeb.js";import"../chunk-d125j8t0.js";import"../chunk-dgsgjg53.js";import"../chunk-jhkjz9jr.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=358B51A62992F9FF64756E2164756E21
16
+ //# debugId=8A642F81BB06012E64756E2164756E21
@@ -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": "358B51A62992F9FF64756E2164756E21",
12
+ "debugId": "8A642F81BB06012E64756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{jf as e,kf as o}from"../chunk-yhzb9qpk.js";import"../chunk-4f69ygc8.js";export{o as Container,e as BindingResolutionError};
2
+ import{Bf as e,Cf as o}from"../chunk-dgsgjg53.js";import"../chunk-jhkjz9jr.js";export{o as Container,e as BindingResolutionError};
3
3
 
4
- //# debugId=2A87522D0B6B6D7D64756E2164756E21
4
+ //# debugId=1F0CF11E85A534FD64756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "2A87522D0B6B6D7D64756E2164756E21",
7
+ "debugId": "1F0CF11E85A534FD64756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{sa as b}from"../chunk-11dkjm1r.js";import"../chunk-17m5wxv0.js";import{$c as f,Sc as e,Tc as o,Uc as r,Vc as n,Wc as a,Xc as t,Yc as i,Zc as s,_c as C,ad as D,bd as c,cd as p}from"../chunk-8v81dvje.js";import"../chunk-f233yzxf.js";import"../chunk-btr9kyqh.js";import"../chunk-4f69ygc8.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{sa as b}from"../chunk-xdv1b8mr.js";import"../chunk-4yt5x8s2.js";import{fd as e,gd as o,hd as r,id as n,jd as a,kd as t,ld as i,md as s,nd as C,od as f,pd as D,qd as c,rd as p}from"../chunk-y6a8r2bn.js";import"../chunk-3g5bjvdf.js";import"../chunk-sy7jbdeb.js";import"../chunk-jhkjz9jr.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=0A22964D57C066E064756E2164756E21
4
+ //# debugId=9ED8D936A6624ACC64756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "0A22964D57C066E064756E2164756E21",
7
+ "debugId": "9ED8D936A6624ACC64756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{df as o}from"../chunk-jny4f23c.js";import{ef as p}from"../chunk-1esnvq2z.js";import{if as f}from"../chunk-mqwrmbh4.js";import"../chunk-yhzb9qpk.js";import"../chunk-4f69ygc8.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{vf as o}from"../chunk-w62m5f0n.js";import{wf as p}from"../chunk-cyaz97p5.js";import{Af as f}from"../chunk-d125j8t0.js";import"../chunk-dgsgjg53.js";import"../chunk-jhkjz9jr.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=CA2B9B7457CC9B5964756E2164756E21
5
+ //# debugId=D11057B57419C1B364756E2164756E21
@@ -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": "CA2B9B7457CC9B5964756E2164756E21",
19
+ "debugId": "D11057B57419C1B364756E2164756E21",
20
20
  "names": []
21
21
  }
@@ -0,0 +1,57 @@
1
+ import type { FeatureKey } from "../client/rpc";
2
+ import type { FeatureSubject } from "../services/features/context";
3
+ import { FeatureManager, type FeatureScope } from "../services/features/FeatureManager";
4
+ import type { FeatureEvaluation } from "../services/features/types";
5
+ import { Facade } from "./Facade";
6
+ /**
7
+ * Features on the server.
8
+ *
9
+ * Keys are typed against the application's `app/features` declarations, so a
10
+ * typo is a compile error rather than a feature that is silently always off.
11
+ *
12
+ * ```ts
13
+ * if (await Features.enabled("new-checkout")) { ... }
14
+ *
15
+ * // In a job or cron tick, where there is no request to read a user from:
16
+ * if (await Features.for({ user }).enabled("digest-v2")) { ... }
17
+ * ```
18
+ *
19
+ * ## Everything is async, and there is no sync variant
20
+ *
21
+ * After the boot-time warm-up every call settles in a microtask with no I/O —
22
+ * the snapshot is in memory and refreshes behind the request. The promise is
23
+ * kept anyway because the *first* call in a cold process does hit the database,
24
+ * and because a source that is not the local table will too. A sync variant
25
+ * would have to answer that case with "off", which is a feature silently
26
+ * disappearing during exactly the window a deploy is rolling.
27
+ *
28
+ * ## The ambient user
29
+ *
30
+ * Read from the request store, not `Auth.user()` — features must be evaluable on
31
+ * an anonymous page without throwing. On a route with no `auth` middleware,
32
+ * where nothing has resolved a session, a `when` that reads `ctx.user` sees
33
+ * `null`.
34
+ */
35
+ export declare class Features extends Facade {
36
+ static getFacadeAccessor(): typeof FeatureManager;
37
+ /** Whether the feature is on for this request. */
38
+ static enabled(key: FeatureKey): Promise<boolean>;
39
+ /**
40
+ * Every client-visible feature for this request. This is what the SSR payload
41
+ * carries.
42
+ */
43
+ static all(): Promise<Record<string, boolean>>;
44
+ /**
45
+ * Value plus why.
46
+ *
47
+ * **Server-side only.** `reason` distinguishes "targeted by name" from "landed
48
+ * in the rollout", which is a fact about the viewer — never serialize it into
49
+ * a response.
50
+ */
51
+ static explain(key: FeatureKey): Promise<FeatureEvaluation>;
52
+ /** Evaluation against an explicit subject rather than the ambient request. */
53
+ static for(subject: FeatureSubject): FeatureScope;
54
+ /** Reloads this process's snapshot now, rather than waiting for the TTL. */
55
+ static refresh(): Promise<void>;
56
+ }
57
+ //# sourceMappingURL=Features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Features.d.ts","sourceRoot":"","sources":["../../facades/Features.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,QAAS,SAAQ,MAAM;IAClC,MAAM,CAAC,iBAAiB;IAIxB,kDAAkD;IAClD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;;OAGG;IACH,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9C;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI3D,8EAA8E;IAC9E,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY;IAIjD,4EAA4E;IAC5E,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -12,5 +12,6 @@ export { Meta } from "./Meta";
12
12
  export { Cookie } from "./Cookie";
13
13
  export { Redis } from "./Redis";
14
14
  export { RateLimiter } from "./RateLimiter";
15
+ export { Features } from "./Features";
15
16
  export { DB, ConnectionQueries } from "./DB";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../facades/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{Ac as o,Tb as b,Vb as c,Wb as d,Xb as e,bc as f,nc as g,sc as h,tc as i,uc as j,vc as k,xc as l,yc as m,zc as n}from"../chunk-r9h6aj7g.js";import"../chunk-g5pj95dz.js";import"../chunk-8v81dvje.js";import"../chunk-n2zmg475.js";import{ce as a}from"../chunk-6fc909z5.js";import"../chunk-qfzyym5h.js";import"../chunk-f233yzxf.js";import"../chunk-btr9kyqh.js";import"../chunk-1esnvq2z.js";import"../chunk-mqwrmbh4.js";import"../chunk-yhzb9qpk.js";import"../chunk-4f69ygc8.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{$b as c,Gc as h,Hc as i,Ic as j,Jc as k,Lc as l,Mc as m,Nc as n,Oc as o,Pc as p,Zb as b,ac as d,bc as e,hc as f,tc as g}from"../chunk-hwa5sqw5.js";import"../chunk-86jebsm4.js";import"../chunk-y6a8r2bn.js";import"../chunk-7j6wbv12.js";import{se as a}from"../chunk-hxf1re93.js";import"../chunk-qb5mv6pj.js";import"../chunk-3g5bjvdf.js";import"../chunk-sy7jbdeb.js";import"../chunk-cyaz97p5.js";import"../chunk-d125j8t0.js";import"../chunk-dgsgjg53.js";import"../chunk-jhkjz9jr.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,n as Features,b as Facade,p as DB,k as Cookie,o as ConnectionQueries,c as Broadcast,d as Auth};
3
3
 
4
- //# debugId=FCA85B760B1FE84364756E2164756E21
4
+ //# debugId=64F71C3CB92CBF1164756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "FCA85B760B1FE84364756E2164756E21",
7
+ "debugId": "64F71C3CB92CBF1164756E2164756E21",
8
8
  "names": []
9
9
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{hf as r,if as o}from"../chunk-mqwrmbh4.js";import"../chunk-yhzb9qpk.js";import"../chunk-4f69ygc8.js";export{o as app,r as Application};
2
+ import{Af as o,zf as r}from"../chunk-d125j8t0.js";import"../chunk-dgsgjg53.js";import"../chunk-jhkjz9jr.js";export{o as app,r as Application};
3
3
 
4
- //# debugId=0147C0E83551EA9E64756E2164756E21
4
+ //# debugId=663D3B5998050B7F64756E2164756E21
@@ -4,6 +4,6 @@
4
4
  "sourcesContent": [
5
5
  ],
6
6
  "mappings": "",
7
- "debugId": "0147C0E83551EA9E64756E2164756E21",
7
+ "debugId": "663D3B5998050B7F64756E2164756E21",
8
8
  "names": []
9
9
  }
package/dist/gemi.d.ts CHANGED
@@ -1,21 +1,25 @@
1
1
  import type Api from "@/app/http/routes/api";
2
2
  import type View from "@/app/http/routes/view";
3
3
  import type I18nComponents from "@/app/i18n";
4
+ import type AppFeatures from "@/app/features";
4
5
 
5
6
  import type { ApiRouter, CreateRPC, CreateViewRPC, ViewRouter } from "gemi/http";
6
7
  import type { CreateI18nDictionary } from "gemi/client";
8
+ import type { CreateFeatures, FeatureRegistry } from "gemi/services";
7
9
 
8
10
  /**
9
- * The augmentation that gives an application its own route, view and dictionary
10
- * types. Referenced by `client/index.ts` and `facades/index.ts`, so importing
11
- * from either is the whole of the wiring — an application maintains nothing,
12
- * and a capability added here reaches every application on upgrade.
11
+ * The augmentation that gives an application its own route, view, dictionary
12
+ * and feature types. Referenced by `client/index.ts` and `facades/index.ts`, so
13
+ * importing from either is the whole of the wiring — an application maintains
14
+ * nothing, and a capability added here reaches every application on upgrade.
13
15
  *
14
16
  * The cost of delivering it from inside the package is that it is no longer
15
17
  * opt-in: every program that imports `gemi/client` compiles this file, whether
16
- * or not it is an application. So the three imports above have to be allowed to
18
+ * or not it is an application. So the four imports above have to be allowed to
17
19
  * fail — a shared package in a monorepo, an app on a `src/` layout, an app using
18
20
  * a different alias, or a playground all reach here with no `@/app/*` mapping.
21
+ * `app/features` is additionally optional *within* an application: it is the one
22
+ * of the four an app can simply not have.
19
23
  *
20
24
  * `Resolved` is what makes that safe, and the shape is load-bearing. An
21
25
  * unresolved import is `any`, and `CreateRPC<any>` does not terminate: it
@@ -38,8 +42,12 @@ type AppViewRPC<T> = IsAny<T> extends true ? {} : T extends ViewRouter ? CreateV
38
42
 
39
43
  type AppDictionary<T> = IsAny<T> extends true ? {} : CreateI18nDictionary<T>;
40
44
 
45
+ type AppFeatureMap<T> =
46
+ IsAny<T> extends true ? {} : T extends FeatureRegistry ? CreateFeatures<T> : {};
47
+
41
48
  declare module "gemi/client" {
42
49
  export interface RPC extends AppRPC<Api> {}
43
50
  export interface ViewRPC extends AppViewRPC<View> {}
44
51
  export interface I18nDictionary extends AppDictionary<typeof I18nComponents> {}
52
+ export interface Features extends AppFeatureMap<typeof AppFeatures> {}
45
53
  }
@@ -2,6 +2,7 @@ import type { RemoveGroupPrefix } from "../client/types";
2
2
  import type { KeyAndValue, KeyAndValueToObject } from "../internal/type-utils";
3
3
  import { Controller, ResourceController, type ControllerMethods } from "./Controller";
4
4
  import { HttpRequest } from "./HttpRequest";
5
+ import { type MiddlewareInput } from "./middlewareList";
5
6
  import type { MiddlewareReturnType } from "./Router";
6
7
  import { type StreamOutput } from "./createStreamResponse";
7
8
  type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
@@ -20,7 +21,7 @@ export declare class RouteHandler<M extends HttpMethod, Input, Output, Params> {
20
21
  middlewares: string[];
21
22
  };
22
23
  run(_req: HttpRequest<Input, Params>): any;
23
- middleware(middlewareList: string[]): this;
24
+ middleware(middlewareList: MiddlewareInput): this;
24
25
  }
25
26
  export declare class ProxyHandler {
26
27
  url: string;
@@ -89,7 +90,7 @@ export type ResourceRoutes<T extends new () => ResourceController> = {
89
90
  };
90
91
  };
91
92
  export type ResourceMethod = "list" | "store" | "show" | "update" | "delete";
92
- export type ResourceMiddlewareConfig = Partial<Record<ResourceMethod, string[]>>;
93
+ export type ResourceMiddlewareConfig = Partial<Record<ResourceMethod, MiddlewareInput>>;
93
94
  export type ResourceRoute<T extends new () => ResourceController> = ResourceRoutes<T> & {
94
95
  middleware(config: ResourceMiddlewareConfig): ResourceRoute<T>;
95
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRouter.d.ts","sourceRoot":"","sources":["../../http/ApiRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApiRouter.d.ts","sourceRoot":"","sources":["../../http/ApiRouter.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,10 @@ export declare class HttpRequest<T extends Body = Record<string, never>, Params
38
38
  locale: string | null;
39
39
  metadata: import("./Metadata").Metadata;
40
40
  rangeRequest: import("./range").ByteRange | null;
41
+ sessionId: string | null;
42
+ featureEvaluations: Map<string, unknown> | null;
43
+ featureContext: unknown;
44
+ featureBuckets: Map<string, number> | null;
41
45
  req: HttpRequest;
42
46
  setLocale(locale: string): void;
43
47
  renderMeta(): {
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAIA,cAAM,KAAK,CAAC,CAAC;IACC,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAE9B,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAM;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;gBAGb,GAAG,CAAC,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,GAAG,EACZ,IAAI,CAAC,EAAE,eAAe,EACtB,SAAS,CAAC,EAAE,MAAM;IA8CpB,MAAM;IAIN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;OAIG;IACH,KAAK;IAIL,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIV,SAAS;IAuCvB,OAAO,CAAC,aAAa;IAoDf,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAI1B,SAAS,IAAI,OAAO,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC;CAoBH"}
1
+ {"version":3,"file":"HttpRequest.d.ts","sourceRoot":"","sources":["../../http/HttpRequest.ts"],"names":[],"mappings":"AAIA,cAAM,KAAK,CAAC,CAAC;IACC,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,CAAC;IAEpB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IAIhB,MAAM,IAAI,CAAC;CAGnB;AAuHD,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC3B,KAAK,WAAW,GAAG,SAAS,CAAC;AAC7B,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,aAAa,GAAG,OAAO,MAAM,EAAE,CAAC;AACrC,KAAK,YAAY,GAAG,UAAU,CAAC;AAC/B,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,YAAY,GAAG,oBAAoB,CAAC;AACzC,KAAK,SAAS,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,MAAM,CACzC,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,qBAAa,WAAW,CACtB,CAAC,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAE9B,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,CAAM;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;gBAGb,GAAG,CAAC,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,GAAG,EACZ,IAAI,CAAC,EAAE,eAAe,EACtB,SAAS,CAAC,EAAE,MAAM;IA8CpB,MAAM;IAIN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIH;;;;OAIG;IACH,KAAK;IAIL,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;YAIV,SAAS;IAuCvB,OAAO,CAAC,aAAa;IAoDf,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAI1B,SAAS,IAAI,OAAO,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;KACjB,CAAC;CAoBH"}