gemi 0.157.1 → 0.160.2

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 (251) hide show
  1. package/dist/ai/Agent.d.ts +231 -55
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +45 -11
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/eval/Eval.d.ts +2 -11
  6. package/dist/ai/eval/Eval.d.ts.map +1 -1
  7. package/dist/ai/generate.d.ts +165 -7
  8. package/dist/ai/generate.d.ts.map +1 -1
  9. package/dist/ai/index.d.ts +5 -5
  10. package/dist/ai/index.d.ts.map +1 -1
  11. package/dist/ai/index.js +11 -11
  12. package/dist/ai/index.js.map +4 -4
  13. package/dist/ai/usageMeter.d.ts +149 -6
  14. package/dist/ai/usageMeter.d.ts.map +1 -1
  15. package/dist/app/index.js +1 -1
  16. package/dist/bin/gemi.js +178 -121
  17. package/dist/bin/gemi.js.map +5 -4
  18. package/dist/bun/plugin.js +1 -1
  19. package/dist/bun/preload.js +1 -1
  20. package/dist/{chunk-0v3bca8k.js → chunk-0b8m1f07.js} +3 -3
  21. package/dist/{chunk-0v3bca8k.js.map → chunk-0b8m1f07.js.map} +1 -1
  22. package/dist/{chunk-xff7tkde.js → chunk-0qernzn1.js} +2 -2
  23. package/dist/{chunk-xff7tkde.js.map → chunk-0qernzn1.js.map} +1 -1
  24. package/dist/chunk-0qrbspbe.js +5 -0
  25. package/dist/{chunk-6np1r9gk.js.map → chunk-0qrbspbe.js.map} +1 -1
  26. package/dist/{chunk-517fjfme.js → chunk-0vb4j7cx.js} +3 -3
  27. package/dist/{chunk-517fjfme.js.map → chunk-0vb4j7cx.js.map} +1 -1
  28. package/dist/{chunk-0yjm936b.js → chunk-191gkynh.js} +3 -3
  29. package/dist/{chunk-0yjm936b.js.map → chunk-191gkynh.js.map} +1 -1
  30. package/dist/chunk-1xxh48bd.js +4 -0
  31. package/dist/{chunk-cmt3jw6j.js.map → chunk-1xxh48bd.js.map} +2 -2
  32. package/dist/chunk-27habdva.js +4 -0
  33. package/dist/{chunk-3ndc8adc.js.map → chunk-27habdva.js.map} +2 -2
  34. package/dist/{chunk-qvngsa1c.js → chunk-2ednvght.js} +2 -2
  35. package/dist/{chunk-qvngsa1c.js.map → chunk-2ednvght.js.map} +1 -1
  36. package/dist/chunk-3cvza61a.js +4 -0
  37. package/dist/{chunk-pw5h5935.js.map → chunk-3cvza61a.js.map} +2 -2
  38. package/dist/{chunk-1de3awrh.js → chunk-3d8jxky6.js} +3 -3
  39. package/dist/{chunk-1de3awrh.js.map → chunk-3d8jxky6.js.map} +1 -1
  40. package/dist/chunk-3vmc6adw.js +4 -0
  41. package/dist/{chunk-z7224rhm.js.map → chunk-3vmc6adw.js.map} +2 -2
  42. package/dist/{chunk-7yww9aq7.js → chunk-4670xxae.js} +2 -2
  43. package/dist/{chunk-7yww9aq7.js.map → chunk-4670xxae.js.map} +1 -1
  44. package/dist/{chunk-xtqd9vpp.js → chunk-4vqnv41y.js} +2 -2
  45. package/dist/{chunk-xtqd9vpp.js.map → chunk-4vqnv41y.js.map} +1 -1
  46. package/dist/{chunk-exb35whf.js → chunk-4ye6p5yk.js} +2 -2
  47. package/dist/{chunk-exb35whf.js.map → chunk-4ye6p5yk.js.map} +1 -1
  48. package/dist/{chunk-9md6acv2.js → chunk-57qnqcrp.js} +1 -1
  49. package/dist/{chunk-zcg6m7gf.js → chunk-5c6dfy75.js} +2 -2
  50. package/dist/{chunk-zcg6m7gf.js.map → chunk-5c6dfy75.js.map} +1 -1
  51. package/dist/{chunk-t7yt8egz.js → chunk-5pc21syf.js} +3 -3
  52. package/dist/{chunk-t7yt8egz.js.map → chunk-5pc21syf.js.map} +1 -1
  53. package/dist/{chunk-5zxxd7qp.js → chunk-5qzxyj68.js} +1 -1
  54. package/dist/{chunk-pgdxqrjv.js → chunk-664ewdjv.js} +4 -4
  55. package/dist/{chunk-pgdxqrjv.js.map → chunk-664ewdjv.js.map} +2 -2
  56. package/dist/chunk-6d6p0q3p.js +5 -0
  57. package/dist/{chunk-7zy6nq9e.js.map → chunk-6d6p0q3p.js.map} +2 -2
  58. package/dist/{chunk-k1aw97dm.js → chunk-6ytezxzj.js} +2 -2
  59. package/dist/{chunk-78wht1ph.js.map → chunk-6ytezxzj.js.map} +1 -1
  60. package/dist/{chunk-00z7s34q.js → chunk-79nypedr.js} +2 -2
  61. package/dist/{chunk-00z7s34q.js.map → chunk-79nypedr.js.map} +1 -1
  62. package/dist/{chunk-4vnrnbn3.js → chunk-7bc9ypbk.js} +3 -3
  63. package/dist/{chunk-4vnrnbn3.js.map → chunk-7bc9ypbk.js.map} +1 -1
  64. package/dist/{chunk-wg0ttent.js → chunk-7rfw4h2x.js} +3 -3
  65. package/dist/{chunk-wg0ttent.js.map → chunk-7rfw4h2x.js.map} +1 -1
  66. package/dist/{chunk-rrz2ry81.js → chunk-8m3m5hcf.js} +2 -2
  67. package/dist/{chunk-rrz2ry81.js.map → chunk-8m3m5hcf.js.map} +1 -1
  68. package/dist/{chunk-aq5zx3vg.js → chunk-8tyw6faf.js} +2 -2
  69. package/dist/{chunk-aq5zx3vg.js.map → chunk-8tyw6faf.js.map} +1 -1
  70. package/dist/{chunk-p83cjehh.js → chunk-8z29qvvm.js} +3 -3
  71. package/dist/{chunk-p83cjehh.js.map → chunk-8z29qvvm.js.map} +1 -1
  72. package/dist/{chunk-dhq7zv0t.js → chunk-982x8jps.js} +2 -2
  73. package/dist/{chunk-dhq7zv0t.js.map → chunk-982x8jps.js.map} +1 -1
  74. package/dist/{chunk-38kjpa6q.js → chunk-98byy5m4.js} +1 -1
  75. package/dist/{chunk-986eh0n3.js → chunk-9983zmhx.js} +2 -2
  76. package/dist/{chunk-986eh0n3.js.map → chunk-9983zmhx.js.map} +1 -1
  77. package/dist/{chunk-r5y2khw4.js → chunk-9f2ps5v2.js} +2 -2
  78. package/dist/{chunk-r5y2khw4.js.map → chunk-9f2ps5v2.js.map} +1 -1
  79. package/dist/{chunk-q3e1bqrs.js → chunk-bfj2jafb.js} +3 -3
  80. package/dist/{chunk-q3e1bqrs.js.map → chunk-bfj2jafb.js.map} +1 -1
  81. package/dist/{chunk-0vc2akg0.js → chunk-bqxt1she.js} +1 -1
  82. package/dist/{chunk-159j20yr.js → chunk-bzcfw8qd.js} +2 -2
  83. package/dist/{chunk-159j20yr.js.map → chunk-bzcfw8qd.js.map} +1 -1
  84. package/dist/chunk-cn6dteec.js +6 -0
  85. package/dist/{chunk-vp6t1gmt.js.map → chunk-cn6dteec.js.map} +2 -2
  86. package/dist/{chunk-x82f3q6a.js → chunk-cq16azbw.js} +4 -4
  87. package/dist/{chunk-x82f3q6a.js.map → chunk-cq16azbw.js.map} +1 -1
  88. package/dist/{chunk-72f6pbap.js → chunk-csvffxjh.js} +2 -2
  89. package/dist/{chunk-72f6pbap.js.map → chunk-csvffxjh.js.map} +1 -1
  90. package/dist/chunk-ctrmztan.js +4 -0
  91. package/dist/{chunk-42646nt7.js.map → chunk-ctrmztan.js.map} +2 -2
  92. package/dist/chunk-cxz7wycm.js +10 -0
  93. package/dist/{chunk-set6qmjw.js.map → chunk-cxz7wycm.js.map} +3 -3
  94. package/dist/{chunk-4t2j3zcg.js → chunk-d249m2ct.js} +2 -2
  95. package/dist/{chunk-4t2j3zcg.js.map → chunk-d249m2ct.js.map} +2 -2
  96. package/dist/{chunk-p2c72zx3.js → chunk-d3195ypx.js} +2 -2
  97. package/dist/{chunk-p2c72zx3.js.map → chunk-d3195ypx.js.map} +1 -1
  98. package/dist/{chunk-h3gcxf2k.js → chunk-day21sfa.js} +3 -3
  99. package/dist/{chunk-h3gcxf2k.js.map → chunk-day21sfa.js.map} +1 -1
  100. package/dist/{chunk-78wht1ph.js → chunk-egwz89ze.js} +2 -2
  101. package/dist/{chunk-k1aw97dm.js.map → chunk-egwz89ze.js.map} +1 -1
  102. package/dist/chunk-fcjjd162.js +4 -0
  103. package/dist/{chunk-jrv31jp9.js.map → chunk-fcjjd162.js.map} +2 -2
  104. package/dist/{chunk-rtv4ax8z.js → chunk-g71ppv6x.js} +2 -2
  105. package/dist/{chunk-rtv4ax8z.js.map → chunk-g71ppv6x.js.map} +1 -1
  106. package/dist/{chunk-56a3vnrj.js → chunk-gmeeyg19.js} +3 -3
  107. package/dist/{chunk-56a3vnrj.js.map → chunk-gmeeyg19.js.map} +1 -1
  108. package/dist/chunk-htbvkr11.js +41 -0
  109. package/dist/chunk-htbvkr11.js.map +28 -0
  110. package/dist/{chunk-ctrae98c.js → chunk-hxe06cgw.js} +2 -2
  111. package/dist/{chunk-ctrae98c.js.map → chunk-hxe06cgw.js.map} +1 -1
  112. package/dist/{chunk-yzsyg1f7.js → chunk-j144nwvh.js} +3 -3
  113. package/dist/{chunk-yzsyg1f7.js.map → chunk-j144nwvh.js.map} +1 -1
  114. package/dist/{chunk-q7k2hc45.js → chunk-jarsydtr.js} +3 -3
  115. package/dist/{chunk-q7k2hc45.js.map → chunk-jarsydtr.js.map} +1 -1
  116. package/dist/chunk-jx1crzgg.js +117 -0
  117. package/dist/{chunk-t66ex43f.js.map → chunk-jx1crzgg.js.map} +10 -9
  118. package/dist/chunk-k43m5dvs.js +4 -0
  119. package/dist/{chunk-69c2s43a.js.map → chunk-k43m5dvs.js.map} +2 -2
  120. package/dist/chunk-kan3yz82.js +5 -0
  121. package/dist/{chunk-3t4nw1n2.js.map → chunk-kan3yz82.js.map} +2 -2
  122. package/dist/{chunk-ah2jy1vx.js → chunk-m4pkbndk.js} +2 -2
  123. package/dist/{chunk-ah2jy1vx.js.map → chunk-m4pkbndk.js.map} +1 -1
  124. package/dist/{chunk-fe12f946.js → chunk-m73mjzeh.js} +2 -2
  125. package/dist/{chunk-fe12f946.js.map → chunk-m73mjzeh.js.map} +1 -1
  126. package/dist/{chunk-9gt9qdge.js → chunk-m8a80sgn.js} +1 -1
  127. package/dist/{chunk-px3ctjxh.js → chunk-msxhf3m6.js} +2 -2
  128. package/dist/{chunk-px3ctjxh.js.map → chunk-msxhf3m6.js.map} +1 -1
  129. package/dist/chunk-p6nkfcn1.js +5 -0
  130. package/dist/{chunk-kwc68y45.js.map → chunk-p6nkfcn1.js.map} +2 -2
  131. package/dist/{chunk-ss3yn4g2.js → chunk-p9syxzxh.js} +3 -3
  132. package/dist/{chunk-ss3yn4g2.js.map → chunk-p9syxzxh.js.map} +1 -1
  133. package/dist/{chunk-yewj83ez.js → chunk-pyyhmeg1.js} +3 -3
  134. package/dist/{chunk-yewj83ez.js.map → chunk-pyyhmeg1.js.map} +1 -1
  135. package/dist/{chunk-nvhbkqmd.js → chunk-qbsk0jr8.js} +2 -2
  136. package/dist/{chunk-nvhbkqmd.js.map → chunk-qbsk0jr8.js.map} +1 -1
  137. package/dist/{chunk-g5d62d1n.js → chunk-qsbtqh47.js} +2 -2
  138. package/dist/{chunk-g5d62d1n.js.map → chunk-qsbtqh47.js.map} +1 -1
  139. package/dist/{chunk-wnjvfmqc.js → chunk-qz9n2e59.js} +3 -3
  140. package/dist/{chunk-wnjvfmqc.js.map → chunk-qz9n2e59.js.map} +1 -1
  141. package/dist/{chunk-qbvm5q1g.js → chunk-rq3wrwfa.js} +1 -1
  142. package/dist/{chunk-8eyxj78g.js → chunk-ryq2ezgt.js} +3 -3
  143. package/dist/{chunk-8eyxj78g.js.map → chunk-ryq2ezgt.js.map} +1 -1
  144. package/dist/{chunk-v10xzpqs.js → chunk-s0xwqcrf.js} +2 -2
  145. package/dist/{chunk-v10xzpqs.js.map → chunk-s0xwqcrf.js.map} +1 -1
  146. package/dist/{chunk-kbdt84xg.js → chunk-szdbsmq7.js} +2 -2
  147. package/dist/{chunk-kbdt84xg.js.map → chunk-szdbsmq7.js.map} +1 -1
  148. package/dist/{chunk-n95dppzm.js → chunk-tsbxdz4h.js} +2 -2
  149. package/dist/{chunk-n95dppzm.js.map → chunk-tsbxdz4h.js.map} +1 -1
  150. package/dist/chunk-v0gjdknx.js +4 -0
  151. package/dist/{chunk-7426gfgw.js.map → chunk-v0gjdknx.js.map} +2 -2
  152. package/dist/chunk-v8fx4vgq.js +4 -0
  153. package/dist/{chunk-zfbqgzwa.js.map → chunk-v8fx4vgq.js.map} +2 -2
  154. package/dist/{chunk-dce3w52r.js → chunk-vb73ddwz.js} +3 -3
  155. package/dist/{chunk-dce3w52r.js.map → chunk-vb73ddwz.js.map} +1 -1
  156. package/dist/{chunk-xyyq577r.js → chunk-w0rfypzx.js} +2 -2
  157. package/dist/{chunk-xyyq577r.js.map → chunk-w0rfypzx.js.map} +1 -1
  158. package/dist/{chunk-tr8se94g.js → chunk-weyv3zrt.js} +3 -3
  159. package/dist/{chunk-tr8se94g.js.map → chunk-weyv3zrt.js.map} +1 -1
  160. package/dist/{chunk-9kyfaeey.js → chunk-wtddr3vs.js} +2 -2
  161. package/dist/{chunk-9kyfaeey.js.map → chunk-wtddr3vs.js.map} +1 -1
  162. package/dist/{chunk-tzheb6ak.js → chunk-xp7x27n8.js} +3 -3
  163. package/dist/{chunk-tzheb6ak.js.map → chunk-xp7x27n8.js.map} +1 -1
  164. package/dist/{chunk-ycn7w2e9.js → chunk-yzw2tvqq.js} +2 -2
  165. package/dist/{chunk-ycn7w2e9.js.map → chunk-yzw2tvqq.js.map} +1 -1
  166. package/dist/{chunk-wbv6218d.js → chunk-zz2n9pa5.js} +3 -3
  167. package/dist/{chunk-wbv6218d.js.map → chunk-zz2n9pa5.js.map} +1 -1
  168. package/dist/client/index.js +1 -1
  169. package/dist/client/index.js.map +1 -1
  170. package/dist/config/index.js +1 -1
  171. package/dist/console/run.js +2 -2
  172. package/dist/console/run.js.map +1 -1
  173. package/dist/container/index.js +2 -2
  174. package/dist/container/index.js.map +1 -1
  175. package/dist/database/index.js +2 -2
  176. package/dist/database/index.js.map +1 -1
  177. package/dist/email/index.js +2 -2
  178. package/dist/email/index.js.map +1 -1
  179. package/dist/facades/index.js +2 -2
  180. package/dist/facades/index.js.map +1 -1
  181. package/dist/foundation/index.js +2 -2
  182. package/dist/foundation/index.js.map +1 -1
  183. package/dist/http/ApiRouter.d.ts.map +1 -1
  184. package/dist/http/McpRouter.d.ts +203 -6
  185. package/dist/http/McpRouter.d.ts.map +1 -1
  186. package/dist/http/index.d.ts +1 -1
  187. package/dist/http/index.d.ts.map +1 -1
  188. package/dist/http/index.js +2 -2
  189. package/dist/http/index.js.map +1 -1
  190. package/dist/i18n/dictionaryRuntime.js +2 -2
  191. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  192. package/dist/i18n/index.js +2 -2
  193. package/dist/i18n/index.js.map +1 -1
  194. package/dist/kernel/index.js +2 -2
  195. package/dist/kernel/index.js.map +1 -1
  196. package/dist/orm/index.js +2 -2
  197. package/dist/orm/index.js.map +1 -1
  198. package/dist/probe/index.d.ts +79 -0
  199. package/dist/probe/index.d.ts.map +1 -0
  200. package/dist/probe/index.js +8 -0
  201. package/dist/probe/index.js.map +10 -0
  202. package/dist/server/index.js +2 -2
  203. package/dist/server/index.js.map +1 -1
  204. package/dist/services/image-optimization/ImageManager.d.ts +3 -0
  205. package/dist/services/image-optimization/ImageManager.d.ts.map +1 -1
  206. package/dist/services/image-optimization/config.d.ts +12 -0
  207. package/dist/services/image-optimization/config.d.ts.map +1 -1
  208. package/dist/services/image-optimization/fetchSourceImage.d.ts +37 -0
  209. package/dist/services/image-optimization/fetchSourceImage.d.ts.map +1 -0
  210. package/dist/services/index.d.ts +1 -1
  211. package/dist/services/index.d.ts.map +1 -1
  212. package/dist/services/index.js +9 -9
  213. package/dist/services/index.js.map +3 -3
  214. package/dist/services/mcp/McpRegistry.d.ts.map +1 -1
  215. package/dist/services/queue/work.js +2 -2
  216. package/dist/services/queue/work.js.map +1 -1
  217. package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts +95 -13
  218. package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts.map +1 -1
  219. package/dist/services/router/ApiRouteDispatcher.d.ts +12 -0
  220. package/dist/services/router/ApiRouteDispatcher.d.ts.map +1 -1
  221. package/dist/services/router/createFlatApiRoutes.d.ts +10 -0
  222. package/dist/services/router/createFlatApiRoutes.d.ts.map +1 -1
  223. package/dist/stats/route-table.js +1 -1
  224. package/dist/support/index.js +2 -2
  225. package/dist/support/index.js.map +1 -1
  226. package/dist/vitest/index.js +1 -1
  227. package/package.json +2 -1
  228. package/dist/chunk-3ndc8adc.js +0 -4
  229. package/dist/chunk-3t4nw1n2.js +0 -5
  230. package/dist/chunk-42646nt7.js +0 -4
  231. package/dist/chunk-69c2s43a.js +0 -4
  232. package/dist/chunk-6np1r9gk.js +0 -5
  233. package/dist/chunk-7426gfgw.js +0 -4
  234. package/dist/chunk-7zy6nq9e.js +0 -5
  235. package/dist/chunk-cmt3jw6j.js +0 -4
  236. package/dist/chunk-jrv31jp9.js +0 -4
  237. package/dist/chunk-kwc68y45.js +0 -5
  238. package/dist/chunk-pw5h5935.js +0 -4
  239. package/dist/chunk-set6qmjw.js +0 -10
  240. package/dist/chunk-t66ex43f.js +0 -117
  241. package/dist/chunk-vp6t1gmt.js +0 -6
  242. package/dist/chunk-xp5axyb5.js +0 -30
  243. package/dist/chunk-xp5axyb5.js.map +0 -28
  244. package/dist/chunk-z7224rhm.js +0 -4
  245. package/dist/chunk-zfbqgzwa.js +0 -4
  246. /package/dist/{chunk-9md6acv2.js.map → chunk-57qnqcrp.js.map} +0 -0
  247. /package/dist/{chunk-5zxxd7qp.js.map → chunk-5qzxyj68.js.map} +0 -0
  248. /package/dist/{chunk-38kjpa6q.js.map → chunk-98byy5m4.js.map} +0 -0
  249. /package/dist/{chunk-0vc2akg0.js.map → chunk-bqxt1she.js.map} +0 -0
  250. /package/dist/{chunk-9gt9qdge.js.map → chunk-m8a80sgn.js.map} +0 -0
  251. /package/dist/{chunk-qbvm5q1g.js.map → chunk-rq3wrwfa.js.map} +0 -0
@@ -0,0 +1,4 @@
1
+ // @bun
2
+ import{Q as ue}from"./chunk-5pc21syf.js";import{S as _}from"./chunk-vb73ddwz.js";import"./chunk-8z29qvvm.js";import{U as w}from"./chunk-7rfw4h2x.js";import{V as l}from"./chunk-gmeeyg19.js";import{Cl as d,yl as o}from"./chunk-egwz89ze.js";var g=o(_(),1);var ie=o(l(),1);var O=o(w(),1),R=o(l(),1),J=o(_(),1);var j=o(w(),1),E=o(l(),1),U=(e,s,t)=>{let n={EcsContainer:async(r)=>{let{fromHttp:a}=await import("./chunk-d249m2ct.js"),{fromContainerMetadata:c}=await import("./chunk-p6nkfcn1.js");return t?.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"),async()=>E.chain(a(r??{}),c(r))().then(L)},Ec2InstanceMetadata:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata");let{fromInstanceMetadata:a}=await import("./chunk-p6nkfcn1.js");return async()=>a(r)().then(L)},Environment:async(r)=>{t?.debug("@aws-sdk/credential-provider-ini - credential_source is Environment");let{fromEnv:a}=await import("./chunk-rq3wrwfa.js");return async()=>a(r)().then(L)}};if(e in n)return n[e];else throw new E.CredentialsProviderError(`Unsupported credential source in profile ${s}. Got ${e}, expected EcsContainer or Ec2InstanceMetadata or Environment.`,{logger:t})},L=(e)=>j.setCredentialFeature(e,"CREDENTIALS_PROFILE_NAMED_PROVIDER","p");var N=(e,{profile:s="default",logger:t}={})=>{return Boolean(e)&&typeof e==="object"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1&&["undefined","string"].indexOf(typeof e.external_id)>-1&&["undefined","string"].indexOf(typeof e.mfa_serial)>-1&&(he(e,{profile:s,logger:t})||ye(e,{profile:s,logger:t}))},he=(e,{profile:s,logger:t})=>{let n=typeof e.source_profile==="string"&&typeof e.credential_source>"u";if(n)t?.debug?.(` ${s} isAssumeRoleWithSourceProfile source_profile=${e.source_profile}`);return n},ye=(e,{profile:s,logger:t})=>{let n=typeof e.credential_source==="string"&&typeof e.source_profile>"u";if(n)t?.debug?.(` ${s} isCredentialSourceProfile credential_source=${e.credential_source}`);return n},v=async(e,s,t,n,r={},a)=>{t.logger?.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)");let c=s[e],{source_profile:h,region:I}=c;if(!t.roleAssumer){let{getDefaultRoleAssumer:i}=await import("./chunk-v8fx4vgq.js").then((m)=>o(m.default,1));t.roleAssumer=i({...t.clientConfig,credentialProviderLogger:t.logger,parentClientConfig:{...n,...t?.parentClientConfig,region:I??t?.parentClientConfig?.region??n?.region}},t.clientPlugins)}if(h&&h in r)throw new R.CredentialsProviderError(`Detected a cycle attempting to resolve credentials for profile ${J.getProfileName(t)}. Profiles visited: `+Object.keys(r).join(", "),{logger:t.logger});t.logger?.debug(`@aws-sdk/credential-provider-ini - finding credential resolver using ${h?`source_profile=[${h}]`:`profile=[${e}]`}`);let T=h?a(h,s,t,n,{...r,[h]:!0},G(s[h]??{})):(await U(c.credential_source,e,t.logger)(t))();if(G(c))return T.then((i)=>O.setCredentialFeature(i,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"));else{let i={RoleArn:c.role_arn,RoleSessionName:c.role_session_name||`aws-sdk-js-${Date.now()}`,ExternalId:c.external_id,DurationSeconds:parseInt(c.duration_seconds||"3600",10)},{mfa_serial:u}=c;if(u){if(!t.mfaCodeProvider)throw new R.CredentialsProviderError(`Profile ${e} requires multi-factor authentication, but no MFA code callback was provided.`,{logger:t.logger,tryNextLink:!1});i.SerialNumber=u,i.TokenCode=await t.mfaCodeProvider(u)}let y=await T;return t.roleAssumer(y,i).then((m)=>O.setCredentialFeature(m,"CREDENTIALS_PROFILE_SOURCE_PROFILE","o"))}},G=(e)=>{return!e.role_arn&&!!e.credential_source};var V=o(w(),1);var C=o(w(),1),X=o(l(),1),K=o(_(),1);var k=o(l(),1),W=o(ue(),1),z=o(_(),1);import{createHash as de,createPrivateKey as we,createPublicKey as ke,sign as me}from"crypto";import{promises as D}from"fs";import{homedir as fe}from"os";import{dirname as Ie,join as Y}from"path";class b{profileData;init;callerClientConfig;static REFRESH_THRESHOLD=300000;constructor(e,s,t){this.profileData=e,this.init=s,this.callerClientConfig=t}async loadCredentials(){let e=await this.loadToken();if(!e)throw new k.CredentialsProviderError(`Failed to load a token for session ${this.loginSession}, please re-authenticate using aws login`,{tryNextLink:!1,logger:this.logger});let s=e.accessToken,t=Date.now();if(new Date(s.expiresAt).getTime()-t<=b.REFRESH_THRESHOLD)return this.refresh(e);return{accessKeyId:s.accessKeyId,secretAccessKey:s.secretAccessKey,sessionToken:s.sessionToken,accountId:s.accountId,expiration:new Date(s.expiresAt)}}get logger(){return this.init?.logger}get loginSession(){return this.profileData.login_session}async refresh(e){let{SigninClient:s,CreateOAuth2TokenCommand:t}=await import("./chunk-fcjjd162.js").then((m)=>o(m.default,1)),{logger:n,userAgentAppId:r}=this.callerClientConfig??{},c=((i)=>{return i?.metadata?.handlerProtocol==="h2"})(this.callerClientConfig?.requestHandler)?void 0:this.callerClientConfig?.requestHandler,h=this.profileData.region??await this.callerClientConfig?.region?.()??process.env.AWS_REGION,I=new s({credentials:{accessKeyId:"",secretAccessKey:""},region:h,requestHandler:c,logger:n,userAgentAppId:r,...this.init?.clientConfig});this.createDPoPInterceptor(I.middlewareStack);let T={tokenInput:{clientId:e.clientId,refreshToken:e.refreshToken,grantType:"refresh_token"}};try{let i=await I.send(new t(T)),{accessKeyId:u,secretAccessKey:y,sessionToken:m}=i.tokenOutput?.accessToken??{},{refreshToken:x,expiresIn:H}=i.tokenOutput??{};if(!u||!y||!m||!x)throw new k.CredentialsProviderError("Token refresh response missing required fields",{logger:this.logger,tryNextLink:!1});let A=(H??900)*1000,f=new Date(Date.now()+A),q={...e,accessToken:{...e.accessToken,accessKeyId:u,secretAccessKey:y,sessionToken:m,expiresAt:f.toISOString()},refreshToken:x};await this.saveToken(q);let S=q.accessToken;return{accessKeyId:S.accessKeyId,secretAccessKey:S.secretAccessKey,sessionToken:S.sessionToken,accountId:S.accountId,expiration:f}}catch(i){if(i.name==="AccessDeniedException"){let u=i.error,y;switch(u){case"TOKEN_EXPIRED":y="Your session has expired. Please reauthenticate.";break;case"USER_CREDENTIALS_CHANGED":y="Unable to refresh credentials because of a change in your password. Please reauthenticate with your new password.";break;case"INSUFFICIENT_PERMISSIONS":y="Unable to refresh credentials due to insufficient permissions. You may be missing permission for the 'CreateOAuth2Token' action.";break;default:y=`Failed to refresh token: ${String(i)}. Please re-authenticate using \`aws login\``}throw new k.CredentialsProviderError(y,{logger:this.logger,tryNextLink:!1})}throw new k.CredentialsProviderError(`Failed to refresh token: ${String(i)}. Please re-authenticate using aws login`,{logger:this.logger})}}async loadToken(){let e=this.getTokenFilePath();try{let s;try{s=await z.readFile(e,{ignoreCache:this.init?.ignoreCache})}catch{s=await D.readFile(e,"utf8")}let t=JSON.parse(s),n=["accessToken","clientId","refreshToken","dpopKey"].filter((r)=>!t[r]);if(!t.accessToken?.accountId)n.push("accountId");if(n.length>0)throw new k.CredentialsProviderError(`Token validation failed, missing fields: ${n.join(", ")}`,{logger:this.logger,tryNextLink:!1});return t}catch(s){throw new k.CredentialsProviderError(`Failed to load token from ${e}: ${String(s)}`,{logger:this.logger,tryNextLink:!1})}}async saveToken(e){let s=this.getTokenFilePath(),t=Ie(s);try{await D.mkdir(t,{recursive:!0})}catch(n){}await D.writeFile(s,JSON.stringify(e,null,2),"utf8")}getTokenFilePath(){let e=process.env.AWS_LOGIN_CACHE_DIRECTORY??Y(fe(),".aws","login","cache"),s=Buffer.from(this.loginSession,"utf8"),t=de("sha256").update(s).digest("hex");return Y(e,`${t}.json`)}derToRawSignature(e){let s=2;if(e[s]!==2)throw Error("Invalid DER signature");s++;let t=e[s++],n=e.subarray(s,s+t);if(s+=t,e[s]!==2)throw Error("Invalid DER signature");s++;let r=e[s++],a=e.subarray(s,s+r);n=n[0]===0?n.subarray(1):n,a=a[0]===0?a.subarray(1):a;let c=Buffer.concat([Buffer.alloc(32-n.length),n]),h=Buffer.concat([Buffer.alloc(32-a.length),a]);return Buffer.concat([c,h])}createDPoPInterceptor(e){e.add((s)=>async(t)=>{if(W.HttpRequest.isInstance(t.request)){let n=t.request,r=`${n.protocol}//${n.hostname}${n.port?`:${n.port}`:""}${n.path}`,a=await this.generateDpop(n.method,r);n.headers={...n.headers,DPoP:a}}return s(t)},{step:"finalizeRequest",name:"dpopInterceptor",override:!0})}async generateDpop(e="POST",s){let t=await this.loadToken();try{let n=we({key:t.dpopKey,format:"pem",type:"sec1"}),a=ke(n).export({format:"der",type:"spki"}),c=-1;for(let f=0;f<a.length;f++)if(a[f]===4){c=f;break}let h=a.slice(c+1,c+33),I=a.slice(c+33,c+65),T={alg:"ES256",typ:"dpop+jwt",jwk:{kty:"EC",crv:"P-256",x:h.toString("base64url"),y:I.toString("base64url")}},i={jti:crypto.randomUUID(),htm:e,htu:s,iat:Math.floor(Date.now()/1000)},u=Buffer.from(JSON.stringify(T)).toString("base64url"),y=Buffer.from(JSON.stringify(i)).toString("base64url"),m=`${u}.${y}`,x=me("sha256",Buffer.from(m),n),A=this.derToRawSignature(x).toString("base64url");return`${m}.${A}`}catch(n){throw new k.CredentialsProviderError(`Failed to generate Dpop proof: ${n instanceof Error?n.message:String(n)}`,{logger:this.logger,tryNextLink:!1})}}}var Q=(e)=>async({callerClientConfig:s}={})=>{e?.logger?.debug?.("@aws-sdk/credential-providers - fromLoginCredentials");let t=await K.parseKnownFiles(e||{}),n=K.getProfileName({profile:e?.profile??s?.profile}),r=t[n];if(!r?.login_session)throw new X.CredentialsProviderError(`Profile ${n} does not contain login_session.`,{tryNextLink:!0,logger:e?.logger});let c=await new b(r,e,s).loadCredentials();return C.setCredentialFeature(c,"CREDENTIALS_LOGIN","AD")};var Z=(e)=>{return Boolean(e&&e.login_session)},M=async(e,s,t)=>{let n=await Q({...s,profile:e})({callerClientConfig:t});return V.setCredentialFeature(n,"CREDENTIALS_PROFILE_LOGIN","AC")};var p=o(w(),1),ee=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.credential_process==="string",te=async(e,s)=>import("./chunk-3vmc6adw.js").then(({fromProcess:t})=>t({...e,profile:s})().then((n)=>p.setCredentialFeature(n,"CREDENTIALS_PROFILE_PROCESS","v")));var $=o(w(),1),se=async(e,s,t={},n)=>{let{fromSSO:r}=await import("./chunk-kan3yz82.js");return r({profile:e,logger:t.logger,parentClientConfig:t.parentClientConfig,clientConfig:t.clientConfig})({callerClientConfig:n}).then((a)=>{if(s.sso_session)return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO","r");else return $.setCredentialFeature(a,"CREDENTIALS_PROFILE_SSO_LEGACY","t")})},ne=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var ce=o(w(),1),P=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.aws_access_key_id==="string"&&typeof e.aws_secret_access_key==="string"&&["undefined","string"].indexOf(typeof e.aws_session_token)>-1&&["undefined","string"].indexOf(typeof e.aws_account_id)>-1,F=async(e,s)=>{s?.logger?.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials");let t={accessKeyId:e.aws_access_key_id,secretAccessKey:e.aws_secret_access_key,sessionToken:e.aws_session_token,...e.aws_credential_scope&&{credentialScope:e.aws_credential_scope},...e.aws_account_id&&{accountId:e.aws_account_id}};return ce.setCredentialFeature(t,"CREDENTIALS_PROFILE","n")};var re=o(w(),1),ae=(e)=>Boolean(e)&&typeof e==="object"&&typeof e.web_identity_token_file==="string"&&typeof e.role_arn==="string"&&["undefined","string"].indexOf(typeof e.role_session_name)>-1,oe=async(e,s,t)=>import("./chunk-1xxh48bd.js").then(({fromTokenFile:n})=>n({webIdentityTokenFile:e.web_identity_token_file,roleArn:e.role_arn,roleSessionName:e.role_session_name,roleAssumerWithWebIdentity:s.roleAssumerWithWebIdentity,logger:s.logger,parentClientConfig:s.parentClientConfig})({callerClientConfig:t}).then((r)=>re.setCredentialFeature(r,"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN","q")));var B=async(e,s,t,n,r={},a=!1)=>{let c=s[e];if(Object.keys(r).length>0&&P(c))return F(c,t);if(a||N(c,{profile:e,logger:t.logger}))return v(e,s,t,n,r,B);if(P(c))return F(c,t);if(ae(c))return oe(c,t,n);if(ee(c))return te(t,e);if(ne(c))return await se(e,c,t,n);if(Z(c))return M(e,t,n);throw new ie.CredentialsProviderError(`Could not resolve credentials using profile: [${e}] in configuration/credentials file(s).`,{logger:t.logger})};var Ne=(e={})=>async({callerClientConfig:s}={})=>{e.logger?.debug("@aws-sdk/credential-provider-ini - fromIni");let t=await g.parseKnownFiles(e);return B(g.getProfileName({profile:e.profile??s?.profile}),t,e,s)};export{Ne as fromIni};
3
+
4
+ //# debugId=E38F9B0EADD015CD64756E2164756E21
@@ -14,7 +14,7 @@
14
14
  "import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isStaticCredsProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.aws_access_key_id === \"string\" &&\n typeof arg.aws_secret_access_key === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_session_token) > -1 &&\n [\"undefined\", \"string\"].indexOf(typeof arg.aws_account_id) > -1;\nexport const resolveStaticCredentials = async (profile, options) => {\n options?.logger?.debug(\"@aws-sdk/credential-provider-ini - resolveStaticCredentials\");\n const credentials = {\n accessKeyId: profile.aws_access_key_id,\n secretAccessKey: profile.aws_secret_access_key,\n sessionToken: profile.aws_session_token,\n ...(profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }),\n ...(profile.aws_account_id && { accountId: profile.aws_account_id }),\n };\n return setCredentialFeature(credentials, \"CREDENTIALS_PROFILE\", \"n\");\n};\n",
15
15
  "import { setCredentialFeature } from \"@aws-sdk/core/client\";\nexport const isWebIdentityProfile = (arg) => Boolean(arg) &&\n typeof arg === \"object\" &&\n typeof arg.web_identity_token_file === \"string\" &&\n typeof arg.role_arn === \"string\" &&\n [\"undefined\", \"string\"].indexOf(typeof arg.role_session_name) > -1;\nexport const resolveWebIdentityCredentials = async (profile, options, callerClientConfig) => import(\"@aws-sdk/credential-provider-web-identity\").then(({ fromTokenFile }) => fromTokenFile({\n webIdentityTokenFile: profile.web_identity_token_file,\n roleArn: profile.role_arn,\n roleSessionName: profile.role_session_name,\n roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity,\n logger: options.logger,\n parentClientConfig: options.parentClientConfig,\n})({\n callerClientConfig,\n}).then((creds) => setCredentialFeature(creds, \"CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN\", \"q\")));\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "ECD3334305FA408864756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "E38F9B0EADD015CD64756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -0,0 +1,5 @@
1
+ // @bun
2
+ import{S as C}from"./chunk-vb73ddwz.js";import"./chunk-8z29qvvm.js";import{U as ne}from"./chunk-7rfw4h2x.js";import{V as _}from"./chunk-gmeeyg19.js";import{Cl as F,yl as c}from"./chunk-egwz89ze.js";var x=c(_(),1),T=c(C(),1);var q=(e)=>e&&(typeof e.sso_start_url==="string"||typeof e.sso_account_id==="string"||typeof e.sso_session==="string"||typeof e.sso_region==="string"||typeof e.sso_role_name==="string");var D=c(ne(),1);var u=c(_(),1),m=c(C(),1);var W=300000,h="To refresh this SSO session run 'aws sso login' with the corresponding profile.";var j=async(e,o={},r)=>{let{SSOOIDCClient:t}=await import("./chunk-27habdva.js").then((m)=>c(m.default,1)),n=(f)=>o.clientConfig?.[f]??o.parentClientConfig?.[f]??r?.[f];return new t(Object.assign({},o.clientConfig??{},{region:e??o.clientConfig?.region,logger:n("logger"),userAgentAppId:n("userAgentAppId")}))};var X=async(e,o,r={},t)=>{let{CreateTokenCommand:n}=await import("./chunk-27habdva.js").then((m)=>c(m.default,1));return(await j(o,r,t)).send(new n({clientId:e.clientId,clientSecret:e.clientSecret,refreshToken:e.refreshToken,grantType:"refresh_token"}))};var z=c(_(),1);var P=(e)=>{if(e.expiration&&e.expiration.getTime()<Date.now())throw new z.TokenProviderError(`Token is expired. ${h}`,!1)};var J=c(_(),1);var g=(e,o,r=!1)=>{if(typeof o>"u")throw new J.TokenProviderError(`Value not present for '${e}' in SSO Token${r?". Cannot refresh":""}. ${h}`,!1)};var V=c(C(),1);import{promises as re}from"fs";var{writeFile:te}=re,Y=(e,o)=>{let r=V.getSSOTokenFilepath(e),t=JSON.stringify(o,null,2);return te(r,t)};var B=new Date(0),Q=(e={})=>async({callerClientConfig:o}={})=>{e.logger?.debug("@aws-sdk/token-providers - fromSso");let r=await m.parseKnownFiles(e),t=m.getProfileName({profile:e.profile??o?.profile}),n=r[t];if(!n)throw new u.TokenProviderError(`Profile '${t}' could not be found in shared credentials file.`,!1);else if(!n.sso_session)throw new u.TokenProviderError(`Profile '${t}' is missing required property 'sso_session'.`);let a=n.sso_session,p=(await m.loadSsoSessionData(e))[a];if(!p)throw new u.TokenProviderError(`Sso session '${a}' could not be found in shared credentials file.`,!1);for(let i of["sso_start_url","sso_region"])if(!p[i])throw new u.TokenProviderError(`Sso session '${a}' is missing required property '${i}'.`,!1);let{sso_start_url:S,sso_region:I}=p,s;try{s=await m.getSSOTokenFromFile(a)}catch(i){throw new u.TokenProviderError(`The SSO session token associated with profile=${t} was not found or is invalid. ${h}`,!1)}g("accessToken",s.accessToken),g("expiresAt",s.expiresAt);let{accessToken:y,expiresAt:E}=s,l={token:y,expiration:new Date(E)};if(l.expiration.getTime()-Date.now()>W)return l;if(Date.now()-B.getTime()<30000)return P(l),l;g("clientId",s.clientId,!0),g("clientSecret",s.clientSecret,!0),g("refreshToken",s.refreshToken,!0);try{B.setTime(Date.now());let i=await X(s,I,e,o);g("accessToken",i.accessToken),g("expiresIn",i.expiresIn);let O=new Date(Date.now()+i.expiresIn*1000);try{await Y(a,{...s,accessToken:i.accessToken,expiresAt:O.toISOString(),refreshToken:i.refreshToken})}catch(R){}return{token:i.accessToken,expiration:O}}catch(i){return P(l),l}};var k=c(_(),1),Z=c(C(),1),A=!1,$=async({ssoStartUrl:e,ssoSession:o,ssoAccountId:r,ssoRegion:t,ssoRoleName:n,ssoClient:a,clientConfig:f,parentClientConfig:p,callerClientConfig:S,profile:I,filepath:s,configFilepath:y,ignoreCache:E,logger:l})=>{let i,O="To refresh this SSO session run aws sso login with the corresponding profile.";if(o)try{let w=await Q({profile:I,filepath:s,configFilepath:y,ignoreCache:E})();i={accessToken:w.token,expiresAt:new Date(w.expiration).toISOString()}}catch(w){throw new k.CredentialsProviderError(w.message,{tryNextLink:A,logger:l})}else try{i=await Z.getSSOTokenFromFile(e)}catch(w){throw new k.CredentialsProviderError("The SSO session associated with this profile is invalid. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:A,logger:l})}if(new Date(i.expiresAt).getTime()-Date.now()<=0)throw new k.CredentialsProviderError("The SSO session associated with this profile has expired. To refresh this SSO session run aws sso login with the corresponding profile.",{tryNextLink:A,logger:l});let{accessToken:R}=i,{SSOClient:d,GetRoleCredentialsCommand:N}=await import("./chunk-ctrmztan.js"),se=a||new d(Object.assign({},f??{},{logger:f?.logger??S?.logger??p?.logger,region:f?.region??t,userAgentAppId:f?.userAgentAppId??S?.userAgentAppId??p?.userAgentAppId})),L;try{L=await se.send(new N({accountId:r,roleName:n,accessToken:R}))}catch(w){throw new k.CredentialsProviderError(w,{tryNextLink:A,logger:l})}let{roleCredentials:{accessKeyId:M,secretAccessKey:G,sessionToken:K,expiration:b,credentialScope:H,accountId:U}={}}=L;if(!M||!G||!K||!b)throw new k.CredentialsProviderError("SSO returns an invalid temporary credential.",{tryNextLink:A,logger:l});let v={accessKeyId:M,secretAccessKey:G,sessionToken:K,expiration:new Date(b),...H&&{credentialScope:H},...U&&{accountId:U}};if(o)D.setCredentialFeature(v,"CREDENTIALS_SSO","s");else D.setCredentialFeature(v,"CREDENTIALS_SSO_LEGACY","u");return v};var ee=c(_(),1),oe=(e,o)=>{let{sso_start_url:r,sso_account_id:t,sso_region:n,sso_role_name:a}=e;if(!r||!t||!n||!a)throw new ee.CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(e).join(", ")}
3
+ Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,{tryNextLink:!1,logger:o});return e};var Ce=(e={})=>async({callerClientConfig:o}={})=>{e.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");let{ssoStartUrl:r,ssoAccountId:t,ssoRegion:n,ssoRoleName:a,ssoSession:f}=e,{ssoClient:p}=e,S=T.getProfileName({profile:e.profile??o?.profile});if(!r&&!t&&!n&&!a&&!f){let s=(await T.parseKnownFiles(e))[S];if(!s)throw new x.CredentialsProviderError(`Profile ${S} was not found.`,{logger:e.logger});if(!q(s))throw new x.CredentialsProviderError(`Profile ${S} is not configured with SSO credentials.`,{logger:e.logger});if(s?.sso_session){let d=(await T.loadSsoSessionData(e))[s.sso_session],N=` configurations in profile ${S} and sso-session ${s.sso_session}`;if(n&&n!==d.sso_region)throw new x.CredentialsProviderError("Conflicting SSO region"+N,{tryNextLink:!1,logger:e.logger});if(r&&r!==d.sso_start_url)throw new x.CredentialsProviderError("Conflicting SSO start_url"+N,{tryNextLink:!1,logger:e.logger});s.sso_region=d.sso_region,s.sso_start_url=d.sso_start_url}let{sso_start_url:y,sso_account_id:E,sso_region:l,sso_role_name:i,sso_session:O}=oe(s,e.logger);return $({ssoStartUrl:y,ssoSession:O,ssoAccountId:E,ssoRegion:l,ssoRoleName:i,ssoClient:p,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:S,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger})}else if(!r||!t||!n||!a)throw new x.CredentialsProviderError('Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',{tryNextLink:!1,logger:e.logger});else return $({ssoStartUrl:r,ssoSession:f,ssoAccountId:t,ssoRegion:n,ssoRoleName:a,ssoClient:p,clientConfig:e.clientConfig,parentClientConfig:e.parentClientConfig,callerClientConfig:e.callerClientConfig,profile:S,filepath:e.filepath,configFilepath:e.configFilepath,ignoreCache:e.ignoreCache,logger:e.logger})};export{oe as validateSsoProfile,q as isSsoProfile,Ce as fromSSO};
4
+
5
+ //# debugId=41089F33F2CB963264756E2164756E21
@@ -14,7 +14,7 @@
14
14
  "import { getSSOTokenFilepath } from \"@smithy/shared-ini-file-loader\";\nimport { promises as fsPromises } from \"node:fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n",
15
15
  "import { CredentialsProviderError } from \"@smithy/property-provider\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "3CCCD7602715411F64756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "41089F33F2CB963264756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
2
  var z="/api";function v(j){return j==="/api"||j.startsWith("/api/")}function B(j){return v(j)?j.slice(4):j}
3
- export{z as sl,v as tl,B as ul};
3
+ export{z as vl,v as wl,B as xl};
4
4
 
5
- //# debugId=4AFE25AC9D8D859764756E2164756E21
5
+ //# debugId=A9ECDCF36B09E7D364756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "/**\n * The prefix every api route is served under. The browser adds it when it\n * fetches (`/api${path}`) and the server strips it before matching, so an api\n * router's own paths never carry it.\n */\nexport const API_PREFIX = \"/api\";\n\n/**\n * Whether a request pathname is an api request: `/api` itself or anything\n * under `/api/`. A bare `startsWith(\"/api\")` also claims `/apidocs`,\n * `/api-keys` and `/apiary`, so a view route there would never render — the\n * api dispatcher would answer its 404 JSON instead.\n */\nexport function isApiPath(pathname: string): boolean {\n return pathname === API_PREFIX || pathname.startsWith(`${API_PREFIX}/`);\n}\n\n/**\n * The api router path a request pathname addresses: `/api/users/1` is\n * `/users/1`, `/api/` is `/` and `/api` is `\"\"`. Only the leading prefix is\n * stripped — `replace(\"/api\", \"\")` would also strip an `/api` inside the path\n * of a request that did not start with one (`/files/api` becoming `/files`).\n * A pathname outside `/api` comes back unchanged, so the dispatcher can still\n * be handed a request by its route path directly.\n */\nexport function apiPath(pathname: string): string {\n return isApiPath(pathname) ? pathname.slice(API_PREFIX.length) : pathname;\n}\n"
6
6
  ],
7
7
  "mappings": ";AAKO,IAAM,EAAa,OAQnB,SAAS,CAAS,CAAC,EAA2B,CACnD,OAAO,IATiB,QASU,EAAS,WAAW,OAAgB,EAWjE,SAAS,CAAO,CAAC,EAA0B,CAChD,OAAO,EAAU,CAAQ,EAAI,EAAS,MAAM,CAAiB,EAAI",
8
- "debugId": "4AFE25AC9D8D859764756E2164756E21",
8
+ "debugId": "A9ECDCF36B09E7D364756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
2
  function E(z){return z}function f(){return{url:process.env.DATABASE_URL,dialect:void 0,options:void 0,slowTransactionThreshold:b,connections:void 0}}var b=2000;class Q extends Error{constructor(z){super(`Could not infer a database dialect from "${z}". Expected a URL starting with postgres://, postgresql://, mysql://, mariadb://, `+"sqlite://, or file: \u2014 or a SQLite path such as ./dev.db or :memory:.");this.name="UnknownDatabaseUrlError"}}class j extends Error{constructor(z){super(z===void 0||z==="default"?"No database URL configured. Set the DATABASE_URL environment variable, or set `url` in app/config/database.ts.":`The "${z}" database connection has no \`url\`. Set one under \`connections.${z}\` in app/config/database.ts.`);this.name="MissingDatabaseUrlError"}}var L={"postgres:":"postgres","postgresql:":"postgres","mysql:":"mysql","mariadb:":"mariadb","sqlite:":"sqlite","file:":"sqlite"},D=[".db",".sqlite",".sqlite3"];function F(z){let B=z.trim();if(B==="")throw new Q(z);if(B===":memory:")return"sqlite";let G=B.indexOf(":");if(G!==-1){let J=B.slice(0,G+1).toLowerCase(),K=L[J];if(K)return K}if(S(B))return"sqlite";throw new Q(z)}function S(z){if(z.startsWith("./")||z.startsWith("../")||z.startsWith("/"))return!0;let B=z.toLowerCase();return D.some((G)=>B.endsWith(G))}function p(z){return z==="sqlite"}function m(z){return z==="mysql"||z==="mariadb"}import{existsSync as g,readFileSync as y,realpathSync as I,statSync as U}from"fs";import{isAbsolute as w,join as H,resolve as q}from"path";var O=H("prisma","schema.prisma");class R extends Error{constructor(z,B,G){super(`"${z}" now resolves to ${B}, which is where Prisma migrates it. gemi used to open ${G} instead, and that file holds data \u2014 so `+`opening the resolved one would quietly leave it behind. gemi will not choose. Move ${G} onto ${B} if it is the database you want, or point DATABASE_URL at an absolute path to say so explicitly.`);this.name="AmbiguousSqlitePathError"}}function C(z){let B=z.trim(),G="",J=B;for(let K of["file://","file:","sqlite://","sqlite:"])if(B.slice(0,K.length).toLowerCase()===K){G=B.slice(0,K.length),J=B.slice(K.length);break}if(J===":memory:"||J.startsWith(":memory:?"))return null;return{prefix:G,file:J}}function _(z,B,G=process.cwd()){if(B!=="sqlite")return{url:z};let J=C(z);if(!J||J.file==="")return{url:z};if(w(J.file))return{url:z};let K=J.file.indexOf("?"),Z=K===-1?J.file:J.file.slice(0,K),$=K===-1?"":J.file.slice(K),X=H(G,"prisma");if(!T(G,z))return{url:z};let W=q(G,Z),Y=q(X,Z);if(W===Y)return{url:z};return{url:`${J.prefix}${Y}${$}`,moved:{from:W,to:Y}}}function T(z,B){let G=H(z,O);if(!g(G))return!1;let J;try{J=y(G,"utf8")}catch{return!1}let Z=J.replace(/^\s*\/\/.*$/gm,"").match(/datasource\s+\w+\s*\{([\s\S]*?)\}/);if(!Z)return!1;let $=Z[1];if(!/provider\s*=\s*["']sqlite["']/.test($))return!1;let X=$.match(/url\s*=\s*env\(\s*["']([^"']+)["']\s*\)/);if(X){let Y=process.env[X[1]];return typeof Y==="string"&&Y.trim()===B.trim()}let W=$.match(/url\s*=\s*["']([^"']+)["']/);return W?W[1].trim()===B.trim():!1}function k(z){try{if(I(z.from)===I(z.to))return null}catch{}try{let B=U(z.from);return B.isFile()&&B.size>0?z.from:null}catch{return null}}var{SQL:A}=globalThis.Bun;var V="default";class P extends Error{constructor(z,B){super(`No database connection named "${z}". Configured: ${B.map((G)=>`"${G}"`).join(", ")}. Declare it under \`connections\` in app/config/database.ts.`);this.name="UnknownConnectionError"}}class x extends Error{constructor(z){super(`"${z}" is the name of the connection declared by the top-level \`url\` and \`options\`, so it cannot also appear under \`connections\`. Rename it, or move its settings up to the top level.`);this.name="ReservedConnectionNameError"}}class N extends Error{open;requested;constructor(z,B){super(`A transaction is open on the "${z}" connection, and this statement names "${B}". A transaction cannot span two connections: the statement would run outside it and stay committed when the transaction rolls back. Move this query outside the transaction, or run the whole unit on one connection.`);this.open=z;this.requested=B;this.name="CrossConnectionTransactionError"}}class M{name;config;sql;dialect;url;ready;constructor(z,B={}){this.name=z;this.config=B;let G=B.url;if(!G)throw new j(z);this.dialect=B.dialect??F(G);let J=_(G,this.dialect);if(J.moved){let K=k(J.moved);if(K)throw new R(G,J.moved.to,K)}this.url=J.url,this.sql=B.options?new A(this.url,B.options):new A(this.url),this.ready=this.configure()}async configure(){if(this.dialect!=="sqlite")return;await this.sql.unsafe("pragma foreign_keys = ON")}get query(){return this.sql}async close(){this.ready.catch(()=>{}),await this.sql.close()}}class h{config;static token="database";name=V;pools=new Map;ready;constructor(z={}){this.config=z;let{connections:B={},...G}=z;this.pools.set(V,new M(V,G));try{this.build(B,G.slowTransactionThreshold)}catch(J){for(let K of this.pools.values())K.ready.catch(()=>{}),K.close().catch(()=>{});throw J}this.ready=Promise.all([...this.pools.values()].map((J)=>J.ready)).then(()=>{return})}build(z,B){for(let[G,J]of Object.entries(z)){if(G===V)throw new x(G);this.pools.set(G,new M(G,{slowTransactionThreshold:B,...J}))}}connection(z=V){if(z===V)return this;let B=this.pools.get(z);if(!B)throw new P(z,this.connectionNames);return B}get connectionNames(){return[...this.pools.keys()]}get sql(){return this.default.sql}get dialect(){return this.default.dialect}get url(){return this.default.url}get query(){return this.sql}async close(){this.ready.catch(()=>{}),await Promise.all([...this.pools.values()].map((z)=>z.close()))}get default(){return this.pools.get(V)}}
3
- export{E as mk,f as nk,b as ok,Q as pk,j as qk,F as rk,p as sk,m as tk,R as uk,V as vk,P as wk,x as xk,N as yk,M as zk,h as Ak};
3
+ export{E as pk,f as qk,b as rk,Q as sk,j as tk,F as uk,p as vk,m as wk,R as xk,V as yk,P as zk,x as Ak,N as Bk,M as Ck,h as Dk};
4
4
 
5
- //# debugId=09B34B95A95F925C64756E2164756E21
5
+ //# debugId=50B2FB51A1A56CB764756E2164756E21
@@ -9,6 +9,6 @@
9
9
  "import type { SQL } from \"bun\";\nimport type { ConnectionConfig, DatabaseConfig } from \"./config\";\nimport {\n Connection,\n DEFAULT_CONNECTION,\n ReservedConnectionNameError,\n UnknownConnectionError,\n type DatabaseConnection,\n} from \"./Connection\";\nimport type { Dialect } from \"./dialect\";\n\n// Wraps Bun's `SQL` client. Bun ships one client that speaks SQLite, Postgres,\n// MySQL and MariaDB, so gemi does not need a driver per database — it needs to\n// know *which* one is in use, which is what `dialect` carries.\n//\n// Safe to build eagerly: Bun's client connects on the first query, not at\n// construction. (`RedisManager` used to be cited here as the parallel case. As\n// of #403 it builds its client in a memoizing getter instead — not because\n// eager construction was unsafe, but because naming Bun's `RedisClient` at\n// module scope is what made `gemi/services` unloadable off Bun. `Connection`\n// still imports `SQL` as a value for the same reason, which is the remaining\n// half of #396.) It is still bound as a lazy singleton,\n// so an app that never touches the database never resolves it and never has to\n// have DATABASE_URL set.\n//\n// Since #327 it holds *connections*, plural: the top-level `url` and `options`\n// build the one called `\"default\"`, and each key under `connections` builds\n// another. What it does not do is decide which one a query uses — that is the\n// ORM's ambient scope and the `DB` facade, because the choice is per query\n// rather than per application. See `connection` below.\nexport class DatabaseManager implements DatabaseConnection {\n static token = \"database\";\n\n /**\n * This object *is* the default connection, so it answers to the name.\n *\n * Not a formality: `connection(\"default\")` returns `this` rather than the\n * `Connection` in the map, which is what keeps every existing reader —\n * `DB.sql`, `db.dialect`, and the test harnesses that wrap the manager in a\n * Proxy to count statements — looking at the same object the ORM executes\n * through. A second object for the default pool would have quietly bypassed\n * all of them while every test still passed.\n */\n public readonly name = DEFAULT_CONNECTION;\n\n /**\n * Every pool this manager owns, keyed by name and including the default one.\n *\n * Private because the map is the manager's bookkeeping — `connection()` is\n * the way in, and it is the only path that knows the default is `this`.\n */\n private readonly pools = new Map<string, Connection>();\n\n /**\n * Resolves once **every** connection has been configured, or rejects if one\n * could not be. Only SQLite has anything to do; elsewhere it is already\n * resolved.\n *\n * All of them rather than the default alone, because the thing a caller waits\n * on this for — SQLite's `pragma foreign_keys` — is per client, so a second\n * SQLite connection has its own and a caller awaiting one manager-level\n * promise means all of them.\n */\n public readonly ready: Promise<void>;\n\n constructor(public config: DatabaseConfig = {}) {\n const { connections = {}, ...primary } = config;\n\n // The default first, so a `MissingDatabaseUrlError` from a missing\n // `DATABASE_URL` still comes out of construction the way it always has,\n // rather than after a named connection has already opened a client.\n this.pools.set(\n DEFAULT_CONNECTION,\n new Connection(DEFAULT_CONNECTION, primary),\n );\n\n // A connection that is built before the one whose config is wrong is still\n // a live client with an open handle, and on the throwing path nothing else\n // will ever hold it: the manager never becomes a value, so nobody can call\n // `close`. Left alone, the pragma this constructor issues for a SQLite\n // connection settles against a client being torn down and surfaces as an\n // unhandled rejection with no configuration error anywhere near it.\n try {\n this.build(connections, primary.slowTransactionThreshold);\n } catch (error) {\n for (const pool of this.pools.values()) {\n // The in-flight configuration first: it is what rejects when the client\n // under it goes away, and this is the only place that can say the\n // rejection was expected.\n pool.ready.catch(() => {});\n pool.close().catch(() => {});\n }\n throw error;\n }\n\n // Built once here rather than derived per read, so that a connection whose\n // configuration rejects produces one unhandled rejection at most instead of\n // a fresh one per access.\n this.ready = Promise.all(\n [...this.pools.values()].map((pool) => pool.ready),\n ).then(() => undefined);\n }\n\n private build(\n connections: Record<string, ConnectionConfig>,\n slowTransactionThreshold: number | false | undefined,\n ): void {\n for (const [name, connection] of Object.entries(connections)) {\n if (name === DEFAULT_CONNECTION)\n throw new ReservedConnectionNameError(name);\n\n this.pools.set(\n name,\n new Connection(name, {\n // The threshold is the one setting a named connection is likely to\n // want *unchanged*: it is a development diagnostic about holding a\n // pooled connection, and that concern does not stop applying because\n // the pool has a name. `url`, `options` and `dialect` are deliberately\n // not inherited — a connection that borrowed the default's URL by\n // omission would be a second pool onto the same database created by a\n // typo in a key.\n slowTransactionThreshold,\n ...connection,\n }),\n );\n }\n }\n\n /**\n * The connection called `name`, or the default one when called with nothing.\n *\n * Throws rather than falling back to the default for an unknown name, and\n * that is the important half. A fallback would make `Model.on(\"analitycs\")`\n * run on the hot path — the exact pool the caller was trying to stay off —\n * and the only symptom would be the incident it was meant to prevent,\n * arriving weeks later with nothing pointing back at the typo.\n */\n connection(name: string = DEFAULT_CONNECTION): DatabaseConnection {\n // `this`, not `pools.get(DEFAULT_CONNECTION)` — see `name` above.\n if (name === DEFAULT_CONNECTION) return this;\n\n const found = this.pools.get(name);\n if (!found) throw new UnknownConnectionError(name, this.connectionNames);\n return found;\n }\n\n /** Every configured name, default first. For error messages and diagnostics. */\n get connectionNames(): string[] {\n return [...this.pools.keys()];\n }\n\n /**\n * The default connection's client. Unchanged in meaning: an application that\n * never names a connection sees exactly what it saw before #327.\n */\n get sql(): SQL {\n return this.default.sql;\n }\n\n get dialect(): Dialect {\n return this.default.dialect;\n }\n\n get url(): string {\n return this.default.url;\n }\n\n // Escape hatch matching Bun's own API, so `db.query` reads like `sql` does in\n // Bun's docs: db.query`select * from users where id = ${id}`\n get query(): SQL {\n return this.sql;\n }\n\n /** Closes every connection, not only the default one. */\n async close(): Promise<void> {\n // The aggregate promise needs the same treatment each connection's own\n // `ready` gets in `Connection.close` — it is derived from them, so a\n // rejection there arrives here as a second, separately unhandled one.\n this.ready.catch(() => {});\n await Promise.all([...this.pools.values()].map((pool) => pool.close()));\n }\n\n private get default(): Connection {\n return this.pools.get(DEFAULT_CONNECTION)!;\n }\n}\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "09B34B95A95F925C64756E2164756E21",
12
+ "debugId": "50B2FB51A1A56CB764756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{oa as w,pa as P,qa as R,ra as b}from"./chunk-a22h5cby.js";import{ua as K,va as _,wa as L,xa as A}from"./chunk-epvpmakp.js";import{ya as I}from"./chunk-r3v2cnrj.js";import{Aa as E,za as T}from"./chunk-986eh0n3.js";var i=["gemi","gemi/client","gemi/http","gemi/app","gemi/facades","gemi/email","gemi/kernel","gemi/services","gemi/i18n","gemi/dictionary"];function O(q){return q==="gemi"||q.startsWith("gemi/")}import{parseAstAsync as h}from"vite";var V="virtual:gemi-dict/",x="\x00virtual:gemi-dict/",f=new Set(["gemi/dictionary","gemi/client","gemi/i18n"]),y="gemi/dictionary";function B(){let q=new Map;return{name:"gemi-plugin-dictionary",enforce:"post",resolveId(H){if(H.startsWith(V))return`\x00${H}`;return null},async load(H){if(!H.startsWith(x))return null;let Q=H.slice(x.length),W=Q.lastIndexOf("/"),J=Q.slice(0,W),Y=Q.slice(W+1),$=q.get(J);if(!$){let M=g(J);if(M){try{await this.load({id:M})}catch{}$=q.get(J)}}if(!$)return this.error(`No dictionary registered for "${J}". If this persists, restart the dev server.`),null;let G=_($.translations,Y,$.locales);return`export default ${JSON.stringify(G)};
2
+ import{oa as w,pa as P,qa as R,ra as b}from"./chunk-a22h5cby.js";import{ua as K,va as _,wa as L,xa as A}from"./chunk-epvpmakp.js";import{ya as I}from"./chunk-r3v2cnrj.js";import{Aa as E,za as T}from"./chunk-9983zmhx.js";var i=["gemi","gemi/client","gemi/http","gemi/app","gemi/facades","gemi/email","gemi/kernel","gemi/services","gemi/i18n","gemi/dictionary"];function O(q){return q==="gemi"||q.startsWith("gemi/")}import{parseAstAsync as h}from"vite";var V="virtual:gemi-dict/",x="\x00virtual:gemi-dict/",f=new Set(["gemi/dictionary","gemi/client","gemi/i18n"]),y="gemi/dictionary";function B(){let q=new Map;return{name:"gemi-plugin-dictionary",enforce:"post",resolveId(H){if(H.startsWith(V))return`\x00${H}`;return null},async load(H){if(!H.startsWith(x))return null;let Q=H.slice(x.length),W=Q.lastIndexOf("/"),J=Q.slice(0,W),Y=Q.slice(W+1),$=q.get(J);if(!$){let M=g(J);if(M){try{await this.load({id:M})}catch{}$=q.get(J)}}if(!$)return this.error(`No dictionary registered for "${J}". If this persists, restart the dev server.`),null;let G=_($.translations,Y,$.locales);return`export default ${JSON.stringify(G)};
3
3
  `},async transform(H,Q){if(!H.includes("defineDictionary"))return null;if(Q.startsWith("\x00")||Q.includes("/node_modules/"))return null;let W=await h(H),J=new Set;for(let Z of W.body){if(Z.type!=="ImportDeclaration")continue;if(!f.has(Z.source?.value))continue;for(let z of Z.specifiers??[])if(z.type==="ImportSpecifier"&&z.imported?.name==="defineDictionary")J.add(z.local.name)}let Y=[],$=0;if(X(W,(Z)=>{if(Z.type!=="CallExpression")return;let z=Z.callee;if(z?.type==="Identifier"&&J.has(z.name)){Y.push(Z);return}if((z?.type==="Identifier"?z.name:z?.type==="MemberExpression"&&!z.computed?z.property?.name:void 0)==="defineDictionary")$++}),$>0&&p(W,"defineDictionary"))$=0;if($>0)this.warn(`${Q}: ${$} defineDictionary() call(s) could not be traced to an import of "gemi/dictionary", "gemi/client" or "gemi/i18n", so their locales were left inline and will all ship to the browser. Import defineDictionary directly by name rather than through a namespace import or a local re-export.`);if(Y.length===0)return null;let G=new T(H),M=!1;for(let Z of Y){if(Z.arguments?.length<1||Z.arguments?.length>2)this.error({message:"defineDictionary() takes an object literal and an optional options object.",pos:Z.start});let z=m(Z.arguments[0],(j)=>this.error({message:j,pos:Z.arguments[0]?.start??Z.start})),F=v(Z.arguments[1],(j)=>this.error({message:j,pos:Z.arguments[1]?.start??Z.start})),D=A(z),C=`${Buffer.from(Q).toString("base64url")}/${D}`,N=K(z,F);if(N.length===0)this.error({message:'defineDictionary() declares no locales \u2014 every key needs at least one "<locale>": "<string>" entry.',pos:Z.start});if(!F){let j=L(z);if(j)this.error({message:`defineDictionary() cannot infer a source language. Key "${j.againstKey}" lists "${j.againstFirst}" first but "${j.key}" lists "${j.first}" first, so the locale every key falls back to depends on the order `+"they are written in \u2014 moving one key would change what language a reader sees. "+'Pass { sourceLocale: "<locale>" } as the second argument to pin it.',pos:Z.start})}q.set(C,{id:D,locales:N,translations:z});let S=N.map((j)=>`${JSON.stringify(j)}:()=>import(${JSON.stringify(`${V}${C}/${j}`)})`).join(",");G.overwrite(Z.start,Z.end,`__gemi_dict__(${JSON.stringify(D)},{${S}})`),M=!0}if(!M)return null;return G.append(`
4
4
  import { __gemi_dict__ } from ${JSON.stringify(y)};
5
5
  `),{code:G.toString(),map:G.generateMap({hires:!0})}}}}function g(q){let H=q.indexOf("/");if(H===-1)return null;try{return Buffer.from(q.slice(0,H),"base64url").toString("utf8")}catch{return null}}function m(q,H){if(q?.type!=="ObjectExpression")H("defineDictionary() needs an inline object literal \u2014 it is read at build time, so a variable or spread cannot be resolved.");let Q={};for(let W of q.properties){let J=U(W);if(J===null)H("defineDictionary() keys must be plain string keys \u2014 computed keys and spreads cannot be read at build time.");if(W.value?.type!=="ObjectExpression")H(`defineDictionary() entry "${J}" must be an object of "<locale>": "<string>" pairs.`);let Y={};for(let $ of W.value.properties){let G=U($);if(G===null)H(`defineDictionary() entry "${J}" has a locale key that cannot be read at build time.`);let M=$.value;if(M?.type!=="Literal"||typeof M.value!=="string")H(`defineDictionary() entry "${J}" locale "${G}" must be a string literal. Use {{param}} interpolation instead of a template literal or a function.`);Y[G]=M.value}Q[J]=Y}return Q}function v(q,H){if(q===void 0)return;if(q.type!=="ObjectExpression")H("defineDictionary() options must be an inline object literal \u2014 it is read at build time.");for(let Q of q.properties){if(U(Q)!=="sourceLocale")continue;let W=Q.value;if(W?.type!=="Literal"||typeof W.value!=="string")H("defineDictionary() sourceLocale must be a string literal.");return W.value}return}function p(q,H){let Q=!1;return X(q,(W)=>{if(Q)return;if(W.type==="FunctionDeclaration"&&W.id?.name===H)Q=!0;if(W.type==="VariableDeclarator"&&W.id?.name===H)Q=!0}),Q}function U(q){if(q?.type!=="Property"||q.computed)return null;if(q.key?.type==="Identifier")return q.key.name;if(q.key?.type==="Literal"&&typeof q.key.value==="string")return q.key.value;return null}function X(q,H){if(q===null||typeof q!=="object")return;if(Array.isArray(q)){for(let Q of q)X(Q,H);return}if(typeof q.type==="string")H(q);for(let Q of Object.keys(q)){if(Q==="parent")continue;let W=q[Q];if(W&&typeof W==="object")X(W,H)}}import{mkdir as u,writeFile as c}from"fs/promises";import{dirname as r,join as t}from"path";function k(q){let H;return{name:"gemi-plugin-asset-base",config:(Q,W)=>W.command==="build"&&q?{base:q}:void 0,configResolved(Q){H=Q},async writeBundle(Q){if(!H||H.command!=="build"||H.build.ssr||!Q.dir)return;let W=t(Q.dir,P);await u(r(W),{recursive:!0}),await c(W,`${JSON.stringify({assetBase:d(H.base)})}
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{ua as B,va as C,xa as E}from"./chunk-epvpmakp.js";import{Bk as x,Dk as z,Ek as A}from"./chunk-xtqd9vpp.js";function M(b,f={}){let j=B(b,f.sourceLocale);return G(E(b),j,(q)=>C(b,q,j))}function N(b,f){let j=Object.keys(f);return G(b,j,(q)=>{let v=f[q]??f[j[0]];if(!v)return{};return v().then((k)=>k.default)})}function G(b,f,j){let q={id:b,locales:f,load:j};x(q);let v=()=>x(q);return{id:b,locales:f,load:(k)=>{return v(),z(b,k)},loadForRender:(k)=>{return v(),A(b,k)},get:(k)=>{v();let w=z(b,k);if(w instanceof Promise){w.catch(()=>{});return}return w}}}
2
+ import{ua as B,va as C,xa as E}from"./chunk-epvpmakp.js";import{Ek as x,Gk as z,Hk as A}from"./chunk-4vqnv41y.js";function M(b,f={}){let j=B(b,f.sourceLocale);return G(E(b),j,(q)=>C(b,q,j))}function N(b,f){let j=Object.keys(f);return G(b,j,(q)=>{let v=f[q]??f[j[0]];if(!v)return{};return v().then((k)=>k.default)})}function G(b,f,j){let q={id:b,locales:f,load:j};x(q);let v=()=>x(q);return{id:b,locales:f,load:(k)=>{return v(),z(b,k)},loadForRender:(k)=>{return v(),A(b,k)},get:(k)=>{v();let w=z(b,k);if(w instanceof Promise){w.catch(()=>{});return}return w}}}
3
3
  export{M as ca,N as da};
4
4
 
5
- //# debugId=57025499D232183C64756E2164756E21
5
+ //# debugId=BD2F2ED2B4F0325E64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import {\n dictionaryId,\n dictionaryLocales,\n localeStrings,\n type DictionaryTranslations,\n type LocaleStrings,\n} from \"./dictionaryShape\";\nimport {\n loadDictionary,\n loadDictionaryForRender,\n registerDictionary,\n type RenderThenable,\n} from \"./dictionaryRegistry\";\n\ndeclare const brand: unique symbol;\n\nexport interface DictionaryHandle<\n T extends DictionaryTranslations = DictionaryTranslations,\n> {\n readonly id: string;\n /** Locales this dictionary declares, source language first. */\n readonly locales: readonly string[];\n /**\n * Strings for `locale`. Synchronous when they are already in memory —\n * always, for an unbundled dictionary; after a preload or the SSR seed, for a\n * bundled one.\n */\n load(locale: string): LocaleStrings | Promise<LocaleStrings>;\n /**\n * `load`, but as the exact thing React's `use()` wants: never rejecting, so\n * a failed locale chunk degrades the component to rendering keys instead of\n * unmounting it into an error boundary; and always a thenable, even when the\n * strings are already in memory. The caller skips `use()` only for a\n * thenable built from strings already in hand, which carries them as\n * `inHand`; every thenable a render could have suspended on still goes\n * through it. `loadDictionaryForRender` has the whole reasoning.\n */\n loadForRender(locale: string): RenderThenable;\n get(locale: string): LocaleStrings | undefined;\n /** Type-only: carries the literal's shape through to `useDictionary`. */\n readonly [brand]?: T;\n}\n\n/**\n * Declare the strings a component needs, next to the component.\n *\n * ```ts\n * export const homeDict = defineDictionary({\n * title: { \"en-US\": \"Welcome {{name}}\", \"tr-TR\": \"Hoş geldin {{name}}\" },\n * });\n * ```\n *\n * As written this holds every locale. Under gemi's Vite plugin the call is\n * rewritten so each locale becomes its own chunk and a page downloads only the\n * one it renders in — but the plugin is strictly an optimization, and the\n * behaviour is identical without it (in `bun test`, and in server code that\n * does not go through the bundler).\n *\n * The first locale in the literal is the source language: a key missing from\n * another locale falls back to it rather than rendering as its own key.\n */\nexport interface DefineDictionaryOptions {\n /**\n * The locale this dictionary is authored in. Keys missing from another locale\n * fall back to it, and it is what renders when the app has no locale\n * configured.\n *\n * Optional, but worth setting on any dictionary that is not uniformly\n * translated: without it the source language is whichever locale appears\n * first in the literal, so adding a key at the top can re-point every\n * fallback in the dictionary.\n */\n sourceLocale?: string;\n}\n\nexport function defineDictionary<const T extends DictionaryTranslations>(\n translations: T,\n options: DefineDictionaryOptions = {},\n): DictionaryHandle<T> {\n const locales = dictionaryLocales(translations, options.sourceLocale);\n return createHandle(dictionaryId(translations), locales, (locale) =>\n localeStrings(translations, locale, locales),\n );\n}\n\n/**\n * The rewritten form of a `defineDictionary` call — emitted by\n * `packages/gemi/vite/dictionaryPlugin.ts`, never written by hand. `loaders`\n * holds one dynamic import per locale so the bundler emits one chunk per\n * locale and the untaken ones never reach the browser.\n */\nexport function __gemi_dict__<\n const T extends DictionaryTranslations = DictionaryTranslations,\n>(\n id: string,\n loaders: Record<string, () => Promise<{ default: LocaleStrings }>>,\n): DictionaryHandle<T> {\n const locales = Object.keys(loaders);\n return createHandle(id, locales, (locale) => {\n // An unknown locale falls back to the source language, matching what\n // `localeStrings` does per key on the unbundled path.\n const load = loaders[locale] ?? loaders[locales[0]];\n if (!load) {\n return {};\n }\n return load().then((mod) => mod.default);\n });\n}\n\nfunction createHandle<T extends DictionaryTranslations>(\n id: string,\n locales: string[],\n load: (locale: string) => LocaleStrings | Promise<LocaleStrings>,\n): DictionaryHandle<T> {\n const entry = { id, locales, load };\n registerDictionary(entry);\n\n // Re-asserted on every read rather than only at construction. A handle is\n // created once, at module scope, but the registry it delegates to can be\n // emptied under it — a test's `afterEach` reset, an HMR boundary — and the\n // handle would then be permanently orphaned, throwing \"Unknown dictionary\"\n // for a dictionary the caller is holding. `registerDictionary` is a no-op\n // when the id is already there, so this costs one Map lookup.\n const ensure = () => registerDictionary(entry);\n\n return {\n id,\n locales,\n // Routed through the registry rather than calling `load` directly so\n // concurrent readers share one in-flight import and results are cached.\n load: (locale: string) => {\n ensure();\n return loadDictionary(id, locale);\n },\n loadForRender: (locale: string) => {\n ensure();\n return loadDictionaryForRender(id, locale);\n },\n get: (locale: string) => {\n ensure();\n const strings = loadDictionary(id, locale);\n if (strings instanceof Promise) {\n // Nothing downstream awaits this one — `get` is the synchronous peek,\n // and the caller is about to discard it. An unattached rejection (a\n // locale chunk that 404s mid-deploy) would surface as an\n // `unhandledRejection`, which under Node's default handler takes the\n // process down over one missing translation file. The load itself is\n // still cached and still retried through `loadDictionary`.\n strings.catch(() => {});\n return undefined;\n }\n return strings;\n },\n };\n}\n\n"
6
6
  ],
7
7
  "mappings": ";wHA2EO,GAAS,CAAwD,CACtE,EACA,EAAmC,CAAC,EACf,CACrB,IAAM,EAAU,EAAkB,EAAc,EAAQ,YAAY,EACpE,OAAO,EAAa,EAAa,CAAY,EAAG,EAAS,CAAC,IACxD,EAAc,EAAc,EAAQ,CAAO,CAC7C,EASK,SAAS,CAEf,CACC,EACA,EACqB,CACrB,IAAM,EAAU,OAAO,KAAK,CAAO,EACnC,OAAO,EAAa,EAAI,EAAS,CAAC,IAAW,CAG3C,IAAM,EAAO,EAAQ,IAAW,EAAQ,EAAQ,IAChD,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,OAAO,EAAK,EAAE,KAAK,CAAC,IAAQ,EAAI,OAAO,EACxC,EAGH,SAAS,CAA8C,CACrD,EACA,EACA,EACqB,CACrB,IAAM,EAAQ,CAAE,KAAI,UAAS,MAAK,EAClC,EAAmB,CAAK,EAQxB,IAAM,EAAS,IAAM,EAAmB,CAAK,EAE7C,MAAO,CACL,KACA,UAGA,KAAM,CAAC,IAAmB,CAExB,OADA,EAAO,EACA,EAAe,EAAI,CAAM,GAElC,cAAe,CAAC,IAAmB,CAEjC,OADA,EAAO,EACA,EAAwB,EAAI,CAAM,GAE3C,IAAK,CAAC,IAAmB,CACvB,EAAO,EACP,IAAM,EAAU,EAAe,EAAI,CAAM,EACzC,GAAI,aAAmB,QAAS,CAO9B,EAAQ,MAAM,IAAM,EAAE,EACtB,OAEF,OAAO,EAEX",
8
- "debugId": "57025499D232183C64756E2164756E21",
8
+ "debugId": "BD2F2ED2B4F0325E64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -0,0 +1,5 @@
1
+ // @bun
2
+ import{D as r}from"./chunk-6d6p0q3p.js";import{R as mc}from"./chunk-qz9n2e59.js";import"./chunk-vb73ddwz.js";import"./chunk-8z29qvvm.js";import{V as _}from"./chunk-gmeeyg19.js";import{Bl as O,yl as u}from"./chunk-egwz89ze.js";import{Buffer as hc}from"buffer";import{request as Yc}from"http";function E(c){return new Promise((I,x)=>{let N=Yc({method:"GET",...c,hostname:c.hostname?.replace(/^\[(.+)\]$/,"$1")});N.on("error",(T)=>{x(Object.assign(new K.ProviderError("Unable to connect to instance metadata service"),T)),N.destroy()}),N.on("timeout",()=>{x(new K.ProviderError("TimeoutError from instance metadata service")),N.destroy()}),N.on("response",(T)=>{let{statusCode:y=400}=T;if(y<200||300<=y)x(Object.assign(new K.ProviderError("Error response received from instance metadata service"),{statusCode:y})),N.destroy();let $=[];T.on("data",(w)=>{$.push(w)}),T.on("end",()=>{I(hc.concat($)),N.destroy()})}),N.end()})}var K;var D=O(()=>{K=u(_(),1)});var G=(c)=>Boolean(c)&&typeof c==="object"&&typeof c.AccessKeyId==="string"&&typeof c.SecretAccessKey==="string"&&typeof c.Token==="string"&&typeof c.Expiration==="string",L=(c)=>({accessKeyId:c.AccessKeyId,secretAccessKey:c.SecretAccessKey,sessionToken:c.Token,expiration:new Date(c.Expiration),...c.AccountId&&{accountId:c.AccountId}});var W=()=>{};var Hc=1000,qc=0,Q=({maxRetries:c=0,timeout:I=1000})=>({maxRetries:c,timeout:I});var X=()=>{};var v=(c,I)=>{let x=c();for(let N=0;N<I;N++)x=x.catch(c);return x};var b=()=>{};import{parse as Sc}from"url";var z,H="AWS_CONTAINER_CREDENTIALS_FULL_URI",q="AWS_CONTAINER_CREDENTIALS_RELATIVE_URI",M="AWS_CONTAINER_AUTHORIZATION_TOKEN",kc=(c={})=>{let{timeout:I,maxRetries:x}=Q(c);return()=>v(async()=>{let N=await jc({logger:c.logger}),T=JSON.parse(await fc(I,N));if(!G(T))throw new z.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:c.logger});return L(T)},x)},fc=async(c,I)=>{if(process.env[M])I.headers={...I.headers,Authorization:process.env[M]};return(await E({...I,timeout:c})).toString()},uc="169.254.170.2",Ec,$c,jc=async({logger:c})=>{if(process.env[q])return{hostname:uc,path:process.env[q]};if(process.env[H]){let I=Sc(process.env[H]);if(!I.hostname||!(I.hostname in Ec))throw new z.CredentialsProviderError(`${I.hostname} is not a valid container metadata service hostname`,{tryNextLink:!1,logger:c});if(!I.protocol||!(I.protocol in $c))throw new z.CredentialsProviderError(`${I.protocol} is not a valid container metadata service protocol`,{tryNextLink:!1,logger:c});return{...I,port:I.port?parseInt(I.port,10):void 0}}throw new z.CredentialsProviderError(`The container metadata credential provider cannot be used unless the ${q} or ${H} environment variable is set`,{tryNextLink:!1,logger:c})};var p=O(()=>{D();W();X();b();z=u(_(),1),Ec={localhost:!0,"127.0.0.1":!0},$c={"http:":!0,"https:":!0}});var C,Z;var a=O(()=>{C=u(_(),1);Z=class Z extends C.CredentialsProviderError{tryNextLink;name="InstanceMetadataV1FallbackError";constructor(c,I=!0){super(c,I);this.tryNextLink=I,Object.setPrototypeOf(this,Z.prototype)}}});var J;var B=O(()=>{(function(c){c.IPv4="http://169.254.169.254",c.IPv6="http://[fd00:ec2::254]"})(J||(J={}))});var n;var o=O(()=>{n={environmentVariableSelector:(c)=>c.AWS_EC2_METADATA_SERVICE_ENDPOINT,configFileSelector:(c)=>c.ec2_metadata_service_endpoint,default:void 0}});var f;var t=O(()=>{(function(c){c.IPv4="IPv4",c.IPv6="IPv6"})(f||(f={}))});var Ac="AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",Jc="ec2_metadata_service_endpoint_mode",s;var g=O(()=>{t();s={environmentVariableSelector:(c)=>c[Ac],configFileSelector:(c)=>c[Jc],default:f.IPv4}});var U,l,F=async()=>l.parseUrl(await vc()||await zc()),vc=async()=>U.loadConfig(n)(),zc=async()=>{let c=await U.loadConfig(s)();switch(c){case f.IPv4:return J.IPv4;case f.IPv6:return J.IPv6;default:throw Error(`Unsupported endpoint mode: ${c}. Select from ${Object.values(f)}`)}};var P=O(()=>{B();o();t();g();U=u(r(),1),l=u(mc(),1)});var V=(c,I)=>{let x=300+Math.floor(Math.random()*300),N=new Date(Date.now()+x*1000);I.warn(`Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(N)}.
3
+ For more information, please visit: https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html`);let T=c.originalExpiration??c.expiration;return{...c,...T?{originalExpiration:T}:{},expiration:N}};var d=()=>{};var e=(c,I={})=>{let x=I?.logger||console,N;return async()=>{let T;try{if(T=await c(),T.expiration&&T.expiration.getTime()<Date.now())T=V(T,x)}catch(y){if(N)x.warn("Credential renew failed: ",y),T=V(N,x);else throw y}return N=T,T}};var i=O(()=>{d()});var Nc,k,Tc="/latest/meta-data/iam/security-credentials/",Kc="/latest/api/token",R="AWS_EC2_METADATA_V1_DISABLED",cc="ec2_metadata_v1_disabled",Ic="x-aws-ec2-metadata-token",YI=(c={})=>e(_c(c),{logger:c.logger}),_c=(c={})=>{let I=!1,{logger:x,profile:N}=c,{timeout:T,maxRetries:y}=Q(c),$=async(w,j)=>{if(I||j.headers?.[Ic]==null){let h=!1,Y=!1,wc=await Nc.loadConfig({environmentVariableSelector:(S)=>{let A=S[R];if(Y=!!A&&A!=="false",A===void 0)throw new k.CredentialsProviderError(`${R} not set in env, checking config file next.`,{logger:c.logger});return Y},configFileSelector:(S)=>{let A=S[cc];return h=!!A&&A!=="false",h},default:!1},{profile:N})();if(c.ec2MetadataV1Disabled||wc){let S=[];if(c.ec2MetadataV1Disabled)S.push("credential provider initialization (runtime option ec2MetadataV1Disabled)");if(h)S.push(`config file profile (${cc})`);if(Y)S.push(`process environment variable (${R})`);throw new Z(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${S.join(", ")}].`)}}let yc=(await v(async()=>{let h;try{h=await Gc(j)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)).trim();return v(async()=>{let h;try{h=await Lc(yc,j,c)}catch(Y){if(Y.statusCode===401)I=!1;throw Y}return h},w)};return async()=>{let w=await F();if(I)return x?.debug("AWS SDK Instance Metadata","using v1 fallback (no token fetch)"),$(y,{...w,timeout:T});else{let j;try{j=(await Dc({...w,timeout:T})).toString()}catch(m){if(m?.statusCode===400)throw Object.assign(m,{message:"EC2 Metadata token request returned error"});else if(m.message==="TimeoutError"||[403,404,405].includes(m.statusCode))I=!0;return x?.debug("AWS SDK Instance Metadata","using v1 fallback (initial)"),$(y,{...w,timeout:T})}return $(y,{...w,headers:{[Ic]:j},timeout:T})}}},Dc=async(c)=>E({...c,path:Kc,method:"PUT",headers:{"x-aws-ec2-metadata-token-ttl-seconds":"21600"}}),Gc=async(c)=>(await E({...c,path:Tc})).toString(),Lc=async(c,I,x)=>{let N=JSON.parse((await E({...I,path:Tc+c})).toString());if(!G(N))throw new k.CredentialsProviderError("Invalid response received from instance metadata service.",{logger:x.logger});return L(N)};var xc=O(()=>{a();D();W();X();b();P();i();Nc=u(r(),1),k=u(_(),1)});var Oc=()=>{};var Qc=O(()=>{D();P();B();p();xc();X();Oc()});Qc();export{Q as providerConfigFromInit,E as httpRequest,F as getInstanceMetadataEndpoint,YI as fromInstanceMetadata,kc as fromContainerMetadata,J as Endpoint,q as ENV_CMDS_RELATIVE_URI,H as ENV_CMDS_FULL_URI,M as ENV_CMDS_AUTH_TOKEN,Hc as DEFAULT_TIMEOUT,qc as DEFAULT_MAX_RETRIES};
4
+
5
+ //# debugId=FBCDE9E25D8B9DCE64756E2164756E21
@@ -18,7 +18,7 @@
18
18
  "import { loadConfig } from \"@smithy/node-config-provider\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { InstanceMetadataV1FallbackError } from \"./error/InstanceMetadataV1FallbackError\";\nimport { httpRequest } from \"./remoteProvider/httpRequest\";\nimport { fromImdsCredentials, isImdsCredentials } from \"./remoteProvider/ImdsCredentials\";\nimport { providerConfigFromInit } from \"./remoteProvider/RemoteProviderInit\";\nimport { retry } from \"./remoteProvider/retry\";\nimport { getInstanceMetadataEndpoint } from \"./utils/getInstanceMetadataEndpoint\";\nimport { staticStabilityProvider } from \"./utils/staticStabilityProvider\";\nconst IMDS_PATH = \"/latest/meta-data/iam/security-credentials/\";\nconst IMDS_TOKEN_PATH = \"/latest/api/token\";\nconst AWS_EC2_METADATA_V1_DISABLED = \"AWS_EC2_METADATA_V1_DISABLED\";\nconst PROFILE_AWS_EC2_METADATA_V1_DISABLED = \"ec2_metadata_v1_disabled\";\nconst X_AWS_EC2_METADATA_TOKEN = \"x-aws-ec2-metadata-token\";\nexport const fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });\nconst getInstanceMetadataProvider = (init = {}) => {\n let disableFetchToken = false;\n const { logger, profile } = init;\n const { timeout, maxRetries } = providerConfigFromInit(init);\n const getCredentials = async (maxRetries, options) => {\n const isImdsV1Fallback = disableFetchToken || options.headers?.[X_AWS_EC2_METADATA_TOKEN] == null;\n if (isImdsV1Fallback) {\n let fallbackBlockedFromProfile = false;\n let fallbackBlockedFromProcessEnv = false;\n const configValue = await loadConfig({\n environmentVariableSelector: (env) => {\n const envValue = env[AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProcessEnv = !!envValue && envValue !== \"false\";\n if (envValue === undefined) {\n throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });\n }\n return fallbackBlockedFromProcessEnv;\n },\n configFileSelector: (profile) => {\n const profileValue = profile[PROFILE_AWS_EC2_METADATA_V1_DISABLED];\n fallbackBlockedFromProfile = !!profileValue && profileValue !== \"false\";\n return fallbackBlockedFromProfile;\n },\n default: false,\n }, {\n profile,\n })();\n if (init.ec2MetadataV1Disabled || configValue) {\n const causes = [];\n if (init.ec2MetadataV1Disabled)\n causes.push(\"credential provider initialization (runtime option ec2MetadataV1Disabled)\");\n if (fallbackBlockedFromProfile)\n causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`);\n if (fallbackBlockedFromProcessEnv)\n causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`);\n throw new InstanceMetadataV1FallbackError(`AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join(\", \")}].`);\n }\n }\n const imdsProfile = (await retry(async () => {\n let profile;\n try {\n profile = await getProfile(options);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return profile;\n }, maxRetries)).trim();\n return retry(async () => {\n let creds;\n try {\n creds = await getCredentialsFromProfile(imdsProfile, options, init);\n }\n catch (err) {\n if (err.statusCode === 401) {\n disableFetchToken = false;\n }\n throw err;\n }\n return creds;\n }, maxRetries);\n };\n return async () => {\n const endpoint = await getInstanceMetadataEndpoint();\n if (disableFetchToken) {\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (no token fetch)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n else {\n let token;\n try {\n token = (await getMetadataToken({ ...endpoint, timeout })).toString();\n }\n catch (error) {\n if (error?.statusCode === 400) {\n throw Object.assign(error, {\n message: \"EC2 Metadata token request returned error\",\n });\n }\n else if (error.message === \"TimeoutError\" || [403, 404, 405].includes(error.statusCode)) {\n disableFetchToken = true;\n }\n logger?.debug(\"AWS SDK Instance Metadata\", \"using v1 fallback (initial)\");\n return getCredentials(maxRetries, { ...endpoint, timeout });\n }\n return getCredentials(maxRetries, {\n ...endpoint,\n headers: {\n [X_AWS_EC2_METADATA_TOKEN]: token,\n },\n timeout,\n });\n }\n };\n};\nconst getMetadataToken = async (options) => httpRequest({\n ...options,\n path: IMDS_TOKEN_PATH,\n method: \"PUT\",\n headers: {\n \"x-aws-ec2-metadata-token-ttl-seconds\": \"21600\",\n },\n});\nconst getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();\nconst getCredentialsFromProfile = async (profile, options, init) => {\n const credentialsResponse = JSON.parse((await httpRequest({\n ...options,\n path: IMDS_PATH + profile,\n })).toString());\n if (!isImdsCredentials(credentialsResponse)) {\n throw new CredentialsProviderError(\"Invalid response received from instance metadata service.\", {\n logger: init.logger,\n });\n }\n return fromImdsCredentials(credentialsResponse);\n};\n",
19
19
  "export * from \"./fromContainerMetadata\";\nexport * from \"./fromInstanceMetadata\";\nexport * from \"./remoteProvider/RemoteProviderInit\";\nexport * from \"./types\";\nexport { httpRequest } from \"./remoteProvider/httpRequest\";\nexport { getInstanceMetadataEndpoint } from \"./utils/getInstanceMetadataEndpoint\";\nexport { Endpoint } from \"./config/Endpoint\";\n"
20
20
  ],
21
- "mappings": "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",
22
- "debugId": "2C63566B767D7F6764756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "FBCDE9E25D8B9DCE64756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Oj as k,tj as g,uj as m}from"./chunk-aq5zx3vg.js";import{_k as p}from"./chunk-tzheb6ak.js";import{xl as n}from"./chunk-78wht1ph.js";var b={};n(b,{registeredNames:()=>x,register:()=>i,has:()=>S,get:()=>_,clearRegistry:()=>a});var M=new Map;function i(q,z){M.set(q,z)}function S(q){return M.has(q)}function _(q){let z=M.get(q);if(z===void 0)throw new k(q,[...M.keys()]);return z}function x(){return[...M.keys()]}function a(){M.clear()}import{createCipheriv as r,createDecipheriv as e,randomBytes as qq}from"crypto";class Y{static token="encrypter";keys=new Map;currentId;constructor(q={}){for(let[z,J]of Object.entries(q.keys??{})){if(!u.test(z))throw new U(`Encryption key id "${z}" is not valid. Use 1-32 letters, digits, "_" or "-": the id is written into every encrypted value.`);this.keys.set(z,zq(z,J))}if(q.current!==void 0){if(!this.keys.has(q.current))throw new U(`encryption.current is "${q.current}", but encryption.keys has no key by that id (${I(this.keys)}).`);this.currentId=q.current}else if(this.keys.size===1)this.currentId=[...this.keys.keys()][0];else if(this.keys.size>1)throw new U(`encryption.keys has ${this.keys.size} keys (${I(this.keys)}) and no encryption.current to say which one encrypts new values.`)}get configured(){return this.currentId!==void 0}get currentKeyId(){return this.requireCurrent()}encrypt(q){if(typeof q!=="string")throw TypeError(`Encrypter.encrypt takes a string, got ${Jq(q)}. Serialise other values first (JSON.stringify).`);let z=this.requireCurrent(),J=this.keys.get(z),Q=`${j}:${z}`,Z=qq(y),$=r(E,J,Z);$.setAAD(Buffer.from(Q));let X=Buffer.concat([$.update(q,"utf8"),$.final(),$.getAuthTag()]);return`${Q}:${Z.toString("base64url")}:${X.toString("base64url")}`}decrypt(q){let z=D(q);if(!z)throw new N("malformed","The value is not an encrypted envelope.");if(!this.configured)this.requireCurrent();let J=this.keys.get(z.keyId);if(!J)throw new N("unknown_key",`The value was encrypted with key "${z.keyId}", which is not in encryption.keys (${I(this.keys)}). Keep a key configured until encryption:rotate has re-encrypted the values written with it.`);try{let Q=e(E,J,z.iv);return Q.setAAD(Buffer.from(`${j}:${z.keyId}`)),Q.setAuthTag(z.tag),Buffer.concat([Q.update(z.ciphertext),Q.final()]).toString("utf8")}catch{throw new N("invalid",`The value did not authenticate under key "${z.keyId}": it was altered, or encrypted with a different key under the same id.`)}}isEncrypted(q){return D(q)!==null}keyIdOf(q){return D(q)?.keyId??null}needsReencryption(q){return this.keyIdOf(q)!==this.requireCurrent()}requireCurrent(){if(this.currentId===void 0)throw new U("No encryption key is configured. Add app/config/encryption.ts (defineEncryptionConfig({ keys: { k1: process.env.APP_ENCRYPTION_KEY } })) and list it as `encryption` in your Kernel's config. Generate a key with `openssl rand -base64 32`.");return this.currentId}}class U extends Error{constructor(q){super(q);this.name="EncryptionKeyError"}}class N extends Error{reason;column;constructor(q,z){super(z);this.reason=q;this.name="DecryptionError"}}var j="v1",E="aes-256-gcm",f=32,y=12,A=16,u=/^[A-Za-z0-9_-]{1,32}$/,v=/^[A-Za-z0-9_-]+$/;function zq(q,z){if(typeof z!=="string"||z.trim()==="")throw new U(`Encryption key "${q}" is empty. Is the environment variable it reads set?`);let J=z.trim().replace(/^base64:/,""),Q=/^[A-Za-z0-9+/=_-]+$/.test(J)?Buffer.from(J,"base64"):Buffer.alloc(0);if(Q.length!==f)throw new U(`Encryption key "${q}" is not ${f} bytes of base64 (it decodes to ${Q.length}). Generate one with \`openssl rand -base64 32\`.`);return Q}function D(q){if(typeof q!=="string")return null;let z=q.split(":");if(z.length!==4||z[0]!==j)return null;let[,J,Q,Z]=z;if(!u.test(J)||!v.test(Q)||!v.test(Z))return null;let $=Buffer.from(Q,"base64url"),X=Buffer.from(Z,"base64url");if($.length!==y||X.length<A)return null;return{keyId:J,iv:$,ciphertext:X.subarray(0,X.length-A),tag:X.subarray(X.length-A)}}function I(q){return q.size===0?"none configured":[...q.keys()].map((z)=>`"${z}"`).join(", ")}function Jq(q){return q===null?"null":Array.isArray(q)?"an array":`a ${typeof q}`}var h=new WeakMap;function T(q){let z=h.get(q);if(z===void 0)z=Object.values(q.fields).filter((J)=>J.encrypted===!0).map((J)=>J.name),h.set(q,z);return z}function Mq(){let q=new Set,z=[];for(let J of x()){let Q=O(J);if(!Q||q.has(Q.name))continue;q.add(Q.name);for(let Z of T(Q))z.push(`${Q.name}.${Z}`)}return z}function c(){let q=p();if(!q.bound(Y))throw new U("Encrypted columns need an Encrypter, and none is bound in this application. A booted Kernel binds one from the `encryption` config slice; a hand-built Application can bind its own: `application.instance(Encrypter, new Encrypter({ keys: { k1: key } }))`.");return q.make(Y)}var l=Symbol("gemi.orm.encryptedColumnsRaw");function Nq(q){return{...q,[l]:!0}}function Vq(q){return typeof q==="object"&&q!==null&&q[l]===!0}function Lq(q,z,J){if(!P(J))return;let Q={model:q.name,operation:z};d(q,J,Q,0);for(let Z of["by","_min","_max","_avg","_sum"])if(J[Z]!==void 0)o(q,J[Z],Z,Q);if(J.having!==void 0)B(q,J.having,Q)}var w=64;function d(q,z,J,Q){if(Q>w)return;if(z.where!==void 0)W(q,z.where,"where",J,Q);if(z.cursor!==void 0)W(q,z.cursor,"cursor",J,Q);if(z.orderBy!==void 0)K(q,z.orderBy,J,Q);if(z.distinct!==void 0)o(q,z.distinct,"distinct",J);for(let Z of[z.include,z.select]){if(!P(Z))continue;for(let[$,X]of Object.entries(Z)){if(!P(X))continue;if($==="_count"){if(!P(X.select))continue;for(let[G,F]of Object.entries(X.select)){let H=R(q,G);if(H&&P(F)&&F.where!==void 0)W(H,F.where,"where",J,Q+1)}continue}let C=R(q,$);if(C)d(C,X,J,Q+1)}}}var Qq=["some","every","none","is","isNot"];function W(q,z,J,Q,Z){if(Z>w)return;if(Array.isArray(z)){for(let $ of z)W(q,$,J,Q,Z);return}if(!P(z))return;for(let[$,X]of Object.entries(z)){if(X===void 0)continue;if($==="AND"||$==="OR"||$==="NOT"){W(q,X,J,Q,Z);continue}let C=q.fields[$];if(C){if(C.encrypted===!0&&!t(X))L(q,$,J,Q);continue}let G=R(q,$);if(G){if(!P(X))continue;let F=Object.keys(X).filter((H)=>Qq.includes(H));if(F.length>0)for(let H of F)W(G,X[H],J,Q,Z+1);else W(G,X,J,Q,Z+1);continue}if(P(X)){for(let F of Object.keys(X))if(q.fields[F]?.encrypted===!0)L(q,F,J,Q)}}}function K(q,z,J,Q){if(Q>w)return;if(Array.isArray(z)){for(let Z of z)K(q,Z,J,Q);return}if(!P(z))return;for(let[Z,$]of Object.entries(z)){if(q.fields[Z]?.encrypted===!0)L(q,Z,"orderBy",J);let X=R(q,Z);if(X&&P($)&&!("_count"in $))K(X,$,J,Q+1)}}function o(q,z,J,Q){let Z=typeof z==="string"?[z]:Array.isArray(z)?z.filter(($)=>typeof $==="string"):P(z)?Object.keys(z).filter(($)=>z[$]):[];for(let $ of Z)if(q.fields[$]?.encrypted===!0)L(q,$,J,Q)}function B(q,z,J){if(Array.isArray(z)){for(let Q of z)B(q,Q,J);return}if(!P(z))return;for(let[Q,Z]of Object.entries(z)){if(Q==="AND"||Q==="OR"||Q==="NOT"){B(q,Z,J);continue}if(q.fields[Q]?.encrypted===!0&&!t(Z))L(q,Q,"having",J)}}function t(q){if(q===null)return!0;if(!P(q))return!1;let z=Object.entries(q).filter(([,J])=>J!==void 0);return z.length>0&&z.every(([J,Q])=>(J==="equals"||J==="not")&&Q===null)}function L(q,z,J,Q){throw new m(J,Q.model,Q.operation,`${q.name}.${z} is an encrypted column: each write stores a different random ciphertext, so the database cannot compare, sort or group by it. Only null checks work on it ({ ${z}: null } or { ${z}: { not: null } }). To look a row up by a secret, store a keyed hash of it in a separate column and filter on that.`)}function Yq(q,z,J){let Q=T(q);if(Q.length===0||!P(J))return J;let Z={model:q.name,operation:z},$,X=(F)=>($??=c()).encrypt(F),C=J,G=(F,H)=>{if(H===C[F])return;if(C===J)C={...J};C[F]=H};switch(z){case"create":case"update":case"updateMany":G("data",V(Q,J.data,X,Z));break;case"createMany":G("data",Array.isArray(J.data)?Zq(J.data,(F)=>V(Q,F,X,Z)):V(Q,J.data,X,Z));break;case"upsert":G("create",V(Q,J.create,X,Z)),G("update",V(Q,J.update,X,Z));break}return C}function V(q,z,J,Q){if(!P(z))return z;let Z;for(let $ of q){if(!($ in z))continue;let X=z[$],C=s($,X,J,Q);if(C!==X)(Z??={...z})[$]=C}return Z??z}function s(q,z,J,Q){if(z===void 0||z===null)return z;if(typeof z==="string")return J(z);if(P(z)&&Object.keys(z).length===1&&"set"in z){let Z=z.set;return Z===null||Z===void 0?z:{set:s(q,Z,J,Q)}}throw new g("data",Q.model,Q.operation,`${Q.model}.${q} is an encrypted column and takes a string or null (or { set: string | null }); got ${Cq(z)}.`)}function Zq(q,z){let J;return q.forEach((Q,Z)=>{let $=z(Q);if($!==Q)(J??=[...q])[Z]=$}),J??q}function $q(q,z){let J=T(q);if(J.length===0||z.length===0)return;let Q;for(let Z of z){if(!P(Z))continue;for(let $ of J){let X=Z[$];if(typeof X!=="string")continue;Q??=c();try{Z[$]=Q.decrypt(X)}catch(C){if(C instanceof N)C.column={model:q.name,field:$},C.message=`Could not decrypt ${q.name}.${$}: ${C.message}`;throw C}}}}function Xq(q,z){let J=O(q.model),Q=[];for(let Z of z){if(!P(Z))continue;let $=Z[q.as];if(Array.isArray($))Q.push(...$);else if(P($))Q.push($)}if(Q.length===0)return;if(J)$q(J,Q);for(let Z of q.folded??[])Xq(Z,Q)}function O(q){if(!S(q))return;return _(q).$schema}function R(q,z){let J=q.relations[z];return J?O(J.model):void 0}function P(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)&&!(q instanceof Date)}function Cq(q){if(Array.isArray(q))return"an array";if(q instanceof Date)return"a Date";return`a ${typeof q}`}
3
- export{i as bj,S as cj,_ as dj,x as ej,b as fj,Y as gj,U as hj,N as ij,T as jj,Mq as kj,c as lj,Nq as mj,Vq as nj,Lq as oj,Yq as pj,$q as qj,Xq as rj};
2
+ import{Rj as k,wj as g,xj as m}from"./chunk-8tyw6faf.js";import{bl as p}from"./chunk-xp7x27n8.js";import{Al as n}from"./chunk-egwz89ze.js";var b={};n(b,{registeredNames:()=>x,register:()=>i,has:()=>S,get:()=>_,clearRegistry:()=>a});var M=new Map;function i(q,z){M.set(q,z)}function S(q){return M.has(q)}function _(q){let z=M.get(q);if(z===void 0)throw new k(q,[...M.keys()]);return z}function x(){return[...M.keys()]}function a(){M.clear()}import{createCipheriv as r,createDecipheriv as e,randomBytes as qq}from"crypto";class Y{static token="encrypter";keys=new Map;currentId;constructor(q={}){for(let[z,J]of Object.entries(q.keys??{})){if(!u.test(z))throw new U(`Encryption key id "${z}" is not valid. Use 1-32 letters, digits, "_" or "-": the id is written into every encrypted value.`);this.keys.set(z,zq(z,J))}if(q.current!==void 0){if(!this.keys.has(q.current))throw new U(`encryption.current is "${q.current}", but encryption.keys has no key by that id (${I(this.keys)}).`);this.currentId=q.current}else if(this.keys.size===1)this.currentId=[...this.keys.keys()][0];else if(this.keys.size>1)throw new U(`encryption.keys has ${this.keys.size} keys (${I(this.keys)}) and no encryption.current to say which one encrypts new values.`)}get configured(){return this.currentId!==void 0}get currentKeyId(){return this.requireCurrent()}encrypt(q){if(typeof q!=="string")throw TypeError(`Encrypter.encrypt takes a string, got ${Jq(q)}. Serialise other values first (JSON.stringify).`);let z=this.requireCurrent(),J=this.keys.get(z),Q=`${j}:${z}`,Z=qq(y),$=r(E,J,Z);$.setAAD(Buffer.from(Q));let X=Buffer.concat([$.update(q,"utf8"),$.final(),$.getAuthTag()]);return`${Q}:${Z.toString("base64url")}:${X.toString("base64url")}`}decrypt(q){let z=D(q);if(!z)throw new N("malformed","The value is not an encrypted envelope.");if(!this.configured)this.requireCurrent();let J=this.keys.get(z.keyId);if(!J)throw new N("unknown_key",`The value was encrypted with key "${z.keyId}", which is not in encryption.keys (${I(this.keys)}). Keep a key configured until encryption:rotate has re-encrypted the values written with it.`);try{let Q=e(E,J,z.iv);return Q.setAAD(Buffer.from(`${j}:${z.keyId}`)),Q.setAuthTag(z.tag),Buffer.concat([Q.update(z.ciphertext),Q.final()]).toString("utf8")}catch{throw new N("invalid",`The value did not authenticate under key "${z.keyId}": it was altered, or encrypted with a different key under the same id.`)}}isEncrypted(q){return D(q)!==null}keyIdOf(q){return D(q)?.keyId??null}needsReencryption(q){return this.keyIdOf(q)!==this.requireCurrent()}requireCurrent(){if(this.currentId===void 0)throw new U("No encryption key is configured. Add app/config/encryption.ts (defineEncryptionConfig({ keys: { k1: process.env.APP_ENCRYPTION_KEY } })) and list it as `encryption` in your Kernel's config. Generate a key with `openssl rand -base64 32`.");return this.currentId}}class U extends Error{constructor(q){super(q);this.name="EncryptionKeyError"}}class N extends Error{reason;column;constructor(q,z){super(z);this.reason=q;this.name="DecryptionError"}}var j="v1",E="aes-256-gcm",f=32,y=12,A=16,u=/^[A-Za-z0-9_-]{1,32}$/,v=/^[A-Za-z0-9_-]+$/;function zq(q,z){if(typeof z!=="string"||z.trim()==="")throw new U(`Encryption key "${q}" is empty. Is the environment variable it reads set?`);let J=z.trim().replace(/^base64:/,""),Q=/^[A-Za-z0-9+/=_-]+$/.test(J)?Buffer.from(J,"base64"):Buffer.alloc(0);if(Q.length!==f)throw new U(`Encryption key "${q}" is not ${f} bytes of base64 (it decodes to ${Q.length}). Generate one with \`openssl rand -base64 32\`.`);return Q}function D(q){if(typeof q!=="string")return null;let z=q.split(":");if(z.length!==4||z[0]!==j)return null;let[,J,Q,Z]=z;if(!u.test(J)||!v.test(Q)||!v.test(Z))return null;let $=Buffer.from(Q,"base64url"),X=Buffer.from(Z,"base64url");if($.length!==y||X.length<A)return null;return{keyId:J,iv:$,ciphertext:X.subarray(0,X.length-A),tag:X.subarray(X.length-A)}}function I(q){return q.size===0?"none configured":[...q.keys()].map((z)=>`"${z}"`).join(", ")}function Jq(q){return q===null?"null":Array.isArray(q)?"an array":`a ${typeof q}`}var h=new WeakMap;function T(q){let z=h.get(q);if(z===void 0)z=Object.values(q.fields).filter((J)=>J.encrypted===!0).map((J)=>J.name),h.set(q,z);return z}function Mq(){let q=new Set,z=[];for(let J of x()){let Q=O(J);if(!Q||q.has(Q.name))continue;q.add(Q.name);for(let Z of T(Q))z.push(`${Q.name}.${Z}`)}return z}function c(){let q=p();if(!q.bound(Y))throw new U("Encrypted columns need an Encrypter, and none is bound in this application. A booted Kernel binds one from the `encryption` config slice; a hand-built Application can bind its own: `application.instance(Encrypter, new Encrypter({ keys: { k1: key } }))`.");return q.make(Y)}var l=Symbol("gemi.orm.encryptedColumnsRaw");function Nq(q){return{...q,[l]:!0}}function Vq(q){return typeof q==="object"&&q!==null&&q[l]===!0}function Lq(q,z,J){if(!P(J))return;let Q={model:q.name,operation:z};d(q,J,Q,0);for(let Z of["by","_min","_max","_avg","_sum"])if(J[Z]!==void 0)o(q,J[Z],Z,Q);if(J.having!==void 0)B(q,J.having,Q)}var w=64;function d(q,z,J,Q){if(Q>w)return;if(z.where!==void 0)W(q,z.where,"where",J,Q);if(z.cursor!==void 0)W(q,z.cursor,"cursor",J,Q);if(z.orderBy!==void 0)K(q,z.orderBy,J,Q);if(z.distinct!==void 0)o(q,z.distinct,"distinct",J);for(let Z of[z.include,z.select]){if(!P(Z))continue;for(let[$,X]of Object.entries(Z)){if(!P(X))continue;if($==="_count"){if(!P(X.select))continue;for(let[G,F]of Object.entries(X.select)){let H=R(q,G);if(H&&P(F)&&F.where!==void 0)W(H,F.where,"where",J,Q+1)}continue}let C=R(q,$);if(C)d(C,X,J,Q+1)}}}var Qq=["some","every","none","is","isNot"];function W(q,z,J,Q,Z){if(Z>w)return;if(Array.isArray(z)){for(let $ of z)W(q,$,J,Q,Z);return}if(!P(z))return;for(let[$,X]of Object.entries(z)){if(X===void 0)continue;if($==="AND"||$==="OR"||$==="NOT"){W(q,X,J,Q,Z);continue}let C=q.fields[$];if(C){if(C.encrypted===!0&&!t(X))L(q,$,J,Q);continue}let G=R(q,$);if(G){if(!P(X))continue;let F=Object.keys(X).filter((H)=>Qq.includes(H));if(F.length>0)for(let H of F)W(G,X[H],J,Q,Z+1);else W(G,X,J,Q,Z+1);continue}if(P(X)){for(let F of Object.keys(X))if(q.fields[F]?.encrypted===!0)L(q,F,J,Q)}}}function K(q,z,J,Q){if(Q>w)return;if(Array.isArray(z)){for(let Z of z)K(q,Z,J,Q);return}if(!P(z))return;for(let[Z,$]of Object.entries(z)){if(q.fields[Z]?.encrypted===!0)L(q,Z,"orderBy",J);let X=R(q,Z);if(X&&P($)&&!("_count"in $))K(X,$,J,Q+1)}}function o(q,z,J,Q){let Z=typeof z==="string"?[z]:Array.isArray(z)?z.filter(($)=>typeof $==="string"):P(z)?Object.keys(z).filter(($)=>z[$]):[];for(let $ of Z)if(q.fields[$]?.encrypted===!0)L(q,$,J,Q)}function B(q,z,J){if(Array.isArray(z)){for(let Q of z)B(q,Q,J);return}if(!P(z))return;for(let[Q,Z]of Object.entries(z)){if(Q==="AND"||Q==="OR"||Q==="NOT"){B(q,Z,J);continue}if(q.fields[Q]?.encrypted===!0&&!t(Z))L(q,Q,"having",J)}}function t(q){if(q===null)return!0;if(!P(q))return!1;let z=Object.entries(q).filter(([,J])=>J!==void 0);return z.length>0&&z.every(([J,Q])=>(J==="equals"||J==="not")&&Q===null)}function L(q,z,J,Q){throw new m(J,Q.model,Q.operation,`${q.name}.${z} is an encrypted column: each write stores a different random ciphertext, so the database cannot compare, sort or group by it. Only null checks work on it ({ ${z}: null } or { ${z}: { not: null } }). To look a row up by a secret, store a keyed hash of it in a separate column and filter on that.`)}function Yq(q,z,J){let Q=T(q);if(Q.length===0||!P(J))return J;let Z={model:q.name,operation:z},$,X=(F)=>($??=c()).encrypt(F),C=J,G=(F,H)=>{if(H===C[F])return;if(C===J)C={...J};C[F]=H};switch(z){case"create":case"update":case"updateMany":G("data",V(Q,J.data,X,Z));break;case"createMany":G("data",Array.isArray(J.data)?Zq(J.data,(F)=>V(Q,F,X,Z)):V(Q,J.data,X,Z));break;case"upsert":G("create",V(Q,J.create,X,Z)),G("update",V(Q,J.update,X,Z));break}return C}function V(q,z,J,Q){if(!P(z))return z;let Z;for(let $ of q){if(!($ in z))continue;let X=z[$],C=s($,X,J,Q);if(C!==X)(Z??={...z})[$]=C}return Z??z}function s(q,z,J,Q){if(z===void 0||z===null)return z;if(typeof z==="string")return J(z);if(P(z)&&Object.keys(z).length===1&&"set"in z){let Z=z.set;return Z===null||Z===void 0?z:{set:s(q,Z,J,Q)}}throw new g("data",Q.model,Q.operation,`${Q.model}.${q} is an encrypted column and takes a string or null (or { set: string | null }); got ${Cq(z)}.`)}function Zq(q,z){let J;return q.forEach((Q,Z)=>{let $=z(Q);if($!==Q)(J??=[...q])[Z]=$}),J??q}function $q(q,z){let J=T(q);if(J.length===0||z.length===0)return;let Q;for(let Z of z){if(!P(Z))continue;for(let $ of J){let X=Z[$];if(typeof X!=="string")continue;Q??=c();try{Z[$]=Q.decrypt(X)}catch(C){if(C instanceof N)C.column={model:q.name,field:$},C.message=`Could not decrypt ${q.name}.${$}: ${C.message}`;throw C}}}}function Xq(q,z){let J=O(q.model),Q=[];for(let Z of z){if(!P(Z))continue;let $=Z[q.as];if(Array.isArray($))Q.push(...$);else if(P($))Q.push($)}if(Q.length===0)return;if(J)$q(J,Q);for(let Z of q.folded??[])Xq(Z,Q)}function O(q){if(!S(q))return;return _(q).$schema}function R(q,z){let J=q.relations[z];return J?O(J.model):void 0}function P(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)&&!(q instanceof Date)}function Cq(q){if(Array.isArray(q))return"an array";if(q instanceof Date)return"a Date";return`a ${typeof q}`}
3
+ export{i as ej,S as fj,_ as gj,x as hj,b as ij,Y as jj,U as kj,N as lj,T as mj,Mq as nj,c as oj,Nq as pj,Vq as qj,Lq as rj,Yq as sj,$q as tj,Xq as uj};
4
4
 
5
- //# debugId=318BD8E7C064736E64756E2164756E21
5
+ //# debugId=EA8738709F8C9C6164756E2164756E21
@@ -7,6 +7,6 @@
7
7
  "import { app } from \"../foundation/app\";\nimport {\n DecryptionError,\n Encrypter,\n EncryptionKeyError,\n} from \"../services/encryption/Encrypter\";\nimport { InvalidArgumentError, UnsupportedByDesignError } from \"./errors\";\nimport * as registry from \"./registry\";\nimport type { ModelSchema } from \"./schema\";\n\n/**\n * Encrypted columns: a `String` field marked `/// @gemi.encrypted` in the\n * Prisma schema is stored as an `Encrypter` envelope and read back as the\n * plaintext.\n *\n * Applied in `Model.$exec`, per model, at the two places a value crosses the\n * boundary:\n *\n * - **Writes** encrypt the model's *own* columns in `data` (and an upsert's\n * `create` / `update`). A nested write into a related model is not touched\n * here: every nested write runs through the related model's own `$exec`,\n * which encrypts its own columns, so encrypting it here as well would\n * encrypt it twice.\n * - **Reads** decrypt the model's own rows after shaping. A batched `include`\n * comes back through the child's `$exec` and is already decrypted; a folded\n * (lateral) one never enters it, so the parent decrypts those rows on the\n * child's behalf (`decryptFolded`) — the same split `redactFolded` handles\n * for policies.\n *\n * The schema, not the model class, says which columns are encrypted. That is\n * deliberate: a column that is encrypted when written through `FigmaConnection`\n * and plaintext when written through `FigmaConnectionModel` is not encrypted\n * at rest. The generated base, the subclass and every `Model.on(...)` variant\n * share one `$schema`, so none of them can write the column in the clear.\n *\n * A filter, sort or grouping on an encrypted column is refused: every write\n * stores a different random ciphertext, so the database cannot compare it to\n * anything. A null check is the exception, because a NULL column is stored as\n * NULL.\n */\n\nconst fieldsBySchema = new WeakMap<ModelSchema, readonly string[]>();\n\n/** The schema's encrypted fields, in declaration order. Empty for most models. */\nexport function encryptedFields(schema: ModelSchema): readonly string[] {\n let fields = fieldsBySchema.get(schema);\n if (fields === undefined) {\n fields = Object.values(schema.fields)\n .filter((field) => field.encrypted === true)\n .map((field) => field.name);\n fieldsBySchema.set(schema, fields);\n }\n return fields;\n}\n\n/** `Model.field` for every encrypted column of every registered model. */\nexport function encryptedColumnsInRegistry(): string[] {\n const seen = new Set<string>();\n const columns: string[] = [];\n for (const name of registry.registeredNames()) {\n const schema = schemaOf(name);\n if (!schema || seen.has(schema.name)) continue;\n seen.add(schema.name);\n for (const field of encryptedFields(schema)) columns.push(`${schema.name}.${field}`);\n }\n return columns;\n}\n\n/**\n * The application's `Encrypter`. An application booted without the\n * framework's providers (a test harness that binds only the database) gets a\n * typed error naming the fix rather than a container error.\n */\nexport function currentEncrypter(): Encrypter {\n const application = app();\n if (!application.bound(Encrypter)) {\n throw new EncryptionKeyError(\n \"Encrypted columns need an Encrypter, and none is bound in this \" +\n \"application. A booted Kernel binds one from the `encryption` config \" +\n \"slice; a hand-built Application can bind its own: \" +\n \"`application.instance(Encrypter, new Encrypter({ keys: { k1: key } }))`.\",\n );\n }\n return application.make(Encrypter);\n}\n\n// --- the internal raw mode ---------------------------------------------------\n\n/**\n * Marks an `$exec` call as reading and writing encrypted columns *as stored*:\n * no decryption of results, no encryption of `data`, and filters on encrypted\n * columns allowed (compared against the envelope). Used by `encryption:rotate`\n * to compare-and-swap one envelope for another. A module-private symbol, like\n * the other `$exec` markers, so an application cannot set it.\n */\nconst RAW = Symbol(\"gemi.orm.encryptedColumnsRaw\");\n\nexport function markEncryptionRaw<T extends object>(options: T): T {\n return { ...options, [RAW]: true };\n}\n\nexport function isEncryptionRaw(options: unknown): boolean {\n return (\n typeof options === \"object\" &&\n options !== null &&\n (options as Record<symbol, unknown>)[RAW] === true\n );\n}\n\n// --- refusing filters --------------------------------------------------------\n\ninterface Origin {\n model: string;\n operation: string;\n}\n\n/**\n * Refuses any argument that would make the database compare, sort or group an\n * encrypted column: `where` (including relation filters into other models),\n * `orderBy`, `distinct`, `cursor`, `groupBy`'s `by` and `having`, the\n * `_min` / `_max` aggregates, and the same arguments nested inside an\n * `include` or `select`.\n *\n * Walked whether or not this model has encrypted columns, because a relation\n * filter or an include reaches other models'.\n */\nexport function assertNoEncryptedFilters(schema: ModelSchema, op: string, args: unknown): void {\n if (!isObject(args)) return;\n const origin: Origin = { model: schema.name, operation: op };\n readArgs(schema, args, origin, 0);\n for (const key of [\"by\", \"_min\", \"_max\", \"_avg\", \"_sum\"]) {\n if (args[key] !== undefined) fieldList(schema, args[key], key, origin);\n }\n if (args.having !== undefined) having(schema, args.having, origin);\n}\n\n/** Generous: relation depth is bounded by `MAX_RELATION_DEPTH` long before this. */\nconst MAX_WALK_DEPTH = 64;\n\nfunction readArgs(schema: ModelSchema, args: Record<string, any>, origin: Origin, depth: number) {\n if (depth > MAX_WALK_DEPTH) return;\n if (args.where !== undefined) where(schema, args.where, \"where\", origin, depth);\n if (args.cursor !== undefined) where(schema, args.cursor, \"cursor\", origin, depth);\n if (args.orderBy !== undefined) orderBy(schema, args.orderBy, origin, depth);\n if (args.distinct !== undefined) fieldList(schema, args.distinct, \"distinct\", origin);\n\n for (const projection of [args.include, args.select]) {\n if (!isObject(projection)) continue;\n for (const [key, value] of Object.entries(projection)) {\n if (!isObject(value)) continue;\n if (key === \"_count\") {\n if (!isObject(value.select)) continue;\n for (const [name, count] of Object.entries(value.select)) {\n const target = relationTarget(schema, name);\n if (target && isObject(count) && count.where !== undefined) {\n where(target, count.where, \"where\", origin, depth + 1);\n }\n }\n continue;\n }\n const target = relationTarget(schema, key);\n if (target) readArgs(target, value, origin, depth + 1);\n }\n }\n}\n\nconst RELATION_FILTERS = [\"some\", \"every\", \"none\", \"is\", \"isNot\"];\n\nfunction where(\n schema: ModelSchema,\n node: unknown,\n argument: string,\n origin: Origin,\n depth: number,\n): void {\n if (depth > MAX_WALK_DEPTH) return;\n if (Array.isArray(node)) {\n for (const item of node) where(schema, item, argument, origin, depth);\n return;\n }\n if (!isObject(node)) return;\n\n for (const [key, value] of Object.entries(node)) {\n if (value === undefined) continue;\n\n if (key === \"AND\" || key === \"OR\" || key === \"NOT\") {\n where(schema, value, argument, origin, depth);\n continue;\n }\n\n const field = schema.fields[key];\n if (field) {\n if (field.encrypted === true && !isNullCheck(value)) {\n refuse(schema, key, argument, origin);\n }\n continue;\n }\n\n const target = relationTarget(schema, key);\n if (target) {\n if (!isObject(value)) continue;\n const filters = Object.keys(value).filter((name) => RELATION_FILTERS.includes(name));\n if (filters.length > 0) {\n for (const name of filters) where(target, value[name], argument, origin, depth + 1);\n } else {\n where(target, value, argument, origin, depth + 1);\n }\n continue;\n }\n\n // A compound unique key — `provider_providerId: { provider, providerId }`.\n if (isObject(value)) {\n for (const name of Object.keys(value)) {\n if (schema.fields[name]?.encrypted === true) refuse(schema, name, argument, origin);\n }\n }\n }\n}\n\nfunction orderBy(schema: ModelSchema, node: unknown, origin: Origin, depth: number): void {\n if (depth > MAX_WALK_DEPTH) return;\n if (Array.isArray(node)) {\n for (const item of node) orderBy(schema, item, origin, depth);\n return;\n }\n if (!isObject(node)) return;\n for (const [key, value] of Object.entries(node)) {\n if (schema.fields[key]?.encrypted === true) refuse(schema, key, \"orderBy\", origin);\n const target = relationTarget(schema, key);\n if (target && isObject(value) && !(\"_count\" in value)) {\n orderBy(target, value, origin, depth + 1);\n }\n }\n}\n\n/** `distinct`, `by`, and the `_min` / `_max` / `_avg` / `_sum` selections. */\nfunction fieldList(schema: ModelSchema, node: unknown, argument: string, origin: Origin): void {\n const names =\n typeof node === \"string\"\n ? [node]\n : Array.isArray(node)\n ? node.filter((name): name is string => typeof name === \"string\")\n : isObject(node)\n ? Object.keys(node).filter((name) => node[name])\n : [];\n for (const name of names) {\n if (schema.fields[name]?.encrypted === true) refuse(schema, name, argument, origin);\n }\n}\n\nfunction having(schema: ModelSchema, node: unknown, origin: Origin): void {\n if (Array.isArray(node)) {\n for (const item of node) having(schema, item, origin);\n return;\n }\n if (!isObject(node)) return;\n for (const [key, value] of Object.entries(node)) {\n if (key === \"AND\" || key === \"OR\" || key === \"NOT\") {\n having(schema, value, origin);\n continue;\n }\n if (schema.fields[key]?.encrypted === true && !isNullCheck(value)) {\n refuse(schema, key, \"having\", origin);\n }\n }\n}\n\n/** `null`, `{ equals: null }`, `{ not: null }` — the only comparisons a ciphertext supports. */\nfunction isNullCheck(value: unknown): boolean {\n if (value === null) return true;\n if (!isObject(value)) return false;\n const entries = Object.entries(value).filter(([, operand]) => operand !== undefined);\n return (\n entries.length > 0 &&\n entries.every(([operator, operand]) => (operator === \"equals\" || operator === \"not\") && operand === null)\n );\n}\n\nfunction refuse(schema: ModelSchema, field: string, argument: string, origin: Origin): never {\n throw new UnsupportedByDesignError(\n argument,\n origin.model,\n origin.operation,\n `${schema.name}.${field} is an encrypted column: each write stores a ` +\n `different random ciphertext, so the database cannot compare, sort or ` +\n `group by it. Only null checks work on it ({ ${field}: null } or ` +\n `{ ${field}: { not: null } }). To look a row up by a secret, store a ` +\n `keyed hash of it in a separate column and filter on that.`,\n );\n}\n\n// --- writes ------------------------------------------------------------------\n\n/**\n * `args` with this model's encrypted columns encrypted, or `args` itself when\n * there is nothing to encrypt. Never mutates the caller's objects: the same\n * `data` may be reused for a second call.\n *\n * Only `data` (and an upsert's `create` / `update`) at this level. Nested\n * relation writes are left as they are; see the note at the top of the file.\n */\nexport function encryptWriteArgs(schema: ModelSchema, op: string, args: any): any {\n const fields = encryptedFields(schema);\n if (fields.length === 0 || !isObject(args)) return args;\n\n const origin: Origin = { model: schema.name, operation: op };\n let encrypter: Encrypter | undefined;\n const encrypt = (value: string) => (encrypter ??= currentEncrypter()).encrypt(value);\n\n let next = args;\n const replace = (key: string, value: unknown) => {\n if (value === next[key]) return;\n if (next === args) next = { ...args };\n next[key] = value;\n };\n\n switch (op) {\n case \"create\":\n case \"update\":\n case \"updateMany\":\n replace(\"data\", encryptData(fields, args.data, encrypt, origin));\n break;\n case \"createMany\":\n replace(\n \"data\",\n Array.isArray(args.data)\n ? mapIfChanged(args.data, (row) => encryptData(fields, row, encrypt, origin))\n : encryptData(fields, args.data, encrypt, origin),\n );\n break;\n case \"upsert\":\n replace(\"create\", encryptData(fields, args.create, encrypt, origin));\n replace(\"update\", encryptData(fields, args.update, encrypt, origin));\n break;\n }\n return next;\n}\n\nfunction encryptData(\n fields: readonly string[],\n data: unknown,\n encrypt: (value: string) => string,\n origin: Origin,\n): unknown {\n if (!isObject(data)) return data;\n let copy: Record<string, unknown> | undefined;\n for (const name of fields) {\n if (!(name in data)) continue;\n const value = data[name];\n const next = encryptValue(name, value, encrypt, origin);\n if (next !== value) (copy ??= { ...data })[name] = next;\n }\n return copy ?? data;\n}\n\nfunction encryptValue(\n field: string,\n value: unknown,\n encrypt: (value: string) => string,\n origin: Origin,\n): unknown {\n if (value === undefined || value === null) return value;\n if (typeof value === \"string\") return encrypt(value);\n // Prisma's `{ set: value }` spelling of a scalar update.\n if (isObject(value) && Object.keys(value).length === 1 && \"set\" in value) {\n const set = value.set;\n return set === null || set === undefined ? value : { set: encryptValue(field, set, encrypt, origin) };\n }\n throw new InvalidArgumentError(\n \"data\",\n origin.model,\n origin.operation,\n `${origin.model}.${field} is an encrypted column and takes a string or ` +\n `null (or { set: string | null }); got ${describe(value)}.`,\n );\n}\n\nfunction mapIfChanged<T>(items: T[], fn: (item: T) => T): T[] {\n let copy: T[] | undefined;\n items.forEach((item, index) => {\n const next = fn(item);\n if (next !== item) (copy ??= [...items])[index] = next;\n });\n return copy ?? items;\n}\n\n// --- reads -------------------------------------------------------------------\n\n/**\n * Decrypts this model's encrypted columns on `rows`, in place. A value that\n * does not decrypt raises `DecryptionError` naming the column — a ciphertext\n * is never handed back as if it were the value.\n */\nexport function decryptRows(schema: ModelSchema, rows: readonly unknown[]): void {\n const fields = encryptedFields(schema);\n if (fields.length === 0 || rows.length === 0) return;\n\n let encrypter: Encrypter | undefined;\n for (const row of rows) {\n if (!isObject(row)) continue;\n for (const field of fields) {\n const value = row[field];\n if (typeof value !== \"string\") continue;\n encrypter ??= currentEncrypter();\n try {\n row[field] = encrypter.decrypt(value);\n } catch (error) {\n if (error instanceof DecryptionError) {\n error.column = { model: schema.name, field };\n error.message = `Could not decrypt ${schema.name}.${field}: ${error.message}`;\n }\n throw error;\n }\n }\n }\n}\n\n/**\n * Decrypts the rows a strategy folded into the parent's statement, which never\n * passed through their own model's `$exec`. Recursive, because the fold is.\n */\nexport function decryptFolded(\n relation: { as: string; model: string; folded?: readonly { as: string; model: string; folded?: readonly unknown[] }[] },\n parents: readonly unknown[],\n): void {\n const schema = schemaOf(relation.model);\n const rows: unknown[] = [];\n for (const parent of parents) {\n if (!isObject(parent)) continue;\n const value = parent[relation.as];\n if (Array.isArray(value)) rows.push(...value);\n else if (isObject(value)) rows.push(value);\n }\n if (rows.length === 0) return;\n if (schema) decryptRows(schema, rows);\n for (const child of relation.folded ?? []) {\n decryptFolded(child as Parameters<typeof decryptFolded>[0], rows);\n }\n}\n\n// --- helpers -----------------------------------------------------------------\n\nfunction schemaOf(model: string): ModelSchema | undefined {\n if (!registry.has(model)) return undefined;\n return registry.get<{ $schema?: ModelSchema }>(model).$schema;\n}\n\nfunction relationTarget(schema: ModelSchema, name: string): ModelSchema | undefined {\n const relation = schema.relations[name];\n return relation ? schemaOf(relation.model) : undefined;\n}\n\nfunction isObject(value: unknown): value is Record<string, any> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) && !(value instanceof Date);\n}\n\nfunction describe(value: unknown): string {\n if (Array.isArray(value)) return \"an array\";\n if (value instanceof Date) return \"a Date\";\n return `a ${typeof value}`;\n}\n"
8
8
  ],
9
9
  "mappings": "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",
10
- "debugId": "318BD8E7C064736E64756E2164756E21",
10
+ "debugId": "EA8738709F8C9C6164756E2164756E21",
11
11
  "names": []
12
12
  }