@aws-amplify/api-graphql 4.3.4-events.81620c6.0 → 4.3.4-storage-browser.4db9fef.0

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 (87) hide show
  1. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js +735 -32
  2. package/dist/cjs/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
  3. package/dist/cjs/Providers/constants.js +2 -22
  4. package/dist/cjs/Providers/constants.js.map +1 -1
  5. package/dist/cjs/index.js +1 -2
  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 +1 -18
  12. package/dist/cjs/utils/resolveConfig.js.map +1 -1
  13. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +71 -20
  14. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs +735 -32
  15. package/dist/esm/Providers/AWSAppSyncRealTimeProvider/index.mjs.map +1 -1
  16. package/dist/esm/Providers/constants.d.ts +3 -23
  17. package/dist/esm/Providers/constants.mjs +2 -22
  18. package/dist/esm/Providers/constants.mjs.map +1 -1
  19. package/dist/esm/index.d.ts +0 -1
  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.d.ts +0 -9
  30. package/dist/esm/utils/resolveConfig.mjs +1 -17
  31. package/dist/esm/utils/resolveConfig.mjs.map +1 -1
  32. package/package.json +4 -4
  33. package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +1055 -52
  34. package/src/Providers/constants.ts +2 -22
  35. package/src/index.ts +0 -1
  36. package/src/internals/InternalGraphQLAPI.ts +102 -15
  37. package/src/utils/ConnectionStateMonitor.ts +13 -2
  38. package/src/utils/ReconnectionMonitor.ts +1 -1
  39. package/src/utils/resolveConfig.ts +0 -23
  40. package/dist/cjs/Providers/AWSAppSyncEventsProvider/index.js +0 -88
  41. package/dist/cjs/Providers/AWSAppSyncEventsProvider/index.js.map +0 -1
  42. package/dist/cjs/Providers/AWSWebSocketProvider/appsyncUrl.js +0 -112
  43. package/dist/cjs/Providers/AWSWebSocketProvider/appsyncUrl.js.map +0 -1
  44. package/dist/cjs/Providers/AWSWebSocketProvider/authHeaders.js +0 -99
  45. package/dist/cjs/Providers/AWSWebSocketProvider/authHeaders.js.map +0 -1
  46. package/dist/cjs/Providers/AWSWebSocketProvider/index.js +0 -626
  47. package/dist/cjs/Providers/AWSWebSocketProvider/index.js.map +0 -1
  48. package/dist/cjs/internals/events/appsyncRequest.js +0 -97
  49. package/dist/cjs/internals/events/appsyncRequest.js.map +0 -1
  50. package/dist/cjs/internals/events/index.js +0 -109
  51. package/dist/cjs/internals/events/index.js.map +0 -1
  52. package/dist/cjs/internals/graphqlAuth.js +0 -64
  53. package/dist/cjs/internals/graphqlAuth.js.map +0 -1
  54. package/dist/cjs/internals/graphqlRequest.js +0 -20
  55. package/dist/cjs/internals/graphqlRequest.js.map +0 -1
  56. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.d.ts +0 -37
  57. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.mjs +0 -86
  58. package/dist/esm/Providers/AWSAppSyncEventsProvider/index.mjs.map +0 -1
  59. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.d.ts +0 -21
  60. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.mjs +0 -106
  61. package/dist/esm/Providers/AWSWebSocketProvider/appsyncUrl.mjs.map +0 -1
  62. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.d.ts +0 -8
  63. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.mjs +0 -97
  64. package/dist/esm/Providers/AWSWebSocketProvider/authHeaders.mjs.map +0 -1
  65. package/dist/esm/Providers/AWSWebSocketProvider/index.d.ts +0 -79
  66. package/dist/esm/Providers/AWSWebSocketProvider/index.mjs +0 -624
  67. package/dist/esm/Providers/AWSWebSocketProvider/index.mjs.map +0 -1
  68. package/dist/esm/internals/events/appsyncRequest.d.ts +0 -14
  69. package/dist/esm/internals/events/appsyncRequest.mjs +0 -96
  70. package/dist/esm/internals/events/appsyncRequest.mjs.map +0 -1
  71. package/dist/esm/internals/events/index.d.ts +0 -31
  72. package/dist/esm/internals/events/index.mjs +0 -105
  73. package/dist/esm/internals/events/index.mjs.map +0 -1
  74. package/dist/esm/internals/graphqlAuth.d.ts +0 -3
  75. package/dist/esm/internals/graphqlAuth.mjs +0 -64
  76. package/dist/esm/internals/graphqlAuth.mjs.map +0 -1
  77. package/dist/esm/internals/graphqlRequest.d.ts +0 -3
  78. package/dist/esm/internals/graphqlRequest.mjs +0 -18
  79. package/dist/esm/internals/graphqlRequest.mjs.map +0 -1
  80. package/src/Providers/AWSAppSyncEventsProvider/index.ts +0 -174
  81. package/src/Providers/AWSWebSocketProvider/appsyncUrl.ts +0 -151
  82. package/src/Providers/AWSWebSocketProvider/authHeaders.ts +0 -146
  83. package/src/Providers/AWSWebSocketProvider/index.ts +0 -923
  84. package/src/internals/events/appsyncRequest.ts +0 -173
  85. package/src/internals/events/index.ts +0 -209
  86. package/src/internals/graphqlAuth.ts +0 -87
  87. package/src/internals/graphqlRequest.ts +0 -30
@@ -1,12 +1,23 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { CustomUserAgentDetails, DocumentType, GraphQLAuthMode } from '@aws-amplify/core/internals/utils';
2
3
  import { CustomHeaders } from '@aws-amplify/data-schema/runtime';
3
- import { AWSWebSocketProvider } from '../AWSWebSocketProvider';
4
+ import { PubSubContentObserver } from '../../types/PubSub';
5
+ import { SUBSCRIPTION_STATUS } from '../constants';
4
6
  type ResolvedGraphQLAuthModes = Exclude<GraphQLAuthMode, 'identityPool'>;
7
+ export interface ObserverQuery {
8
+ observer: PubSubContentObserver;
9
+ query: string;
10
+ variables: Record<string, DocumentType>;
11
+ subscriptionState: SUBSCRIPTION_STATUS;
12
+ subscriptionReadyCallback?(): void;
13
+ subscriptionFailedCallback?(reason?: any): void;
14
+ startAckTimeoutId?: ReturnType<typeof setTimeout>;
15
+ }
5
16
  export interface AWSAppSyncRealTimeProviderOptions {
6
17
  appSyncGraphqlEndpoint?: string;
7
18
  authenticationType?: ResolvedGraphQLAuthModes;
8
19
  query?: string;
9
- variables?: DocumentType;
20
+ variables?: Record<string, DocumentType>;
10
21
  apiKey?: string;
11
22
  region?: string;
12
23
  libraryConfigHeaders?(): Promise<Record<string, unknown> | Headers>;
@@ -14,25 +25,65 @@ export interface AWSAppSyncRealTimeProviderOptions {
14
25
  additionalCustomHeaders?: Record<string, string>;
15
26
  authToken?: string;
16
27
  }
17
- interface DataObject extends Record<string, unknown> {
18
- data: Record<string, unknown>;
19
- }
20
- interface DataPayload {
21
- id: string;
22
- payload: DataObject;
23
- type: string;
24
- }
25
- export declare class AWSAppSyncRealTimeProvider extends AWSWebSocketProvider {
28
+ export declare class AWSAppSyncRealTimeProvider {
29
+ private awsRealTimeSocket?;
30
+ private socketStatus;
31
+ private keepAliveTimeoutId?;
32
+ private keepAliveTimeout;
33
+ private keepAliveAlertTimeoutId?;
34
+ private subscriptionObserverMap;
35
+ private promiseArray;
36
+ private connectionState;
37
+ private readonly connectionStateMonitor;
38
+ private readonly reconnectionMonitor;
39
+ private connectionStateMonitorSubscription;
26
40
  constructor();
27
- subscribe(options?: AWSAppSyncRealTimeProviderOptions, customUserAgentDetails?: CustomUserAgentDetails): import("rxjs").Observable<Record<string, unknown>>;
41
+ /**
42
+ * Mark the socket closed and release all active listeners
43
+ */
44
+ close(): void;
45
+ getNewWebSocket(url: string, protocol: string[]): WebSocket;
28
46
  getProviderName(): string;
29
- protected _prepareSubscriptionPayload({ options, subscriptionId, customUserAgentDetails, additionalCustomHeaders, libraryConfigHeaders, }: {
30
- options: AWSAppSyncRealTimeProviderOptions;
31
- subscriptionId: string;
32
- customUserAgentDetails: CustomUserAgentDetails | undefined;
33
- additionalCustomHeaders: Record<string, string>;
34
- libraryConfigHeaders: Record<string, string>;
35
- }): Promise<string>;
36
- protected _handleSubscriptionData(message: MessageEvent): [boolean, DataPayload];
47
+ private isCustomDomain;
48
+ subscribe(options?: AWSAppSyncRealTimeProviderOptions, customUserAgentDetails?: CustomUserAgentDetails): Observable<Record<string, unknown>>;
49
+ private _startSubscriptionWithAWSAppSyncRealTime;
50
+ private _logStartSubscriptionError;
51
+ private _waitForSubscriptionToBeConnected;
52
+ private _sendUnsubscriptionMessage;
53
+ private _removeSubscriptionObserver;
54
+ private _closeSocketIfRequired;
55
+ private _handleIncomingSubscriptionMessage;
56
+ private _errorDisconnect;
57
+ private _timeoutStartSubscriptionAck;
58
+ /**
59
+ * Strips out `Authorization` header if present
60
+ */
61
+ private _extractNonAuthHeaders;
62
+ /**
63
+ *
64
+ * @param headers - http headers
65
+ * @returns uri-encoded query parameters derived from custom headers
66
+ */
67
+ private _queryParamsFromCustomHeaders;
68
+ /**
69
+ * Normalizes AppSync realtime endpoint URL
70
+ *
71
+ * @param appSyncGraphqlEndpoint - AppSync endpointUri from config
72
+ * @param urlParams - URLSearchParams
73
+ * @returns fully resolved string realtime endpoint URL
74
+ */
75
+ private _realtimeUrlWithQueryString;
76
+ private _initializeWebSocketConnection;
77
+ private _initializeRetryableHandshake;
78
+ /**
79
+ *
80
+ * @param subprotocol -
81
+ */
82
+ private _initializeHandshake;
83
+ private _awsRealTimeHeaderBasedAuth;
84
+ private _awsAuthTokenHeader;
85
+ private _awsRealTimeApiKeyHeader;
86
+ private _awsRealTimeIAMHeader;
87
+ private _customAuthHeader;
37
88
  }
38
89
  export {};