{"mappings":"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","names":["homedir","sep","homeDirCache","getHomeDirCacheKey","getHomeDir","HOME","USERPROFILE","HOMEPATH","HOMEDRIVE","homeDirCacheKey","ENV_PROFILE","DEFAULT_PROFILE","getProfileName","init","createHash","join","getSSOTokenFilepath","id","cacheName","createHash","join","getHomeDir","fsPromises","readFile","fsPromises","getSSOTokenFromFile","id","ssoTokenFilepath","getSSOTokenFilepath","ssoTokenText","IniSectionType","getConfigData","data","key","indexOfSeparator","CONFIG_PREFIX_SEPARATOR","IniSectionType","acc","value","updatedKey","join","ENV_CONFIG_PATH","getConfigFilepath","join","getHomeDir","join","ENV_CREDENTIALS_PATH","getCredentialsFilepath","join","getHomeDir","IniSectionType","prefixKeyRegex","profileNameBlockList","parseIni","iniData","map","currentSection","currentSubSection","iniLine","trimmedLine","sectionName","matches","prefix","name","IniSectionType","CONFIG_PREFIX_SEPARATOR","indexOfEqualsSign","value","key","fsPromises","readFile","filePromisesHash","slurpFile","path","options","swallowError","CONFIG_PREFIX_SEPARATOR","loadSharedConfigFiles","init","filepath","getCredentialsFilepath","configFilepath","getConfigFilepath","parsedFiles","slurpFile","parseIni","getConfigData","IniSectionType","getSsoSessionData","data","key","IniSectionType","CONFIG_PREFIX_SEPARATOR","acc","value","swallowError","loadSsoSessionData","init","slurpFile","getConfigFilepath","parseIni","getSsoSessionData","mergeConfigFiles","files","merged","file","key","values","parseKnownFiles","init","parsedFiles","loadSharedConfigFiles","mergeConfigFiles"],"sources":["../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getHomeDir.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getProfileName.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFilepath.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getSSOTokenFromFile.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigData.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getConfigFilepath.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getCredentialsFilepath.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/parseIni.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/slurpFile.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSharedConfigFiles.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/getSsoSessionData.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/loadSsoSessionData.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/mergeConfigFiles.js","../esm/npm/@smithy/shared-ini-file-loader@2.4.0/node_modules/@smithy/shared-ini-file-loader/dist-es/parseKnownFiles.js"],"sourcesContent":["import { homedir } from \"os\";\nimport { sep } from \"path\";\nconst homeDirCache = {};\nconst getHomeDirCacheKey = () =\u003e {\n    if (process \u0026\u0026 process.geteuid) {\n        return `${process.geteuid()}`;\n    }\n    return \"DEFAULT\";\n};\nexport const getHomeDir = () =\u003e {\n    const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${sep}` } = process.env;\n    if (HOME)\n        return HOME;\n    if (USERPROFILE)\n        return USERPROFILE;\n    if (HOMEPATH)\n        return `${HOMEDRIVE}${HOMEPATH}`;\n    const homeDirCacheKey = getHomeDirCacheKey();\n    if (!homeDirCache[homeDirCacheKey])\n        homeDirCache[homeDirCacheKey] = homedir();\n    return homeDirCache[homeDirCacheKey];\n};\n","export const ENV_PROFILE = \"AWS_PROFILE\";\nexport const DEFAULT_PROFILE = \"default\";\nexport const getProfileName = (init) =\u003e init.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE;\n","import { createHash } from \"crypto\";\nimport { join } from \"path\";\nimport { getHomeDir } from \"./getHomeDir\";\nexport const getSSOTokenFilepath = (id) =\u003e {\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) =\u003e {\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 getConfigData = (data) =\u003e Object.entries(data)\n    .filter(([key]) =\u003e {\n    const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n    if (indexOfSeparator === -1) {\n        return false;\n    }\n    return Object.values(IniSectionType).includes(key.substring(0, indexOfSeparator));\n})\n    .reduce((acc, [key, value]) =\u003e {\n    const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR);\n    const updatedKey = key.substring(0, indexOfSeparator) === IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key;\n    acc[updatedKey] = value;\n    return acc;\n}, {\n    ...(data.default \u0026\u0026 { default: data.default }),\n});\n","import { join } from \"path\";\nimport { getHomeDir } from \"./getHomeDir\";\nexport const ENV_CONFIG_PATH = \"AWS_CONFIG_FILE\";\nexport const getConfigFilepath = () =\u003e process.env[ENV_CONFIG_PATH] || join(getHomeDir(), \".aws\", \"config\");\n","import { join } from \"path\";\nimport { getHomeDir } from \"./getHomeDir\";\nexport const ENV_CREDENTIALS_PATH = \"AWS_SHARED_CREDENTIALS_FILE\";\nexport const getCredentialsFilepath = () =\u003e process.env[ENV_CREDENTIALS_PATH] || join(getHomeDir(), \".aws\", \"credentials\");\n","import { IniSectionType } from \"@smithy/types\";\nimport { CONFIG_PREFIX_SEPARATOR } from \"./loadSharedConfigFiles\";\nconst prefixKeyRegex = /^([\\w-]+)\\s([\"'])?([\\w-@\\+\\.%:/]+)\\2$/;\nconst profileNameBlockList = [\"__proto__\", \"profile __proto__\"];\nexport const parseIni = (iniData) =\u003e {\n    const map = {};\n    let currentSection;\n    let currentSubSection;\n    for (const iniLine of iniData.split(/\\r?\\n/)) {\n        const trimmedLine = iniLine.split(/(^|\\s)[;#]/)[0].trim();\n        const isSection = trimmedLine[0] === \"[\" \u0026\u0026 trimmedLine[trimmedLine.length - 1] === \"]\";\n        if (isSection) {\n            currentSection = undefined;\n            currentSubSection = undefined;\n            const sectionName = trimmedLine.substring(1, trimmedLine.length - 1);\n            const matches = prefixKeyRegex.exec(sectionName);\n            if (matches) {\n                const [, prefix, , name] = matches;\n                if (Object.values(IniSectionType).includes(prefix)) {\n                    currentSection = [prefix, name].join(CONFIG_PREFIX_SEPARATOR);\n                }\n            }\n            else {\n                currentSection = sectionName;\n            }\n            if (profileNameBlockList.includes(sectionName)) {\n                throw new Error(`Found invalid profile name \"${sectionName}\"`);\n            }\n        }\n        else if (currentSection) {\n            const indexOfEqualsSign = trimmedLine.indexOf(\"=\");\n            if (![0, -1].includes(indexOfEqualsSign)) {\n                const [name, value] = [\n                    trimmedLine.substring(0, indexOfEqualsSign).trim(),\n                    trimmedLine.substring(indexOfEqualsSign + 1).trim(),\n                ];\n                if (value === \"\") {\n                    currentSubSection = name;\n                }\n                else {\n                    if (currentSubSection \u0026\u0026 iniLine.trimStart() === iniLine) {\n                        currentSubSection = undefined;\n                    }\n                    map[currentSection] = map[currentSection] || {};\n                    const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name;\n                    map[currentSection][key] = value;\n                }\n            }\n        }\n    }\n    return map;\n};\n","import { promises as fsPromises } from \"fs\";\nconst { readFile } = fsPromises;\nconst filePromisesHash = {};\nexport const slurpFile = (path, options) =\u003e {\n    if (!filePromisesHash[path] || options?.ignoreCache) {\n        filePromisesHash[path] = readFile(path, \"utf8\");\n    }\n    return filePromisesHash[path];\n};\n","import { getConfigData } from \"./getConfigData\";\nimport { getConfigFilepath } from \"./getConfigFilepath\";\nimport { getCredentialsFilepath } from \"./getCredentialsFilepath\";\nimport { parseIni } from \"./parseIni\";\nimport { slurpFile } from \"./slurpFile\";\nconst swallowError = () =\u003e ({});\nexport const CONFIG_PREFIX_SEPARATOR = \".\";\nexport const loadSharedConfigFiles = async (init = {}) =\u003e {\n    const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init;\n    const parsedFiles = await Promise.all([\n        slurpFile(configFilepath, {\n            ignoreCache: init.ignoreCache,\n        })\n            .then(parseIni)\n            .then(getConfigData)\n            .catch(swallowError),\n        slurpFile(filepath, {\n            ignoreCache: init.ignoreCache,\n        })\n            .then(parseIni)\n            .catch(swallowError),\n    ]);\n    return {\n        configFile: parsedFiles[0],\n        credentialsFile: parsedFiles[1],\n    };\n};\n","import { IniSectionType } from \"@smithy/types\";\nimport { CONFIG_PREFIX_SEPARATOR } from \"./loadSharedConfigFiles\";\nexport const getSsoSessionData = (data) =\u003e Object.entries(data)\n    .filter(([key]) =\u003e key.startsWith(IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR))\n    .reduce((acc, [key, value]) =\u003e ({ ...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 = () =\u003e ({});\nexport const loadSsoSessionData = async (init = {}) =\u003e slurpFile(init.configFilepath ?? getConfigFilepath())\n    .then(parseIni)\n    .then(getSsoSessionData)\n    .catch(swallowError);\n","export const mergeConfigFiles = (...files) =\u003e {\n    const merged = {};\n    for (const file of files) {\n        for (const [key, values] of Object.entries(file)) {\n            if (merged[key] !== undefined) {\n                Object.assign(merged[key], values);\n            }\n            else {\n                merged[key] = values;\n            }\n        }\n    }\n    return merged;\n};\n","import { loadSharedConfigFiles } from \"./loadSharedConfigFiles\";\nimport { mergeConfigFiles } from \"./mergeConfigFiles\";\nexport const parseKnownFiles = async (init) =\u003e {\n    const parsedFiles = await loadSharedConfigFiles(init);\n    return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile);\n};\n"],"version":3}
