This repository has been archived on 2024-09-11. You can view files and clone it, but cannot push or open issues or pull requests.
svrjs-blog-newsletter/cronjob/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js

100 lines
3.9 KiB
JavaScript
Raw Normal View History

2024-05-26 22:54:55 +02:00
"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
fromProcess: () => fromProcess
});
module.exports = __toCommonJS(src_exports);
// src/fromProcess.ts
var import_shared_ini_file_loader = require("@smithy/shared-ini-file-loader");
// src/resolveProcessCredentials.ts
var import_property_provider = require("@smithy/property-provider");
var import_child_process = require("child_process");
var import_util = require("util");
// src/getValidatedProcessCredentials.ts
var getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data) => {
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.`);
}
}
return {
accessKeyId: data.AccessKeyId,
secretAccessKey: data.SecretAccessKey,
...data.SessionToken && { sessionToken: data.SessionToken },
...data.Expiration && { expiration: new Date(data.Expiration) },
...data.CredentialScope && { credentialScope: data.CredentialScope }
};
}, "getValidatedProcessCredentials");
// src/resolveProcessCredentials.ts
var resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles) => {
const profile = profiles[profileName];
if (profiles[profileName]) {
const credentialProcess = profile["credential_process"];
if (credentialProcess !== void 0) {
const execPromise = (0, import_util.promisify)(import_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);
} catch (error) {
throw new import_property_provider.CredentialsProviderError(error.message);
}
} else {
throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`);
}
} else {
throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`);
}
}, "resolveProcessCredentials");
// src/fromProcess.ts
var fromProcess = /* @__PURE__ */ __name((init = {}) => async () => {
var _a;
(_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-process", "fromProcess");
const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);
return resolveProcessCredentials((0, import_shared_ini_file_loader.getProfileName)(init), profiles);
}, "fromProcess");
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
fromProcess
});