@layerzerolabs/vm-tooling 0.2.7 → 0.2.8

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 (300) hide show
  1. package/dist/{JS23ECRN.js → 2DA6OMT5.js} +7 -7
  2. package/dist/{JS23ECRN.js.map → 2DA6OMT5.js.map} +1 -1
  3. package/dist/{YXZATGN6.cjs → 45KBPE2A.cjs} +6 -6
  4. package/dist/{YXZATGN6.cjs.map → 45KBPE2A.cjs.map} +1 -1
  5. package/dist/4BVLTYVP.cjs +22 -0
  6. package/dist/4BVLTYVP.cjs.map +1 -0
  7. package/dist/{N374V2RK.js → 4CXXALGT.js} +8 -8
  8. package/dist/{N374V2RK.js.map → 4CXXALGT.js.map} +1 -1
  9. package/dist/5AS6ABVZ.js +68 -0
  10. package/dist/5AS6ABVZ.js.map +1 -0
  11. package/dist/{E2R2CEJX.js → 6NTWQZTS.js} +2 -2
  12. package/dist/6NTWQZTS.js.map +1 -0
  13. package/dist/6TJOZVPD.cjs +19 -0
  14. package/dist/6TJOZVPD.cjs.map +1 -0
  15. package/dist/7GBZAO4Q.js +42 -0
  16. package/dist/7GBZAO4Q.js.map +1 -0
  17. package/dist/{5JOTEX2K.cjs → 7HA6JSWY.cjs} +3 -3
  18. package/dist/{5JOTEX2K.cjs.map → 7HA6JSWY.cjs.map} +1 -1
  19. package/dist/{427QOV7V.js → 7IXQN6OO.js} +3 -3
  20. package/dist/{427QOV7V.js.map → 7IXQN6OO.js.map} +1 -1
  21. package/dist/{JBC3ZG3F.cjs → AZEY5BMF.cjs} +3 -3
  22. package/dist/{JBC3ZG3F.cjs.map → AZEY5BMF.cjs.map} +1 -1
  23. package/dist/{DMYPP6MX.cjs → C7WLBLDI.cjs} +11 -11
  24. package/dist/C7WLBLDI.cjs.map +1 -0
  25. package/dist/{QBO6KNUH.cjs → CCKCKIBV.cjs} +4 -4
  26. package/dist/{QBO6KNUH.cjs.map → CCKCKIBV.cjs.map} +1 -1
  27. package/dist/{scripts/generate-github-matrix.js → D2W5CUS2.js} +56 -66
  28. package/dist/D2W5CUS2.js.map +1 -0
  29. package/dist/{TJ323KPL.cjs → D5NZ2LLF.cjs} +8 -8
  30. package/dist/{TJ323KPL.cjs.map → D5NZ2LLF.cjs.map} +1 -1
  31. package/dist/{NMDQTUBH.js → FQHJEYC5.js} +10 -10
  32. package/dist/FQHJEYC5.js.map +1 -0
  33. package/dist/{BMCP2GAK.cjs → GB4RG4YH.cjs} +83 -40
  34. package/dist/GB4RG4YH.cjs.map +1 -0
  35. package/dist/H6ZWRX4I.cjs +71 -0
  36. package/dist/H6ZWRX4I.cjs.map +1 -0
  37. package/dist/HH7R2XAD.cjs +44 -0
  38. package/dist/HH7R2XAD.cjs.map +1 -0
  39. package/dist/IGVQSSKE.cjs +12 -0
  40. package/dist/IGVQSSKE.cjs.map +1 -0
  41. package/dist/IKBAJOTL.js +121 -0
  42. package/dist/IKBAJOTL.js.map +1 -0
  43. package/dist/{6TADYYIQ.js → JFX35GR2.js} +3 -3
  44. package/dist/{6TADYYIQ.js.map → JFX35GR2.js.map} +1 -1
  45. package/dist/{2HHN5KHW.cjs → JUMGXR5I.cjs} +67 -67
  46. package/dist/{2HHN5KHW.cjs.map → JUMGXR5I.cjs.map} +1 -1
  47. package/dist/{QBBWWA5T.js → LQNTMID2.js} +7 -7
  48. package/dist/{QBBWWA5T.js.map → LQNTMID2.js.map} +1 -1
  49. package/dist/{JFZ5X2XX.cjs → LS4PZK5Q.cjs} +2 -2
  50. package/dist/LS4PZK5Q.cjs.map +1 -0
  51. package/dist/{HSLJBWIL.js → MQNCJPBY.js} +8 -8
  52. package/dist/{HSLJBWIL.js.map → MQNCJPBY.js.map} +1 -1
  53. package/dist/{scripts/generate-github-matrix.cjs → NHZ56QQ6.cjs} +185 -195
  54. package/dist/NHZ56QQ6.cjs.map +1 -0
  55. package/dist/NIOWT3K2.cjs +118 -0
  56. package/dist/NIOWT3K2.cjs.map +1 -0
  57. package/dist/ODGKXOOP.js +12 -0
  58. package/dist/ODGKXOOP.js.map +1 -0
  59. package/dist/{YEYJXWXC.cjs → P2D6TBR2.cjs} +96 -96
  60. package/dist/{YEYJXWXC.cjs.map → P2D6TBR2.cjs.map} +1 -1
  61. package/dist/{BWHCSCR3.cjs → PAU3G3SR.cjs} +74 -74
  62. package/dist/{BWHCSCR3.cjs.map → PAU3G3SR.cjs.map} +1 -1
  63. package/dist/QE6MLWSK.cjs +129 -0
  64. package/dist/QE6MLWSK.cjs.map +1 -0
  65. package/dist/{ZQVRXHCJ.js → QSGRIGIB.js} +5 -5
  66. package/dist/{ZQVRXHCJ.js.map → QSGRIGIB.js.map} +1 -1
  67. package/dist/QTKMYYBJ.js +20 -0
  68. package/dist/QTKMYYBJ.js.map +1 -0
  69. package/dist/{4ZP6FU3S.js → R5CQAJPE.js} +6 -6
  70. package/dist/{4ZP6FU3S.js.map → R5CQAJPE.js.map} +1 -1
  71. package/dist/ROMZWOXP.js +21 -0
  72. package/dist/ROMZWOXP.js.map +1 -0
  73. package/dist/RT6XP6RO.js +10 -0
  74. package/dist/RT6XP6RO.js.map +1 -0
  75. package/dist/TC4EVJWZ.js +96 -0
  76. package/dist/TC4EVJWZ.js.map +1 -0
  77. package/dist/{DJEOCSEX.js → TKT5HVBW.js} +80 -38
  78. package/dist/TKT5HVBW.js.map +1 -0
  79. package/dist/TXQ7DL7M.cjs +48 -0
  80. package/dist/TXQ7DL7M.cjs.map +1 -0
  81. package/dist/{ZGCH6KFP.cjs → UPZFEE7V.cjs} +3 -3
  82. package/dist/{ZGCH6KFP.cjs.map → UPZFEE7V.cjs.map} +1 -1
  83. package/dist/UTB7ZC7B.js +37 -0
  84. package/dist/UTB7ZC7B.js.map +1 -0
  85. package/dist/{BBFGL4TE.js → V7WCPKFN.js} +3 -3
  86. package/dist/{BBFGL4TE.js.map → V7WCPKFN.js.map} +1 -1
  87. package/dist/WZTIMOLE.cjs +17 -0
  88. package/dist/WZTIMOLE.cjs.map +1 -0
  89. package/dist/{AZ72HVYT.js → XCUEIITH.js} +3 -3
  90. package/dist/{AZ72HVYT.js.map → XCUEIITH.js.map} +1 -1
  91. package/dist/YEY7RJOA.cjs +59 -0
  92. package/dist/YEY7RJOA.cjs.map +1 -0
  93. package/dist/YG4DCXY2.js +17 -0
  94. package/dist/YG4DCXY2.js.map +1 -0
  95. package/dist/{YOVSGKIQ.cjs → ZI7GOR2D.cjs} +5 -5
  96. package/dist/{YOVSGKIQ.cjs.map → ZI7GOR2D.cjs.map} +1 -1
  97. package/dist/cli.cjs +29 -0
  98. package/dist/cli.cjs.map +1 -0
  99. package/dist/cli.d.ts +7 -0
  100. package/dist/cli.d.ts.map +1 -0
  101. package/dist/cli.js +20 -0
  102. package/dist/cli.js.map +1 -0
  103. package/dist/config.cjs +25 -0
  104. package/dist/config.cjs.map +1 -0
  105. package/dist/config.d.ts +17 -0
  106. package/dist/config.d.ts.map +1 -0
  107. package/dist/config.js +4 -0
  108. package/dist/config.js.map +1 -0
  109. package/dist/context.cjs +8 -0
  110. package/dist/context.cjs.map +1 -0
  111. package/dist/context.d.ts +8 -0
  112. package/dist/context.d.ts.map +1 -0
  113. package/dist/context.js +6 -0
  114. package/dist/context.js.map +1 -0
  115. package/dist/core/index.cjs +9 -8
  116. package/dist/core/index.js +7 -6
  117. package/dist/core/lock.test.cjs +18364 -6
  118. package/dist/core/lock.test.cjs.map +1 -1
  119. package/dist/core/lock.test.js +18360 -2
  120. package/dist/core/lock.test.js.map +1 -1
  121. package/dist/core/tool-executor.cjs +8 -7
  122. package/dist/core/tool-executor.d.ts +2 -1
  123. package/dist/core/tool-executor.d.ts.map +1 -1
  124. package/dist/core/tool-executor.js +7 -6
  125. package/dist/core/version-resolver.cjs +4 -5
  126. package/dist/core/version-resolver.d.ts +2 -4
  127. package/dist/core/version-resolver.d.ts.map +1 -1
  128. package/dist/core/version-resolver.js +3 -4
  129. package/dist/display/formatters.cjs +4 -5
  130. package/dist/display/formatters.d.ts +2 -1
  131. package/dist/display/formatters.d.ts.map +1 -1
  132. package/dist/display/formatters.js +3 -4
  133. package/dist/display/index.cjs +7 -8
  134. package/dist/display/index.js +4 -5
  135. package/dist/display/version-display.cjs +6 -7
  136. package/dist/display/version-display.d.ts +3 -2
  137. package/dist/display/version-display.d.ts.map +1 -1
  138. package/dist/display/version-display.js +4 -5
  139. package/dist/github/index.cjs +28 -0
  140. package/dist/github/index.d.ts +3 -0
  141. package/dist/github/index.d.ts.map +1 -0
  142. package/dist/github/index.js +19 -0
  143. package/dist/github/matrix.cjs +27 -0
  144. package/dist/github/matrix.cjs.map +1 -0
  145. package/dist/github/matrix.d.ts +11 -0
  146. package/dist/github/matrix.d.ts.map +1 -0
  147. package/dist/github/matrix.js +18 -0
  148. package/dist/github/matrix.js.map +1 -0
  149. package/dist/index.cjs +47 -143
  150. package/dist/index.cjs.map +1 -1
  151. package/dist/index.d.ts +8 -1
  152. package/dist/index.d.ts.map +1 -1
  153. package/dist/index.js +28 -139
  154. package/dist/index.js.map +1 -1
  155. package/dist/test.cjs +16 -0
  156. package/dist/test.cjs.map +1 -0
  157. package/dist/test.d.ts +5 -0
  158. package/dist/test.d.ts.map +1 -0
  159. package/dist/test.js +7 -0
  160. package/dist/test.js.map +1 -0
  161. package/dist/types/index.cjs +1 -1
  162. package/dist/types/index.js +1 -1
  163. package/dist/types/tool.cjs +1 -1
  164. package/dist/types/tool.d.ts +2 -3
  165. package/dist/types/tool.d.ts.map +1 -1
  166. package/dist/types/tool.js +1 -1
  167. package/dist/utils/docker.cjs +7 -8
  168. package/dist/utils/docker.d.ts +2 -1
  169. package/dist/utils/docker.d.ts.map +1 -1
  170. package/dist/utils/docker.js +3 -4
  171. package/dist/utils/finder.cjs +6 -20
  172. package/dist/utils/finder.d.ts +5 -11
  173. package/dist/utils/finder.d.ts.map +1 -1
  174. package/dist/utils/finder.js +1 -3
  175. package/dist/utils/version.cjs +3 -13
  176. package/dist/utils/version.d.ts +0 -8
  177. package/dist/utils/version.d.ts.map +1 -1
  178. package/dist/utils/version.js +1 -3
  179. package/dist/utils.cjs +3 -8
  180. package/dist/utils.d.ts +2 -6
  181. package/dist/utils.d.ts.map +1 -1
  182. package/dist/utils.js +2 -3
  183. package/package.json +5 -15
  184. package/bin/lz-tool.js +0 -3
  185. package/dist/2MUIAEPQ.js +0 -19
  186. package/dist/2MUIAEPQ.js.map +0 -1
  187. package/dist/5CA2MJIS.js +0 -50
  188. package/dist/5CA2MJIS.js.map +0 -1
  189. package/dist/AUN5HLEO.js +0 -74
  190. package/dist/AUN5HLEO.js.map +0 -1
  191. package/dist/BMCP2GAK.cjs.map +0 -1
  192. package/dist/BWZQ2EK3.cjs +0 -174
  193. package/dist/BWZQ2EK3.cjs.map +0 -1
  194. package/dist/C3MB52UB.js +0 -57
  195. package/dist/C3MB52UB.js.map +0 -1
  196. package/dist/C7XQ4J6P.cjs +0 -77
  197. package/dist/C7XQ4J6P.cjs.map +0 -1
  198. package/dist/CFH3LMNQ.js +0 -172
  199. package/dist/CFH3LMNQ.js.map +0 -1
  200. package/dist/D4JJRRKM.cjs +0 -59
  201. package/dist/D4JJRRKM.cjs.map +0 -1
  202. package/dist/DJEOCSEX.js.map +0 -1
  203. package/dist/DMYPP6MX.cjs.map +0 -1
  204. package/dist/E2R2CEJX.js.map +0 -1
  205. package/dist/EPZMMJJM.cjs +0 -48
  206. package/dist/EPZMMJJM.cjs.map +0 -1
  207. package/dist/HOYNWNJF.cjs +0 -31
  208. package/dist/HOYNWNJF.cjs.map +0 -1
  209. package/dist/JFZ5X2XX.cjs.map +0 -1
  210. package/dist/JGQER3LN.js +0 -18362
  211. package/dist/JGQER3LN.js.map +0 -1
  212. package/dist/LHW2PX7Q.js +0 -26
  213. package/dist/LHW2PX7Q.js.map +0 -1
  214. package/dist/N75TYAV7.cjs +0 -17
  215. package/dist/N75TYAV7.cjs.map +0 -1
  216. package/dist/NE2GC3QQ.js +0 -29
  217. package/dist/NE2GC3QQ.js.map +0 -1
  218. package/dist/NJHTTAZO.js +0 -302
  219. package/dist/NJHTTAZO.js.map +0 -1
  220. package/dist/NMDQTUBH.js.map +0 -1
  221. package/dist/OIQNGJJN.cjs +0 -72
  222. package/dist/OIQNGJJN.cjs.map +0 -1
  223. package/dist/PGNYV6JB.cjs +0 -348
  224. package/dist/PGNYV6JB.cjs.map +0 -1
  225. package/dist/PRZAVZZK.js +0 -126
  226. package/dist/PRZAVZZK.js.map +0 -1
  227. package/dist/RX6UCCGP.cjs +0 -21
  228. package/dist/RX6UCCGP.cjs.map +0 -1
  229. package/dist/S5MXARAC.cjs +0 -86
  230. package/dist/S5MXARAC.cjs.map +0 -1
  231. package/dist/SVR4SNIY.js +0 -15
  232. package/dist/SVR4SNIY.js.map +0 -1
  233. package/dist/WXRRMF3Z.js +0 -84
  234. package/dist/WXRRMF3Z.js.map +0 -1
  235. package/dist/WY7ZZTBQ.cjs +0 -18365
  236. package/dist/WY7ZZTBQ.cjs.map +0 -1
  237. package/dist/XQXZQWDP.cjs +0 -128
  238. package/dist/XQXZQWDP.cjs.map +0 -1
  239. package/dist/commands/aptos.cjs +0 -22
  240. package/dist/commands/aptos.cjs.map +0 -1
  241. package/dist/commands/aptos.d.ts +0 -3
  242. package/dist/commands/aptos.d.ts.map +0 -1
  243. package/dist/commands/aptos.js +0 -13
  244. package/dist/commands/aptos.js.map +0 -1
  245. package/dist/commands/iota.cjs +0 -23
  246. package/dist/commands/iota.cjs.map +0 -1
  247. package/dist/commands/iota.d.ts +0 -3
  248. package/dist/commands/iota.d.ts.map +0 -1
  249. package/dist/commands/iota.js +0 -14
  250. package/dist/commands/iota.js.map +0 -1
  251. package/dist/commands/starknet.cjs +0 -13
  252. package/dist/commands/starknet.cjs.map +0 -1
  253. package/dist/commands/starknet.d.ts +0 -2
  254. package/dist/commands/starknet.d.ts.map +0 -1
  255. package/dist/commands/starknet.js +0 -4
  256. package/dist/commands/starknet.js.map +0 -1
  257. package/dist/commands/sui.cjs +0 -23
  258. package/dist/commands/sui.cjs.map +0 -1
  259. package/dist/commands/sui.d.ts +0 -3
  260. package/dist/commands/sui.d.ts.map +0 -1
  261. package/dist/commands/sui.js +0 -14
  262. package/dist/commands/sui.js.map +0 -1
  263. package/dist/commands/utility/sui-like.cjs +0 -22
  264. package/dist/commands/utility/sui-like.cjs.map +0 -1
  265. package/dist/commands/utility/sui-like.d.ts +0 -16
  266. package/dist/commands/utility/sui-like.d.ts.map +0 -1
  267. package/dist/commands/utility/sui-like.js +0 -13
  268. package/dist/commands/utility/sui-like.js.map +0 -1
  269. package/dist/config/docker-images.cjs +0 -13
  270. package/dist/config/docker-images.cjs.map +0 -1
  271. package/dist/config/docker-images.d.ts +0 -166
  272. package/dist/config/docker-images.d.ts.map +0 -1
  273. package/dist/config/docker-images.js +0 -4
  274. package/dist/config/docker-images.js.map +0 -1
  275. package/dist/config/docker-images.test.cjs +0 -21
  276. package/dist/config/docker-images.test.cjs.map +0 -1
  277. package/dist/config/docker-images.test.js +0 -19
  278. package/dist/config/docker-images.test.js.map +0 -1
  279. package/dist/config/index.cjs +0 -47
  280. package/dist/config/index.d.ts +0 -8
  281. package/dist/config/index.d.ts.map +0 -1
  282. package/dist/config/index.js +0 -6
  283. package/dist/config/tools.cjs +0 -23
  284. package/dist/config/tools.cjs.map +0 -1
  285. package/dist/config/tools.d.ts +0 -8
  286. package/dist/config/tools.d.ts.map +0 -1
  287. package/dist/config/tools.js +0 -6
  288. package/dist/config/tools.js.map +0 -1
  289. package/dist/config/version-matrices.cjs +0 -13
  290. package/dist/config/version-matrices.cjs.map +0 -1
  291. package/dist/config/version-matrices.d.ts +0 -15
  292. package/dist/config/version-matrices.d.ts.map +0 -1
  293. package/dist/config/version-matrices.js +0 -4
  294. package/dist/config/version-matrices.js.map +0 -1
  295. package/dist/scripts/generate-github-matrix.cjs.map +0 -1
  296. package/dist/scripts/generate-github-matrix.d.ts +0 -2
  297. package/dist/scripts/generate-github-matrix.d.ts.map +0 -1
  298. package/dist/scripts/generate-github-matrix.js.map +0 -1
  299. /package/dist/{config → github}/index.cjs.map +0 -0
  300. /package/dist/{config → github}/index.js.map +0 -0
@@ -0,0 +1,20 @@
1
+ import { getCombinationId } from './RT6XP6RO.js';
2
+ import { findToolVersionsForCombination } from './7GBZAO4Q.js';
3
+ import { init_esm_shims, __name } from './6AHA7PAZ.js';
4
+
5
+ // src/display/formatters.ts
6
+ init_esm_shims();
7
+ function formatVersionCombination(context, combination, isDefault) {
8
+ const tools = Object.entries(findToolVersionsForCombination(context, combination)).filter(([_, version]) => version !== void 0).map(([tool, version]) => `${tool}:${version}`).join(", ");
9
+ const badges = [
10
+ isDefault ? "\u{1F3AF} Default" : null,
11
+ combination.stable ? "\u2705 Stable" : null,
12
+ combination.description
13
+ ].filter(Boolean).join(" ");
14
+ return ` ${getCombinationId(context, combination)}: ${tools} ${badges}`;
15
+ }
16
+ __name(formatVersionCombination, "formatVersionCombination");
17
+
18
+ export { formatVersionCombination };
19
+ //# sourceMappingURL=QTKMYYBJ.js.map
20
+ //# sourceMappingURL=QTKMYYBJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/display/formatters.ts"],"names":["formatVersionCombination","context","combination","isDefault","tools","Object","entries","findToolVersionsForCombination","filter","_","version","undefined","map","tool","join","badges","stable","description","Boolean","getCombinationId"],"mappings":";;;;;AAEA,cAAA,EAAA;AAMO,SAASA,wBAAAA,CACZC,OAAAA,EACAC,WAAAA,EACAC,SAAAA,EAAmB;AAEnB,EAAA,MAAMC,KAAAA,GAAQC,MAAAA,CAAOC,OAAAA,CAAQC,8BAAAA,CAA+BN,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,CAChEM,MAAAA,CAAO,CAAC,CAACC,CAAAA,EAAGC,OAAAA,CAAAA,KAAaA,OAAAA,KAAYC,MAAAA,CAAAA,CACrCC,GAAAA,CAAI,CAAC,CAACC,IAAAA,EAAMH,OAAAA,CAAAA,KAAa,CAAA,EAAGG,IAAAA,CAAAA,CAAAA,EAAQH,OAAAA,CAAAA,CAAS,CAAA,CAC7CI,KAAK,IAAA,CAAA;AAEV,EAAA,MAAMC,MAAAA,GAAS;AACXZ,IAAAA,SAAAA,GAAY,mBAAA,GAAe,IAAA;AAC3BD,IAAAA,WAAAA,CAAYc,SAAS,eAAA,GAAa,IAAA;IAClCd,WAAAA,CAAYe;IAEXT,MAAAA,CAAOU,OAAAA,CAAAA,CACPJ,IAAAA,CAAK,GAAA,CAAA;AAEV,EAAA,OAAO,CAAA,EAAA,EAAKK,iBAAiBlB,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,EAAAA,EAAiBE,KAAAA,IAASW,MAAAA,CAAAA,CAAAA;AACpE;AAnBgBf,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA","file":"QTKMYYBJ.js","sourcesContent":["import type { VersionCombination } from '../config';\nimport type { ChainContext } from '../context';\nimport { getCombinationId } from '../utils';\nimport { findToolVersionsForCombination } from '../utils/finder';\n\n/**\n * Format version combinations for display\n */\nexport function formatVersionCombination<TImageId extends string>(\n context: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n isDefault?: boolean,\n): string {\n const tools = Object.entries(findToolVersionsForCombination(context, combination))\n .filter(([_, version]) => version !== undefined)\n .map(([tool, version]) => `${tool}:${version}`)\n .join(', ');\n\n const badges = [\n isDefault ? '🎯 Default' : null,\n combination.stable ? '✅ Stable' : null,\n combination.description,\n ]\n .filter(Boolean)\n .join(' ');\n\n return ` ${getCombinationId(context, combination)}: ${tools} ${badges}`;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { setCredentialFeature } from './ERGNNQ6N.js';
2
1
  import { getProfileName, parseKnownFiles, loadSsoSessionData, getSSOTokenFromFile, getSSOTokenFilepath } from './GHQS37WK.js';
2
+ import { setCredentialFeature } from './ERGNNQ6N.js';
3
3
  import { ProviderError, CredentialsProviderError } from './UFZOOGMQ.js';
4
4
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
5
5
  import { promises } from 'fs';
@@ -44,7 +44,7 @@ init_esm_shims();
44
44
  // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js
45
45
  init_esm_shims();
46
46
  var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {
47
- const { SSOOIDCClient } = await import('./HSLJBWIL.js');
47
+ const { SSOOIDCClient } = await import('./MQNCJPBY.js');
48
48
  const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {
49
49
  region: ssoRegion ?? init.clientConfig?.region,
50
50
  logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger
@@ -54,7 +54,7 @@ var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init = {}) => {
54
54
 
55
55
  // ../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js
56
56
  var getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init = {}) => {
57
- const { CreateTokenCommand } = await import('./HSLJBWIL.js');
57
+ const { CreateTokenCommand } = await import('./MQNCJPBY.js');
58
58
  const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);
59
59
  return ssoOidcClient.send(new CreateTokenCommand({
60
60
  clientId: ssoToken.clientId,
@@ -211,7 +211,7 @@ var resolveSSOCredentials = /* @__PURE__ */ __name(async ({ ssoStartUrl, ssoSess
211
211
  });
212
212
  }
213
213
  const { accessToken } = token;
214
- const { SSOClient, GetRoleCredentialsCommand } = await import('./QBBWWA5T.js');
214
+ const { SSOClient, GetRoleCredentialsCommand } = await import('./LQNTMID2.js');
215
215
  const sso = ssoClient || new SSOClient(Object.assign({}, clientConfig ?? {}, {
216
216
  logger: clientConfig?.logger ?? parentClientConfig?.logger,
217
217
  region: clientConfig?.region ?? ssoRegion
@@ -346,5 +346,5 @@ var fromSSO = /* @__PURE__ */ __name((init = {}) => async ({ callerClientConfig
346
346
  init_esm_shims();
347
347
 
348
348
  export { fromSSO, isSsoProfile, validateSsoProfile };
349
- //# sourceMappingURL=4ZP6FU3S.js.map
350
- //# sourceMappingURL=4ZP6FU3S.js.map
349
+ //# sourceMappingURL=R5CQAJPE.js.map
350
+ //# sourceMappingURL=R5CQAJPE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/index.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js","../../../node_modules/.pnpm/@smithy+property-provider@4.2.5/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/constants.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js"],"names":["TokenProviderError","ProviderError","name","message","options","Object","setPrototypeOf","prototype","isSsoProfile","arg","sso_start_url","sso_account_id","sso_session","sso_region","sso_role_name","EXPIRE_WINDOW_MS","REFRESH_MESSAGE","getSsoOidcClient","ssoRegion","init","SSOOIDCClient","ssoOidcClient","assign","clientConfig","region","logger","parentClientConfig","getNewSsoOidcToken","ssoToken","CreateTokenCommand","send","clientId","clientSecret","refreshToken","grantType","validateTokenExpiry","token","expiration","getTime","Date","now","validateTokenKey","key","value","forRefresh","writeFile","fsPromises","writeSSOTokenToFile","id","tokenFilepath","getSSOTokenFilepath","tokenString","JSON","stringify","lastRefreshAttemptTime","fromSso","_init","callerClientConfig","debug","profiles","parseKnownFiles","profileName","getProfileName","profile","ssoSessionName","ssoSessions","loadSsoSessionData","ssoSession","ssoSessionRequiredKey","getSSOTokenFromFile","e","accessToken","expiresAt","existingToken","setTime","newSsoOidcToken","expiresIn","newTokenExpiration","toISOString","error","SHOULD_FAIL_CREDENTIAL_CHAIN","resolveSSOCredentials","ssoStartUrl","ssoAccountId","ssoRoleName","ssoClient","refreshMessage","_token","getSsoTokenProvider","CredentialsProviderError","tryNextLink","SSOClient","GetRoleCredentialsCommand","sso","ssoResp","accountId","roleName","roleCredentials","accessKeyId","secretAccessKey","sessionToken","credentialScope","credentials","setCredentialFeature","validateSsoProfile","keys","join","fromSSO","session","conflictMsg"],"mappings":";;;;;;;AAAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;AACO,IAAMA,kBAAAA,GAAN,MAAMA,mBAAAA,SAA2BC,aAAAA,CAAAA;EADxC;;;EAEIC,IAAAA,GAAO,oBAAA;EACP,WAAA,CAAYC,OAAAA,EAASC,UAAU,IAAA,EAAM;AACjC,IAAA,KAAA,CAAMD,SAASC,OAAAA,CAAAA;AACfC,IAAAA,MAAAA,CAAOC,cAAAA,CAAe,IAAA,EAAMN,mBAAAA,CAAmBO,SAAS,CAAA;AAC5D,EAAA;AACJ,CAAA;;;ACPA,cAAA,EAAA;AAAO,IAAMC,YAAAA,2BAAgBC,GAAAA,KAAQA,GAAAA,KAChC,OAAOA,GAAAA,CAAIC,aAAAA,KAAkB,QAAA,IAC1B,OAAOD,GAAAA,CAAIE,cAAAA,KAAmB,YAC9B,OAAOF,GAAAA,CAAIG,WAAAA,KAAgB,QAAA,IAC3B,OAAOH,GAAAA,CAAII,eAAe,QAAA,IAC1B,OAAOJ,GAAAA,CAAIK,aAAAA,KAAkB,QAAA,CAAA,EALT,cAAA;;;ACA5B,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;AAAO,IAAMC,gBAAAA,GAAmB,IAAI,EAAA,GAAK,GAAA;AAClC,IAAMC,eAAAA,GAAkB,CAAA,+EAAA,CAAA;;;ACD/B,cAAA,EAAA;;;ACAA,cAAA,EAAA;AAAO,IAAMC,gBAAAA,mBAAmB,MAAA,CAAA,OAAOC,SAAAA,EAAWC,IAAAA,GAAO,EAAC,KAAC;AACvD,EAAA,MAAM,EAAEC,aAAAA,EAAa,GAAK,MAAM,OAAO,eAAA,CAAA;AACvC,EAAA,MAAMC,aAAAA,GAAgB,IAAID,aAAAA,CAAcf,MAAAA,CAAOiB,MAAAA,CAAO,EAAC,EAAGH,IAAAA,CAAKI,YAAAA,IAAgB,EAAC,EAAG;IAC/EC,MAAAA,EAAQN,SAAAA,IAAaC,KAAKI,YAAAA,EAAcC,MAAAA;AACxCC,IAAAA,MAAAA,EAAQN,IAAAA,CAAKI,YAAAA,EAAcE,MAAAA,IAAUN,IAAAA,CAAKO,kBAAAA,EAAoBD;AAClE,GAAA,CAAA,CAAA;AACA,EAAA,OAAOJ,aAAAA;AACX,CAAA,EAPgC,kBAAA,CAAA;;;ADCzB,IAAMM,qCAAqB,MAAA,CAAA,OAAOC,QAAAA,EAAUV,SAAAA,EAAWC,IAAAA,GAAO,EAAC,KAAC;AACnE,EAAA,MAAM,EAAEU,kBAAAA,EAAkB,GAAK,MAAM,OAAO,eAAA,CAAA;AAC5C,EAAA,MAAMR,aAAAA,GAAgB,MAAMJ,gBAAAA,CAAiBC,SAAAA,EAAWC,IAAAA,CAAAA;AACxD,EAAA,OAAOE,aAAAA,CAAcS,IAAAA,CAAK,IAAID,kBAAAA,CAAmB;AAC7CE,IAAAA,QAAAA,EAAUH,QAAAA,CAASG,QAAAA;AACnBC,IAAAA,YAAAA,EAAcJ,QAAAA,CAASI,YAAAA;AACvBC,IAAAA,YAAAA,EAAcL,QAAAA,CAASK,YAAAA;IACvBC,SAAAA,EAAW;AACf,GAAA,CAAA,CAAA;AACJ,CAAA,EATkC,oBAAA,CAAA;;;AEDlC,cAAA,EAAA;AAEO,IAAMC,mBAAAA,2BAAuBC,KAAAA,KAAAA;AAChC,EAAA,IAAIA,KAAAA,CAAMC,cAAcD,KAAAA,CAAMC,UAAAA,CAAWC,SAAO,GAAKC,IAAAA,CAAKC,KAAG,EAAI;AAC7D,IAAA,MAAM,IAAIxC,kBAAAA,CAAmB,CAAA,kBAAA,EAAqBgB,eAAAA,IAAmB,KAAA,CAAA;AACzE,EAAA;AACJ,CAAA,EAJmC,qBAAA,CAAA;;;ACFnC,cAAA,EAAA;AAEO,IAAMyB,gBAAAA,mBAAmB,MAAA,CAAA,CAACC,GAAAA,EAAKC,KAAAA,EAAOC,aAAa,KAAA,KAAK;AAC3D,EAAA,IAAI,OAAOD,UAAU,WAAA,EAAa;AAC9B,IAAA,MAAM,IAAI3C,kBAAAA,CAAmB,CAAA,uBAAA,EAA0B0C,GAAAA,CAAAA,cAAAA,EAAoBE,UAAAA,GAAa,kBAAA,GAAqB,EAAA,CAAA,EAAA,EAAO5B,eAAAA,CAAAA,CAAAA,EAAmB,KAAA,CAAA;AAC3I,EAAA;AACJ,CAAA,EAJgC,kBAAA,CAAA;;;ACFhC,cAAA,EAAA;AAEA,IAAM,EAAE6B,WAAS,GAAKC,QAAAA;AACf,IAAMC,mBAAAA,mBAAsB,MAAA,CAAA,CAACC,EAAAA,EAAIpB,QAAAA,KAAAA;AACpC,EAAA,MAAMqB,aAAAA,GAAgBC,oBAAoBF,EAAAA,CAAAA;AAC1C,EAAA,MAAMG,WAAAA,GAAcC,IAAAA,CAAKC,SAAAA,CAAUzB,QAAAA,EAAU,MAAM,CAAA,CAAA;AACnD,EAAA,OAAOiB,SAAAA,CAAUI,eAAeE,WAAAA,CAAAA;AACpC,CAAA,EAJmC,qBAAA,CAAA;;;ANInC,IAAMG,sBAAAA,mBAAyB,IAAIf,IAAAA,CAAK,CAAA,CAAA;AACjC,IAAMgB,OAAAA,mBAAU,MAAA,CAAA,CAACC,KAAAA,GAAQ,EAAC,KAAM,OAAO,EAAEC,kBAAAA,EAAkB,GAAK,EAAC,KAAC;AACrE,EAAA,MAAMtC,IAAAA,GAAO;IACT,GAAGqC,KAAAA;IACH9B,kBAAAA,EAAoB;MAChB,GAAG+B,kBAAAA;AACH,MAAA,GAAGD,KAAAA,CAAM9B;AACb;AACJ,GAAA;AACAP,EAAAA,IAAAA,CAAKM,MAAAA,EAAQiC,MAAM,oCAAA,CAAA;AACnB,EAAA,MAAMC,QAAAA,GAAW,MAAMC,eAAAA,CAAgBzC,IAAAA,CAAAA;AACvC,EAAA,MAAM0C,cAAcC,cAAAA,CAAe;IAC/BC,OAAAA,EAAS5C,IAAAA,CAAK4C,WAAWN,kBAAAA,EAAoBM;GACjD,CAAA;AACA,EAAA,MAAMA,OAAAA,GAAUJ,SAASE,WAAAA,CAAAA;AACzB,EAAA,IAAI,CAACE,OAAAA,EAAS;AACV,IAAA,MAAM,IAAI/D,kBAAAA,CAAmB,CAAA,SAAA,EAAY6D,WAAAA,oDAA+D,KAAA,CAAA;EAC5G,CAAA,MAAA,IACS,CAACE,OAAAA,CAAQ,aAAA,CAAA,EAAgB;AAC9B,IAAA,MAAM,IAAI/D,kBAAAA,CAAmB,CAAA,SAAA,EAAY6D,WAAAA,CAAAA,6CAAAA,CAA0D,CAAA;AACvG,EAAA;AACA,EAAA,MAAMG,cAAAA,GAAiBD,QAAQ,aAAA,CAAA;AAC/B,EAAA,MAAME,WAAAA,GAAc,MAAMC,kBAAAA,CAAmB/C,IAAAA,CAAAA;AAC7C,EAAA,MAAMgD,UAAAA,GAAaF,YAAYD,cAAAA,CAAAA;AAC/B,EAAA,IAAI,CAACG,UAAAA,EAAY;AACb,IAAA,MAAM,IAAInE,kBAAAA,CAAmB,CAAA,aAAA,EAAgBgE,cAAAA,oDAAkE,KAAA,CAAA;AACnH,EAAA;AACA,EAAA,KAAA,MAAWI,qBAAAA,IAAyB;AAAC,IAAA,eAAA;AAAiB,IAAA;AAAe,GAAA,EAAA;AACjE,IAAA,IAAI,CAACD,UAAAA,CAAWC,qBAAAA,CAAAA,EAAwB;AACpC,MAAA,MAAM,IAAIpE,kBAAAA,CAAmB,CAAA,aAAA,EAAgBgE,cAAAA,CAAAA,gCAAAA,EAAiDI,qBAAAA,MAA2B,KAAA,CAAA;AAC7H,IAAA;AACJ,EAAA;AACA,EAAoBD,WAAW,eAAA;AAC/B,EAAA,MAAMjD,SAAAA,GAAYiD,WAAW,YAAA,CAAA;AAC7B,EAAA,IAAIvC,QAAAA;AACJ,EAAA,IAAI;AACAA,IAAAA,QAAAA,GAAW,MAAMyC,oBAAoBL,cAAAA,CAAAA;AACzC,EAAA,CAAA,CAAA,OACOM,CAAAA,EAAG;AACN,IAAA,MAAM,IAAItE,kBAAAA,CAAmB,CAAA,8CAAA,EAAiD6D,WAAAA,CAAAA,8BAAAA,EAA4C7C,eAAAA,IAAmB,KAAA,CAAA;AACjJ,EAAA;AACAyB,EAAAA,gBAAAA,CAAiB,aAAA,EAAeb,SAAS2C,WAAW,CAAA;AACpD9B,EAAAA,gBAAAA,CAAiB,WAAA,EAAab,SAAS4C,SAAS,CAAA;AAChD,EAAA,MAAM,EAAED,WAAAA,EAAaC,SAAAA,EAAS,GAAK5C,QAAAA;AACnC,EAAA,MAAM6C,aAAAA,GAAgB;IAAErC,KAAAA,EAAOmC,WAAAA;IAAalC,UAAAA,EAAY,IAAIE,KAAKiC,SAAAA;AAAW,GAAA;AAC5E,EAAA,IAAIC,cAAcpC,UAAAA,CAAWC,OAAAA,KAAYC,IAAAA,CAAKC,GAAAA,KAAQzB,gBAAAA,EAAkB;AACpE,IAAA,OAAO0D,aAAAA;AACX,EAAA;AACA,EAAA,IAAIlC,KAAKC,GAAAA,EAAG,GAAKc,uBAAuBhB,OAAAA,EAAO,GAAK,KAAK,GAAA,EAAM;AAC3DH,IAAAA,mBAAAA,CAAoBsC,aAAAA,CAAAA;AACpB,IAAA,OAAOA,aAAAA;AACX,EAAA;AACAhC,EAAAA,gBAAAA,CAAiB,UAAA,EAAYb,QAAAA,CAASG,QAAAA,EAAU,IAAA,CAAA;AAChDU,EAAAA,gBAAAA,CAAiB,cAAA,EAAgBb,QAAAA,CAASI,YAAAA,EAAc,IAAA,CAAA;AACxDS,EAAAA,gBAAAA,CAAiB,cAAA,EAAgBb,QAAAA,CAASK,YAAAA,EAAc,IAAA,CAAA;AACxD,EAAA,IAAI;AACAqB,IAAAA,sBAAAA,CAAuBoB,OAAAA,CAAQnC,IAAAA,CAAKC,GAAAA,EAAG,CAAA;AACvC,IAAA,MAAMmC,eAAAA,GAAkB,MAAMhD,kBAAAA,CAAmBC,QAAAA,EAAUV,WAAWC,IAAAA,CAAAA;AACtEsB,IAAAA,gBAAAA,CAAiB,aAAA,EAAekC,gBAAgBJ,WAAW,CAAA;AAC3D9B,IAAAA,gBAAAA,CAAiB,WAAA,EAAakC,gBAAgBC,SAAS,CAAA;AACvD,IAAA,MAAMC,kBAAAA,GAAqB,IAAItC,IAAAA,CAAKA,IAAAA,CAAKC,KAAG,GAAKmC,eAAAA,CAAgBC,YAAY,GAAA,CAAA;AAC7E,IAAA,IAAI;AACA,MAAA,MAAM7B,oBAAoBiB,cAAAA,EAAgB;QACtC,GAAGpC,QAAAA;AACH2C,QAAAA,WAAAA,EAAaI,eAAAA,CAAgBJ,WAAAA;AAC7BC,QAAAA,SAAAA,EAAWK,mBAAmBC,WAAAA,EAAW;AACzC7C,QAAAA,YAAAA,EAAc0C,eAAAA,CAAgB1C;OAClC,CAAA;AACJ,IAAA,CAAA,CAAA,OACO8C,KAAAA,EAAO;AACd,IAAA;AACA,IAAA,OAAO;AACH3C,MAAAA,KAAAA,EAAOuC,eAAAA,CAAgBJ,WAAAA;MACvBlC,UAAAA,EAAYwC;AAChB,KAAA;AACJ,EAAA,CAAA,CAAA,OACOE,KAAAA,EAAO;AACV5C,IAAAA,mBAAAA,CAAoBsC,aAAAA,CAAAA;AACpB,IAAA,OAAOA,aAAAA;AACX,EAAA;AACJ,CAAA,EA/EuB,SAAA,CAAA;;;ADJvB,IAAMO,4BAAAA,GAA+B,KAAA;AAC9B,IAAMC,qBAAAA,mBAAwB,MAAA,CAAA,OAAO,EAAEC,WAAAA,EAAaf,UAAAA,EAAYgB,YAAAA,EAAcjE,SAAAA,EAAWkE,WAAAA,EAAaC,SAAAA,EAAW9D,YAAAA,EAAcG,kBAAAA,EAAoBqC,OAAAA,EAAStC,QAAM,KAAG;AACxK,EAAA,IAAIW,KAAAA;AACJ,EAAA,MAAMkD,cAAAA,GAAiB,CAAA,6EAAA,CAAA;AACvB,EAAA,IAAInB,UAAAA,EAAY;AACZ,IAAA,IAAI;AACA,MAAA,MAAMoB,MAAAA,GAAS,MAAMC,OAAAA,CAAoB;AAAEzB,QAAAA;AAAQ,OAAA,CAAA,EAAA;AACnD3B,MAAAA,KAAAA,GAAQ;AACJmC,QAAAA,WAAAA,EAAagB,MAAAA,CAAOnD,KAAAA;AACpBoC,QAAAA,SAAAA,EAAW,IAAIjC,IAAAA,CAAKgD,MAAAA,CAAOlD,UAAU,EAAEyC,WAAAA;AAC3C,OAAA;AACJ,IAAA,CAAA,CAAA,OACOR,CAAAA,EAAG;AACN,MAAA,MAAM,IAAImB,wBAAAA,CAAyBnB,CAAAA,CAAEnE,OAAAA,EAAS;QAC1CuF,WAAAA,EAAaV,4BAAAA;AACbvD,QAAAA;OACJ,CAAA;AACJ,IAAA;EACJ,CAAA,MACK;AACD,IAAA,IAAI;AACAW,MAAAA,KAAAA,GAAQ,MAAMiC,oBAAoBa,WAAAA,CAAAA;AACtC,IAAA,CAAA,CAAA,OACOZ,CAAAA,EAAG;AACN,MAAA,MAAM,IAAImB,wBAAAA,CAAyB,CAAA,yDAAA,EAA4DH,cAAAA,CAAAA,CAAAA,EAAkB;QAC7GI,WAAAA,EAAaV,4BAAAA;AACbvD,QAAAA;OACJ,CAAA;AACJ,IAAA;AACJ,EAAA;AACA,EAAA,IAAI,IAAIc,IAAAA,CAAKH,KAAAA,CAAMoC,SAAS,CAAA,CAAElC,SAAO,GAAKC,IAAAA,CAAKC,GAAAA,EAAG,IAAM,CAAA,EAAG;AACvD,IAAA,MAAM,IAAIiD,wBAAAA,CAAyB,CAAA,0DAAA,EAA6DH,cAAAA,CAAAA,CAAAA,EAAkB;MAC9GI,WAAAA,EAAaV,4BAAAA;AACbvD,MAAAA;KACJ,CAAA;AACJ,EAAA;AACA,EAAA,MAAM,EAAE8C,aAAW,GAAKnC,KAAAA;AACxB,EAAA,MAAM,EAAEuD,SAAAA,EAAWC,yBAAAA,EAAyB,GAAK,MAAM,OAAO,eAAA,CAAA;AAC9D,EAAA,MAAMC,GAAAA,GAAMR,SAAAA,IACR,IAAIM,SAAAA,CAAUtF,MAAAA,CAAOiB,OAAO,EAAC,EAAGC,YAAAA,IAAgB,EAAC,EAAG;IAChDE,MAAAA,EAAQF,YAAAA,EAAcE,UAAUC,kBAAAA,EAAoBD,MAAAA;AACpDD,IAAAA,MAAAA,EAAQD,cAAcC,MAAAA,IAAUN;AACpC,GAAA,CAAA,CAAA;AACJ,EAAA,IAAI4E,OAAAA;AACJ,EAAA,IAAI;AACAA,IAAAA,OAAAA,GAAU,MAAMD,GAAAA,CAAI/D,IAAAA,CAAK,IAAI8D,yBAAAA,CAA0B;MACnDG,SAAAA,EAAWZ,YAAAA;MACXa,QAAAA,EAAUZ,WAAAA;AACVb,MAAAA;AACJ,KAAA,CAAA,CAAA;AACJ,EAAA,CAAA,CAAA,OACOD,CAAAA,EAAG;AACN,IAAA,MAAM,IAAImB,yBAAyBnB,CAAAA,EAAG;MAClCoB,WAAAA,EAAaV,4BAAAA;AACbvD,MAAAA;KACJ,CAAA;AACJ,EAAA;AACA,EAAA,MAAM,EAAEwE,eAAAA,EAAiB,EAAEC,WAAAA,EAAaC,eAAAA,EAAiBC,YAAAA,EAAc/D,UAAAA,EAAYgE,eAAAA,EAAiBN,SAAAA,EAAS,GAAK,EAAC,EAAC,GAAMD,OAAAA;AAC1H,EAAA,IAAI,CAACI,WAAAA,IAAe,CAACC,mBAAmB,CAACC,YAAAA,IAAgB,CAAC/D,UAAAA,EAAY;AAClE,IAAA,MAAM,IAAIoD,yBAAyB,8CAAA,EAAgD;MAC/EC,WAAAA,EAAaV,4BAAAA;AACbvD,MAAAA;KACJ,CAAA;AACJ,EAAA;AACA,EAAA,MAAM6E,WAAAA,GAAc;AAChBJ,IAAAA,WAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;IACA/D,UAAAA,EAAY,IAAIE,KAAKF,UAAAA,CAAAA;AACrB,IAAA,GAAIgE,eAAAA,IAAmB;AAAEA,MAAAA;AAAgB,KAAA;AACzC,IAAA,GAAIN,SAAAA,IAAa;AAAEA,MAAAA;AAAU;AACjC,GAAA;AACA,EAAA,IAAI5B,UAAAA,EAAY;AACZoC,IAAAA,oBAAAA,CAAqBD,WAAAA,EAAa,mBAAmB,GAAA,CAAA;EACzD,CAAA,MACK;AACDC,IAAAA,oBAAAA,CAAqBD,WAAAA,EAAa,0BAA0B,GAAA,CAAA;AAChE,EAAA;AACA,EAAA,OAAOA,WAAAA;AACX,CAAA,EA9EqC,uBAAA,CAAA;;;AQLrC,cAAA,EAAA;AACO,IAAME,kBAAAA,mBAAqB,MAAA,CAAA,CAACzC,OAAAA,EAAStC,MAAAA,KAAAA;AACxC,EAAA,MAAM,EAAEf,aAAAA,EAAeC,cAAAA,EAAgBE,UAAAA,EAAYC,eAAa,GAAKiD,OAAAA;AACrE,EAAA,IAAI,CAACrD,aAAAA,IAAiB,CAACC,kBAAkB,CAACE,UAAAA,IAAc,CAACC,aAAAA,EAAe;AACpE,IAAA,MAAM,IAAI2E,yBAAyB,CAAA,8IAAA,EACwBpF,MAAAA,CAAOoG,KAAK1C,OAAAA,CAAAA,CAAS2C,IAAAA,CAAK,IAAA,CAAA;AAA6F,kFAAA,CAAA,EAAA;MAAEhB,WAAAA,EAAa,KAAA;AAAOjE,MAAAA;KAAO,CAAA;AACnN,EAAA;AACA,EAAA,OAAOsC,OAAAA;AACX,CAAA,EAPkC,oBAAA;;;AXI3B,IAAM4C,OAAAA,mBAAU,MAAA,CAAA,CAACxF,IAAAA,GAAO,EAAC,KAAM,OAAO,EAAEsC,kBAAAA,EAAkB,GAAK,EAAC,KAAC;AACpEtC,EAAAA,IAAAA,CAAKM,MAAAA,EAAQiC,MAAM,4CAAA,CAAA;AACnB,EAAA,MAAM,EAAEwB,WAAAA,EAAaC,YAAAA,EAAcjE,SAAAA,EAAWkE,WAAAA,EAAajB,YAAU,GAAKhD,IAAAA;AAC1E,EAAA,MAAM,EAAEkE,WAAS,GAAKlE,IAAAA;AACtB,EAAA,MAAM0C,cAAcC,cAAAA,CAAe;IAC/BC,OAAAA,EAAS5C,IAAAA,CAAK4C,WAAWN,kBAAAA,EAAoBM;GACjD,CAAA;AACA,EAAA,IAAI,CAACmB,eAAe,CAACC,YAAAA,IAAgB,CAACjE,SAAAA,IAAa,CAACkE,WAAAA,IAAe,CAACjB,UAAAA,EAAY;AAC5E,IAAA,MAAMR,QAAAA,GAAW,MAAMC,eAAAA,CAAgBzC,IAAAA,CAAAA;AACvC,IAAA,MAAM4C,OAAAA,GAAUJ,SAASE,WAAAA,CAAAA;AACzB,IAAA,IAAI,CAACE,OAAAA,EAAS;AACV,MAAA,MAAM,IAAI0B,wBAAAA,CAAyB,CAAA,QAAA,EAAW5B,WAAAA,CAAAA,eAAAA,CAAAA,EAA8B;AAAEpC,QAAAA,MAAAA,EAAQN,IAAAA,CAAKM;OAAO,CAAA;AACtG,IAAA;AACA,IAAA,IAAI,CAACjB,YAAAA,CAAauD,OAAAA,CAAAA,EAAU;AACxB,MAAA,MAAM,IAAI0B,wBAAAA,CAAyB,CAAA,QAAA,EAAW5B,WAAAA,CAAAA,wCAAAA,CAAAA,EAAuD;AACjGpC,QAAAA,MAAAA,EAAQN,IAAAA,CAAKM;OACjB,CAAA;AACJ,IAAA;AACA,IAAA,IAAIsC,SAASnD,WAAAA,EAAa;AACtB,MAAA,MAAMqD,WAAAA,GAAc,MAAMC,kBAAAA,CAAmB/C,IAAAA,CAAAA;AAC7C,MAAA,MAAMyF,OAAAA,GAAU3C,WAAAA,CAAYF,OAAAA,CAAQnD,WAAW,CAAA;AAC/C,MAAA,MAAMiG,WAAAA,GAAc,CAAA,2BAAA,EAA8BhD,WAAAA,CAAAA,iBAAAA,EAA+BE,QAAQnD,WAAW,CAAA,CAAA;AACpG,MAAA,IAAIM,SAAAA,IAAaA,SAAAA,KAAc0F,OAAAA,CAAQ/F,UAAAA,EAAY;AAC/C,QAAA,MAAM,IAAI4E,wBAAAA,CAAyB,CAAA,sBAAA,CAAA,GAA2BoB,WAAAA,EAAa;UACvEnB,WAAAA,EAAa,KAAA;AACbjE,UAAAA,MAAAA,EAAQN,IAAAA,CAAKM;SACjB,CAAA;AACJ,MAAA;AACA,MAAA,IAAIyD,WAAAA,IAAeA,WAAAA,KAAgB0B,OAAAA,CAAQlG,aAAAA,EAAe;AACtD,QAAA,MAAM,IAAI+E,wBAAAA,CAAyB,CAAA,yBAAA,CAAA,GAA8BoB,WAAAA,EAAa;UAC1EnB,WAAAA,EAAa,KAAA;AACbjE,UAAAA,MAAAA,EAAQN,IAAAA,CAAKM;SACjB,CAAA;AACJ,MAAA;AACAsC,MAAAA,OAAAA,CAAQlD,aAAa+F,OAAAA,CAAQ/F,UAAAA;AAC7BkD,MAAAA,OAAAA,CAAQrD,gBAAgBkG,OAAAA,CAAQlG,aAAAA;AACpC,IAAA;AACA,IAAA,MAAM,EAAEA,aAAAA,EAAeC,cAAAA,EAAgBE,UAAAA,EAAYC,aAAAA,EAAeF,aAAW,GAAK4F,kBAAAA,CAAmBzC,OAAAA,EAAS5C,IAAAA,CAAKM,MAAM,CAAA;AACzH,IAAA,OAAOwD,qBAAAA,CAAsB;MACzBC,WAAAA,EAAaxE,aAAAA;MACbyD,UAAAA,EAAYvD,WAAAA;MACZuE,YAAAA,EAAcxE,cAAAA;MACdO,SAAAA,EAAWL,UAAAA;MACXuE,WAAAA,EAAatE,aAAAA;AACbuE,MAAAA,SAAAA;AACA9D,MAAAA,YAAAA,EAAcJ,IAAAA,CAAKI,YAAAA;AACnBG,MAAAA,kBAAAA,EAAoBP,IAAAA,CAAKO,kBAAAA;MACzBqC,OAAAA,EAASF;KACb,CAAA;AACJ,EAAA,CAAA,MAAA,IACS,CAACqB,WAAAA,IAAe,CAACC,gBAAgB,CAACjE,SAAAA,IAAa,CAACkE,WAAAA,EAAa;AAClE,IAAA,MAAM,IAAIK,yBAAyB,8HAAA,EAC8B;MAAEC,WAAAA,EAAa,KAAA;AAAOjE,MAAAA,MAAAA,EAAQN,IAAAA,CAAKM;KAAO,CAAA;EAC/G,CAAA,MACK;AACD,IAAA,OAAOwD,qBAAAA,CAAsB;AACzBC,MAAAA,WAAAA;AACAf,MAAAA,UAAAA;AACAgB,MAAAA,YAAAA;AACAjE,MAAAA,SAAAA;AACAkE,MAAAA,WAAAA;AACAC,MAAAA,SAAAA;AACA9D,MAAAA,YAAAA,EAAcJ,IAAAA,CAAKI,YAAAA;AACnBG,MAAAA,kBAAAA,EAAoBP,IAAAA,CAAKO,kBAAAA;MACzBqC,OAAAA,EAASF;KACb,CAAA;AACJ,EAAA;AACJ,CAAA,EAnEuB,SAAA;;;AYLvB,cAAA,EAAA","file":"4ZP6FU3S.js","sourcesContent":["export * from \"./fromSSO\";\nexport * from \"./isSsoProfile\";\nexport * from \"./types\";\nexport * from \"./validateSsoProfile\";\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/shared-ini-file-loader\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n};\n","import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n","export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getSSOTokenFromFile } from \"@smithy/shared-ini-file-loader\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, profile, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, } from \"@smithy/shared-ini-file-loader\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTime = new Date(0);\nexport const fromSso = (_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig,\n },\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n","export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n","import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n","export const getSsoOidcClient = async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger,\n }));\n return ssoOidcClient;\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { getSSOTokenFilepath } from \"@smithy/shared-ini-file-loader\";\nimport { promises as fsPromises } from \"fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n","export {};\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/index.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js","../../../node_modules/.pnpm/@smithy+property-provider@4.2.5/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/constants.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js","../../../node_modules/.pnpm/@aws-sdk+token-providers@3.879.0/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js","../../../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.879.0/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js"],"names":["TokenProviderError","ProviderError","name","message","options","Object","setPrototypeOf","prototype","isSsoProfile","arg","sso_start_url","sso_account_id","sso_session","sso_region","sso_role_name","EXPIRE_WINDOW_MS","REFRESH_MESSAGE","getSsoOidcClient","ssoRegion","init","SSOOIDCClient","ssoOidcClient","assign","clientConfig","region","logger","parentClientConfig","getNewSsoOidcToken","ssoToken","CreateTokenCommand","send","clientId","clientSecret","refreshToken","grantType","validateTokenExpiry","token","expiration","getTime","Date","now","validateTokenKey","key","value","forRefresh","writeFile","fsPromises","writeSSOTokenToFile","id","tokenFilepath","getSSOTokenFilepath","tokenString","JSON","stringify","lastRefreshAttemptTime","fromSso","_init","callerClientConfig","debug","profiles","parseKnownFiles","profileName","getProfileName","profile","ssoSessionName","ssoSessions","loadSsoSessionData","ssoSession","ssoSessionRequiredKey","getSSOTokenFromFile","e","accessToken","expiresAt","existingToken","setTime","newSsoOidcToken","expiresIn","newTokenExpiration","toISOString","error","SHOULD_FAIL_CREDENTIAL_CHAIN","resolveSSOCredentials","ssoStartUrl","ssoAccountId","ssoRoleName","ssoClient","refreshMessage","_token","getSsoTokenProvider","CredentialsProviderError","tryNextLink","SSOClient","GetRoleCredentialsCommand","sso","ssoResp","accountId","roleName","roleCredentials","accessKeyId","secretAccessKey","sessionToken","credentialScope","credentials","setCredentialFeature","validateSsoProfile","keys","join","fromSSO","session","conflictMsg"],"mappings":"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","file":"R5CQAJPE.js","sourcesContent":["export * from \"./fromSSO\";\nexport * from \"./isSsoProfile\";\nexport * from \"./types\";\nexport * from \"./validateSsoProfile\";\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/shared-ini-file-loader\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n};\n","import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n name = \"TokenProviderError\";\n constructor(message, options = true) {\n super(message, options);\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n","export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getSSOTokenFromFile } from \"@smithy/shared-ini-file-loader\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, profile, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, } from \"@smithy/shared-ini-file-loader\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTime = new Date(0);\nexport const fromSso = (_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig,\n },\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n","export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n","import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n","export const getSsoOidcClient = async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger,\n }));\n return ssoOidcClient;\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { getSSOTokenFilepath } from \"@smithy/shared-ini-file-loader\";\nimport { promises as fsPromises } from \"fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n","export {};\n"]}
@@ -0,0 +1,21 @@
1
+ import { init_esm_shims, __name } from './6AHA7PAZ.js';
2
+ import * as semver from 'semver';
3
+
4
+ // src/utils/version.ts
5
+ init_esm_shims();
6
+ function versionsSatisfied(current, expected) {
7
+ return semver.satisfies(current, expected);
8
+ }
9
+ __name(versionsSatisfied, "versionsSatisfied");
10
+ function findSemVersionFromString(input) {
11
+ const version = input.match(/^(solana-cli|anchor-cli|aptos)\s+(([0-9]+\.?){3}).*?/m)?.[2];
12
+ if (!version) {
13
+ throw new Error(`Invalid semver version: ${input}`);
14
+ }
15
+ return version;
16
+ }
17
+ __name(findSemVersionFromString, "findSemVersionFromString");
18
+
19
+ export { findSemVersionFromString, versionsSatisfied };
20
+ //# sourceMappingURL=ROMZWOXP.js.map
21
+ //# sourceMappingURL=ROMZWOXP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/version.ts"],"names":["versionsSatisfied","current","expected","satisfies","findSemVersionFromString","input","version","match","Error"],"mappings":";;;;AAAA,cAAA,EAAA;AAKO,SAASA,iBAAAA,CAAkBC,SAAiBC,QAAAA,EAAgB;AAC/D,EAAA,OAAcC,MAAAA,CAAAA,SAAAA,CAAUF,SAASC,QAAAA,CAAAA;AACrC;AAFgBF,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAOT,SAASI,yBAAyBC,KAAAA,EAAa;AAClD,EAAA,MAAMC,OAAAA,GAAUD,KAAAA,CAAME,KAAAA,CAAM,uDAAA,IAA2D,CAAA,CAAA;AAEvF,EAAA,IAAI,CAACD,OAAAA,EAAS;AACV,IAAA,MAAM,IAAIE,KAAAA,CAAM,CAAA,wBAAA,EAA2BH,KAAAA,CAAAA,CAAO,CAAA;AACtD,EAAA;AAEA,EAAA,OAAOC,OAAAA;AACX;AARgBF,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA","file":"ROMZWOXP.js","sourcesContent":["import * as semver from 'semver';\n\n/**\n * Check if current version satisfies expected version using semver\n */\nexport function versionsSatisfied(current: string, expected: string): boolean {\n return semver.satisfies(current, expected);\n}\n\n/**\n * Find semantic version from string output\n */\nexport function findSemVersionFromString(input: string): string {\n const version = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m)?.[2];\n\n if (!version) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return version;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { findToolVersionsForCombination } from './7GBZAO4Q.js';
2
+ import { init_esm_shims, __name } from './6AHA7PAZ.js';
3
+
4
+ // src/utils.ts
5
+ init_esm_shims();
6
+ var getCombinationId = /* @__PURE__ */ __name((context, combination) => Object.entries(findToolVersionsForCombination(context, combination)).toSorted().flat().join("-"), "getCombinationId");
7
+
8
+ export { getCombinationId };
9
+ //# sourceMappingURL=RT6XP6RO.js.map
10
+ //# sourceMappingURL=RT6XP6RO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["getCombinationId","context","combination","Object","entries","findToolVersionsForCombination","toSorted","flat","join"],"mappings":";;;;AAEA,cAAA,EAAA;AAEO,IAAMA,mCAAmB,MAAA,CAAA,CAC5BC,OAAAA,EACAC,WAAAA,KAEAC,MAAAA,CAAOC,QAAQC,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,CAAAA,EAClDI,QAAAA,EAAQ,CACRC,MAAI,CACJC,IAAAA,CAAK,GAAA,CAAA,EAPkB,kBAAA","file":"RT6XP6RO.js","sourcesContent":["import type { VersionCombination } from './config';\nimport type { ChainContext } from './context';\nimport { findToolVersionsForCombination } from './utils/finder';\n\nexport const getCombinationId = <TImageId extends string>(\n context: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n): string =>\n Object.entries(findToolVersionsForCombination(context, combination))\n .toSorted()\n .flat()\n .join('-');\n"]}
@@ -0,0 +1,96 @@
1
+ import { getImageTag, getImageUri } from './FQHJEYC5.js';
2
+ import { init_esm_shims, __name } from './6AHA7PAZ.js';
3
+ import { execFile } from 'child_process';
4
+ import { promisify } from 'util';
5
+ import * as z from 'zod';
6
+
7
+ // src/test.ts
8
+ init_esm_shims();
9
+ var TEST_TIMEOUT = 15 * 6e4;
10
+ var COMMAND_TIMEOUT = 5 * 6e4;
11
+ var slsaSchema = z.object({
12
+ SLSA: z.object({})
13
+ });
14
+ var provenanceSchema = z.object({
15
+ ["linux/amd64"]: slsaSchema,
16
+ ["linux/arm64"]: slsaSchema
17
+ });
18
+ var runCommand = /* @__PURE__ */ __name(async (command, args) => (await promisify(execFile)(command, args, {
19
+ timeout: COMMAND_TIMEOUT,
20
+ killSignal: "SIGKILL"
21
+ })).stdout.trim(), "runCommand");
22
+ var testTools = /* @__PURE__ */ __name(({ describe, expect, it }, images, versionCombinations, versionCommands) => {
23
+ describe("Docker image IDs", () => {
24
+ for (const [name, image] of Object.entries(images)) {
25
+ it(`has an image ID of ${name}`, () => {
26
+ expect([
27
+ image.name,
28
+ getImageTag(image, "-")
29
+ ].join(":")).toBe(name);
30
+ });
31
+ }
32
+ });
33
+ describe("Tool versions", () => {
34
+ for (const literalImage of Object.values(images)) {
35
+ const image = literalImage;
36
+ if (image.unreleased) {
37
+ continue;
38
+ }
39
+ describe(getImageTag(image), () => {
40
+ for (const [tool, expectedVersion] of Object.entries(image.versions)) {
41
+ it(`should have ${tool} of version ${expectedVersion}`, async () => {
42
+ if (!(versionCommands[tool] instanceof Array)) {
43
+ throw new Error("Missing version command");
44
+ }
45
+ const uri = getImageUri(image, "_");
46
+ await runCommand("docker", [
47
+ "pull",
48
+ uri
49
+ ]);
50
+ const version = await runCommand("docker", [
51
+ "run",
52
+ "--rm",
53
+ "--privileged",
54
+ uri,
55
+ ...versionCommands[tool]
56
+ ]);
57
+ expect(version).toContain(expectedVersion);
58
+ }, TEST_TIMEOUT);
59
+ }
60
+ });
61
+ }
62
+ });
63
+ describe("Version combinations", () => {
64
+ for (const [id, combination] of Object.entries(versionCombinations)) {
65
+ describe(id, () => {
66
+ for (const image of Object.values(combination.images)) {
67
+ it(`has a released image for ${image}`, () => {
68
+ expect(images[image]?.unreleased).toBeFalsy();
69
+ });
70
+ }
71
+ });
72
+ }
73
+ });
74
+ describe("Docker image manifests", () => {
75
+ for (const [id, image] of Object.entries(images)) {
76
+ if (image.unreleased) {
77
+ continue;
78
+ }
79
+ it(`has a valid manifest for ${id}`, async () => {
80
+ const { stdout } = await promisify(execFile)("docker", [
81
+ "buildx",
82
+ "imagetools",
83
+ "inspect",
84
+ "--format",
85
+ "{{ json .Provenance }}",
86
+ getImageUri(image, "_")
87
+ ]);
88
+ expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);
89
+ });
90
+ }
91
+ });
92
+ }, "testTools");
93
+
94
+ export { testTools };
95
+ //# sourceMappingURL=TC4EVJWZ.js.map
96
+ //# sourceMappingURL=TC4EVJWZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/test.ts"],"names":["TEST_TIMEOUT","COMMAND_TIMEOUT","slsaSchema","object","SLSA","provenanceSchema","runCommand","command","args","promisify","execFile","timeout","killSignal","stdout","trim","testTools","describe","expect","it","images","versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","unreleased","tool","expectedVersion","versions","Array","Error","uri","getImageUri","version","toContain","id","combination","toBeFalsy","safeParse","JSON","parse","success"],"mappings":"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","file":"TC4EVJWZ.js","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\nimport * as z from 'zod';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst TEST_TIMEOUT = 15 * 60_000;\nconst COMMAND_TIMEOUT = 5 * 60_000;\n\nconst slsaSchema = z.object({\n SLSA: z.object({}),\n});\n\n// TODO Require provenance by GitHub Actions.\nconst provenanceSchema = z.object({\n ['linux/amd64']: slsaSchema,\n ['linux/arm64']: slsaSchema,\n});\n\nconst runCommand = async (command: string, args: string[]): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout: COMMAND_TIMEOUT,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\nexport const testTools = (\n { describe, expect, it }: typeof vitest,\n images: Record<string, Image>,\n versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image, '-')].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n if (image.unreleased) {\n continue;\n }\n\n describe(getImageTag(image), () => {\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n // TODO Migrate to hyphened image tags.\n const uri = getImageUri(image, '_');\n await runCommand('docker', ['pull', uri]);\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n uri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n TEST_TIMEOUT,\n );\n }\n });\n }\n });\n\n describe('Version combinations', () => {\n for (const [id, combination] of Object.entries(versionCombinations)) {\n describe(id, () => {\n for (const image of Object.values(combination.images)) {\n it(`has a released image for ${image}`, () => {\n expect(images[image]?.unreleased).toBeFalsy();\n });\n }\n });\n }\n });\n\n describe('Docker image manifests', () => {\n for (const [id, image] of Object.entries(images)) {\n if (image.unreleased) {\n continue;\n }\n\n it(`has a valid manifest for ${id}`, async () => {\n const { stdout } = await promisify(execFile)('docker', [\n 'buildx',\n 'imagetools',\n 'inspect',\n '--format',\n '{{ json .Provenance }}',\n getImageUri(image, '_'),\n ]);\n\n expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);\n });\n }\n });\n};\n"]}
@@ -1,9 +1,13 @@
1
1
  import { stringifyError } from './7XVJ6B7B.js';
2
+ import { versionsSatisfied } from './ROMZWOXP.js';
3
+ import { resolveTypeVersions } from './UTB7ZC7B.js';
4
+ import { getImageUriForTool, getVolumeName } from './FQHJEYC5.js';
5
+ import { AWS_REGION, AWS_ACCOUNT_ID } from './ODGKXOOP.js';
6
+ import { findToolByName } from './7GBZAO4Q.js';
2
7
  import { lockMany } from './BAPGOHFS.js';
3
- import { resolveTypeVersions } from './5CA2MJIS.js';
4
- import { getImageUriForTool, getVolumeName } from './NMDQTUBH.js';
5
- import { AWS_REGION, AWS_ACCOUNT_ID, findToolByName, getChainTypeForTool, tools, versionsSatisfied } from './NJHTTAZO.js';
6
8
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
9
+ import { uniqBy } from 'es-toolkit';
10
+ import os from 'os';
7
11
  import path from 'path';
8
12
  import process from 'process';
9
13
  import { $ } from 'zx';
@@ -11,20 +15,31 @@ import { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils'
11
15
 
12
16
  // src/core/tool-executor.ts
13
17
  init_esm_shims();
18
+ var getHostUserIds = /* @__PURE__ */ __name(() => {
19
+ const userInfo = os.userInfo();
20
+ if (userInfo.uid === -1 || userInfo.gid === -1) {
21
+ return void 0;
22
+ }
23
+ return {
24
+ uid: userInfo.uid,
25
+ gid: userInfo.gid
26
+ };
27
+ }, "getHostUserIds");
14
28
  $.verbose = true;
15
29
  $.stdio = [
16
30
  "inherit",
17
31
  "pipe",
18
32
  process.stderr
19
33
  ];
20
- var mergeVolumes = /* @__PURE__ */ __name((defaultVolumes, userVolumes) => {
21
- const paths = new Set(userVolumes.map((volume) => volume.containerPath));
22
- return [
23
- ...userVolumes,
24
- ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))
25
- ];
26
- }, "mergeVolumes");
27
- async function ensureDockerImage(imageUri) {
34
+ var mergeVolumes = /* @__PURE__ */ __name((defaultVolumes, userVolumes) => uniqBy([
35
+ ...userVolumes,
36
+ ...defaultVolumes
37
+ ], (volume) => volume.containerPath), "mergeVolumes");
38
+ var resolveVolumePaths = /* @__PURE__ */ __name((volumes, workspaceRoot) => volumes.map((volume) => volume.type === "host" ? {
39
+ ...volume,
40
+ hostPath: path.resolve(workspaceRoot, volume.hostPath.replace(/^~/, os.homedir()))
41
+ } : volume), "resolveVolumePaths");
42
+ var ensureDockerImage = /* @__PURE__ */ __name(async (imageUri) => {
28
43
  let output;
29
44
  try {
30
45
  output = await $`docker image ls ${imageUri}`.nothrow();
@@ -48,22 +63,13 @@ async function ensureDockerImage(imageUri) {
48
63
  ].join("\n"));
49
64
  }
50
65
  console.info(`\u2705 Successfully pulled: ${imageUri}`);
51
- }
52
- __name(ensureDockerImage, "ensureDockerImage");
53
- async function executeToolCommand(command, args, { cwd, volumes: userVolumes, customEntrypoint: entrypoint, env: customEnvVars, script, publish, versions = {} }) {
54
- const tool = findToolByName(command);
55
- const type = getChainTypeForTool(command);
56
- if (!type) {
57
- throw new Error([
58
- `Tool '${command}' not found or no type configuration available.`,
59
- `Available tools: ${tools.map(({ name }) => name).join(", ")}`,
60
- `Try: lz-tool --list-versions to see all available tools`
61
- ].join("\n"));
62
- }
66
+ }, "ensureDockerImage");
67
+ async function executeToolCommand(context, toolName, args, { cwd, volumes: userVolumes, customEntrypoint: entrypoint, env: customEnvVars, script, publish, versions = {} }) {
68
+ const tool = findToolByName(context, toolName);
63
69
  const defaultVolumes = tool.defaultVolumes ?? [];
64
70
  const volumes = mergeVolumes(defaultVolumes, userVolumes);
65
71
  if (defaultVolumes.length > 0) {
66
- console.info(`\u{1F4E6} Using ${defaultVolumes.length} default cache volume(s) for ${command}`);
72
+ console.info(`\u{1F4E6} Using ${defaultVolumes.length} default cache volume(s) for ${tool.name}`);
67
73
  if (userVolumes.length > 0) {
68
74
  const overrides = userVolumes.filter((uv) => defaultVolumes.some((dv) => dv.containerPath === uv.containerPath));
69
75
  if (overrides.length > 0) {
@@ -71,11 +77,11 @@ async function executeToolCommand(command, args, { cwd, volumes: userVolumes, cu
71
77
  }
72
78
  }
73
79
  }
74
- const resolvedVersion = resolveTypeVersions(type, versions)[command];
80
+ const resolvedVersion = resolveTypeVersions(context, versions)[tool.name];
75
81
  if (!resolvedVersion) {
76
- throw new Error(`No version resolved for tool ${command}`);
82
+ throw new Error(`No version resolved for tool ${tool.name}`);
77
83
  }
78
- console.info(`\u{1F527} ${command} version: ${resolvedVersion}`);
84
+ console.info(`\u{1F527} ${tool.name} version: ${resolvedVersion}`);
79
85
  if (tool.getSecondaryVersion) {
80
86
  try {
81
87
  const secondaryVersion = tool.getSecondaryVersion({
@@ -88,17 +94,46 @@ async function executeToolCommand(command, args, { cwd, volumes: userVolumes, cu
88
94
  console.warn("Could not validate secondary version:", stringifyError(error));
89
95
  }
90
96
  }
91
- const imageURI = getImageUriForTool(tool.name, resolvedVersion);
97
+ const imageUri = getImageUriForTool(context, tool.name, resolvedVersion);
92
98
  const workspaceRoot = await getFullyQualifiedRepoRootPath();
93
99
  const relativePath = path.relative(workspaceRoot, cwd);
94
- await ensureDockerImage(imageURI);
100
+ await ensureDockerImage(imageUri);
95
101
  if (entrypoint?.trim()) {
96
102
  console.info(`\u{1F527} Using custom entrypoint: ${entrypoint}`);
97
103
  }
98
- const envArgs = customEnvVars.map((envVar) => [
104
+ const defaultEnv = tool.defaultEnv ?? [];
105
+ const hasDockerSocketMount = volumes.some((v) => v.type === "host" && v.containerPath === "/var/run/docker.sock");
106
+ const dockerSocketEnv = hasDockerSocketMount ? [
107
+ {
108
+ name: "HOST_CWD",
109
+ value: cwd
110
+ },
111
+ {
112
+ name: "HOST_WORKSPACE_ROOT",
113
+ value: workspaceRoot
114
+ }
115
+ ] : [];
116
+ const envArgs = uniqBy([
117
+ ...customEnvVars,
118
+ ...dockerSocketEnv,
119
+ ...defaultEnv
120
+ ], ({ name }) => name).flatMap(({ name, value }) => [
121
+ "-e",
122
+ `${name}=${value}`
123
+ ]);
124
+ const hostUserIds = getHostUserIds();
125
+ const userIdEnvArgs = hostUserIds && tool.name === "stellar" ? [
126
+ "-e",
127
+ `LOCAL_UID=${hostUserIds.uid}`,
99
128
  "-e",
100
- `${envVar.name}=${envVar.value}`
101
- ]).flat();
129
+ `LOCAL_GID=${hostUserIds.gid}`
130
+ ] : [];
131
+ if (hostUserIds && tool.name === "stellar") {
132
+ console.info(`\u{1F464} Running container as UID:GID ${hostUserIds.uid}:${hostUserIds.gid}`);
133
+ }
134
+ if (defaultEnv.length > 0) {
135
+ console.info(`\u{1F30D} Using ${defaultEnv.length} default environment variable(s) for ${tool.name}`);
136
+ }
102
137
  if (customEnvVars.length > 0) {
103
138
  console.info(`\u{1F30D} Using ${customEnvVars.length} custom environment variable(s)`);
104
139
  }
@@ -123,6 +158,7 @@ async function executeToolCommand(command, args, { cwd, volumes: userVolumes, cu
123
158
  ] : [],
124
159
  "--rm",
125
160
  ...envArgs,
161
+ ...userIdEnvArgs,
126
162
  "-v",
127
163
  `${workspaceRoot}:/workspace`,
128
164
  "-w",
@@ -131,20 +167,26 @@ async function executeToolCommand(command, args, { cwd, volumes: userVolumes, cu
131
167
  "-p",
132
168
  publish.trim()
133
169
  ] : [],
134
- ...volumes.map(getVolumeName).flatMap((volume) => [
170
+ ...resolveVolumePaths(volumes, workspaceRoot).flatMap((volume) => [
135
171
  "-v",
136
- volume
172
+ getVolumeName(volume)
137
173
  ]),
138
174
  ...entrypoint ? [
139
175
  "--entrypoint",
140
176
  entrypoint
141
177
  ] : [],
142
- imageURI,
178
+ imageUri,
143
179
  ...finalArgs
144
180
  ];
145
181
  const output = await lockMany(volumes.flatMap((volume) => volume.type === "isolate" && volume.locked ? [
146
182
  volume.name
147
- ] : []), () => $`docker ${dockerArgs}`.nothrow());
183
+ ] : []), async () => {
184
+ const label = `\u23F1\uFE0F ${finalArgs.join(" ")}`;
185
+ console.time(label);
186
+ const result = await $`docker ${dockerArgs}`.nothrow();
187
+ console.timeEnd(label);
188
+ return result;
189
+ });
148
190
  if (output.exitCode) {
149
191
  throw new Error(`Failed to run Docker container (exit code: ${output.exitCode})`);
150
192
  }
@@ -153,5 +195,5 @@ async function executeToolCommand(command, args, { cwd, volumes: userVolumes, cu
153
195
  __name(executeToolCommand, "executeToolCommand");
154
196
 
155
197
  export { executeToolCommand };
156
- //# sourceMappingURL=DJEOCSEX.js.map
157
- //# sourceMappingURL=DJEOCSEX.js.map
198
+ //# sourceMappingURL=TKT5HVBW.js.map
199
+ //# sourceMappingURL=TKT5HVBW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/tool-executor.ts"],"names":["getHostUserIds","userInfo","os","uid","gid","undefined","$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","uniqBy","volume","containerPath","resolveVolumePaths","volumes","workspaceRoot","map","type","hostPath","path","resolve","replace","homedir","ensureDockerImage","imageUri","output","nothrow","stdout","includes","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","context","toolName","args","cwd","customEntrypoint","entrypoint","env","customEnvVars","script","publish","versions","tool","findToolByName","length","name","overrides","filter","uv","some","dv","resolvedVersion","resolveTypeVersions","getSecondaryVersion","secondaryVersion","versionsSatisfied","warn","getImageUriForTool","getFullyQualifiedRepoRootPath","relativePath","relative","trim","defaultEnv","hasDockerSocketMount","v","dockerSocketEnv","value","envArgs","flatMap","hostUserIds","userIdEnvArgs","finalArgs","dockerArgs","privileged","getVolumeName","lockMany","locked","label","time","result","timeEnd"],"mappings":"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","file":"TKT5HVBW.js","sourcesContent":["import { uniqBy } from 'es-toolkit';\nimport os from 'node:os';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION } from '../config';\nimport type { ChainContext } from '../context';\nimport type { EnvironmentVariable, VolumeMapping } from '../types';\nimport { getImageUriForTool, getVolumeName } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\nimport { resolveTypeVersions } from './version-resolver';\n\n/**\n * Get the current user's UID and GID for Docker container user matching.\n * This prevents permission issues when containers write to bind-mounted directories.\n * On Windows, returns undefined as UID/GID matching is not needed.\n */\nconst getHostUserIds = (): { uid: number; gid: number } | undefined => {\n // os.userInfo() returns uid/gid on POSIX systems, -1 on Windows\n const userInfo = os.userInfo();\n if (userInfo.uid === -1 || userInfo.gid === -1) {\n return undefined;\n }\n return { uid: userInfo.uid, gid: userInfo.gid };\n};\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nconst mergeVolumes = (\n defaultVolumes: readonly VolumeMapping[],\n userVolumes: readonly VolumeMapping[],\n): VolumeMapping[] => uniqBy([...userVolumes, ...defaultVolumes], (volume) => volume.containerPath);\n\n/**\n * Resolve host paths in volumes to absolute paths\n * - Paths starting with ~ are resolved to home directory\n * - Relative paths (starting with . or no prefix) are resolved to workspace root\n * - Absolute paths are left unchanged\n */\nconst resolveVolumePaths = (volumes: VolumeMapping[], workspaceRoot: string): VolumeMapping[] =>\n volumes.map((volume) =>\n volume.type === 'host'\n ? {\n ...volume,\n hostPath: path.resolve(\n workspaceRoot,\n volume.hostPath.replace(/^~/, os.homedir()),\n ),\n }\n : volume,\n );\n\nconst ensureDockerImage = async (imageUri: string): Promise<void> => {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageUri}`.nothrow();\n\n if (output.stdout.includes(imageUri)) {\n console.info(`✅ Using cached Docker image: ${imageUri}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageUri);\n output = await $`docker pull ${imageUri}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageUri}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageUri} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageUri}`);\n};\n\nexport interface ToolCommandExecutionOptions {\n cwd: string;\n volumes: readonly VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n publish?: string;\n versions?: Record<string, string>;\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand<TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n args: string[],\n {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n versions = {},\n }: ToolCommandExecutionOptions,\n): Promise<ProcessOutput> {\n const tool = findToolByName(context, toolName);\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${tool.name}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Get the resolved version for the current tool.\n const resolvedVersion = resolveTypeVersions(context, versions)[tool.name];\n\n if (!resolvedVersion) {\n throw new Error(`No version resolved for tool ${tool.name}`);\n }\n\n console.info(`🔧 ${tool.name} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersion) {\n try {\n const secondaryVersion = tool.getSecondaryVersion({ cwd });\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersion)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageUri = getImageUriForTool(context, tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageUri);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Merge default env vars with custom env vars (custom takes precedence)\n const defaultEnv = tool.defaultEnv ?? [];\n\n // Check if Docker socket is mounted (for tools that spawn Docker containers like anchor --verifiable)\n // If so, inject HOST_CWD and HOST_WORKSPACE_ROOT so the inner container knows the host paths\n const hasDockerSocketMount = volumes.some(\n (v) => v.type === 'host' && v.containerPath === '/var/run/docker.sock',\n );\n const dockerSocketEnv: EnvironmentVariable[] = hasDockerSocketMount\n ? [\n { name: 'HOST_CWD', value: cwd },\n { name: 'HOST_WORKSPACE_ROOT', value: workspaceRoot },\n ]\n : [];\n\n const envArgs = uniqBy(\n [...customEnvVars, ...dockerSocketEnv, ...defaultEnv],\n ({ name }) => name,\n ).flatMap(({ name, value }) => ['-e', `${name}=${value}`]);\n\n // Add host user UID/GID for permission matching on Linux/macOS\n // This prevents artifacts created in containers from having root ownership\n // Currently only used for stellar which has an entrypoint that handles UID/GID\n const hostUserIds = getHostUserIds();\n const userIdEnvArgs =\n hostUserIds && tool.name === 'stellar'\n ? ['-e', `LOCAL_UID=${hostUserIds.uid}`, '-e', `LOCAL_GID=${hostUserIds.gid}`]\n : [];\n\n if (hostUserIds && tool.name === 'stellar') {\n console.info(`👤 Running container as UID:GID ${hostUserIds.uid}:${hostUserIds.gid}`);\n }\n\n if (defaultEnv.length > 0) {\n console.info(\n `🌍 Using ${defaultEnv.length} default environment variable(s) for ${tool.name}`,\n );\n }\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n ...userIdEnvArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...resolveVolumePaths(volumes, workspaceRoot).flatMap((volume) => [\n '-v',\n getVolumeName(volume),\n ]),\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageUri,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n async () => {\n const label = `⏱️ ${finalArgs.join(' ')}`;\n console.time(label);\n const result = await $`docker ${dockerArgs}`.nothrow();\n console.timeEnd(label);\n\n return result;\n },\n );\n\n if (output.exitCode) {\n throw new Error(`Failed to run Docker container (exit code: ${output.exitCode})`);\n }\n\n return output;\n}\n"]}