{"mappings":";AAAO,IAAMA,EAAN,MAAMC,UAAsB,KAAM,CACrC,YAAYC,EAASC,EAAc,GAAM,CACrC,MAAMD,CAAO,EACb,KAAK,YAAcC,EACnB,KAAK,KAAO,gBACZ,OAAO,eAAe,KAAMF,EAAc,SAAS,CACvD,CACA,OAAO,KAAKG,EAAOD,EAAc,GAAM,CACnC,OAAO,OAAO,OAAO,IAAI,KAAKC,EAAM,QAASD,CAAW,EAAGC,CAAK,CACpE,CACJ,ECTO,IAAMC,EAAN,MAAMC,UAAiCC,CAAc,CACxD,YAAYC,EAASC,EAAc,GAAM,CACrC,MAAMD,EAASC,CAAW,EAC1B,KAAK,YAAcA,EACnB,KAAK,KAAO,2BACZ,OAAO,eAAe,KAAMH,EAAyB,SAAS,CAClE,CACJ,ECPO,IAAMI,EAAN,MAAMC,UAA2BC,CAAc,CAClD,YAAYC,EAASC,EAAc,GAAM,CACrC,MAAMD,EAASC,CAAW,EAC1B,KAAK,YAAcA,EACnB,KAAK,KAAO,qBACZ,OAAO,eAAe,KAAMH,EAAmB,SAAS,CAC5D,CACJ,ECPO,IAAMI,EAAQ,IAAIC,IAAc,SAAY,CAC/C,GAAIA,EAAU,SAAW,EACrB,MAAM,IAAIC,EAAc,uBAAuB,EAEnD,IAAIC,EACJ,QAAWC,KAAYH,EACnB,GAAI,CAEA,OADoB,MAAMG,EAAS,CAEvC,OACOC,EAAK,CAER,GADAF,EAAoBE,EAChBA,GAAK,YACL,SAEJ,MAAMA,CACV,CAEJ,MAAMF,CACV,ECpBO,IAAMG,EAAcC,GAAgB,IAAM,QAAQ,QAAQA,CAAW,ECArE,IAAMC,EAAU,CAACC,EAAUC,EAAWC,IAAoB,CAC7D,IAAIC,EACAC,EACAC,EACAC,EAAa,GACXC,EAAmB,SAAY,CAC5BH,IACDA,EAAUJ,EAAS,GAEvB,GAAI,CACAG,EAAW,MAAMC,EACjBC,EAAY,GACZC,EAAa,EACjB,QACA,CACIF,EAAU,MACd,CACA,OAAOD,CACX,EACA,OAAIF,IAAc,OACP,MAAOO,KACN,CAACH,GAAaG,GAAS,gBACvBL,EAAW,MAAMI,EAAiB,GAE/BJ,GAGR,MAAOK,KACN,CAACH,GAAaG,GAAS,gBACvBL,EAAW,MAAMI,EAAiB,GAElCD,EACOH,EAEPD,GAAmB,CAACA,EAAgBC,CAAQ,GAC5CG,EAAa,GACNH,IAEPF,EAAUE,CAAQ,GAClB,MAAMI,EAAiB,EAChBJ,GAInB","names":["ProviderError","_ProviderError","message","tryNextLink","error","CredentialsProviderError","_CredentialsProviderError","ProviderError","message","tryNextLink","TokenProviderError","_TokenProviderError","ProviderError","message","tryNextLink","chain","providers","ProviderError","lastProviderError","provider","err","fromStatic","staticValue","memoize","provider","isExpired","requiresRefresh","resolved","pending","hasResult","isConstant","coalesceProvider","options"],"sources":["../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/ProviderError.js","../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js","../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js","../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/chain.js","../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/fromStatic.js","../esm/npm/@smithy/property-provider@2.2.0/node_modules/@smithy/property-provider/dist-es/memoize.js"],"sourcesContent":["export class ProviderError extends Error {\n    constructor(message, tryNextLink = true) {\n        super(message);\n        this.tryNextLink = tryNextLink;\n        this.name = \"ProviderError\";\n        Object.setPrototypeOf(this, ProviderError.prototype);\n    }\n    static from(error, tryNextLink = true) {\n        return Object.assign(new this(error.message, tryNextLink), error);\n    }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport class CredentialsProviderError extends ProviderError {\n    constructor(message, tryNextLink = true) {\n        super(message, tryNextLink);\n        this.tryNextLink = tryNextLink;\n        this.name = \"CredentialsProviderError\";\n        Object.setPrototypeOf(this, CredentialsProviderError.prototype);\n    }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n    constructor(message, tryNextLink = true) {\n        super(message, tryNextLink);\n        this.tryNextLink = tryNextLink;\n        this.name = \"TokenProviderError\";\n        Object.setPrototypeOf(this, TokenProviderError.prototype);\n    }\n}\n","import { ProviderError } from \"./ProviderError\";\nexport const chain = (...providers) =\u003e async () =\u003e {\n    if (providers.length === 0) {\n        throw new ProviderError(\"No providers in chain\");\n    }\n    let lastProviderError;\n    for (const provider of providers) {\n        try {\n            const credentials = await provider();\n            return credentials;\n        }\n        catch (err) {\n            lastProviderError = err;\n            if (err?.tryNextLink) {\n                continue;\n            }\n            throw err;\n        }\n    }\n    throw lastProviderError;\n};\n","export const fromStatic = (staticValue) =\u003e () =\u003e Promise.resolve(staticValue);\n","export const memoize = (provider, isExpired, requiresRefresh) =\u003e {\n    let resolved;\n    let pending;\n    let hasResult;\n    let isConstant = false;\n    const coalesceProvider = async () =\u003e {\n        if (!pending) {\n            pending = provider();\n        }\n        try {\n            resolved = await pending;\n            hasResult = true;\n            isConstant = false;\n        }\n        finally {\n            pending = undefined;\n        }\n        return resolved;\n    };\n    if (isExpired === undefined) {\n        return async (options) =\u003e {\n            if (!hasResult || options?.forceRefresh) {\n                resolved = await coalesceProvider();\n            }\n            return resolved;\n        };\n    }\n    return async (options) =\u003e {\n        if (!hasResult || options?.forceRefresh) {\n            resolved = await coalesceProvider();\n        }\n        if (isConstant) {\n            return resolved;\n        }\n        if (requiresRefresh \u0026\u0026 !requiresRefresh(resolved)) {\n            isConstant = true;\n            return resolved;\n        }\n        if (isExpired(resolved)) {\n            await coalesceProvider();\n            return resolved;\n        }\n        return resolved;\n    };\n};\n"],"version":3}
