{"version":3,"file":"index.mjs","sources":["../../../src/Platform/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from './types';\nimport { version } from './version';\nimport { detectFramework, observeFrameworkChanges } from './detectFramework';\nimport { getCustomUserAgent } from './customUserAgent';\nconst BASE_USER_AGENT = `aws-amplify`;\n/** Sanitize Amplify version string be removing special character + and character post the special character  */\nexport const sanitizeAmplifyVersion = (amplifyVersion) => amplifyVersion.replace(/\\+.*/, '');\nclass PlatformBuilder {\n    constructor() {\n        this.userAgent = `${BASE_USER_AGENT}/${sanitizeAmplifyVersion(version)}`;\n    }\n    get framework() {\n        return detectFramework();\n    }\n    get isReactNative() {\n        return (this.framework === Framework.ReactNative ||\n            this.framework === Framework.Expo);\n    }\n    observeFrameworkChanges(fcn) {\n        observeFrameworkChanges(fcn);\n    }\n}\nexport const Platform = new PlatformBuilder();\nexport const getAmplifyUserAgentObject = ({ category, action, } = {}) => {\n    const userAgent = [\n        [BASE_USER_AGENT, sanitizeAmplifyVersion(version)],\n    ];\n    if (category) {\n        userAgent.push([category, action]);\n    }\n    userAgent.push(['framework', detectFramework()]);\n    if (category && action) {\n        const customState = getCustomUserAgent(category, action);\n        if (customState) {\n            customState.forEach(state => {\n                userAgent.push(state);\n            });\n        }\n    }\n    return userAgent;\n};\nexport const getAmplifyUserAgent = (customUserAgentDetails) => {\n    const userAgent = getAmplifyUserAgentObject(customUserAgentDetails);\n    const userAgentString = userAgent\n        .map(([agentKey, agentValue]) => agentKey && agentValue ? `${agentKey}/${agentValue}` : agentKey)\n        .join(' ');\n    return userAgentString;\n};\n"],"names":[],"mappings":";;;;;AAAA;AACA;AAKA,MAAM,eAAe,GAAG,CAAC,WAAW,CAAC;AACrC;AACY,MAAC,sBAAsB,GAAG,CAAC,cAAc,KAAK,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AAC3F,MAAM,eAAe,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,eAAe,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,QAAQ,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,WAAW;AACxD,YAAY,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI;AAC7C,IAAI;AACJ,IAAI,uBAAuB,CAAC,GAAG,EAAE;AACjC,QAAQ,uBAAuB,CAAC,GAAG,CAAC;AACpC,IAAI;AACJ;AACY,MAAC,QAAQ,GAAG,IAAI,eAAe;AAC/B,MAAC,yBAAyB,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK;AACzE,IAAI,MAAM,SAAS,GAAG;AACtB,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;AACpD,IAAI,IAAI,QAAQ,IAAI,MAAM,EAAE;AAC5B,QAAQ,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAChE,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI;AACzC,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB;AACY,MAAC,mBAAmB,GAAG,CAAC,sBAAsB,KAAK;AAC/D,IAAI,MAAM,SAAS,GAAG,yBAAyB,CAAC,sBAAsB,CAAC;AACvE,IAAI,MAAM,eAAe,GAAG;AAC5B,SAAS,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,QAAQ;AACxG,SAAS,IAAI,CAAC,GAAG,CAAC;AAClB,IAAI,OAAO,eAAe;AAC1B;;;;"}