@aws-amplify/api-graphql 4.4.1-events.619318.0 → 4.4.1

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.
Files changed (98) hide show
  1. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js +732 -35
  2. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  3. package/dist/cjs/Providers/constants.js +2 -32
  4. package/dist/cjs/Providers/constants.js.map +1 -1
  5. package/dist/cjs/index.js +1 -4
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/internals/InternalGraphQLAPI.js +67 -8
  8. package/dist/cjs/internals/InternalGraphQLAPI.js.map +1 -1
  9. package/dist/cjs/utils/ReconnectionMonitor.js +1 -1
  10. package/dist/cjs/utils/ReconnectionMonitor.js.map +1 -1
  11. package/dist/cjs/utils/resolveConfig.js +0 -19
  12. package/dist/cjs/utils/resolveConfig.js.map +1 -1
  13. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +71 -24
  14. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs +732 -35
  15. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs.map +1 -1
  16. package/dist/esm/Providers/constants.d.ts +3 -33
  17. package/dist/esm/Providers/constants.mjs +2 -32
  18. package/dist/esm/Providers/constants.mjs.map +1 -1
  19. package/dist/esm/index.d.ts +0 -3
  20. package/dist/esm/index.mjs +0 -2
  21. package/dist/esm/index.mjs.map +1 -1
  22. package/dist/esm/internals/InternalGraphQLAPI.d.ts +1 -0
  23. package/dist/esm/internals/InternalGraphQLAPI.mjs +68 -9
  24. package/dist/esm/internals/InternalGraphQLAPI.mjs.map +1 -1
  25. package/dist/esm/utils/ConnectionStateMonitor.d.ts +1 -29
  26. package/dist/esm/utils/ReconnectionMonitor.d.ts +1 -1
  27. package/dist/esm/utils/ReconnectionMonitor.mjs +1 -1
  28. package/dist/esm/utils/ReconnectionMonitor.mjs.map +1 -1
  29. package/dist/esm/utils/resolveConfig.mjs +0 -19
  30. package/dist/esm/utils/resolveConfig.mjs.map +1 -1
  31. package/package.json +4 -4
  32. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +1051 -58
  33. package/src/Providers/constants.ts +2 -32
  34. package/src/index.ts +0 -5
  35. package/src/internals/InternalGraphQLAPI.ts +102 -15
  36. package/src/utils/ConnectionStateMonitor.ts +13 -2
  37. package/src/utils/ReconnectionMonitor.ts +1 -1
  38. package/src/utils/resolveConfig.ts +0 -23
  39. package/dist/cjs/Providers/AWSAppSyncEventsProvider/index.js +0 -94
  40. package/dist/cjs/Providers/AWSAppSyncEventsProvider/index.js.map +0 -1
  41. package/dist/cjs/Providers/AWSWebSocketProvider/appsyncUrl.js +0 -112
  42. package/dist/cjs/Providers/AWSWebSocketProvider/appsyncUrl.js.map +0 -1
  43. package/dist/cjs/Providers/AWSWebSocketProvider/authHeaders.js +0 -99
  44. package/dist/cjs/Providers/AWSWebSocketProvider/authHeaders.js.map +0 -1
  45. package/dist/cjs/Providers/AWSWebSocketProvider/index.js +0 -623
  46. package/dist/cjs/Providers/AWSWebSocketProvider/index.js.map +0 -1
  47. package/dist/cjs/internals/events/appsyncRequest.js +0 -97
  48. package/dist/cjs/internals/events/appsyncRequest.js.map +0 -1
  49. package/dist/cjs/internals/events/index.js +0 -73
  50. package/dist/cjs/internals/events/index.js.map +0 -1
  51. package/dist/cjs/internals/events/types.js +0 -6
  52. package/dist/cjs/internals/events/types.js.map +0 -1
  53. package/dist/cjs/internals/events/utils.js +0 -57
  54. package/dist/cjs/internals/events/utils.js.map +0 -1
  55. package/dist/cjs/internals/graphqlAuth.js +0 -64
  56. package/dist/cjs/internals/graphqlAuth.js.map +0 -1
  57. package/dist/cjs/internals/graphqlRequest.js +0 -20
  58. package/dist/cjs/internals/graphqlRequest.js.map +0 -1
  59. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.d.ts +0 -42
  60. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.mjs +0 -93
  61. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.mjs.map +0 -1
  62. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.d.ts +0 -21
  63. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.mjs +0 -106
  64. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.mjs.map +0 -1
  65. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.d.ts +0 -8
  66. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.mjs +0 -97
  67. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.mjs.map +0 -1
  68. package/dist/esm/Providers/AWSWebSocketProvider/index.d.ts +0 -83
  69. package/dist/esm/Providers/AWSWebSocketProvider/index.mjs +0 -621
  70. package/dist/esm/Providers/AWSWebSocketProvider/index.mjs.map +0 -1
  71. package/dist/esm/internals/events/appsyncRequest.d.ts +0 -14
  72. package/dist/esm/internals/events/appsyncRequest.mjs +0 -96
  73. package/dist/esm/internals/events/appsyncRequest.mjs.map +0 -1
  74. package/dist/esm/internals/events/index.d.ts +0 -17
  75. package/dist/esm/internals/events/index.mjs +0 -69
  76. package/dist/esm/internals/events/index.mjs.map +0 -1
  77. package/dist/esm/internals/events/types.d.ts +0 -23
  78. package/dist/esm/internals/events/types.mjs +0 -2
  79. package/dist/esm/internals/events/types.mjs.map +0 -1
  80. package/dist/esm/internals/events/utils.d.ts +0 -16
  81. package/dist/esm/internals/events/utils.mjs +0 -53
  82. package/dist/esm/internals/events/utils.mjs.map +0 -1
  83. package/dist/esm/internals/graphqlAuth.d.ts +0 -3
  84. package/dist/esm/internals/graphqlAuth.mjs +0 -64
  85. package/dist/esm/internals/graphqlAuth.mjs.map +0 -1
  86. package/dist/esm/internals/graphqlRequest.d.ts +0 -3
  87. package/dist/esm/internals/graphqlRequest.mjs +0 -18
  88. package/dist/esm/internals/graphqlRequest.mjs.map +0 -1
  89. package/src/Providers/AWSAppSyncEventsProvider/index.ts +0 -187
  90. package/src/Providers/AWSWebSocketProvider/appsyncUrl.ts +0 -151
  91. package/src/Providers/AWSWebSocketProvider/authHeaders.ts +0 -146
  92. package/src/Providers/AWSWebSocketProvider/index.ts +0 -925
  93. package/src/internals/events/appsyncRequest.ts +0 -169
  94. package/src/internals/events/index.ts +0 -138
  95. package/src/internals/events/types.ts +0 -35
  96. package/src/internals/events/utils.ts +0 -77
  97. package/src/internals/graphqlAuth.ts +0 -87
  98. package/src/internals/graphqlRequest.ts +0 -30
@@ -1 +1 @@
1
- {"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 { MESSAGE_TYPES } from '../constants';\nimport { AWSWebSocketProvider } from '../AWSWebSocketProvider';\nimport { awsRealTimeHeaderBasedAuth } from '../AWSWebSocketProvider/authHeaders';\nconst PROVIDER_NAME = 'AWSAppSyncRealTimeProvider';\n// get rid of generic. Just map the options from Gogi-specific to general\nexport class AWSAppSyncRealTimeProvider extends AWSWebSocketProvider {\n constructor() {\n super(PROVIDER_NAME);\n }\n subscribe(options, customUserAgentDetails) {\n return super.subscribe(options, customUserAgentDetails);\n }\n getProviderName() {\n return PROVIDER_NAME;\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}\n"],"names":[],"mappings":"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"}
1
+ {"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 { Observable } from 'rxjs';\nimport { GraphQLError } from 'graphql';\nimport { ConsoleLogger, Hub, fetchAuthSession, } from '@aws-amplify/core';\nimport { signRequest } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, NonRetryableError, USER_AGENT_HEADER, amplifyUuid, base64Encoder, getAmplifyUserAgent, isNonRetryableError, jitteredExponentialRetry, } from '@aws-amplify/core/internals/utils';\nimport { CONTROL_MSG, ConnectionState, } from '../../types/PubSub';\nimport { AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, CONNECTION_STATE_CHANGE, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, MAX_DELAY_MS, MESSAGE_TYPES, NON_RETRYABLE_CODES, SOCKET_STATUS, START_ACK_TIMEOUT, SUBSCRIPTION_STATUS, } from '../constants';\nimport { CONNECTION_CHANGE, ConnectionStateMonitor, } from '../../utils/ConnectionStateMonitor';\nimport { ReconnectEvent, ReconnectionMonitor, } from '../../utils/ReconnectionMonitor';\nconst logger = new ConsoleLogger('AWSAppSyncRealTimeProvider');\nconst dispatchApiEvent = (payload) => {\n Hub.dispatch('api', payload, 'PubSub', AMPLIFY_SYMBOL);\n};\nconst standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync-api\\.\\w{2}(?:(?:-\\w{2,})+)-\\d\\.amazonaws.com(?:\\.cn)?\\/graphql$/i;\nconst customDomainPath = '/realtime';\nexport class AWSAppSyncRealTimeProvider {\n constructor() {\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;\n this.subscriptionObserverMap = new Map();\n this.promiseArray = [];\n this.connectionStateMonitor = new ConnectionStateMonitor();\n this.reconnectionMonitor = new ReconnectionMonitor();\n // Monitor the connection state and pass changes along to Hub\n this.connectionStateMonitorSubscription =\n this.connectionStateMonitor.connectionStateObservable.subscribe(connectionState => {\n dispatchApiEvent({\n event: CONNECTION_STATE_CHANGE,\n data: {\n provider: this,\n connectionState,\n },\n message: `Connection state is ${connectionState}`,\n });\n this.connectionState = connectionState;\n // Trigger START_RECONNECT when the connection is disrupted\n if (connectionState === ConnectionState.ConnectionDisrupted) {\n this.reconnectionMonitor.record(ReconnectEvent.START_RECONNECT);\n }\n // Trigger HALT_RECONNECT to halt reconnection attempts when the state is anything other than\n // ConnectionDisrupted or Connecting\n if ([\n ConnectionState.Connected,\n ConnectionState.ConnectedPendingDisconnect,\n ConnectionState.ConnectedPendingKeepAlive,\n ConnectionState.ConnectedPendingNetwork,\n ConnectionState.ConnectionDisruptedPendingNetwork,\n ConnectionState.Disconnected,\n ].includes(connectionState)) {\n this.reconnectionMonitor.record(ReconnectEvent.HALT_RECONNECT);\n }\n });\n }\n /**\n * Mark the socket closed and release all active listeners\n */\n close() {\n // Mark the socket closed both in status and the connection monitor\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n // Turn off the subscription monitor Hub publishing\n this.connectionStateMonitorSubscription.unsubscribe();\n // Complete all reconnect observers\n this.reconnectionMonitor.close();\n }\n getNewWebSocket(url, protocol) {\n return new WebSocket(url, protocol);\n }\n getProviderName() {\n return 'AWSAppSyncRealTimeProvider';\n }\n // Check if url matches standard domain pattern\n isCustomDomain(url) {\n return url.match(standardDomainPattern) === null;\n }\n subscribe(options, customUserAgentDetails) {\n const { appSyncGraphqlEndpoint, region, query, variables, authenticationType, additionalHeaders, apiKey, authToken, libraryConfigHeaders, } = options || {};\n return new Observable(observer => {\n if (!options || !appSyncGraphqlEndpoint) {\n observer.error({\n errors: [\n {\n ...new GraphQLError(`Subscribe only available for AWS AppSync endpoint`),\n },\n ],\n });\n observer.complete();\n }\n else {\n let subscriptionStartActive = false;\n const subscriptionId = amplifyUuid();\n const startSubscription = () => {\n if (!subscriptionStartActive) {\n subscriptionStartActive = true;\n const startSubscriptionPromise = this._startSubscriptionWithAWSAppSyncRealTime({\n options: {\n query,\n variables,\n region,\n authenticationType,\n appSyncGraphqlEndpoint,\n additionalHeaders,\n apiKey,\n authToken,\n libraryConfigHeaders,\n },\n observer,\n subscriptionId,\n customUserAgentDetails,\n }).catch(err => {\n logger.debug(`${CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR}: ${err}`);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n });\n startSubscriptionPromise.finally(() => {\n subscriptionStartActive = false;\n });\n }\n };\n // Add an observable to the reconnection list to manage reconnection for this subscription\n const reconnectSubscription = new Observable(reconnectSubscriptionObserver => {\n this.reconnectionMonitor.addObserver(reconnectSubscriptionObserver);\n }).subscribe(() => {\n startSubscription();\n });\n startSubscription();\n return async () => {\n // Cleanup reconnection subscription\n reconnectSubscription?.unsubscribe();\n // Cleanup after unsubscribing or observer.complete was called after _startSubscriptionWithAWSAppSyncRealTime\n try {\n // Waiting that subscription has been connected before trying to unsubscribe\n await this._waitForSubscriptionToBeConnected(subscriptionId);\n const { subscriptionState } = this.subscriptionObserverMap.get(subscriptionId) || {};\n if (!subscriptionState) {\n // subscription already unsubscribed\n return;\n }\n if (subscriptionState === SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId);\n }\n else {\n throw new Error('Subscription never connected');\n }\n }\n catch (err) {\n logger.debug(`Error while unsubscribing ${err}`);\n }\n finally {\n this._removeSubscriptionObserver(subscriptionId);\n }\n };\n }\n });\n }\n async _startSubscriptionWithAWSAppSyncRealTime({ options, observer, subscriptionId, customUserAgentDetails, }) {\n const { appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, libraryConfigHeaders = () => ({}), additionalHeaders = {}, authToken, } = options;\n let additionalCustomHeaders = {};\n if (typeof additionalHeaders === 'function') {\n const requestOptions = {\n url: appSyncGraphqlEndpoint || '',\n queryString: query || '',\n };\n additionalCustomHeaders = await additionalHeaders(requestOptions);\n }\n else {\n additionalCustomHeaders = additionalHeaders;\n }\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n additionalCustomHeaders = {\n ...additionalCustomHeaders,\n Authorization: authToken,\n };\n }\n const subscriptionState = SUBSCRIPTION_STATUS.PENDING;\n const data = {\n query,\n variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer,\n query: query ?? '',\n variables: variables ?? {},\n subscriptionState,\n startAckTimeoutId: undefined,\n });\n // Preparing payload for subscription message\n const dataString = JSON.stringify(data);\n const headerObj = {\n ...(await this._awsRealTimeHeaderBasedAuth({\n apiKey,\n appSyncGraphqlEndpoint,\n authenticationType,\n payload: dataString,\n canonicalUri: '',\n region,\n additionalCustomHeaders,\n })),\n ...(await libraryConfigHeaders()),\n ...additionalCustomHeaders,\n [USER_AGENT_HEADER]: getAmplifyUserAgent(customUserAgentDetails),\n };\n const subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: {\n ...headerObj,\n },\n },\n },\n type: MESSAGE_TYPES.GQL_START,\n };\n const stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n try {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n await this._initializeWebSocketConnection({\n apiKey,\n appSyncGraphqlEndpoint,\n authenticationType,\n region,\n additionalCustomHeaders,\n });\n }\n catch (err) {\n this._logStartSubscriptionError(subscriptionId, observer, err);\n return;\n }\n // Potential race condition can occur when unsubscribe is called during _initializeWebSocketConnection.\n // E.g.unsubscribe gets invoked prior to finishing WebSocket handshake or START_ACK.\n // Both subscriptionFailedCallback and subscriptionReadyCallback are used to synchronized this.\n const { subscriptionFailedCallback, subscriptionReadyCallback } = this.subscriptionObserverMap.get(subscriptionId) ?? {};\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer,\n subscriptionState,\n query: query ?? '',\n variables: variables ?? {},\n subscriptionReadyCallback,\n subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(() => {\n this._timeoutStartSubscriptionAck(subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n }\n // Log logic for start subscription failures\n _logStartSubscriptionError(subscriptionId, observer, err) {\n logger.debug({ err });\n const message = String(err.message ?? '');\n // Resolving to give the state observer time to propogate the update\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n // Capture the error only when the network didn't cause disruption\n if (this.connectionState !== ConnectionState.ConnectionDisruptedPendingNetwork) {\n // When the error is non-retriable, error out the observable\n if (isNonRetryableError(err)) {\n observer.error({\n errors: [\n {\n ...new GraphQLError(`${CONTROL_MSG.CONNECTION_FAILED}: ${message}`),\n },\n ],\n });\n }\n else {\n logger.debug(`${CONTROL_MSG.CONNECTION_FAILED}: ${message}`);\n }\n const { subscriptionFailedCallback } = this.subscriptionObserverMap.get(subscriptionId) || {};\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n // Waiting that subscription has been connected before trying to unsubscribe\n async _waitForSubscriptionToBeConnected(subscriptionId) {\n const subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n const { subscriptionState } = subscriptionObserver;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {\n return new Promise((resolve, reject) => {\n const { observer, subscriptionState: observedSubscriptionState, variables, query, } = subscriptionObserver;\n this.subscriptionObserverMap.set(subscriptionId, {\n observer,\n subscriptionState: observedSubscriptionState,\n variables,\n query,\n subscriptionReadyCallback: resolve,\n subscriptionFailedCallback: reject,\n });\n });\n }\n }\n }\n _sendUnsubscriptionMessage(subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n const unsubscribeMessage = {\n id: subscriptionId,\n type: MESSAGE_TYPES.GQL_STOP,\n };\n const stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger.debug({ err });\n }\n }\n _removeSubscriptionObserver(subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n _closeSocketIfRequired() {\n if (this.subscriptionObserverMap.size > 0) {\n // Active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return;\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // Still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger.debug('closing WebSocket...');\n if (this.keepAliveTimeoutId) {\n clearTimeout(this.keepAliveTimeoutId);\n }\n if (this.keepAliveAlertTimeoutId) {\n clearTimeout(this.keepAliveAlertTimeoutId);\n }\n const tempSocket = this.awsRealTimeSocket;\n // Cleaning callbacks to avoid race condition, socket still exists\n tempSocket.onclose = null;\n tempSocket.onerror = null;\n tempSocket.close(1000);\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n }\n _handleIncomingSubscriptionMessage(message) {\n if (typeof message.data !== 'string') {\n return;\n }\n 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 = {}, startAckTimeoutId, subscriptionReadyCallback, subscriptionFailedCallback, } = this.subscriptionObserverMap.get(id) || {};\n logger.debug({ id, observer, query, variables });\n if (type === MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger.debug(`observer not found for id: ${id}`);\n }\n return;\n }\n if (type === MESSAGE_TYPES.GQL_START_ACK) {\n logger.debug(`subscription ready for ${JSON.stringify({ query, variables })}`);\n if (typeof subscriptionReadyCallback === 'function') {\n subscriptionReadyCallback();\n }\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n dispatchApiEvent({\n event: CONTROL_MSG.SUBSCRIPTION_ACK,\n data: { query, variables },\n message: 'Connection established for subscription',\n });\n const subscriptionState = SUBSCRIPTION_STATUS.CONNECTED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer,\n query,\n variables,\n startAckTimeoutId: undefined,\n subscriptionState,\n subscriptionReadyCallback,\n subscriptionFailedCallback,\n });\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n if (this.keepAliveTimeoutId)\n clearTimeout(this.keepAliveTimeoutId);\n if (this.keepAliveAlertTimeoutId)\n clearTimeout(this.keepAliveAlertTimeoutId);\n this.keepAliveTimeoutId = setTimeout(() => {\n this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT);\n }, this.keepAliveTimeout);\n this.keepAliveAlertTimeoutId = setTimeout(() => {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE_MISSED);\n }, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_ERROR) {\n const subscriptionState = SUBSCRIPTION_STATUS.FAILED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer,\n query,\n variables,\n startAckTimeoutId,\n subscriptionReadyCallback,\n subscriptionFailedCallback,\n subscriptionState,\n });\n logger.debug(`${CONTROL_MSG.CONNECTION_FAILED}: ${JSON.stringify(payload)}`);\n observer.error({\n errors: [\n {\n ...new GraphQLError(`${CONTROL_MSG.CONNECTION_FAILED}: ${JSON.stringify(payload)}`),\n },\n ],\n });\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n }\n _errorDisconnect(msg) {\n logger.debug(`Disconnect error: ${msg}`);\n if (this.awsRealTimeSocket) {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = SOCKET_STATUS.CLOSED;\n }\n _timeoutStartSubscriptionAck(subscriptionId) {\n const subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n const { observer, query, variables } = subscriptionObserver;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer,\n query,\n variables,\n subscriptionState: SUBSCRIPTION_STATUS.FAILED,\n });\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n logger.debug('timeoutStartSubscription', JSON.stringify({ query, variables }));\n }\n }\n /**\n * Strips out `Authorization` header if present\n */\n _extractNonAuthHeaders(headers) {\n if (!headers) {\n return {};\n }\n if ('Authorization' in headers) {\n const { Authorization: _, ...nonAuthHeaders } = headers;\n return nonAuthHeaders;\n }\n return headers;\n }\n /**\n *\n * @param headers - http headers\n * @returns uri-encoded query parameters derived from custom headers\n */\n _queryParamsFromCustomHeaders(headers) {\n const nonAuthHeaders = this._extractNonAuthHeaders(headers);\n const params = new AmplifyUrlSearchParams();\n Object.entries(nonAuthHeaders).forEach(([k, v]) => {\n params.append(k, v);\n });\n return params;\n }\n /**\n * Normalizes AppSync realtime endpoint URL\n *\n * @param appSyncGraphqlEndpoint - AppSync endpointUri from config\n * @param urlParams - URLSearchParams\n * @returns fully resolved string realtime endpoint URL\n */\n _realtimeUrlWithQueryString(appSyncGraphqlEndpoint, urlParams) {\n const protocol = 'wss://';\n let realtimeEndpoint = appSyncGraphqlEndpoint ?? '';\n if (this.isCustomDomain(realtimeEndpoint)) {\n realtimeEndpoint = realtimeEndpoint.concat(customDomainPath);\n }\n else {\n realtimeEndpoint = realtimeEndpoint\n .replace('appsync-api', 'appsync-realtime-api')\n .replace('gogi-beta', 'grt-beta');\n }\n realtimeEndpoint = realtimeEndpoint\n .replace('https://', protocol)\n .replace('http://', protocol);\n const realtimeEndpointUrl = new AmplifyUrl(realtimeEndpoint);\n // preserves any query params a customer might manually set in the configuration\n const existingParams = new AmplifyUrlSearchParams(realtimeEndpointUrl.search);\n for (const [k, v] of urlParams.entries()) {\n existingParams.append(k, v);\n }\n realtimeEndpointUrl.search = existingParams.toString();\n return realtimeEndpointUrl.toString();\n }\n _initializeWebSocketConnection({ appSyncGraphqlEndpoint, authenticationType, apiKey, region, additionalCustomHeaders, }) {\n if (this.socketStatus === SOCKET_STATUS.READY) {\n return;\n }\n // TODO(Eslint): refactor to now use async function as the promise executor\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n this.promiseArray.push({ res: resolve, rej: reject });\n if (this.socketStatus === SOCKET_STATUS.CLOSED) {\n try {\n this.socketStatus = SOCKET_STATUS.CONNECTING;\n const payloadString = '{}';\n const authHeader = await this._awsRealTimeHeaderBasedAuth({\n authenticationType,\n payload: payloadString,\n canonicalUri: '/connect',\n apiKey,\n appSyncGraphqlEndpoint,\n region,\n additionalCustomHeaders,\n });\n const headerString = authHeader ? JSON.stringify(authHeader) : '';\n // base64url-encoded string\n const encodedHeader = base64Encoder.convert(headerString, {\n urlSafe: true,\n skipPadding: true,\n });\n const authTokenSubprotocol = `header-${encodedHeader}`;\n const queryParams = this._queryParamsFromCustomHeaders(additionalCustomHeaders);\n const awsRealTimeUrl = this._realtimeUrlWithQueryString(appSyncGraphqlEndpoint, queryParams);\n await this._initializeRetryableHandshake(awsRealTimeUrl, authTokenSubprotocol);\n this.promiseArray.forEach(({ res }) => {\n logger.debug('Notifying connection successful');\n res();\n });\n this.socketStatus = SOCKET_STATUS.READY;\n this.promiseArray = [];\n }\n catch (err) {\n logger.debug('Connection exited with', err);\n this.promiseArray.forEach(({ rej }) => {\n rej(err);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n }\n }\n });\n }\n async _initializeRetryableHandshake(awsRealTimeUrl, subprotocol) {\n logger.debug(`Initializaling retryable Handshake`);\n await jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl, subprotocol], MAX_DELAY_MS);\n }\n /**\n *\n * @param subprotocol -\n */\n async _initializeHandshake(awsRealTimeUrl, subprotocol) {\n logger.debug(`Initializing handshake ${awsRealTimeUrl}`);\n // Because connecting the socket is async, is waiting until connection is open\n // Step 1: connect websocket\n try {\n await (() => {\n return new Promise((resolve, reject) => {\n const newSocket = this.getNewWebSocket(awsRealTimeUrl, [\n 'graphql-ws',\n subprotocol,\n ]);\n newSocket.onerror = () => {\n logger.debug(`WebSocket connection error`);\n };\n newSocket.onclose = () => {\n reject(new Error('Connection handshake error'));\n };\n newSocket.onopen = () => {\n this.awsRealTimeSocket = newSocket;\n resolve();\n };\n });\n })();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n await (() => {\n return new Promise((resolve, reject) => {\n if (this.awsRealTimeSocket) {\n let ackOk = false;\n this.awsRealTimeSocket.onerror = error => {\n logger.debug(`WebSocket error ${JSON.stringify(error)}`);\n };\n this.awsRealTimeSocket.onclose = event => {\n logger.debug(`WebSocket closed ${event.reason}`);\n reject(new Error(JSON.stringify(event)));\n };\n this.awsRealTimeSocket.onmessage = (message) => {\n if (typeof message.data !== 'string') {\n return;\n }\n logger.debug(`subscription message from AWS AppSyncRealTime: ${message.data} `);\n const data = JSON.parse(message.data);\n const { type, payload: { connectionTimeoutMs = DEFAULT_KEEP_ALIVE_TIMEOUT, } = {}, } = data;\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk = true;\n if (this.awsRealTimeSocket) {\n this.keepAliveTimeout = connectionTimeoutMs;\n this.awsRealTimeSocket.onmessage =\n this._handleIncomingSubscriptionMessage.bind(this);\n this.awsRealTimeSocket.onerror = err => {\n logger.debug(err);\n this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n this.awsRealTimeSocket.onclose = event => {\n logger.debug(`WebSocket closed ${event.reason}`);\n this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n }\n resolve('Cool, connected to AWS AppSyncRealTime');\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n const { payload: { errors: [{ errorType = '', errorCode = 0 } = {}] = [], } = {}, } = data;\n // TODO(Eslint): refactor to reject an Error object instead of a plain object\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({ errorType, errorCode });\n }\n };\n const gqlInit = {\n type: MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n const checkAckOk = (targetAckOk) => {\n if (!targetAckOk) {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n reject(new Error(`Connection timeout: ack from AWSAppSyncRealTime was not received after ${CONNECTION_INIT_TIMEOUT} ms`));\n }\n };\n setTimeout(() => {\n checkAckOk(ackOk);\n }, CONNECTION_INIT_TIMEOUT);\n }\n });\n })();\n }\n catch (err) {\n const { errorType, errorCode } = err;\n if (NON_RETRYABLE_CODES.includes(errorCode)) {\n throw new NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err;\n }\n }\n }\n async _awsRealTimeHeaderBasedAuth({ apiKey, authenticationType, payload, canonicalUri, appSyncGraphqlEndpoint, region, additionalCustomHeaders, }) {\n const headerHandler = {\n apiKey: this._awsRealTimeApiKeyHeader.bind(this),\n iam: this._awsRealTimeIAMHeader.bind(this),\n oidc: this._awsAuthTokenHeader.bind(this),\n userPool: this._awsAuthTokenHeader.bind(this),\n lambda: this._customAuthHeader,\n none: this._customAuthHeader,\n };\n if (!authenticationType || !headerHandler[authenticationType]) {\n logger.debug(`Authentication type ${authenticationType} not supported`);\n return undefined;\n }\n else {\n const handler = headerHandler[authenticationType];\n const host = appSyncGraphqlEndpoint\n ? new AmplifyUrl(appSyncGraphqlEndpoint).host\n : undefined;\n logger.debug(`Authenticating with ${JSON.stringify(authenticationType)}`);\n let resolvedApiKey;\n if (authenticationType === 'apiKey') {\n resolvedApiKey = apiKey;\n }\n const result = await handler({\n payload,\n canonicalUri,\n appSyncGraphqlEndpoint,\n apiKey: resolvedApiKey,\n region,\n host,\n additionalCustomHeaders,\n });\n return result;\n }\n }\n async _awsAuthTokenHeader({ host }) {\n const session = await fetchAuthSession();\n return {\n Authorization: session?.tokens?.accessToken?.toString(),\n host,\n };\n }\n async _awsRealTimeApiKeyHeader({ apiKey, host, }) {\n const dt = new Date();\n const dtStr = dt.toISOString().replace(/[:-]|\\.\\d{3}/g, '');\n return {\n host,\n 'x-amz-date': dtStr,\n 'x-api-key': apiKey,\n };\n }\n async _awsRealTimeIAMHeader({ payload, canonicalUri, appSyncGraphqlEndpoint, region, }) {\n const endpointInfo = {\n region,\n service: 'appsync',\n };\n const creds = (await fetchAuthSession()).credentials;\n const request = {\n url: `${appSyncGraphqlEndpoint}${canonicalUri}`,\n data: payload,\n method: 'POST',\n headers: { ...AWS_APPSYNC_REALTIME_HEADERS },\n };\n const signedParams = signRequest({\n headers: request.headers,\n method: request.method,\n url: new AmplifyUrl(request.url),\n body: request.data,\n }, {\n // TODO: What do we need to do to remove these !'s?\n credentials: creds,\n signingRegion: endpointInfo.region,\n signingService: endpointInfo.service,\n });\n return signedParams.headers;\n }\n _customAuthHeader({ host, additionalCustomHeaders, }) {\n /**\n * If `additionalHeaders` was provided to the subscription as a function,\n * the headers that are returned by that function will already have been\n * provided before this function is called.\n */\n if (!additionalCustomHeaders?.Authorization) {\n throw new Error('No auth token specified');\n }\n return {\n Authorization: additionalCustomHeaders.Authorization,\n host,\n };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -30,9 +30,9 @@ export declare enum MESSAGE_TYPES {
30
30
  GQL_START_ACK = "start_ack",
31
31
  /**
32
32
  * Server -> Client message.
33
- * This message type is for subscription message from AWS AppSync RealTime or Events
33
+ * This message type is for subscription message from AWS AppSync RealTime
34
34
  */
35
- DATA = "data",
35
+ GQL_DATA = "data",
36
36
  /**
37
37
  * Server -> Client message.
38
38
  * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
@@ -52,37 +52,7 @@ export declare enum MESSAGE_TYPES {
52
52
  * Server -> Client message.
53
53
  * This message type is for sending error messages from AWS AppSync RealTime to the client
54
54
  */
55
- GQL_ERROR = "error",
56
- /**
57
- * Client -> Server message.
58
- * This message type is for registering subscriptions with Events
59
- */
60
- EVENT_SUBSCRIBE = "subscribe",
61
- /**
62
- * Client -> Server message.
63
- * This message type is for publishing a message with Events
64
- */
65
- EVENT_PUBLISH = "publish",
66
- /**
67
- * Server -> Client message.
68
- * Server acknowledges successful subscription
69
- */
70
- EVENT_SUBSCRIBE_ACK = "subscribe_success",
71
- /**
72
- * Server -> Client message.
73
- * Server acknowledges successful publish
74
- */
75
- EVENT_PUBLISH_ACK = "publish_success",
76
- /**
77
- * Client -> Server message.
78
- * This message type is for unregister subscriptions with AWS AppSync RealTime
79
- */
80
- EVENT_STOP = "unsubscribe",
81
- /**
82
- * Server -> Client message.
83
- * This is the ack response from AWS AppSync Events to EVENT_STOP message
84
- */
85
- EVENT_COMPLETE = "unsubscribe_success"
55
+ GQL_ERROR = "error"
86
56
  }
87
57
  export declare enum SUBSCRIPTION_STATUS {
88
58
  PENDING = 0,
@@ -34,9 +34,9 @@ var MESSAGE_TYPES;
34
34
  MESSAGE_TYPES["GQL_START_ACK"] = "start_ack";
35
35
  /**
36
36
  * Server -> Client message.
37
- * This message type is for subscription message from AWS AppSync RealTime or Events
37
+ * This message type is for subscription message from AWS AppSync RealTime
38
38
  */
39
- MESSAGE_TYPES["DATA"] = "data";
39
+ MESSAGE_TYPES["GQL_DATA"] = "data";
40
40
  /**
41
41
  * Server -> Client message.
42
42
  * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
@@ -57,36 +57,6 @@ var MESSAGE_TYPES;
57
57
  * This message type is for sending error messages from AWS AppSync RealTime to the client
58
58
  */
59
59
  MESSAGE_TYPES["GQL_ERROR"] = "error";
60
- /**
61
- * Client -> Server message.
62
- * This message type is for registering subscriptions with Events
63
- */
64
- MESSAGE_TYPES["EVENT_SUBSCRIBE"] = "subscribe";
65
- /**
66
- * Client -> Server message.
67
- * This message type is for publishing a message with Events
68
- */
69
- MESSAGE_TYPES["EVENT_PUBLISH"] = "publish";
70
- /**
71
- * Server -> Client message.
72
- * Server acknowledges successful subscription
73
- */
74
- MESSAGE_TYPES["EVENT_SUBSCRIBE_ACK"] = "subscribe_success";
75
- /**
76
- * Server -> Client message.
77
- * Server acknowledges successful publish
78
- */
79
- MESSAGE_TYPES["EVENT_PUBLISH_ACK"] = "publish_success";
80
- /**
81
- * Client -> Server message.
82
- * This message type is for unregister subscriptions with AWS AppSync RealTime
83
- */
84
- MESSAGE_TYPES["EVENT_STOP"] = "unsubscribe";
85
- /**
86
- * Server -> Client message.
87
- * This is the ack response from AWS AppSync Events to EVENT_STOP message
88
- */
89
- MESSAGE_TYPES["EVENT_COMPLETE"] = "unsubscribe_success";
90
60
  })(MESSAGE_TYPES || (MESSAGE_TYPES = {}));
91
61
  var SUBSCRIPTION_STATUS;
92
62
  (function (SUBSCRIPTION_STATUS) {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../src/Providers/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nexport const MAX_DELAY_MS = 5000;\nexport const NON_RETRYABLE_CODES = [400, 401, 403];\nexport const CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\nexport var MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime or Events\n */\n MESSAGE_TYPES[\"DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\";\n /**\n * Client -> Server message.\n * This message type is for registering subscriptions with Events\n */\n MESSAGE_TYPES[\"EVENT_SUBSCRIBE\"] = \"subscribe\";\n /**\n * Client -> Server message.\n * This message type is for publishing a message with Events\n */\n MESSAGE_TYPES[\"EVENT_PUBLISH\"] = \"publish\";\n /**\n * Server -> Client message.\n * Server acknowledges successful subscription\n */\n MESSAGE_TYPES[\"EVENT_SUBSCRIBE_ACK\"] = \"subscribe_success\";\n /**\n * Server -> Client message.\n * Server acknowledges successful publish\n */\n MESSAGE_TYPES[\"EVENT_PUBLISH_ACK\"] = \"publish_success\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"EVENT_STOP\"] = \"unsubscribe\";\n /**\n * Server -> Client message.\n * This is the ack response from AWS AppSync Events to EVENT_STOP message\n */\n MESSAGE_TYPES[\"EVENT_COMPLETE\"] = \"unsubscribe_success\";\n})(MESSAGE_TYPES || (MESSAGE_TYPES = {}));\nexport var SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));\nexport var SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS || (SOCKET_STATUS = {}));\nexport const AWS_APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8',\n};\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport const CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport const START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n/**\n * Default delay time in milleseconds between when reconnect is triggered vs when it is attempted\n */\nexport const RECONNECT_DELAY = 5 * 1000;\n/**\n * Default interval time in milleseconds between when reconnect is re-attempted\n */\nexport const RECONNECT_INTERVAL = 60 * 1000;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../src/Providers/constants.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nexport const MAX_DELAY_MS = 5000;\nexport const NON_RETRYABLE_CODES = [400, 401, 403];\nexport const CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\nexport var MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\";\n})(MESSAGE_TYPES || (MESSAGE_TYPES = {}));\nexport var SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));\nexport var SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS || (SOCKET_STATUS = {}));\nexport const AWS_APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8',\n};\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport const CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport const START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport const DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n/**\n * Default delay time in milleseconds between when reconnect is triggered vs when it is attempted\n */\nexport const RECONNECT_DELAY = 5 * 1000;\n/**\n * Default interval time in milleseconds between when reconnect is re-attempted\n */\nexport const RECONNECT_INTERVAL = 60 * 1000;\n"],"names":[],"mappings":";;AAAA;AACA;AAEY,MAAC,YAAY,GAAG,KAAK;AACrB,MAAC,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACvC,MAAC,uBAAuB,GAAG,wBAAwB;AACrD,IAAC,cAAc;AACzB,CAAC,UAAU,aAAa,EAAE;AAC1B;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,qBAAqB,CAAC,GAAG,iBAAiB,CAAC;AAC7D;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,sBAAsB,CAAC,GAAG,kBAAkB,CAAC;AAC/D;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,oBAAoB,CAAC,GAAG,gBAAgB,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;AACzC;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC;AACjD;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACvC;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AACvC;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;AAC/C;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;AACzC,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC,IAAC,oBAAoB;AAC/B,CAAC,UAAU,mBAAmB,EAAE;AAChC,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;AACxE,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;AAC5E,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AACtE,CAAC,EAAE,mBAAmB,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAC,cAAc;AACzB,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1D,IAAI,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AACxD,IAAI,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;AAClE,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAC,4BAA4B,GAAG;AAC5C,IAAI,MAAM,EAAE,mCAAmC;AAC/C,IAAI,kBAAkB,EAAE,SAAS;AACjC,IAAI,cAAc,EAAE,iCAAiC;AACrD,EAAE;AACF;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,MAAM;AAC7C;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,MAAM;AACvC;AACA;AACA;AACY,MAAC,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK;AACxD;AACA;AACA;AACY,MAAC,gCAAgC,GAAG,EAAE,GAAG,KAAK;AAC1D;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,GAAG,KAAK;AACxC;AACA;AACA;AACY,MAAC,kBAAkB,GAAG,EAAE,GAAG;;;;"}
@@ -1,6 +1,3 @@
1
- import * as events from './internals/events';
2
- export { events };
3
1
  export { GraphQLAPI, GraphQLAPIClass, graphqlOperation } from './GraphQLAPI';
4
2
  export * from './types';
5
3
  export { CONNECTION_STATE_CHANGE } from './Providers/constants';
6
- export * from './internals/events/types';
@@ -1,5 +1,3 @@
1
- import * as internals_events_index from './internals/events/index.mjs';
2
- export { internals_events_index as events };
3
1
  export { GraphQLAPI, GraphQLAPIClass, graphqlOperation } from './GraphQLAPI.mjs';
4
2
  export { GraphQLAuthError, __amplify, __authMode, __authToken, __headers, getInternals } from './types/index.mjs';
5
3
  export { CONNECTION_STATE_CHANGE } from './Providers/constants.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -14,6 +14,7 @@ export declare class InternalGraphQLAPIClass {
14
14
  private appSyncRealTime;
15
15
  private _api;
16
16
  getModuleName(): string;
17
+ private _headerBasedAuth;
17
18
  /**
18
19
  * to get the operation type
19
20
  * @param operation
@@ -7,12 +7,11 @@ import { AWSAppSyncRealTimeProvider } from '../Providers/AWSAppSyncRealTimeProvi
7
7
  import { resolveConfig } from '../utils/resolveConfig.mjs';
8
8
  import { resolveLibraryOptions } from '../utils/resolveLibraryOptions.mjs';
9
9
  import { repackageUnauthorizedError } from '../utils/errors/repackageAuthError.mjs';
10
- import { NO_ENDPOINT } from '../utils/errors/constants.mjs';
10
+ import { NO_AUTH_TOKEN_HEADER, NO_SIGNED_IN_USER, NO_VALID_AUTH_TOKEN, NO_VALID_CREDENTIALS, NO_API_KEY, NO_ENDPOINT } from '../utils/errors/constants.mjs';
11
11
  import { GraphQLApiError } from '../utils/errors/GraphQLApiError.mjs';
12
12
  import '../utils/errors/validation.mjs';
13
13
  import { createGraphQLResultWithError } from '../utils/errors/createGraphQLResultWithError.mjs';
14
14
  import { isGraphQLResponseWithErrors } from './utils/runtimeTypeGuards/isGraphQLResponseWithErrors.mjs';
15
- import { headerBasedAuth } from './graphqlAuth.mjs';
16
15
 
17
16
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
18
17
  // SPDX-License-Identifier: Apache-2.0
@@ -39,6 +38,61 @@ class InternalGraphQLAPIClass {
39
38
  getModuleName() {
40
39
  return 'InternalGraphQLAPI';
41
40
  }
41
+ async _headerBasedAuth(amplify, authMode, additionalHeaders = {}) {
42
+ const { apiKey } = resolveConfig(amplify);
43
+ let headers = {};
44
+ switch (authMode) {
45
+ case 'apiKey':
46
+ if (!apiKey) {
47
+ throw new GraphQLApiError(NO_API_KEY);
48
+ }
49
+ headers = {
50
+ 'X-Api-Key': apiKey,
51
+ };
52
+ break;
53
+ case 'iam': {
54
+ const session = await amplify.Auth.fetchAuthSession();
55
+ if (session.credentials === undefined) {
56
+ throw new GraphQLApiError(NO_VALID_CREDENTIALS);
57
+ }
58
+ break;
59
+ }
60
+ case 'oidc':
61
+ case 'userPool': {
62
+ let token;
63
+ try {
64
+ token = (await amplify.Auth.fetchAuthSession()).tokens?.accessToken.toString();
65
+ }
66
+ catch (e) {
67
+ // fetchAuthSession failed
68
+ throw new GraphQLApiError({
69
+ ...NO_SIGNED_IN_USER,
70
+ underlyingError: e,
71
+ });
72
+ }
73
+ // `fetchAuthSession()` succeeded but didn't return `tokens`.
74
+ // This may happen when unauthenticated access is enabled and there is
75
+ // no user signed in.
76
+ if (!token) {
77
+ throw new GraphQLApiError(NO_VALID_AUTH_TOKEN);
78
+ }
79
+ headers = {
80
+ Authorization: token,
81
+ };
82
+ break;
83
+ }
84
+ case 'lambda':
85
+ if (typeof additionalHeaders === 'object' &&
86
+ !additionalHeaders.Authorization) {
87
+ throw new GraphQLApiError(NO_AUTH_TOKEN_HEADER);
88
+ }
89
+ headers = {
90
+ Authorization: additionalHeaders.Authorization,
91
+ };
92
+ break;
93
+ }
94
+ return headers;
95
+ }
42
96
  /**
43
97
  * to get the operation type
44
98
  * @param operation
@@ -90,7 +144,7 @@ class InternalGraphQLAPIClass {
90
144
  }
91
145
  }
92
146
  async _graphql(amplify, { query, variables, authMode: explicitAuthMode }, additionalHeaders = {}, abortController, customUserAgentDetails, authToken) {
93
- const { apiKey, region, endpoint: appSyncGraphqlEndpoint, customEndpoint, customEndpointRegion, defaultAuthMode, } = resolveConfig(amplify);
147
+ const { region, endpoint: appSyncGraphqlEndpoint, customEndpoint, customEndpointRegion, defaultAuthMode, } = resolveConfig(amplify);
94
148
  const initialAuthMode = explicitAuthMode || defaultAuthMode || 'iam';
95
149
  // identityPool is an alias for iam. TODO: remove 'iam' in v7
96
150
  const authMode = initialAuthMode === 'identityPool' ? 'iam' : initialAuthMode;
@@ -126,16 +180,21 @@ class InternalGraphQLAPIClass {
126
180
  Authorization: authToken,
127
181
  };
128
182
  }
129
- const authHeaders = await headerBasedAuth(amplify, authMode, apiKey, additionalCustomHeaders);
183
+ // TODO: Figure what we need to do to remove `!`'s.
130
184
  const headers = {
131
- ...(!customEndpoint && authHeaders),
185
+ ...(!customEndpoint &&
186
+ (await this._headerBasedAuth(amplify, authMode, additionalCustomHeaders))),
132
187
  /**
133
188
  * Custom endpoint headers.
134
189
  * If there is both a custom endpoint and custom region present, we get the headers.
135
190
  * If there is a custom endpoint but no region, we return an empty object.
136
191
  * If neither are present, we return an empty object.
137
192
  */
138
- ...((customEndpoint && (customEndpointRegion ? authHeaders : {})) || {}),
193
+ ...((customEndpoint &&
194
+ (customEndpointRegion
195
+ ? await this._headerBasedAuth(amplify, authMode, additionalCustomHeaders)
196
+ : {})) ||
197
+ {}),
139
198
  // Custom headers included in Amplify configuration options:
140
199
  ...(customHeaders &&
141
200
  (await customHeaders({
@@ -180,9 +239,9 @@ class InternalGraphQLAPIClass {
180
239
  }
181
240
  let response;
182
241
  try {
183
- // // // See the inline doc of the REST `post()` API for possible errors to be thrown.
184
- // // // As these errors are catastrophic they should be caught and handled by GraphQL
185
- // // // API consumers.
242
+ // See the inline doc of the REST `post()` API for possible errors to be thrown.
243
+ // As these errors are catastrophic they should be caught and handled by GraphQL
244
+ // API consumers.
186
245
  const { body: responseBody } = await this._api.post(amplify, {
187
246
  url: new AmplifyUrl(endpoint),
188
247
  options: {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalGraphQLAPI.mjs","sources":["../../../src/internals/InternalGraphQLAPI.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parse, print, } from 'graphql';\nimport { catchError } from 'rxjs';\nimport { AmplifyUrl, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nimport { isCancelError as isCancelErrorREST } from '@aws-amplify/api-rest';\nimport { cancel as cancelREST, post, updateRequestToBeCancellable, } from '@aws-amplify/api-rest/internals';\nimport { AWSAppSyncRealTimeProvider } from '../Providers/AWSAppSyncRealTimeProvider';\nimport { resolveConfig, resolveLibraryOptions } from '../utils';\nimport { repackageUnauthorizedError } from '../utils/errors/repackageAuthError';\nimport { NO_ENDPOINT } from '../utils/errors/constants';\nimport { GraphQLApiError, createGraphQLResultWithError } from '../utils/errors';\nimport { isGraphQLResponseWithErrors } from './utils/runtimeTypeGuards/isGraphQLResponseWithErrors';\nimport { headerBasedAuth } from './graphqlAuth';\nconst USER_AGENT_HEADER = 'x-amz-user-agent';\nconst isAmplifyInstance = (amplify) => {\n return typeof amplify !== 'function';\n};\n/**\n * Export Cloud Logic APIs\n */\nexport class InternalGraphQLAPIClass {\n constructor() {\n /**\n * @private\n */\n this.appSyncRealTime = new AWSAppSyncRealTimeProvider();\n this._api = {\n post,\n cancelREST,\n isCancelErrorREST,\n updateRequestToBeCancellable,\n };\n }\n getModuleName() {\n return 'InternalGraphQLAPI';\n }\n /**\n * to get the operation type\n * @param operation\n */\n getGraphqlOperationType(operation) {\n const doc = parse(operation);\n const definitions = doc.definitions;\n const [{ operation: operationType }] = definitions;\n return operationType;\n }\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `libraryConfigHeaders` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n graphql(amplify, { query: paramQuery, variables = {}, authMode, authToken }, additionalHeaders, customUserAgentDetails) {\n const query = typeof paramQuery === 'string'\n ? parse(paramQuery)\n : parse(print(paramQuery));\n const [operationDef = {}] = query.definitions.filter(def => def.kind === 'OperationDefinition');\n const { operation: operationType } = operationDef;\n const headers = additionalHeaders || {};\n switch (operationType) {\n case 'query':\n case 'mutation': {\n const abortController = new AbortController();\n let responsePromise;\n if (isAmplifyInstance(amplify)) {\n responsePromise = this._graphql(amplify, { query, variables, authMode }, headers, abortController, customUserAgentDetails, authToken);\n }\n else {\n // NOTE: this wrapper function must be await-able so the Amplify server context manager can\n // destroy the context only after it completes\n const wrapper = async (amplifyInstance) => {\n const result = await this._graphql(amplifyInstance, { query, variables, authMode }, headers, abortController, customUserAgentDetails, authToken);\n return result;\n };\n responsePromise = amplify(wrapper);\n }\n this._api.updateRequestToBeCancellable(responsePromise, abortController);\n return responsePromise;\n }\n case 'subscription':\n return this._graphqlSubscribe(amplify, { query, variables, authMode }, headers, customUserAgentDetails, authToken);\n default:\n throw new Error(`invalid operation type: ${operationType}`);\n }\n }\n async _graphql(amplify, { query, variables, authMode: explicitAuthMode }, additionalHeaders = {}, abortController, customUserAgentDetails, authToken) {\n const { apiKey, region, endpoint: appSyncGraphqlEndpoint, customEndpoint, customEndpointRegion, defaultAuthMode, } = resolveConfig(amplify);\n const initialAuthMode = explicitAuthMode || defaultAuthMode || 'iam';\n // identityPool is an alias for iam. TODO: remove 'iam' in v7\n const authMode = initialAuthMode === 'identityPool' ? 'iam' : initialAuthMode;\n /**\n * Retrieve library options from Amplify configuration.\n * `customHeaders` here are from the Amplify configuration options,\n * and are for non-AppSync endpoints only. These are *not* the same as\n * `additionalHeaders`, which are custom headers that are either 1)\n * included when configuring the API client or 2) passed along with\n * individual requests.\n */\n const { headers: customHeaders, withCredentials } = resolveLibraryOptions(amplify);\n /**\n * Client or request-specific custom headers that may or may not be\n * returned by a function:\n */\n let additionalCustomHeaders;\n if (typeof additionalHeaders === 'function') {\n const requestOptions = {\n method: 'POST',\n url: new AmplifyUrl(customEndpoint || appSyncGraphqlEndpoint || '').toString(),\n queryString: print(query),\n };\n additionalCustomHeaders = await additionalHeaders(requestOptions);\n }\n else {\n additionalCustomHeaders = additionalHeaders;\n }\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n additionalCustomHeaders = {\n ...additionalCustomHeaders,\n Authorization: authToken,\n };\n }\n const authHeaders = await headerBasedAuth(amplify, authMode, apiKey, additionalCustomHeaders);\n const headers = {\n ...(!customEndpoint && authHeaders),\n /**\n * Custom endpoint headers.\n * If there is both a custom endpoint and custom region present, we get the headers.\n * If there is a custom endpoint but no region, we return an empty object.\n * If neither are present, we return an empty object.\n */\n ...((customEndpoint && (customEndpointRegion ? authHeaders : {})) || {}),\n // Custom headers included in Amplify configuration options:\n ...(customHeaders &&\n (await customHeaders({\n query: print(query),\n variables,\n }))),\n // Custom headers from individual requests or API client configuration:\n ...additionalCustomHeaders,\n // User agent headers:\n ...(!customEndpoint && {\n [USER_AGENT_HEADER]: getAmplifyUserAgent(customUserAgentDetails),\n }),\n };\n const body = {\n query: print(query),\n variables: variables || null,\n };\n let signingServiceInfo;\n /**\n * We do not send the signing service info to the REST API under the\n * following conditions (i.e. it will not sign the request):\n * - there is a custom endpoint but no region\n * - the auth mode is `none`, or `apiKey`\n * - the auth mode is a type other than the types listed below\n */\n if ((customEndpoint && !customEndpointRegion) ||\n (authMode !== 'oidc' &&\n authMode !== 'userPool' &&\n authMode !== 'iam' &&\n authMode !== 'lambda')) {\n signingServiceInfo = undefined;\n }\n else {\n signingServiceInfo = {\n service: !customEndpointRegion ? 'appsync' : 'execute-api',\n region: !customEndpointRegion ? region : customEndpointRegion,\n };\n }\n const endpoint = customEndpoint || appSyncGraphqlEndpoint;\n if (!endpoint) {\n throw createGraphQLResultWithError(new GraphQLApiError(NO_ENDPOINT));\n }\n let response;\n try {\n // \t// // See the inline doc of the REST `post()` API for possible errors to be thrown.\n // \t// // As these errors are catastrophic they should be caught and handled by GraphQL\n // \t// // API consumers.\n const { body: responseBody } = await this._api.post(amplify, {\n url: new AmplifyUrl(endpoint),\n options: {\n headers,\n body,\n signingServiceInfo,\n withCredentials,\n },\n abortController,\n });\n response = await responseBody.json();\n }\n catch (error) {\n if (this.isCancelError(error)) {\n throw error;\n }\n response = createGraphQLResultWithError(error);\n }\n if (isGraphQLResponseWithErrors(response)) {\n throw repackageUnauthorizedError(response);\n }\n return response;\n }\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n isCancelError(error) {\n return this._api.isCancelErrorREST(error);\n }\n /**\n * Cancels an inflight request. Only applicable for graphql queries and mutations\n * @param {any} request - request to cancel\n * @returns - A boolean indicating if the request was cancelled\n */\n cancel(request, message) {\n return this._api.cancelREST(request, message);\n }\n _graphqlSubscribe(amplify, { query, variables, authMode: explicitAuthMode }, additionalHeaders = {}, customUserAgentDetails, authToken) {\n const config = resolveConfig(amplify);\n const initialAuthMode = explicitAuthMode || config?.defaultAuthMode || 'iam';\n // identityPool is an alias for iam. TODO: remove 'iam' in v7\n const authMode = initialAuthMode === 'identityPool' ? 'iam' : initialAuthMode;\n /**\n * Retrieve library options from Amplify configuration.\n * `libraryConfigHeaders` are from the Amplify configuration options,\n * and will not be overwritten by other custom headers. These are *not*\n * the same as `additionalHeaders`, which are custom headers that are\n * either 1)included when configuring the API client or 2) passed along\n * with individual requests.\n */\n const { headers: libraryConfigHeaders } = resolveLibraryOptions(amplify);\n return this.appSyncRealTime\n .subscribe({\n query: print(query),\n variables,\n appSyncGraphqlEndpoint: config?.endpoint,\n region: config?.region,\n authenticationType: authMode,\n apiKey: config?.apiKey,\n additionalHeaders,\n authToken,\n libraryConfigHeaders,\n }, customUserAgentDetails)\n .pipe(catchError(e => {\n if (e.errors) {\n throw repackageUnauthorizedError(e);\n }\n throw e;\n }));\n }\n}\nexport const InternalGraphQLAPI = new InternalGraphQLAPIClass();\n"],"names":["cancelREST","isCancelErrorREST"],"mappings":"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"}
1
+ {"version":3,"file":"InternalGraphQLAPI.mjs","sources":["../../../src/internals/InternalGraphQLAPI.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parse, print, } from 'graphql';\nimport { catchError } from 'rxjs';\nimport { AmplifyUrl, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nimport { isCancelError as isCancelErrorREST } from '@aws-amplify/api-rest';\nimport { cancel as cancelREST, post, updateRequestToBeCancellable, } from '@aws-amplify/api-rest/internals';\nimport { AWSAppSyncRealTimeProvider } from '../Providers/AWSAppSyncRealTimeProvider';\nimport { resolveConfig, resolveLibraryOptions } from '../utils';\nimport { repackageUnauthorizedError } from '../utils/errors/repackageAuthError';\nimport { NO_API_KEY, NO_AUTH_TOKEN_HEADER, NO_ENDPOINT, NO_SIGNED_IN_USER, NO_VALID_AUTH_TOKEN, NO_VALID_CREDENTIALS, } from '../utils/errors/constants';\nimport { GraphQLApiError, createGraphQLResultWithError } from '../utils/errors';\nimport { isGraphQLResponseWithErrors } from './utils/runtimeTypeGuards/isGraphQLResponseWithErrors';\nconst USER_AGENT_HEADER = 'x-amz-user-agent';\nconst isAmplifyInstance = (amplify) => {\n return typeof amplify !== 'function';\n};\n/**\n * Export Cloud Logic APIs\n */\nexport class InternalGraphQLAPIClass {\n constructor() {\n /**\n * @private\n */\n this.appSyncRealTime = new AWSAppSyncRealTimeProvider();\n this._api = {\n post,\n cancelREST,\n isCancelErrorREST,\n updateRequestToBeCancellable,\n };\n }\n getModuleName() {\n return 'InternalGraphQLAPI';\n }\n async _headerBasedAuth(amplify, authMode, additionalHeaders = {}) {\n const { apiKey } = resolveConfig(amplify);\n let headers = {};\n switch (authMode) {\n case 'apiKey':\n if (!apiKey) {\n throw new GraphQLApiError(NO_API_KEY);\n }\n headers = {\n 'X-Api-Key': apiKey,\n };\n break;\n case 'iam': {\n const session = await amplify.Auth.fetchAuthSession();\n if (session.credentials === undefined) {\n throw new GraphQLApiError(NO_VALID_CREDENTIALS);\n }\n break;\n }\n case 'oidc':\n case 'userPool': {\n let token;\n try {\n token = (await amplify.Auth.fetchAuthSession()).tokens?.accessToken.toString();\n }\n catch (e) {\n // fetchAuthSession failed\n throw new GraphQLApiError({\n ...NO_SIGNED_IN_USER,\n underlyingError: e,\n });\n }\n // `fetchAuthSession()` succeeded but didn't return `tokens`.\n // This may happen when unauthenticated access is enabled and there is\n // no user signed in.\n if (!token) {\n throw new GraphQLApiError(NO_VALID_AUTH_TOKEN);\n }\n headers = {\n Authorization: token,\n };\n break;\n }\n case 'lambda':\n if (typeof additionalHeaders === 'object' &&\n !additionalHeaders.Authorization) {\n throw new GraphQLApiError(NO_AUTH_TOKEN_HEADER);\n }\n headers = {\n Authorization: additionalHeaders.Authorization,\n };\n break;\n case 'none':\n break;\n default:\n break;\n }\n return headers;\n }\n /**\n * to get the operation type\n * @param operation\n */\n getGraphqlOperationType(operation) {\n const doc = parse(operation);\n const definitions = doc.definitions;\n const [{ operation: operationType }] = definitions;\n return operationType;\n }\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `libraryConfigHeaders` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n graphql(amplify, { query: paramQuery, variables = {}, authMode, authToken }, additionalHeaders, customUserAgentDetails) {\n const query = typeof paramQuery === 'string'\n ? parse(paramQuery)\n : parse(print(paramQuery));\n const [operationDef = {}] = query.definitions.filter(def => def.kind === 'OperationDefinition');\n const { operation: operationType } = operationDef;\n const headers = additionalHeaders || {};\n switch (operationType) {\n case 'query':\n case 'mutation': {\n const abortController = new AbortController();\n let responsePromise;\n if (isAmplifyInstance(amplify)) {\n responsePromise = this._graphql(amplify, { query, variables, authMode }, headers, abortController, customUserAgentDetails, authToken);\n }\n else {\n // NOTE: this wrapper function must be await-able so the Amplify server context manager can\n // destroy the context only after it completes\n const wrapper = async (amplifyInstance) => {\n const result = await this._graphql(amplifyInstance, { query, variables, authMode }, headers, abortController, customUserAgentDetails, authToken);\n return result;\n };\n responsePromise = amplify(wrapper);\n }\n this._api.updateRequestToBeCancellable(responsePromise, abortController);\n return responsePromise;\n }\n case 'subscription':\n return this._graphqlSubscribe(amplify, { query, variables, authMode }, headers, customUserAgentDetails, authToken);\n default:\n throw new Error(`invalid operation type: ${operationType}`);\n }\n }\n async _graphql(amplify, { query, variables, authMode: explicitAuthMode }, additionalHeaders = {}, abortController, customUserAgentDetails, authToken) {\n const { region, endpoint: appSyncGraphqlEndpoint, customEndpoint, customEndpointRegion, defaultAuthMode, } = resolveConfig(amplify);\n const initialAuthMode = explicitAuthMode || defaultAuthMode || 'iam';\n // identityPool is an alias for iam. TODO: remove 'iam' in v7\n const authMode = initialAuthMode === 'identityPool' ? 'iam' : initialAuthMode;\n /**\n * Retrieve library options from Amplify configuration.\n * `customHeaders` here are from the Amplify configuration options,\n * and are for non-AppSync endpoints only. These are *not* the same as\n * `additionalHeaders`, which are custom headers that are either 1)\n * included when configuring the API client or 2) passed along with\n * individual requests.\n */\n const { headers: customHeaders, withCredentials } = resolveLibraryOptions(amplify);\n /**\n * Client or request-specific custom headers that may or may not be\n * returned by a function:\n */\n let additionalCustomHeaders;\n if (typeof additionalHeaders === 'function') {\n const requestOptions = {\n method: 'POST',\n url: new AmplifyUrl(customEndpoint || appSyncGraphqlEndpoint || '').toString(),\n queryString: print(query),\n };\n additionalCustomHeaders = await additionalHeaders(requestOptions);\n }\n else {\n additionalCustomHeaders = additionalHeaders;\n }\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n additionalCustomHeaders = {\n ...additionalCustomHeaders,\n Authorization: authToken,\n };\n }\n // TODO: Figure what we need to do to remove `!`'s.\n const headers = {\n ...(!customEndpoint &&\n (await this._headerBasedAuth(amplify, authMode, additionalCustomHeaders))),\n /**\n * Custom endpoint headers.\n * If there is both a custom endpoint and custom region present, we get the headers.\n * If there is a custom endpoint but no region, we return an empty object.\n * If neither are present, we return an empty object.\n */\n ...((customEndpoint &&\n (customEndpointRegion\n ? await this._headerBasedAuth(amplify, authMode, additionalCustomHeaders)\n : {})) ||\n {}),\n // Custom headers included in Amplify configuration options:\n ...(customHeaders &&\n (await customHeaders({\n query: print(query),\n variables,\n }))),\n // Custom headers from individual requests or API client configuration:\n ...additionalCustomHeaders,\n // User agent headers:\n ...(!customEndpoint && {\n [USER_AGENT_HEADER]: getAmplifyUserAgent(customUserAgentDetails),\n }),\n };\n const body = {\n query: print(query),\n variables: variables || null,\n };\n let signingServiceInfo;\n /**\n * We do not send the signing service info to the REST API under the\n * following conditions (i.e. it will not sign the request):\n * - there is a custom endpoint but no region\n * - the auth mode is `none`, or `apiKey`\n * - the auth mode is a type other than the types listed below\n */\n if ((customEndpoint && !customEndpointRegion) ||\n (authMode !== 'oidc' &&\n authMode !== 'userPool' &&\n authMode !== 'iam' &&\n authMode !== 'lambda')) {\n signingServiceInfo = undefined;\n }\n else {\n signingServiceInfo = {\n service: !customEndpointRegion ? 'appsync' : 'execute-api',\n region: !customEndpointRegion ? region : customEndpointRegion,\n };\n }\n const endpoint = customEndpoint || appSyncGraphqlEndpoint;\n if (!endpoint) {\n throw createGraphQLResultWithError(new GraphQLApiError(NO_ENDPOINT));\n }\n let response;\n try {\n // See the inline doc of the REST `post()` API for possible errors to be thrown.\n // As these errors are catastrophic they should be caught and handled by GraphQL\n // API consumers.\n const { body: responseBody } = await this._api.post(amplify, {\n url: new AmplifyUrl(endpoint),\n options: {\n headers,\n body,\n signingServiceInfo,\n withCredentials,\n },\n abortController,\n });\n response = await responseBody.json();\n }\n catch (error) {\n if (this.isCancelError(error)) {\n throw error;\n }\n response = createGraphQLResultWithError(error);\n }\n if (isGraphQLResponseWithErrors(response)) {\n throw repackageUnauthorizedError(response);\n }\n return response;\n }\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n isCancelError(error) {\n return this._api.isCancelErrorREST(error);\n }\n /**\n * Cancels an inflight request. Only applicable for graphql queries and mutations\n * @param {any} request - request to cancel\n * @returns - A boolean indicating if the request was cancelled\n */\n cancel(request, message) {\n return this._api.cancelREST(request, message);\n }\n _graphqlSubscribe(amplify, { query, variables, authMode: explicitAuthMode }, additionalHeaders = {}, customUserAgentDetails, authToken) {\n const config = resolveConfig(amplify);\n const initialAuthMode = explicitAuthMode || config?.defaultAuthMode || 'iam';\n // identityPool is an alias for iam. TODO: remove 'iam' in v7\n const authMode = initialAuthMode === 'identityPool' ? 'iam' : initialAuthMode;\n /**\n * Retrieve library options from Amplify configuration.\n * `libraryConfigHeaders` are from the Amplify configuration options,\n * and will not be overwritten by other custom headers. These are *not*\n * the same as `additionalHeaders`, which are custom headers that are\n * either 1)included when configuring the API client or 2) passed along\n * with individual requests.\n */\n const { headers: libraryConfigHeaders } = resolveLibraryOptions(amplify);\n return this.appSyncRealTime\n .subscribe({\n query: print(query),\n variables,\n appSyncGraphqlEndpoint: config?.endpoint,\n region: config?.region,\n authenticationType: authMode,\n apiKey: config?.apiKey,\n additionalHeaders,\n authToken,\n libraryConfigHeaders,\n }, customUserAgentDetails)\n .pipe(catchError(e => {\n if (e.errors) {\n throw repackageUnauthorizedError(e);\n }\n throw e;\n }));\n }\n}\nexport const InternalGraphQLAPI = new InternalGraphQLAPIClass();\n"],"names":["cancelREST","isCancelErrorREST"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AAYA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,iBAAiB,GAAG,CAAC,OAAO,KAAK;AACvC,IAAI,OAAO,OAAO,OAAO,KAAK,UAAU,CAAC;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAChE,QAAQ,IAAI,CAAC,IAAI,GAAG;AACpB,YAAY,IAAI;AAChB,wBAAYA,MAAU;AACtB,+BAAYC,aAAiB;AAC7B,YAAY,4BAA4B;AACxC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,OAAO,oBAAoB,CAAC;AACpC,KAAK;AACL,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,GAAG,EAAE,EAAE;AACtE,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;AACzB,QAAQ,QAAQ,QAAQ;AACxB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;AAC1D,iBAAiB;AACjB,gBAAgB,OAAO,GAAG;AAC1B,oBAAoB,WAAW,EAAE,MAAM;AACvC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM;AACtB,YAAY,KAAK,KAAK,EAAE;AACxB,gBAAgB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACtE,gBAAgB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;AACvD,oBAAoB,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AACpE,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,KAAK,MAAM,CAAC;AACxB,YAAY,KAAK,UAAU,EAAE;AAC7B,gBAAgB,IAAI,KAAK,CAAC;AAC1B,gBAAgB,IAAI;AACpB,oBAAoB,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;AACnG,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,EAAE;AAC1B;AACA,oBAAoB,MAAM,IAAI,eAAe,CAAC;AAC9C,wBAAwB,GAAG,iBAAiB;AAC5C,wBAAwB,eAAe,EAAE,CAAC;AAC1C,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,oBAAoB,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACnE,iBAAiB;AACjB,gBAAgB,OAAO,GAAG;AAC1B,oBAAoB,aAAa,EAAE,KAAK;AACxC,iBAAiB,CAAC;AAClB,gBAAgB,MAAM;AACtB,aAAa;AACb,YAAY,KAAK,QAAQ;AACzB,gBAAgB,IAAI,OAAO,iBAAiB,KAAK,QAAQ;AACzD,oBAAoB,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACtD,oBAAoB,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;AACpE,iBAAiB;AACjB,gBAAgB,OAAO,GAAG;AAC1B,oBAAoB,aAAa,EAAE,iBAAiB,CAAC,aAAa;AAClE,iBAAiB,CAAC;AAClB,gBAAgB,MAAM;AAKtB,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,SAAS,EAAE;AACvC,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,QAAQ,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AAC5C,QAAQ,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,WAAW,CAAC;AAC3D,QAAQ,OAAO,aAAa,CAAC;AAC7B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,sBAAsB,EAAE;AAC5H,QAAQ,MAAM,KAAK,GAAG,OAAO,UAAU,KAAK,QAAQ;AACpD,cAAc,KAAK,CAAC,UAAU,CAAC;AAC/B,cAAc,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AACvC,QAAQ,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;AACxG,QAAQ,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;AAC1D,QAAQ,MAAM,OAAO,GAAG,iBAAiB,IAAI,EAAE,CAAC;AAChD,QAAQ,QAAQ,aAAa;AAC7B,YAAY,KAAK,OAAO,CAAC;AACzB,YAAY,KAAK,UAAU,EAAE;AAC7B,gBAAgB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9D,gBAAgB,IAAI,eAAe,CAAC;AACpC,gBAAgB,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;AAChD,oBAAoB,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AAC1J,iBAAiB;AACjB,qBAAqB;AACrB;AACA;AACA,oBAAoB,MAAM,OAAO,GAAG,OAAO,eAAe,KAAK;AAC/D,wBAAwB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AACzK,wBAAwB,OAAO,MAAM,CAAC;AACtC,qBAAqB,CAAC;AACtB,oBAAoB,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACvD,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AACzF,gBAAgB,OAAO,eAAe,CAAC;AACvC,aAAa;AACb,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AACnI,YAAY;AACZ,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5E,SAAS;AACT,KAAK;AACL,IAAI,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,GAAG,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE;AAC1J,QAAQ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5I,QAAQ,MAAM,eAAe,GAAG,gBAAgB,IAAI,eAAe,IAAI,KAAK,CAAC;AAC7E;AACA,QAAQ,MAAM,QAAQ,GAAG,eAAe,KAAK,cAAc,GAAG,KAAK,GAAG,eAAe,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC3F;AACA;AACA;AACA;AACA,QAAQ,IAAI,uBAAuB,CAAC;AACpC,QAAQ,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;AACrD,YAAY,MAAM,cAAc,GAAG;AACnC,gBAAgB,MAAM,EAAE,MAAM;AAC9B,gBAAgB,GAAG,EAAE,IAAI,UAAU,CAAC,cAAc,IAAI,sBAAsB,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC9F,gBAAgB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;AACzC,aAAa,CAAC;AACd,YAAY,uBAAuB,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;AAC9E,SAAS;AACT,aAAa;AACb,YAAY,uBAAuB,GAAG,iBAAiB,CAAC;AACxD,SAAS;AACT;AACA,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,uBAAuB,GAAG;AACtC,gBAAgB,GAAG,uBAAuB;AAC1C,gBAAgB,aAAa,EAAE,SAAS;AACxC,aAAa,CAAC;AACd,SAAS;AACT;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,IAAI,CAAC,cAAc;AAC/B,iBAAiB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,CAAC,cAAc;AAC/B,iBAAiB,oBAAoB;AACrC,sBAAsB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC;AAC7F,sBAAsB,EAAE,CAAC;AACzB,gBAAgB,EAAE,CAAC;AACnB;AACA,YAAY,IAAI,aAAa;AAC7B,iBAAiB,MAAM,aAAa,CAAC;AACrC,oBAAoB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACvC,oBAAoB,SAAS;AAC7B,iBAAiB,CAAC,CAAC,CAAC;AACpB;AACA,YAAY,GAAG,uBAAuB;AACtC;AACA,YAAY,IAAI,CAAC,cAAc,IAAI;AACnC,gBAAgB,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,sBAAsB,CAAC;AAChF,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AAC/B,YAAY,SAAS,EAAE,SAAS,IAAI,IAAI;AACxC,SAAS,CAAC;AACV,QAAQ,IAAI,kBAAkB,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,oBAAoB;AACpD,aAAa,QAAQ,KAAK,MAAM;AAChC,gBAAgB,QAAQ,KAAK,UAAU;AACvC,gBAAgB,QAAQ,KAAK,KAAK;AAClC,gBAAgB,QAAQ,KAAK,QAAQ,CAAC,EAAE;AACxC,YAAY,kBAAkB,GAAG,SAAS,CAAC;AAC3C,SAAS;AACT,aAAa;AACb,YAAY,kBAAkB,GAAG;AACjC,gBAAgB,OAAO,EAAE,CAAC,oBAAoB,GAAG,SAAS,GAAG,aAAa;AAC1E,gBAAgB,MAAM,EAAE,CAAC,oBAAoB,GAAG,MAAM,GAAG,oBAAoB;AAC7E,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,cAAc,IAAI,sBAAsB,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,4BAA4B,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AACjF,SAAS;AACT,QAAQ,IAAI,QAAQ,CAAC;AACrB,QAAQ,IAAI;AACZ;AACA;AACA;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACzE,gBAAgB,GAAG,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC;AAC7C,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI;AACxB,oBAAoB,kBAAkB;AACtC,oBAAoB,eAAe;AACnC,iBAAiB;AACjB,gBAAgB,eAAe;AAC/B,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;AACjD,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC3C,gBAAgB,MAAM,KAAK,CAAC;AAC5B,aAAa;AACb,YAAY,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,2BAA2B,CAAC,QAAQ,CAAC,EAAE;AACnD,YAAY,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,GAAG,EAAE,EAAE,sBAAsB,EAAE,SAAS,EAAE;AAC5I,QAAQ,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,QAAQ,MAAM,eAAe,GAAG,gBAAgB,IAAI,MAAM,EAAE,eAAe,IAAI,KAAK,CAAC;AACrF;AACA,QAAQ,MAAM,QAAQ,GAAG,eAAe,KAAK,cAAc,GAAG,KAAK,GAAG,eAAe,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACjF,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC,aAAa,SAAS,CAAC;AACvB,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AAC/B,YAAY,SAAS;AACrB,YAAY,sBAAsB,EAAE,MAAM,EAAE,QAAQ;AACpD,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM;AAClC,YAAY,kBAAkB,EAAE,QAAQ;AACxC,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM;AAClC,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,oBAAoB;AAChC,SAAS,EAAE,sBAAsB,CAAC;AAClC,aAAa,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI;AAClC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE;AAC1B,gBAAgB,MAAM,0BAA0B,CAAC,CAAC,CAAC,CAAC;AACpD,aAAa;AACb,YAAY,MAAM,CAAC,CAAC;AACpB,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,CAAC;AACW,MAAC,kBAAkB,GAAG,IAAI,uBAAuB;;;;"}
@@ -9,35 +9,7 @@ interface LinkedConnectionStates {
9
9
  keepAliveState: LinkedHealthState;
10
10
  }
11
11
  export declare const CONNECTION_CHANGE: {
12
- readonly KEEP_ALIVE_MISSED: {
13
- readonly keepAliveState: "unhealthy";
14
- };
15
- readonly KEEP_ALIVE: {
16
- readonly keepAliveState: "healthy";
17
- };
18
- readonly CONNECTION_ESTABLISHED: {
19
- readonly connectionState: "connected";
20
- };
21
- readonly CONNECTION_FAILED: {
22
- readonly intendedConnectionState: "disconnected";
23
- readonly connectionState: "disconnected";
24
- };
25
- readonly CLOSING_CONNECTION: {
26
- readonly intendedConnectionState: "disconnected";
27
- };
28
- readonly OPENING_CONNECTION: {
29
- readonly intendedConnectionState: "connected";
30
- readonly connectionState: "connecting";
31
- };
32
- readonly CLOSED: {
33
- readonly connectionState: "disconnected";
34
- };
35
- readonly ONLINE: {
36
- readonly networkState: "connected";
37
- };
38
- readonly OFFLINE: {
39
- readonly networkState: "disconnected";
40
- };
12
+ [key in 'KEEP_ALIVE_MISSED' | 'KEEP_ALIVE' | 'CONNECTION_ESTABLISHED' | 'CONNECTION_FAILED' | 'CLOSING_CONNECTION' | 'OPENING_CONNECTION' | 'CLOSED' | 'ONLINE' | 'OFFLINE']: Partial<LinkedConnectionStates>;
41
13
  };
42
14
  export declare class ConnectionStateMonitor {
43
15
  /**
@@ -5,7 +5,7 @@ export declare enum ReconnectEvent {
5
5
  }
6
6
  /**
7
7
  * Captures the reconnect event logic used to determine when to reconnect to PubSub providers.
8
- * Reconnect attempts are delayed by 5 seconds to let the interface settle.
8
+ * Reconnnect attempts are delayed by 5 seconds to let the interface settle.
9
9
  * Attempting to reconnect only once creates unrecoverable states when the network state isn't
10
10
  * supported by the browser, so this keeps retrying every minute until halted.
11
11
  */
@@ -7,7 +7,7 @@ var ReconnectEvent;
7
7
  })(ReconnectEvent || (ReconnectEvent = {}));
8
8
  /**
9
9
  * Captures the reconnect event logic used to determine when to reconnect to PubSub providers.
10
- * Reconnect attempts are delayed by 5 seconds to let the interface settle.
10
+ * Reconnnect attempts are delayed by 5 seconds to let the interface settle.
11
11
  * Attempting to reconnect only once creates unrecoverable states when the network state isn't
12
12
  * supported by the browser, so this keeps retrying every minute until halted.
13
13
  */