@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.
- package/dist/{JS23ECRN.js → 2DA6OMT5.js} +7 -7
- package/dist/{JS23ECRN.js.map → 2DA6OMT5.js.map} +1 -1
- package/dist/{YXZATGN6.cjs → 45KBPE2A.cjs} +6 -6
- package/dist/{YXZATGN6.cjs.map → 45KBPE2A.cjs.map} +1 -1
- package/dist/4BVLTYVP.cjs +22 -0
- package/dist/4BVLTYVP.cjs.map +1 -0
- package/dist/{N374V2RK.js → 4CXXALGT.js} +8 -8
- package/dist/{N374V2RK.js.map → 4CXXALGT.js.map} +1 -1
- package/dist/5AS6ABVZ.js +68 -0
- package/dist/5AS6ABVZ.js.map +1 -0
- package/dist/{E2R2CEJX.js → 6NTWQZTS.js} +2 -2
- package/dist/6NTWQZTS.js.map +1 -0
- package/dist/6TJOZVPD.cjs +19 -0
- package/dist/6TJOZVPD.cjs.map +1 -0
- package/dist/7GBZAO4Q.js +42 -0
- package/dist/7GBZAO4Q.js.map +1 -0
- package/dist/{5JOTEX2K.cjs → 7HA6JSWY.cjs} +3 -3
- package/dist/{5JOTEX2K.cjs.map → 7HA6JSWY.cjs.map} +1 -1
- package/dist/{427QOV7V.js → 7IXQN6OO.js} +3 -3
- package/dist/{427QOV7V.js.map → 7IXQN6OO.js.map} +1 -1
- package/dist/{JBC3ZG3F.cjs → AZEY5BMF.cjs} +3 -3
- package/dist/{JBC3ZG3F.cjs.map → AZEY5BMF.cjs.map} +1 -1
- package/dist/{DMYPP6MX.cjs → C7WLBLDI.cjs} +11 -11
- package/dist/C7WLBLDI.cjs.map +1 -0
- package/dist/{QBO6KNUH.cjs → CCKCKIBV.cjs} +4 -4
- package/dist/{QBO6KNUH.cjs.map → CCKCKIBV.cjs.map} +1 -1
- package/dist/{scripts/generate-github-matrix.js → D2W5CUS2.js} +56 -66
- package/dist/D2W5CUS2.js.map +1 -0
- package/dist/{TJ323KPL.cjs → D5NZ2LLF.cjs} +8 -8
- package/dist/{TJ323KPL.cjs.map → D5NZ2LLF.cjs.map} +1 -1
- package/dist/{NMDQTUBH.js → FQHJEYC5.js} +10 -10
- package/dist/FQHJEYC5.js.map +1 -0
- package/dist/{BMCP2GAK.cjs → GB4RG4YH.cjs} +83 -40
- package/dist/GB4RG4YH.cjs.map +1 -0
- package/dist/H6ZWRX4I.cjs +71 -0
- package/dist/H6ZWRX4I.cjs.map +1 -0
- package/dist/HH7R2XAD.cjs +44 -0
- package/dist/HH7R2XAD.cjs.map +1 -0
- package/dist/IGVQSSKE.cjs +12 -0
- package/dist/IGVQSSKE.cjs.map +1 -0
- package/dist/IKBAJOTL.js +121 -0
- package/dist/IKBAJOTL.js.map +1 -0
- package/dist/{6TADYYIQ.js → JFX35GR2.js} +3 -3
- package/dist/{6TADYYIQ.js.map → JFX35GR2.js.map} +1 -1
- package/dist/{2HHN5KHW.cjs → JUMGXR5I.cjs} +67 -67
- package/dist/{2HHN5KHW.cjs.map → JUMGXR5I.cjs.map} +1 -1
- package/dist/{QBBWWA5T.js → LQNTMID2.js} +7 -7
- package/dist/{QBBWWA5T.js.map → LQNTMID2.js.map} +1 -1
- package/dist/{JFZ5X2XX.cjs → LS4PZK5Q.cjs} +2 -2
- package/dist/LS4PZK5Q.cjs.map +1 -0
- package/dist/{HSLJBWIL.js → MQNCJPBY.js} +8 -8
- package/dist/{HSLJBWIL.js.map → MQNCJPBY.js.map} +1 -1
- package/dist/{scripts/generate-github-matrix.cjs → NHZ56QQ6.cjs} +185 -195
- package/dist/NHZ56QQ6.cjs.map +1 -0
- package/dist/NIOWT3K2.cjs +118 -0
- package/dist/NIOWT3K2.cjs.map +1 -0
- package/dist/ODGKXOOP.js +12 -0
- package/dist/ODGKXOOP.js.map +1 -0
- package/dist/{YEYJXWXC.cjs → P2D6TBR2.cjs} +96 -96
- package/dist/{YEYJXWXC.cjs.map → P2D6TBR2.cjs.map} +1 -1
- package/dist/{BWHCSCR3.cjs → PAU3G3SR.cjs} +74 -74
- package/dist/{BWHCSCR3.cjs.map → PAU3G3SR.cjs.map} +1 -1
- package/dist/QE6MLWSK.cjs +129 -0
- package/dist/QE6MLWSK.cjs.map +1 -0
- package/dist/{ZQVRXHCJ.js → QSGRIGIB.js} +5 -5
- package/dist/{ZQVRXHCJ.js.map → QSGRIGIB.js.map} +1 -1
- package/dist/QTKMYYBJ.js +20 -0
- package/dist/QTKMYYBJ.js.map +1 -0
- package/dist/{4ZP6FU3S.js → R5CQAJPE.js} +6 -6
- package/dist/{4ZP6FU3S.js.map → R5CQAJPE.js.map} +1 -1
- package/dist/ROMZWOXP.js +21 -0
- package/dist/ROMZWOXP.js.map +1 -0
- package/dist/RT6XP6RO.js +10 -0
- package/dist/RT6XP6RO.js.map +1 -0
- package/dist/TC4EVJWZ.js +96 -0
- package/dist/TC4EVJWZ.js.map +1 -0
- package/dist/{DJEOCSEX.js → TKT5HVBW.js} +80 -38
- package/dist/TKT5HVBW.js.map +1 -0
- package/dist/TXQ7DL7M.cjs +48 -0
- package/dist/TXQ7DL7M.cjs.map +1 -0
- package/dist/{ZGCH6KFP.cjs → UPZFEE7V.cjs} +3 -3
- package/dist/{ZGCH6KFP.cjs.map → UPZFEE7V.cjs.map} +1 -1
- package/dist/UTB7ZC7B.js +37 -0
- package/dist/UTB7ZC7B.js.map +1 -0
- package/dist/{BBFGL4TE.js → V7WCPKFN.js} +3 -3
- package/dist/{BBFGL4TE.js.map → V7WCPKFN.js.map} +1 -1
- package/dist/WZTIMOLE.cjs +17 -0
- package/dist/WZTIMOLE.cjs.map +1 -0
- package/dist/{AZ72HVYT.js → XCUEIITH.js} +3 -3
- package/dist/{AZ72HVYT.js.map → XCUEIITH.js.map} +1 -1
- package/dist/YEY7RJOA.cjs +59 -0
- package/dist/YEY7RJOA.cjs.map +1 -0
- package/dist/YG4DCXY2.js +17 -0
- package/dist/YG4DCXY2.js.map +1 -0
- package/dist/{YOVSGKIQ.cjs → ZI7GOR2D.cjs} +5 -5
- package/dist/{YOVSGKIQ.cjs.map → ZI7GOR2D.cjs.map} +1 -1
- package/dist/cli.cjs +29 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +20 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.cjs +25 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -0
- package/dist/context.cjs +8 -0
- package/dist/context.cjs.map +1 -0
- package/dist/context.d.ts +8 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -0
- package/dist/core/index.cjs +9 -8
- package/dist/core/index.js +7 -6
- package/dist/core/lock.test.cjs +18364 -6
- package/dist/core/lock.test.cjs.map +1 -1
- package/dist/core/lock.test.js +18360 -2
- package/dist/core/lock.test.js.map +1 -1
- package/dist/core/tool-executor.cjs +8 -7
- package/dist/core/tool-executor.d.ts +2 -1
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +7 -6
- package/dist/core/version-resolver.cjs +4 -5
- package/dist/core/version-resolver.d.ts +2 -4
- package/dist/core/version-resolver.d.ts.map +1 -1
- package/dist/core/version-resolver.js +3 -4
- package/dist/display/formatters.cjs +4 -5
- package/dist/display/formatters.d.ts +2 -1
- package/dist/display/formatters.d.ts.map +1 -1
- package/dist/display/formatters.js +3 -4
- package/dist/display/index.cjs +7 -8
- package/dist/display/index.js +4 -5
- package/dist/display/version-display.cjs +6 -7
- package/dist/display/version-display.d.ts +3 -2
- package/dist/display/version-display.d.ts.map +1 -1
- package/dist/display/version-display.js +4 -5
- package/dist/github/index.cjs +28 -0
- package/dist/github/index.d.ts +3 -0
- package/dist/github/index.d.ts.map +1 -0
- package/dist/github/index.js +19 -0
- package/dist/github/matrix.cjs +27 -0
- package/dist/github/matrix.cjs.map +1 -0
- package/dist/github/matrix.d.ts +11 -0
- package/dist/github/matrix.d.ts.map +1 -0
- package/dist/github/matrix.js +18 -0
- package/dist/github/matrix.js.map +1 -0
- package/dist/index.cjs +47 -143
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -139
- package/dist/index.js.map +1 -1
- package/dist/test.cjs +16 -0
- package/dist/test.cjs.map +1 -0
- package/dist/test.d.ts +5 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +7 -0
- package/dist/test.js.map +1 -0
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/tool.cjs +1 -1
- package/dist/types/tool.d.ts +2 -3
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +1 -1
- package/dist/utils/docker.cjs +7 -8
- package/dist/utils/docker.d.ts +2 -1
- package/dist/utils/docker.d.ts.map +1 -1
- package/dist/utils/docker.js +3 -4
- package/dist/utils/finder.cjs +6 -20
- package/dist/utils/finder.d.ts +5 -11
- package/dist/utils/finder.d.ts.map +1 -1
- package/dist/utils/finder.js +1 -3
- package/dist/utils/version.cjs +3 -13
- package/dist/utils/version.d.ts +0 -8
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +1 -3
- package/dist/utils.cjs +3 -8
- package/dist/utils.d.ts +2 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -3
- package/package.json +5 -15
- package/bin/lz-tool.js +0 -3
- package/dist/2MUIAEPQ.js +0 -19
- package/dist/2MUIAEPQ.js.map +0 -1
- package/dist/5CA2MJIS.js +0 -50
- package/dist/5CA2MJIS.js.map +0 -1
- package/dist/AUN5HLEO.js +0 -74
- package/dist/AUN5HLEO.js.map +0 -1
- package/dist/BMCP2GAK.cjs.map +0 -1
- package/dist/BWZQ2EK3.cjs +0 -174
- package/dist/BWZQ2EK3.cjs.map +0 -1
- package/dist/C3MB52UB.js +0 -57
- package/dist/C3MB52UB.js.map +0 -1
- package/dist/C7XQ4J6P.cjs +0 -77
- package/dist/C7XQ4J6P.cjs.map +0 -1
- package/dist/CFH3LMNQ.js +0 -172
- package/dist/CFH3LMNQ.js.map +0 -1
- package/dist/D4JJRRKM.cjs +0 -59
- package/dist/D4JJRRKM.cjs.map +0 -1
- package/dist/DJEOCSEX.js.map +0 -1
- package/dist/DMYPP6MX.cjs.map +0 -1
- package/dist/E2R2CEJX.js.map +0 -1
- package/dist/EPZMMJJM.cjs +0 -48
- package/dist/EPZMMJJM.cjs.map +0 -1
- package/dist/HOYNWNJF.cjs +0 -31
- package/dist/HOYNWNJF.cjs.map +0 -1
- package/dist/JFZ5X2XX.cjs.map +0 -1
- package/dist/JGQER3LN.js +0 -18362
- package/dist/JGQER3LN.js.map +0 -1
- package/dist/LHW2PX7Q.js +0 -26
- package/dist/LHW2PX7Q.js.map +0 -1
- package/dist/N75TYAV7.cjs +0 -17
- package/dist/N75TYAV7.cjs.map +0 -1
- package/dist/NE2GC3QQ.js +0 -29
- package/dist/NE2GC3QQ.js.map +0 -1
- package/dist/NJHTTAZO.js +0 -302
- package/dist/NJHTTAZO.js.map +0 -1
- package/dist/NMDQTUBH.js.map +0 -1
- package/dist/OIQNGJJN.cjs +0 -72
- package/dist/OIQNGJJN.cjs.map +0 -1
- package/dist/PGNYV6JB.cjs +0 -348
- package/dist/PGNYV6JB.cjs.map +0 -1
- package/dist/PRZAVZZK.js +0 -126
- package/dist/PRZAVZZK.js.map +0 -1
- package/dist/RX6UCCGP.cjs +0 -21
- package/dist/RX6UCCGP.cjs.map +0 -1
- package/dist/S5MXARAC.cjs +0 -86
- package/dist/S5MXARAC.cjs.map +0 -1
- package/dist/SVR4SNIY.js +0 -15
- package/dist/SVR4SNIY.js.map +0 -1
- package/dist/WXRRMF3Z.js +0 -84
- package/dist/WXRRMF3Z.js.map +0 -1
- package/dist/WY7ZZTBQ.cjs +0 -18365
- package/dist/WY7ZZTBQ.cjs.map +0 -1
- package/dist/XQXZQWDP.cjs +0 -128
- package/dist/XQXZQWDP.cjs.map +0 -1
- package/dist/commands/aptos.cjs +0 -22
- package/dist/commands/aptos.cjs.map +0 -1
- package/dist/commands/aptos.d.ts +0 -3
- package/dist/commands/aptos.d.ts.map +0 -1
- package/dist/commands/aptos.js +0 -13
- package/dist/commands/aptos.js.map +0 -1
- package/dist/commands/iota.cjs +0 -23
- package/dist/commands/iota.cjs.map +0 -1
- package/dist/commands/iota.d.ts +0 -3
- package/dist/commands/iota.d.ts.map +0 -1
- package/dist/commands/iota.js +0 -14
- package/dist/commands/iota.js.map +0 -1
- package/dist/commands/starknet.cjs +0 -13
- package/dist/commands/starknet.cjs.map +0 -1
- package/dist/commands/starknet.d.ts +0 -2
- package/dist/commands/starknet.d.ts.map +0 -1
- package/dist/commands/starknet.js +0 -4
- package/dist/commands/starknet.js.map +0 -1
- package/dist/commands/sui.cjs +0 -23
- package/dist/commands/sui.cjs.map +0 -1
- package/dist/commands/sui.d.ts +0 -3
- package/dist/commands/sui.d.ts.map +0 -1
- package/dist/commands/sui.js +0 -14
- package/dist/commands/sui.js.map +0 -1
- package/dist/commands/utility/sui-like.cjs +0 -22
- package/dist/commands/utility/sui-like.cjs.map +0 -1
- package/dist/commands/utility/sui-like.d.ts +0 -16
- package/dist/commands/utility/sui-like.d.ts.map +0 -1
- package/dist/commands/utility/sui-like.js +0 -13
- package/dist/commands/utility/sui-like.js.map +0 -1
- package/dist/config/docker-images.cjs +0 -13
- package/dist/config/docker-images.cjs.map +0 -1
- package/dist/config/docker-images.d.ts +0 -166
- package/dist/config/docker-images.d.ts.map +0 -1
- package/dist/config/docker-images.js +0 -4
- package/dist/config/docker-images.js.map +0 -1
- package/dist/config/docker-images.test.cjs +0 -21
- package/dist/config/docker-images.test.cjs.map +0 -1
- package/dist/config/docker-images.test.js +0 -19
- package/dist/config/docker-images.test.js.map +0 -1
- package/dist/config/index.cjs +0 -47
- package/dist/config/index.d.ts +0 -8
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -6
- package/dist/config/tools.cjs +0 -23
- package/dist/config/tools.cjs.map +0 -1
- package/dist/config/tools.d.ts +0 -8
- package/dist/config/tools.d.ts.map +0 -1
- package/dist/config/tools.js +0 -6
- package/dist/config/tools.js.map +0 -1
- package/dist/config/version-matrices.cjs +0 -13
- package/dist/config/version-matrices.cjs.map +0 -1
- package/dist/config/version-matrices.d.ts +0 -15
- package/dist/config/version-matrices.d.ts.map +0 -1
- package/dist/config/version-matrices.js +0 -4
- package/dist/config/version-matrices.js.map +0 -1
- package/dist/scripts/generate-github-matrix.cjs.map +0 -1
- package/dist/scripts/generate-github-matrix.d.ts +0 -2
- package/dist/scripts/generate-github-matrix.d.ts.map +0 -1
- package/dist/scripts/generate-github-matrix.js.map +0 -1
- /package/dist/{config → github}/index.cjs.map +0 -0
- /package/dist/{config → github}/index.js.map +0 -0
package/dist/QTKMYYBJ.js
ADDED
|
@@ -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('./
|
|
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('./
|
|
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('./
|
|
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=
|
|
350
|
-
//# sourceMappingURL=
|
|
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"]}
|
package/dist/ROMZWOXP.js
ADDED
|
@@ -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"]}
|
package/dist/RT6XP6RO.js
ADDED
|
@@ -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"]}
|
package/dist/TC4EVJWZ.js
ADDED
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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 ${
|
|
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(
|
|
80
|
+
const resolvedVersion = resolveTypeVersions(context, versions)[tool.name];
|
|
75
81
|
if (!resolvedVersion) {
|
|
76
|
-
throw new Error(`No version resolved for tool ${
|
|
82
|
+
throw new Error(`No version resolved for tool ${tool.name}`);
|
|
77
83
|
}
|
|
78
|
-
console.info(`\u{1F527} ${
|
|
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
|
|
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(
|
|
100
|
+
await ensureDockerImage(imageUri);
|
|
95
101
|
if (entrypoint?.trim()) {
|
|
96
102
|
console.info(`\u{1F527} Using custom entrypoint: ${entrypoint}`);
|
|
97
103
|
}
|
|
98
|
-
const
|
|
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
|
-
|
|
101
|
-
]
|
|
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
|
|
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
|
-
|
|
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
|
-
] : []), () =>
|
|
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=
|
|
157
|
-
//# sourceMappingURL=
|
|
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"]}
|