'use strict';

var OAYLBSRH_cjs = require('./OAYLBSRH.cjs');
var VVTDADG7_cjs = require('./VVTDADG7.cjs');
require('./DPDVRYLI.cjs');
var BXO3RC75_cjs = require('./BXO3RC75.cjs');
var VO65XOWD_cjs = require('./VO65XOWD.cjs');
var child_process = require('child_process');
var util = require('util');

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/index.js
VO65XOWD_cjs.init_cjs_shims();

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js
VO65XOWD_cjs.init_cjs_shims();

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js
VO65XOWD_cjs.init_cjs_shims();

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/getValidatedProcessCredentials.js
VO65XOWD_cjs.init_cjs_shims();
var getValidatedProcessCredentials = /* @__PURE__ */ VO65XOWD_cjs.__name((profileName, data, profiles) => {
  if (data.Version !== 1) {
    throw Error(`Profile ${profileName} credential_process did not return Version 1.`);
  }
  if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) {
    throw Error(`Profile ${profileName} credential_process returned invalid credentials.`);
  }
  if (data.Expiration) {
    const currentTime = /* @__PURE__ */ new Date();
    const expireTime = new Date(data.Expiration);
    if (expireTime < currentTime) {
      throw Error(`Profile ${profileName} credential_process returned expired credentials.`);
    }
  }
  let accountId = data.AccountId;
  if (!accountId && profiles?.[profileName]?.aws_account_id) {
    accountId = profiles[profileName].aws_account_id;
  }
  const credentials = {
    accessKeyId: data.AccessKeyId,
    secretAccessKey: data.SecretAccessKey,
    ...data.SessionToken && {
      sessionToken: data.SessionToken
    },
    ...data.Expiration && {
      expiration: new Date(data.Expiration)
    },
    ...data.CredentialScope && {
      credentialScope: data.CredentialScope
    },
    ...accountId && {
      accountId
    }
  };
  VVTDADG7_cjs.setCredentialFeature(credentials, "CREDENTIALS_PROCESS", "w");
  return credentials;
}, "getValidatedProcessCredentials");

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js
var resolveProcessCredentials = /* @__PURE__ */ VO65XOWD_cjs.__name(async (profileName, profiles, logger) => {
  const profile = profiles[profileName];
  if (profiles[profileName]) {
    const credentialProcess = profile["credential_process"];
    if (credentialProcess !== void 0) {
      const execPromise = util.promisify(child_process.exec);
      try {
        const { stdout } = await execPromise(credentialProcess);
        let data;
        try {
          data = JSON.parse(stdout.trim());
        } catch {
          throw Error(`Profile ${profileName} credential_process returned invalid JSON.`);
        }
        return getValidatedProcessCredentials(profileName, data, profiles);
      } catch (error) {
        throw new BXO3RC75_cjs.CredentialsProviderError(error.message, {
          logger
        });
      }
    } else {
      throw new BXO3RC75_cjs.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, {
        logger
      });
    }
  } else {
    throw new BXO3RC75_cjs.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, {
      logger
    });
  }
}, "resolveProcessCredentials");

// ../../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.879.0/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js
var fromProcess = /* @__PURE__ */ VO65XOWD_cjs.__name((init = {}) => async ({ callerClientConfig } = {}) => {
  init.logger?.debug("@aws-sdk/credential-provider-process - fromProcess");
  const profiles = await OAYLBSRH_cjs.parseKnownFiles(init);
  return resolveProcessCredentials(OAYLBSRH_cjs.getProfileName({
    profile: init.profile ?? callerClientConfig?.profile
  }), profiles, init.logger);
}, "fromProcess");

exports.fromProcess = fromProcess;
//# sourceMappingURL=4UZKQNSD.cjs.map
//# sourceMappingURL=4UZKQNSD.cjs.map