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-cognito-identity/dist-cjs/index.js
2024-05-26 22:54:55 +02:00

288 lines
9.7 KiB
JavaScript

"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 __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
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/loadCognitoIdentity.ts
var loadCognitoIdentity_exports = {};
__export(loadCognitoIdentity_exports, {
CognitoIdentityClient: () => import_client_cognito_identity.CognitoIdentityClient,
GetCredentialsForIdentityCommand: () => import_client_cognito_identity.GetCredentialsForIdentityCommand,
GetIdCommand: () => import_client_cognito_identity.GetIdCommand
});
var import_client_cognito_identity;
var init_loadCognitoIdentity = __esm({
"src/loadCognitoIdentity.ts"() {
"use strict";
import_client_cognito_identity = require("@aws-sdk/client-cognito-identity");
}
});
// src/index.ts
var src_exports = {};
__export(src_exports, {
fromCognitoIdentity: () => fromCognitoIdentity,
fromCognitoIdentityPool: () => fromCognitoIdentityPool
});
module.exports = __toCommonJS(src_exports);
// src/fromCognitoIdentity.ts
var import_property_provider = require("@smithy/property-provider");
// src/resolveLogins.ts
function resolveLogins(logins) {
return Promise.all(
Object.keys(logins).reduce((arr, name) => {
const tokenOrProvider = logins[name];
if (typeof tokenOrProvider === "string") {
arr.push([name, tokenOrProvider]);
} else {
arr.push(tokenOrProvider().then((token) => [name, token]));
}
return arr;
}, [])
).then(
(resolvedPairs) => resolvedPairs.reduce((logins2, [key, value]) => {
logins2[key] = value;
return logins2;
}, {})
);
}
__name(resolveLogins, "resolveLogins");
// src/fromCognitoIdentity.ts
function fromCognitoIdentity(parameters) {
return async () => {
var _a, _b, _c;
(_a = parameters.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-cognito-identity", "fromCognitoIdentity");
const { GetCredentialsForIdentityCommand: GetCredentialsForIdentityCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));
const {
Credentials: {
AccessKeyId = throwOnMissingAccessKeyId(),
Expiration,
SecretKey = throwOnMissingSecretKey(),
SessionToken
} = throwOnMissingCredentials()
} = await (parameters.client ?? new CognitoIdentityClient2(
Object.assign({}, parameters.clientConfig ?? {}, {
region: ((_b = parameters.clientConfig) == null ? void 0 : _b.region) ?? ((_c = parameters.parentClientConfig) == null ? void 0 : _c.region)
})
)).send(
new GetCredentialsForIdentityCommand2({
CustomRoleArn: parameters.customRoleArn,
IdentityId: parameters.identityId,
Logins: parameters.logins ? await resolveLogins(parameters.logins) : void 0
})
);
return {
identityId: parameters.identityId,
accessKeyId: AccessKeyId,
secretAccessKey: SecretKey,
sessionToken: SessionToken,
expiration: Expiration
};
};
}
__name(fromCognitoIdentity, "fromCognitoIdentity");
function throwOnMissingAccessKeyId() {
throw new import_property_provider.CredentialsProviderError("Response from Amazon Cognito contained no access key ID");
}
__name(throwOnMissingAccessKeyId, "throwOnMissingAccessKeyId");
function throwOnMissingCredentials() {
throw new import_property_provider.CredentialsProviderError("Response from Amazon Cognito contained no credentials");
}
__name(throwOnMissingCredentials, "throwOnMissingCredentials");
function throwOnMissingSecretKey() {
throw new import_property_provider.CredentialsProviderError("Response from Amazon Cognito contained no secret key");
}
__name(throwOnMissingSecretKey, "throwOnMissingSecretKey");
// src/fromCognitoIdentityPool.ts
// src/IndexedDbStorage.ts
var STORE_NAME = "IdentityIds";
var _IndexedDbStorage = class _IndexedDbStorage {
constructor(dbName = "aws:cognito-identity-ids") {
this.dbName = dbName;
}
getItem(key) {
return this.withObjectStore("readonly", (store) => {
const req = store.get(key);
return new Promise((resolve) => {
req.onerror = () => resolve(null);
req.onsuccess = () => resolve(req.result ? req.result.value : null);
});
}).catch(() => null);
}
removeItem(key) {
return this.withObjectStore("readwrite", (store) => {
const req = store.delete(key);
return new Promise((resolve, reject) => {
req.onerror = () => reject(req.error);
req.onsuccess = () => resolve();
});
});
}
setItem(id, value) {
return this.withObjectStore("readwrite", (store) => {
const req = store.put({ id, value });
return new Promise((resolve, reject) => {
req.onerror = () => reject(req.error);
req.onsuccess = () => resolve();
});
});
}
getDb() {
const openDbRequest = self.indexedDB.open(this.dbName, 1);
return new Promise((resolve, reject) => {
openDbRequest.onsuccess = () => {
resolve(openDbRequest.result);
};
openDbRequest.onerror = () => {
reject(openDbRequest.error);
};
openDbRequest.onblocked = () => {
reject(new Error("Unable to access DB"));
};
openDbRequest.onupgradeneeded = () => {
const db = openDbRequest.result;
db.onerror = () => {
reject(new Error("Failed to create object store"));
};
db.createObjectStore(STORE_NAME, { keyPath: "id" });
};
});
}
withObjectStore(mode, action) {
return this.getDb().then((db) => {
const tx = db.transaction(STORE_NAME, mode);
tx.oncomplete = () => db.close();
return new Promise((resolve, reject) => {
tx.onerror = () => reject(tx.error);
resolve(action(tx.objectStore(STORE_NAME)));
}).catch((err) => {
db.close();
throw err;
});
});
}
};
__name(_IndexedDbStorage, "IndexedDbStorage");
var IndexedDbStorage = _IndexedDbStorage;
// src/InMemoryStorage.ts
var _InMemoryStorage = class _InMemoryStorage {
constructor(store = {}) {
this.store = store;
}
getItem(key) {
if (key in this.store) {
return this.store[key];
}
return null;
}
removeItem(key) {
delete this.store[key];
}
setItem(key, value) {
this.store[key] = value;
}
};
__name(_InMemoryStorage, "InMemoryStorage");
var InMemoryStorage = _InMemoryStorage;
// src/localStorage.ts
var inMemoryStorage = new InMemoryStorage();
function localStorage() {
if (typeof self === "object" && self.indexedDB) {
return new IndexedDbStorage();
}
if (typeof window === "object" && window.localStorage) {
return window.localStorage;
}
return inMemoryStorage;
}
__name(localStorage, "localStorage");
// src/fromCognitoIdentityPool.ts
function fromCognitoIdentityPool({
accountId,
cache = localStorage(),
client,
clientConfig,
customRoleArn,
identityPoolId,
logins,
userIdentifier = !logins || Object.keys(logins).length === 0 ? "ANONYMOUS" : void 0,
logger,
parentClientConfig
}) {
logger == null ? void 0 : logger.debug("@aws-sdk/credential-provider-cognito-identity", "fromCognitoIdentity");
const cacheKey = userIdentifier ? `aws:cognito-identity-credentials:${identityPoolId}:${userIdentifier}` : void 0;
let provider = /* @__PURE__ */ __name(async () => {
const { GetIdCommand: GetIdCommand2, CognitoIdentityClient: CognitoIdentityClient2 } = await Promise.resolve().then(() => (init_loadCognitoIdentity(), loadCognitoIdentity_exports));
const _client = client ?? new CognitoIdentityClient2(
Object.assign({}, clientConfig ?? {}, { region: (clientConfig == null ? void 0 : clientConfig.region) ?? (parentClientConfig == null ? void 0 : parentClientConfig.region) })
);
let identityId = cacheKey && await cache.getItem(cacheKey);
if (!identityId) {
const { IdentityId = throwOnMissingId() } = await _client.send(
new GetIdCommand2({
AccountId: accountId,
IdentityPoolId: identityPoolId,
Logins: logins ? await resolveLogins(logins) : void 0
})
);
identityId = IdentityId;
if (cacheKey) {
Promise.resolve(cache.setItem(cacheKey, identityId)).catch(() => {
});
}
}
provider = fromCognitoIdentity({
client: _client,
customRoleArn,
logins,
identityId
});
return provider();
}, "provider");
return () => provider().catch(async (err) => {
if (cacheKey) {
Promise.resolve(cache.removeItem(cacheKey)).catch(() => {
});
}
throw err;
});
}
__name(fromCognitoIdentityPool, "fromCognitoIdentityPool");
function throwOnMissingId() {
throw new import_property_provider.CredentialsProviderError("Response from Amazon Cognito contained no identity ID");
}
__name(throwOnMissingId, "throwOnMissingId");
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
fromCognitoIdentity,
fromCognitoIdentityPool
});