gemi 0.167.0 → 0.169.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/ai/Agent.d.ts +3 -5
  2. package/dist/ai/Agent.d.ts.map +1 -1
  3. package/dist/ai/AgentController.d.ts +16 -2
  4. package/dist/ai/AgentController.d.ts.map +1 -1
  5. package/dist/ai/Prompt.d.ts +15 -1
  6. package/dist/ai/Prompt.d.ts.map +1 -1
  7. package/dist/ai/index.d.ts +1 -1
  8. package/dist/ai/index.d.ts.map +1 -1
  9. package/dist/ai/index.js +32 -32
  10. package/dist/ai/index.js.map +4 -4
  11. package/dist/app/App.d.ts +3 -3
  12. package/dist/app/index.js +1 -1
  13. package/dist/bin/gemi.js +405 -376
  14. package/dist/bin/gemi.js.map +6 -5
  15. package/dist/bun/plugin.js +1 -1
  16. package/dist/bun/preload.js +1 -1
  17. package/dist/{chunk-eyv6hss6.js → chunk-0q65jzhv.js} +2 -2
  18. package/dist/{chunk-eyv6hss6.js.map → chunk-0q65jzhv.js.map} +1 -1
  19. package/dist/{chunk-p3qbym3v.js → chunk-0wet87jm.js} +2 -2
  20. package/dist/{chunk-p3qbym3v.js.map → chunk-0wet87jm.js.map} +1 -1
  21. package/dist/{chunk-4fzevafk.js → chunk-0wk992a5.js} +2 -2
  22. package/dist/{chunk-4fzevafk.js.map → chunk-0wk992a5.js.map} +1 -1
  23. package/dist/{chunk-q4vtjdea.js → chunk-17272ccy.js} +3 -3
  24. package/dist/{chunk-q4vtjdea.js.map → chunk-17272ccy.js.map} +1 -1
  25. package/dist/{chunk-w4at2d5d.js → chunk-1h6g1hkg.js} +2 -2
  26. package/dist/{chunk-w4at2d5d.js.map → chunk-1h6g1hkg.js.map} +1 -1
  27. package/dist/{chunk-hdt8cwsv.js → chunk-21hppqtb.js} +2 -2
  28. package/dist/{chunk-hdt8cwsv.js.map → chunk-21hppqtb.js.map} +1 -1
  29. package/dist/{chunk-qec3g4w3.js → chunk-2v7wq01w.js} +2 -2
  30. package/dist/{chunk-qec3g4w3.js.map → chunk-2v7wq01w.js.map} +1 -1
  31. package/dist/{chunk-z316fasf.js → chunk-2xtkh8bh.js} +19 -19
  32. package/dist/{chunk-z316fasf.js.map → chunk-2xtkh8bh.js.map} +3 -3
  33. package/dist/{chunk-0hfvwzd1.js → chunk-31np60bx.js} +2 -2
  34. package/dist/{chunk-0hfvwzd1.js.map → chunk-31np60bx.js.map} +1 -1
  35. package/dist/{chunk-mbkje42z.js → chunk-3682hkq0.js} +2 -2
  36. package/dist/{chunk-mbkje42z.js.map → chunk-3682hkq0.js.map} +1 -1
  37. package/dist/{chunk-fnj2hc5v.js → chunk-3rp908gn.js} +1 -1
  38. package/dist/{chunk-3xj1e3ns.js → chunk-44y62yav.js} +3 -3
  39. package/dist/{chunk-3xj1e3ns.js.map → chunk-44y62yav.js.map} +1 -1
  40. package/dist/{chunk-c3cdj9y7.js → chunk-4mtqbcc5.js} +2 -2
  41. package/dist/{chunk-c3cdj9y7.js.map → chunk-4mtqbcc5.js.map} +1 -1
  42. package/dist/{chunk-80703vks.js → chunk-4qpyz627.js} +2 -2
  43. package/dist/{chunk-80703vks.js.map → chunk-4qpyz627.js.map} +1 -1
  44. package/dist/{chunk-4rnpvajg.js → chunk-4tt14jnx.js} +2 -2
  45. package/dist/{chunk-4rnpvajg.js.map → chunk-4tt14jnx.js.map} +1 -1
  46. package/dist/{chunk-mcavkjh4.js → chunk-5aexecst.js} +2 -2
  47. package/dist/{chunk-mcavkjh4.js.map → chunk-5aexecst.js.map} +1 -1
  48. package/dist/{chunk-efjk5aq7.js → chunk-5n21z4n8.js} +2 -2
  49. package/dist/{chunk-efjk5aq7.js.map → chunk-5n21z4n8.js.map} +1 -1
  50. package/dist/{chunk-pk4drzc9.js → chunk-5nz46dyw.js} +2 -2
  51. package/dist/{chunk-pk4drzc9.js.map → chunk-5nz46dyw.js.map} +1 -1
  52. package/dist/{chunk-6tbs7yc1.js → chunk-6t1t7h05.js} +2 -2
  53. package/dist/{chunk-6tbs7yc1.js.map → chunk-6t1t7h05.js.map} +1 -1
  54. package/dist/{chunk-tms2g9at.js → chunk-777v6242.js} +1 -1
  55. package/dist/{chunk-kcgnjzqr.js → chunk-8b9ks729.js} +3 -3
  56. package/dist/{chunk-kcgnjzqr.js.map → chunk-8b9ks729.js.map} +1 -1
  57. package/dist/{chunk-8f4jkpv7.js → chunk-8hfyscnn.js} +1 -1
  58. package/dist/{chunk-4587ab6m.js → chunk-978pc27j.js} +2 -2
  59. package/dist/{chunk-4587ab6m.js.map → chunk-978pc27j.js.map} +1 -1
  60. package/dist/{chunk-y1ks8ahw.js → chunk-9aj6eavs.js} +2 -2
  61. package/dist/{chunk-y1ks8ahw.js.map → chunk-9aj6eavs.js.map} +1 -1
  62. package/dist/{chunk-xw5d66ec.js → chunk-9akefv1y.js} +2 -2
  63. package/dist/{chunk-xw5d66ec.js.map → chunk-9akefv1y.js.map} +1 -1
  64. package/dist/{chunk-y6x52vkb.js → chunk-9ft0ayhf.js} +2 -2
  65. package/dist/{chunk-y6x52vkb.js.map → chunk-9ft0ayhf.js.map} +1 -1
  66. package/dist/{chunk-m5hd632w.js → chunk-9wcv7e1a.js} +2 -2
  67. package/dist/{chunk-h5whhrds.js.map → chunk-9wcv7e1a.js.map} +1 -1
  68. package/dist/{chunk-c0dvdfm0.js → chunk-a9frf7ym.js} +2 -2
  69. package/dist/{chunk-c0dvdfm0.js.map → chunk-a9frf7ym.js.map} +1 -1
  70. package/dist/{chunk-ndj94vde.js → chunk-acmf790v.js} +2 -2
  71. package/dist/{chunk-ndj94vde.js.map → chunk-acmf790v.js.map} +1 -1
  72. package/dist/{chunk-2jk0f4sj.js → chunk-aj1jrwwh.js} +2 -2
  73. package/dist/{chunk-2jk0f4sj.js.map → chunk-aj1jrwwh.js.map} +1 -1
  74. package/dist/{chunk-36yp8364.js → chunk-c46vhvk4.js} +2 -2
  75. package/dist/{chunk-36yp8364.js.map → chunk-c46vhvk4.js.map} +1 -1
  76. package/dist/{chunk-tqgpahmn.js → chunk-d849rktz.js} +25 -25
  77. package/dist/{chunk-tqgpahmn.js.map → chunk-d849rktz.js.map} +6 -6
  78. package/dist/{chunk-5x9b1ema.js → chunk-df2zeevj.js} +2 -2
  79. package/dist/{chunk-5x9b1ema.js.map → chunk-df2zeevj.js.map} +1 -1
  80. package/dist/{chunk-ndyafsv6.js → chunk-drwjwtmj.js} +2 -2
  81. package/dist/{chunk-ndyafsv6.js.map → chunk-drwjwtmj.js.map} +1 -1
  82. package/dist/{chunk-wypncj52.js → chunk-ecdjbd2w.js} +3 -3
  83. package/dist/{chunk-wypncj52.js.map → chunk-ecdjbd2w.js.map} +1 -1
  84. package/dist/{chunk-6cw6tn57.js → chunk-embwksec.js} +2 -2
  85. package/dist/{chunk-6cw6tn57.js.map → chunk-embwksec.js.map} +1 -1
  86. package/dist/chunk-f4nanvkm.js +5 -0
  87. package/dist/{chunk-8v6y52et.js.map → chunk-f4nanvkm.js.map} +1 -1
  88. package/dist/{chunk-b8qfypzq.js → chunk-fb77hwk0.js} +3 -3
  89. package/dist/{chunk-b8qfypzq.js.map → chunk-fb77hwk0.js.map} +1 -1
  90. package/dist/{chunk-fva651jp.js → chunk-fcbgshf5.js} +2 -2
  91. package/dist/{chunk-fva651jp.js.map → chunk-fcbgshf5.js.map} +1 -1
  92. package/dist/{chunk-f6mwnw81.js → chunk-g1jfc50d.js} +3 -3
  93. package/dist/{chunk-f6mwnw81.js.map → chunk-g1jfc50d.js.map} +1 -1
  94. package/dist/{chunk-0psf0chk.js → chunk-g548q257.js} +2 -2
  95. package/dist/{chunk-0psf0chk.js.map → chunk-g548q257.js.map} +2 -2
  96. package/dist/{chunk-wjff0d08.js → chunk-gjwf07hy.js} +3 -3
  97. package/dist/{chunk-wjff0d08.js.map → chunk-gjwf07hy.js.map} +1 -1
  98. package/dist/{chunk-matvbghh.js → chunk-gv5r1rd7.js} +2 -2
  99. package/dist/{chunk-matvbghh.js.map → chunk-gv5r1rd7.js.map} +1 -1
  100. package/dist/{chunk-2ewe42dq.js → chunk-gwphn604.js} +3 -3
  101. package/dist/{chunk-2ewe42dq.js.map → chunk-gwphn604.js.map} +1 -1
  102. package/dist/{chunk-xed7yf6h.js → chunk-hgpvfhtp.js} +1 -1
  103. package/dist/{chunk-h5whhrds.js → chunk-hwpp9b7f.js} +2 -2
  104. package/dist/{chunk-m5hd632w.js.map → chunk-hwpp9b7f.js.map} +1 -1
  105. package/dist/{chunk-vqf4s99d.js → chunk-jd079awh.js} +2 -2
  106. package/dist/{chunk-vqf4s99d.js.map → chunk-jd079awh.js.map} +1 -1
  107. package/dist/{chunk-1ap3vcrr.js → chunk-jxx9mctk.js} +2 -2
  108. package/dist/{chunk-1ap3vcrr.js.map → chunk-jxx9mctk.js.map} +1 -1
  109. package/dist/{chunk-mj429x94.js → chunk-k87tqe29.js} +2 -2
  110. package/dist/{chunk-mj429x94.js.map → chunk-k87tqe29.js.map} +1 -1
  111. package/dist/{chunk-1k4rvfza.js → chunk-kbw6y0ag.js} +2 -2
  112. package/dist/{chunk-1k4rvfza.js.map → chunk-kbw6y0ag.js.map} +1 -1
  113. package/dist/{chunk-pr2enaz5.js → chunk-krdq5s4y.js} +2 -2
  114. package/dist/{chunk-pr2enaz5.js.map → chunk-krdq5s4y.js.map} +1 -1
  115. package/dist/{chunk-7ysw97gp.js → chunk-m6sj1q1q.js} +2 -2
  116. package/dist/{chunk-7ysw97gp.js.map → chunk-m6sj1q1q.js.map} +1 -1
  117. package/dist/{chunk-hgvt5084.js → chunk-m950vw4c.js} +2 -2
  118. package/dist/{chunk-hgvt5084.js.map → chunk-m950vw4c.js.map} +1 -1
  119. package/dist/{chunk-873k84dt.js → chunk-mm45shzv.js} +2 -2
  120. package/dist/{chunk-873k84dt.js.map → chunk-mm45shzv.js.map} +1 -1
  121. package/dist/{chunk-6q15sx3h.js → chunk-p56zntmt.js} +3 -3
  122. package/dist/{chunk-6q15sx3h.js.map → chunk-p56zntmt.js.map} +1 -1
  123. package/dist/{chunk-p97w2388.js → chunk-q3511sb5.js} +2 -2
  124. package/dist/{chunk-p97w2388.js.map → chunk-q3511sb5.js.map} +1 -1
  125. package/dist/{chunk-kfdy4vv1.js → chunk-q788x8pm.js} +2 -2
  126. package/dist/{chunk-kfdy4vv1.js.map → chunk-q788x8pm.js.map} +1 -1
  127. package/dist/{chunk-23670kw5.js → chunk-rpdekb8t.js} +2 -2
  128. package/dist/{chunk-23670kw5.js.map → chunk-rpdekb8t.js.map} +1 -1
  129. package/dist/{chunk-j7k0nzqz.js → chunk-s4fb4njt.js} +2 -2
  130. package/dist/{chunk-j7k0nzqz.js.map → chunk-s4fb4njt.js.map} +1 -1
  131. package/dist/{chunk-7yh908jj.js → chunk-s71e6k9m.js} +3 -3
  132. package/dist/{chunk-7yh908jj.js.map → chunk-s71e6k9m.js.map} +1 -1
  133. package/dist/{chunk-6eb6jgdv.js → chunk-sdn3dmpp.js} +4 -4
  134. package/dist/{chunk-6eb6jgdv.js.map → chunk-sdn3dmpp.js.map} +1 -1
  135. package/dist/{chunk-qnv9w5g5.js → chunk-skv12k0x.js} +2 -2
  136. package/dist/{chunk-qnv9w5g5.js.map → chunk-skv12k0x.js.map} +1 -1
  137. package/dist/{chunk-fxd7pqk3.js → chunk-sp77zwpn.js} +2 -2
  138. package/dist/{chunk-fxd7pqk3.js.map → chunk-sp77zwpn.js.map} +1 -1
  139. package/dist/{chunk-82jhqxx7.js → chunk-sv86v56c.js} +3 -3
  140. package/dist/{chunk-82jhqxx7.js.map → chunk-sv86v56c.js.map} +1 -1
  141. package/dist/{chunk-bym06a64.js → chunk-sxf94q13.js} +2 -2
  142. package/dist/{chunk-bym06a64.js.map → chunk-sxf94q13.js.map} +1 -1
  143. package/dist/{chunk-pd3qbf8r.js → chunk-ta2wsjz6.js} +2 -2
  144. package/dist/{chunk-pd3qbf8r.js.map → chunk-ta2wsjz6.js.map} +1 -1
  145. package/dist/{chunk-58k1zstz.js → chunk-thbs63gy.js} +1 -1
  146. package/dist/{chunk-71prz4rp.js → chunk-vfvjfw5k.js} +2 -2
  147. package/dist/{chunk-71prz4rp.js.map → chunk-vfvjfw5k.js.map} +1 -1
  148. package/dist/{chunk-sca3tpce.js → chunk-vnk4vaer.js} +3 -3
  149. package/dist/{chunk-sca3tpce.js.map → chunk-vnk4vaer.js.map} +1 -1
  150. package/dist/{chunk-rzqxkm9r.js → chunk-wp9hw3we.js} +2 -2
  151. package/dist/{chunk-rzqxkm9r.js.map → chunk-wp9hw3we.js.map} +1 -1
  152. package/dist/{chunk-4w9gbe11.js → chunk-wt1yzzbw.js} +1 -1
  153. package/dist/{chunk-d29dcs3e.js → chunk-xkas0yp8.js} +3 -3
  154. package/dist/{chunk-d29dcs3e.js.map → chunk-xkas0yp8.js.map} +1 -1
  155. package/dist/{chunk-j1yhtwsk.js → chunk-y3s05q6b.js} +2 -2
  156. package/dist/{chunk-j1yhtwsk.js.map → chunk-y3s05q6b.js.map} +1 -1
  157. package/dist/{chunk-ndawdgtt.js → chunk-ys8nk9ga.js} +3 -3
  158. package/dist/{chunk-ndawdgtt.js.map → chunk-ys8nk9ga.js.map} +3 -3
  159. package/dist/{chunk-0gzqhjyg.js → chunk-z4dhd5pk.js} +2 -2
  160. package/dist/{chunk-0gzqhjyg.js.map → chunk-z4dhd5pk.js.map} +1 -1
  161. package/dist/{chunk-xxbkp90v.js → chunk-z5g56ds0.js} +3 -3
  162. package/dist/{chunk-xxbkp90v.js.map → chunk-z5g56ds0.js.map} +1 -1
  163. package/dist/{chunk-bzrhc7q3.js → chunk-zqptpk90.js} +2 -2
  164. package/dist/{chunk-bzrhc7q3.js.map → chunk-zqptpk90.js.map} +1 -1
  165. package/dist/config/index.js +1 -1
  166. package/dist/console/run.js +2 -2
  167. package/dist/console/run.js.map +1 -1
  168. package/dist/container/index.js +2 -2
  169. package/dist/container/index.js.map +1 -1
  170. package/dist/database/index.js +2 -2
  171. package/dist/database/index.js.map +1 -1
  172. package/dist/email/index.js +2 -2
  173. package/dist/email/index.js.map +1 -1
  174. package/dist/facades/index.js +2 -2
  175. package/dist/facades/index.js.map +1 -1
  176. package/dist/foundation/index.js +2 -2
  177. package/dist/foundation/index.js.map +1 -1
  178. package/dist/http/index.js +2 -2
  179. package/dist/http/index.js.map +1 -1
  180. package/dist/http/requestDomain.d.ts.map +1 -1
  181. package/dist/i18n/dictionaryRuntime.js +2 -2
  182. package/dist/i18n/dictionaryRuntime.js.map +1 -1
  183. package/dist/i18n/index.js +2 -2
  184. package/dist/i18n/index.js.map +1 -1
  185. package/dist/kernel/index.js +2 -2
  186. package/dist/kernel/index.js.map +1 -1
  187. package/dist/orm/index.js +2 -2
  188. package/dist/orm/index.js.map +1 -1
  189. package/dist/probe/index.js +2 -2
  190. package/dist/probe/index.js.map +1 -1
  191. package/dist/server/forwardedFor.d.ts +3 -3
  192. package/dist/server/index.js +2 -2
  193. package/dist/server/index.js.map +1 -1
  194. package/dist/services/index.js +2 -2
  195. package/dist/services/index.js.map +1 -1
  196. package/dist/services/queue/work.js +2 -2
  197. package/dist/services/queue/work.js.map +1 -1
  198. package/dist/services/router/DomainResolver.d.ts +20 -9
  199. package/dist/services/router/DomainResolver.d.ts.map +1 -1
  200. package/dist/services/router/DomainRouter.d.ts +2 -1
  201. package/dist/services/router/DomainRouter.d.ts.map +1 -1
  202. package/dist/services/router/config.d.ts +30 -1
  203. package/dist/services/router/config.d.ts.map +1 -1
  204. package/dist/stats/route-table.js +1 -1
  205. package/dist/support/index.js +2 -2
  206. package/dist/support/index.js.map +1 -1
  207. package/dist/vitest/index.js +1 -1
  208. package/package.json +1 -1
  209. package/dist/chunk-8v6y52et.js +0 -5
  210. /package/dist/{chunk-fnj2hc5v.js.map → chunk-3rp908gn.js.map} +0 -0
  211. /package/dist/{chunk-tms2g9at.js.map → chunk-777v6242.js.map} +0 -0
  212. /package/dist/{chunk-8f4jkpv7.js.map → chunk-8hfyscnn.js.map} +0 -0
  213. /package/dist/{chunk-xed7yf6h.js.map → chunk-hgpvfhtp.js.map} +0 -0
  214. /package/dist/{chunk-58k1zstz.js.map → chunk-thbs63gy.js.map} +0 -0
  215. /package/dist/{chunk-4w9gbe11.js.map → chunk-wt1yzzbw.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{Bl as y}from"./chunk-m5hd632w.js";var v=y((x)=>{class s extends Error{name="ProviderError";tryNextLink;constructor(r,t=!0){let n,e=!0;if(typeof t==="boolean")n=void 0,e=t;else if(t!=null&&typeof t==="object")n=t.logger,e=t.tryNextLink??!0;super(r);this.tryNextLink=e,Object.setPrototypeOf(this,s.prototype),n?.debug?.(`@smithy/property-provider ${e?"->":"(!)"} ${r}`)}static from(r,t=!0){return Object.assign(new this(r.message,t),r)}}class f extends s{name="CredentialsProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,f.prototype)}}class l extends s{name="TokenProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,l.prototype)}}var p=(...r)=>async()=>{if(r.length===0)throw new s("No providers in chain");let t;for(let n of r)try{return await n()}catch(e){if(t=e,e?.tryNextLink)continue;throw e}throw t},d=(r)=>()=>Promise.resolve(r),h=(r,t,n)=>{let e,o,i,c=!1,a=async()=>{if(!o)o=r();try{e=await o,i=!0,c=!1}finally{o=void 0}return e};if(t===void 0)return async(u)=>{if(!i||u?.forceRefresh)e=await a();return e};return async(u)=>{if(!i||u?.forceRefresh)e=await a();if(c)return e;if(n&&!n(e))return c=!0,e;if(t(e))return await a(),e;return e}};x.CredentialsProviderError=f;x.ProviderError=s;x.TokenProviderError=l;x.chain=p;x.fromStatic=d;x.memoize=h});
2
+ import{Cl as y}from"./chunk-9wcv7e1a.js";var v=y((x)=>{class s extends Error{name="ProviderError";tryNextLink;constructor(r,t=!0){let n,e=!0;if(typeof t==="boolean")n=void 0,e=t;else if(t!=null&&typeof t==="object")n=t.logger,e=t.tryNextLink??!0;super(r);this.tryNextLink=e,Object.setPrototypeOf(this,s.prototype),n?.debug?.(`@smithy/property-provider ${e?"->":"(!)"} ${r}`)}static from(r,t=!0){return Object.assign(new this(r.message,t),r)}}class f extends s{name="CredentialsProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,f.prototype)}}class l extends s{name="TokenProviderError";constructor(r,t=!0){super(r,t);Object.setPrototypeOf(this,l.prototype)}}var p=(...r)=>async()=>{if(r.length===0)throw new s("No providers in chain");let t;for(let n of r)try{return await n()}catch(e){if(t=e,e?.tryNextLink)continue;throw e}throw t},d=(r)=>()=>Promise.resolve(r),h=(r,t,n)=>{let e,o,i,c=!1,a=async()=>{if(!o)o=r();try{e=await o,i=!0,c=!1}finally{o=void 0}return e};if(t===void 0)return async(u)=>{if(!i||u?.forceRefresh)e=await a();return e};return async(u)=>{if(!i||u?.forceRefresh)e=await a();if(c)return e;if(n&&!n(e))return c=!0,e;if(t(e))return await a(),e;return e}};x.CredentialsProviderError=f;x.ProviderError=s;x.TokenProviderError=l;x.chain=p;x.fromStatic=d;x.memoize=h});
3
3
  export{v as V};
4
4
 
5
- //# debugId=08EBAEE0BB96ED6C64756E2164756E21
5
+ //# debugId=B600FEE301BB520664756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "'use strict';\n\nclass ProviderError extends Error {\n name = \"ProviderError\";\n tryNextLink;\n constructor(message, options = true) {\n let logger;\n let tryNextLink = true;\n if (typeof options === \"boolean\") {\n logger = undefined;\n tryNextLink = options;\n }\n else if (options != null && typeof options === \"object\") {\n logger = options.logger;\n tryNextLink = options.tryNextLink ?? true;\n }\n super(message);\n this.tryNextLink = tryNextLink;\n Object.setPrototypeOf(this, ProviderError.prototype);\n logger?.debug?.(`@smithy/property-provider ${tryNextLink ? \"->\" : \"(!)\"} ${message}`);\n }\n static from(error, options = true) {\n return Object.assign(new this(error.message, options), error);\n }\n}\n\nclass CredentialsProviderError extends ProviderError {\n name = \"CredentialsProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n }\n}\n\nclass TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n\nconst chain = (...providers) => async () => {\n if (providers.length === 0) {\n throw new ProviderError(\"No providers in chain\");\n }\n let lastProviderError;\n for (const provider of providers) {\n try {\n const credentials = await provider();\n return credentials;\n }\n catch (err) {\n lastProviderError = err;\n if (err?.tryNextLink) {\n continue;\n }\n throw err;\n }\n }\n throw lastProviderError;\n};\n\nconst fromStatic = (staticValue) => () => Promise.resolve(staticValue);\n\nconst memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n\nexports.CredentialsProviderError = CredentialsProviderError;\nexports.ProviderError = ProviderError;\nexports.TokenProviderError = TokenProviderError;\nexports.chain = chain;\nexports.fromStatic = fromStatic;\nexports.memoize = memoize;\n"
6
6
  ],
7
7
  "mappings": ";uDAEA,MAAM,UAAsB,KAAM,CAC9B,KAAO,gBACP,YACA,WAAW,CAAC,EAAS,EAAU,GAAM,CACjC,IAAI,EACA,EAAc,GAClB,GAAI,OAAO,IAAY,UACnB,EAAS,OACT,EAAc,EAEb,QAAI,GAAW,MAAQ,OAAO,IAAY,SAC3C,EAAS,EAAQ,OACjB,EAAc,EAAQ,aAAe,GAEzC,MAAM,CAAO,EACb,KAAK,YAAc,EACnB,OAAO,eAAe,KAAM,EAAc,SAAS,EACnD,GAAQ,QAAQ,6BAA6B,EAAc,KAAO,SAAS,GAAS,QAEjF,KAAI,CAAC,EAAO,EAAU,GAAM,CAC/B,OAAO,OAAO,OAAO,IAAI,KAAK,EAAM,QAAS,CAAO,EAAG,CAAK,EAEpE,CAEA,MAAM,UAAiC,CAAc,CACjD,KAAO,2BACP,WAAW,CAAC,EAAS,EAAU,GAAM,CACjC,MAAM,EAAS,CAAO,EACtB,OAAO,eAAe,KAAM,EAAyB,SAAS,EAEtE,CAEA,MAAM,UAA2B,CAAc,CAC3C,KAAO,qBACP,WAAW,CAAC,EAAS,EAAU,GAAM,CACjC,MAAM,EAAS,CAAO,EACtB,OAAO,eAAe,KAAM,EAAmB,SAAS,EAEhE,CAEA,IAAM,EAAQ,IAAI,IAAc,SAAY,CACxC,GAAI,EAAU,SAAW,EACrB,MAAM,IAAI,EAAc,uBAAuB,EAEnD,IAAI,EACJ,QAAW,KAAY,EACnB,GAAI,CAEA,OADoB,MAAM,EAAS,EAGvC,MAAO,EAAK,CAER,GADA,EAAoB,EAChB,GAAK,YACL,SAEJ,MAAM,EAGd,MAAM,GAGJ,EAAa,CAAC,IAAgB,IAAM,QAAQ,QAAQ,CAAW,EAE/D,EAAU,CAAC,EAAU,EAAW,IAAoB,CACtD,IAAI,EACA,EACA,EACA,EAAa,GACX,EAAmB,SAAY,CACjC,GAAI,CAAC,EACD,EAAU,EAAS,EAEvB,GAAI,CACA,EAAW,MAAM,EACjB,EAAY,GACZ,EAAa,UAEjB,CACI,EAAU,OAEd,OAAO,GAEX,GAAI,IAAc,OACd,MAAO,OAAO,IAAY,CACtB,GAAI,CAAC,GAAa,GAAS,aACvB,EAAW,MAAM,EAAiB,EAEtC,OAAO,GAGf,MAAO,OAAO,IAAY,CACtB,GAAI,CAAC,GAAa,GAAS,aACvB,EAAW,MAAM,EAAiB,EAEtC,GAAI,EACA,OAAO,EAEX,GAAI,GAAmB,CAAC,EAAgB,CAAQ,EAE5C,OADA,EAAa,GACN,EAEX,GAAI,EAAU,CAAQ,EAElB,OADA,MAAM,EAAiB,EAChB,EAEX,OAAO,IAIP,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,UAAU",
8
- "debugId": "08EBAEE0BB96ED6C64756E2164756E21",
8
+ "debugId": "B600FEE301BB520664756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{h as ps}from"./chunk-h5whhrds.js";import{A as ys,B as Zr,C as ro,i as Se,k as X,l as qs,m as Fs,n as Ws,p as Oo,q as Ko,r as as,s as ws,t as gt,u as Us,v as lo,w as Qt,x as ls,y as Es,z as Ps}from"./chunk-82jhqxx7.js";import{D as us}from"./chunk-qec3g4w3.js";import{E as $o,F as Jr,H as cs,L as dt,P as k}from"./chunk-wypncj52.js";import{Q as hs}from"./chunk-bym06a64.js";import{R as Xr}from"./chunk-80703vks.js";import"./chunk-ndyafsv6.js";import"./chunk-0gzqhjyg.js";import{U as Bs}from"./chunk-2jk0f4sj.js";import"./chunk-p97w2388.js";import{ba as Hr}from"./chunk-4fzevafk.js";import{ma as ds}from"./chunk-rzqxkm9r.js";import{Bl as y}from"./chunk-m5hd632w.js";var Z=y(($e)=>{Object.defineProperty($e,"__esModule",{value:!0});$e.resolveHttpAuthSchemeConfig=$e.resolveStsAuthConfig=$e.defaultSTSHttpAuthSchemeProvider=$e.defaultSTSHttpAuthSchemeParametersProvider=void 0;var bo=X(),J=$o(),ho=C(),No=async(e,t,r)=>{return{operation:(0,J.getSmithyContext)(t).operation,region:await(0,J.normalizeProvider)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}};$e.defaultSTSHttpAuthSchemeParametersProvider=No;function qo(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:e.region},propertiesExtractor:(t,r)=>({signingProperties:{config:t,context:r}})}}function Fo(e){return{schemeId:"smithy.api#noAuth"}}var Wo=(e)=>{let t=[];switch(e.operation){case"AssumeRoleWithWebIdentity":{t.push(Fo(e));break}default:t.push(qo(e))}return t};$e.defaultSTSHttpAuthSchemeProvider=Wo;var wo=(e)=>Object.assign(e,{stsClientCtor:ho.STSClient});$e.resolveStsAuthConfig=wo;var Uo=(e)=>{let t=$e.resolveStsAuthConfig(e),r=(0,bo.resolveAwsSdkSigV4Config)(t);return Object.assign(r,{authSchemePreference:(0,J.normalizeProvider)(e.authSchemePreference??[])})};$e.resolveHttpAuthSchemeConfig=Uo});var f=y((Ne)=>{Object.defineProperty(Ne,"__esModule",{value:!0});Ne.commonParams=Ne.resolveClientEndpointParameters=void 0;var Lo=(e)=>{return Object.assign(e,{useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,useGlobalEndpoint:e.useGlobalEndpoint??!1,defaultSigningName:"sts"})};Ne.resolveClientEndpointParameters=Lo;Ne.commonParams={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var et=y((Ce)=>{Object.defineProperty(Ce,"__esModule",{value:!0});Ce.ruleSet=void 0;var Ve="required",o="type",n="fn",i="argv",v="ref",Fe=!1,ee=!0,S="booleanEquals",p="stringEquals",ze="sigv4",Be="sts",ge="us-east-1",c="endpoint",We="https://sts.{Region}.{PartitionResult#dnsSuffix}",R="tree",M="error",oe="getAttr",we={[Ve]:!1,[o]:"string"},te={[Ve]:!0,default:!1,[o]:"boolean"},Qe={[v]:"Endpoint"},Ue={[n]:"isSet",[i]:[{[v]:"Region"}]},l={[v]:"Region"},Me={[n]:"aws.partition",[i]:[l],assign:"PartitionResult"},Ye={[v]:"UseFIPS"},He={[v]:"UseDualStack"},P={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:ze,signingName:Be,signingRegion:ge}]},headers:{}},_={},ke={conditions:[{[n]:p,[i]:[l,"aws-global"]}],[c]:P,[o]:c},Je={[n]:S,[i]:[Ye,!0]},Xe={[n]:S,[i]:[He,!0]},Le={[n]:oe,[i]:[{[v]:"PartitionResult"},"supportsFIPS"]},Ze={[v]:"PartitionResult"},je={[n]:S,[i]:[!0,{[n]:oe,[i]:[Ze,"supportsDualStack"]}]},Ge=[{[n]:"isSet",[i]:[Qe]}],Oe=[Je],Ke=[Xe],Go={version:"1.0",parameters:{Region:we,UseDualStack:te,UseFIPS:te,Endpoint:we,UseGlobalEndpoint:te},rules:[{conditions:[{[n]:S,[i]:[{[v]:"UseGlobalEndpoint"},ee]},{[n]:"not",[i]:Ge},Ue,Me,{[n]:S,[i]:[Ye,Fe]},{[n]:S,[i]:[He,Fe]}],rules:[{conditions:[{[n]:p,[i]:[l,"ap-northeast-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-south-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-southeast-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-southeast-2"]}],endpoint:P,[o]:c},ke,{conditions:[{[n]:p,[i]:[l,"ca-central-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-central-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-north-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-2"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-3"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"sa-east-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,ge]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-east-2"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-west-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-west-2"]}],endpoint:P,[o]:c},{endpoint:{url:We,properties:{authSchemes:[{name:ze,signingName:Be,signingRegion:"{Region}"}]},headers:_},[o]:c}],[o]:R},{conditions:Ge,rules:[{conditions:Oe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[o]:M},{conditions:Ke,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[o]:M},{endpoint:{url:Qe,properties:_,headers:_},[o]:c}],[o]:R},{conditions:[Ue],rules:[{conditions:[Me],rules:[{conditions:[Je,Xe],rules:[{conditions:[{[n]:S,[i]:[ee,Le]},je],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[o]:M}],[o]:R},{conditions:Oe,rules:[{conditions:[{[n]:S,[i]:[Le,ee]}],rules:[{conditions:[{[n]:p,[i]:[{[n]:oe,[i]:[Ze,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:_,headers:_},[o]:c},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"FIPS is enabled but this partition does not support FIPS",[o]:M}],[o]:R},{conditions:Ke,rules:[{conditions:[je],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"DualStack is enabled but this partition does not support DualStack",[o]:M}],[o]:R},ke,{endpoint:{url:We,properties:_,headers:_},[o]:c}],[o]:R}],[o]:R},{error:"Invalid Configuration: Missing Region",[o]:M}]};Ce.ruleSet=Go});var rt=y((tt)=>{Object.defineProperty(tt,"__esModule",{value:!0});tt.defaultEndpointResolver=void 0;var Vo=Ko(),re=Oo(),zo=et(),Bo=new re.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),go=(e,t={})=>{return Bo.get(e,()=>(0,re.resolveEndpoint)(zo.ruleSet,{endpointParams:e,logger:t.logger}))};tt.defaultEndpointResolver=go;re.customEndpointFunctions.aws=Vo.awsEndpointFunctions});var O=y((ne)=>{Object.defineProperty(ne,"__esModule",{value:!0});ne.STSServiceException=ne.__ServiceException=void 0;var st=k();Object.defineProperty(ne,"__ServiceException",{enumerable:!0,get:function(){return st.ServiceException}});class se extends st.ServiceException{constructor(e){super(e);Object.setPrototypeOf(this,se.prototype)}}ne.STSServiceException=se});var Ee=y((it)=>{Object.defineProperty(it,"__esModule",{value:!0});it.IDPCommunicationErrorException=it.InvalidIdentityTokenException=it.IDPRejectedClaimException=it.RegionDisabledException=it.PackedPolicyTooLargeException=it.MalformedPolicyDocumentException=it.ExpiredTokenException=void 0;var A=O();class ie extends A.STSServiceException{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e});Object.setPrototypeOf(this,ie.prototype)}}it.ExpiredTokenException=ie;class ce extends A.STSServiceException{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e});Object.setPrototypeOf(this,ce.prototype)}}it.MalformedPolicyDocumentException=ce;class de extends A.STSServiceException{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e});Object.setPrototypeOf(this,de.prototype)}}it.PackedPolicyTooLargeException=de;class ae extends A.STSServiceException{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e});Object.setPrototypeOf(this,ae.prototype)}}it.RegionDisabledException=ae;class ue extends A.STSServiceException{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e});Object.setPrototypeOf(this,ue.prototype)}}it.IDPRejectedClaimException=ue;class pe extends A.STSServiceException{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e});Object.setPrototypeOf(this,pe.prototype)}}it.InvalidIdentityTokenException=pe;class le extends A.STSServiceException{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e});Object.setPrototypeOf(this,le.prototype)}}it.IDPCommunicationErrorException=le});var Te=y((Tt)=>{Object.defineProperty(Tt,"__esModule",{value:!0});Tt.AssumeRoleWithWebIdentity$=Tt.AssumeRole$=Tt.Tag$=Tt.ProvidedContext$=Tt.PolicyDescriptorType$=Tt.Credentials$=Tt.AssumeRoleWithWebIdentityResponse$=Tt.AssumeRoleWithWebIdentityRequest$=Tt.AssumeRoleResponse$=Tt.AssumeRoleRequest$=Tt.AssumedRoleUser$=Tt.errorTypeRegistries=Tt.RegionDisabledException$=Tt.PackedPolicyTooLargeException$=Tt.MalformedPolicyDocumentException$=Tt.InvalidIdentityTokenException$=Tt.IDPRejectedClaimException$=Tt.IDPCommunicationErrorException$=Tt.ExpiredTokenException$=Tt.STSServiceException$=void 0;var Co="Arn",fo="AccessKeyId",er="AssumeRole",tr="AssumedRoleId",or="AssumeRoleRequest",rr="AssumeRoleResponse",Pe="AssumedRoleUser",sr="AssumeRoleWithWebIdentity",nr="AssumeRoleWithWebIdentityRequest",ir="AssumeRoleWithWebIdentityResponse",cr="Audience",ye="Credentials",dr="ContextAssertion",at="DurationSeconds",ar="Expiration",ur="ExternalId",pr="ExpiredTokenException",lr="IDPCommunicationErrorException",Er="IDPRejectedClaimException",Pr="InvalidIdentityTokenException",yr="Key",_r="MalformedPolicyDocumentException",ut="Policy",pt="PolicyArns",Ir="ProviderArn",Rr="ProvidedContexts",Tr="ProvidedContextsListType",Sr="ProvidedContext",vr="PolicyDescriptorType",xr="ProviderId",lt="PackedPolicySize",Dr="PackedPolicyTooLargeException",mr="Provider",Et="RoleArn",Ar="RegionDisabledException",Pt="RoleSessionName",$r="SecretAccessKey",br="SubjectFromWebIdentityToken",_e="SourceIdentity",hr="SerialNumber",Nr="SessionToken",qr="Tags",Fr="TokenCode",Wr="TransitiveTagKeys",wr="Tag",Ur="Value",Mr="WebIdentityToken",kr="arn",Lr="accessKeySecretType",$="awsQueryError",b="client",jr="clientTokenType",h="error",N="httpError",q="message",Gr="policyDescriptorListType",yt="smithy.ts.sdk.synthetic.com.amazonaws.sts",Or="tagListType",d="com.amazonaws.sts",_t=dt(),F=Ee(),Kr=O(),It=_t.TypeRegistry.for(yt);Tt.STSServiceException$=[-3,yt,"STSServiceException",0,[],[]];It.registerError(Tt.STSServiceException$,Kr.STSServiceException);var x=_t.TypeRegistry.for(d);Tt.ExpiredTokenException$=[-3,d,pr,{[$]:["ExpiredTokenException",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.ExpiredTokenException$,F.ExpiredTokenException);Tt.IDPCommunicationErrorException$=[-3,d,lr,{[$]:["IDPCommunicationError",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.IDPCommunicationErrorException$,F.IDPCommunicationErrorException);Tt.IDPRejectedClaimException$=[-3,d,Er,{[$]:["IDPRejectedClaim",403],[h]:b,[N]:403},[q],[0]];x.registerError(Tt.IDPRejectedClaimException$,F.IDPRejectedClaimException);Tt.InvalidIdentityTokenException$=[-3,d,Pr,{[$]:["InvalidIdentityToken",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.InvalidIdentityTokenException$,F.InvalidIdentityTokenException);Tt.MalformedPolicyDocumentException$=[-3,d,_r,{[$]:["MalformedPolicyDocument",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.MalformedPolicyDocumentException$,F.MalformedPolicyDocumentException);Tt.PackedPolicyTooLargeException$=[-3,d,Dr,{[$]:["PackedPolicyTooLarge",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.PackedPolicyTooLargeException$,F.PackedPolicyTooLargeException);Tt.RegionDisabledException$=[-3,d,Ar,{[$]:["RegionDisabledException",403],[h]:b,[N]:403},[q],[0]];x.registerError(Tt.RegionDisabledException$,F.RegionDisabledException);Tt.errorTypeRegistries=[It,x];var Vr=[0,d,Lr,8,0],zr=[0,d,jr,8,0];Tt.AssumedRoleUser$=[3,d,Pe,0,[tr,Co],[0,0],2];Tt.AssumeRoleRequest$=[3,d,or,0,[Et,Pt,pt,ut,at,qr,Wr,ur,hr,Fr,_e,Rr],[0,0,()=>Rt,0,1,()=>gr,64,0,0,0,0,()=>Br],2];Tt.AssumeRoleResponse$=[3,d,rr,0,[ye,Pe,lt,_e],[[()=>Tt.Credentials$,0],()=>Tt.AssumedRoleUser$,1,0]];Tt.AssumeRoleWithWebIdentityRequest$=[3,d,nr,0,[Et,Pt,Mr,xr,pt,ut,at],[0,0,[()=>zr,0],0,()=>Rt,0,1],3];Tt.AssumeRoleWithWebIdentityResponse$=[3,d,ir,0,[ye,br,Pe,lt,mr,cr,_e],[[()=>Tt.Credentials$,0],0,()=>Tt.AssumedRoleUser$,1,0,0,0]];Tt.Credentials$=[3,d,ye,0,[fo,$r,Nr,ar],[0,[()=>Vr,0],0,4],4];Tt.PolicyDescriptorType$=[3,d,vr,0,[kr],[0]];Tt.ProvidedContext$=[3,d,Sr,0,[Ir,dr],[0,0]];Tt.Tag$=[3,d,wr,0,[yr,Ur],[0,0],2];var Rt=[1,d,Gr,0,()=>Tt.PolicyDescriptorType$],Br=[1,d,Tr,0,()=>Tt.ProvidedContext$],gr=[1,d,Or,0,()=>Tt.Tag$];Tt.AssumeRole$=[9,d,er,0,()=>Tt.AssumeRoleRequest$,()=>Tt.AssumeRoleResponse$];Tt.AssumeRoleWithWebIdentity$=[9,d,sr,0,()=>Tt.AssumeRoleWithWebIdentityRequest$,()=>Tt.AssumeRoleWithWebIdentityResponse$]});var Ot=y((jt)=>{Object.defineProperty(jt,"__esModule",{value:!0});jt.getRuntimeConfig=void 0;var Cr=X(),fr=Zr(),es=Se(),ts=k(),os=Xr(),kt=Jr(),Lt=Hr(),rs=Z(),ss=rt(),ns=Te(),is=(e)=>{return{apiVersion:"2011-06-15",base64Decoder:e?.base64Decoder??kt.fromBase64,base64Encoder:e?.base64Encoder??kt.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??ss.defaultEndpointResolver,extensions:e?.extensions??[],httpAuthSchemeProvider:e?.httpAuthSchemeProvider??rs.defaultSTSHttpAuthSchemeProvider,httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(t)=>t.getIdentityProvider("aws.auth#sigv4"),signer:new Cr.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(t)=>t.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new es.NoAuthSigner}],logger:e?.logger??new ts.NoOpLogger,protocol:e?.protocol??fr.AwsQueryProtocol,protocolSettings:e?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:ns.errorTypeRegistries,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:e?.serviceId??"STS",urlParser:e?.urlParser??os.parseUrl,utf8Decoder:e?.utf8Decoder??Lt.fromUtf8,utf8Encoder:e?.utf8Encoder??Lt.toUtf8}};jt.getRuntimeConfig=is});var Jt=y((Yt)=>{Object.defineProperty(Yt,"__esModule",{value:!0});Yt.getRuntimeConfig=void 0;var _s=ds(),Is=_s.__importDefault(ps()),ve=X(),Kt=ls(),K=gt(),Rs=Se(),Ts=Es(),Vt=Qt(),W=us(),zt=cs(),Bt=k(),Ss=Ps(),vs=ys(),xs=as(),Ds=Ot(),ms=(e)=>{(0,Bt.emitWarningIfUnsupportedVersion)(process.version);let t=(0,vs.resolveDefaultsModeConfig)(e),r=()=>t().then(Bt.loadConfigsForDefaultMode),a=(0,Ds.getRuntimeConfig)(e);(0,ve.emitWarningIfUnsupportedVersion)(process.version);let s={profile:e?.profile,logger:a.logger};return{...a,...e,runtime:"node",defaultsMode:t,authSchemePreference:e?.authSchemePreference??(0,W.loadConfig)(ve.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:e?.bodyLengthChecker??Ss.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Kt.createDefaultUserAgentProvider)({serviceId:a.serviceId,clientVersion:Is.default.version}),httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(E)=>E.getIdentityProvider("aws.auth#sigv4")||(async(u)=>await e.credentialDefaultProvider(u?.__config||{})()),signer:new ve.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(E)=>E.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Rs.NoAuthSigner}],maxAttempts:e?.maxAttempts??(0,W.loadConfig)(Vt.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,e),region:e?.region??(0,W.loadConfig)(K.NODE_REGION_CONFIG_OPTIONS,{...K.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:zt.NodeHttpHandler.create(e?.requestHandler??r),retryMode:e?.retryMode??(0,W.loadConfig)({...Vt.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||xs.DEFAULT_RETRY_MODE},e),sha256:e?.sha256??Ts.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??zt.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,W.loadConfig)(K.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:e?.useFipsEndpoint??(0,W.loadConfig)(K.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:e?.userAgentAppId??(0,W.loadConfig)(Kt.NODE_APP_ID_CONFIG_OPTIONS,s)}};Yt.getRuntimeConfig=ms});var Ct=y((Xt)=>{Object.defineProperty(Xt,"__esModule",{value:!0});Xt.resolveHttpAuthRuntimeConfig=Xt.getHttpAuthExtensionConfiguration=void 0;var As=(e)=>{let{httpAuthSchemes:t,httpAuthSchemeProvider:r,credentials:a}=e;return{setHttpAuthScheme(s){let E=t.findIndex((u)=>u.schemeId===s.schemeId);if(E===-1)t.push(s);else t.splice(E,1,s)},httpAuthSchemes(){return t},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){a=s},credentials(){return a}}};Xt.getHttpAuthExtensionConfiguration=As;var $s=(e)=>{return{httpAuthSchemes:e.httpAuthSchemes(),httpAuthSchemeProvider:e.httpAuthSchemeProvider(),credentials:e.credentials()}};Xt.resolveHttpAuthRuntimeConfig=$s});var io=y((so)=>{Object.defineProperty(so,"__esModule",{value:!0});so.resolveRuntimeExtensions=void 0;var ft=ro(),eo=hs(),to=k(),oo=Ct(),Ns=(e,t)=>{let r=Object.assign((0,ft.getAwsRegionExtensionConfiguration)(e),(0,to.getDefaultExtensionConfiguration)(e),(0,eo.getHttpHandlerExtensionConfiguration)(e),(0,oo.getHttpAuthExtensionConfiguration)(e));return t.forEach((a)=>a.configure(r)),Object.assign(e,(0,ft.resolveAwsRegionExtensionConfiguration)(r),(0,to.resolveDefaultRuntimeConfig)(r),(0,eo.resolveHttpHandlerRuntimeConfig)(r),(0,oo.resolveHttpAuthRuntimeConfig)(r))};so.resolveRuntimeExtensions=Ns});var C=y((De)=>{Object.defineProperty(De,"__esModule",{value:!0});De.STSClient=De.__Client=void 0;var co=qs(),Ms=Fs(),ks=Ws(),ao=ws(),Ls=gt(),xe=Se(),js=dt(),Gs=Us(),Os=lo(),uo=Qt(),Eo=k();Object.defineProperty(De,"__Client",{enumerable:!0,get:function(){return Eo.Client}});var po=Z(),Ks=f(),Vs=Jt(),zs=io();class Po extends Eo.Client{config;constructor(...[e]){let t=(0,Vs.getRuntimeConfig)(e||{});super(t);this.initConfig=t;let r=(0,Ks.resolveClientEndpointParameters)(t),a=(0,ao.resolveUserAgentConfig)(r),s=(0,uo.resolveRetryConfig)(a),E=(0,Ls.resolveRegionConfig)(s),u=(0,co.resolveHostHeaderConfig)(E),T=(0,Os.resolveEndpointConfig)(u),D=(0,po.resolveHttpAuthSchemeConfig)(T),m=(0,zs.resolveRuntimeExtensions)(D,e?.extensions||[]);this.config=m,this.middlewareStack.use((0,js.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,ao.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,uo.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Gs.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,co.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Ms.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ks.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,xe.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:po.defaultSTSHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async(U)=>new xe.DefaultIdentityProviderConfig({"aws.auth#sigv4":U.credentials})})),this.middlewareStack.use((0,xe.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}De.STSClient=Po});var nn=y((I)=>{var w=C(),z=k(),_o=lo(),Io=f(),L=Te(),V=Ee(),me=Bs(),gs=ro(),Qs=O();class B extends z.Command.classBuilder().ep(Io.commonParams).m(function(e,t,r,a){return[_o.getEndpointPlugin(r,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(L.AssumeRole$).build(){}class g extends z.Command.classBuilder().ep(Io.commonParams).m(function(e,t,r,a){return[_o.getEndpointPlugin(r,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(L.AssumeRoleWithWebIdentity$).build(){}var Ys={AssumeRoleCommand:B,AssumeRoleWithWebIdentityCommand:g};class Ae extends w.STSClient{}z.createAggregatedClient(Ys,Ae);var Ro=(e)=>{if(typeof e?.Arn==="string"){let t=e.Arn.split(":");if(t.length>4&&t[4]!=="")return t[4]}return},To=async(e,t,r,a={})=>{let s=typeof e==="function"?await e():e,E=typeof t==="function"?await t():t,u="",T=s??E??(u=await gs.stsRegionDefaultResolver(a)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${E} (contextual client)`,`${u} (STS default: AWS_REGION, profile region, or us-east-1)`),T},Hs=(e,t)=>{let r,a;return async(s,E)=>{if(a=s,!r){let{logger:U=e?.parentClientConfig?.logger,profile:j=e?.parentClientConfig?.profile,region:Q,requestHandler:G=e?.parentClientConfig?.requestHandler,credentialProviderLogger:Y,userAgentAppId:H=e?.parentClientConfig?.userAgentAppId}=e,mo=await To(Q,e?.parentClientConfig?.region,Y,{logger:U,profile:j}),Ao=!So(G);r=new t({...e,userAgentAppId:H,profile:j,credentialDefaultProvider:()=>async()=>a,region:mo,requestHandler:Ao?G:void 0,logger:U})}let{Credentials:u,AssumedRoleUser:T}=await r.send(new B(E));if(!u||!u.AccessKeyId||!u.SecretAccessKey)throw Error(`Invalid response from STS.assumeRole call with role ${E.RoleArn}`);let D=Ro(T),m={accessKeyId:u.AccessKeyId,secretAccessKey:u.SecretAccessKey,sessionToken:u.SessionToken,expiration:u.Expiration,...u.CredentialScope&&{credentialScope:u.CredentialScope},...D&&{accountId:D}};return me.setCredentialFeature(m,"CREDENTIALS_STS_ASSUME_ROLE","i"),m}},Js=(e,t)=>{let r;return async(a)=>{if(!r){let{logger:D=e?.parentClientConfig?.logger,profile:m=e?.parentClientConfig?.profile,region:U,requestHandler:j=e?.parentClientConfig?.requestHandler,credentialProviderLogger:Q,userAgentAppId:G=e?.parentClientConfig?.userAgentAppId}=e,Y=await To(U,e?.parentClientConfig?.region,Q,{logger:D,profile:m}),H=!So(j);r=new t({...e,userAgentAppId:G,profile:m,region:Y,requestHandler:H?j:void 0,logger:D})}let{Credentials:s,AssumedRoleUser:E}=await r.send(new g(a));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${a.RoleArn}`);let u=Ro(E),T={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...u&&{accountId:u}};if(u)me.setCredentialFeature(T,"RESOLVED_ACCOUNT_ID","T");return me.setCredentialFeature(T,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),T}},So=(e)=>{return e?.metadata?.handlerProtocol==="h2"},vo=(e,t)=>{if(!t)return e;else return class extends e{constructor(a){super(a);for(let s of t)this.middlewareStack.use(s)}}},xo=(e={},t)=>Hs(e,vo(w.STSClient,t)),Do=(e={},t)=>Js(e,vo(w.STSClient,t)),Xs=(e)=>(t)=>e({roleAssumer:xo(t),roleAssumerWithWebIdentity:Do(t),...t});I.$Command=z.Command;I.STSServiceException=Qs.STSServiceException;I.AssumeRoleCommand=B;I.AssumeRoleWithWebIdentityCommand=g;I.STS=Ae;I.decorateDefaultCredentialProvider=Xs;I.getDefaultRoleAssumer=xo;I.getDefaultRoleAssumerWithWebIdentity=Do;Object.prototype.hasOwnProperty.call(w,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:w.__proto__});Object.keys(w).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=w[e]});Object.prototype.hasOwnProperty.call(L,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:L.__proto__});Object.keys(L).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=L[e]});Object.prototype.hasOwnProperty.call(V,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:V.__proto__});Object.keys(V).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=V[e]})});export default nn();
2
+ import{h as ps}from"./chunk-hwpp9b7f.js";import{A as ys,B as Zr,C as ro,i as Se,k as X,l as qs,m as Fs,n as Ws,p as Oo,q as Ko,r as as,s as ws,t as gt,u as Us,v as lo,w as Qt,x as ls,y as Es,z as Ps}from"./chunk-sv86v56c.js";import{D as us}from"./chunk-2v7wq01w.js";import{E as $o,F as Jr,H as cs,L as dt,P as k}from"./chunk-ecdjbd2w.js";import{Q as hs}from"./chunk-sxf94q13.js";import{R as Xr}from"./chunk-4qpyz627.js";import"./chunk-drwjwtmj.js";import"./chunk-z4dhd5pk.js";import{U as Bs}from"./chunk-aj1jrwwh.js";import"./chunk-q3511sb5.js";import{ba as Hr}from"./chunk-0wk992a5.js";import{ma as ds}from"./chunk-wp9hw3we.js";import{Cl as y}from"./chunk-9wcv7e1a.js";var Z=y(($e)=>{Object.defineProperty($e,"__esModule",{value:!0});$e.resolveHttpAuthSchemeConfig=$e.resolveStsAuthConfig=$e.defaultSTSHttpAuthSchemeProvider=$e.defaultSTSHttpAuthSchemeParametersProvider=void 0;var bo=X(),J=$o(),ho=C(),No=async(e,t,r)=>{return{operation:(0,J.getSmithyContext)(t).operation,region:await(0,J.normalizeProvider)(e.region)()||(()=>{throw Error("expected `region` to be configured for `aws.auth#sigv4`")})()}};$e.defaultSTSHttpAuthSchemeParametersProvider=No;function qo(e){return{schemeId:"aws.auth#sigv4",signingProperties:{name:"sts",region:e.region},propertiesExtractor:(t,r)=>({signingProperties:{config:t,context:r}})}}function Fo(e){return{schemeId:"smithy.api#noAuth"}}var Wo=(e)=>{let t=[];switch(e.operation){case"AssumeRoleWithWebIdentity":{t.push(Fo(e));break}default:t.push(qo(e))}return t};$e.defaultSTSHttpAuthSchemeProvider=Wo;var wo=(e)=>Object.assign(e,{stsClientCtor:ho.STSClient});$e.resolveStsAuthConfig=wo;var Uo=(e)=>{let t=$e.resolveStsAuthConfig(e),r=(0,bo.resolveAwsSdkSigV4Config)(t);return Object.assign(r,{authSchemePreference:(0,J.normalizeProvider)(e.authSchemePreference??[])})};$e.resolveHttpAuthSchemeConfig=Uo});var f=y((Ne)=>{Object.defineProperty(Ne,"__esModule",{value:!0});Ne.commonParams=Ne.resolveClientEndpointParameters=void 0;var Lo=(e)=>{return Object.assign(e,{useDualstackEndpoint:e.useDualstackEndpoint??!1,useFipsEndpoint:e.useFipsEndpoint??!1,useGlobalEndpoint:e.useGlobalEndpoint??!1,defaultSigningName:"sts"})};Ne.resolveClientEndpointParameters=Lo;Ne.commonParams={UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}}});var et=y((Ce)=>{Object.defineProperty(Ce,"__esModule",{value:!0});Ce.ruleSet=void 0;var Ve="required",o="type",n="fn",i="argv",v="ref",Fe=!1,ee=!0,S="booleanEquals",p="stringEquals",ze="sigv4",Be="sts",ge="us-east-1",c="endpoint",We="https://sts.{Region}.{PartitionResult#dnsSuffix}",R="tree",M="error",oe="getAttr",we={[Ve]:!1,[o]:"string"},te={[Ve]:!0,default:!1,[o]:"boolean"},Qe={[v]:"Endpoint"},Ue={[n]:"isSet",[i]:[{[v]:"Region"}]},l={[v]:"Region"},Me={[n]:"aws.partition",[i]:[l],assign:"PartitionResult"},Ye={[v]:"UseFIPS"},He={[v]:"UseDualStack"},P={url:"https://sts.amazonaws.com",properties:{authSchemes:[{name:ze,signingName:Be,signingRegion:ge}]},headers:{}},_={},ke={conditions:[{[n]:p,[i]:[l,"aws-global"]}],[c]:P,[o]:c},Je={[n]:S,[i]:[Ye,!0]},Xe={[n]:S,[i]:[He,!0]},Le={[n]:oe,[i]:[{[v]:"PartitionResult"},"supportsFIPS"]},Ze={[v]:"PartitionResult"},je={[n]:S,[i]:[!0,{[n]:oe,[i]:[Ze,"supportsDualStack"]}]},Ge=[{[n]:"isSet",[i]:[Qe]}],Oe=[Je],Ke=[Xe],Go={version:"1.0",parameters:{Region:we,UseDualStack:te,UseFIPS:te,Endpoint:we,UseGlobalEndpoint:te},rules:[{conditions:[{[n]:S,[i]:[{[v]:"UseGlobalEndpoint"},ee]},{[n]:"not",[i]:Ge},Ue,Me,{[n]:S,[i]:[Ye,Fe]},{[n]:S,[i]:[He,Fe]}],rules:[{conditions:[{[n]:p,[i]:[l,"ap-northeast-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-south-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-southeast-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"ap-southeast-2"]}],endpoint:P,[o]:c},ke,{conditions:[{[n]:p,[i]:[l,"ca-central-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-central-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-north-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-2"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"eu-west-3"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"sa-east-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,ge]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-east-2"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-west-1"]}],endpoint:P,[o]:c},{conditions:[{[n]:p,[i]:[l,"us-west-2"]}],endpoint:P,[o]:c},{endpoint:{url:We,properties:{authSchemes:[{name:ze,signingName:Be,signingRegion:"{Region}"}]},headers:_},[o]:c}],[o]:R},{conditions:Ge,rules:[{conditions:Oe,error:"Invalid Configuration: FIPS and custom endpoint are not supported",[o]:M},{conditions:Ke,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[o]:M},{endpoint:{url:Qe,properties:_,headers:_},[o]:c}],[o]:R},{conditions:[Ue],rules:[{conditions:[Me],rules:[{conditions:[Je,Xe],rules:[{conditions:[{[n]:S,[i]:[ee,Le]},je],rules:[{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",[o]:M}],[o]:R},{conditions:Oe,rules:[{conditions:[{[n]:S,[i]:[Le,ee]}],rules:[{conditions:[{[n]:p,[i]:[{[n]:oe,[i]:[Ze,"name"]},"aws-us-gov"]}],endpoint:{url:"https://sts.{Region}.amazonaws.com",properties:_,headers:_},[o]:c},{endpoint:{url:"https://sts-fips.{Region}.{PartitionResult#dnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"FIPS is enabled but this partition does not support FIPS",[o]:M}],[o]:R},{conditions:Ke,rules:[{conditions:[je],rules:[{endpoint:{url:"https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:_,headers:_},[o]:c}],[o]:R},{error:"DualStack is enabled but this partition does not support DualStack",[o]:M}],[o]:R},ke,{endpoint:{url:We,properties:_,headers:_},[o]:c}],[o]:R}],[o]:R},{error:"Invalid Configuration: Missing Region",[o]:M}]};Ce.ruleSet=Go});var rt=y((tt)=>{Object.defineProperty(tt,"__esModule",{value:!0});tt.defaultEndpointResolver=void 0;var Vo=Ko(),re=Oo(),zo=et(),Bo=new re.EndpointCache({size:50,params:["Endpoint","Region","UseDualStack","UseFIPS","UseGlobalEndpoint"]}),go=(e,t={})=>{return Bo.get(e,()=>(0,re.resolveEndpoint)(zo.ruleSet,{endpointParams:e,logger:t.logger}))};tt.defaultEndpointResolver=go;re.customEndpointFunctions.aws=Vo.awsEndpointFunctions});var O=y((ne)=>{Object.defineProperty(ne,"__esModule",{value:!0});ne.STSServiceException=ne.__ServiceException=void 0;var st=k();Object.defineProperty(ne,"__ServiceException",{enumerable:!0,get:function(){return st.ServiceException}});class se extends st.ServiceException{constructor(e){super(e);Object.setPrototypeOf(this,se.prototype)}}ne.STSServiceException=se});var Ee=y((it)=>{Object.defineProperty(it,"__esModule",{value:!0});it.IDPCommunicationErrorException=it.InvalidIdentityTokenException=it.IDPRejectedClaimException=it.RegionDisabledException=it.PackedPolicyTooLargeException=it.MalformedPolicyDocumentException=it.ExpiredTokenException=void 0;var A=O();class ie extends A.STSServiceException{name="ExpiredTokenException";$fault="client";constructor(e){super({name:"ExpiredTokenException",$fault:"client",...e});Object.setPrototypeOf(this,ie.prototype)}}it.ExpiredTokenException=ie;class ce extends A.STSServiceException{name="MalformedPolicyDocumentException";$fault="client";constructor(e){super({name:"MalformedPolicyDocumentException",$fault:"client",...e});Object.setPrototypeOf(this,ce.prototype)}}it.MalformedPolicyDocumentException=ce;class de extends A.STSServiceException{name="PackedPolicyTooLargeException";$fault="client";constructor(e){super({name:"PackedPolicyTooLargeException",$fault:"client",...e});Object.setPrototypeOf(this,de.prototype)}}it.PackedPolicyTooLargeException=de;class ae extends A.STSServiceException{name="RegionDisabledException";$fault="client";constructor(e){super({name:"RegionDisabledException",$fault:"client",...e});Object.setPrototypeOf(this,ae.prototype)}}it.RegionDisabledException=ae;class ue extends A.STSServiceException{name="IDPRejectedClaimException";$fault="client";constructor(e){super({name:"IDPRejectedClaimException",$fault:"client",...e});Object.setPrototypeOf(this,ue.prototype)}}it.IDPRejectedClaimException=ue;class pe extends A.STSServiceException{name="InvalidIdentityTokenException";$fault="client";constructor(e){super({name:"InvalidIdentityTokenException",$fault:"client",...e});Object.setPrototypeOf(this,pe.prototype)}}it.InvalidIdentityTokenException=pe;class le extends A.STSServiceException{name="IDPCommunicationErrorException";$fault="client";constructor(e){super({name:"IDPCommunicationErrorException",$fault:"client",...e});Object.setPrototypeOf(this,le.prototype)}}it.IDPCommunicationErrorException=le});var Te=y((Tt)=>{Object.defineProperty(Tt,"__esModule",{value:!0});Tt.AssumeRoleWithWebIdentity$=Tt.AssumeRole$=Tt.Tag$=Tt.ProvidedContext$=Tt.PolicyDescriptorType$=Tt.Credentials$=Tt.AssumeRoleWithWebIdentityResponse$=Tt.AssumeRoleWithWebIdentityRequest$=Tt.AssumeRoleResponse$=Tt.AssumeRoleRequest$=Tt.AssumedRoleUser$=Tt.errorTypeRegistries=Tt.RegionDisabledException$=Tt.PackedPolicyTooLargeException$=Tt.MalformedPolicyDocumentException$=Tt.InvalidIdentityTokenException$=Tt.IDPRejectedClaimException$=Tt.IDPCommunicationErrorException$=Tt.ExpiredTokenException$=Tt.STSServiceException$=void 0;var Co="Arn",fo="AccessKeyId",er="AssumeRole",tr="AssumedRoleId",or="AssumeRoleRequest",rr="AssumeRoleResponse",Pe="AssumedRoleUser",sr="AssumeRoleWithWebIdentity",nr="AssumeRoleWithWebIdentityRequest",ir="AssumeRoleWithWebIdentityResponse",cr="Audience",ye="Credentials",dr="ContextAssertion",at="DurationSeconds",ar="Expiration",ur="ExternalId",pr="ExpiredTokenException",lr="IDPCommunicationErrorException",Er="IDPRejectedClaimException",Pr="InvalidIdentityTokenException",yr="Key",_r="MalformedPolicyDocumentException",ut="Policy",pt="PolicyArns",Ir="ProviderArn",Rr="ProvidedContexts",Tr="ProvidedContextsListType",Sr="ProvidedContext",vr="PolicyDescriptorType",xr="ProviderId",lt="PackedPolicySize",Dr="PackedPolicyTooLargeException",mr="Provider",Et="RoleArn",Ar="RegionDisabledException",Pt="RoleSessionName",$r="SecretAccessKey",br="SubjectFromWebIdentityToken",_e="SourceIdentity",hr="SerialNumber",Nr="SessionToken",qr="Tags",Fr="TokenCode",Wr="TransitiveTagKeys",wr="Tag",Ur="Value",Mr="WebIdentityToken",kr="arn",Lr="accessKeySecretType",$="awsQueryError",b="client",jr="clientTokenType",h="error",N="httpError",q="message",Gr="policyDescriptorListType",yt="smithy.ts.sdk.synthetic.com.amazonaws.sts",Or="tagListType",d="com.amazonaws.sts",_t=dt(),F=Ee(),Kr=O(),It=_t.TypeRegistry.for(yt);Tt.STSServiceException$=[-3,yt,"STSServiceException",0,[],[]];It.registerError(Tt.STSServiceException$,Kr.STSServiceException);var x=_t.TypeRegistry.for(d);Tt.ExpiredTokenException$=[-3,d,pr,{[$]:["ExpiredTokenException",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.ExpiredTokenException$,F.ExpiredTokenException);Tt.IDPCommunicationErrorException$=[-3,d,lr,{[$]:["IDPCommunicationError",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.IDPCommunicationErrorException$,F.IDPCommunicationErrorException);Tt.IDPRejectedClaimException$=[-3,d,Er,{[$]:["IDPRejectedClaim",403],[h]:b,[N]:403},[q],[0]];x.registerError(Tt.IDPRejectedClaimException$,F.IDPRejectedClaimException);Tt.InvalidIdentityTokenException$=[-3,d,Pr,{[$]:["InvalidIdentityToken",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.InvalidIdentityTokenException$,F.InvalidIdentityTokenException);Tt.MalformedPolicyDocumentException$=[-3,d,_r,{[$]:["MalformedPolicyDocument",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.MalformedPolicyDocumentException$,F.MalformedPolicyDocumentException);Tt.PackedPolicyTooLargeException$=[-3,d,Dr,{[$]:["PackedPolicyTooLarge",400],[h]:b,[N]:400},[q],[0]];x.registerError(Tt.PackedPolicyTooLargeException$,F.PackedPolicyTooLargeException);Tt.RegionDisabledException$=[-3,d,Ar,{[$]:["RegionDisabledException",403],[h]:b,[N]:403},[q],[0]];x.registerError(Tt.RegionDisabledException$,F.RegionDisabledException);Tt.errorTypeRegistries=[It,x];var Vr=[0,d,Lr,8,0],zr=[0,d,jr,8,0];Tt.AssumedRoleUser$=[3,d,Pe,0,[tr,Co],[0,0],2];Tt.AssumeRoleRequest$=[3,d,or,0,[Et,Pt,pt,ut,at,qr,Wr,ur,hr,Fr,_e,Rr],[0,0,()=>Rt,0,1,()=>gr,64,0,0,0,0,()=>Br],2];Tt.AssumeRoleResponse$=[3,d,rr,0,[ye,Pe,lt,_e],[[()=>Tt.Credentials$,0],()=>Tt.AssumedRoleUser$,1,0]];Tt.AssumeRoleWithWebIdentityRequest$=[3,d,nr,0,[Et,Pt,Mr,xr,pt,ut,at],[0,0,[()=>zr,0],0,()=>Rt,0,1],3];Tt.AssumeRoleWithWebIdentityResponse$=[3,d,ir,0,[ye,br,Pe,lt,mr,cr,_e],[[()=>Tt.Credentials$,0],0,()=>Tt.AssumedRoleUser$,1,0,0,0]];Tt.Credentials$=[3,d,ye,0,[fo,$r,Nr,ar],[0,[()=>Vr,0],0,4],4];Tt.PolicyDescriptorType$=[3,d,vr,0,[kr],[0]];Tt.ProvidedContext$=[3,d,Sr,0,[Ir,dr],[0,0]];Tt.Tag$=[3,d,wr,0,[yr,Ur],[0,0],2];var Rt=[1,d,Gr,0,()=>Tt.PolicyDescriptorType$],Br=[1,d,Tr,0,()=>Tt.ProvidedContext$],gr=[1,d,Or,0,()=>Tt.Tag$];Tt.AssumeRole$=[9,d,er,0,()=>Tt.AssumeRoleRequest$,()=>Tt.AssumeRoleResponse$];Tt.AssumeRoleWithWebIdentity$=[9,d,sr,0,()=>Tt.AssumeRoleWithWebIdentityRequest$,()=>Tt.AssumeRoleWithWebIdentityResponse$]});var Ot=y((jt)=>{Object.defineProperty(jt,"__esModule",{value:!0});jt.getRuntimeConfig=void 0;var Cr=X(),fr=Zr(),es=Se(),ts=k(),os=Xr(),kt=Jr(),Lt=Hr(),rs=Z(),ss=rt(),ns=Te(),is=(e)=>{return{apiVersion:"2011-06-15",base64Decoder:e?.base64Decoder??kt.fromBase64,base64Encoder:e?.base64Encoder??kt.toBase64,disableHostPrefix:e?.disableHostPrefix??!1,endpointProvider:e?.endpointProvider??ss.defaultEndpointResolver,extensions:e?.extensions??[],httpAuthSchemeProvider:e?.httpAuthSchemeProvider??rs.defaultSTSHttpAuthSchemeProvider,httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(t)=>t.getIdentityProvider("aws.auth#sigv4"),signer:new Cr.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(t)=>t.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new es.NoAuthSigner}],logger:e?.logger??new ts.NoOpLogger,protocol:e?.protocol??fr.AwsQueryProtocol,protocolSettings:e?.protocolSettings??{defaultNamespace:"com.amazonaws.sts",errorTypeRegistries:ns.errorTypeRegistries,xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/",version:"2011-06-15",serviceTarget:"AWSSecurityTokenServiceV20110615"},serviceId:e?.serviceId??"STS",urlParser:e?.urlParser??os.parseUrl,utf8Decoder:e?.utf8Decoder??Lt.fromUtf8,utf8Encoder:e?.utf8Encoder??Lt.toUtf8}};jt.getRuntimeConfig=is});var Jt=y((Yt)=>{Object.defineProperty(Yt,"__esModule",{value:!0});Yt.getRuntimeConfig=void 0;var _s=ds(),Is=_s.__importDefault(ps()),ve=X(),Kt=ls(),K=gt(),Rs=Se(),Ts=Es(),Vt=Qt(),W=us(),zt=cs(),Bt=k(),Ss=Ps(),vs=ys(),xs=as(),Ds=Ot(),ms=(e)=>{(0,Bt.emitWarningIfUnsupportedVersion)(process.version);let t=(0,vs.resolveDefaultsModeConfig)(e),r=()=>t().then(Bt.loadConfigsForDefaultMode),a=(0,Ds.getRuntimeConfig)(e);(0,ve.emitWarningIfUnsupportedVersion)(process.version);let s={profile:e?.profile,logger:a.logger};return{...a,...e,runtime:"node",defaultsMode:t,authSchemePreference:e?.authSchemePreference??(0,W.loadConfig)(ve.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS,s),bodyLengthChecker:e?.bodyLengthChecker??Ss.calculateBodyLength,defaultUserAgentProvider:e?.defaultUserAgentProvider??(0,Kt.createDefaultUserAgentProvider)({serviceId:a.serviceId,clientVersion:Is.default.version}),httpAuthSchemes:e?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:(E)=>E.getIdentityProvider("aws.auth#sigv4")||(async(u)=>await e.credentialDefaultProvider(u?.__config||{})()),signer:new ve.AwsSdkSigV4Signer},{schemeId:"smithy.api#noAuth",identityProvider:(E)=>E.getIdentityProvider("smithy.api#noAuth")||(async()=>({})),signer:new Rs.NoAuthSigner}],maxAttempts:e?.maxAttempts??(0,W.loadConfig)(Vt.NODE_MAX_ATTEMPT_CONFIG_OPTIONS,e),region:e?.region??(0,W.loadConfig)(K.NODE_REGION_CONFIG_OPTIONS,{...K.NODE_REGION_CONFIG_FILE_OPTIONS,...s}),requestHandler:zt.NodeHttpHandler.create(e?.requestHandler??r),retryMode:e?.retryMode??(0,W.loadConfig)({...Vt.NODE_RETRY_MODE_CONFIG_OPTIONS,default:async()=>(await r()).retryMode||xs.DEFAULT_RETRY_MODE},e),sha256:e?.sha256??Ts.Hash.bind(null,"sha256"),streamCollector:e?.streamCollector??zt.streamCollector,useDualstackEndpoint:e?.useDualstackEndpoint??(0,W.loadConfig)(K.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS,s),useFipsEndpoint:e?.useFipsEndpoint??(0,W.loadConfig)(K.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS,s),userAgentAppId:e?.userAgentAppId??(0,W.loadConfig)(Kt.NODE_APP_ID_CONFIG_OPTIONS,s)}};Yt.getRuntimeConfig=ms});var Ct=y((Xt)=>{Object.defineProperty(Xt,"__esModule",{value:!0});Xt.resolveHttpAuthRuntimeConfig=Xt.getHttpAuthExtensionConfiguration=void 0;var As=(e)=>{let{httpAuthSchemes:t,httpAuthSchemeProvider:r,credentials:a}=e;return{setHttpAuthScheme(s){let E=t.findIndex((u)=>u.schemeId===s.schemeId);if(E===-1)t.push(s);else t.splice(E,1,s)},httpAuthSchemes(){return t},setHttpAuthSchemeProvider(s){r=s},httpAuthSchemeProvider(){return r},setCredentials(s){a=s},credentials(){return a}}};Xt.getHttpAuthExtensionConfiguration=As;var $s=(e)=>{return{httpAuthSchemes:e.httpAuthSchemes(),httpAuthSchemeProvider:e.httpAuthSchemeProvider(),credentials:e.credentials()}};Xt.resolveHttpAuthRuntimeConfig=$s});var io=y((so)=>{Object.defineProperty(so,"__esModule",{value:!0});so.resolveRuntimeExtensions=void 0;var ft=ro(),eo=hs(),to=k(),oo=Ct(),Ns=(e,t)=>{let r=Object.assign((0,ft.getAwsRegionExtensionConfiguration)(e),(0,to.getDefaultExtensionConfiguration)(e),(0,eo.getHttpHandlerExtensionConfiguration)(e),(0,oo.getHttpAuthExtensionConfiguration)(e));return t.forEach((a)=>a.configure(r)),Object.assign(e,(0,ft.resolveAwsRegionExtensionConfiguration)(r),(0,to.resolveDefaultRuntimeConfig)(r),(0,eo.resolveHttpHandlerRuntimeConfig)(r),(0,oo.resolveHttpAuthRuntimeConfig)(r))};so.resolveRuntimeExtensions=Ns});var C=y((De)=>{Object.defineProperty(De,"__esModule",{value:!0});De.STSClient=De.__Client=void 0;var co=qs(),Ms=Fs(),ks=Ws(),ao=ws(),Ls=gt(),xe=Se(),js=dt(),Gs=Us(),Os=lo(),uo=Qt(),Eo=k();Object.defineProperty(De,"__Client",{enumerable:!0,get:function(){return Eo.Client}});var po=Z(),Ks=f(),Vs=Jt(),zs=io();class Po extends Eo.Client{config;constructor(...[e]){let t=(0,Vs.getRuntimeConfig)(e||{});super(t);this.initConfig=t;let r=(0,Ks.resolveClientEndpointParameters)(t),a=(0,ao.resolveUserAgentConfig)(r),s=(0,uo.resolveRetryConfig)(a),E=(0,Ls.resolveRegionConfig)(s),u=(0,co.resolveHostHeaderConfig)(E),T=(0,Os.resolveEndpointConfig)(u),D=(0,po.resolveHttpAuthSchemeConfig)(T),m=(0,zs.resolveRuntimeExtensions)(D,e?.extensions||[]);this.config=m,this.middlewareStack.use((0,js.getSchemaSerdePlugin)(this.config)),this.middlewareStack.use((0,ao.getUserAgentPlugin)(this.config)),this.middlewareStack.use((0,uo.getRetryPlugin)(this.config)),this.middlewareStack.use((0,Gs.getContentLengthPlugin)(this.config)),this.middlewareStack.use((0,co.getHostHeaderPlugin)(this.config)),this.middlewareStack.use((0,Ms.getLoggerPlugin)(this.config)),this.middlewareStack.use((0,ks.getRecursionDetectionPlugin)(this.config)),this.middlewareStack.use((0,xe.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config,{httpAuthSchemeParametersProvider:po.defaultSTSHttpAuthSchemeParametersProvider,identityProviderConfigProvider:async(U)=>new xe.DefaultIdentityProviderConfig({"aws.auth#sigv4":U.credentials})})),this.middlewareStack.use((0,xe.getHttpSigningPlugin)(this.config))}destroy(){super.destroy()}}De.STSClient=Po});var nn=y((I)=>{var w=C(),z=k(),_o=lo(),Io=f(),L=Te(),V=Ee(),me=Bs(),gs=ro(),Qs=O();class B extends z.Command.classBuilder().ep(Io.commonParams).m(function(e,t,r,a){return[_o.getEndpointPlugin(r,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRole",{}).n("STSClient","AssumeRoleCommand").sc(L.AssumeRole$).build(){}class g extends z.Command.classBuilder().ep(Io.commonParams).m(function(e,t,r,a){return[_o.getEndpointPlugin(r,e.getEndpointParameterInstructions())]}).s("AWSSecurityTokenServiceV20110615","AssumeRoleWithWebIdentity",{}).n("STSClient","AssumeRoleWithWebIdentityCommand").sc(L.AssumeRoleWithWebIdentity$).build(){}var Ys={AssumeRoleCommand:B,AssumeRoleWithWebIdentityCommand:g};class Ae extends w.STSClient{}z.createAggregatedClient(Ys,Ae);var Ro=(e)=>{if(typeof e?.Arn==="string"){let t=e.Arn.split(":");if(t.length>4&&t[4]!=="")return t[4]}return},To=async(e,t,r,a={})=>{let s=typeof e==="function"?await e():e,E=typeof t==="function"?await t():t,u="",T=s??E??(u=await gs.stsRegionDefaultResolver(a)());return r?.debug?.("@aws-sdk/client-sts::resolveRegion","accepting first of:",`${s} (credential provider clientConfig)`,`${E} (contextual client)`,`${u} (STS default: AWS_REGION, profile region, or us-east-1)`),T},Hs=(e,t)=>{let r,a;return async(s,E)=>{if(a=s,!r){let{logger:U=e?.parentClientConfig?.logger,profile:j=e?.parentClientConfig?.profile,region:Q,requestHandler:G=e?.parentClientConfig?.requestHandler,credentialProviderLogger:Y,userAgentAppId:H=e?.parentClientConfig?.userAgentAppId}=e,mo=await To(Q,e?.parentClientConfig?.region,Y,{logger:U,profile:j}),Ao=!So(G);r=new t({...e,userAgentAppId:H,profile:j,credentialDefaultProvider:()=>async()=>a,region:mo,requestHandler:Ao?G:void 0,logger:U})}let{Credentials:u,AssumedRoleUser:T}=await r.send(new B(E));if(!u||!u.AccessKeyId||!u.SecretAccessKey)throw Error(`Invalid response from STS.assumeRole call with role ${E.RoleArn}`);let D=Ro(T),m={accessKeyId:u.AccessKeyId,secretAccessKey:u.SecretAccessKey,sessionToken:u.SessionToken,expiration:u.Expiration,...u.CredentialScope&&{credentialScope:u.CredentialScope},...D&&{accountId:D}};return me.setCredentialFeature(m,"CREDENTIALS_STS_ASSUME_ROLE","i"),m}},Js=(e,t)=>{let r;return async(a)=>{if(!r){let{logger:D=e?.parentClientConfig?.logger,profile:m=e?.parentClientConfig?.profile,region:U,requestHandler:j=e?.parentClientConfig?.requestHandler,credentialProviderLogger:Q,userAgentAppId:G=e?.parentClientConfig?.userAgentAppId}=e,Y=await To(U,e?.parentClientConfig?.region,Q,{logger:D,profile:m}),H=!So(j);r=new t({...e,userAgentAppId:G,profile:m,region:Y,requestHandler:H?j:void 0,logger:D})}let{Credentials:s,AssumedRoleUser:E}=await r.send(new g(a));if(!s||!s.AccessKeyId||!s.SecretAccessKey)throw Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${a.RoleArn}`);let u=Ro(E),T={accessKeyId:s.AccessKeyId,secretAccessKey:s.SecretAccessKey,sessionToken:s.SessionToken,expiration:s.Expiration,...s.CredentialScope&&{credentialScope:s.CredentialScope},...u&&{accountId:u}};if(u)me.setCredentialFeature(T,"RESOLVED_ACCOUNT_ID","T");return me.setCredentialFeature(T,"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID","k"),T}},So=(e)=>{return e?.metadata?.handlerProtocol==="h2"},vo=(e,t)=>{if(!t)return e;else return class extends e{constructor(a){super(a);for(let s of t)this.middlewareStack.use(s)}}},xo=(e={},t)=>Hs(e,vo(w.STSClient,t)),Do=(e={},t)=>Js(e,vo(w.STSClient,t)),Xs=(e)=>(t)=>e({roleAssumer:xo(t),roleAssumerWithWebIdentity:Do(t),...t});I.$Command=z.Command;I.STSServiceException=Qs.STSServiceException;I.AssumeRoleCommand=B;I.AssumeRoleWithWebIdentityCommand=g;I.STS=Ae;I.decorateDefaultCredentialProvider=Xs;I.getDefaultRoleAssumer=xo;I.getDefaultRoleAssumerWithWebIdentity=Do;Object.prototype.hasOwnProperty.call(w,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:w.__proto__});Object.keys(w).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=w[e]});Object.prototype.hasOwnProperty.call(L,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:L.__proto__});Object.keys(L).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=L[e]});Object.prototype.hasOwnProperty.call(V,"__proto__")&&!Object.prototype.hasOwnProperty.call(I,"__proto__")&&Object.defineProperty(I,"__proto__",{enumerable:!0,value:V.__proto__});Object.keys(V).forEach(function(e){if(e!=="default"&&!Object.prototype.hasOwnProperty.call(I,e))I[e]=V[e]})});export default nn();
3
3
 
4
- //# debugId=1B0AD793A8CE0B1864756E2164756E21
4
+ //# debugId=84961EEFB9022C7164756E2164756E21
@@ -17,6 +17,6 @@
17
17
  "'use strict';\n\nvar STSClient = require('./STSClient');\nvar smithyClient = require('@smithy/smithy-client');\nvar middlewareEndpoint = require('@smithy/middleware-endpoint');\nvar EndpointParameters = require('./endpoint/EndpointParameters');\nvar schemas_0 = require('./schemas/schemas_0');\nvar errors = require('./models/errors');\nvar client = require('@aws-sdk/core/client');\nvar regionConfigResolver = require('@aws-sdk/region-config-resolver');\nvar STSServiceException = require('./models/STSServiceException');\n\nclass AssumeRoleCommand extends smithyClient.Command\n .classBuilder()\n .ep(EndpointParameters.commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRole\", {})\n .n(\"STSClient\", \"AssumeRoleCommand\")\n .sc(schemas_0.AssumeRole$)\n .build() {\n}\n\nclass AssumeRoleWithWebIdentityCommand extends smithyClient.Command\n .classBuilder()\n .ep(EndpointParameters.commonParams)\n .m(function (Command, cs, config, o) {\n return [middlewareEndpoint.getEndpointPlugin(config, Command.getEndpointParameterInstructions())];\n})\n .s(\"AWSSecurityTokenServiceV20110615\", \"AssumeRoleWithWebIdentity\", {})\n .n(\"STSClient\", \"AssumeRoleWithWebIdentityCommand\")\n .sc(schemas_0.AssumeRoleWithWebIdentity$)\n .build() {\n}\n\nconst commands = {\n AssumeRoleCommand,\n AssumeRoleWithWebIdentityCommand,\n};\nclass STS extends STSClient.STSClient {\n}\nsmithyClient.createAggregatedClient(commands, STS);\n\nconst getAccountIdFromAssumedRoleUser = (assumedRoleUser) => {\n if (typeof assumedRoleUser?.Arn === \"string\") {\n const arnComponents = assumedRoleUser.Arn.split(\":\");\n if (arnComponents.length > 4 && arnComponents[4] !== \"\") {\n return arnComponents[4];\n }\n }\n return undefined;\n};\nconst resolveRegion = async (_region, _parentRegion, credentialProviderLogger, loaderConfig = {}) => {\n const region = typeof _region === \"function\" ? await _region() : _region;\n const parentRegion = typeof _parentRegion === \"function\" ? await _parentRegion() : _parentRegion;\n let stsDefaultRegion = \"\";\n const resolvedRegion = region ?? parentRegion ?? (stsDefaultRegion = await regionConfigResolver.stsRegionDefaultResolver(loaderConfig)());\n credentialProviderLogger?.debug?.(\"@aws-sdk/client-sts::resolveRegion\", \"accepting first of:\", `${region} (credential provider clientConfig)`, `${parentRegion} (contextual client)`, `${stsDefaultRegion} (STS default: AWS_REGION, profile region, or us-east-1)`);\n return resolvedRegion;\n};\nconst getDefaultRoleAssumer$1 = (stsOptions, STSClient) => {\n let stsClient;\n let closureSourceCreds;\n return async (sourceCreds, params) => {\n closureSourceCreds = sourceCreds;\n if (!stsClient) {\n const { logger = stsOptions?.parentClientConfig?.logger, profile = stsOptions?.parentClientConfig?.profile, region, requestHandler = stsOptions?.parentClientConfig?.requestHandler, credentialProviderLogger, userAgentAppId = stsOptions?.parentClientConfig?.userAgentAppId, } = stsOptions;\n const resolvedRegion = await resolveRegion(region, stsOptions?.parentClientConfig?.region, credentialProviderLogger, {\n logger,\n profile,\n });\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient({\n ...stsOptions,\n userAgentAppId,\n profile,\n credentialDefaultProvider: () => async () => closureSourceCreds,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : undefined,\n logger: logger,\n });\n }\n const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser);\n const credentials = {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n ...(Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }),\n ...(accountId && { accountId }),\n };\n client.setCredentialFeature(credentials, \"CREDENTIALS_STS_ASSUME_ROLE\", \"i\");\n return credentials;\n };\n};\nconst getDefaultRoleAssumerWithWebIdentity$1 = (stsOptions, STSClient) => {\n let stsClient;\n return async (params) => {\n if (!stsClient) {\n const { logger = stsOptions?.parentClientConfig?.logger, profile = stsOptions?.parentClientConfig?.profile, region, requestHandler = stsOptions?.parentClientConfig?.requestHandler, credentialProviderLogger, userAgentAppId = stsOptions?.parentClientConfig?.userAgentAppId, } = stsOptions;\n const resolvedRegion = await resolveRegion(region, stsOptions?.parentClientConfig?.region, credentialProviderLogger, {\n logger,\n profile,\n });\n const isCompatibleRequestHandler = !isH2(requestHandler);\n stsClient = new STSClient({\n ...stsOptions,\n userAgentAppId,\n profile,\n region: resolvedRegion,\n requestHandler: isCompatibleRequestHandler ? requestHandler : undefined,\n logger: logger,\n });\n }\n const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params));\n if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) {\n throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`);\n }\n const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser);\n const credentials = {\n accessKeyId: Credentials.AccessKeyId,\n secretAccessKey: Credentials.SecretAccessKey,\n sessionToken: Credentials.SessionToken,\n expiration: Credentials.Expiration,\n ...(Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }),\n ...(accountId && { accountId }),\n };\n if (accountId) {\n client.setCredentialFeature(credentials, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n client.setCredentialFeature(credentials, \"CREDENTIALS_STS_ASSUME_ROLE_WEB_ID\", \"k\");\n return credentials;\n };\n};\nconst isH2 = (requestHandler) => {\n return requestHandler?.metadata?.handlerProtocol === \"h2\";\n};\n\nconst getCustomizableStsClientCtor = (baseCtor, customizations) => {\n if (!customizations)\n return baseCtor;\n else\n return class CustomizableSTSClient extends baseCtor {\n constructor(config) {\n super(config);\n for (const customization of customizations) {\n this.middlewareStack.use(customization);\n }\n }\n };\n};\nconst getDefaultRoleAssumer = (stsOptions = {}, stsPlugins) => getDefaultRoleAssumer$1(stsOptions, getCustomizableStsClientCtor(STSClient.STSClient, stsPlugins));\nconst getDefaultRoleAssumerWithWebIdentity = (stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity$1(stsOptions, getCustomizableStsClientCtor(STSClient.STSClient, stsPlugins));\nconst decorateDefaultCredentialProvider = (provider) => (input) => provider({\n roleAssumer: getDefaultRoleAssumer(input),\n roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity(input),\n ...input,\n});\n\nexports.$Command = smithyClient.Command;\nexports.STSServiceException = STSServiceException.STSServiceException;\nexports.AssumeRoleCommand = AssumeRoleCommand;\nexports.AssumeRoleWithWebIdentityCommand = AssumeRoleWithWebIdentityCommand;\nexports.STS = STS;\nexports.decorateDefaultCredentialProvider = decorateDefaultCredentialProvider;\nexports.getDefaultRoleAssumer = getDefaultRoleAssumer;\nexports.getDefaultRoleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity;\nObject.prototype.hasOwnProperty.call(STSClient, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: STSClient['__proto__']\n });\n\nObject.keys(STSClient).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = STSClient[k];\n});\nObject.prototype.hasOwnProperty.call(schemas_0, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: schemas_0['__proto__']\n });\n\nObject.keys(schemas_0).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = schemas_0[k];\n});\nObject.prototype.hasOwnProperty.call(errors, '__proto__') &&\n !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&\n Object.defineProperty(exports, '__proto__', {\n enumerable: true,\n value: errors['__proto__']\n });\n\nObject.keys(errors).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = errors[k];\n});\n"
18
18
  ],
19
19
  "mappings": "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",
20
- "debugId": "1B0AD793A8CE0B1864756E2164756E21",
20
+ "debugId": "84961EEFB9022C7164756E2164756E21",
21
21
  "names": []
22
22
  }
@@ -2,6 +2,6 @@
2
2
  import{existsSync as $,readdirSync as B}from"fs";import{join as Y,relative as G}from"path";function J(K,Q=[]){let U=[],X=(H)=>{let z=G(K,H).split("\\").join("/");return Q.some((q)=>z===q||z.startsWith(`${q}/`))},V=(H)=>{for(let z of B(H,{withFileTypes:!0}).sort((q,Z)=>q.name<Z.name?-1:q.name>Z.name?1:0)){let q=Y(H,z.name);if(X(q))continue;if(z.isDirectory()){if(z.name.startsWith(".")||z.name==="node_modules")continue;if($(Y(q,"package.json")))continue;V(q);continue}if(!z.name.endsWith(".ts")&&!z.name.endsWith(".tsx"))continue;if(z.name.endsWith(".d.ts"))continue;if(/\.(test|test-d|spec|bench)\.tsx?$/.test(z.name))continue;U.push(q)}};if(!$(K))return U;return V(K),U}class A extends Error{constructor(K,Q){super(K,Q);this.name="DiscoveryError"}}async function W(K,Q,U=[],X){let V=new Set;for(let H of J(K,U)){let z;try{z=await import(H)}catch(q){throw new A(`${H} could not be imported, so the classes in it could not be discovered:
3
3
  ${q.message}
4
4
  List the classes explicitly in the config slice for this directory to skip the walk.`,{cause:q})}for(let q of Object.values(z)){if(typeof q==="function"&&q!==Q&&Object.prototype.isPrototypeOf.call(Q,q)){V.add(q);continue}X?.(q,H)}}return[...V]}function F(){return Y(process.cwd(),process.env.GEMI_PROJECT_DIR??"")}
5
- export{J as tl,A as ul,W as vl,F as wl};
5
+ export{J as ul,A as vl,W as wl,F as xl};
6
6
 
7
- //# debugId=D59B26B456D1520364756E2164756E21
7
+ //# debugId=0B920B51FFB1B18264756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import { existsSync, readdirSync } from \"node:fs\";\nimport { join, relative } from \"node:path\";\n\n/**\n * Finding the classes an application declared and never imported — the walk\n * #322 and #323 both end at.\n *\n * ### Why it has to run the files\n *\n * A job that is written and not listed does not fail; it disappears.\n * `QueueManager.run` looks a dispatched name up in the map its config built and\n * drops what is not there, so the dispatch is simply lost. A cron drifts worse:\n * nothing is waiting on a tick, so a job that never fires reports nothing to\n * anyone. What both come down to is that `app/config/queue.ts` naming every\n * `Job` subclass is the *only* thing putting those classes in the module graph —\n * the list and the directory are two spellings of one set, kept in step by hand.\n *\n * The way out of that is to read the directory, and there is no static read that\n * will do: the class does not exist until its module has run. So **every file\n * walked here is imported**, and a file that *does something* when imported does\n * it here — at boot, in production, on every start. `gemi check models` makes\n * the same trade for the same reason and pays it once per CI run; a caller of\n * this pays it once per process.\n *\n * ### What that asks of a caller\n *\n * **Point it at a directory of class declarations, not at `app/`.** The skip\n * rules on `sourceFiles` drop what certainly is not one — tests, benchmarks,\n * `.d.ts`, vendored packages — and nothing else. Widening the guesses is how a\n * discovery pass ends up quietly covering less than the directory holds, which\n * is the same silence in a new place.\n *\n * **Let a broken file stop the boot.** `discoverClasses` rethrows an import\n * failure naming the file rather than dropping it and carrying on, for the same\n * reason: four classes found out of five looks exactly like five out of five.\n *\n * **Leave a way out.** Discovery is what should happen when an app said\n * nothing. An app that lists its classes explicitly must not reach this file at\n * all — that is the escape hatch for a directory holding something this cannot\n * import, and it is the sentence an error from here should point at.\n *\n * ### One more thing worth knowing\n *\n * This imports by absolute path, while the application imports the same files\n * through the `@/app/*` alias. Bun keys its module registry by the *resolved*\n * path, so those two specifiers land on one module: a job already reached from\n * a controller is not evaluated a second time here, and the class object is the\n * same one. `gemi build` leaves that true in production — `packages: \"external\"`\n * keeps the app's own code out of `dist/server/server.mjs` and resolves it from\n * source at runtime, exactly as `gemi dev` does.\n *\n * Nothing here depends on that holding, and deliberately: `QueueManager` and the\n * `Scheduler`'s cross-reload registry are both keyed by name rather than by\n * class identity, so a build that did inline the app's modules would produce a\n * duplicate class object and still register the right job. Worth knowing before\n * writing a registry keyed the other way.\n */\n\n/**\n * The files under `dir` that could declare a class.\n *\n * Everything underneath it, because apps do group classes into folders, minus\n * what cannot be one. Each of these is going to be *imported*, so the exclusions\n * are about what is certainly not source rather than about what is probably not:\n *\n * - **Declaration files.** `.d.ts` has no runtime module behind it.\n * - **Tests, type tests and benchmarks**, by the suffix a runner already\n * recognises.\n * - **Dot-directories and `node_modules`.**\n * - **Any directory holding a `package.json`.** That is a package that happens\n * to live here — a vendored client, a generated SDK — not this app's source,\n * and importing its entry point runs somebody else's module graph. The\n * template has two under `app/models`.\n *\n * `ignore` is the escape hatch for the rest: a path prefix, relative to `dir`,\n * naming a file or a directory of adjacent code that runs something on import.\n * Nothing is ignored by default.\n *\n * The order is the same on every run over the same tree, which matters because\n * the caller is going to import in it: entries are sorted per directory before\n * recursing, and `readdirSync` order is the filesystem's rather than\n * alphabetical — a tree written `A.ts` then `B.ts` reads back `B.ts` first on\n * the machines this was tested on. Sorting per directory rather than sorting the\n * finished list is deliberate: for a tree holding both `a.ts` and `a/b.ts`, this\n * emits `a/b.ts` first, because the directory sorts before the file.\n *\n * A directory that does not exist yields an empty list rather than throwing.\n * \"The app has no jobs yet\" is an ordinary state and not this function's to\n * complain about — but it is indistinguishable from \"the app's source did not\n * ship\", so a caller that boots on the answer owes the reader a word about which\n * one it got.\n */\nexport function sourceFiles(dir: string, ignore: string[] = []): string[] {\n const out: string[] = [];\n\n const ignored = (path: string) => {\n const rel = relative(dir, path).split(\"\\\\\").join(\"/\");\n return ignore.some(\n (pattern) => rel === pattern || rel.startsWith(`${pattern}/`),\n );\n };\n\n const walk = (current: string) => {\n for (const entry of readdirSync(current, { withFileTypes: true }).sort(\n (a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0),\n )) {\n const path = join(current, entry.name);\n if (ignored(path)) continue;\n\n if (entry.isDirectory()) {\n if (entry.name.startsWith(\".\") || entry.name === \"node_modules\")\n continue;\n if (existsSync(join(path, \"package.json\"))) continue;\n walk(path);\n continue;\n }\n\n if (!entry.name.endsWith(\".ts\") && !entry.name.endsWith(\".tsx\")) continue;\n if (entry.name.endsWith(\".d.ts\")) continue;\n if (/\\.(test|test-d|spec|bench)\\.tsx?$/.test(entry.name)) continue;\n\n out.push(path);\n }\n };\n\n if (!existsSync(dir)) return out;\n\n walk(dir);\n return out;\n}\n\n/**\n * A class, as much of one as this file can name. `abstract` so that a base an\n * app never instantiates directly is a legal argument.\n */\ntype ClassLike = abstract new (...args: never[]) => unknown;\n\n/**\n * A file that would not import, reported with the file that would not import.\n *\n * Separate from a bare rethrow because the stack of a failed dynamic import\n * names the module that failed to *resolve*, several frames deep, and says\n * nothing about the walk that asked for it — so the reader learns that some\n * `?raw` specifier is unresolvable without learning that discovery is what\n * imported it, or that listing the classes explicitly is how they get their boot\n * back.\n */\nexport class DiscoveryError extends Error {\n constructor(message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = \"DiscoveryError\";\n }\n}\n\n/**\n * Every exported class under `dir` whose prototype chain reaches `base`.\n *\n * `base` is a parameter rather than an import so that this file names no\n * service and stays cheap to depend on — `bin/check-models.ts` uses the walker\n * above and is bundled into `dist/bin/gemi.js`, which is not somewhere gemi's\n * service layer should end up. It is also what lets a test hand in a base class\n * of its own instead of standing up a project that can resolve `gemi/services`.\n *\n * `base` itself is never returned. A directory whose files import their base\n * from a sibling — the shape an app reaches for when several jobs share a gate —\n * re-exports it as often as not, and a framework that scheduled the abstract\n * base along with its subclasses would be running a job nobody wrote.\n *\n * A class is returned once no matter how many exports name it. A barrel in the\n * directory re-exporting everything beside it is the ordinary case, and it makes\n * every class reachable twice.\n *\n * The order is the walk's, and within a file the module namespace's, which the\n * language sorts by name. So the answer is the same on every run — worth having\n * where the caller is a scheduler and the alternative is a boot order that\n * depends on the filesystem.\n *\n * `onSkipped` is handed every export that did *not* match, with the file it came\n * from. Discovery's characteristic failure is a thing the author wrote and this\n * walk cannot see, and by the time an export has been discarded here the\n * information about why is gone — the caller is left holding \"four classes\"\n * where the directory holds five. A caller that can recognise its own\n * near-misses, as `discoverCommands` recognises a builder chain that was never\n * finished, uses this to say so by name instead.\n *\n * @throws DiscoveryError if a walked file cannot be imported. Not a skip: a file\n * that will not load is a class the caller was going to be told about and now is\n * not, which is the failure discovery exists to remove.\n */\nexport async function discoverClasses<T extends ClassLike>(\n dir: string,\n base: T,\n ignore: string[] = [],\n onSkipped?: (value: unknown, file: string) => void,\n): Promise<T[]> {\n const found = new Set<T>();\n\n for (const path of sourceFiles(dir, ignore)) {\n let module: Record<string, unknown>;\n\n try {\n module = (await import(path)) as Record<string, unknown>;\n } catch (error) {\n throw new DiscoveryError(\n `${path} could not be imported, so the classes in it could not be ` +\n `discovered:\\n ${(error as Error).message}\\n` +\n `List the classes explicitly in the config slice for this directory ` +\n `to skip the walk.`,\n { cause: error },\n );\n }\n\n for (const value of Object.values(module)) {\n if (\n typeof value === \"function\" &&\n value !== base &&\n Object.prototype.isPrototypeOf.call(base, value)\n ) {\n found.add(value as unknown as T);\n continue;\n }\n\n onSkipped?.(value, path);\n }\n }\n\n return [...found];\n}\n\n/**\n * The directory an app's `app/` sits in, as the running process can know it.\n *\n * `ROOT_DIR` is the obvious answer and is not available: `Server.start` awaits\n * `waitForBoot()` — every provider's `register` and `boot` — and only then\n * imports the http layer that sets it. Anything resolving paths during boot is\n * earlier than the variable it would want.\n *\n * What it can use is the same rule `httpProd` computes `ROOT_DIR` with a moment\n * later, which is why that file now calls this instead of repeating it. `gemi\n * dev` and `gemi start` both spawn the server with no `cwd`, so the process\n * inherits the CLI's, and the CLI takes `process.cwd()` for the project root\n * itself — `bun/preload.ts` reads `gemi.config` from it on the same assumption.\n *\n * `httpDev` computes a bare `process.cwd()`, so it and `httpProd` already\n * disagree whenever `GEMI_PROJECT_DIR` is set. Nothing in this repo sets it and\n * `gemi start` ignores it when locating the built entry point, so the two rules\n * are the same rule for every configuration that runs today; the divergence is\n * older than this function and wants its own fix.\n */\nexport function projectRoot(): string {\n return join(process.cwd(), process.env.GEMI_PROJECT_DIR ?? \"\");\n}\n"
6
6
  ],
7
7
  "mappings": ";AAAA,qBAAS,iBAAY,WACrB,eAAS,cAAM,aA2FR,SAAS,CAAW,CAAC,EAAa,EAAmB,CAAC,EAAa,CACxE,IAAM,EAAgB,CAAC,EAEjB,EAAU,CAAC,IAAiB,CAChC,IAAM,EAAM,EAAS,EAAK,CAAI,EAAE,MAAM,IAAI,EAAE,KAAK,GAAG,EACpD,OAAO,EAAO,KACZ,CAAC,IAAY,IAAQ,GAAW,EAAI,WAAW,GAAG,IAAU,CAC9D,GAGI,EAAO,CAAC,IAAoB,CAChC,QAAW,KAAS,EAAY,EAAS,CAAE,cAAe,EAAK,CAAC,EAAE,KAChE,CAAC,EAAG,IAAO,EAAE,KAAO,EAAE,KAAO,GAAK,EAAE,KAAO,EAAE,KAAO,EAAI,CAC1D,EAAG,CACD,IAAM,EAAO,EAAK,EAAS,EAAM,IAAI,EACrC,GAAI,EAAQ,CAAI,EAAG,SAEnB,GAAI,EAAM,YAAY,EAAG,CACvB,GAAI,EAAM,KAAK,WAAW,GAAG,GAAK,EAAM,OAAS,eAC/C,SACF,GAAI,EAAW,EAAK,EAAM,cAAc,CAAC,EAAG,SAC5C,EAAK,CAAI,EACT,SAGF,GAAI,CAAC,EAAM,KAAK,SAAS,KAAK,GAAK,CAAC,EAAM,KAAK,SAAS,MAAM,EAAG,SACjE,GAAI,EAAM,KAAK,SAAS,OAAO,EAAG,SAClC,GAAI,oCAAoC,KAAK,EAAM,IAAI,EAAG,SAE1D,EAAI,KAAK,CAAI,IAIjB,GAAI,CAAC,EAAW,CAAG,EAAG,OAAO,EAG7B,OADA,EAAK,CAAG,EACD,EAmBF,MAAM,UAAuB,KAAM,CACxC,WAAW,CAAC,EAAiB,EAA+B,CAC1D,MAAM,EAAS,CAAO,EACtB,KAAK,KAAO,iBAEhB,CAqCA,eAAsB,CAAoC,CACxD,EACA,EACA,EAAmB,CAAC,EACpB,EACc,CACd,IAAM,EAAQ,IAAI,IAElB,QAAW,KAAQ,EAAY,EAAK,CAAM,EAAG,CAC3C,IAAI,EAEJ,GAAI,CACF,EAAU,MAAa,UACvB,MAAO,EAAO,CACd,MAAM,IAAI,EACR,GAAG;AAAA,MACoB,EAAgB;AAAA,sFAGvC,CAAE,MAAO,CAAM,CACjB,EAGF,QAAW,KAAS,OAAO,OAAO,CAAM,EAAG,CACzC,GACE,OAAO,IAAU,YACjB,IAAU,GACV,OAAO,UAAU,cAAc,KAAK,EAAM,CAAK,EAC/C,CACA,EAAM,IAAI,CAAqB,EAC/B,SAGF,IAAY,EAAO,CAAI,GAI3B,MAAO,CAAC,GAAG,CAAK,EAuBX,SAAS,CAAW,EAAW,CACpC,OAAO,EAAK,QAAQ,IAAI,EAAG,QAAQ,IAAI,kBAAoB,EAAE",
8
- "debugId": "D59B26B456D1520364756E2164756E21",
8
+ "debugId": "0B920B51FFB1B18264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
2
  class j{deliver=null;hooks;get started(){return this.deliver!==null}publish(b,g){this.deliver?.(b,g)}start(b,g){this.deliver=b,this.hooks=g}revoke(b){this.hooks?.onRevoke?.(b)}close(){this.deliver=null,this.hooks=void 0}}
3
- export{j as Wj};
3
+ export{j as Xj};
4
4
 
5
- //# debugId=D332D4CA212894F364756E2164756E21
5
+ //# debugId=75402889431164BC64756E2164756E21
@@ -5,6 +5,6 @@
5
5
  "import type {\n BroadcastDeliver,\n BroadcastDriver,\n BroadcastDriverHooks,\n BroadcastRevocation,\n} from \"./BroadcastDriver\";\n\n/**\n * The default driver: an emit reaches the sockets of **this process only**.\n *\n * Right for one instance whose web processes also run the jobs and cron that\n * emit. Wrong as soon as there are two replicas, or a `gemi queue:work`\n * worker that emits: those frames reach nobody, with nothing to say so. Use\n * the Redis driver there.\n *\n * Before the HTTP server starts the transport, there is nobody to deliver to,\n * and `publish` drops the frame.\n */\nexport class MemoryBroadcastDriver implements BroadcastDriver {\n private deliver: BroadcastDeliver | null = null;\n private hooks: BroadcastDriverHooks | undefined;\n\n /** Whether the transport has started this driver. */\n get started(): boolean {\n return this.deliver !== null;\n }\n\n publish(topic: string, frame: string): void {\n this.deliver?.(topic, frame);\n }\n\n start(deliver: BroadcastDeliver, hooks?: BroadcastDriverHooks): void {\n this.deliver = deliver;\n this.hooks = hooks;\n }\n\n revoke(revocation: BroadcastRevocation): void {\n this.hooks?.onRevoke?.(revocation);\n }\n\n close(): void {\n this.deliver = null;\n this.hooks = undefined;\n }\n}\n"
6
6
  ],
7
7
  "mappings": ";AAkBO,MAAM,CAAiD,CACpD,QAAmC,KACnC,SAGJ,QAAO,EAAY,CACrB,OAAO,KAAK,UAAY,KAG1B,OAAO,CAAC,EAAe,EAAqB,CAC1C,KAAK,UAAU,EAAO,CAAK,EAG7B,KAAK,CAAC,EAA2B,EAAoC,CACnE,KAAK,QAAU,EACf,KAAK,MAAQ,EAGf,MAAM,CAAC,EAAuC,CAC5C,KAAK,OAAO,WAAW,CAAU,EAGnC,KAAK,EAAS,CACZ,KAAK,QAAU,KACf,KAAK,MAAQ,OAEjB",
8
- "debugId": "D332D4CA212894F364756E2164756E21",
8
+ "debugId": "75402889431164BC64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{qj as O}from"./chunk-b8qfypzq.js";import{_j as S}from"./chunk-6tbs7yc1.js";import{Fk as E}from"./chunk-hgvt5084.js";import{dl as U}from"./chunk-kcgnjzqr.js";class F{rows=new Map;async find(j,G){for(let Q of this.rows.values())if(Q.userId===j&&Q.provider===G)return{...Q};return null}async list(j){return[...this.rows.values()].filter((G)=>G.userId===j).map((G)=>({...G}))}async save(j,G,Q){let V=await this.find(j,G),W=new Date,Y={id:V?.id??Bun.randomUUIDv7(),userId:j,provider:G,...P(Q),needsReconnect:!1,revision:(V?.revision??0)+1,createdAt:V?.createdAt??W,updatedAt:W};return this.rows.set(Y.id,Y),{...Y}}async updateTokens(j,G,Q){let V=this.rows.get(j);if(!V||V.revision!==G)return null;let W=P(Q);W.providerAccountId??=V.providerAccountId;let Y={...V,...W,needsReconnect:!1,revision:G+1,updatedAt:new Date};return this.rows.set(j,Y),{...Y}}async markNeedsReconnect(j){let G=this.rows.get(j);if(G)this.rows.set(j,{...G,needsReconnect:!0,updatedAt:new Date})}async delete(j){this.rows.delete(j)}}class L{encrypter;table;sql;dialect;constructor(j,G,Q={}){this.encrypter=G;let V=Q.table??"gemi_oauth_connections";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(V))throw Error(`The connections table name "${V}" is not a plain identifier.`);this.table=V,this.sql=j.sql,this.dialect=j.dialect}async createTable(){for(let j of q(this.dialect,this.table))await this.sql.unsafe(j)}async find(j,G){let Q=this.sql,V=await Q`
2
+ import{rj as O}from"./chunk-fb77hwk0.js";import{$j as S}from"./chunk-6t1t7h05.js";import{Gk as E}from"./chunk-m950vw4c.js";import{el as U}from"./chunk-8b9ks729.js";class F{rows=new Map;async find(j,G){for(let Q of this.rows.values())if(Q.userId===j&&Q.provider===G)return{...Q};return null}async list(j){return[...this.rows.values()].filter((G)=>G.userId===j).map((G)=>({...G}))}async save(j,G,Q){let V=await this.find(j,G),W=new Date,Y={id:V?.id??Bun.randomUUIDv7(),userId:j,provider:G,...P(Q),needsReconnect:!1,revision:(V?.revision??0)+1,createdAt:V?.createdAt??W,updatedAt:W};return this.rows.set(Y.id,Y),{...Y}}async updateTokens(j,G,Q){let V=this.rows.get(j);if(!V||V.revision!==G)return null;let W=P(Q);W.providerAccountId??=V.providerAccountId;let Y={...V,...W,needsReconnect:!1,revision:G+1,updatedAt:new Date};return this.rows.set(j,Y),{...Y}}async markNeedsReconnect(j){let G=this.rows.get(j);if(G)this.rows.set(j,{...G,needsReconnect:!0,updatedAt:new Date})}async delete(j){this.rows.delete(j)}}class L{encrypter;table;sql;dialect;constructor(j,G,Q={}){this.encrypter=G;let V=Q.table??"gemi_oauth_connections";if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(V))throw Error(`The connections table name "${V}" is not a plain identifier.`);this.table=V,this.sql=j.sql,this.dialect=j.dialect}async createTable(){for(let j of q(this.dialect,this.table))await this.sql.unsafe(j)}async find(j,G){let Q=this.sql,V=await Q`
3
3
  SELECT * FROM ${this.name(Q)} WHERE user_id = ${j} AND provider = ${G}
4
4
  `;return V[0]?this.decode(V[0]):null}async list(j){let G=this.sql;return(await G`
5
5
  SELECT * FROM ${this.name(G)} WHERE user_id = ${j} ORDER BY provider
@@ -66,6 +66,6 @@ import{qj as O}from"./chunk-b8qfypzq.js";import{_j as S}from"./chunk-6tbs7yc1.js
66
66
  "created_at" BIGINT NOT NULL,
67
67
  "updated_at" BIGINT NOT NULL${V}
68
68
  )`,`CREATE UNIQUE INDEX IF NOT EXISTS "${G}_user_id_provider_key" ON "${G}"("user_id", "provider")`]}class X extends Error{code;status;providerError;constructor(j,G,Q={}){super(G,Q.cause!==void 0?{cause:Q.cause}:void 0);this.code=j;this.name="OAuthConnectionError",this.status=Q.status,this.providerError=Q.providerError}}class K extends X{provider;constructor(j,G={}){super("reconnect_required",`The ${j} connection needs to be reconnected: its tokens were refused and could not be refreshed.`,G);this.provider=j;this.name="OAuthReconnectRequiredError"}}class C{config;constructor(j){for(let G of["authorizeUrl","tokenUrl"])_(G,j[G]);for(let G of["refreshUrl","revokeUrl"])if(j[G]!==void 0)_(G,j[G]);if(j.apiBaseUrl===void 0||j.apiBaseUrl===null||j.apiBaseUrl==="")throw Error(`OAuthConnectionProvider: apiBaseUrl is required. Set it to the provider's API origin (e.g. apiBaseUrl: "https://api.figma.com"); connection.fetch only sends the token there.`);_("apiBaseUrl",j.apiBaseUrl),this.config={scopeSeparator:" ",clientAuth:"body",pkce:!0,authorizationParams:{},refreshLeewaySeconds:60,multiple:!1,tokenPlacement:"header",...j,refreshGrantType:j.refreshGrantType??"refresh_token"}}async isTokenRejected(j){let G=this.config.isTokenRejected;if(!G)return j.status===401;return await G(j)}authorizationUrl(j){let G=new URL(this.config.authorizeUrl),Q={...this.config.authorizationParams,response_type:"code",client_id:this.config.clientId,redirect_uri:j.redirectUri,scope:this.config.scopes.join(this.config.scopeSeparator),state:j.state};if(this.config.pkce)Q.code_challenge=j.codeChallenge,Q.code_challenge_method="S256";for(let[V,W]of Object.entries(Q))G.searchParams.set(V,W);return G.toString()}exchangeCode(j){let G=new URLSearchParams({grant_type:"authorization_code",code:j.code,redirect_uri:j.redirectUri});if(this.config.pkce)G.set("code_verifier",j.codeVerifier);return this.tokenRequest(this.config.tokenUrl,G,{scopes:this.config.scopes,refreshToken:null,phase:"exchange"})}refresh(j,G){let Q=new URLSearchParams,V=this.config.refreshGrantType;if(V!==!1&&V!=="")Q.set("grant_type",V);return Q.set("refresh_token",j),this.tokenRequest(this.config.refreshUrl??this.config.tokenUrl,Q,{scopes:G,refreshToken:j,phase:"refresh"})}async revoke(j,G){if(!this.config.revokeUrl)throw new X("revoke_unsupported","This provider has no revokeUrl configured. Use disconnect() to forget the tokens locally.");let Q=new URLSearchParams({token:j,token_type_hint:G}),V;try{V=await fetch(this.config.revokeUrl,this.post(Q))}catch(W){throw new X("revoke_failed","The revocation request failed.",{cause:W})}if(!V.ok)throw new X("revoke_failed",`The provider refused the revocation (HTTP ${V.status}).`,{status:V.status})}post(j){let G={"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"};if(this.config.clientAuth==="basic"){let Q=`${encodeURIComponent(this.config.clientId)}:${encodeURIComponent(this.config.clientSecret)}`;G.Authorization=`Basic ${Buffer.from(Q).toString("base64")}`}else j.set("client_id",this.config.clientId),j.set("client_secret",this.config.clientSecret);return{method:"POST",headers:G,body:j.toString(),redirect:"error"}}async tokenRequest(j,G,Q){let V=Q.phase==="exchange"?"exchange_failed":"refresh_failed",W;try{W=await fetch(j,this.post(G))}catch($){throw new X(V,"The token request failed.",{cause:$})}let Y=await W.json().catch(()=>({}));if(!W.ok||typeof Y.access_token!=="string"||Y.access_token===""){let $=typeof Y.error==="string"&&/^[a-z0-9_]{1,64}$/.test(Y.error)?Y.error:void 0;throw new X(V,`The token endpoint refused the ${Q.phase==="exchange"?"code":"refresh token"} (HTTP ${W.status}${$?`, ${$}`:""}).`,{status:W.status,providerError:$})}let Z=Number(Y.expires_in),B=typeof Y.scope==="string"?Y.scope:void 0,J=Y.user_id_string??Y.user_id??Y.account_id;return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token!==""?Y.refresh_token:Q.refreshToken,tokenType:typeof Y.token_type==="string"?Y.token_type:null,expiresAt:Number.isFinite(Z)&&Z>0?new Date(Date.now()+Z*1000):null,scopes:B!==void 0?B.split(/[\s,]+/).filter(Boolean):Q.scopes,providerAccountId:typeof J==="string"||typeof J==="number"?String(J):null}}}function _(j,G){let Q;try{Q=new URL(String(G))}catch{Q=void 0}if(!Q||Q.protocol!=="https:"&&!(Q.protocol==="http:"&&M(Q.hostname)))throw Error(`OAuthConnectionProvider: ${j} must be an https URL (http only for localhost), got ${JSON.stringify(G)}.`)}function M(j){return j==="localhost"||j==="127.0.0.1"||j==="[::1]"||j==="::1"}class A{options;static token="auth.connections";resolvedStore;refreshing=new Map;fakes;fakeStore;fakeRequests=[];constructor(j){this.options=j;for(let[G,Q]of Object.entries(j.providers)){if(!Q.config.multiple)continue;let V=Object.keys(j.providers).find((W)=>W.startsWith(`${G}${D}`));if(G.includes(D)||V)throw Error(`auth.connections: "${V??G}" cannot be used alongside the multiple-account provider "${G}" ("${D}" separates a provider from an account id in the store).`)}}get providers(){return this.options.providers}get store(){if(this.fakeStore)return this.fakeStore;if(!this.resolvedStore){let j=this.options.store;this.resolvedStore=typeof j==="function"?j():j??new L(U(E).connection(),()=>O())}return this.resolvedStore}provider(j){let G=this.options.providers[j];if(!G){let Q=Object.keys(this.options.providers);throw new X("unknown_provider",`No OAuth connection provider "${j}" in auth.connections`+(Q.length>0?` (configured: ${Q.join(", ")}).`:" (none are configured)."))}return G}async for(j,G,Q){let V=this.provider(G),W=N(j);if(!V.config.multiple){let Z=await this.store.find(W,G);if(!Z||Q!==void 0&&Z.providerAccountId!==Q)return null;return new z(this,Z)}if(Q!==void 0){let Z=await this.store.find(W,T(G,Q))??await this.store.find(W,G);return Z&&Z.providerAccountId===Q?new z(this,Z):null}let[Y]=(await this.list(j,G)).sort((Z,B)=>B.connectedAt.getTime()-Z.connectedAt.getTime());return Y??null}async list(j,G){if(G!==void 0)this.provider(G);return(await this.store.list(N(j))).filter((V)=>{let W=this.providerName(V.provider);return W!==null&&(G===void 0||W===G)}).map((V)=>new z(this,V))}async save(j,G,Q){let V=this.provider(G),W=N(j),{profile:Y,...Z}=Q,B={refreshToken:null,tokenType:null,expiresAt:null,providerAccountId:null,scopes:V.config.scopes,...Z};if(!V.config.multiple)return new z(this,await this.store.save(W,G,B));let J=B.providerAccountId;if(typeof J!=="string"||J==="")throw new X("missing_account_id",`"${G}" allows several accounts per user, so a connection needs the provider's account id (providerAccountId), and the token exchange did not supply one.`);let $=await this.store.save(W,T(G,J),B),H=await this.store.find(W,G);if(H&&H.providerAccountId===J)await this.store.delete(H.id);return new z(this,$)}providerName(j){let G=this.options.providers;if(Object.hasOwn(G,j))return j;let Q=j.indexOf(D);if(Q<=0)return null;let V=j.slice(0,Q);return Object.hasOwn(G,V)&&G[V].config.multiple?V:null}fake(j={}){return this.fakes=new Map(Object.entries(j)),this.fakeStore=new F,this.fakeRequests.length=0,this}restore(){this.fakes=void 0,this.fakeStore=void 0,this.fakeRequests.length=0}get faked(){return this.fakes!==void 0}async send(j,G){if(!this.fakes)return fetch(G);this.fakeRequests.push(G.clone());let Q=this.fakes.get(j);if(!Q)throw Error(`Connections.fake() has no handler for "${j}". Pass one: Connections.fake({ ${j}: (req) => ... }).`);return Q(G)}refresh(j,G="requested"){let Q=this.refreshing.get(j.id);if(Q)return Q;let V=this.withLock(j.id,()=>this.refreshOnce(j,G)).finally(()=>this.refreshing.delete(j.id));return this.refreshing.set(j.id,V),V}async refreshOnce(j,G){let Q=this.providerName(j.provider)??j.provider,V=await this.store.find(j.userId,j.provider);if(!V||V.id!==j.id)throw new K(Q);if(V.revision!==j.revision&&!V.needsReconnect)return V;if(V.needsReconnect)throw new K(Q);let W=this.provider(Q);if(this.faked)return V;let Y=W.config.refreshStrategy;if(!Y&&V.refreshToken===null)throw await this.store.markNeedsReconnect(V.id),new K(Q);let Z;try{Z=Y?await Y({accessToken:V.accessToken,refreshToken:V.refreshToken,scopes:[...V.scopes],expiresAt:V.expiresAt,issuedAt:V.updatedAt,reason:G,providerAccountId:V.providerAccountId}):await W.refresh(V.refreshToken,V.scopes)}catch($){if($ instanceof X&&$.status!==void 0&&$.status>=400&&$.status<500&&$.providerError!=="invalid_client")throw await this.store.markNeedsReconnect(V.id),new K(Q,{cause:$,status:$.status,providerError:$.providerError});throw $}if(Z===null)return V;let B=await this.store.updateTokens(V.id,V.revision,Z);if(B)return B;let J=await this.store.find(V.userId,V.provider);if(!J)throw new K(Q);return J}async withLock(j,G){let Q=U();if(this.faked||!Q.bound(S))return G();let V=await Q.make(S).run(`gemi:oauth-connection:${j}`,{ttl:30000,wait:20000},()=>G());if(!V.acquired)throw new X("refresh_failed","Timed out waiting for another refresh of this connection to finish.");return V.value}}class z{manager;record;constructor(j,G){this.manager=j;this.record=G}get provider(){return this.manager.providerName(this.record.provider)??this.record.provider}get userId(){return this.record.userId}get providerAccountId(){return this.record.providerAccountId}get scopes(){return this.record.scopes}get expiresAt(){return this.record.expiresAt}get needsReconnect(){return this.record.needsReconnect}get connectedAt(){return this.record.createdAt}get status(){if(this.record.needsReconnect)return"needs_reconnect";let j=this.record.expiresAt?.getTime();if(this.record.refreshToken===null&&j!==void 0&&j<=Date.now())return"needs_reconnect";return"connected"}hasScopes(...j){return j.every((G)=>this.record.scopes.includes(G))}async fetch(j,G={}){let Q=this.resolveUrl(j),V=await this.current(),W=await this.send(Q,G,V.accessToken);if(!W.authorized||G.body instanceof ReadableStream)return W.response;if(!await this.manager.provider(this.provider).isTokenRejected(W.response))return W.response;await W.response.body?.cancel().catch(()=>{});let Z=await this.refreshFrom(V,"rejected");return(await this.send(Q,G,Z.accessToken)).response}async accessToken(){return(await this.current()).accessToken}async refresh(){await this.refreshFrom(this.record)}async revoke(){if(!this.manager.faked){let j=this.manager.provider(this.provider);if(this.record.refreshToken!==null)await j.revoke(this.record.refreshToken,"refresh_token");else await j.revoke(this.record.accessToken,"access_token")}await this.manager.store.delete(this.record.id)}async disconnect(){await this.manager.store.delete(this.record.id)}toJSON(){return{provider:this.provider,providerAccountId:this.providerAccountId,scopes:[...this.scopes],expiresAt:this.expiresAt,needsReconnect:this.needsReconnect,status:this.status,connectedAt:this.connectedAt}}[Symbol.for("nodejs.util.inspect.custom")](){return{ProviderConnection:this.toJSON()}}async current(){if(this.record.needsReconnect)throw new K(this.provider);let j=this.manager.provider(this.provider).config.refreshLeewaySeconds*1000,G=this.record.expiresAt?.getTime();if(G!==void 0&&G-Date.now()<=j)return this.refreshFrom(this.record,"expiring");return this.record}async refreshFrom(j,G="requested"){try{this.record=await this.manager.refresh(j,G)}catch(Q){if(Q instanceof K)this.record={...this.record,needsReconnect:!0};throw Q}return this.record}resolveUrl(j){let G=this.manager.provider(this.provider).config.apiBaseUrl,Q;try{Q=new URL(String(j),G)}catch{throw new X("forbidden_url",`connection.fetch was given ${JSON.stringify(String(j))}, which is not a URL.`)}if(Q.origin!==new URL(G).origin)throw new X("forbidden_url",`connection.fetch only sends the ${this.provider} token to ${new URL(G).origin} (apiBaseUrl), not to ${Q.origin}.`);if(Q.protocol!=="https:"&&!(Q.protocol==="http:"&&M(Q.hostname)))throw new X("forbidden_url",`connection.fetch only sends a token over https, not to ${Q.origin}.`);return Q}async send(j,G,Q){let V=j,W=(G.method??"GET").toUpperCase(),Y=G.body,Z=!0;if(G.redirect==="manual"||G.redirect==="error")return{response:await this.manager.send(this.provider,this.request(V,G,W,Y,Q)),authorized:Z};for(let B=0;;B++){let J=this.request(V,{...G,redirect:"manual"},W,Y,Z?Q:null),$=await this.manager.send(this.provider,J),H=$.headers.get("location");if(!b.has($.status)||H===null||B>=5)return{response:$,authorized:Z};await $.body?.cancel().catch(()=>{});let x=new URL(H,V);if(x.origin!==V.origin)Z=!1;if($.status===303||($.status===301||$.status===302)&&W==="POST")W="GET",Y=void 0;V=x}}request(j,G,Q,V,W){let Y=new Headers(G.headers),Z=new URL(j),B=this.manager.provider(this.provider).config.tokenPlacement;if(W===null)Y.delete("authorization");else if(B==="query")Z.searchParams.set("access_token",W);else Y.set("Authorization",`Bearer ${W}`);return new Request(Z,{...G,method:Q,body:V,headers:Y})}}var b=new Set([301,302,303,307,308]),D=":";function T(j,G){return`${j}${D}${G}`}function N(j){let G=typeof j==="object"&&j!==null?j.id:j;if(G===void 0||G===null||G==="")throw TypeError("An OAuth connection belongs to a user: pass the user (or its id).");return String(G)}
69
- export{F as $i,L as aj,X as bj,K as cj,C as dj,A as ej,z as fj};
69
+ export{F as aj,L as bj,X as cj,K as dj,C as ej,A as fj,z as gj};
70
70
 
71
- //# debugId=8A1B9A33ED89BE7E64756E2164756E21
71
+ //# debugId=647CF04C641B38CC64756E2164756E21
@@ -8,6 +8,6 @@
8
8
  "import { DatabaseManager } from \"../../database/DatabaseManager\";\nimport { app } from \"../../foundation/app\";\nimport { currentEncrypter } from \"../../orm/encryption\";\nimport { LockManager } from \"../../services/lock/LockManager\";\nimport {\n type ConnectionRecord,\n type ConnectionStore,\n DatabaseConnectionStore,\n MemoryConnectionStore,\n} from \"./ConnectionStore\";\nimport { OAuthConnectionError, OAuthReconnectRequiredError } from \"./errors\";\nimport {\n type ConnectionRefreshReason,\n type OAuthConnectionProvider,\n type OAuthTokenSet,\n isLoopback,\n} from \"./OAuthConnectionProvider\";\n\n/** A user, as far as a connection is concerned: anything with an `id`. */\nexport type ConnectionOwner = { id: string | number } | string | number;\n\n/** See `ProviderConnection.status`. */\nexport type ConnectionStatus = \"connected\" | \"needs_reconnect\";\n\n/** What `Connections.fake` answers an API request with. */\nexport type FakeConnectionHandler = (request: Request) => Response | Promise<Response>;\n\nexport interface ConnectionManagerOptions {\n providers: Record<string, OAuthConnectionProvider>;\n /** Default: a `DatabaseConnectionStore` on the default database connection. */\n store?: ConnectionStore | (() => ConnectionStore);\n}\n\n/**\n * The OAuth connections a user has made, and the one place their tokens are\n * read, refreshed and spent. Reached through the `Connections` facade.\n */\nexport class ConnectionManager {\n static token = \"auth.connections\";\n\n private resolvedStore: ConnectionStore | undefined;\n private readonly refreshing = new Map<string, Promise<ConnectionRecord>>();\n private fakes: Map<string, FakeConnectionHandler> | undefined;\n private fakeStore: MemoryConnectionStore | undefined;\n readonly fakeRequests: Request[] = [];\n\n constructor(private readonly options: ConnectionManagerOptions) {\n for (const [name, provider] of Object.entries(options.providers)) {\n if (!provider.config.multiple) continue;\n // A multiple-account provider's connections are stored under\n // `<name>:<account id>`, which must not be read as another provider's.\n const clash = Object.keys(options.providers).find((other) => other.startsWith(`${name}${ACCOUNT_SEPARATOR}`));\n if (name.includes(ACCOUNT_SEPARATOR) || clash) {\n throw new Error(\n `auth.connections: \"${clash ?? name}\" cannot be used alongside the multiple-account provider \"${name}\" ` +\n `(\"${ACCOUNT_SEPARATOR}\" separates a provider from an account id in the store).`,\n );\n }\n }\n }\n\n get providers(): Record<string, OAuthConnectionProvider> {\n return this.options.providers;\n }\n\n /** The store connections are kept in. */\n get store(): ConnectionStore {\n if (this.fakeStore) return this.fakeStore;\n if (!this.resolvedStore) {\n const configured = this.options.store;\n this.resolvedStore =\n typeof configured === \"function\"\n ? configured()\n : (configured ??\n new DatabaseConnectionStore(app(DatabaseManager).connection(), () => currentEncrypter()));\n }\n return this.resolvedStore;\n }\n\n provider(name: string): OAuthConnectionProvider {\n const provider = this.options.providers[name];\n if (!provider) {\n const known = Object.keys(this.options.providers);\n throw new OAuthConnectionError(\n \"unknown_provider\",\n `No OAuth connection provider \"${name}\" in auth.connections` +\n (known.length > 0 ? ` (configured: ${known.join(\", \")}).` : \" (none are configured).\"),\n );\n }\n return provider;\n }\n\n /**\n * The user's connection to `provider`, or `null` when they have not\n * connected it. With `accountId`, only the connection to that account\n * (`providerAccountId`). For a provider with `multiple: true` and no\n * `accountId`, the account added most recently; use `list(user,\n * provider)` for all of them.\n */\n async for(user: ConnectionOwner, provider: string, accountId?: string): Promise<ProviderConnection | null> {\n const config = this.provider(provider);\n const userId = ownerId(user);\n if (!config.config.multiple) {\n const record = await this.store.find(userId, provider);\n if (!record || (accountId !== undefined && record.providerAccountId !== accountId)) return null;\n return new ProviderConnection(this, record);\n }\n if (accountId !== undefined) {\n const record =\n (await this.store.find(userId, storeKey(provider, accountId))) ??\n // Stored before the provider was switched to `multiple`.\n (await this.store.find(userId, provider));\n return record && record.providerAccountId === accountId ? new ProviderConnection(this, record) : null;\n }\n const [latest] = (await this.list(user, provider)).sort(\n (a, b) => b.connectedAt.getTime() - a.connectedAt.getTime(),\n );\n return latest ?? null;\n }\n\n /** Every connection the user has, or only those to `provider`. */\n async list(user: ConnectionOwner, provider?: string): Promise<ProviderConnection[]> {\n if (provider !== undefined) this.provider(provider);\n const records = await this.store.list(ownerId(user));\n return records\n .filter((record) => {\n const name = this.providerName(record.provider);\n return name !== null && (provider === undefined || name === provider);\n })\n .map((record) => new ProviderConnection(this, record));\n }\n\n /**\n * Stores tokens for the user, replacing any earlier connection to the same\n * provider — or, for a provider with `multiple: true`, to the same account\n * (`providerAccountId`, required there). The connect callback calls this;\n * call it yourself for tokens obtained some other way.\n */\n async save(\n user: ConnectionOwner,\n provider: string,\n tokens: Partial<OAuthTokenSet> & { accessToken: string },\n ): Promise<ProviderConnection> {\n const config = this.provider(provider);\n const userId = ownerId(user);\n const { profile: _profile, ...grant } = tokens;\n const set: OAuthTokenSet = {\n refreshToken: null,\n tokenType: null,\n expiresAt: null,\n providerAccountId: null,\n scopes: config.config.scopes,\n ...grant,\n };\n if (!config.config.multiple) {\n return new ProviderConnection(this, await this.store.save(userId, provider, set));\n }\n\n const accountId = set.providerAccountId;\n if (typeof accountId !== \"string\" || accountId === \"\") {\n throw new OAuthConnectionError(\n \"missing_account_id\",\n `\"${provider}\" allows several accounts per user, so a connection needs the provider's account id ` +\n \"(providerAccountId), and the token exchange did not supply one.\",\n );\n }\n const record = await this.store.save(userId, storeKey(provider, accountId), set);\n // The same account, stored before the provider was switched to `multiple`.\n const legacy = await this.store.find(userId, provider);\n if (legacy && legacy.providerAccountId === accountId) await this.store.delete(legacy.id);\n return new ProviderConnection(this, record);\n }\n\n /**\n * The configured provider a stored connection belongs to: the store key\n * itself, or `<name>` of a multiple-account provider's `<name>:<account id>`.\n * `null` for a provider no longer configured.\n *\n * @internal\n */\n providerName(key: string): string | null {\n const providers = this.options.providers;\n if (Object.hasOwn(providers, key)) return key;\n const at = key.indexOf(ACCOUNT_SEPARATOR);\n if (at <= 0) return null;\n const name = key.slice(0, at);\n return Object.hasOwn(providers, name) && providers[name].config.multiple ? name : null;\n }\n\n // --- testing ---------------------------------------------------------------\n\n /**\n * Fakes every provider's API: connections live in memory, `fetch` answers\n * through `handlers[provider]` (recorded in `fakeRequests`), and nothing\n * reaches a token or revocation endpoint. Returns `this` so a test can\n * `save` a connection to start from.\n */\n fake(handlers: Record<string, FakeConnectionHandler> = {}): this {\n this.fakes = new Map(Object.entries(handlers));\n this.fakeStore = new MemoryConnectionStore();\n this.fakeRequests.length = 0;\n return this;\n }\n\n /** Undoes `fake`. */\n restore(): void {\n this.fakes = undefined;\n this.fakeStore = undefined;\n this.fakeRequests.length = 0;\n }\n\n get faked(): boolean {\n return this.fakes !== undefined;\n }\n\n // --- internals, for ProviderConnection ---------------------------------------\n\n /** @internal */\n async send(provider: string, request: Request): Promise<Response> {\n if (!this.fakes) return fetch(request);\n this.fakeRequests.push(request.clone());\n const handler = this.fakes.get(provider);\n if (!handler) {\n throw new Error(`Connections.fake() has no handler for \"${provider}\". Pass one: Connections.fake({ ${provider}: (req) => ... }).`);\n }\n return handler(request);\n }\n\n /**\n * A record whose access token is not the one at `staleRevision`: refreshed\n * by this call, or by whoever refreshed it first. Serialised per connection\n * in this process (concurrent callers share one refresh) and, through the\n * app's lock store, across processes — a rotating refresh token must be\n * spent exactly once.\n *\n * @internal\n */\n refresh(record: ConnectionRecord, reason: ConnectionRefreshReason = \"requested\"): Promise<ConnectionRecord> {\n const inFlight = this.refreshing.get(record.id);\n if (inFlight) return inFlight;\n const task = this.withLock(record.id, () => this.refreshOnce(record, reason)).finally(() =>\n this.refreshing.delete(record.id),\n );\n this.refreshing.set(record.id, task);\n return task;\n }\n\n private async refreshOnce(seen: ConnectionRecord, reason: ConnectionRefreshReason): Promise<ConnectionRecord> {\n // Re-read under the lock: another process may have refreshed already.\n const name = this.providerName(seen.provider) ?? seen.provider;\n const current = await this.store.find(seen.userId, seen.provider);\n if (!current || current.id !== seen.id) {\n throw new OAuthReconnectRequiredError(name);\n }\n if (current.revision !== seen.revision && !current.needsReconnect) return current;\n if (current.needsReconnect) throw new OAuthReconnectRequiredError(name);\n\n const provider = this.provider(name);\n if (this.faked) return current;\n const strategy = provider.config.refreshStrategy;\n if (!strategy && current.refreshToken === null) {\n await this.store.markNeedsReconnect(current.id);\n throw new OAuthReconnectRequiredError(name);\n }\n\n let tokens: OAuthTokenSet | null;\n try {\n tokens = strategy\n ? await strategy({\n accessToken: current.accessToken,\n refreshToken: current.refreshToken,\n scopes: [...current.scopes],\n expiresAt: current.expiresAt,\n issuedAt: current.updatedAt,\n reason,\n providerAccountId: current.providerAccountId,\n })\n : await provider.refresh(current.refreshToken as string, current.scopes);\n } catch (error) {\n // A refusal from the token endpoint is final: the grant is gone. A\n // network error or a 5xx is not, and leaves the connection alone. Nor\n // is `invalid_client`: the app's own credentials (or `clientAuth`) are\n // wrong, reconnecting would fail the same way, and marking would make\n // every user reconnect once the config is fixed.\n if (\n error instanceof OAuthConnectionError &&\n error.status !== undefined &&\n error.status >= 400 &&\n error.status < 500 &&\n error.providerError !== \"invalid_client\"\n ) {\n await this.store.markNeedsReconnect(current.id);\n throw new OAuthReconnectRequiredError(name, {\n cause: error,\n status: error.status,\n providerError: error.providerError,\n });\n }\n throw error;\n }\n // The strategy has nothing to refresh yet: keep the current token.\n if (tokens === null) return current;\n\n const updated = await this.store.updateTokens(current.id, current.revision, tokens);\n if (updated) return updated;\n // Someone else wrote first (only possible without a shared lock store).\n const winner = await this.store.find(current.userId, current.provider);\n if (!winner) throw new OAuthReconnectRequiredError(name);\n return winner;\n }\n\n private async withLock<T>(id: string, fn: () => Promise<T>): Promise<T> {\n const application = app();\n if (this.faked || !application.bound(LockManager)) return fn();\n const result = await application\n .make(LockManager)\n .run(`gemi:oauth-connection:${id}`, { ttl: 30_000, wait: 20_000 }, () => fn());\n if (!result.acquired) {\n throw new OAuthConnectionError(\n \"refresh_failed\",\n \"Timed out waiting for another refresh of this connection to finish.\",\n );\n }\n return result.value as T;\n }\n}\n\n/**\n * One user's connection to one provider. Never exposes a token as a property,\n * and serialises (`toJSON`, `console.log`) without them.\n */\nexport class ProviderConnection {\n constructor(\n private readonly manager: ConnectionManager,\n private record: ConnectionRecord,\n ) {}\n\n /** The provider's name under `auth.connections`. */\n get provider(): string {\n return this.manager.providerName(this.record.provider) ?? this.record.provider;\n }\n get userId(): string {\n return this.record.userId;\n }\n get providerAccountId(): string | null {\n return this.record.providerAccountId;\n }\n /** The scopes the provider granted. */\n get scopes(): readonly string[] {\n return this.record.scopes;\n }\n get expiresAt(): Date | null {\n return this.record.expiresAt;\n }\n /** A refresh was refused: the user has to connect again. */\n get needsReconnect(): boolean {\n return this.record.needsReconnect;\n }\n get connectedAt(): Date {\n return this.record.createdAt;\n }\n\n /**\n * What to show the user: `\"needs_reconnect\"` when a refresh was refused, or\n * when the access token has expired and there is no refresh token to renew\n * it; `\"connected\"` otherwise. Read without calling the provider.\n */\n get status(): ConnectionStatus {\n if (this.record.needsReconnect) return \"needs_reconnect\";\n const expiresAt = this.record.expiresAt?.getTime();\n if (this.record.refreshToken === null && expiresAt !== undefined && expiresAt <= Date.now()) {\n return \"needs_reconnect\";\n }\n return \"connected\";\n }\n\n /** Whether every one of `scopes` was granted. */\n hasScopes(...scopes: string[]): boolean {\n return scopes.every((scope) => this.record.scopes.includes(scope));\n }\n\n /**\n * `fetch`, as the user: adds `Authorization: Bearer <token>`, refreshes the\n * token first when it is about to expire, and after a 401 refreshes and\n * retries once. A refresh the provider refuses marks the connection and\n * throws `OAuthReconnectRequiredError`.\n *\n * A path is resolved against the provider's `apiBaseUrl`, and a URL on any\n * other origin is refused (`OAuthConnectionError`,\n * `forbidden_url`), so the token only ever goes to the provider. Redirects\n * are followed by hand: the token is dropped on one that leaves the origin.\n * A streamed request body cannot be sent twice, so a 401 for one is\n * returned rather than retried.\n */\n async fetch(input: string | URL, init: RequestInit = {}): Promise<Response> {\n const url = this.resolveUrl(input);\n const record = await this.current();\n const first = await this.send(url, init, record.accessToken);\n // Retry only a refusal of the token itself, not one from where a redirect\n // led after the token was dropped.\n if (!first.authorized || init.body instanceof ReadableStream) return first.response;\n const provider = this.manager.provider(this.provider);\n if (!(await provider.isTokenRejected(first.response))) return first.response;\n\n await first.response.body?.cancel().catch(() => {});\n const refreshed = await this.refreshFrom(record, \"rejected\");\n return (await this.send(url, init, refreshed.accessToken)).response;\n }\n\n /**\n * A valid access token, refreshed first if it is about to expire — for an\n * SDK that wants the token itself. Prefer `fetch`, which also retries a 401.\n */\n async accessToken(): Promise<string> {\n return (await this.current()).accessToken;\n }\n\n /** Refreshes now, whatever the expiry says. */\n async refresh(): Promise<void> {\n await this.refreshFrom(this.record);\n }\n\n /**\n * Revokes the grant at the provider (the refresh token when there is one,\n * which ends the whole grant, else the access token) and deletes the\n * connection. If the provider refuses, nothing is deleted and\n * `OAuthConnectionError` (`revoke_failed`) is thrown — call `disconnect()`\n * to forget the tokens anyway. A provider without a `revokeUrl` throws\n * `revoke_unsupported`; use `disconnect()`.\n */\n async revoke(): Promise<void> {\n if (!this.manager.faked) {\n const provider = this.manager.provider(this.provider);\n if (this.record.refreshToken !== null) {\n await provider.revoke(this.record.refreshToken, \"refresh_token\");\n } else {\n await provider.revoke(this.record.accessToken, \"access_token\");\n }\n }\n await this.manager.store.delete(this.record.id);\n }\n\n /** Forgets the tokens locally without telling the provider. */\n async disconnect(): Promise<void> {\n await this.manager.store.delete(this.record.id);\n }\n\n toJSON() {\n return {\n provider: this.provider,\n providerAccountId: this.providerAccountId,\n scopes: [...this.scopes],\n expiresAt: this.expiresAt,\n needsReconnect: this.needsReconnect,\n status: this.status,\n connectedAt: this.connectedAt,\n };\n }\n\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n return { ProviderConnection: this.toJSON() };\n }\n\n private async current(): Promise<ConnectionRecord> {\n if (this.record.needsReconnect) throw new OAuthReconnectRequiredError(this.provider);\n const leeway = this.manager.provider(this.provider).config.refreshLeewaySeconds * 1000;\n const expiresAt = this.record.expiresAt?.getTime();\n if (expiresAt !== undefined && expiresAt - Date.now() <= leeway) {\n return this.refreshFrom(this.record, \"expiring\");\n }\n return this.record;\n }\n\n private async refreshFrom(\n record: ConnectionRecord,\n reason: ConnectionRefreshReason = \"requested\",\n ): Promise<ConnectionRecord> {\n try {\n this.record = await this.manager.refresh(record, reason);\n } catch (error) {\n if (error instanceof OAuthReconnectRequiredError) {\n this.record = { ...this.record, needsReconnect: true };\n }\n throw error;\n }\n return this.record;\n }\n\n private resolveUrl(input: string | URL): URL {\n const base = this.manager.provider(this.provider).config.apiBaseUrl;\n let url: URL;\n try {\n url = new URL(String(input), base);\n } catch {\n throw new OAuthConnectionError(\n \"forbidden_url\",\n `connection.fetch was given ${JSON.stringify(String(input))}, which is not a URL.`,\n );\n }\n if (url.origin !== new URL(base).origin) {\n throw new OAuthConnectionError(\n \"forbidden_url\",\n `connection.fetch only sends the ${this.provider} token to ${new URL(base).origin} ` +\n `(apiBaseUrl), not to ${url.origin}.`,\n );\n }\n if (url.protocol !== \"https:\" && !(url.protocol === \"http:\" && isLoopback(url.hostname))) {\n throw new OAuthConnectionError(\n \"forbidden_url\",\n `connection.fetch only sends a token over https, not to ${url.origin}.`,\n );\n }\n return url;\n }\n\n private async send(url: URL, init: RequestInit, token: string): Promise<{ response: Response; authorized: boolean }> {\n let target = url;\n let method = (init.method ?? \"GET\").toUpperCase();\n let body = init.body;\n let authorized = true;\n\n // Followed by hand (unless the caller asked for \"manual\" or \"error\"), so\n // the token never follows a redirect to another origin.\n if (init.redirect === \"manual\" || init.redirect === \"error\") {\n const response = await this.manager.send(this.provider, this.request(target, init, method, body, token));\n return { response, authorized };\n }\n\n for (let hop = 0; ; hop++) {\n const request = this.request(target, { ...init, redirect: \"manual\" }, method, body, authorized ? token : null);\n const response = await this.manager.send(this.provider, request);\n const location = response.headers.get(\"location\");\n if (!REDIRECTS.has(response.status) || location === null || hop >= 5) return { response, authorized };\n\n await response.body?.cancel().catch(() => {});\n const next = new URL(location, target);\n if (next.origin !== target.origin) authorized = false;\n if (response.status === 303 || ((response.status === 301 || response.status === 302) && method === \"POST\")) {\n method = \"GET\";\n body = undefined;\n }\n target = next;\n }\n }\n\n private request(url: URL, init: RequestInit, method: string, body: RequestInit[\"body\"], token: string | null): Request {\n const headers = new Headers(init.headers);\n const target = new URL(url);\n const placement = this.manager.provider(this.provider).config.tokenPlacement;\n if (token === null) {\n headers.delete(\"authorization\");\n } else if (placement === \"query\") {\n // Where the provider documents it (Instagram's Graph API). Only ever on\n // `apiBaseUrl`'s origin: a redirect elsewhere is sent with `token` null.\n target.searchParams.set(\"access_token\", token);\n } else {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return new Request(target, { ...init, method, body, headers });\n }\n}\n\nconst REDIRECTS = new Set([301, 302, 303, 307, 308]);\n\n/** Between a multiple-account provider's name and the account id, in the store's `provider` column. */\nconst ACCOUNT_SEPARATOR = \":\";\n\nfunction storeKey(provider: string, accountId: string): string {\n return `${provider}${ACCOUNT_SEPARATOR}${accountId}`;\n}\n\nfunction ownerId(user: ConnectionOwner): string {\n const id = typeof user === \"object\" && user !== null ? user.id : user;\n if (id === undefined || id === null || id === \"\") {\n throw new TypeError(\"An OAuth connection belongs to a user: pass the user (or its id).\");\n }\n return String(id);\n}\n"
9
9
  ],
10
10
  "mappings": "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",
11
- "debugId": "8A1B9A33ED89BE7E64756E2164756E21",
11
+ "debugId": "647CF04C641B38CC64756E2164756E21",
12
12
  "names": []
13
13
  }