@aws-sdk/credential-providers
Advanced tools
Comparing version
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fromTemporaryCredentials = void 0; | ||
const property_provider_1 = require("@smithy/property-provider"); | ||
const fromTemporaryCredentials = (options, credentialDefaultProvider) => { | ||
let stsClient; | ||
return async (awsIdentityProperties = {}) => { | ||
options.logger?.debug("@aws-sdk/credential-providers - fromTemporaryCredentials (STS)"); | ||
const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? "aws-sdk-js-" + Date.now() }; | ||
if (params?.SerialNumber) { | ||
if (!options.mfaCodeProvider) { | ||
throw new property_provider_1.CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, { | ||
tryNextLink: false, | ||
logger: options.logger, | ||
}); | ||
} | ||
params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber); | ||
} | ||
const { AssumeRoleCommand, STSClient } = await Promise.resolve().then(() => __importStar(require("./loadSts"))); | ||
if (!stsClient) { | ||
const defaultCredentialsOrError = typeof credentialDefaultProvider === "function" ? credentialDefaultProvider() : undefined; | ||
const { callerClientConfig } = awsIdentityProperties; | ||
stsClient = new STSClient({ | ||
...options.clientConfig, | ||
credentials: options.masterCredentials ?? | ||
options.clientConfig?.credentials ?? | ||
callerClientConfig?.credentialDefaultProvider?.() ?? | ||
defaultCredentialsOrError, | ||
}); | ||
} | ||
if (options.clientPlugins) { | ||
for (const plugin of options.clientPlugins) { | ||
stsClient.middlewareStack.use(plugin); | ||
} | ||
} | ||
const { Credentials } = await stsClient.send(new AssumeRoleCommand(params)); | ||
if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { | ||
throw new property_provider_1.CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, { | ||
logger: options.logger, | ||
}); | ||
} | ||
return { | ||
accessKeyId: Credentials.AccessKeyId, | ||
secretAccessKey: Credentials.SecretAccessKey, | ||
sessionToken: Credentials.SessionToken, | ||
expiration: Credentials.Expiration, | ||
credentialScope: Credentials.CredentialScope, | ||
}; | ||
}; | ||
}; | ||
exports.fromTemporaryCredentials = fromTemporaryCredentials; | ||
var fromTemporaryCredentials_base_1 = require("./fromTemporaryCredentials.base"); | ||
Object.defineProperty(exports, "fromTemporaryCredentials", { enumerable: true, get: function () { return fromTemporaryCredentials_base_1.fromTemporaryCredentials; } }); |
@@ -5,6 +5,6 @@ "use strict"; | ||
const fromNodeProviderChain_1 = require("./fromNodeProviderChain"); | ||
const fromTemporaryCredentials_browser_1 = require("./fromTemporaryCredentials.browser"); | ||
const fromTemporaryCredentials_base_1 = require("./fromTemporaryCredentials.base"); | ||
const fromTemporaryCredentials = (options) => { | ||
return (0, fromTemporaryCredentials_browser_1.fromTemporaryCredentials)(options, fromNodeProviderChain_1.fromNodeProviderChain); | ||
return (0, fromTemporaryCredentials_base_1.fromTemporaryCredentials)(options, fromNodeProviderChain_1.fromNodeProviderChain); | ||
}; | ||
exports.fromTemporaryCredentials = fromTemporaryCredentials; |
@@ -1,47 +0,1 @@ | ||
import { CredentialsProviderError } from "@smithy/property-provider"; | ||
export const fromTemporaryCredentials = (options, credentialDefaultProvider) => { | ||
let stsClient; | ||
return async (awsIdentityProperties = {}) => { | ||
options.logger?.debug("@aws-sdk/credential-providers - fromTemporaryCredentials (STS)"); | ||
const params = { ...options.params, RoleSessionName: options.params.RoleSessionName ?? "aws-sdk-js-" + Date.now() }; | ||
if (params?.SerialNumber) { | ||
if (!options.mfaCodeProvider) { | ||
throw new CredentialsProviderError(`Temporary credential requires multi-factor authentication, but no MFA code callback was provided.`, { | ||
tryNextLink: false, | ||
logger: options.logger, | ||
}); | ||
} | ||
params.TokenCode = await options.mfaCodeProvider(params?.SerialNumber); | ||
} | ||
const { AssumeRoleCommand, STSClient } = await import("./loadSts"); | ||
if (!stsClient) { | ||
const defaultCredentialsOrError = typeof credentialDefaultProvider === "function" ? credentialDefaultProvider() : undefined; | ||
const { callerClientConfig } = awsIdentityProperties; | ||
stsClient = new STSClient({ | ||
...options.clientConfig, | ||
credentials: options.masterCredentials ?? | ||
options.clientConfig?.credentials ?? | ||
callerClientConfig?.credentialDefaultProvider?.() ?? | ||
defaultCredentialsOrError, | ||
}); | ||
} | ||
if (options.clientPlugins) { | ||
for (const plugin of options.clientPlugins) { | ||
stsClient.middlewareStack.use(plugin); | ||
} | ||
} | ||
const { Credentials } = await stsClient.send(new AssumeRoleCommand(params)); | ||
if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { | ||
throw new CredentialsProviderError(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`, { | ||
logger: options.logger, | ||
}); | ||
} | ||
return { | ||
accessKeyId: Credentials.AccessKeyId, | ||
secretAccessKey: Credentials.SecretAccessKey, | ||
sessionToken: Credentials.SessionToken, | ||
expiration: Credentials.Expiration, | ||
credentialScope: Credentials.CredentialScope, | ||
}; | ||
}; | ||
}; | ||
export { fromTemporaryCredentials } from "./fromTemporaryCredentials.base"; |
import { fromNodeProviderChain } from "./fromNodeProviderChain"; | ||
import { fromTemporaryCredentials as fromTemporaryCredentialsBase } from "./fromTemporaryCredentials.browser"; | ||
import { fromTemporaryCredentials as fromTemporaryCredentialsBase } from "./fromTemporaryCredentials.base"; | ||
export const fromTemporaryCredentials = (options) => { | ||
return fromTemporaryCredentialsBase(options, fromNodeProviderChain); | ||
}; |
@@ -1,13 +0,1 @@ | ||
import type { AssumeRoleCommandInput, STSClientConfig } from "@aws-sdk/nested-clients/sts"; | ||
import type { CredentialProviderOptions, RuntimeConfigAwsCredentialIdentityProvider } from "@aws-sdk/types"; | ||
import { AwsCredentialIdentity, AwsCredentialIdentityProvider, Pluggable } from "@smithy/types"; | ||
export interface FromTemporaryCredentialsOptions extends CredentialProviderOptions { | ||
params: Omit<AssumeRoleCommandInput, "RoleSessionName"> & { | ||
RoleSessionName?: string; | ||
}; | ||
masterCredentials?: AwsCredentialIdentity | AwsCredentialIdentityProvider; | ||
clientConfig?: STSClientConfig; | ||
clientPlugins?: Pluggable<any, any>[]; | ||
mfaCodeProvider?: (mfaSerial: string) => Promise<string>; | ||
} | ||
export declare const fromTemporaryCredentials: (options: FromTemporaryCredentialsOptions, credentialDefaultProvider?: () => AwsCredentialIdentityProvider) => RuntimeConfigAwsCredentialIdentityProvider; | ||
export { FromTemporaryCredentialsOptions, fromTemporaryCredentials } from "./fromTemporaryCredentials.base"; |
import type { RuntimeConfigAwsCredentialIdentityProvider } from "@aws-sdk/types"; | ||
import type { FromTemporaryCredentialsOptions } from "./fromTemporaryCredentials.browser"; | ||
import type { FromTemporaryCredentialsOptions } from "./fromTemporaryCredentials.base"; | ||
/** | ||
@@ -4,0 +4,0 @@ * @public |
@@ -1,30 +0,4 @@ | ||
import { | ||
AssumeRoleCommandInput, | ||
STSClientConfig, | ||
} from "@aws-sdk/nested-clients/sts"; | ||
import { | ||
CredentialProviderOptions, | ||
RuntimeConfigAwsCredentialIdentityProvider, | ||
} from "@aws-sdk/types"; | ||
import { | ||
AwsCredentialIdentity, | ||
AwsCredentialIdentityProvider, | ||
Pluggable, | ||
} from "@smithy/types"; | ||
export interface FromTemporaryCredentialsOptions | ||
extends CredentialProviderOptions { | ||
params: Pick< | ||
AssumeRoleCommandInput, | ||
Exclude<keyof AssumeRoleCommandInput, "RoleSessionName"> | ||
> & { | ||
RoleSessionName?: string; | ||
}; | ||
masterCredentials?: AwsCredentialIdentity | AwsCredentialIdentityProvider; | ||
clientConfig?: STSClientConfig; | ||
clientPlugins?: Pluggable<any, any>[]; | ||
mfaCodeProvider?: (mfaSerial: string) => Promise<string>; | ||
} | ||
export declare const fromTemporaryCredentials: ( | ||
options: FromTemporaryCredentialsOptions, | ||
credentialDefaultProvider?: () => AwsCredentialIdentityProvider | ||
) => RuntimeConfigAwsCredentialIdentityProvider; | ||
export { | ||
FromTemporaryCredentialsOptions, | ||
fromTemporaryCredentials, | ||
} from "./fromTemporaryCredentials.base"; |
import { RuntimeConfigAwsCredentialIdentityProvider } from "@aws-sdk/types"; | ||
import { FromTemporaryCredentialsOptions } from "./fromTemporaryCredentials.browser"; | ||
import { FromTemporaryCredentialsOptions } from "./fromTemporaryCredentials.base"; | ||
export { FromTemporaryCredentialsOptions }; | ||
@@ -4,0 +4,0 @@ export declare const fromTemporaryCredentials: ( |
{ | ||
"name": "@aws-sdk/credential-providers", | ||
"version": "3.731.1", | ||
"version": "3.733.0", | ||
"description": "A collection of credential providers, without requiring service clients like STS, Cognito", | ||
@@ -5,0 +5,0 @@ "main": "./dist-cjs/index.js", |
106907
0.61%75
5.63%1128
0.98%