@etainabl/nodejs-sdk 1.3.165 → 1.3.167
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/chunk-3J7VUCCC.js +255 -0
- package/dist/esm/chunk-3J7VUCCC.js.map +1 -0
- package/dist/esm/chunk-5UJEKK4C.js +22 -0
- package/dist/esm/chunk-5UJEKK4C.js.map +1 -0
- package/dist/esm/chunk-72KZNKH6.js +180 -0
- package/dist/esm/chunk-72KZNKH6.js.map +1 -0
- package/dist/esm/{chunk-V42NON4H.js → chunk-7QBJXGSP.js} +23 -1
- package/dist/esm/chunk-7QBJXGSP.js.map +1 -0
- package/dist/esm/{chunk-JFJBZL6W.js → chunk-COGWOFTA.js} +1458 -230
- package/dist/esm/chunk-COGWOFTA.js.map +1 -0
- package/dist/esm/chunk-GA2PLVMV.js +29 -0
- package/dist/esm/chunk-GA2PLVMV.js.map +1 -0
- package/dist/esm/{chunk-ITNQSW66.js → chunk-IMDTX6W5.js} +57 -7
- package/dist/esm/chunk-IMDTX6W5.js.map +1 -0
- package/dist/esm/chunk-JI6PVVK3.js +739 -0
- package/dist/esm/chunk-JI6PVVK3.js.map +1 -0
- package/dist/esm/chunk-KH6HADHN.js +31 -0
- package/dist/esm/chunk-KH6HADHN.js.map +1 -0
- package/dist/esm/{chunk-64PZMULY.js → chunk-LARQKHST.js} +2 -2
- package/dist/esm/chunk-PLDDJCW6.js +49 -0
- package/dist/esm/chunk-R2ZTENKB.js +37 -0
- package/dist/esm/chunk-R2ZTENKB.js.map +1 -0
- package/dist/esm/chunk-RREOR7G6.js +9 -0
- package/dist/esm/chunk-RREOR7G6.js.map +1 -0
- package/dist/esm/chunk-STDLTQUB.js +180 -0
- package/dist/esm/chunk-STDLTQUB.js.map +1 -0
- package/dist/esm/chunk-STQV3LF2.js +29 -0
- package/dist/esm/chunk-STQV3LF2.js.map +1 -0
- package/dist/esm/{chunk-GEJJRBZZ.js → chunk-YFU6P2WU.js} +15 -5
- package/dist/esm/chunk-YFU6P2WU.js.map +1 -0
- package/dist/esm/{chunk-HAEAETXR.js → chunk-ZW5YT27C.js} +55 -96
- package/dist/esm/chunk-ZW5YT27C.js.map +1 -0
- package/dist/esm/{dist-es-UQHTRG6U.js → dist-es-4M6QLI3Z.js} +7 -5
- package/dist/esm/{dist-es-UQHTRG6U.js.map → dist-es-4M6QLI3Z.js.map} +1 -1
- package/dist/esm/{dist-es-W6M73SKO.js → dist-es-DNTTNOP2.js} +6 -5
- package/dist/esm/{dist-es-W6M73SKO.js.map → dist-es-DNTTNOP2.js.map} +1 -1
- package/dist/esm/{dist-es-AV5FKRC6.js → dist-es-LSJVIQHH.js} +12 -7
- package/dist/esm/{dist-es-AV5FKRC6.js.map → dist-es-LSJVIQHH.js.map} +1 -1
- package/dist/esm/{dist-es-IIKV4LDE.js → dist-es-OELE3ZU6.js} +19 -15
- package/dist/esm/{dist-es-IIKV4LDE.js.map → dist-es-OELE3ZU6.js.map} +1 -1
- package/dist/esm/{dist-es-SHHKSG6R.js → dist-es-QLMS2EJQ.js} +4 -3
- package/dist/esm/dist-es-QLMS2EJQ.js.map +1 -0
- package/dist/esm/{dist-es-HQRLUYWI.js → dist-es-RLY6WB4O.js} +4 -3
- package/dist/esm/{dist-es-HQRLUYWI.js.map → dist-es-RLY6WB4O.js.map} +1 -1
- package/dist/esm/{dist-es-CQVI4NNF.js → dist-es-VW2LACDX.js} +53 -14
- package/dist/esm/dist-es-VW2LACDX.js.map +1 -0
- package/dist/esm/event-streams-JLZWM2TX.js +198 -0
- package/dist/esm/event-streams-JLZWM2TX.js.map +1 -0
- package/dist/esm/index.js +68300 -8062
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{loadSso-2Q7LGXOS.js → loadSso-OCDZAUKH.js} +54 -48
- package/dist/esm/loadSso-OCDZAUKH.js.map +1 -0
- package/dist/esm/{sso-oidc-7RZV73L6.js → sso-oidc-M2EXZ76U.js} +38 -34
- package/dist/esm/{sso-oidc-7RZV73L6.js.map → sso-oidc-M2EXZ76U.js.map} +1 -1
- package/dist/esm/{sts-IERANB7E.js → sts-KKJVSQNR.js} +34 -28
- package/dist/esm/{sts-IERANB7E.js.map → sts-KKJVSQNR.js.map} +1 -1
- package/dist/index.d.cts +410 -11
- package/dist/index.d.ts +410 -11
- package/dist/index.js +73994 -13674
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
- package/dist/esm/chunk-3YGWW265.js +0 -64
- package/dist/esm/chunk-3YGWW265.js.map +0 -1
- package/dist/esm/chunk-5VQORBLK.js +0 -136
- package/dist/esm/chunk-5VQORBLK.js.map +0 -1
- package/dist/esm/chunk-6ZE6VFBF.js +0 -2420
- package/dist/esm/chunk-6ZE6VFBF.js.map +0 -1
- package/dist/esm/chunk-GEJJRBZZ.js.map +0 -1
- package/dist/esm/chunk-HAEAETXR.js.map +0 -1
- package/dist/esm/chunk-ITNQSW66.js.map +0 -1
- package/dist/esm/chunk-JFJBZL6W.js.map +0 -1
- package/dist/esm/chunk-JVMEEBKP.js +0 -127
- package/dist/esm/chunk-JVMEEBKP.js.map +0 -1
- package/dist/esm/chunk-V42NON4H.js.map +0 -1
- package/dist/esm/dist-es-CQVI4NNF.js.map +0 -1
- package/dist/esm/loadSso-2Q7LGXOS.js.map +0 -1
- /package/dist/esm/{chunk-64PZMULY.js.map → chunk-LARQKHST.js.map} +0 -0
- /package/dist/esm/{dist-es-SHHKSG6R.js.map → chunk-PLDDJCW6.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../node_modules/@smithy/property-provider/dist-es/TokenProviderError.js","../../node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js","../../node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js","../../node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js","../../node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js","../../node_modules/@aws-sdk/credential-provider-sso/dist-es/isSsoProfile.js","../../node_modules/@aws-sdk/token-providers/dist-es/constants.js","../../node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js","../../node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js","../../node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js","../../node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js","../../node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js","../../node_modules/@aws-sdk/token-providers/dist-es/fromSso.js","../../node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js","../../node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js","../../node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js"],"sourcesContent":["import { ProviderError } from \"./ProviderError\";\nexport class TokenProviderError extends ProviderError {\n constructor(message, options = true) {\n super(message, options);\n this.name = \"TokenProviderError\";\n Object.setPrototypeOf(this, TokenProviderError.prototype);\n }\n}\n","import { createHash } from \"crypto\";\nimport { join } from \"path\";\nimport { getHomeDir } from \"./getHomeDir\";\nexport const getSSOTokenFilepath = (id) => {\n const hasher = createHash(\"sha1\");\n const cacheName = hasher.update(id).digest(\"hex\");\n return join(getHomeDir(), \".aws\", \"sso\", \"cache\", `${cacheName}.json`);\n};\n","import { promises as fsPromises } from \"fs\";\nimport { getSSOTokenFilepath } from \"./getSSOTokenFilepath\";\nconst { readFile } = fsPromises;\nexport const getSSOTokenFromFile = async (id) => {\n const ssoTokenFilepath = getSSOTokenFilepath(id);\n const ssoTokenText = await readFile(ssoTokenFilepath, \"utf8\");\n return JSON.parse(ssoTokenText);\n};\n","import { IniSectionType } from \"@smithy/types\";\nimport { CONFIG_PREFIX_SEPARATOR } from \"./loadSharedConfigFiles\";\nexport const getSsoSessionData = (data) => Object.entries(data)\n .filter(([key]) => key.startsWith(IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR))\n .reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {});\n","import { getConfigFilepath } from \"./getConfigFilepath\";\nimport { getSsoSessionData } from \"./getSsoSessionData\";\nimport { parseIni } from \"./parseIni\";\nimport { slurpFile } from \"./slurpFile\";\nconst swallowError = () => ({});\nexport const loadSsoSessionData = async (init = {}) => slurpFile(init.configFilepath ?? getConfigFilepath())\n .then(parseIni)\n .then(getSsoSessionData)\n .catch(swallowError);\n","export const isSsoProfile = (arg) => arg &&\n (typeof arg.sso_start_url === \"string\" ||\n typeof arg.sso_account_id === \"string\" ||\n typeof arg.sso_session === \"string\" ||\n typeof arg.sso_region === \"string\" ||\n typeof arg.sso_role_name === \"string\");\n","export const EXPIRE_WINDOW_MS = 5 * 60 * 1000;\nexport const REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`;\n","export const getSsoOidcClient = async (ssoRegion, init = {}) => {\n const { SSOOIDCClient } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = new SSOOIDCClient(Object.assign({}, init.clientConfig ?? {}, {\n region: ssoRegion ?? init.clientConfig?.region,\n logger: init.clientConfig?.logger ?? init.parentClientConfig?.logger,\n }));\n return ssoOidcClient;\n};\n","import { getSsoOidcClient } from \"./getSsoOidcClient\";\nexport const getNewSsoOidcToken = async (ssoToken, ssoRegion, init = {}) => {\n const { CreateTokenCommand } = await import(\"@aws-sdk/nested-clients/sso-oidc\");\n const ssoOidcClient = await getSsoOidcClient(ssoRegion, init);\n return ssoOidcClient.send(new CreateTokenCommand({\n clientId: ssoToken.clientId,\n clientSecret: ssoToken.clientSecret,\n refreshToken: ssoToken.refreshToken,\n grantType: \"refresh_token\",\n }));\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenExpiry = (token) => {\n if (token.expiration && token.expiration.getTime() < Date.now()) {\n throw new TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { REFRESH_MESSAGE } from \"./constants\";\nexport const validateTokenKey = (key, value, forRefresh = false) => {\n if (typeof value === \"undefined\") {\n throw new TokenProviderError(`Value not present for '${key}' in SSO Token${forRefresh ? \". Cannot refresh\" : \"\"}. ${REFRESH_MESSAGE}`, false);\n }\n};\n","import { getSSOTokenFilepath } from \"@smithy/shared-ini-file-loader\";\nimport { promises as fsPromises } from \"fs\";\nconst { writeFile } = fsPromises;\nexport const writeSSOTokenToFile = (id, ssoToken) => {\n const tokenFilepath = getSSOTokenFilepath(id);\n const tokenString = JSON.stringify(ssoToken, null, 2);\n return writeFile(tokenFilepath, tokenString);\n};\n","import { TokenProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, getSSOTokenFromFile, loadSsoSessionData, parseKnownFiles, } from \"@smithy/shared-ini-file-loader\";\nimport { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from \"./constants\";\nimport { getNewSsoOidcToken } from \"./getNewSsoOidcToken\";\nimport { validateTokenExpiry } from \"./validateTokenExpiry\";\nimport { validateTokenKey } from \"./validateTokenKey\";\nimport { writeSSOTokenToFile } from \"./writeSSOTokenToFile\";\nconst lastRefreshAttemptTime = new Date(0);\nexport const fromSso = (_init = {}) => async ({ callerClientConfig } = {}) => {\n const init = {\n ..._init,\n parentClientConfig: {\n ...callerClientConfig,\n ..._init.parentClientConfig,\n },\n };\n init.logger?.debug(\"@aws-sdk/token-providers - fromSso\");\n const profiles = await parseKnownFiles(init);\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n const profile = profiles[profileName];\n if (!profile) {\n throw new TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false);\n }\n else if (!profile[\"sso_session\"]) {\n throw new TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`);\n }\n const ssoSessionName = profile[\"sso_session\"];\n const ssoSessions = await loadSsoSessionData(init);\n const ssoSession = ssoSessions[ssoSessionName];\n if (!ssoSession) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' could not be found in shared credentials file.`, false);\n }\n for (const ssoSessionRequiredKey of [\"sso_start_url\", \"sso_region\"]) {\n if (!ssoSession[ssoSessionRequiredKey]) {\n throw new TokenProviderError(`Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, false);\n }\n }\n const ssoStartUrl = ssoSession[\"sso_start_url\"];\n const ssoRegion = ssoSession[\"sso_region\"];\n let ssoToken;\n try {\n ssoToken = await getSSOTokenFromFile(ssoSessionName);\n }\n catch (e) {\n throw new TokenProviderError(`The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, false);\n }\n validateTokenKey(\"accessToken\", ssoToken.accessToken);\n validateTokenKey(\"expiresAt\", ssoToken.expiresAt);\n const { accessToken, expiresAt } = ssoToken;\n const existingToken = { token: accessToken, expiration: new Date(expiresAt) };\n if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) {\n return existingToken;\n }\n if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1000) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n validateTokenKey(\"clientId\", ssoToken.clientId, true);\n validateTokenKey(\"clientSecret\", ssoToken.clientSecret, true);\n validateTokenKey(\"refreshToken\", ssoToken.refreshToken, true);\n try {\n lastRefreshAttemptTime.setTime(Date.now());\n const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init);\n validateTokenKey(\"accessToken\", newSsoOidcToken.accessToken);\n validateTokenKey(\"expiresIn\", newSsoOidcToken.expiresIn);\n const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1000);\n try {\n await writeSSOTokenToFile(ssoSessionName, {\n ...ssoToken,\n accessToken: newSsoOidcToken.accessToken,\n expiresAt: newTokenExpiration.toISOString(),\n refreshToken: newSsoOidcToken.refreshToken,\n });\n }\n catch (error) {\n }\n return {\n token: newSsoOidcToken.accessToken,\n expiration: newTokenExpiration,\n };\n }\n catch (error) {\n validateTokenExpiry(existingToken);\n return existingToken;\n }\n};\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { fromSso as getSsoTokenProvider } from \"@aws-sdk/token-providers\";\nimport { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getSSOTokenFromFile } from \"@smithy/shared-ini-file-loader\";\nconst SHOULD_FAIL_CREDENTIAL_CHAIN = false;\nexport const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, parentClientConfig, profile, logger, }) => {\n let token;\n const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;\n if (ssoSession) {\n try {\n const _token = await getSsoTokenProvider({ profile })();\n token = {\n accessToken: _token.token,\n expiresAt: new Date(_token.expiration).toISOString(),\n };\n }\n catch (e) {\n throw new CredentialsProviderError(e.message, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n else {\n try {\n token = await getSSOTokenFromFile(ssoStartUrl);\n }\n catch (e) {\n throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n }\n if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {\n throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { accessToken } = token;\n const { SSOClient, GetRoleCredentialsCommand } = await import(\"./loadSso\");\n const sso = ssoClient ||\n new SSOClient(Object.assign({}, clientConfig ?? {}, {\n logger: clientConfig?.logger ?? parentClientConfig?.logger,\n region: clientConfig?.region ?? ssoRegion,\n }));\n let ssoResp;\n try {\n ssoResp = await sso.send(new GetRoleCredentialsCommand({\n accountId: ssoAccountId,\n roleName: ssoRoleName,\n accessToken,\n }));\n }\n catch (e) {\n throw new CredentialsProviderError(e, {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {}, } = ssoResp;\n if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {\n throw new CredentialsProviderError(\"SSO returns an invalid temporary credential.\", {\n tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,\n logger,\n });\n }\n const credentials = {\n accessKeyId,\n secretAccessKey,\n sessionToken,\n expiration: new Date(expiration),\n ...(credentialScope && { credentialScope }),\n ...(accountId && { accountId }),\n };\n if (ssoSession) {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO\", \"s\");\n }\n else {\n setCredentialFeature(credentials, \"CREDENTIALS_SSO_LEGACY\", \"u\");\n }\n return credentials;\n};\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nexport const validateSsoProfile = (profile, logger) => {\n const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;\n if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {\n throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters \"sso_account_id\", ` +\n `\"sso_region\", \"sso_role_name\", \"sso_start_url\". Got ${Object.keys(profile).join(\", \")}\\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });\n }\n return profile;\n};\n","import { CredentialsProviderError } from \"@smithy/property-provider\";\nimport { getProfileName, loadSsoSessionData, parseKnownFiles } from \"@smithy/shared-ini-file-loader\";\nimport { isSsoProfile } from \"./isSsoProfile\";\nimport { resolveSSOCredentials } from \"./resolveSSOCredentials\";\nimport { validateSsoProfile } from \"./validateSsoProfile\";\nexport const fromSSO = (init = {}) => async ({ callerClientConfig } = {}) => {\n init.logger?.debug(\"@aws-sdk/credential-provider-sso - fromSSO\");\n const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;\n const { ssoClient } = init;\n const profileName = getProfileName({\n profile: init.profile ?? callerClientConfig?.profile,\n });\n if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) {\n const profiles = await parseKnownFiles(init);\n const profile = profiles[profileName];\n if (!profile) {\n throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });\n }\n if (!isSsoProfile(profile)) {\n throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {\n logger: init.logger,\n });\n }\n if (profile?.sso_session) {\n const ssoSessions = await loadSsoSessionData(init);\n const session = ssoSessions[profile.sso_session];\n const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;\n if (ssoRegion && ssoRegion !== session.sso_region) {\n throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {\n throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {\n tryNextLink: false,\n logger: init.logger,\n });\n }\n profile.sso_region = session.sso_region;\n profile.sso_start_url = session.sso_start_url;\n }\n const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);\n return resolveSSOCredentials({\n ssoStartUrl: sso_start_url,\n ssoSession: sso_session,\n ssoAccountId: sso_account_id,\n ssoRegion: sso_region,\n ssoRoleName: sso_role_name,\n ssoClient: ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {\n throw new CredentialsProviderError(\"Incomplete configuration. The fromSSO() argument hash must include \" +\n '\"ssoStartUrl\", \"ssoAccountId\", \"ssoRegion\", \"ssoRoleName\"', { tryNextLink: false, logger: init.logger });\n }\n else {\n return resolveSSOCredentials({\n ssoStartUrl,\n ssoSession,\n ssoAccountId,\n ssoRegion,\n ssoRoleName,\n ssoClient,\n clientConfig: init.clientConfig,\n parentClientConfig: init.parentClientConfig,\n profile: profileName,\n });\n }\n};\n"],"mappings":"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","names":["fsPromises"]}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SCHEMA
|
|
3
|
+
} from "./chunk-5UJEKK4C.js";
|
|
4
|
+
import {
|
|
5
|
+
fromUtf8
|
|
6
|
+
} from "./chunk-KH6HADHN.js";
|
|
7
|
+
import "./chunk-PLDDJCW6.js";
|
|
8
|
+
|
|
9
|
+
// node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js
|
|
10
|
+
var EventStreamSerde = class {
|
|
11
|
+
constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType }) {
|
|
12
|
+
this.marshaller = marshaller;
|
|
13
|
+
this.serializer = serializer;
|
|
14
|
+
this.deserializer = deserializer;
|
|
15
|
+
this.serdeContext = serdeContext;
|
|
16
|
+
this.defaultContentType = defaultContentType;
|
|
17
|
+
}
|
|
18
|
+
async serializeEventStream({ eventStream, requestSchema, initialRequest }) {
|
|
19
|
+
const marshaller = this.marshaller;
|
|
20
|
+
const eventStreamMember = requestSchema.getEventStreamMember();
|
|
21
|
+
const unionSchema = requestSchema.getMemberSchema(eventStreamMember);
|
|
22
|
+
const memberSchemas = unionSchema.getMemberSchemas();
|
|
23
|
+
const serializer = this.serializer;
|
|
24
|
+
const defaultContentType = this.defaultContentType;
|
|
25
|
+
const initialRequestMarker = Symbol("initialRequestMarker");
|
|
26
|
+
const eventStreamIterable = {
|
|
27
|
+
async *[Symbol.asyncIterator]() {
|
|
28
|
+
if (initialRequest) {
|
|
29
|
+
const headers = {
|
|
30
|
+
":event-type": { type: "string", value: "initial-request" },
|
|
31
|
+
":message-type": { type: "string", value: "event" },
|
|
32
|
+
":content-type": { type: "string", value: defaultContentType }
|
|
33
|
+
};
|
|
34
|
+
serializer.write(requestSchema, initialRequest);
|
|
35
|
+
const body = serializer.flush();
|
|
36
|
+
yield {
|
|
37
|
+
[initialRequestMarker]: true,
|
|
38
|
+
headers,
|
|
39
|
+
body
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
for await (const page of eventStream) {
|
|
43
|
+
yield page;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return marshaller.serialize(eventStreamIterable, (event) => {
|
|
48
|
+
if (event[initialRequestMarker]) {
|
|
49
|
+
return {
|
|
50
|
+
headers: event.headers,
|
|
51
|
+
body: event.body
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const unionMember = Object.keys(event).find((key) => {
|
|
55
|
+
return key !== "__type";
|
|
56
|
+
}) ?? "";
|
|
57
|
+
const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);
|
|
58
|
+
const headers = {
|
|
59
|
+
":event-type": { type: "string", value: eventType },
|
|
60
|
+
":message-type": { type: "string", value: "event" },
|
|
61
|
+
":content-type": { type: "string", value: explicitPayloadContentType ?? defaultContentType },
|
|
62
|
+
...additionalHeaders
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
headers,
|
|
66
|
+
body
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
async deserializeEventStream({ response, responseSchema, initialResponseContainer }) {
|
|
71
|
+
const marshaller = this.marshaller;
|
|
72
|
+
const eventStreamMember = responseSchema.getEventStreamMember();
|
|
73
|
+
const unionSchema = responseSchema.getMemberSchema(eventStreamMember);
|
|
74
|
+
const memberSchemas = unionSchema.getMemberSchemas();
|
|
75
|
+
const initialResponseMarker = Symbol("initialResponseMarker");
|
|
76
|
+
const asyncIterable = marshaller.deserialize(response.body, async (event) => {
|
|
77
|
+
const unionMember = Object.keys(event).find((key) => {
|
|
78
|
+
return key !== "__type";
|
|
79
|
+
}) ?? "";
|
|
80
|
+
if (unionMember === "initial-response") {
|
|
81
|
+
const dataObject = await this.deserializer.read(responseSchema, event[unionMember].body);
|
|
82
|
+
delete dataObject[eventStreamMember];
|
|
83
|
+
return {
|
|
84
|
+
[initialResponseMarker]: true,
|
|
85
|
+
...dataObject
|
|
86
|
+
};
|
|
87
|
+
} else if (unionMember in memberSchemas) {
|
|
88
|
+
const eventStreamSchema = memberSchemas[unionMember];
|
|
89
|
+
return {
|
|
90
|
+
[unionMember]: await this.deserializer.read(eventStreamSchema, event[unionMember].body)
|
|
91
|
+
};
|
|
92
|
+
} else {
|
|
93
|
+
return {
|
|
94
|
+
$unknown: event
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
const asyncIterator = asyncIterable[Symbol.asyncIterator]();
|
|
99
|
+
const firstEvent = await asyncIterator.next();
|
|
100
|
+
if (firstEvent.done) {
|
|
101
|
+
return asyncIterable;
|
|
102
|
+
}
|
|
103
|
+
if (firstEvent.value?.[initialResponseMarker]) {
|
|
104
|
+
if (!responseSchema) {
|
|
105
|
+
throw new Error("@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.");
|
|
106
|
+
}
|
|
107
|
+
for (const [key, value] of Object.entries(firstEvent.value)) {
|
|
108
|
+
initialResponseContainer[key] = value;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
async *[Symbol.asyncIterator]() {
|
|
113
|
+
if (!firstEvent?.value?.[initialResponseMarker]) {
|
|
114
|
+
yield firstEvent.value;
|
|
115
|
+
}
|
|
116
|
+
while (true) {
|
|
117
|
+
const { done, value } = await asyncIterator.next();
|
|
118
|
+
if (done) {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
yield value;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
writeEventBody(unionMember, unionSchema, event) {
|
|
127
|
+
const serializer = this.serializer;
|
|
128
|
+
let eventType = unionMember;
|
|
129
|
+
let explicitPayloadMember = null;
|
|
130
|
+
let explicitPayloadContentType;
|
|
131
|
+
const isKnownSchema = unionSchema.hasMemberSchema(unionMember);
|
|
132
|
+
const additionalHeaders = {};
|
|
133
|
+
if (!isKnownSchema) {
|
|
134
|
+
const [type, value] = event[unionMember];
|
|
135
|
+
eventType = type;
|
|
136
|
+
serializer.write(SCHEMA.DOCUMENT, value);
|
|
137
|
+
} else {
|
|
138
|
+
const eventSchema = unionSchema.getMemberSchema(unionMember);
|
|
139
|
+
if (eventSchema.isStructSchema()) {
|
|
140
|
+
for (const [memberName, memberSchema] of eventSchema.structIterator()) {
|
|
141
|
+
const { eventHeader, eventPayload } = memberSchema.getMergedTraits();
|
|
142
|
+
if (eventPayload) {
|
|
143
|
+
explicitPayloadMember = memberName;
|
|
144
|
+
break;
|
|
145
|
+
} else if (eventHeader) {
|
|
146
|
+
const value = event[unionMember][memberName];
|
|
147
|
+
let type = "binary";
|
|
148
|
+
if (memberSchema.isNumericSchema()) {
|
|
149
|
+
if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) {
|
|
150
|
+
type = "integer";
|
|
151
|
+
} else {
|
|
152
|
+
type = "long";
|
|
153
|
+
}
|
|
154
|
+
} else if (memberSchema.isTimestampSchema()) {
|
|
155
|
+
type = "timestamp";
|
|
156
|
+
} else if (memberSchema.isStringSchema()) {
|
|
157
|
+
type = "string";
|
|
158
|
+
} else if (memberSchema.isBooleanSchema()) {
|
|
159
|
+
type = "boolean";
|
|
160
|
+
}
|
|
161
|
+
if (value != null) {
|
|
162
|
+
additionalHeaders[memberName] = {
|
|
163
|
+
type,
|
|
164
|
+
value
|
|
165
|
+
};
|
|
166
|
+
delete event[unionMember][memberName];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (explicitPayloadMember !== null) {
|
|
171
|
+
const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);
|
|
172
|
+
if (payloadSchema.isBlobSchema()) {
|
|
173
|
+
explicitPayloadContentType = "application/octet-stream";
|
|
174
|
+
} else if (payloadSchema.isStringSchema()) {
|
|
175
|
+
explicitPayloadContentType = "text/plain";
|
|
176
|
+
}
|
|
177
|
+
serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);
|
|
178
|
+
} else {
|
|
179
|
+
serializer.write(eventSchema, event[unionMember]);
|
|
180
|
+
}
|
|
181
|
+
} else {
|
|
182
|
+
throw new Error("@smithy/core/event-streams - non-struct member not supported in event stream union.");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
const messageSerialization = serializer.flush();
|
|
186
|
+
const body = typeof messageSerialization === "string" ? (this.serdeContext?.utf8Decoder ?? fromUtf8)(messageSerialization) : messageSerialization;
|
|
187
|
+
return {
|
|
188
|
+
body,
|
|
189
|
+
eventType,
|
|
190
|
+
explicitPayloadContentType,
|
|
191
|
+
additionalHeaders
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
export {
|
|
196
|
+
EventStreamSerde
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=event-streams-JLZWM2TX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js"],"sourcesContent":["import { SCHEMA } from \"@smithy/core/schema\";\nimport { fromUtf8 } from \"@smithy/util-utf8\";\nexport class EventStreamSerde {\n constructor({ marshaller, serializer, deserializer, serdeContext, defaultContentType, }) {\n this.marshaller = marshaller;\n this.serializer = serializer;\n this.deserializer = deserializer;\n this.serdeContext = serdeContext;\n this.defaultContentType = defaultContentType;\n }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = requestSchema.getEventStreamMember();\n const unionSchema = requestSchema.getMemberSchema(eventStreamMember);\n const memberSchemas = unionSchema.getMemberSchemas();\n const serializer = this.serializer;\n const defaultContentType = this.defaultContentType;\n const initialRequestMarker = Symbol(\"initialRequestMarker\");\n const eventStreamIterable = {\n async *[Symbol.asyncIterator]() {\n if (initialRequest) {\n const headers = {\n \":event-type\": { type: \"string\", value: \"initial-request\" },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: defaultContentType },\n };\n serializer.write(requestSchema, initialRequest);\n const body = serializer.flush();\n yield {\n [initialRequestMarker]: true,\n headers,\n body,\n };\n }\n for await (const page of eventStream) {\n yield page;\n }\n },\n };\n return marshaller.serialize(eventStreamIterable, (event) => {\n if (event[initialRequestMarker]) {\n return {\n headers: event.headers,\n body: event.body,\n };\n }\n const unionMember = Object.keys(event).find((key) => {\n return key !== \"__type\";\n }) ?? \"\";\n const { additionalHeaders, body, eventType, explicitPayloadContentType } = this.writeEventBody(unionMember, unionSchema, event);\n const headers = {\n \":event-type\": { type: \"string\", value: eventType },\n \":message-type\": { type: \"string\", value: \"event\" },\n \":content-type\": { type: \"string\", value: explicitPayloadContentType ?? defaultContentType },\n ...additionalHeaders,\n };\n return {\n headers,\n body,\n };\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const marshaller = this.marshaller;\n const eventStreamMember = responseSchema.getEventStreamMember();\n const unionSchema = responseSchema.getMemberSchema(eventStreamMember);\n const memberSchemas = unionSchema.getMemberSchemas();\n const initialResponseMarker = Symbol(\"initialResponseMarker\");\n const asyncIterable = marshaller.deserialize(response.body, async (event) => {\n const unionMember = Object.keys(event).find((key) => {\n return key !== \"__type\";\n }) ?? \"\";\n if (unionMember === \"initial-response\") {\n const dataObject = await this.deserializer.read(responseSchema, event[unionMember].body);\n delete dataObject[eventStreamMember];\n return {\n [initialResponseMarker]: true,\n ...dataObject,\n };\n }\n else if (unionMember in memberSchemas) {\n const eventStreamSchema = memberSchemas[unionMember];\n return {\n [unionMember]: await this.deserializer.read(eventStreamSchema, event[unionMember].body),\n };\n }\n else {\n return {\n $unknown: event,\n };\n }\n });\n const asyncIterator = asyncIterable[Symbol.asyncIterator]();\n const firstEvent = await asyncIterator.next();\n if (firstEvent.done) {\n return asyncIterable;\n }\n if (firstEvent.value?.[initialResponseMarker]) {\n if (!responseSchema) {\n throw new Error(\"@smithy::core/protocols - initial-response event encountered in event stream but no response schema given.\");\n }\n for (const [key, value] of Object.entries(firstEvent.value)) {\n initialResponseContainer[key] = value;\n }\n }\n return {\n async *[Symbol.asyncIterator]() {\n if (!firstEvent?.value?.[initialResponseMarker]) {\n yield firstEvent.value;\n }\n while (true) {\n const { done, value } = await asyncIterator.next();\n if (done) {\n break;\n }\n yield value;\n }\n },\n };\n }\n writeEventBody(unionMember, unionSchema, event) {\n const serializer = this.serializer;\n let eventType = unionMember;\n let explicitPayloadMember = null;\n let explicitPayloadContentType;\n const isKnownSchema = unionSchema.hasMemberSchema(unionMember);\n const additionalHeaders = {};\n if (!isKnownSchema) {\n const [type, value] = event[unionMember];\n eventType = type;\n serializer.write(SCHEMA.DOCUMENT, value);\n }\n else {\n const eventSchema = unionSchema.getMemberSchema(unionMember);\n if (eventSchema.isStructSchema()) {\n for (const [memberName, memberSchema] of eventSchema.structIterator()) {\n const { eventHeader, eventPayload } = memberSchema.getMergedTraits();\n if (eventPayload) {\n explicitPayloadMember = memberName;\n break;\n }\n else if (eventHeader) {\n const value = event[unionMember][memberName];\n let type = \"binary\";\n if (memberSchema.isNumericSchema()) {\n if ((-2) ** 31 <= value && value <= 2 ** 31 - 1) {\n type = \"integer\";\n }\n else {\n type = \"long\";\n }\n }\n else if (memberSchema.isTimestampSchema()) {\n type = \"timestamp\";\n }\n else if (memberSchema.isStringSchema()) {\n type = \"string\";\n }\n else if (memberSchema.isBooleanSchema()) {\n type = \"boolean\";\n }\n if (value != null) {\n additionalHeaders[memberName] = {\n type,\n value,\n };\n delete event[unionMember][memberName];\n }\n }\n }\n if (explicitPayloadMember !== null) {\n const payloadSchema = eventSchema.getMemberSchema(explicitPayloadMember);\n if (payloadSchema.isBlobSchema()) {\n explicitPayloadContentType = \"application/octet-stream\";\n }\n else if (payloadSchema.isStringSchema()) {\n explicitPayloadContentType = \"text/plain\";\n }\n serializer.write(payloadSchema, event[unionMember][explicitPayloadMember]);\n }\n else {\n serializer.write(eventSchema, event[unionMember]);\n }\n }\n else {\n throw new Error(\"@smithy/core/event-streams - non-struct member not supported in event stream union.\");\n }\n }\n const messageSerialization = serializer.flush();\n const body = typeof messageSerialization === \"string\"\n ? (this.serdeContext?.utf8Decoder ?? fromUtf8)(messageSerialization)\n : messageSerialization;\n return {\n body,\n eventType,\n explicitPayloadContentType,\n additionalHeaders,\n };\n }\n}\n"],"mappings":"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","names":[]}
|