import {
  ProviderError
} from "./chunk-S4LJWEXU.js";

// ../../.yarn/cache/@smithy-property-provider-npm-4.2.5-86dfaa488e-bea8cf1758.zip/node_modules/@smithy/property-provider/dist-es/chain.js
var chain = (...providers) => async () => {
  if (providers.length === 0) {
    throw new ProviderError("No providers in chain");
  }
  let lastProviderError;
  for (const provider of providers) {
    try {
      const credentials = await provider();
      return credentials;
    } catch (err) {
      lastProviderError = err;
      if (err?.tryNextLink) {
        continue;
      }
      throw err;
    }
  }
  throw lastProviderError;
};

export {
  chain
};
