{"version":3,"file":"tokenCookies.mjs","sources":["../../../../src/auth/utils/tokenCookies.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AUTH_KEY_PREFIX, DEFAULT_AUTH_TOKEN_COOKIES_MAX_AGE, createKeysForAuthStorage, } from 'aws-amplify/adapter-core';\nimport { REMOVE_COOKIE_MAX_AGE, SERVER_AUTH_ALLOWED_AMPLIFY_AUTH_KEY_SUFFIX, } from '../constant';\nimport { getAccessTokenUsername } from './getAccessTokenUsername';\nimport { isSSLOrigin } from './origin';\nexport const createTokenCookies = ({ tokensPayload, userPoolClientId, }) => {\n    const { access_token, id_token, refresh_token } = tokensPayload;\n    const username = getAccessTokenUsername(access_token);\n    const authCookiesKeys = createKeysForAuthStorage(AUTH_KEY_PREFIX, `${userPoolClientId}.${username}`);\n    return [\n        {\n            name: authCookiesKeys.accessToken,\n            value: access_token,\n        },\n        {\n            name: authCookiesKeys.idToken,\n            value: id_token,\n        },\n        {\n            name: authCookiesKeys.refreshToken,\n            value: refresh_token,\n        },\n        {\n            name: `${AUTH_KEY_PREFIX}.${userPoolClientId}.LastAuthUser`,\n            value: username,\n        },\n    ];\n};\nexport const createTokenRemoveCookies = (keys) => keys.map(key => ({ name: key, value: '' }));\nexport const createTokenCookiesSetOptions = ({ domain, sameSite, expires, maxAge }, origin) => {\n    const result = {\n        domain,\n        path: '/',\n        httpOnly: true,\n        secure: isSSLOrigin(origin),\n        sameSite: sameSite ?? 'strict',\n        expires,\n        maxAge,\n    };\n    // when expires and maxAge both are not specified, we set a default maxAge\n    if (!result.expires && !result.maxAge) {\n        result.maxAge = DEFAULT_AUTH_TOKEN_COOKIES_MAX_AGE;\n    }\n    return result;\n};\nexport const createTokenCookiesRemoveOptions = (setCookieOptions) => ({\n    domain: setCookieOptions?.domain,\n    path: '/',\n    maxAge: REMOVE_COOKIE_MAX_AGE, // Expire immediately (remove the cookie)\n});\nexport const isServerSideAuthAllowedCookie = (cookieName) => SERVER_AUTH_ALLOWED_AMPLIFY_AUTH_KEY_SUFFIX.some(suffix => cookieName.endsWith(suffix));\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKY,MAAC,kBAAkB,GAAG,CAAC,EAAE,aAAa,EAAE,gBAAgB,GAAG,KAAK;AAC5E,IAAI,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa;AACnE,IAAI,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC;AACzD,IAAI,MAAM,eAAe,GAAG,wBAAwB,CAAC,eAAe,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxG,IAAI,OAAO;AACX,QAAQ;AACR,YAAY,IAAI,EAAE,eAAe,CAAC,WAAW;AAC7C,YAAY,KAAK,EAAE,YAAY;AAC/B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,eAAe,CAAC,OAAO;AACzC,YAAY,KAAK,EAAE,QAAQ;AAC3B,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,eAAe,CAAC,YAAY;AAC9C,YAAY,KAAK,EAAE,aAAa;AAChC,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC;AACvE,YAAY,KAAK,EAAE,QAAQ;AAC3B,SAAS;AACT,KAAK;AACL;AACY,MAAC,wBAAwB,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAChF,MAAC,4BAA4B,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,KAAK;AAC/F,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM;AACd,QAAQ,IAAI,EAAE,GAAG;AACjB,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;AACnC,QAAQ,QAAQ,EAAE,QAAQ,IAAI,QAAQ;AACtC,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC3C,QAAQ,MAAM,CAAC,MAAM,GAAG,kCAAkC;AAC1D,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;AACY,MAAC,+BAA+B,GAAG,CAAC,gBAAgB,MAAM;AACtE,IAAI,MAAM,EAAE,gBAAgB,EAAE,MAAM;AACpC,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,MAAM,EAAE,qBAAqB;AACjC,CAAC;AACW,MAAC,6BAA6B,GAAG,CAAC,UAAU,KAAK,2CAA2C,CAAC,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;;;;"}