{"version":3,"file":"index.mjs","sources":["../../../../src/Providers/AWSAppSyncRealTimeProvider/index.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { USER_AGENT_HEADER, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nimport { DEFAULT_KEEP_ALIVE_TIMEOUT, MESSAGE_TYPES } from '../constants';\nimport { AWSWebSocketProvider } from '../AWSWebSocketProvider';\nimport { awsRealTimeHeaderBasedAuth } from '../AWSWebSocketProvider/authHeaders';\nconst PROVIDER_NAME = 'AWSAppSyncRealTimeProvider';\nconst WS_PROTOCOL_NAME = 'graphql-ws';\nconst CONNECT_URI = '/connect';\nexport class AWSAppSyncRealTimeProvider extends AWSWebSocketProvider {\n    constructor() {\n        super({\n            providerName: PROVIDER_NAME,\n            wsProtocolName: WS_PROTOCOL_NAME,\n            connectUri: CONNECT_URI,\n        });\n    }\n    getProviderName() {\n        return PROVIDER_NAME;\n    }\n    subscribe(options, customUserAgentDetails) {\n        return super.subscribe(options, customUserAgentDetails);\n    }\n    async _prepareSubscriptionPayload({ options, subscriptionId, customUserAgentDetails, additionalCustomHeaders, libraryConfigHeaders, }) {\n        const { appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, } = options;\n        const data = {\n            query,\n            variables,\n        };\n        const serializedData = JSON.stringify(data);\n        const headers = {\n            ...(await awsRealTimeHeaderBasedAuth({\n                apiKey,\n                appSyncGraphqlEndpoint,\n                authenticationType,\n                payload: serializedData,\n                canonicalUri: '',\n                region,\n                additionalCustomHeaders,\n            })),\n            ...libraryConfigHeaders,\n            ...additionalCustomHeaders,\n            [USER_AGENT_HEADER]: getAmplifyUserAgent(customUserAgentDetails),\n        };\n        const subscriptionMessage = {\n            id: subscriptionId,\n            payload: {\n                data: serializedData,\n                extensions: {\n                    authorization: {\n                        ...headers,\n                    },\n                },\n            },\n            type: MESSAGE_TYPES.GQL_START,\n        };\n        const serializedSubscriptionMessage = JSON.stringify(subscriptionMessage);\n        return serializedSubscriptionMessage;\n    }\n    _handleSubscriptionData(message) {\n        this.logger.debug(`subscription message from AWS AppSync RealTime: ${message.data}`);\n        const { id = '', payload, type } = JSON.parse(String(message.data));\n        const { observer = null, query = '', variables = {}, } = this.subscriptionObserverMap.get(id) || {};\n        this.logger.debug({ id, observer, query, variables });\n        if (type === MESSAGE_TYPES.DATA && payload && payload.data) {\n            if (observer) {\n                observer.next(payload);\n            }\n            else {\n                this.logger.debug(`observer not found for id: ${id}`);\n            }\n            return [true, { id, type, payload }];\n        }\n        return [false, { id, type, payload }];\n    }\n    _unsubscribeMessage(subscriptionId) {\n        return {\n            id: subscriptionId,\n            type: MESSAGE_TYPES.GQL_STOP,\n        };\n    }\n    _extractConnectionTimeout(data) {\n        const { payload: { connectionTimeoutMs = DEFAULT_KEEP_ALIVE_TIMEOUT } = {}, } = data;\n        return connectionTimeoutMs;\n    }\n    _extractErrorCodeAndType(data) {\n        const { payload: { errors: [{ errorType = '', errorCode = 0 } = {}] = [] } = {}, } = data;\n        return { errorCode, errorType };\n    }\n}\n"],"names":[],"mappings":"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"}